{"_id":"@bernierllc/event-emitter","_rev":"12-84e19ac8d99b3fbf5bc6afcead0a25b3","name":"@bernierllc/event-emitter","dist-tags":{"latest":"1.4.1"},"versions":{"1.0.1":{"name":"@bernierllc/event-emitter","version":"1.0.1","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"f54eb27280212a8c008445225e75d47dbe56a1dc","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.1.tgz","fileCount":35,"integrity":"sha512-B6AyX/EP47pgoc83LngLUURJFWf3joyJupHQ9y7O0RMFKGtY7W3lHr1sNDODqXo8TNaZEkknSLw3M6bcFMPFgQ==","signatures":[{"sig":"MEQCIFKAmgU6V6PRJJZhS6kMp2TyvdRO3L0fpLkeZNNBNPryAiBMhw6UTZTYBipDOYrvzkFKhsZvAM2V6PFbbycpZrDqPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152489},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.0.1.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/private/var/folders/r0/wspnzd1s18sfjy10ffyv2qxw0000gn/T/b2d3505602fbfb8a1fdd3a6655042826/bernierllc-event-emitter-1.0.1.tgz","_integrity":"sha512-B6AyX/EP47pgoc83LngLUURJFWf3joyJupHQ9y7O0RMFKGtY7W3lHr1sNDODqXo8TNaZEkknSLw3M6bcFMPFgQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.6.2","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"25.1.0","dependencies":{"@bernierllc/logger":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.1_1762580738444_0.5849667702437076","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bernierllc/event-emitter","version":"1.0.2","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"aa2a859117d16138ec0882b04991afb3324dc2ff","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.2.tgz","fileCount":23,"integrity":"sha512-3df5+dkEe9XMFtJT8NlgSg0G363yh6IEHDhUTeneL5ztulydEW5qCYIOMuspadIu7fKFBxUp1z8oRtTLXaG30g==","signatures":[{"sig":"MEYCIQDR6jZeaTcvlSN+pB/QA62O15hOMDRb5fVHxt0gnd9/xwIhAKMPWDjb/Q2T+R9kKgTKS6P5GzRgSqts8DdpmuzIEHEX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65035},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.0.2.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/tmp/af900c2537f3bf97dec1ac0ac3cdb611/bernierllc-event-emitter-1.0.2.tgz","_integrity":"sha512-3df5+dkEe9XMFtJT8NlgSg0G363yh6IEHDhUTeneL5ztulydEW5qCYIOMuspadIu7fKFBxUp1z8oRtTLXaG30g==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.7.0","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.2_1766437760269_0.7716967119130491","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bernierllc/event-emitter","version":"1.0.3","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"536ac7d900723d9cbb0d1745a7f94c3a554a2393","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.3.tgz","fileCount":23,"integrity":"sha512-t3A++X8M61ze9UMrQJ4fgvG9FCF+xRNLyexkRsFI/DPdiJm6VftndAwUZq1BTaNjqP2PjWFW7bNwl9VM4/4BgA==","signatures":[{"sig":"MEQCIA4IYTDevBDKKs1VUUGrk1WDnlzwVOMTlxjZu0TcbPIUAiAqFIsW+ISjlWjwadlYlgXECDGKxl3kbr546pjyq9wCuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65217},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.0.3.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/tmp/81780d141f28510abf3ce45262b0c554/bernierllc-event-emitter-1.0.3.tgz","_integrity":"sha512-t3A++X8M61ze9UMrQJ4fgvG9FCF+xRNLyexkRsFI/DPdiJm6VftndAwUZq1BTaNjqP2PjWFW7bNwl9VM4/4BgA==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.7.0","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.3_1766454403144_0.2021637824166158","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bernierllc/event-emitter","version":"1.0.5","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"6885fda32ec0329a9d0d11946b712c27753403f2","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.5.tgz","fileCount":23,"integrity":"sha512-VbkB/l8KpIc5EJTciiwCa+Rp06lO9lPnRgHI4gmvn0vAu4eyEeCQy4Q+IjCiZFSi3XGw2Fg3P6vcXtaEzcfG2g==","signatures":[{"sig":"MEQCIFJVzbJZhwb8xcOGHdJxYWy0ckMvAJAFgrj6vpZK/XZ7AiAR82X00BtBE0Qh33sE3fdSG9rjzboGVORVuF7d3elEGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66943},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.5_1767642439967_0.2329688513581687","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@bernierllc/event-emitter","version":"1.0.6","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"0007ef7343a1c9f5ff892e354652d2d06b2d6b76","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.6.tgz","fileCount":23,"integrity":"sha512-jzXMNs+tpPSmDQQGk54Es01QrwVr4sgNJt7rc7cwF2hXFSEOUaaTNa6GTm7znLJIFxnkNddwVcnvqZik+KTZtg==","signatures":[{"sig":"MEUCIQCH+QTLnlF4rlHyQVXtufqOCQ0U6e3iz8YbwjlLi+lh7QIgHbj3S8gbYgwrGJIU3IFFHq7EmBm5moEgvpw8if1ZoyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67092},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.0.6.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/tmp/c045f07c69c2bd7ff9c0e2be52312a14/bernierllc-event-emitter-1.0.6.tgz","_integrity":"sha512-jzXMNs+tpPSmDQQGk54Es01QrwVr4sgNJt7rc7cwF2hXFSEOUaaTNa6GTm7znLJIFxnkNddwVcnvqZik+KTZtg==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.11.0","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/logger":"1.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.6_1773078445406_0.6159855874630087","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@bernierllc/event-emitter","version":"1.0.7","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"eb2a6db946b9cad9bceee29ed0bea14709cdee34","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.7.tgz","fileCount":23,"integrity":"sha512-1SoYgop2ghmEQcWNv5cBuVl2PfEWPPvQMlxRWpLCpBIEcHlT0jyEjOx2WbhzrNf4VmySwsdhgRU16u/MI0pGQQ==","signatures":[{"sig":"MEQCIBRMhLcNW2R88qsDkIfs2hC38sEPoxZCELNon86JD4LbAiBEASYjMOuEbe5lF2iD9tboKBu74pPX2MyZHG+aoJaWwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67299},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.0.7.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/home/runner/work/tools/tools/packages/core/event-emitter/bernierllc-event-emitter-1.0.7.tgz","_integrity":"sha512-1SoYgop2ghmEQcWNv5cBuVl2PfEWPPvQMlxRWpLCpBIEcHlT0jyEjOx2WbhzrNf4VmySwsdhgRU16u/MI0pGQQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.11.0","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/logger":"1.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.7_1773163173437_0.6886751119998864","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@bernierllc/event-emitter","version":"1.0.8","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.8","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"044a115b6672dd6ebd208e68dfd77325037d3fc0","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.8.tgz","fileCount":23,"integrity":"sha512-XQ3eM8DO/cyf6m9s28d4L+lBEb6d/dIJdsF8/8zZ5YwthiTCS+Xv7i4U/nnB7HxJfNij4JkHK+8V7ByuP+gApQ==","signatures":[{"sig":"MEUCIQCgvzpt41Rz63JIwQuNG3jpkpfxwoqVCS/NDrvScNg5hQIgcu3vowWEuuEOqDQiVGPcOmhrj6AByjUChFvm7/5QOrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67506},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.0.8.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/home/runner/work/tools/tools/packages/core/event-emitter/bernierllc-event-emitter-1.0.8.tgz","_integrity":"sha512-XQ3eM8DO/cyf6m9s28d4L+lBEb6d/dIJdsF8/8zZ5YwthiTCS+Xv7i4U/nnB7HxJfNij4JkHK+8V7ByuP+gApQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.14.1","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.8_1779133456122_0.7059977326021378","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@bernierllc/event-emitter","version":"1.0.9","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.0.9","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"b92fe804b9a4ff72cdcc83b3b3eb44ad2fc42b31","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.0.9.tgz","fileCount":23,"integrity":"sha512-FbbEwHVHhIO4SugmnDdUjH5q8mnmCmG4OcR30lEuVBb0ZyhJn75x3BmCvB00JHW9NMgEl1hYPhHyobibguGwRA==","signatures":[{"sig":"MEYCIQCvK6DDgBoQ+4sDehzuO+H0TMrqgl+yjWgkeaH9tbz1IQIhAM/13CLiyBgM8RJ5FICVDeMUESJI7eDQd5NfEAti+Y5E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67713},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.0.9.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/home/runner/work/tools/tools/packages/core/event-emitter/bernierllc-event-emitter-1.0.9.tgz","_integrity":"sha512-FbbEwHVHhIO4SugmnDdUjH5q8mnmCmG4OcR30lEuVBb0ZyhJn75x3BmCvB00JHW9NMgEl1hYPhHyobibguGwRA==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.14.1","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.0.9_1779157207042_0.848622757115699","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bernierllc/event-emitter","version":"1.2.0","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"b30b2ce43f884cb53c696bd6c1c472b765d4f065","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.2.0.tgz","fileCount":12,"integrity":"sha512-q6xQ/grC4xBaTagR5Esc7e9FSHaO0fJz4sELsrFTg48VsQ3gAgElj0uWsIv3ezjmozOaO7voxqsjv2IDwvxBbQ==","signatures":[{"sig":"MEQCIB5w5ZFo5NLMsX9dnwPi5dCfYkSZRgREIkOGzufbriIJAiADUd2S5qE/5BsjYftaV/5FcLUdWoL7TR0iGcNMPeaQTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23319},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.2.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/home/runner/work/tools/tools/packages/core/event-emitter/bernierllc-event-emitter-1.2.0.tgz","_integrity":"sha512-q6xQ/grC4xBaTagR5Esc7e9FSHaO0fJz4sELsrFTg48VsQ3gAgElj0uWsIv3ezjmozOaO7voxqsjv2IDwvxBbQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.14.1","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.2.0_1779221321988_0.8731154371346905","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bernierllc/event-emitter","version":"1.3.0","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"6ee0c16135d1f65ba71ba36a23e3a6fe131d739c","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.3.0.tgz","fileCount":12,"integrity":"sha512-z3VZekmuvA7ROcDs8bDT+6HYe47GsOJMdaG3uLn+jPanSCx/9nCOB2XFR7sHKfCfGCaiEbGm9k9A+UIqR52kOA==","signatures":[{"sig":"MEYCIQCX+uqnVDhQ4/pyR3+YnjsGiIOdPLK8njXa5TPG6vhtYgIhAIt6iAGteNZse02v2mGAYRF46y5Ov8ibVsklj9lH8ACJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23319},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.3.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/home/runner/work/tools/tools/packages/core/event-emitter/bernierllc-event-emitter-1.3.0.tgz","_integrity":"sha512-z3VZekmuvA7ROcDs8bDT+6HYe47GsOJMdaG3uLn+jPanSCx/9nCOB2XFR7sHKfCfGCaiEbGm9k9A+UIqR52kOA==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.14.1","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.3.0_1779241160264_0.6829569865458509","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bernierllc/event-emitter","version":"1.4.0","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/event-emitter@1.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"c5190a4c07b420c6ec135bb8c92c112aa11b0e06","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.4.0.tgz","fileCount":12,"integrity":"sha512-qp6jzVscD61dMLMUS8PQN41v/OqebzAeRf6bK7h1W3p+SNm9+Lia+80++uZWrlg4tBH75yLvE2CJsDxo8yRimw==","signatures":[{"sig":"MEQCIG8ZG8QPuyL/0q4IeTce0BbiWmN3jhDICNAjD7pRNvPMAiB66JoM52ziomQ4irFGvw+7QJ7iMxd6UAW6zofFxRhVWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23319},"main":"dist/index.js","_from":"file:bernierllc-event-emitter-1.4.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"_resolved":"/home/runner/work/tools/tools/packages/core/event-emitter/bernierllc-event-emitter-1.4.0.tgz","_integrity":"sha512-qp6jzVscD61dMLMUS8PQN41v/OqebzAeRf6bK7h1W3p+SNm9+Lia+80++uZWrlg4tBH75yLvE2CJsDxo8yRimw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"optional","docsIntegration":"ready"}},"_npmVersion":"11.14.1","description":"Type-safe event bus for inter-package communication","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/event-emitter_1.4.0_1779249905021_0.6159402868736343","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@bernierllc/event-emitter","version":"1.4.1","description":"Type-safe event bus for inter-package communication","main":"dist/index.js","types":"dist/index.d.ts","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","dependencies":{"@bernierllc/logger":"1.7.1"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0"},"bernierllc":{"integration":{"logger":"integrated","docsIntegration":"ready","neverhub":"optional"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","test":"jest --watch","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src __tests__ --ext .ts","clean":"rm -rf dist"},"_id":"@bernierllc/event-emitter@1.4.1","_integrity":"sha512-G5eAwqNg6Hzd6DZ4pgnEXv+VyY9YcAutr9v4EXuToOMLQAHx3+0IQHNj6rBkJ95DxrEUi2tcFNBZWyiut5mNcA==","_resolved":"/home/runner/work/tools/tools/packages/core/event-emitter/bernierllc-event-emitter-1.4.1.tgz","_from":"file:bernierllc-event-emitter-1.4.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-G5eAwqNg6Hzd6DZ4pgnEXv+VyY9YcAutr9v4EXuToOMLQAHx3+0IQHNj6rBkJ95DxrEUi2tcFNBZWyiut5mNcA==","shasum":"920082ca6a07ace96c5155c675d771f99a2e07f8","tarball":"https://registry.npmjs.org/@bernierllc/event-emitter/-/event-emitter-1.4.1.tgz","fileCount":12,"unpackedSize":23319,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF4zxgZaHpTTcU9ssuDPhfDPRld0xF2wHVIgGPoL1L+rAiADvdjKf1+P9XvAyNdO9vfLD0gIUHwhDBeAeLgelepY/w=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:699a7aca-d39d-4b89-bd9d-c911b6f86639"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/event-emitter_1.4.1_1784015608744_0.8500338606381455"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-08T05:45:38.366Z","modified":"2026-07-14T07:53:28.980Z","1.0.1":"2025-11-08T05:45:38.641Z","1.0.2":"2025-12-22T21:09:20.431Z","1.0.3":"2025-12-23T01:46:43.314Z","1.0.5":"2026-01-05T19:47:20.118Z","1.0.6":"2026-03-09T17:47:25.589Z","1.0.7":"2026-03-10T17:19:33.589Z","1.0.8":"2026-05-18T19:44:16.285Z","1.0.9":"2026-05-19T02:20:07.177Z","1.2.0":"2026-05-19T20:08:42.138Z","1.3.0":"2026-05-20T01:39:20.413Z","1.4.0":"2026-05-20T04:05:05.173Z","1.4.1":"2026-07-14T07:53:28.868Z"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","keywords":["event-emitter","event-bus","pubsub","messaging","events"],"description":"Type-safe event bus for inter-package communication","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/event-emitter\n\nType-safe event bus for inter-package communication with support for wildcard listeners, async handlers, and comprehensive error handling.\n\n## Installation\n\n```bash\nnpm install @bernierllc/event-emitter\n```\n\n## Features\n\n- 🎯 **Type-safe event handling** - Full TypeScript support with generics\n- 🌟 **Wildcard listeners** - Subscribe to all events with `*`\n- ⚡ **Async/await support** - Handles both sync and async event handlers\n- 🛡️ **Error handling** - Configurable error capture and propagation\n- 🔄 **One-time subscriptions** - `once()` support for single-use listeners\n- 📊 **Observable** - Track listener counts and event names\n- 🚀 **High performance** - Parallel execution of async handlers\n- 🔌 **Zero dependencies** - Lightweight core with optional logger integration\n\n## Usage\n\n### Basic Event Subscription and Publishing\n\n```typescript\nimport { createEventEmitter } from '@bernierllc/event-emitter';\n\n// Create event emitter\nconst events = createEventEmitter();\n\n// Subscribe to events\nconst subscription = events.on('user.created', (data) => {\n  console.log('User created:', data);\n});\n\n// Publish events\nawait events.emit('user.created', {\n  userId: '123',\n  email: 'user@example.com'\n});\n\n// Unsubscribe\nsubscription.unsubscribe();\n```\n\n### Type-Safe Events\n\n```typescript\ninterface UserCreatedEvent {\n  userId: string;\n  email: string;\n  name: string;\n}\n\n// Type-safe subscription\nevents.on<UserCreatedEvent>('user.created', (data) => {\n  // data is typed as UserCreatedEvent\n  console.log(data.userId, data.email, data.name);\n});\n\n// Type-safe emission\nawait events.emit<UserCreatedEvent>('user.created', {\n  userId: '123',\n  email: 'user@example.com',\n  name: 'John Doe'\n});\n```\n\n### One-Time Subscriptions\n\n```typescript\n// Subscribe once (automatically unsubscribes after first event)\nevents.once('app.ready', () => {\n  console.log('App is ready!');\n});\n\nawait events.emit('app.ready', {});\nawait events.emit('app.ready', {}); // Handler won't be called\n```\n\n### Wildcard Listeners\n\n```typescript\n// Listen to all events\nevents.on('*', (data) => {\n  console.log('Event received:', data);\n});\n\n// Both specific and wildcard listeners will be called\nawait events.emit('user.created', { userId: '123' });\nawait events.emit('order.placed', { orderId: '456' });\n```\n\n### Async Event Handlers\n\n```typescript\n// Async handler\nevents.on('user.created', async (data) => {\n  await sendWelcomeEmail(data.email);\n  await createUserProfile(data.userId);\n});\n\n// emit() waits for all handlers to complete\nawait events.emit('user.created', {\n  userId: '123',\n  email: 'user@example.com'\n});\n```\n\n### Error Handling\n\n```typescript\n// With error capture (default)\nconst safeEmitter = createEventEmitter({ captureErrors: true });\n\nsafeEmitter.on('process', () => {\n  throw new Error('Processing failed');\n});\n\n// Errors are captured and logged, other handlers continue\nawait safeEmitter.emit('process', {});\n\n// Without error capture\nconst strictEmitter = createEventEmitter({ captureErrors: false });\n\nstrictEmitter.on('process', () => {\n  throw new Error('Processing failed');\n});\n\n// Errors are thrown\nawait strictEmitter.emit('process', {}); // Throws error\n```\n\n### Max Listeners\n\n```typescript\n// Limit listeners per event\nconst limitedEmitter = createEventEmitter({ maxListeners: 10 });\n\n// Add 10 listeners\nfor (let i = 0; i < 10; i++) {\n  limitedEmitter.on('test', () => console.log(i));\n}\n\n// This will throw\nlimitedEmitter.on('test', () => console.log('too many')); // Error!\n```\n\n### Managing Listeners\n\n```typescript\n// Get listener count\nconst count = events.listenerCount('user.created');\nconsole.log(`${count} listeners for user.created`);\n\n// Get all event names\nconst eventNames = events.eventNames();\nconsole.log('Active events:', eventNames);\n\n// Remove all listeners for specific event\nevents.removeAllListeners('user.created');\n\n// Remove all listeners for all events\nevents.removeAllListeners();\n```\n\n## Configuration\n\n```typescript\nconst events = createEventEmitter({\n  // Maximum listeners per event (0 = unlimited)\n  maxListeners: 100,\n\n  // Log events (requires @bernierllc/logger)\n  logEvents: true,\n\n  // Capture and suppress handler errors\n  captureErrors: true\n});\n```\n\n### Environment Variables\n\n```bash\nEVENT_EMITTER_MAX_LISTENERS=100\nEVENT_EMITTER_LOG_EVENTS=true\nEVENT_EMITTER_CAPTURE_ERRORS=true\n```\n\n## API Reference\n\n### `EventEmitter`\n\nMain class for event management.\n\n#### Methods\n\n- `on<T>(eventType: string, handler: EventHandler<T>): EventSubscription` - Subscribe to event\n- `once<T>(eventType: string, handler: EventHandler<T>): EventSubscription` - Subscribe once\n- `off(subscription: EventSubscription): void` - Unsubscribe from event\n- `emit<T>(eventType: string, data: T): Promise<void>` - Publish event\n- `removeAllListeners(eventType?: string): void` - Remove all listeners\n- `listenerCount(eventType: string): number` - Get listener count\n- `eventNames(): string[]` - Get all event names\n\n### `EventSubscription`\n\nSubscription object returned by `on()` and `once()`.\n\n```typescript\ninterface EventSubscription {\n  id: string;                    // Unique subscription ID\n  eventType: string;             // Event type\n  handler: EventHandler;         // Handler function\n  once: boolean;                 // One-time subscription?\n  unsubscribe: () => void;       // Unsubscribe function\n}\n```\n\n### `EventHandler<T>`\n\nEvent handler function type.\n\n```typescript\ntype EventHandler<T = any> = (data: T) => void | Promise<void>;\n```\n\n### `createEventEmitter(options?: EventEmitterOptions): EventEmitter`\n\nFactory function for creating event emitters.\n\n## Integration Status\n\n### Logger Integration\n**Status**: Optional (recommended for event tracking)\n\n**Justification**: While this package can function without logging, it's highly recommended to integrate `@bernierllc/logger` for event tracking and error monitoring. Event emitters often need to log event emissions, listener registrations, and errors to help with debugging and monitoring event-driven workflows. However, the package is designed to work without logging for environments where logging isn't available.\n\n**Pattern**: Optional integration - package works without logger, but logger enhances event tracking capabilities.\n\n**Example Integration**:\n```typescript\nimport { Logger } from '@bernierllc/logger';\nimport { EventEmitter } from '@bernierllc/event-emitter';\n\nconst logger = new Logger({ service: 'event-emitter' });\nconst emitter = new EventEmitter({ logger });\n\nemitter.on('error', (error) => {\n  logger.error('Event emitter error', error);\n});\n```\n\n### NeverHub Integration\n**Status**: Optional (recommended for distributed event bus)\n\n**Justification**: While this package can function without NeverHub, it's highly recommended to integrate `@bernierllc/neverhub-adapter` for distributed event bus capabilities. Event emitters often need to coordinate events across services, and NeverHub provides a service mesh for publishing events that other services can subscribe to. However, the package is designed to work without NeverHub for simpler use cases.\n\n**Pattern**: Optional integration - package works without NeverHub, but NeverHub enhances distributed event capabilities.\n\n**Example Integration**:\n```typescript\nimport { NeverHubAdapter } from '@bernierllc/neverhub-adapter';\nimport { EventEmitter } from '@bernierllc/event-emitter';\n\nconst neverhub = new NeverHubAdapter({ service: 'event-emitter' });\nconst emitter = new EventEmitter();\n\n// Bridge local events to NeverHub\nemitter.on('user:created', async (data) => {\n  await neverhub.publish('user.created', data);\n});\n```\n\n### Docs-Suite Integration\n**Status**: Ready\n\n**Format**: TypeDoc-compatible JSDoc comments are included throughout the source code. All public APIs are documented with examples and type information.\n\n## Use Cases\n\n### Inter-Package Communication\n\n```typescript\n// In cache-manager package\nevents.emit('cache.invalidated', { key: 'user:123' });\n\n// In data-sync package\nevents.on('cache.invalidated', async (data) => {\n  await refreshData(data.key);\n});\n```\n\n### State Management\n\n```typescript\n// State changes\nevents.on('state.changed', (newState) => {\n  console.log('State updated:', newState);\n});\n\nawait events.emit('state.changed', { status: 'active' });\n```\n\n### Task Lifecycle Events\n\n```typescript\n// Task queue events\nevents.on('task.started', (task) => console.log('Started:', task.id));\nevents.on('task.completed', (task) => console.log('Completed:', task.id));\nevents.on('task.failed', (task) => console.log('Failed:', task.id));\n```\n\n### Workflow Orchestration\n\n```typescript\n// Multi-step workflow\nevents.on('workflow.step.completed', async (data) => {\n  if (data.nextStep) {\n    await events.emit('workflow.step.start', { step: data.nextStep });\n  }\n});\n```\n\n## Performance\n\n- **Parallel Execution**: Async handlers execute in parallel via `Promise.all()`\n- **Memory Efficient**: Automatic cleanup of empty listener sets\n- **Fast Lookups**: O(1) listener retrieval using Map data structure\n- **Zero Dependencies**: Minimal bundle size (~2KB gzipped)\n\n## Testing\n\n```bash\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run tests in watch mode\nnpm run test:watch\n```\n\n## See Also\n\n- [@bernierllc/logger](../logger) - Logging integration for event tracking\n- [@bernierllc/cache-manager](../cache-manager) - Uses events for cache invalidation\n- [@bernierllc/state-machine](../state-machine) - Uses events for state transitions\n- [@bernierllc/task-queue](../task-queue) - Uses events for task lifecycle\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n","readmeFilename":"README.md"}