@dafengzhen/event-bus 0.1.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 dafengzhen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,96 @@
1
+ ## event-bus
2
+
3
+ [![GitHub License](https://img.shields.io/github/license/dafengzhen/event-bus?color=blue)](https://github.com/dafengzhen/event-bus)
4
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/dafengzhen/event-bus/pulls)
5
+
6
+ [简体中文](./README.zh.md)
7
+
8
+ A fully typed EventBus for TypeScript with middleware and pattern-based event matching.
9
+
10
+ ## Features
11
+
12
+ - Type-safe events & payloads
13
+ - Middleware pipeline
14
+ - Pattern listeners (`*`, `prefix:*`, `{param}`)
15
+ - Listener priority & `once`
16
+ - Framework agnostic
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install @dafengzhen/event-bus
22
+ ```
23
+
24
+ ## Basic Usage
25
+
26
+ ```ts
27
+ type Events = {
28
+ 'user:login': { id: string };
29
+ 'user:logout': void;
30
+ 'user:42:update': {};
31
+ };
32
+
33
+ const bus = new EventBus<Events>();
34
+
35
+ bus.on('user:login', ({ id }) => console.log(id));
36
+ bus.onPattern('user:{id}:update', (_e, _p, params) => console.log(params?.id));
37
+
38
+ bus.use(async (ctx, next) => {
39
+ console.log(ctx.event);
40
+ await next();
41
+ });
42
+
43
+ bus.emit('user:login', { id: 'u1' });
44
+ bus.emit('user:42:update', {});
45
+ ```
46
+
47
+ ## Wildcard & Prefix
48
+
49
+ ```ts
50
+ bus.onPattern('*', (event, payload) => {});
51
+ bus.onPattern('user:*', (event, payload) => {});
52
+ ```
53
+
54
+ ## Parameterized Patterns
55
+
56
+ ```ts
57
+ bus.onPattern('user:{id}:update', (_event, payload, params) => {
58
+ console.log(params.id);
59
+ });
60
+ ```
61
+
62
+ ## Middleware
63
+
64
+ ```ts
65
+ bus.use(async (ctx, next) => {
66
+ console.log('before', ctx.event);
67
+ await next();
68
+ });
69
+ ```
70
+
71
+ You can block event propagation:
72
+
73
+ ```ts
74
+ bus.use((ctx) => {
75
+ if (ctx.event === 'user:logout') {
76
+ ctx.block();
77
+ }
78
+ });
79
+ ```
80
+
81
+ ## Pattern Middleware
82
+
83
+ ```ts
84
+ bus.usePattern(async (ctx, next) => {
85
+ console.log(ctx.matched);
86
+ await next();
87
+ });
88
+ ```
89
+
90
+ ## Contributing
91
+
92
+ Pull requests are welcome!
93
+
94
+ ## License
95
+
96
+ [MIT](https://opensource.org/licenses/MIT)
package/README.zh.md ADDED
@@ -0,0 +1,26 @@
1
+ ## 📌 简介
2
+
3
+ [![GitHub License](https://img.shields.io/github/license/dafengzhen/event-bus?color=blue)](https://github.com/dafengzhen/event-bus)
4
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/dafengzhen/event-bus/pulls)
5
+
6
+ [English](./README.md)
7
+
8
+ ## 📦 安装
9
+
10
+ ```bash
11
+ npm install @dafengzhen/event-bus
12
+ ```
13
+
14
+ ## 🚀 示例
15
+
16
+ ```ts
17
+
18
+ ```
19
+
20
+ ## 贡献
21
+
22
+ 欢迎贡献 PR!
23
+
24
+ ## License
25
+
26
+ [MIT](https://opensource.org/licenses/MIT)
@@ -0,0 +1,2 @@
1
+ function $parcel$export(e,r,t,n){Object.defineProperty(e,r,{get:t,set:n,enumerable:!0,configurable:!0})}$parcel$export(module.exports,"EventBus",function(){return $90de646d5f25eb4f$export$5087227eb54526}),$parcel$export(module.exports,"Types",function(){return $377275d04fded93b$exports});"use strict";var $58652fc8c6d493a9$export$71511d61b312f219,$c1e4449832062864$export$71511d61b312f219,$6f584e554366573c$export$71511d61b312f219,$019e0a5646671a88$export$71511d61b312f219,$1b736fffd8e2e70e$export$71511d61b312f219,$7d29c32f5fa2c9e1$export$71511d61b312f219,$ce5de47e1def58f6$export$71511d61b312f219,$75c0df0d5888fda0$export$71511d61b312f219,$4e2b73a79b81990c$export$71511d61b312f219,$e0e2f14a10c78814$export$71511d61b312f219,$4633e1c7274ae8a2$export$71511d61b312f219,$47b21cf860486df7$export$71511d61b312f219,$ccd3f57dadf590be$export$71511d61b312f219,$90de646d5f25eb4f$export$5087227eb54526=function(){"use strict";function e(){$c1e4449832062864$export$71511d61b312f219(this,e),this.anyListeners=new Set,this.listenersByEvent=new Map,this.middlewares=[],this.patternMiddlewares=[],this.patternListeners=[]}return $6f584e554366573c$export$71511d61b312f219(e,[{key:"clear",value:function(e){if(void 0===e){this.listenersByEvent.clear(),this.anyListeners.clear(),this.patternListeners.length=0,this.middlewares.length=0,this.patternMiddlewares.length=0;return}this.listenersByEvent.delete(e)}},{key:"on",value:function(e,r){var t=this;return this.getListenerSet(e).add(r),function(){return t.off(e,r)}}},{key:"off",value:function(e,r){var t=this.listenersByEvent.get(e);t&&(t.delete(r),0===t.size&&this.listenersByEvent.delete(e))}},{key:"once",value:function(e,r){var t=this.on(e,function(e){t(),r(e)});return t}},{key:"onAny",value:function(e){var r=this;return this.anyListeners.add(e),function(){return r.anyListeners.delete(e)}}},{key:"use",value:function(e){var r=this;return this.middlewares.push(e),function(){return r.removeFromArray(r.middlewares,e)}}},{key:"usePattern",value:function(e){var r=this;return this.patternMiddlewares.push(e),function(){return r.removeFromArray(r.patternMiddlewares,e)}}},{key:"onPattern",value:function(e,r,t){var n,a=this,i=this.compilePatternMatcher(e),o={pattern:e,kind:i.kind,match:i.match,priority:null!=(n=null==t?void 0:t.priority)?n:i.priority,once:null==t?void 0:t.once,handler:r};return this.insertPatternByPriority(o),function(){return a.removeFromArray(a.patternListeners,o)}}},{key:"oncePattern",value:function(e,r,t){return this.onPattern(e,r,$7d29c32f5fa2c9e1$export$71511d61b312f219($019e0a5646671a88$export$71511d61b312f219({},t),{once:!0}))}},{key:"listenerCount",value:function(e){var r;if(r=0+(null!=(o=null==(i=this.listenersByEvent.get(e))?void 0:i.size)?o:0)+this.anyListeners.size,"string"==typeof e){var t=!0,n=!1,a=void 0;try{for(var i,o,c,f=this.patternListeners[Symbol.iterator]();!(t=(c=f.next()).done);t=!0)c.value.match(e)&&r++}catch(e){n=!0,a=e}finally{try{t||null==f.return||f.return()}finally{if(n)throw a}}}return r}},{key:"emit",value:function(e){for(var r=arguments.length,t=Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];this._emit.apply(this,[e].concat($ce5de47e1def58f6$export$71511d61b312f219(t))).catch(function(e){queueMicrotask(function(){throw e})})}},{key:"emitAsync",value:function(e){for(var r=arguments.length,t=Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];return this._emit.apply(this,[e].concat($ce5de47e1def58f6$export$71511d61b312f219(t)))}},{key:"_emit",value:function(e){for(var r=arguments.length,t=Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];return $58652fc8c6d493a9$export$71511d61b312f219(function(){var r,n,a;return $ccd3f57dadf590be$export$71511d61b312f219(this,function(i){switch(i.label){case 0:return r=t[0],n=!1,a={get blocked(){return n},event:e,payload:r,matched:[],meta:{},block:function(){n=!0}},[4,this.runMiddlewares(a)];case 1:return i.sent(),[2]}})}).call(this)}},{key:"runMiddlewares",value:function(e){return $58652fc8c6d493a9$export$71511d61b312f219(function(){var r,t,n;return $ccd3f57dadf590be$export$71511d61b312f219(this,function(a){switch(a.label){case 0:return r=this,t=-1,[4,(n=function(a){return $58652fc8c6d493a9$export$71511d61b312f219(function(){var r;return $ccd3f57dadf590be$export$71511d61b312f219(this,function(i){switch(i.label){case 0:if(e.blocked)return[2];if(a<=t)throw Error("next() called multiple times.");if(t=a,r=this.middlewares[a])return[3,2];return this.invokeExactAndAnyListeners(e.event,e.payload),[4,this.invokePatternPipeline(e)];case 1:case 3:return i.sent(),[2];case 2:return[4,r(e,function(){return n(a+1)})]}})}).call(r)})(0)];case 1:return a.sent(),[2]}})}).call(this)}},{key:"invokeExactAndAnyListeners",value:function(e,r){var t=this.listenersByEvent.get(e),n=!0,a=!1,i=void 0;if(t)try{for(var o,c,f=t[Symbol.iterator]();!(n=(c=f.next()).done);n=!0)o=this,function(){var e=c.value;o.safeCall(function(){return e(r)})}()}catch(e){a=!0,i=e}finally{try{n||null==f.return||f.return()}finally{if(a)throw i}}var s=!0,u=!1,l=void 0;try{for(var $,d,p=this.anyListeners[Symbol.iterator]();!(s=(d=p.next()).done);s=!0)$=this,function(){var t=d.value;$.safeCall(function(){return t(e,r)})}()}catch(e){u=!0,l=e}finally{try{s||null==p.return||p.return()}finally{if(u)throw l}}}},{key:"invokePatternPipeline",value:function(e){return $58652fc8c6d493a9$export$71511d61b312f219(function(){var r,t,n,a,i,o,c,f,s,u,l;return $ccd3f57dadf590be$export$71511d61b312f219(this,function($){switch($.label){case 0:if(r=this,t=[],n=!0,a=!1,i=void 0,"string"==typeof e.event)try{for(o=this.patternListeners[Symbol.iterator]();!(n=(c=o.next()).done);n=!0)(s=(f=c.value).match(e.event))&&t.push({entry:f,params:s})}catch(e){a=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(a)throw i}}return e.matched=t.map(function(e){return{handler:e.entry.handler,kind:e.entry.kind,once:e.entry.once,priority:e.entry.priority,prefix:e.entry.prefix}}),u=-1,[4,(l=function(n){return $58652fc8c6d493a9$export$71511d61b312f219(function(){var r,a,i,o,c,f,s,$;return $ccd3f57dadf590be$export$71511d61b312f219(this,function(d){switch(d.label){case 0:if(n<=u)throw Error("next() called multiple times.");if(u=n,!(r=this.patternMiddlewares[n])){a=!0,i=!1,o=void 0;try{for(f=function(){var r=$.value,t=r.entry,n=r.params;c.safeCall(function(){return t.handler(e.event,e.payload,n)}),t.once&&c.removeFromArray(c.patternListeners,t)},s=t[Symbol.iterator]();!(a=($=s.next()).done);a=!0)c=this,f()}catch(e){i=!0,o=e}finally{try{a||null==s.return||s.return()}finally{if(i)throw o}}return[2]}return[4,r(e,function(){return l(n+1)})];case 1:return d.sent(),[2]}})}).call(r)})(0)];case 1:return $.sent(),[2]}})}).call(this)}},{key:"getListenerSet",value:function(e){var r=this.listenersByEvent.get(e);return r||(r=new Set,this.listenersByEvent.set(e,r)),r}},{key:"insertPatternByPriority",value:function(e){for(var r=0,t=this.patternListeners.length;r<t;){var n=r+t>>>1;this.patternListeners[n].priority>=e.priority?r=n+1:t=n}this.patternListeners.splice(r,0,e)}},{key:"removeFromArray",value:function(e,r){var t=e.indexOf(r);t>=0&&e.splice(t,1)}},{key:"safeCall",value:function(e){try{e()}catch(e){queueMicrotask(function(){throw e})}}},{key:"escapeRegexLiteral",value:function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}},{key:"compilePatternMatcher",value:function(e){if("*"===e)return{kind:"star",priority:0,match:function(){return{}}};if(e.endsWith(":*")){var r=e.slice(0,-2);if(!r)throw Error("Invalid pattern: ".concat(e,"."));var t=r+":";return{kind:"prefix",priority:10,match:function(e){return e===r||e.startsWith(t)?{}:null}}}if(e.includes("{")){for(var n=[],a=e.split(/\{(\w+)}/g),i="^",o=0;o<a.length;o++)o%2==0?i+=this.escapeRegexLiteral(a[o]):(n.push(a[o]),i+="([^:]+)");var c=new RegExp(i+="$");return{kind:"param",priority:100+n.length,match:function(e){var r=e.match(c);if(!r)return null;for(var t={},a=0;a<n.length;a++)t[n[a]]=r[a+1];return t}}}throw Error("Unsupported pattern: ".concat(e,"."))}}]),e}(),$377275d04fded93b$exports={};function $58652fc8c6d493a9$var$asyncGeneratorStep(e,r,t,n,a,i,o){try{var c=e[i](o),f=c.value}catch(e){t(e);return}c.done?r(f):Promise.resolve(f).then(n,a)}function $58652fc8c6d493a9$var$_async_to_generator(e){return function(){var r=this,t=arguments;return new Promise(function(n,a){var i=e.apply(r,t);function o(e){$58652fc8c6d493a9$var$asyncGeneratorStep(i,n,a,o,c,"next",e)}function c(e){$58652fc8c6d493a9$var$asyncGeneratorStep(i,n,a,o,c,"throw",e)}o(void 0)})}}"use strict";function $c1e4449832062864$var$_class_call_check(e,r){if(!(e instanceof r))throw TypeError("Cannot call a class as a function")}"use strict";function $6f584e554366573c$var$_defineProperties(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function $6f584e554366573c$var$_create_class(e,r,t){return r&&$6f584e554366573c$var$_defineProperties(e.prototype,r),t&&$6f584e554366573c$var$_defineProperties(e,t),e}"use strict";"use strict";function $1b736fffd8e2e70e$var$_define_property(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function $019e0a5646671a88$var$_object_spread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){$1b736fffd8e2e70e$export$71511d61b312f219(e,r,t[r])})}return e}"use strict";function $7d29c32f5fa2c9e1$var$ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function $7d29c32f5fa2c9e1$var$_object_spread_props(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$7d29c32f5fa2c9e1$var$ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}"use strict";"use strict";"use strict";function $4e2b73a79b81990c$var$_array_like_to_array(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function $75c0df0d5888fda0$var$_array_without_holes(e){if(Array.isArray(e))return $4e2b73a79b81990c$export$71511d61b312f219(e)}"use strict";function $e0e2f14a10c78814$var$_iterable_to_array(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}"use strict";function $4633e1c7274ae8a2$var$_non_iterable_spread(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}"use strict";function $47b21cf860486df7$var$_unsupported_iterable_to_array(e,r){if(e){if("string"==typeof e)return $4e2b73a79b81990c$export$71511d61b312f219(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return $4e2b73a79b81990c$export$71511d61b312f219(e,r)}}function $ce5de47e1def58f6$var$_to_consumable_array(e){return $75c0df0d5888fda0$export$71511d61b312f219(e)||$e0e2f14a10c78814$export$71511d61b312f219(e)||$47b21cf860486df7$export$71511d61b312f219(e)||$4633e1c7274ae8a2$export$71511d61b312f219()}"use strict";function $ccd3f57dadf590be$var$_ts_generator(e,r){var t,n,a,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(o,"next",{value:f(0)}),c(o,"throw",{value:f(1)}),c(o,"return",{value:f(2)}),"function"==typeof Symbol&&c(o,Symbol.iterator,{value:function(){return this}}),o;function f(c){return function(f){var s=[c,f];if(t)throw TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(i=0)),i;)try{if(t=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(a=(a=i.trys).length>0&&a[a.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){i.label=s[1];break}if(6===s[0]&&i.label<a[1]){i.label=a[1],a=s;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(s);break}a[2]&&i.ops.pop(),i.trys.pop();continue}s=r.call(e,i)}catch(e){s=[6,e],n=0}finally{t=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}$58652fc8c6d493a9$export$71511d61b312f219=$58652fc8c6d493a9$var$_async_to_generator,$c1e4449832062864$export$71511d61b312f219=$c1e4449832062864$var$_class_call_check,$6f584e554366573c$export$71511d61b312f219=$6f584e554366573c$var$_create_class,$1b736fffd8e2e70e$export$71511d61b312f219=$1b736fffd8e2e70e$var$_define_property,$019e0a5646671a88$export$71511d61b312f219=$019e0a5646671a88$var$_object_spread,$7d29c32f5fa2c9e1$export$71511d61b312f219=$7d29c32f5fa2c9e1$var$_object_spread_props,$4e2b73a79b81990c$export$71511d61b312f219=$4e2b73a79b81990c$var$_array_like_to_array,$75c0df0d5888fda0$export$71511d61b312f219=$75c0df0d5888fda0$var$_array_without_holes,$e0e2f14a10c78814$export$71511d61b312f219=$e0e2f14a10c78814$var$_iterable_to_array,$4633e1c7274ae8a2$export$71511d61b312f219=$4633e1c7274ae8a2$var$_non_iterable_spread,$47b21cf860486df7$export$71511d61b312f219=$47b21cf860486df7$var$_unsupported_iterable_to_array,$ce5de47e1def58f6$export$71511d61b312f219=$ce5de47e1def58f6$var$_to_consumable_array,$ccd3f57dadf590be$export$71511d61b312f219=$ccd3f57dadf590be$var$_ts_generator;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["<anon>","src/index.ts","src/event-bus.ts","src/types.ts","node_modules/@swc/helpers/cjs/_async_to_generator.cjs","node_modules/@swc/helpers/cjs/_class_call_check.cjs","node_modules/@swc/helpers/cjs/_create_class.cjs","node_modules/@swc/helpers/cjs/_object_spread.cjs","node_modules/@swc/helpers/cjs/_define_property.cjs","node_modules/@swc/helpers/cjs/_object_spread_props.cjs","node_modules/@swc/helpers/cjs/_to_consumable_array.cjs","node_modules/@swc/helpers/cjs/_array_without_holes.cjs","node_modules/@swc/helpers/cjs/_array_like_to_array.cjs","node_modules/@swc/helpers/cjs/_iterable_to_array.cjs","node_modules/@swc/helpers/cjs/_non_iterable_spread.cjs","node_modules/@swc/helpers/cjs/_unsupported_iterable_to_array.cjs","node_modules/@swc/helpers/cjs/_ts_generator.cjs"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n$parcel$export(module.exports, \"EventBus\", function () { return $90de646d5f25eb4f$export$5087227eb54526; });\n$parcel$export(module.exports, \"Types\", function () { return $377275d04fded93b$exports; });\n\n\n\n\n\n\n\nvar $90de646d5f25eb4f$export$5087227eb54526 = /*#__PURE__*/ function() {\n \"use strict\";\n function EventBus() {\n (0, $c1e4449832062864$export$71511d61b312f219)(this, EventBus);\n this.anyListeners = new Set();\n this.listenersByEvent = new Map();\n this.middlewares = [];\n this.patternMiddlewares = [];\n this.patternListeners = [];\n }\n (0, $6f584e554366573c$export$71511d61b312f219)(EventBus, [\n {\n key: \"clear\",\n value: function clear(event) {\n if (event === undefined) {\n this.listenersByEvent.clear();\n this.anyListeners.clear();\n this.patternListeners.length = 0;\n this.middlewares.length = 0;\n this.patternMiddlewares.length = 0;\n return;\n }\n this.listenersByEvent.delete(event);\n }\n },\n {\n key: \"on\",\n value: function on(event, listener) {\n var _this = this;\n this.getListenerSet(event).add(listener);\n return function() {\n return _this.off(event, listener);\n };\n }\n },\n {\n key: \"off\",\n value: function off(event, listener) {\n var set = this.listenersByEvent.get(event);\n if (!set) return;\n set.delete(listener);\n if (set.size === 0) this.listenersByEvent.delete(event);\n }\n },\n {\n key: \"once\",\n value: function once(event, listener) {\n var off = this.on(event, function(payload) {\n off();\n listener(payload);\n });\n return off;\n }\n },\n {\n key: \"onAny\",\n value: function onAny(listener) {\n var _this = this;\n this.anyListeners.add(listener);\n return function() {\n return _this.anyListeners.delete(listener);\n };\n }\n },\n {\n key: \"use\",\n value: function use(mw) {\n var _this = this;\n this.middlewares.push(mw);\n return function() {\n return _this.removeFromArray(_this.middlewares, mw);\n };\n }\n },\n {\n key: \"usePattern\",\n value: function usePattern(mw) {\n var _this = this;\n this.patternMiddlewares.push(mw);\n return function() {\n return _this.removeFromArray(_this.patternMiddlewares, mw);\n };\n }\n },\n {\n key: \"onPattern\",\n value: function onPattern(pattern, handler, options) {\n var _this = this;\n var compiled = this.compilePatternMatcher(pattern);\n var _options_priority;\n var entry = {\n pattern: pattern,\n kind: compiled.kind,\n match: compiled.match,\n priority: (_options_priority = options === null || options === void 0 ? void 0 : options.priority) !== null && _options_priority !== void 0 ? _options_priority : compiled.priority,\n once: options === null || options === void 0 ? void 0 : options.once,\n handler: handler\n };\n this.insertPatternByPriority(entry);\n return function() {\n return _this.removeFromArray(_this.patternListeners, entry);\n };\n }\n },\n {\n key: \"oncePattern\",\n value: function oncePattern(pattern, handler, options) {\n return this.onPattern(pattern, handler, (0, $7d29c32f5fa2c9e1$export$71511d61b312f219)((0, $019e0a5646671a88$export$71511d61b312f219)({}, options), {\n once: true\n }));\n }\n },\n {\n key: \"listenerCount\",\n value: function listenerCount(event) {\n var _this_listenersByEvent_get;\n var count = 0;\n var _this_listenersByEvent_get_size;\n count += (_this_listenersByEvent_get_size = (_this_listenersByEvent_get = this.listenersByEvent.get(event)) === null || _this_listenersByEvent_get === void 0 ? void 0 : _this_listenersByEvent_get.size) !== null && _this_listenersByEvent_get_size !== void 0 ? _this_listenersByEvent_get_size : 0;\n count += this.anyListeners.size;\n if (typeof event === 'string') {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = this.patternListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var p = _step.value;\n if (p.match(event)) count++;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return count;\n }\n },\n {\n key: \"emit\",\n value: function emit(event) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n this._emit.apply(this, [\n event\n ].concat((0, $ce5de47e1def58f6$export$71511d61b312f219)(args))).catch(function(err) {\n queueMicrotask(function() {\n throw err;\n });\n });\n }\n },\n {\n key: \"emitAsync\",\n value: function emitAsync(event) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n return this._emit.apply(this, [\n event\n ].concat((0, $ce5de47e1def58f6$export$71511d61b312f219)(args)));\n }\n },\n {\n key: \"_emit\",\n value: function _emit(event) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n return (/*#__PURE__*/ 0, /*#__PURE__*/ $58652fc8c6d493a9$export$71511d61b312f219)(function() {\n var payload, blocked, ctx;\n return (0, $ccd3f57dadf590be$export$71511d61b312f219)(this, function(_state) {\n switch(_state.label){\n case 0:\n payload = args[0];\n blocked = false;\n ctx = {\n get blocked () {\n return blocked;\n },\n event: event,\n payload: payload,\n matched: [],\n meta: {},\n block: function() {\n blocked = true;\n }\n };\n return [\n 4,\n this.runMiddlewares(ctx)\n ];\n case 1:\n _state.sent();\n return [\n 2\n ];\n }\n });\n }).call(this);\n }\n },\n {\n key: \"runMiddlewares\",\n value: function runMiddlewares(ctx) {\n return (/*#__PURE__*/ 0, /*#__PURE__*/ $58652fc8c6d493a9$export$71511d61b312f219)(function() {\n var _this, index, dispatch;\n return (0, $ccd3f57dadf590be$export$71511d61b312f219)(this, function(_state) {\n switch(_state.label){\n case 0:\n _this = this;\n index = -1;\n dispatch = function(n) {\n return (/*#__PURE__*/ 0, /*#__PURE__*/ $58652fc8c6d493a9$export$71511d61b312f219)(function() {\n var mw;\n return (0, $ccd3f57dadf590be$export$71511d61b312f219)(this, function(_state) {\n switch(_state.label){\n case 0:\n if (ctx.blocked) return [\n 2\n ];\n if (n <= index) throw new Error('next() called multiple times.');\n index = n;\n mw = this.middlewares[n];\n if (!!mw) return [\n 3,\n 2\n ];\n this.invokeExactAndAnyListeners(ctx.event, ctx.payload);\n return [\n 4,\n this.invokePatternPipeline(ctx)\n ];\n case 1:\n _state.sent();\n return [\n 2\n ];\n case 2:\n return [\n 4,\n mw(ctx, function() {\n return dispatch(n + 1);\n })\n ];\n case 3:\n _state.sent();\n return [\n 2\n ];\n }\n });\n }).call(_this);\n };\n return [\n 4,\n dispatch(0)\n ];\n case 1:\n _state.sent();\n return [\n 2\n ];\n }\n });\n }).call(this);\n }\n },\n {\n key: \"invokeExactAndAnyListeners\",\n value: function invokeExactAndAnyListeners(event, payload) {\n var set = this.listenersByEvent.get(event);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n if (set) try {\n var _this, _loop = function() {\n var fn = _step.value;\n _this.safeCall(function() {\n return fn(payload);\n });\n };\n for(var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_this = this, _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;\n try {\n var _this1, _loop1 = function() {\n var fn = _step1.value;\n _this1.safeCall(function() {\n return fn(event, payload);\n });\n };\n for(var _iterator1 = this.anyListeners[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true)_this1 = this, _loop1();\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally{\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n },\n {\n key: \"invokePatternPipeline\",\n value: function invokePatternPipeline(ctx) {\n return (/*#__PURE__*/ 0, /*#__PURE__*/ $58652fc8c6d493a9$export$71511d61b312f219)(function() {\n var _this, matched, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry, params, index, dispatch;\n return (0, $ccd3f57dadf590be$export$71511d61b312f219)(this, function(_state) {\n switch(_state.label){\n case 0:\n _this = this;\n matched = [];\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n if (typeof ctx.event === 'string') try {\n for(_iterator = this.patternListeners[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n entry = _step.value;\n params = entry.match(ctx.event);\n if (params) matched.push({\n entry: entry,\n params: params\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n ctx.matched = matched.map(function(m) {\n return {\n handler: m.entry.handler,\n kind: m.entry.kind,\n once: m.entry.once,\n priority: m.entry.priority,\n prefix: m.entry.prefix\n };\n });\n index = -1;\n dispatch = function(n) {\n return (/*#__PURE__*/ 0, /*#__PURE__*/ $58652fc8c6d493a9$export$71511d61b312f219)(function() {\n var mw, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _this, _loop, _iterator, _step;\n return (0, $ccd3f57dadf590be$export$71511d61b312f219)(this, function(_state) {\n switch(_state.label){\n case 0:\n if (n <= index) throw new Error('next() called multiple times.');\n index = n;\n mw = this.patternMiddlewares[n];\n if (!mw) {\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n _loop = function() {\n var _step_value = _step.value, entry = _step_value.entry, params = _step_value.params;\n _this.safeCall(function() {\n return entry.handler(ctx.event, ctx.payload, params);\n });\n if (entry.once) _this.removeFromArray(_this.patternListeners, entry);\n };\n for(_iterator = matched[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_this = this, _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return [\n 2\n ];\n }\n return [\n 4,\n mw(ctx, function() {\n return dispatch(n + 1);\n })\n ];\n case 1:\n _state.sent();\n return [\n 2\n ];\n }\n });\n }).call(_this);\n };\n return [\n 4,\n dispatch(0)\n ];\n case 1:\n _state.sent();\n return [\n 2\n ];\n }\n });\n }).call(this);\n }\n },\n {\n key: \"getListenerSet\",\n value: function getListenerSet(event) {\n var set = this.listenersByEvent.get(event);\n if (!set) {\n set = new Set();\n this.listenersByEvent.set(event, set);\n }\n return set;\n }\n },\n {\n key: \"insertPatternByPriority\",\n value: function insertPatternByPriority(entry) {\n var lo = 0;\n var hi = this.patternListeners.length;\n while(lo < hi){\n var mid = lo + hi >>> 1;\n if (this.patternListeners[mid].priority >= entry.priority) lo = mid + 1;\n else hi = mid;\n }\n this.patternListeners.splice(lo, 0, entry);\n }\n },\n {\n key: \"removeFromArray\",\n value: function removeFromArray(arr, item) {\n var i = arr.indexOf(item);\n if (i >= 0) arr.splice(i, 1);\n }\n },\n {\n key: \"safeCall\",\n value: function safeCall(fn) {\n try {\n fn();\n } catch (err) {\n queueMicrotask(function() {\n throw err;\n });\n }\n }\n },\n {\n key: \"escapeRegexLiteral\",\n value: function escapeRegexLiteral(s) {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n },\n {\n key: \"compilePatternMatcher\",\n value: function compilePatternMatcher(p) {\n if (p === '*') return {\n kind: 'star',\n priority: 0,\n match: function() {\n return {};\n }\n };\n if (p.endsWith(':*')) {\n var prefix = p.slice(0, -2);\n if (!prefix) throw new Error(\"Invalid pattern: \".concat(p, \".\"));\n var prefixWithColon = prefix + ':';\n return {\n kind: 'prefix',\n priority: 10,\n match: function(event) {\n return event === prefix || event.startsWith(prefixWithColon) ? {} : null;\n }\n };\n }\n if (p.includes('{')) {\n var keys = [];\n var parts = p.split(/\\{(\\w+)}/g);\n var src = '^';\n for(var i = 0; i < parts.length; i++)if (i % 2 === 0) src += this.escapeRegexLiteral(parts[i]);\n else {\n keys.push(parts[i]);\n src += '([^:]+)';\n }\n src += '$';\n var regex = new RegExp(src);\n return {\n kind: 'param',\n priority: 100 + keys.length,\n match: function(event) {\n var m = event.match(regex);\n if (!m) return null;\n var params = {};\n for(var i = 0; i < keys.length; i++)params[keys[i]] = m[i + 1];\n return params;\n }\n };\n }\n throw new Error(\"Unsupported pattern: \".concat(p, \".\"));\n }\n }\n ]);\n return EventBus;\n}();\n\n\nvar $377275d04fded93b$exports = {};\n\n\n\nvar $58652fc8c6d493a9$export$71511d61b312f219;\n\"use strict\";\nfunction $58652fc8c6d493a9$var$asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction $58652fc8c6d493a9$var$_async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n $58652fc8c6d493a9$var$asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n $58652fc8c6d493a9$var$asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\n$58652fc8c6d493a9$export$71511d61b312f219 = $58652fc8c6d493a9$var$_async_to_generator;\n\nvar $c1e4449832062864$export$71511d61b312f219;\n\"use strict\";\nfunction $c1e4449832062864$var$_class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n}\n$c1e4449832062864$export$71511d61b312f219 = $c1e4449832062864$var$_class_call_check;\n\nvar $6f584e554366573c$export$71511d61b312f219;\n\"use strict\";\nfunction $6f584e554366573c$var$_defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction $6f584e554366573c$var$_create_class(Constructor, protoProps, staticProps) {\n if (protoProps) $6f584e554366573c$var$_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) $6f584e554366573c$var$_defineProperties(Constructor, staticProps);\n return Constructor;\n}\n$6f584e554366573c$export$71511d61b312f219 = $6f584e554366573c$var$_create_class;\n\nvar $019e0a5646671a88$export$71511d61b312f219;\n\"use strict\";\nvar $1b736fffd8e2e70e$export$71511d61b312f219;\n\"use strict\";\nfunction $1b736fffd8e2e70e$var$_define_property(obj, key, value) {\n if (key in obj) Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n else obj[key] = value;\n return obj;\n}\n$1b736fffd8e2e70e$export$71511d61b312f219 = $1b736fffd8e2e70e$var$_define_property;\n\n\nfunction $019e0a5646671a88$var$_object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n ownKeys.forEach(function(key) {\n $1b736fffd8e2e70e$export$71511d61b312f219(target, key, source[key]);\n });\n }\n return target;\n}\n$019e0a5646671a88$export$71511d61b312f219 = $019e0a5646671a88$var$_object_spread;\n\nvar $7d29c32f5fa2c9e1$export$71511d61b312f219;\n\"use strict\";\nfunction $7d29c32f5fa2c9e1$var$ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction $7d29c32f5fa2c9e1$var$_object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n else $7d29c32f5fa2c9e1$var$ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return target;\n}\n$7d29c32f5fa2c9e1$export$71511d61b312f219 = $7d29c32f5fa2c9e1$var$_object_spread_props;\n\nvar $ce5de47e1def58f6$export$71511d61b312f219;\n\"use strict\";\nvar $75c0df0d5888fda0$export$71511d61b312f219;\n\"use strict\";\nvar $4e2b73a79b81990c$export$71511d61b312f219;\n\"use strict\";\nfunction $4e2b73a79b81990c$var$_array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\n$4e2b73a79b81990c$export$71511d61b312f219 = $4e2b73a79b81990c$var$_array_like_to_array;\n\n\nfunction $75c0df0d5888fda0$var$_array_without_holes(arr) {\n if (Array.isArray(arr)) return $4e2b73a79b81990c$export$71511d61b312f219(arr);\n}\n$75c0df0d5888fda0$export$71511d61b312f219 = $75c0df0d5888fda0$var$_array_without_holes;\n\n\nvar $e0e2f14a10c78814$export$71511d61b312f219;\n\"use strict\";\nfunction $e0e2f14a10c78814$var$_iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n$e0e2f14a10c78814$export$71511d61b312f219 = $e0e2f14a10c78814$var$_iterable_to_array;\n\n\nvar $4633e1c7274ae8a2$export$71511d61b312f219;\n\"use strict\";\nfunction $4633e1c7274ae8a2$var$_non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n$4633e1c7274ae8a2$export$71511d61b312f219 = $4633e1c7274ae8a2$var$_non_iterable_spread;\n\n\nvar $47b21cf860486df7$export$71511d61b312f219;\n\"use strict\";\n\nfunction $47b21cf860486df7$var$_unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return $4e2b73a79b81990c$export$71511d61b312f219(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return $4e2b73a79b81990c$export$71511d61b312f219(o, minLen);\n}\n$47b21cf860486df7$export$71511d61b312f219 = $47b21cf860486df7$var$_unsupported_iterable_to_array;\n\n\nfunction $ce5de47e1def58f6$var$_to_consumable_array(arr) {\n return $75c0df0d5888fda0$export$71511d61b312f219(arr) || $e0e2f14a10c78814$export$71511d61b312f219(arr) || $47b21cf860486df7$export$71511d61b312f219(arr) || $4633e1c7274ae8a2$export$71511d61b312f219();\n}\n$ce5de47e1def58f6$export$71511d61b312f219 = $ce5de47e1def58f6$var$_to_consumable_array;\n\nvar $ccd3f57dadf590be$export$71511d61b312f219;\n\"use strict\";\nfunction $ccd3f57dadf590be$var$_ts_generator(thisArg, body) {\n var f, y, t, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype), d = Object.defineProperty;\n return d(g, \"next\", {\n value: verb(0)\n }), d(g, \"throw\", {\n value: verb(1)\n }), d(g, \"return\", {\n value: verb(2)\n }), typeof Symbol === \"function\" && d(g, Symbol.iterator, {\n value: function() {\n return this;\n }\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(g && (g = 0, op[0] && (_ = 0)), _)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n$ccd3f57dadf590be$export$71511d61b312f219 = $ccd3f57dadf590be$var$_ts_generator;\n\n\n//# sourceMappingURL=index.js.map\n","import { EventBus } from './event-bus.ts';\nimport * as Types from './types.ts';\n\nexport { EventBus, Types };\n","import type {\n AnyListener,\n CompiledPatternListener,\n EmitContext,\n EventMap,\n Listener,\n MatchKeys,\n Middleware,\n Pattern,\n PatternKind,\n PatternListenerInfo,\n PatternMiddleware,\n PatternOptions,\n} from './types.ts';\n\n/**\n * EventBus.\n *\n * @author dafengzhen\n */\nexport class EventBus<E extends EventMap> {\n private anyListeners = new Set<AnyListener<E>>();\n\n private listenersByEvent = new Map<keyof E, Set<Listener<any>>>();\n\n private middlewares: Middleware<E>[] = [];\n\n private patternMiddlewares: PatternMiddleware<E>[] = [];\n\n private patternListeners: CompiledPatternListener<E>[] = [];\n\n clear(event?: keyof E): void {\n if (event === undefined) {\n this.listenersByEvent.clear();\n this.anyListeners.clear();\n this.patternListeners.length = 0;\n this.middlewares.length = 0;\n this.patternMiddlewares.length = 0;\n return;\n }\n\n this.listenersByEvent.delete(event);\n }\n\n on<K extends keyof E>(event: K, listener: Listener<E[K]>): () => void {\n this.getListenerSet(event).add(listener);\n return () => this.off(event, listener);\n }\n\n off<K extends keyof E>(event: K, listener: Listener<E[K]>): void {\n const set = this.listenersByEvent.get(event);\n if (!set) {\n return;\n }\n\n set.delete(listener);\n if (set.size === 0) {\n this.listenersByEvent.delete(event);\n }\n }\n\n once<K extends keyof E>(event: K, listener: Listener<E[K]>): () => void {\n const off = this.on(event, ((payload: E[K]) => {\n off();\n listener(payload);\n }) as Listener<E[K]>);\n\n return off;\n }\n\n onAny(listener: AnyListener<E>): () => void {\n this.anyListeners.add(listener);\n return () => this.anyListeners.delete(listener);\n }\n\n use(mw: Middleware<E>): () => void {\n this.middlewares.push(mw);\n return () => this.removeFromArray(this.middlewares, mw);\n }\n\n usePattern(mw: PatternMiddleware<E>): () => void {\n this.patternMiddlewares.push(mw);\n return () => this.removeFromArray(this.patternMiddlewares, mw);\n }\n\n onPattern<P extends Pattern<Extract<keyof E, string>>>(\n pattern: P,\n handler: <K extends keyof E & MatchKeys<Extract<keyof E, string>, P>>(\n event: K,\n payload: E[K],\n params?: Record<string, string>,\n ) => void,\n options?: PatternOptions,\n ): () => void {\n const compiled = this.compilePatternMatcher(pattern);\n\n const entry: CompiledPatternListener<E> = {\n pattern,\n kind: compiled.kind,\n match: compiled.match,\n priority: options?.priority ?? compiled.priority,\n once: options?.once,\n handler: handler as any,\n };\n\n this.insertPatternByPriority(entry);\n\n return () => this.removeFromArray(this.patternListeners, entry);\n }\n\n oncePattern<P extends Pattern<Extract<keyof E, string>>>(\n pattern: P,\n handler: <K extends keyof E & MatchKeys<Extract<keyof E, string>, P>>(\n event: K,\n payload: E[K],\n params?: Record<string, string>,\n ) => void,\n options?: Omit<PatternOptions, 'once'>,\n ): () => void {\n return this.onPattern(pattern, handler, { ...options, once: true });\n }\n\n listenerCount(event: keyof E): number {\n let count = 0;\n count += this.listenersByEvent.get(event)?.size ?? 0;\n count += this.anyListeners.size;\n\n if (typeof event === 'string') {\n for (const p of this.patternListeners) {\n if (p.match(event)) {\n count++;\n }\n }\n }\n\n return count;\n }\n\n emit<K extends keyof E>(event: K, ...args: E[K] extends void ? [] : [payload: E[K]]): void {\n void this._emit(event, ...args).catch((err) => {\n queueMicrotask(() => {\n throw err;\n });\n });\n }\n\n emitAsync<K extends keyof E>(\n event: K,\n ...args: E[K] extends void ? [] : [payload: E[K]]\n ): Promise<void> {\n return this._emit(event, ...args);\n }\n\n private async _emit<K extends keyof E>(\n event: K,\n ...args: E[K] extends void ? [] : [payload: E[K]]\n ): Promise<void> {\n const payload = args[0] as E[K];\n\n let blocked = false;\n\n const ctx: EmitContext<E, K> = {\n get blocked() {\n return blocked;\n },\n event,\n payload,\n matched: [],\n meta: {},\n block() {\n blocked = true;\n },\n };\n\n await this.runMiddlewares(ctx);\n }\n\n private async runMiddlewares<K extends keyof E>(ctx: EmitContext<E, K>): Promise<void> {\n let index = -1;\n\n const dispatch = async (n: number): Promise<void> => {\n if (ctx.blocked) {\n return;\n }\n\n if (n <= index) {\n throw new Error('next() called multiple times.');\n }\n\n index = n;\n\n const mw = this.middlewares[n];\n if (!mw) {\n this.invokeExactAndAnyListeners(ctx.event, ctx.payload);\n await this.invokePatternPipeline(ctx);\n return;\n }\n await mw(ctx, () => dispatch(n + 1));\n };\n\n await dispatch(0);\n }\n\n private invokeExactAndAnyListeners<K extends keyof E>(event: K, payload: E[K]): void {\n const set = this.listenersByEvent.get(event);\n if (set) {\n for (const fn of set) {\n this.safeCall(() => fn(payload));\n }\n }\n\n for (const fn of this.anyListeners) {\n this.safeCall(() => fn(event, payload));\n }\n }\n\n private async invokePatternPipeline(ctx: EmitContext<E, keyof E>): Promise<void> {\n const matched: Array<{ entry: CompiledPatternListener<E>; params: Record<string, string> }> =\n [];\n\n if (typeof ctx.event === 'string') {\n for (const entry of this.patternListeners) {\n const params = entry.match(ctx.event);\n if (params) {\n matched.push({ entry, params });\n }\n }\n }\n\n (ctx as any).matched = matched.map(\n (m): PatternListenerInfo<E> => ({\n handler: m.entry.handler,\n kind: m.entry.kind,\n once: m.entry.once,\n priority: m.entry.priority,\n prefix: m.entry.prefix,\n }),\n );\n\n let index = -1;\n\n const dispatch = async (n: number): Promise<void> => {\n if (n <= index) {\n throw new Error('next() called multiple times.');\n }\n index = n;\n\n const mw = this.patternMiddlewares[n];\n if (!mw) {\n for (const { entry, params } of matched) {\n this.safeCall(() => entry.handler(ctx.event, ctx.payload, params));\n if (entry.once) {\n this.removeFromArray(this.patternListeners, entry);\n }\n }\n return;\n }\n\n await mw(ctx, () => dispatch(n + 1));\n };\n\n await dispatch(0);\n }\n\n private getListenerSet<K extends keyof E>(event: K): Set<Listener<E[K]>> {\n let set = this.listenersByEvent.get(event) as Set<Listener<E[K]>> | undefined;\n if (!set) {\n set = new Set();\n this.listenersByEvent.set(event, set);\n }\n return set;\n }\n\n private insertPatternByPriority(entry: CompiledPatternListener<E>): void {\n let lo = 0;\n let hi = this.patternListeners.length;\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (this.patternListeners[mid].priority >= entry.priority) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n this.patternListeners.splice(lo, 0, entry);\n }\n\n private removeFromArray<T>(arr: T[], item: T): void {\n const i = arr.indexOf(item);\n if (i >= 0) {\n arr.splice(i, 1);\n }\n }\n\n private safeCall(fn: () => void): void {\n try {\n fn();\n } catch (err) {\n queueMicrotask(() => {\n throw err;\n });\n }\n }\n\n private escapeRegexLiteral(s: string): string {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n private compilePatternMatcher(p: string): {\n kind: PatternKind;\n priority: number;\n match: (event: string) => null | Record<string, string>;\n } {\n if (p === '*') {\n return { kind: 'star', priority: 0, match: () => ({}) };\n }\n\n if (p.endsWith(':*')) {\n const prefix = p.slice(0, -2);\n if (!prefix) {\n throw new Error(`Invalid pattern: ${p}.`);\n }\n\n const prefixWithColon = prefix + ':';\n\n return {\n kind: 'prefix',\n priority: 10,\n match: (event: string) =>\n event === prefix || event.startsWith(prefixWithColon) ? {} : null,\n };\n }\n\n if (p.includes('{')) {\n const keys: string[] = [];\n const parts = p.split(/\\{(\\w+)}/g);\n\n let src = '^';\n for (let i = 0; i < parts.length; i++) {\n if (i % 2 === 0) {\n src += this.escapeRegexLiteral(parts[i]);\n } else {\n keys.push(parts[i]);\n src += '([^:]+)';\n }\n }\n src += '$';\n\n const regex = new RegExp(src);\n\n return {\n kind: 'param',\n priority: 100 + keys.length,\n match: (event: string) => {\n const m = event.match(regex);\n if (!m) {\n return null;\n }\n\n const params: Record<string, string> = {};\n for (let i = 0; i < keys.length; i++) {\n params[keys[i]] = m[i + 1];\n }\n return params;\n },\n };\n }\n\n throw new Error(`Unsupported pattern: ${p}.`);\n }\n}\n","export type EventMap = Record<string, unknown>;\n\nexport type Listener<Payload> = Payload extends void ? () => void : (payload: Payload) => void;\n\nexport type AnyListener<E extends EventMap> = <K extends keyof E>(event: K, payload: E[K]) => void;\n\nexport type PatternKind = 'star' | 'prefix' | 'param';\n\nexport type Pattern<_K extends string> = '*' | `${string}:*` | `${string}{${string}}${string}`;\n\ntype PatternToKeyShape<P extends string> = P extends '*'\n ? string\n : P extends `${infer Prefix}:*`\n ? `${Prefix}:${string}` | Prefix\n : P extends `${infer A}{${string}}${infer B}`\n ? `${A}${string}${B}`\n : never;\n\nexport type MatchKeys<Keys extends string, P extends Pattern<Keys>> = Extract<\n Keys,\n PatternToKeyShape<P>\n>;\n\nexport type EmitContext<E extends EventMap, K extends keyof E> = {\n readonly blocked: boolean;\n readonly event: K;\n readonly payload: E[K];\n readonly matched: readonly PatternListenerInfo<E>[];\n readonly meta: Record<string, unknown>;\n block(): void;\n};\n\nexport type Middleware<E extends EventMap> = <K extends keyof E>(\n ctx: EmitContext<E, K>,\n next: () => Promise<void>,\n) => Promise<void> | void;\n\nexport type PatternMiddleware<E extends EventMap> = (\n ctx: EmitContext<E, keyof E>,\n next: () => Promise<void>,\n) => Promise<void> | void;\n\nexport type PatternListenerInfo<E extends EventMap> = {\n readonly kind: PatternKind;\n readonly once?: boolean;\n readonly priority: number;\n readonly prefix?: string;\n readonly handler: (event: keyof E, payload: E[keyof E]) => void;\n};\n\nexport type CompiledPatternListener<E extends EventMap> = {\n readonly kind: PatternKind;\n readonly once?: boolean;\n readonly priority: number;\n readonly prefix?: string;\n readonly prefixWithColon?: string;\n readonly pattern: Pattern<Extract<keyof E, string>> | RegExp | ((event: string) => boolean);\n readonly handler: (event: keyof E, payload: E[keyof E], params?: Record<string, string>) => void;\n match(event: string): null | Record<string, string>;\n};\n\nexport type PatternOptions = { once?: boolean; priority?: number };\n","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexports._ = _async_to_generator;\n","\"use strict\";\n\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexports._ = _class_call_check;\n","\"use strict\";\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexports._ = _create_class;\n","\"use strict\";\n\nvar _define_property = require(\"./_define_property.cjs\");\n\nfunction _object_spread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(\n Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n })\n );\n }\n\n ownKeys.forEach(function(key) {\n _define_property._(target, key, source[key]);\n });\n }\n\n return target;\n}\nexports._ = _object_spread;\n","\"use strict\";\n\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n } else obj[key] = value;\n\n return obj;\n}\nexports._ = _define_property;\n","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n\n if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\nexports._ = _object_spread_props;\n","\"use strict\";\n\nvar _array_without_holes = require(\"./_array_without_holes.cjs\");\nvar _iterable_to_array = require(\"./_iterable_to_array.cjs\");\nvar _non_iterable_spread = require(\"./_non_iterable_spread.cjs\");\nvar _unsupported_iterable_to_array = require(\"./_unsupported_iterable_to_array.cjs\");\n\nfunction _to_consumable_array(arr) {\n return _array_without_holes._(arr) || _iterable_to_array._(arr) || _unsupported_iterable_to_array._(arr) || _non_iterable_spread._();\n}\nexports._ = _to_consumable_array;\n","\"use strict\";\n\nvar _array_like_to_array = require(\"./_array_like_to_array.cjs\");\n\nfunction _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array._(arr);\n}\nexports._ = _array_without_holes;\n","\"use strict\";\n\nfunction _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexports._ = _array_like_to_array;\n","\"use strict\";\n\nfunction _iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) {\n return Array.from(iter);\n }\n}\nexports._ = _iterable_to_array;\n","\"use strict\";\n\nfunction _non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexports._ = _non_iterable_spread;\n","\"use strict\";\n\nvar _array_like_to_array = require(\"./_array_like_to_array.cjs\");\n\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array._(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array._(o, minLen);\n}\nexports._ = _unsupported_iterable_to_array;\n","\"use strict\";\n\nfunction _ts_generator(thisArg, body) {\n var f, y, t, _ = { label: 0, sent: function () { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype), d = Object.defineProperty;\n return d(g, \"next\", { value: verb(0) }), d(g, \"throw\", { value: verb(1) }), d(g, \"return\", { value: verb(2) }), typeof Symbol === \"function\" && d(g, Symbol.iterator, { value: function () { return this; } }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexports._ = _ts_generator;\n"],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","module","exports","$90de646d5f25eb4f$export$5087227eb54526","$377275d04fded93b$exports","$58652fc8c6d493a9$export$71511d61b312f219","$c1e4449832062864$export$71511d61b312f219","$6f584e554366573c$export$71511d61b312f219","$019e0a5646671a88$export$71511d61b312f219","$1b736fffd8e2e70e$export$71511d61b312f219","$7d29c32f5fa2c9e1$export$71511d61b312f219","$ce5de47e1def58f6$export$71511d61b312f219","$75c0df0d5888fda0$export$71511d61b312f219","$4e2b73a79b81990c$export$71511d61b312f219","$e0e2f14a10c78814$export$71511d61b312f219","$4633e1c7274ae8a2$export$71511d61b312f219","$47b21cf860486df7$export$71511d61b312f219","$ccd3f57dadf590be$export$71511d61b312f219","EventBus","anyListeners","Set","listenersByEvent","Map","middlewares","patternMiddlewares","patternListeners","key","value","event","undefined","clear","length","delete","listener","_this","getListenerSet","add","off","size","on","payload","mw","push","removeFromArray","pattern","handler","options","_options_priority","compiled","compilePatternMatcher","entry","kind","match","priority","once","insertPatternByPriority","onPattern","count","_this_listenersByEvent_get_size","_this_listenersByEvent_get","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","p","err","return","_len","arguments","args","Array","_key","_emit","apply","concat","catch","queueMicrotask","blocked","ctx","_state","label","matched","meta","block","runMiddlewares","sent","call","index","dispatch","Error","invokeExactAndAnyListeners","invokePatternPipeline","_loop","fn","safeCall","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_this1","_step1","_iterator1","_loop1","params","map","m","prefix","_step_value","lo","hi","mid","splice","arr","item","i","indexOf","replace","endsWith","slice","prefixWithColon","startsWith","includes","keys","parts","split","src","escapeRegexLiteral","regex","RegExp","$58652fc8c6d493a9$var$asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","Promise","then","$58652fc8c6d493a9$var$_async_to_generator","self","$c1e4449832062864$var$_class_call_check","instance","Constructor","TypeError","$6f584e554366573c$var$_defineProperties","target","props","descriptor","writable","$6f584e554366573c$var$_create_class","protoProps","staticProps","prototype","$1b736fffd8e2e70e$var$_define_property","obj","$019e0a5646671a88$var$_object_spread","source","ownKeys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","forEach","$7d29c32f5fa2c9e1$var$ownKeys","object","enumerableOnly","symbols","$7d29c32f5fa2c9e1$var$_object_spread_props","getOwnPropertyDescriptors","defineProperties","$4e2b73a79b81990c$var$_array_like_to_array","len","arr2","$75c0df0d5888fda0$var$_array_without_holes","isArray","$e0e2f14a10c78814$var$_iterable_to_array","iter","from","$4633e1c7274ae8a2$var$_non_iterable_spread","$47b21cf860486df7$var$_unsupported_iterable_to_array","o","minLen","toString","name","test","$ce5de47e1def58f6$var$_to_consumable_array","$ccd3f57dadf590be$var$_ts_generator","thisArg","body","f","y","t","_","trys","ops","g","create","Iterator","d","verb","op","pop"],"version":3,"file":"index.js.map"}