@irrelon/emitter 5.0.6 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../src/emitter.ts","../../tests/emitter.test.ts","../../node_modules/@types/node/ts4.8/assert.d.ts","../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../node_modules/@types/node/ts4.8/globals.d.ts","../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../node_modules/@types/node/ts4.8/buffer.d.ts","../../node_modules/@types/node/ts4.8/child_process.d.ts","../../node_modules/@types/node/ts4.8/cluster.d.ts","../../node_modules/@types/node/ts4.8/console.d.ts","../../node_modules/@types/node/ts4.8/constants.d.ts","../../node_modules/@types/node/ts4.8/crypto.d.ts","../../node_modules/@types/node/ts4.8/dgram.d.ts","../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../node_modules/@types/node/ts4.8/dns.d.ts","../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../node_modules/@types/node/ts4.8/domain.d.ts","../../node_modules/@types/node/ts4.8/events.d.ts","../../node_modules/@types/node/ts4.8/fs.d.ts","../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../node_modules/@types/node/ts4.8/http.d.ts","../../node_modules/@types/node/ts4.8/http2.d.ts","../../node_modules/@types/node/ts4.8/https.d.ts","../../node_modules/@types/node/ts4.8/inspector.d.ts","../../node_modules/@types/node/ts4.8/module.d.ts","../../node_modules/@types/node/ts4.8/net.d.ts","../../node_modules/@types/node/ts4.8/os.d.ts","../../node_modules/@types/node/ts4.8/path.d.ts","../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../node_modules/@types/node/ts4.8/process.d.ts","../../node_modules/@types/node/ts4.8/punycode.d.ts","../../node_modules/@types/node/ts4.8/querystring.d.ts","../../node_modules/@types/node/ts4.8/readline.d.ts","../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../node_modules/@types/node/ts4.8/repl.d.ts","../../node_modules/@types/node/ts4.8/stream.d.ts","../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../node_modules/@types/node/ts4.8/test.d.ts","../../node_modules/@types/node/ts4.8/timers.d.ts","../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../node_modules/@types/node/ts4.8/tls.d.ts","../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../node_modules/@types/node/ts4.8/tty.d.ts","../../node_modules/@types/node/ts4.8/url.d.ts","../../node_modules/@types/node/ts4.8/util.d.ts","../../node_modules/@types/node/ts4.8/v8.d.ts","../../node_modules/@types/node/ts4.8/vm.d.ts","../../node_modules/@types/node/ts4.8/wasi.d.ts","../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../node_modules/@types/node/ts4.8/zlib.d.ts","../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../node_modules/@types/node/ts4.8/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"b70aa0fb83e36865d0a0eaf6c48ac44e20cf3f24a63327803b98af47bfb3cb78","signature":"95de3cc79ce33b1197a6c7a1fb78998b3fb77583c814bf16eb58906126ac5333"},{"version":"35c646323071a40f8561d46a3ab38f101a817e4891948299ebb098d2f6957a92","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","3c135ff5bda0355f6b52a10ea931736ec7c5a80b7fb8772019054e0eaa0fd6b6","1abb206a4ecd13b21536b677d7d5f66e0d7316f0d44610197cfcc5776f78884a","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b68bd7bef90dab08b1866a9fee24f03d9fee10bcb3f587b074e96e61abf6d3f0","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","0830071706fa0e477fb5e95f0955cc1062b5948b146b7d4e03a126f12ad6085f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"ecd8eb2ed2ea3f7e17ae00a2ce61db2c199e6e3944f6ff4a02de85c1a98e38eb","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","032cbd1883827ca3728c1400145403b62e65b7b584a0d2115ae538c9edec7936","427ce5854885cfc34387e09de05c1d5c1acf94c2143e1693f1d9ff54880573e7","bed2c4f96fab3348be4a34d88dcb12578c1b2475b07c6acd369e99e227718d81","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","3b105d5a0dacc73812d93e90d3c7243fd5a9c0566a2e63bc2964ca12d882c8e8",{"version":"458e2fd1185e659cb800ef68d01ef77de70dcab8860bedf6d94eaebe736751f1","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"inlineSourceMap":false,"module":1,"outDir":"./","skipLibCheck":false,"strict":true,"target":2},"fileIdsList":[[101],[101,111],[101,113,116],[56,101],[59,101],[60,65,101],[61,71,72,79,89,100,101],[61,62,71,79,101],[63,101],[64,65,72,80,101],[65,89,97,101],[66,68,71,79,101],[67,101],[68,69,101],[70,71,101],[71,101],[71,72,73,89,100,101],[71,72,73,89,92,101],[101,105],[74,79,89,100,101],[71,72,74,75,79,89,97,100,101],[74,76,89,97,100,101],[56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107],[71,77,101],[78,100,101],[68,71,79,89,101],[80,101],[81,101],[59,82,101],[83,99,101,105],[84,101],[85,101],[71,86,87,101],[86,88,101,103],[71,89,90,91,92,101],[89,91,101],[89,90,101],[92,101],[93,101],[71,95,96,101],[95,96,101],[65,79,89,97,101],[98,101],[79,99,101],[60,74,85,100,101],[65,101],[89,101,102],[101,103],[101,104],[60,65,71,73,82,89,100,101,103,105],[89,101,106],[101,109,115],[101,113],[101,110,114],[101,112],[54,56,101]],"referencedMap":[[109,1],[112,2],[111,1],[117,3],[56,4],[57,4],[59,5],[60,6],[61,7],[62,8],[63,9],[64,10],[65,11],[66,12],[67,13],[68,14],[69,14],[70,15],[71,16],[72,17],[73,18],[58,19],[107,1],[74,20],[75,21],[76,22],[108,23],[77,24],[78,25],[79,26],[80,27],[81,28],[82,29],[83,30],[84,31],[85,32],[86,33],[87,33],[88,34],[89,35],[91,36],[90,37],[92,38],[93,39],[94,1],[95,40],[96,41],[97,42],[98,43],[99,44],[100,45],[101,46],[102,47],[103,48],[104,49],[105,50],[106,51],[116,52],[114,53],[115,54],[110,1],[113,55],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[52,1],[1,1],[10,1],[53,1],[54,1],[55,56]],"exportedModulesMap":[[109,1],[112,2],[111,1],[117,3],[56,4],[57,4],[59,5],[60,6],[61,7],[62,8],[63,9],[64,10],[65,11],[66,12],[67,13],[68,14],[69,14],[70,15],[71,16],[72,17],[73,18],[58,19],[107,1],[74,20],[75,21],[76,22],[108,23],[77,24],[78,25],[79,26],[80,27],[81,28],[82,29],[83,30],[84,31],[85,32],[86,33],[87,33],[88,34],[89,35],[91,36],[90,37],[92,38],[93,39],[94,1],[95,40],[96,41],[97,42],[98,43],[99,44],[100,45],[101,46],[102,47],[103,48],[104,49],[105,50],[106,51],[116,52],[114,53],[115,54],[110,1],[113,55],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[52,1],[1,1],[10,1],[53,1]],"semanticDiagnosticsPerFile":[109,112,111,117,56,57,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,58,107,74,75,76,108,77,78,79,80,81,82,83,84,85,86,87,88,89,91,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,116,114,115,110,113,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,36,41,42,37,38,39,40,8,46,43,44,45,47,9,48,49,50,51,52,1,10,53,54,55]},"version":"4.8.4"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/emitter.ts","../../tests/emitter.test.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"26fbc5e2e6ca6b5341a2c1b0f2a22d7727cb461f45924569dee7c39b41477756","signature":"815c63ed250d406ad551ba3690048484ee5fc4a788410760301a13d5b2af10d8"},{"version":"f7f80f896c5dbc24c28c7d2589e922de1e6258c3a47509d4e97ebe94000d58c9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"e31b69b603075736c59065f0c89606f93068600d94b456dda77248c8b2a803a9","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","3c135ff5bda0355f6b52a10ea931736ec7c5a80b7fb8772019054e0eaa0fd6b6","1abb206a4ecd13b21536b677d7d5f66e0d7316f0d44610197cfcc5776f78884a","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b68bd7bef90dab08b1866a9fee24f03d9fee10bcb3f587b074e96e61abf6d3f0","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","24ad30a03d6c9266b63540956868dd70fa2dc523d60d780d6586eb0c281946bc",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"854a39fe9c9e32cc0855380e0f16bbb25217c3b62d8a687fe2b663ba44b3b5a1","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","032cbd1883827ca3728c1400145403b62e65b7b584a0d2115ae538c9edec7936","427ce5854885cfc34387e09de05c1d5c1acf94c2143e1693f1d9ff54880573e7","bed2c4f96fab3348be4a34d88dcb12578c1b2475b07c6acd369e99e227718d81","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","3b105d5a0dacc73812d93e90d3c7243fd5a9c0566a2e63bc2964ca12d882c8e8",{"version":"458e2fd1185e659cb800ef68d01ef77de70dcab8860bedf6d94eaebe736751f1","affectsGlobalScope":true}],"root":[64,65],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"inlineSourceMap":false,"module":1,"outDir":"./","skipLibCheck":false,"strict":true,"target":2},"fileIdsList":[[111],[111,121],[111,123,126],[66,111],[69,111],[70,75,111],[71,81,82,89,99,110,111],[71,72,81,89,111],[73,111],[74,75,82,90,111],[75,99,107,111],[76,78,81,89,111],[77,111],[78,79,111],[80,81,111],[81,111],[81,82,83,99,110,111],[81,82,83,99,102,111],[111,115],[84,89,99,110,111],[81,82,84,85,89,99,107,110,111],[84,86,99,107,110,111],[66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[81,87,111],[88,110,111],[78,81,89,99,111],[90,111],[91,111],[69,92,111],[93,109,111,115],[94,111],[95,111],[81,96,97,111],[96,98,111,113],[81,99,100,101,102,111],[99,101,111],[99,100,111],[102,111],[103,111],[81,105,106,111],[105,106,111],[75,89,99,107,111],[108,111],[89,109,111],[70,84,95,110,111],[75,111],[99,111,112],[111,113],[111,114],[70,75,81,83,92,99,110,111,113,115],[99,111,116],[111,119,125],[111,123],[111,120,124],[111,122],[64,66,111]],"referencedMap":[[119,1],[122,2],[121,1],[127,3],[66,4],[67,4],[69,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,14],[80,15],[81,16],[82,17],[83,18],[68,19],[117,1],[84,20],[85,21],[86,22],[118,23],[87,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,33],[98,34],[99,35],[101,36],[100,37],[102,38],[103,39],[104,1],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[126,52],[124,53],[125,54],[120,1],[123,55],[62,1],[63,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[58,1],[10,1],[1,1],[11,1],[61,1],[60,1],[59,1],[64,1],[65,56]],"exportedModulesMap":[[119,1],[122,2],[121,1],[127,3],[66,4],[67,4],[69,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,14],[80,15],[81,16],[82,17],[83,18],[68,19],[117,1],[84,20],[85,21],[86,22],[118,23],[87,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,33],[98,34],[99,35],[101,36],[100,37],[102,38],[103,39],[104,1],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[126,52],[124,53],[125,54],[120,1],[123,55],[62,1],[63,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[58,1],[10,1],[1,1],[11,1],[61,1],[60,1],[59,1]],"semanticDiagnosticsPerFile":[119,122,121,127,66,67,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,68,117,84,85,86,118,87,88,89,90,91,92,93,94,95,96,97,98,99,101,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,126,124,125,120,123,62,63,13,12,2,14,15,16,17,18,19,20,21,3,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,58,10,1,11,61,60,59,64,65]},"version":"5.3.2"}
@@ -1,31 +1,31 @@
1
- export declare type AnyFunction<ReturnType = any> = (...args: any[]) => ReturnType;
2
- export declare type AnyConstructor = new (...args: any[]) => any;
3
- export declare enum EventReturnFlag {
4
- none = 0,
5
- cancel = 1
1
+ export type AnyFunction<ReturnType = any> = (...args: any[]) => ReturnType;
2
+ export type AnyConstructor = new (...args: any[]) => any;
3
+ export declare enum ListenerReturnFlag {
4
+ none = "!+_NONE",
5
+ cancel = "!+_CANCEL"
6
6
  }
7
- export declare type EventListenerCallback<EventCallbackFunctionSignature extends AnyFunction = AnyFunction> = (...args: Parameters<EventCallbackFunctionSignature>) => ReturnType<EventCallbackFunctionSignature>;
7
+ export type EventListenerCallback<EventCallbackFunctionSignature extends AnyFunction = AnyFunction> = (...args: Parameters<EventCallbackFunctionSignature>) => ReturnType<EventCallbackFunctionSignature>;
8
8
  export interface EventStaticEmitterObject<EventCallbackFunctionSignature extends AnyFunction = AnyFunction> {
9
9
  id: string;
10
10
  args: Parameters<EventCallbackFunctionSignature>;
11
11
  }
12
- export interface EmitterEventsInterface {
12
+ export interface EmitterAnyEventsInterface {
13
13
  [key: string]: AnyFunction;
14
14
  }
15
- export declare type ConvertInterfaceToDict<T> = {
15
+ export type EmitterEventsInterface<T> = {
16
16
  [K in keyof T]: T[K];
17
17
  };
18
18
  /**
19
19
  * Creates a new class with the capability to emit events.
20
20
  */
21
- export declare class Emitter<EventsInterface extends EmitterEventsInterface = EmitterEventsInterface> {
21
+ export declare class Emitter<EventsInterface extends EmitterEventsInterface<EventsInterface> = EmitterAnyEventsInterface> {
22
22
  _eventsEmitting: boolean;
23
23
  _eventRemovalQueue: any[];
24
24
  _eventListeners?: {
25
- [EventName in (keyof EventsInterface)]?: Record<string, EventListenerCallback<EventsInterface[EventName]>[]>;
25
+ [EventName in keyof EventsInterface]?: Record<string, EventListenerCallback<EventsInterface[EventName]>[]>;
26
26
  };
27
27
  _eventStaticEmitters: {
28
- [EventName in (keyof EventsInterface)]?: EventStaticEmitterObject<EventsInterface[EventName]>[];
28
+ [EventName in keyof EventsInterface]?: EventStaticEmitterObject<EventsInterface[EventName]>[];
29
29
  };
30
30
  _eventsAllowDefer: boolean;
31
31
  _eventsDeferTimeouts: Record<any, number>;
@@ -101,6 +101,7 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface = Em
101
101
  off<EventName extends keyof EventsInterface>(eventName: EventName, id: string, listener?: EventListenerCallback<EventsInterface[EventName]>): this;
102
102
  off<EventName extends keyof EventsInterface>(eventName: EventName, listener?: EventListenerCallback<EventsInterface[EventName]>): this;
103
103
  off<EventName extends keyof EventsInterface>(eventName: EventName): this;
104
+ _emitToArrayOfListeners<EventName extends keyof EventsInterface>(arr: EventListenerCallback<EventsInterface[EventName]>[], data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
104
105
  /**
105
106
  * Emit an event by name.
106
107
  * @param eventName The name of the event to emit.
@@ -130,8 +131,8 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface = Em
130
131
  * // The console output is:
131
132
  * // data1, data2
132
133
  */
133
- emit<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>): Promise<EventReturnFlag>;
134
- emitId<EventName extends keyof EventsInterface>(eventName: EventName, id: string, ...data: Parameters<EventsInterface[EventName]>): EventReturnFlag;
134
+ emit<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
135
+ emitId<EventName extends keyof EventsInterface>(eventName: EventName, id: string, ...data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
135
136
  /**
136
137
  * Creates a persistent emitter record that will fire a listener if
137
138
  * one is added for this event after the emitStatic() call has been
@@ -186,13 +187,19 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface = Em
186
187
  * @returns The emitter instance.
187
188
  */
188
189
  deferEmit<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>): this;
190
+ /**
191
+ * Returns true if the result from an emit() call passed as the first
192
+ * argument contains a cancellation flag.
193
+ * @param resultArr
194
+ */
195
+ didCancel(resultArr: (unknown | ListenerReturnFlag)[]): boolean;
189
196
  /**
190
197
  * If events are cleared with the off() method while the event emitter is
191
198
  * actively processing any events then the off() calls get added to a
192
199
  * queue to be executed after the event emitter is finished. This stops
193
- * errors that might occur by potentially modifying the event queue while
194
- * the emitter is running through them. This method is called after the
195
- * event emitter is finished processing.
200
+ * errors that might occur by potentially mutating the event listener array
201
+ * while the emitter is running through them. This method is called after
202
+ * the event emitter is finished processing.
196
203
  * @private
197
204
  */
198
205
  _processRemovalQueue(): void;
@@ -1,8 +1,8 @@
1
- export var EventReturnFlag;
2
- (function (EventReturnFlag) {
3
- EventReturnFlag[EventReturnFlag["none"] = 0] = "none";
4
- EventReturnFlag[EventReturnFlag["cancel"] = 1] = "cancel";
5
- })(EventReturnFlag || (EventReturnFlag = {}));
1
+ export var ListenerReturnFlag;
2
+ (function (ListenerReturnFlag) {
3
+ ListenerReturnFlag["none"] = "!+_NONE";
4
+ ListenerReturnFlag["cancel"] = "!+_CANCEL";
5
+ })(ListenerReturnFlag || (ListenerReturnFlag = {}));
6
6
  /**
7
7
  * Creates a new class with the capability to emit events.
8
8
  */
@@ -28,11 +28,13 @@ export class Emitter {
28
28
  }, 1);
29
29
  };
30
30
  this._eventListeners = this._eventListeners || {};
31
- const nonNullableEventListeners = this._eventListeners[eventName] = this._eventListeners[eventName] || {};
31
+ const nonNullableEventListeners = (this._eventListeners[eventName] = this._eventListeners[eventName] || {});
32
32
  nonNullableEventListeners[id] = nonNullableEventListeners[id] || [];
33
33
  nonNullableEventListeners[id].push(listener);
34
34
  // Check for any static emitters, and fire the event if any exist
35
- if (!this._eventStaticEmitters || !this._eventStaticEmitters[eventName] || !this._eventStaticEmitters[eventName].length)
35
+ if (!this._eventStaticEmitters ||
36
+ !this._eventStaticEmitters[eventName] ||
37
+ !this._eventStaticEmitters[eventName].length)
36
38
  return this;
37
39
  // Emit events for each emitter
38
40
  for (let i = 0; i < this._eventStaticEmitters[eventName].length; i++) {
@@ -145,6 +147,24 @@ export class Emitter {
145
147
  // Both id and listener were provided, remove for the specific id
146
148
  return this._off(eventName, rest[0], rest[1]);
147
149
  }
150
+ _emitToArrayOfListeners(arr, data) {
151
+ const arrCount = arr.length;
152
+ const resultArr = [];
153
+ for (let arrIndex = 0; arrIndex < arrCount; arrIndex++) {
154
+ // Check we have a function to execute
155
+ const tmpFunc = arr[arrIndex];
156
+ if (typeof tmpFunc !== "function") {
157
+ continue;
158
+ }
159
+ const eventListenerResponse = tmpFunc(...data);
160
+ resultArr.push(eventListenerResponse);
161
+ if (eventListenerResponse === ListenerReturnFlag.cancel) {
162
+ // Cancel further event processing
163
+ break;
164
+ }
165
+ }
166
+ return resultArr;
167
+ }
148
168
  /**
149
169
  * Emit an event by name.
150
170
  * @param eventName The name of the event to emit.
@@ -174,68 +194,28 @@ export class Emitter {
174
194
  * // The console output is:
175
195
  * // data1, data2
176
196
  */
177
- async emit(eventName, ...data) {
178
- if (!this._eventListeners) {
179
- return EventReturnFlag.none;
180
- }
181
- const id = "*";
182
- let returnFlag = EventReturnFlag.none;
183
- this._eventsEmitting = true;
184
- if (this._eventListeners[eventName] && this._eventListeners[eventName][id]) {
185
- // Handle global emit
186
- const arr = this._eventListeners[eventName][id];
187
- const promiseArr = arr.map((tmpFunc) => {
188
- if (typeof tmpFunc !== "function")
189
- return;
190
- return tmpFunc(...data);
191
- });
192
- const result = (await Promise.all(promiseArr)).find((tmpResult) => tmpResult !== EventReturnFlag.none);
193
- if (result) {
194
- returnFlag = EventReturnFlag.cancel;
195
- }
196
- }
197
- this._eventsEmitting = false;
198
- this._processRemovalQueue();
199
- return returnFlag;
197
+ emit(eventName, ...data) {
198
+ return this.emitId(eventName, "*", ...data);
200
199
  }
201
200
  emitId(eventName, id, ...data) {
202
- if (!this._eventListeners) {
203
- return EventReturnFlag.none;
201
+ if (!this._eventListeners || !this._eventListeners[eventName]) {
202
+ return [];
204
203
  }
205
- this._eventListeners = this._eventListeners || {};
204
+ let emitterResult = [];
206
205
  this._eventsEmitting = true;
207
- if (!this._eventListeners[eventName]) {
208
- this._eventsEmitting = false;
209
- this._processRemovalQueue();
210
- return EventReturnFlag.none;
211
- }
212
206
  // Handle id emit
213
207
  if (this._eventListeners[eventName][id]) {
214
208
  const arr = this._eventListeners[eventName][id];
215
- const arrCount = arr.length;
216
- for (let arrIndex = 0; arrIndex < arrCount; arrIndex++) {
217
- // Check we have a function to execute
218
- const tmpFunc = arr[arrIndex];
219
- if (typeof tmpFunc === "function") {
220
- tmpFunc.call(this, ...data);
221
- }
222
- }
209
+ emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, data));
223
210
  }
224
- // Handle global emit
225
- if (this._eventListeners[eventName]["*"]) {
211
+ // Handle global emit if the id passed wasn't already a global (*) id
212
+ if (id !== "*" && this._eventListeners[eventName]["*"]) {
226
213
  const arr = this._eventListeners[eventName]["*"];
227
- const arrCount = arr.length;
228
- for (let arrIndex = 0; arrIndex < arrCount; arrIndex++) {
229
- // Check we have a function to execute
230
- const tmpFunc = arr[arrIndex];
231
- if (typeof tmpFunc === "function") {
232
- tmpFunc.call(this, ...data);
233
- }
234
- }
214
+ emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, data));
235
215
  }
236
216
  this._eventsEmitting = false;
237
217
  this._processRemovalQueue();
238
- return EventReturnFlag.none;
218
+ return emitterResult;
239
219
  }
240
220
  /**
241
221
  * Creates a persistent emitter record that will fire a listener if
@@ -266,8 +246,8 @@ export class Emitter {
266
246
  this._eventStaticEmitters = this._eventStaticEmitters || {};
267
247
  this._eventStaticEmitters[eventName] = this._eventStaticEmitters[eventName] || [];
268
248
  this._eventStaticEmitters[eventName].push({
269
- "id": "*",
270
- "args": data
249
+ id: "*",
250
+ args: data
271
251
  });
272
252
  this._processRemovalQueue();
273
253
  return this;
@@ -318,7 +298,7 @@ export class Emitter {
318
298
  this._eventStaticEmitters[eventName] = this._eventStaticEmitters[eventName] || [];
319
299
  this._eventStaticEmitters[eventName].push({
320
300
  id,
321
- "args": data
301
+ args: data
322
302
  });
323
303
  this._processRemovalQueue();
324
304
  return this;
@@ -420,13 +400,21 @@ export class Emitter {
420
400
  }
421
401
  return this;
422
402
  }
403
+ /**
404
+ * Returns true if the result from an emit() call passed as the first
405
+ * argument contains a cancellation flag.
406
+ * @param resultArr
407
+ */
408
+ didCancel(resultArr) {
409
+ return resultArr.findIndex((result) => result === ListenerReturnFlag.cancel) > -1;
410
+ }
423
411
  /**
424
412
  * If events are cleared with the off() method while the event emitter is
425
413
  * actively processing any events then the off() calls get added to a
426
414
  * queue to be executed after the event emitter is finished. This stops
427
- * errors that might occur by potentially modifying the event queue while
428
- * the emitter is running through them. This method is called after the
429
- * event emitter is finished processing.
415
+ * errors that might occur by potentially mutating the event listener array
416
+ * while the emitter is running through them. This method is called after
417
+ * the event emitter is finished processing.
430
418
  * @private
431
419
  */
432
420
  _processRemovalQueue() {
@@ -1,5 +1,5 @@
1
1
  import assert from "assert";
2
- import { Emitter } from "../src/Emitter";
2
+ import { Emitter, ListenerReturnFlag } from "../src/Emitter";
3
3
  let expectedAssertions = 0;
4
4
  let actualAssertions = 0;
5
5
  function expect(val) {
@@ -24,11 +24,12 @@ describe("Emitter", () => {
24
24
  describe("new Emitter()", () => {
25
25
  it("Creates emitter instance by instantiation", () => {
26
26
  const myClass = new Emitter();
27
- myClass.on("moo", () => {
28
- });
27
+ myClass.on("moo", () => { });
29
28
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listener registered on event");
30
29
  myClass.off("moo");
31
- assert.strictEqual(!myClass._eventListeners?.moo || !myClass._eventListeners.moo["*"] || myClass._eventListeners.moo["*"].length, true, "Listeners all removed from event");
30
+ assert.strictEqual(!myClass._eventListeners?.moo ||
31
+ !myClass._eventListeners.moo["*"] ||
32
+ myClass._eventListeners.moo["*"].length, true, "Listeners all removed from event");
32
33
  });
33
34
  it("Supports extending Emitter as a base class", () => {
34
35
  let testFuncCount = 0;
@@ -77,26 +78,34 @@ describe("Emitter", () => {
77
78
  myClass.emitId("moo", "testId", "foo");
78
79
  assert.strictEqual(emitCount, 1, "Event fired correctly");
79
80
  myClass.off("moo", "testId");
80
- assert.strictEqual(!myClass._eventListeners?.moo || !myClass._eventListeners?.moo["testId"] || myClass._eventListeners?.moo["testId"].length === 0, true, "Listeners all removed from event");
81
- assert.strictEqual(myClass._eventListeners?.moo && myClass._eventListeners?.moo["^^noId"] && myClass._eventListeners?.moo["^^noId"].length === 1, true, "Global listener still there");
82
- assert.strictEqual(!myClass._eventListeners?.moo || !myClass._eventListeners?.moo["*"] || myClass._eventListeners?.moo["*"].length === 0, true, "Global listener still there");
81
+ assert.strictEqual(!myClass._eventListeners?.moo ||
82
+ !myClass._eventListeners?.moo["testId"] ||
83
+ myClass._eventListeners?.moo["testId"].length === 0, true, "Listeners all removed from event");
84
+ assert.strictEqual(myClass._eventListeners?.moo &&
85
+ myClass._eventListeners?.moo["^^noId"] &&
86
+ myClass._eventListeners?.moo["^^noId"].length === 1, true, "Global listener still there");
87
+ assert.strictEqual(!myClass._eventListeners?.moo ||
88
+ !myClass._eventListeners?.moo["*"] ||
89
+ myClass._eventListeners?.moo["*"].length === 0, true, "Global listener still there");
83
90
  myClass.off("moo");
84
- assert.strictEqual(!myClass._eventListeners?.moo || !myClass._eventListeners?.moo["*"] || myClass._eventListeners?.moo["*"].length === 0, true, "Listeners all removed from event");
91
+ assert.strictEqual(!myClass._eventListeners?.moo ||
92
+ !myClass._eventListeners?.moo["*"] ||
93
+ myClass._eventListeners?.moo["*"].length === 0, true, "Listeners all removed from event");
85
94
  });
86
95
  });
87
96
  describe("emit()", () => {
88
97
  it("Supports type safe usage", async () => {
89
98
  const emitter = new Emitter();
90
99
  let listenerFiredCount = 0;
91
- emitter.on("person", async (name, age, enabled) => {
100
+ emitter.on("person", (name) => {
92
101
  return new Promise((resolve) => {
93
102
  setTimeout(() => {
94
103
  listenerFiredCount++;
95
- resolve();
104
+ resolve(name);
96
105
  }, 1000);
97
106
  });
98
107
  });
99
- emitter.on("post", async () => {
108
+ emitter.on("post", () => {
100
109
  return new Promise((resolve) => {
101
110
  setTimeout(() => {
102
111
  listenerFiredCount++;
@@ -104,7 +113,7 @@ describe("Emitter", () => {
104
113
  }, 1000);
105
114
  });
106
115
  });
107
- emitter.on("post", async () => {
116
+ emitter.on("post", () => {
108
117
  return new Promise((resolve) => {
109
118
  setTimeout(() => {
110
119
  listenerFiredCount++;
@@ -113,9 +122,10 @@ describe("Emitter", () => {
113
122
  });
114
123
  });
115
124
  const time = new Date().getTime();
116
- await emitter.emit("post");
125
+ await Promise.all(emitter.emit("post"));
117
126
  const delta = new Date().getTime() - time;
118
127
  assert.ok(delta > 900, `Delta was not correct, await may not have paused? Delta was: ${delta}`);
128
+ assert.ok(listenerFiredCount === 2, `listenerFiredCount was not correct, await may not have paused? listenerFiredCount was: ${listenerFiredCount}`);
119
129
  });
120
130
  it("Supports awaiting async listeners", async () => {
121
131
  const emitter = new Emitter();
@@ -137,42 +147,84 @@ describe("Emitter", () => {
137
147
  });
138
148
  });
139
149
  const time = new Date().getTime();
140
- await emitter.emit("foo");
150
+ await Promise.all(emitter.emit("foo"));
151
+ const delta = new Date().getTime() - time;
152
+ assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
153
+ });
154
+ it("Supports awaiting async and non-async listener return data", async () => {
155
+ const emitter = new Emitter();
156
+ let listenerFiredCount = 0;
157
+ emitter.on("foo", () => {
158
+ return new Promise((resolve) => {
159
+ setTimeout(() => {
160
+ listenerFiredCount++;
161
+ resolve("Foo1 Return Value");
162
+ }, 1000);
163
+ });
164
+ });
165
+ emitter.on("foo", () => {
166
+ return "Foo2 Return Value";
167
+ });
168
+ const time = new Date().getTime();
169
+ const results = await Promise.all(emitter.emit("foo"));
141
170
  const delta = new Date().getTime() - time;
142
171
  assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
172
+ assert.ok(listenerFiredCount === 1, "listenerFiredCount was not correct, await may not have been used?");
173
+ assert.strictEqual(results[0], "Foo1 Return Value", "Return data for foo1 was not correct");
174
+ assert.strictEqual(results[1], "Foo2 Return Value", "Return data for foo2 was not correct");
175
+ });
176
+ it("Supports responding with a cancellation signal", async () => {
177
+ const emitter = new Emitter();
178
+ let listenerFiredCount = 0;
179
+ emitter.on("foo", () => {
180
+ listenerFiredCount++;
181
+ return "Foo1 Return Value";
182
+ });
183
+ emitter.on("foo", () => {
184
+ listenerFiredCount++;
185
+ // This listener will respond with a cancellation, this should terminate further listener calls
186
+ return ListenerReturnFlag.cancel;
187
+ });
188
+ emitter.on("foo", () => {
189
+ listenerFiredCount++;
190
+ return "Foo3 Return Value";
191
+ });
192
+ emitter.on("foo", () => {
193
+ listenerFiredCount++;
194
+ return "Foo4 Return Value";
195
+ });
196
+ const results = emitter.emit("foo");
197
+ assert.ok(listenerFiredCount === 2, "listenerFiredCount was not correct, await may not have been used?");
198
+ assert.strictEqual(results[0], "Foo1 Return Value", "Return data should be a cancel flag");
199
+ assert.strictEqual(results[1], ListenerReturnFlag.cancel, "Return data should be a cancel flag");
200
+ assert.ok(emitter.didCancel(results), "didCancel should detect a cancel flag");
143
201
  });
144
202
  });
145
203
  describe("off()", () => {
146
204
  it("Cancels all listeners (event)", () => {
147
205
  const myClass = new Emitter();
148
- const listener1 = () => {
149
- };
150
- const listener2 = () => {
151
- };
152
- myClass.on("moo", () => {
153
- });
206
+ const listener1 = () => { };
207
+ const listener2 = () => { };
208
+ myClass.on("moo", () => { });
154
209
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
155
- myClass.on("moo", "testId", () => {
156
- });
210
+ myClass.on("moo", "testId", () => { });
157
211
  assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
158
212
  myClass.on("moo", listener1);
159
213
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
160
214
  myClass.on("moo", "testId", listener2);
161
215
  assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 2, "Listeners registered on event");
162
216
  myClass.off("moo");
163
- assert.strictEqual(!myClass._eventListeners?.moo || (myClass._eventListeners?.moo["*"].length === 0 && myClass._eventListeners?.moo["testId"].length === 0), true, "Listeners all removed from event");
217
+ assert.strictEqual(!myClass._eventListeners?.moo ||
218
+ (myClass._eventListeners?.moo["*"].length === 0 &&
219
+ myClass._eventListeners?.moo["testId"].length === 0), true, "Listeners all removed from event");
164
220
  });
165
221
  it("Cancels id-based listeners (event, id)", () => {
166
222
  const myClass = new Emitter();
167
- const listener1 = () => {
168
- };
169
- const listener2 = () => {
170
- };
171
- myClass.on("moo", () => {
172
- });
223
+ const listener1 = () => { };
224
+ const listener2 = () => { };
225
+ myClass.on("moo", () => { });
173
226
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
174
- myClass.on("moo", "testId", () => {
175
- });
227
+ myClass.on("moo", "testId", () => { });
176
228
  assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
177
229
  myClass.on("moo", listener1);
178
230
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
@@ -184,15 +236,11 @@ describe("Emitter", () => {
184
236
  });
185
237
  it("Cancels listener-based listeners (event, listener)", () => {
186
238
  const myClass = new Emitter();
187
- const listener1 = () => {
188
- };
189
- const listener2 = () => {
190
- };
191
- myClass.on("moo", () => {
192
- });
239
+ const listener1 = () => { };
240
+ const listener2 = () => { };
241
+ myClass.on("moo", () => { });
193
242
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
194
- myClass.on("moo", "testId", () => {
195
- });
243
+ myClass.on("moo", "testId", () => { });
196
244
  assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
197
245
  myClass.on("moo", listener1);
198
246
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
@@ -204,15 +252,11 @@ describe("Emitter", () => {
204
252
  });
205
253
  it("Cancels id-based + listener-based listeners (event, id, listener)", () => {
206
254
  const myClass = new Emitter();
207
- const listener1 = () => {
208
- };
209
- const listener2 = () => {
210
- };
211
- myClass.on("moo", () => {
212
- });
255
+ const listener1 = () => { };
256
+ const listener2 = () => { };
257
+ myClass.on("moo", () => { });
213
258
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
214
- myClass.on("moo", "testId", () => {
215
- });
259
+ myClass.on("moo", "testId", () => { });
216
260
  assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
217
261
  myClass.on("moo", listener1);
218
262
  assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
@@ -327,10 +371,16 @@ describe("Emitter", () => {
327
371
  myClass.emitId("moo", "testId", "foo");
328
372
  assert.strictEqual(emitCount, 2, "Event fired correctly");
329
373
  myClass.off("moo", "testId");
330
- assert.strictEqual(!myClass._eventListeners?.moo || !myClass._eventListeners?.moo["testId"] || myClass._eventListeners?.moo["testId"].length, true, "Listeners all removed from event");
331
- assert.strictEqual(myClass._eventListeners?.moo && myClass._eventListeners?.moo["*"] && myClass._eventListeners?.moo["*"].length === 1, true, "Global listener still there");
374
+ assert.strictEqual(!myClass._eventListeners?.moo ||
375
+ !myClass._eventListeners?.moo["testId"] ||
376
+ myClass._eventListeners?.moo["testId"].length, true, "Listeners all removed from event");
377
+ assert.strictEqual(myClass._eventListeners?.moo &&
378
+ myClass._eventListeners?.moo["*"] &&
379
+ myClass._eventListeners?.moo["*"].length === 1, true, "Global listener still there");
332
380
  myClass.off("moo");
333
- assert.strictEqual(!myClass._eventListeners?.moo || !myClass._eventListeners?.moo["*"] || myClass._eventListeners?.moo["*"].length === 0, true, "Listeners all removed from event");
381
+ assert.strictEqual(!myClass._eventListeners?.moo ||
382
+ !myClass._eventListeners?.moo["*"] ||
383
+ myClass._eventListeners?.moo["*"].length === 0, true, "Listeners all removed from event");
334
384
  });
335
385
  });
336
386
  });