{
  "name": "@robotlegsjs/signals",
  "version": "2.1.0",
  "description": "TypeScript port of AS3 Signals.",
  "main": "lib/index.js",
  "typings": "lib/index.d.ts",
  "nyc": {
    "extends": "@istanbuljs/nyc-config-typescript",
    "include": [
      "src/**/*.ts"
    ],
    "exclude": [
      "test"
    ],
    "extension": [
      ".ts"
    ],
    "require": [
      "ts-node/register",
      "source-map-support/register"
    ],
    "reporter": [
      "text-summary",
      "lcov"
    ],
    "check-coverage": true,
    "sourceMap": true,
    "instrument": true
  },
  "repository": {
    "url": "https://github.com/RobotlegsJS/RobotlegsJS-Framework/tree/master/packages/signals"
  },
  "publishConfig": {
    "registry": "https://registry.npmjs.org"
  },
  "keywords": [
    "Signals",
    "TypeScript"
  ],
  "author": "RobotlegsJS",
  "contributors": [
    "Bartosz Oczujda <boczujda@goodgamestudios.com>",
    "Tiago Schenkel <tiago.schenkel@gmail.com>"
  ],
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/RobotlegsJS/RobotlegsJS-Framework/issues"
  },
  "homepage": "https://github.com/RobotlegsJS/RobotlegsJS-Framework/tree/master/packages/signals#readme",
  "files": [
    "lib"
  ],
  "directories": {
    "lib": "./lib"
  },
  "dependencies": {
    "tslib": "^2.3.0"
  },
  "devDependencies": {
    "@istanbuljs/nyc-config-typescript": "^1.0.1",
    "@jsdevtools/coverage-istanbul-loader": "^3.0.5",
    "@rushstack/eslint-config": "^2.3.4",
    "@types/bluebird": "^3.5.36",
    "@types/chai": "^4.2.21",
    "@types/mocha": "^8.2.3",
    "@types/sinon": "^10.0.2",
    "@types/webpack-env": "^1.16.2",
    "bluebird": "^3.7.2",
    "chai": "^4.3.4",
    "es6-map": "^0.1.5",
    "es6-symbol": "^3.1.3",
    "eslint": "^7.30.0",
    "eslint-plugin-import": "^2.23.4",
    "eslint-plugin-jsdoc": "^35.4.3",
    "eslint-plugin-prefer-arrow": "^1.2.3",
    "eslint-plugin-react": "^7.24.0",
    "eslint-plugin-unicorn": "^34.0.1",
    "karma": "^6.3.4",
    "karma-chrome-launcher": "^3.1.0",
    "karma-coverage-istanbul-reporter": "^3.0.3",
    "karma-mocha": "^2.0.1",
    "karma-mocha-reporter": "^2.2.5",
    "karma-sinon-chai": "^2.0.2",
    "karma-sourcemap-loader": "^0.3.8",
    "karma-sourcemap-writer": "^0.1.2",
    "karma-webpack": "^5.0.0",
    "mocha": "^9.0.2",
    "nyc": "^15.1.0",
    "prettier": "^2.6.2",
    "puppeteer": "^10.1.0",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "sinon": "^11.1.1",
    "sinon-chai": "^3.7.0",
    "source-map-support": "^0.5.19",
    "terser-webpack-plugin": "^5.1.4",
    "ts-loader": "^9.2.3",
    "ts-node": "^10.1.0",
    "typescript": "~4.2.4",
    "webpack": "^5.44.0",
    "webpack-cli": "^4.7.2",
    "webpack-dev-server": "^3.11.2"
  },
  "scripts": {
    "test": "nyc mocha",
    "karma": "node --max-old-space-size=2048 ./node_modules/karma/bin/karma start --single-run",
    "lint-fix:src": "eslint -c .eslintrc.js --ext .ts ./src --fix",
    "lint-fix:test": "eslint -c .eslintrc.js --ext .ts ./test --fix",
    "lint-fix": "npm run lint-fix:src && npm run lint-fix:test",
    "lint:src": "eslint -c .eslintrc.js --ext .ts ./src",
    "lint:test": "eslint -c .eslintrc.js --ext .ts ./test",
    "lint": "npm run lint:src && npm run lint:test",
    "autoformat": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --write --list-different .",
    "cleanup": "rimraf .nyc_output && rimraf coverage && rimraf lib && rimraf lib-test && rimraf dist-test",
    "compile:src": "tsc",
    "compile:test": "tsc -p tsconfig.test.json",
    "dist:dev": "webpack",
    "dist:production": "webpack --env production",
    "build": "npm run cleanup && npm run compile:src"
  },
  "readme": "SignalsJS\n===\n\n[![GitHub license](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobotlegsJS/RobotlegsJS-Framework/tree/master/packages/signals/LICENSE)\n[![Gitter chat](https://badges.gitter.im/RobotlegsJS/RobotlegsJS.svg)](https://gitter.im/RobotlegsJS/RobotlegsJS)\n[![npm version](https://badge.fury.io/js/%40robotlegsjs%2Fsignals.svg)](https://badge.fury.io/js/%40robotlegsjs%2Fsignals)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n\n**SignalsJS** is a [TypeScript](https://www.typescriptlang.org/) port of [AS3 Signals](https://github.com/robertpenner/as3-signals).\n[15KB compressed](dist/signals.min.js).\n\nAbout\n---\n\n**Signals** are light-weight, strongly-typed messaging tools.\nWire your application with better APIs and less boilerplate than normal event systems.\n\nConcept\n---\n\n* A **Signal** is essentially a mini-dispatcher specific to one event, with its own array of listeners.\n* A **Signal** gives an event a concrete membership in a class.\n* Listeners subscribe to real objects, not to string-based channels.\n* Event string constants are no longer needed.\n* **Signals** was originally implemented by [Robert Penner](https://github.com/robertpenner) in [AS3](https://github.com/robertpenner/as3-signals).\n* **Signals** are inspired by [C# events](http://en.wikipedia.org/wiki/C_Sharp_syntax#Events) and [signals/slots](http://en.wikipedia.org/wiki/Signals_and_slots) in Qt.\n\nSyntax\n---\n\n```typescript\n// with DOM EventListener\nbutton.addEventListener(\"click\", onClick);\n\n// Signal equivalent; past tense is recommended\nbutton.clicked.add(onClicked);\n```\n\nInstallation\n---\n\nYou can get the latest release and the type definitions using [NPM](https://www.npmjs.com/):\n\n```bash\nnpm install @robotlegsjs/signals\n```\n\nOr using [Yarn](https://yarnpkg.com/en/):\n\n```bash\nyarn add @robotlegsjs/signals\n```\n\nUsage\n---\n\n```typescript\nimport { Signal } from \"@robotlegsjs/signals\";\n\nlet signal = new Signal();\n\nsignal.add(data => {\n    console.log(data.message);\n});\n\nsignal.dispatch({ message: \"hello signal!\" });\n```\n\nSignalsJS for enterprise\n---\n\nAvailable as part of the Tidelift Subscription\n\nThe maintainers of [@robotlegsjs/signals](https://github.com/RobotlegsJS/RobotlegsJS-Framework/tree/master/packages/signals) and thousands of other packages are working with **Tidelift** to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-robotlegsjs-signals?utm_source=npm-robotlegsjs-signals&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)\n\nLicense\n---\n\n[MIT](LICENSE)\n"
}