@omujs/chat 0.9.42 → 0.9.47

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.
Files changed (41) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/package.json +2 -2
  3. package/dist/dts/chat.d.ts +0 -20
  4. package/dist/dts/const.d.ts +0 -2
  5. package/dist/dts/event/event-types.d.ts +0 -15
  6. package/dist/dts/event/event.d.ts +0 -33
  7. package/dist/dts/event/index.d.ts +0 -2
  8. package/dist/dts/index.d.ts +0 -6
  9. package/dist/dts/models/author.d.ts +0 -37
  10. package/dist/dts/models/channel.d.ts +0 -31
  11. package/dist/dts/models/content.d.ts +0 -27
  12. package/dist/dts/models/gift.d.ts +0 -23
  13. package/dist/dts/models/index.d.ts +0 -13
  14. package/dist/dts/models/message.d.ts +0 -40
  15. package/dist/dts/models/paid.d.ts +0 -11
  16. package/dist/dts/models/provider.d.ts +0 -34
  17. package/dist/dts/models/reaction.d.ts +0 -21
  18. package/dist/dts/models/role.d.ts +0 -26
  19. package/dist/dts/models/room.d.ts +0 -44
  20. package/dist/dts/models/vote.d.ts +0 -33
  21. package/dist/dts/permissions.d.ts +0 -7
  22. package/dist/esm/chat.js +0 -7895
  23. package/dist/esm/const.js +0 -4985
  24. package/dist/esm/event/event-types.js +0 -76
  25. package/dist/esm/event/event.js +0 -106
  26. package/dist/esm/event/index.js +0 -115
  27. package/dist/esm/index.js +0 -7941
  28. package/dist/esm/models/author.js +0 -5061
  29. package/dist/esm/models/channel.js +0 -5027
  30. package/dist/esm/models/content.js +0 -39
  31. package/dist/esm/models/gift.js +0 -40
  32. package/dist/esm/models/index.js +0 -5424
  33. package/dist/esm/models/message.js +0 -5124
  34. package/dist/esm/models/paid.js +0 -25
  35. package/dist/esm/models/provider.js +0 -5031
  36. package/dist/esm/models/reaction.js +0 -5004
  37. package/dist/esm/models/role.js +0 -44
  38. package/dist/esm/models/room.js +0 -5027
  39. package/dist/esm/models/vote.js +0 -5023
  40. package/dist/esm/permissions.js +0 -4998
  41. package/tsconfig.tsbuildinfo +0 -1
@@ -1,76 +0,0 @@
1
- // @bun
2
- // src/event/event.ts
3
- class ListenerEvent {
4
- getListener;
5
- constructor(getListener) {
6
- this.getListener = getListener;
7
- }
8
- subscribe(handler, chat) {
9
- const listener = this.getListener(chat);
10
- return listener.listen(handler);
11
- }
12
- }
13
-
14
- class TableEvent extends ListenerEvent {
15
- getTable;
16
- AddBatch;
17
- UpdateBatch;
18
- RemoveBatch;
19
- Add;
20
- Update;
21
- Remove;
22
- Clear;
23
- wrappers;
24
- constructor(getTable) {
25
- super((chat) => getTable(chat).event.cacheUpdate);
26
- this.getTable = getTable;
27
- this.AddBatch = new ListenerEvent((chat) => getTable(chat).event.add);
28
- this.UpdateBatch = new ListenerEvent((chat) => getTable(chat).event.update);
29
- this.RemoveBatch = new ListenerEvent((chat) => getTable(chat).event.remove);
30
- this.Add = this.createBatchSubscriber((table) => table.event.add);
31
- this.Update = this.createBatchSubscriber((table) => table.event.update);
32
- this.Remove = this.createBatchSubscriber((table) => table.event.remove);
33
- this.Clear = new ListenerEvent((client) => getTable(client).event.clear);
34
- this.wrappers = {};
35
- }
36
- static createBatchWrapper(emit) {
37
- return async (items) => {
38
- for (const item of items.values()) {
39
- await emit(item);
40
- }
41
- };
42
- }
43
- createBatchSubscriber(getListener) {
44
- let batchWrapper = null;
45
- const subscribe = (emit, chat) => {
46
- const table = this.getTable(chat);
47
- const listener = getListener(table);
48
- batchWrapper = TableEvent.createBatchWrapper((item) => emit(item));
49
- const stopListen = table.listen();
50
- const clearEvent = listener.listen(batchWrapper);
51
- return () => {
52
- stopListen();
53
- clearEvent();
54
- };
55
- };
56
- return {
57
- subscribe
58
- };
59
- }
60
- }
61
-
62
- // src/event/event-types.ts
63
- var events = {
64
- Message: new TableEvent((chat) => chat.messages),
65
- Author: new TableEvent((chat) => chat.authors),
66
- Channel: new TableEvent((chat) => chat.channels),
67
- Provider: new TableEvent((chat) => chat.providers),
68
- Room: new TableEvent((chat) => chat.rooms),
69
- Vote: new TableEvent((chat) => chat.votes)
70
- };
71
- export {
72
- events
73
- };
74
-
75
- //# debugId=8A75DAF050E0121664756E2164756E21
76
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2V2ZW50L2V2ZW50LnRzIiwgIi4uLy4uL3NyYy9ldmVudC9ldmVudC10eXBlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICJpbXBvcnQgdHlwZSB7IFRhYmxlIH0gZnJvbSAnQG9tdWpzL29tdS9hcGkvdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBVbmxpc3RlbiB9IGZyb20gJ0BvbXVqcy9vbXUvZXZlbnQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQG9tdWpzL29tdS9ldmVudCc7XG5cbmltcG9ydCB0eXBlIHsgQ2hhdCB9IGZyb20gJy4uL2NoYXQuanMnO1xuXG5leHBvcnQgdHlwZSBFdmVudEhhbmRsZXI8UCBleHRlbmRzIEFycmF5PGFueT4+ID0gKC4uLmFyZ3M6IFApID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlPFAgZXh0ZW5kcyBBcnJheTxhbnk+PiB7XG4gICAgc3Vic2NyaWJlKGhhbmRsZXI6IEV2ZW50SGFuZGxlcjxQPiwgY2hhdDogQ2hhdCk6IFVubGlzdGVuO1xufVxuXG5leHBvcnQgY2xhc3MgTGlzdGVuZXJFdmVudDxQIGV4dGVuZHMgQXJyYXk8YW55Pj4gaW1wbGVtZW50cyBFdmVudFNvdXJjZTxQPiB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBnZXRMaXN0ZW5lcjogKGNoYXQ6IENoYXQpID0+IEV2ZW50RW1pdHRlcjxQPikge31cblxuICAgIHB1YmxpYyBzdWJzY3JpYmUoaGFuZGxlcjogRXZlbnRIYW5kbGVyPFA+LCBjaGF0OiBDaGF0KTogVW5saXN0ZW4ge1xuICAgICAgICBjb25zdCBsaXN0ZW5lciA9IHRoaXMuZ2V0TGlzdGVuZXIoY2hhdCk7XG4gICAgICAgIHJldHVybiBsaXN0ZW5lci5saXN0ZW4oaGFuZGxlcik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVFdmVudDxUPiBleHRlbmRzIExpc3RlbmVyRXZlbnQ8W01hcDxzdHJpbmcsIFQ+XT4ge1xuICAgIHB1YmxpYyByZWFkb25seSBBZGRCYXRjaDogTGlzdGVuZXJFdmVudDxbTWFwPHN0cmluZywgVD5dPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgVXBkYXRlQmF0Y2g6IExpc3RlbmVyRXZlbnQ8W01hcDxzdHJpbmcsIFQ+XT47XG4gICAgcHVibGljIHJlYWRvbmx5IFJlbW92ZUJhdGNoOiBMaXN0ZW5lckV2ZW50PFtNYXA8c3RyaW5nLCBUPl0+O1xuICAgIHB1YmxpYyByZWFkb25seSBBZGQ6IEV2ZW50U291cmNlPFtUXT47XG4gICAgcHVibGljIHJlYWRvbmx5IFVwZGF0ZTogRXZlbnRTb3VyY2U8W1RdPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgUmVtb3ZlOiBFdmVudFNvdXJjZTxbVF0+O1xuICAgIHB1YmxpYyByZWFkb25seSBDbGVhcjogRXZlbnRTb3VyY2U8W10+O1xuICAgIHB1YmxpYyByZWFkb25seSB3cmFwcGVyczogUmVjb3JkPHN0cmluZywgVW5saXN0ZW4+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBnZXRUYWJsZTogKGNoYXQ6IENoYXQpID0+IFRhYmxlPFQ+KSB7XG4gICAgICAgIHN1cGVyKChjaGF0KSA9PiBnZXRUYWJsZShjaGF0KS5ldmVudC5jYWNoZVVwZGF0ZSk7XG4gICAgICAgIHRoaXMuQWRkQmF0Y2ggPSBuZXcgTGlzdGVuZXJFdmVudCgoY2hhdCkgPT4gZ2V0VGFibGUoY2hhdCkuZXZlbnQuYWRkKTtcbiAgICAgICAgdGhpcy5VcGRhdGVCYXRjaCA9IG5ldyBMaXN0ZW5lckV2ZW50KChjaGF0KSA9PiBnZXRUYWJsZShjaGF0KS5ldmVudC51cGRhdGUpO1xuICAgICAgICB0aGlzLlJlbW92ZUJhdGNoID0gbmV3IExpc3RlbmVyRXZlbnQoKGNoYXQpID0+IGdldFRhYmxlKGNoYXQpLmV2ZW50LnJlbW92ZSk7XG4gICAgICAgIHRoaXMuQWRkID0gdGhpcy5jcmVhdGVCYXRjaFN1YnNjcmliZXIoKHRhYmxlKSA9PiB0YWJsZS5ldmVudC5hZGQpO1xuICAgICAgICB0aGlzLlVwZGF0ZSA9IHRoaXMuY3JlYXRlQmF0Y2hTdWJzY3JpYmVyKCh0YWJsZSkgPT4gdGFibGUuZXZlbnQudXBkYXRlKTtcbiAgICAgICAgdGhpcy5SZW1vdmUgPSB0aGlzLmNyZWF0ZUJhdGNoU3Vic2NyaWJlcigodGFibGUpID0+IHRhYmxlLmV2ZW50LnJlbW92ZSk7XG4gICAgICAgIHRoaXMuQ2xlYXIgPSBuZXcgTGlzdGVuZXJFdmVudCgoY2xpZW50KSA9PiBnZXRUYWJsZShjbGllbnQpLmV2ZW50LmNsZWFyKTtcbiAgICAgICAgdGhpcy53cmFwcGVycyA9IHt9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNyZWF0ZUJhdGNoV3JhcHBlcjxUPihlbWl0OiBFdmVudEhhbmRsZXI8W1RdPik6IEV2ZW50SGFuZGxlcjxbTWFwPHN0cmluZywgVD5dPiB7XG4gICAgICAgIHJldHVybiBhc3luYyAoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGVtaXQoaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVCYXRjaFN1YnNjcmliZXIoXG4gICAgICAgIGdldExpc3RlbmVyOiAodGFibGU6IFRhYmxlPFQ+KSA9PiBFdmVudEVtaXR0ZXI8W01hcDxzdHJpbmcsIFQ+XT4sXG4gICAgKTogRXZlbnRTb3VyY2U8W1RdPiB7XG4gICAgICAgIGxldCBiYXRjaFdyYXBwZXI6IEV2ZW50SGFuZGxlcjxbTWFwPHN0cmluZywgVD5dPiB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGNvbnN0IHN1YnNjcmliZSA9IChlbWl0OiBFdmVudEhhbmRsZXI8W1RdPiwgY2hhdDogQ2hhdCk6IFVubGlzdGVuID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5nZXRUYWJsZShjaGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gZ2V0TGlzdGVuZXIodGFibGUpO1xuICAgICAgICAgICAgYmF0Y2hXcmFwcGVyID0gVGFibGVFdmVudC5jcmVhdGVCYXRjaFdyYXBwZXIoKGl0ZW0pID0+IGVtaXQoaXRlbSkpO1xuICAgICAgICAgICAgY29uc3Qgc3RvcExpc3RlbiA9IHRhYmxlLmxpc3RlbigpO1xuICAgICAgICAgICAgY29uc3QgY2xlYXJFdmVudCA9IGxpc3RlbmVyLmxpc3RlbihiYXRjaFdyYXBwZXIpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdG9wTGlzdGVuKCk7XG4gICAgICAgICAgICAgICAgY2xlYXJFdmVudCgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxudHlwZSBFbnRyeTxQIGV4dGVuZHMgQXJyYXk8YW55Pj4gPSB7XG4gICAgc291cmNlOiBFdmVudFNvdXJjZTxQPjtcbiAgICBsaXN0ZW5lcnM6IEV2ZW50RW1pdHRlcjxQPjtcbn07XG5cbmV4cG9ydCBjbGFzcyBFdmVudFJlZ2lzdHJ5IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYXQ6IENoYXQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudHM6IE1hcDxFdmVudFNvdXJjZTxhbnk+LCBFbnRyeTxhbnk+PjtcblxuICAgIGNvbnN0cnVjdG9yKGNoYXQ6IENoYXQpIHtcbiAgICAgICAgdGhpcy5jaGF0ID0gY2hhdDtcbiAgICAgICAgdGhpcy5ldmVudHMgPSBuZXcgTWFwKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyPFAgZXh0ZW5kcyBBcnJheTxhbnk+PihldmVudDogRXZlbnRTb3VyY2U8UD4sIGhhbmRsZXI6IEV2ZW50SGFuZGxlcjxQPik6IHZvaWQge1xuICAgICAgICBsZXQgZW50cnkgPSB0aGlzLmV2ZW50cy5nZXQoZXZlbnQpIGFzIEVudHJ5PFA+IHwgbnVsbDtcbiAgICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgY29uc3QgbmV3RW50cnk6IEVudHJ5PFA+ID0ge1xuICAgICAgICAgICAgICAgIHNvdXJjZTogZXZlbnQsXG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzOiBuZXcgRXZlbnRFbWl0dGVyKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZW50cnkgPSBuZXdFbnRyeTtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzLnNldChldmVudCwgbmV3RW50cnkpO1xuICAgICAgICAgICAgZXZlbnQuc3Vic2NyaWJlKCguLi5hcmdzKSA9PiBuZXdFbnRyeS5saXN0ZW5lcnMuZW1pdCguLi5hcmdzKSwgdGhpcy5jaGF0KTtcbiAgICAgICAgfVxuICAgICAgICBlbnRyeS5saXN0ZW5lcnMubGlzdGVuKCguLi5hcmdzKSA9PiBoYW5kbGVyKC4uLmFyZ3MpKTtcbiAgICB9XG59XG4iLAogICAgImltcG9ydCB7IEF1dGhvciB9IGZyb20gJy4uL21vZGVscy9hdXRob3IuanMnO1xuaW1wb3J0IHsgQ2hhbm5lbCB9IGZyb20gJy4uL21vZGVscy9jaGFubmVsLmpzJztcbmltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICcuLi9tb2RlbHMvbWVzc2FnZS5qcyc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJy4uL21vZGVscy9wcm92aWRlci5qcyc7XG5pbXBvcnQgeyBSb29tIH0gZnJvbSAnLi4vbW9kZWxzL3Jvb20uanMnO1xuaW1wb3J0IHsgVm90ZSB9IGZyb20gJy4uL21vZGVscy92b3RlLmpzJztcbmltcG9ydCB7IFRhYmxlRXZlbnQgfSBmcm9tICcuL2V2ZW50LmpzJztcblxuZXhwb3J0IGNvbnN0IGV2ZW50czogeyBNZXNzYWdlOiBUYWJsZUV2ZW50PE1lc3NhZ2U+OyBBdXRob3I6IFRhYmxlRXZlbnQ8QXV0aG9yPjsgQ2hhbm5lbDogVGFibGVFdmVudDxDaGFubmVsPjsgUHJvdmlkZXI6IFRhYmxlRXZlbnQ8UHJvdmlkZXI+OyBSb29tOiBUYWJsZUV2ZW50PFJvb20+OyBWb3RlOiBUYWJsZUV2ZW50PFZvdGU+IH0gPSB7XG4gICAgTWVzc2FnZTogbmV3IFRhYmxlRXZlbnQoKGNoYXQpID0+IGNoYXQubWVzc2FnZXMpLFxuICAgIEF1dGhvcjogbmV3IFRhYmxlRXZlbnQoKGNoYXQpID0+IGNoYXQuYXV0aG9ycyksXG4gICAgQ2hhbm5lbDogbmV3IFRhYmxlRXZlbnQoKGNoYXQpID0+IGNoYXQuY2hhbm5lbHMpLFxuICAgIFByb3ZpZGVyOiBuZXcgVGFibGVFdmVudCgoY2hhdCkgPT4gY2hhdC5wcm92aWRlcnMpLFxuICAgIFJvb206IG5ldyBUYWJsZUV2ZW50KChjaGF0KSA9PiBjaGF0LnJvb21zKSxcbiAgICBWb3RlOiBuZXcgVGFibGVFdmVudCgoY2hhdCkgPT4gY2hhdC52b3RlcyksXG59O1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7QUFZTyxNQUFNLGNBQThEO0FBQUEsRUFDMUM7QUFBQSxFQUE3QixXQUFXLENBQWtCLGFBQThDO0FBQUEsSUFBOUM7QUFBQTtBQUFBLEVBRXRCLFNBQVMsQ0FBQyxTQUEwQixNQUFzQjtBQUFBLElBQzdELE1BQU0sV0FBVyxLQUFLLFlBQVksSUFBSTtBQUFBLElBQ3RDLE9BQU8sU0FBUyxPQUFPLE9BQU87QUFBQTtBQUV0QztBQUFBO0FBRU8sTUFBTSxtQkFBc0IsY0FBZ0M7QUFBQSxFQVVsQztBQUFBLEVBVGI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFaEIsV0FBVyxDQUFrQixVQUFvQztBQUFBLElBQzdELE1BQU0sQ0FBQyxTQUFTLFNBQVMsSUFBSSxFQUFFLE1BQU0sV0FBVztBQUFBLElBRHZCO0FBQUEsSUFFekIsS0FBSyxXQUFXLElBQUksY0FBYyxDQUFDLFNBQVMsU0FBUyxJQUFJLEVBQUUsTUFBTSxHQUFHO0FBQUEsSUFDcEUsS0FBSyxjQUFjLElBQUksY0FBYyxDQUFDLFNBQVMsU0FBUyxJQUFJLEVBQUUsTUFBTSxNQUFNO0FBQUEsSUFDMUUsS0FBSyxjQUFjLElBQUksY0FBYyxDQUFDLFNBQVMsU0FBUyxJQUFJLEVBQUUsTUFBTSxNQUFNO0FBQUEsSUFDMUUsS0FBSyxNQUFNLEtBQUssc0JBQXNCLENBQUMsVUFBVSxNQUFNLE1BQU0sR0FBRztBQUFBLElBQ2hFLEtBQUssU0FBUyxLQUFLLHNCQUFzQixDQUFDLFVBQVUsTUFBTSxNQUFNLE1BQU07QUFBQSxJQUN0RSxLQUFLLFNBQVMsS0FBSyxzQkFBc0IsQ0FBQyxVQUFVLE1BQU0sTUFBTSxNQUFNO0FBQUEsSUFDdEUsS0FBSyxRQUFRLElBQUksY0FBYyxDQUFDLFdBQVcsU0FBUyxNQUFNLEVBQUUsTUFBTSxLQUFLO0FBQUEsSUFDdkUsS0FBSyxXQUFXLENBQUM7QUFBQTtBQUFBLFNBR04sa0JBQXFCLENBQUMsTUFBeUQ7QUFBQSxJQUMxRixPQUFPLE9BQU8sVUFBVTtBQUFBLE1BQ3BCLFdBQVcsUUFBUSxNQUFNLE9BQU8sR0FBRztBQUFBLFFBQy9CLE1BQU0sS0FBSyxJQUFJO0FBQUEsTUFDbkI7QUFBQTtBQUFBO0FBQUEsRUFJQSxxQkFBcUIsQ0FDekIsYUFDZ0I7QUFBQSxJQUNoQixJQUFJLGVBQXNEO0FBQUEsSUFFMUQsTUFBTSxZQUFZLENBQUMsTUFBeUIsU0FBeUI7QUFBQSxNQUNqRSxNQUFNLFFBQVEsS0FBSyxTQUFTLElBQUk7QUFBQSxNQUNoQyxNQUFNLFdBQVcsWUFBWSxLQUFLO0FBQUEsTUFDbEMsZUFBZSxXQUFXLG1CQUFtQixDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUM7QUFBQSxNQUNqRSxNQUFNLGFBQWEsTUFBTSxPQUFPO0FBQUEsTUFDaEMsTUFBTSxhQUFhLFNBQVMsT0FBTyxZQUFZO0FBQUEsTUFDL0MsT0FBTyxNQUFNO0FBQUEsUUFDVCxXQUFXO0FBQUEsUUFDWCxXQUFXO0FBQUE7QUFBQTtBQUFBLElBSW5CLE9BQU87QUFBQSxNQUNIO0FBQUEsSUFDSjtBQUFBO0FBRVI7OztBQ2hFTyxJQUFNLFNBQXFMO0FBQUEsRUFDOUwsU0FBUyxJQUFJLFdBQVcsQ0FBQyxTQUFTLEtBQUssUUFBUTtBQUFBLEVBQy9DLFFBQVEsSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLE9BQU87QUFBQSxFQUM3QyxTQUFTLElBQUksV0FBVyxDQUFDLFNBQVMsS0FBSyxRQUFRO0FBQUEsRUFDL0MsVUFBVSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEtBQUssU0FBUztBQUFBLEVBQ2pELE1BQU0sSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLEtBQUs7QUFBQSxFQUN6QyxNQUFNLElBQUksV0FBVyxDQUFDLFNBQVMsS0FBSyxLQUFLO0FBQzdDOyIsCiAgImRlYnVnSWQiOiAiOEE3NURBRjA1MEUwMTIxNjY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
@@ -1,106 +0,0 @@
1
- // @bun
2
- // ../omu/dist/esm/event/index.js
3
- class EventEmitter {
4
- listeners = [];
5
- listen(listener) {
6
- this.listeners.push(listener);
7
- return () => {
8
- this.listeners.splice(this.listeners.indexOf(listener), 1);
9
- };
10
- }
11
- async emit(...args) {
12
- for (const listener of [...this.listeners]) {
13
- await listener(...args);
14
- }
15
- }
16
- }
17
-
18
- // src/event/event.ts
19
- class ListenerEvent {
20
- getListener;
21
- constructor(getListener) {
22
- this.getListener = getListener;
23
- }
24
- subscribe(handler, chat) {
25
- const listener = this.getListener(chat);
26
- return listener.listen(handler);
27
- }
28
- }
29
-
30
- class TableEvent extends ListenerEvent {
31
- getTable;
32
- AddBatch;
33
- UpdateBatch;
34
- RemoveBatch;
35
- Add;
36
- Update;
37
- Remove;
38
- Clear;
39
- wrappers;
40
- constructor(getTable) {
41
- super((chat) => getTable(chat).event.cacheUpdate);
42
- this.getTable = getTable;
43
- this.AddBatch = new ListenerEvent((chat) => getTable(chat).event.add);
44
- this.UpdateBatch = new ListenerEvent((chat) => getTable(chat).event.update);
45
- this.RemoveBatch = new ListenerEvent((chat) => getTable(chat).event.remove);
46
- this.Add = this.createBatchSubscriber((table) => table.event.add);
47
- this.Update = this.createBatchSubscriber((table) => table.event.update);
48
- this.Remove = this.createBatchSubscriber((table) => table.event.remove);
49
- this.Clear = new ListenerEvent((client) => getTable(client).event.clear);
50
- this.wrappers = {};
51
- }
52
- static createBatchWrapper(emit) {
53
- return async (items) => {
54
- for (const item of items.values()) {
55
- await emit(item);
56
- }
57
- };
58
- }
59
- createBatchSubscriber(getListener) {
60
- let batchWrapper = null;
61
- const subscribe = (emit, chat) => {
62
- const table = this.getTable(chat);
63
- const listener = getListener(table);
64
- batchWrapper = TableEvent.createBatchWrapper((item) => emit(item));
65
- const stopListen = table.listen();
66
- const clearEvent = listener.listen(batchWrapper);
67
- return () => {
68
- stopListen();
69
- clearEvent();
70
- };
71
- };
72
- return {
73
- subscribe
74
- };
75
- }
76
- }
77
-
78
- class EventRegistry {
79
- chat;
80
- events;
81
- constructor(chat) {
82
- this.chat = chat;
83
- this.events = new Map;
84
- }
85
- register(event, handler) {
86
- let entry = this.events.get(event);
87
- if (!entry) {
88
- const newEntry = {
89
- source: event,
90
- listeners: new EventEmitter
91
- };
92
- entry = newEntry;
93
- this.events.set(event, newEntry);
94
- event.subscribe((...args) => newEntry.listeners.emit(...args), this.chat);
95
- }
96
- entry.listeners.listen((...args) => handler(...args));
97
- }
98
- }
99
- export {
100
- TableEvent,
101
- ListenerEvent,
102
- EventRegistry
103
- };
104
-
105
- //# debugId=32DECB28BCA2C08764756E2164756E21
106
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vb211L2Rpc3QvZXNtL2V2ZW50L2luZGV4LmpzIiwgIi4uLy4uL3NyYy9ldmVudC9ldmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICIvLyBAYnVuXG4vLyBzcmMvZXZlbnQvaW5kZXgudHNcbmNsYXNzIEV2ZW50RW1pdHRlciB7XG4gIGxpc3RlbmVycyA9IFtdO1xuICBsaXN0ZW4obGlzdGVuZXIpIHtcbiAgICB0aGlzLmxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhpcy5saXN0ZW5lcnMuc3BsaWNlKHRoaXMubGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpLCAxKTtcbiAgICB9O1xuICB9XG4gIGFzeW5jIGVtaXQoLi4uYXJncykge1xuICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgWy4uLnRoaXMubGlzdGVuZXJzXSkge1xuICAgICAgYXdhaXQgbGlzdGVuZXIoLi4uYXJncyk7XG4gICAgfVxuICB9XG59XG5leHBvcnQge1xuICBFdmVudEVtaXR0ZXJcbn07XG5cbi8vIyBkZWJ1Z0lkPTdGNTU1MDg4RTQ1MDlBRjQ2NDc1NkUyMTY0NzU2RTIxXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV3b2dJQ0oyWlhKemFXOXVJam9nTXl3S0lDQWljMjkxY21ObGN5STZJRnNpTGk0dkxpNHZjM0pqTDJWMlpXNTBMMmx1WkdWNExuUnpJbDBzQ2lBZ0luTnZkWEpqWlhORGIyNTBaVzUwSWpvZ1d3b2dJQ0FnSW1WNGNHOXlkQ0IwZVhCbElGVnViR2x6ZEdWdUlEMGdLQ2tnUFQ0Z2RtOXBaRHRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRVYyWlc1MFJXMXBkSFJsY2p4UUlHVjRkR1Z1WkhNZ1FYSnlZWGs4WVc1NVBqNGdlMXh1SUNBZ0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ2JHbHpkR1Z1WlhKek9pQkJjbkpoZVR3b0xpNHVZWEpuY3pvZ1VDa2dQVDRnVUhKdmJXbHpaVHgyYjJsa1BpQjhJSFp2YVdRK0lEMGdXMTA3WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdiR2x6ZEdWdUtHeHBjM1JsYm1WeU9pQW9MaTR1WVhKbmN6b2dVQ2tnUFQ0Z1lXNTVLVG9nVlc1c2FYTjBaVzRnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbXhwYzNSbGJtVnljeTV3ZFhOb0tHeHBjM1JsYm1WeUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWJHbHpkR1Z1WlhKekxuTndiR2xqWlNoMGFHbHpMbXhwYzNSbGJtVnljeTVwYm1SbGVFOW1LR3hwYzNSbGJtVnlLU3dnTVNrN1hHNGdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJR1Z0YVhRb0xpNHVZWEpuY3pvZ1VDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR3hwYzNSbGJtVnlJRzltSUZzdUxpNTBhR2x6TG14cGMzUmxibVZ5YzEwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdGM1lXbDBJR3hwYzNSbGJtVnlLQzR1TG1GeVozTXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1ZlZ4dUlnb2dJRjBzQ2lBZ0ltMWhjSEJwYm1keklqb2dJanM3UVVGRlR5eE5RVUZOTEdGQlFXMURPMEZCUVVFc1JVRkRNMElzV1VGQmVVUXNRMEZCUXp0QlFVRkJMRVZCUlhCRkxFMUJRVTBzUTBGQlF5eFZRVUY1UXp0QlFVRkJMRWxCUTI1RUxFdEJRVXNzVlVGQlZTeExRVUZMTEZGQlFWRTdRVUZCUVN4SlFVTTFRaXhQUVVGUExFMUJRVTA3UVVGQlFTeE5RVU5VTEV0QlFVc3NWVUZCVlN4UFFVRlBMRXRCUVVzc1ZVRkJWU3hSUVVGUkxGRkJRVkVzUjBGQlJ5eERRVUZETzBGQlFVRTdRVUZCUVR0QlFVRkJMRTlCU1hCRUxFdEJRVWtzU1VGQlNTeE5RVUYzUWp0QlFVRkJMRWxCUTNwRExGZEJRVmNzV1VGQldTeERRVUZETEVkQlFVY3NTMEZCU3l4VFFVRlRMRWRCUVVjN1FVRkJRU3hOUVVONFF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpPMEZCUVVFc1NVRkRNVUk3UVVGQlFUdEJRVVZTT3lJc0NpQWdJbVJsWW5WblNXUWlPaUFpTjBZMU5UVXdPRGhGTkRVd09VRkdORFkwTnpVMlJUSXhOalEzTlRaRk1qRWlMQW9nSUNKdVlXMWxjeUk2SUZ0ZENuMD1cbiIsCiAgICAiaW1wb3J0IHR5cGUgeyBUYWJsZSB9IGZyb20gJ0BvbXVqcy9vbXUvYXBpL3RhYmxlJztcbmltcG9ydCB0eXBlIHsgVW5saXN0ZW4gfSBmcm9tICdAb211anMvb211L2V2ZW50JztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0BvbXVqcy9vbXUvZXZlbnQnO1xuXG5pbXBvcnQgdHlwZSB7IENoYXQgfSBmcm9tICcuLi9jaGF0LmpzJztcblxuZXhwb3J0IHR5cGUgRXZlbnRIYW5kbGVyPFAgZXh0ZW5kcyBBcnJheTxhbnk+PiA9ICguLi5hcmdzOiBQKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZTxQIGV4dGVuZHMgQXJyYXk8YW55Pj4ge1xuICAgIHN1YnNjcmliZShoYW5kbGVyOiBFdmVudEhhbmRsZXI8UD4sIGNoYXQ6IENoYXQpOiBVbmxpc3Rlbjtcbn1cblxuZXhwb3J0IGNsYXNzIExpc3RlbmVyRXZlbnQ8UCBleHRlbmRzIEFycmF5PGFueT4+IGltcGxlbWVudHMgRXZlbnRTb3VyY2U8UD4ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZ2V0TGlzdGVuZXI6IChjaGF0OiBDaGF0KSA9PiBFdmVudEVtaXR0ZXI8UD4pIHt9XG5cbiAgICBwdWJsaWMgc3Vic2NyaWJlKGhhbmRsZXI6IEV2ZW50SGFuZGxlcjxQPiwgY2hhdDogQ2hhdCk6IFVubGlzdGVuIHtcbiAgICAgICAgY29uc3QgbGlzdGVuZXIgPSB0aGlzLmdldExpc3RlbmVyKGNoYXQpO1xuICAgICAgICByZXR1cm4gbGlzdGVuZXIubGlzdGVuKGhhbmRsZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlRXZlbnQ8VD4gZXh0ZW5kcyBMaXN0ZW5lckV2ZW50PFtNYXA8c3RyaW5nLCBUPl0+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgQWRkQmF0Y2g6IExpc3RlbmVyRXZlbnQ8W01hcDxzdHJpbmcsIFQ+XT47XG4gICAgcHVibGljIHJlYWRvbmx5IFVwZGF0ZUJhdGNoOiBMaXN0ZW5lckV2ZW50PFtNYXA8c3RyaW5nLCBUPl0+O1xuICAgIHB1YmxpYyByZWFkb25seSBSZW1vdmVCYXRjaDogTGlzdGVuZXJFdmVudDxbTWFwPHN0cmluZywgVD5dPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgQWRkOiBFdmVudFNvdXJjZTxbVF0+O1xuICAgIHB1YmxpYyByZWFkb25seSBVcGRhdGU6IEV2ZW50U291cmNlPFtUXT47XG4gICAgcHVibGljIHJlYWRvbmx5IFJlbW92ZTogRXZlbnRTb3VyY2U8W1RdPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgQ2xlYXI6IEV2ZW50U291cmNlPFtdPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgd3JhcHBlcnM6IFJlY29yZDxzdHJpbmcsIFVubGlzdGVuPjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZ2V0VGFibGU6IChjaGF0OiBDaGF0KSA9PiBUYWJsZTxUPikge1xuICAgICAgICBzdXBlcigoY2hhdCkgPT4gZ2V0VGFibGUoY2hhdCkuZXZlbnQuY2FjaGVVcGRhdGUpO1xuICAgICAgICB0aGlzLkFkZEJhdGNoID0gbmV3IExpc3RlbmVyRXZlbnQoKGNoYXQpID0+IGdldFRhYmxlKGNoYXQpLmV2ZW50LmFkZCk7XG4gICAgICAgIHRoaXMuVXBkYXRlQmF0Y2ggPSBuZXcgTGlzdGVuZXJFdmVudCgoY2hhdCkgPT4gZ2V0VGFibGUoY2hhdCkuZXZlbnQudXBkYXRlKTtcbiAgICAgICAgdGhpcy5SZW1vdmVCYXRjaCA9IG5ldyBMaXN0ZW5lckV2ZW50KChjaGF0KSA9PiBnZXRUYWJsZShjaGF0KS5ldmVudC5yZW1vdmUpO1xuICAgICAgICB0aGlzLkFkZCA9IHRoaXMuY3JlYXRlQmF0Y2hTdWJzY3JpYmVyKCh0YWJsZSkgPT4gdGFibGUuZXZlbnQuYWRkKTtcbiAgICAgICAgdGhpcy5VcGRhdGUgPSB0aGlzLmNyZWF0ZUJhdGNoU3Vic2NyaWJlcigodGFibGUpID0+IHRhYmxlLmV2ZW50LnVwZGF0ZSk7XG4gICAgICAgIHRoaXMuUmVtb3ZlID0gdGhpcy5jcmVhdGVCYXRjaFN1YnNjcmliZXIoKHRhYmxlKSA9PiB0YWJsZS5ldmVudC5yZW1vdmUpO1xuICAgICAgICB0aGlzLkNsZWFyID0gbmV3IExpc3RlbmVyRXZlbnQoKGNsaWVudCkgPT4gZ2V0VGFibGUoY2xpZW50KS5ldmVudC5jbGVhcik7XG4gICAgICAgIHRoaXMud3JhcHBlcnMgPSB7fTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjcmVhdGVCYXRjaFdyYXBwZXI8VD4oZW1pdDogRXZlbnRIYW5kbGVyPFtUXT4pOiBFdmVudEhhbmRsZXI8W01hcDxzdHJpbmcsIFQ+XT4ge1xuICAgICAgICByZXR1cm4gYXN5bmMgKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMudmFsdWVzKCkpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBlbWl0KGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQmF0Y2hTdWJzY3JpYmVyKFxuICAgICAgICBnZXRMaXN0ZW5lcjogKHRhYmxlOiBUYWJsZTxUPikgPT4gRXZlbnRFbWl0dGVyPFtNYXA8c3RyaW5nLCBUPl0+LFxuICAgICk6IEV2ZW50U291cmNlPFtUXT4ge1xuICAgICAgICBsZXQgYmF0Y2hXcmFwcGVyOiBFdmVudEhhbmRsZXI8W01hcDxzdHJpbmcsIFQ+XT4gfCBudWxsID0gbnVsbDtcblxuICAgICAgICBjb25zdCBzdWJzY3JpYmUgPSAoZW1pdDogRXZlbnRIYW5kbGVyPFtUXT4sIGNoYXQ6IENoYXQpOiBVbmxpc3RlbiA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IHRoaXMuZ2V0VGFibGUoY2hhdCk7XG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IGdldExpc3RlbmVyKHRhYmxlKTtcbiAgICAgICAgICAgIGJhdGNoV3JhcHBlciA9IFRhYmxlRXZlbnQuY3JlYXRlQmF0Y2hXcmFwcGVyKChpdGVtKSA9PiBlbWl0KGl0ZW0pKTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3BMaXN0ZW4gPSB0YWJsZS5saXN0ZW4oKTtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFyRXZlbnQgPSBsaXN0ZW5lci5saXN0ZW4oYmF0Y2hXcmFwcGVyKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RvcExpc3RlbigpO1xuICAgICAgICAgICAgICAgIGNsZWFyRXZlbnQoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbnR5cGUgRW50cnk8UCBleHRlbmRzIEFycmF5PGFueT4+ID0ge1xuICAgIHNvdXJjZTogRXZlbnRTb3VyY2U8UD47XG4gICAgbGlzdGVuZXJzOiBFdmVudEVtaXR0ZXI8UD47XG59O1xuXG5leHBvcnQgY2xhc3MgRXZlbnRSZWdpc3RyeSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGF0OiBDaGF0O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzOiBNYXA8RXZlbnRTb3VyY2U8YW55PiwgRW50cnk8YW55Pj47XG5cbiAgICBjb25zdHJ1Y3RvcihjaGF0OiBDaGF0KSB7XG4gICAgICAgIHRoaXMuY2hhdCA9IGNoYXQ7XG4gICAgICAgIHRoaXMuZXZlbnRzID0gbmV3IE1hcCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlcjxQIGV4dGVuZHMgQXJyYXk8YW55Pj4oZXZlbnQ6IEV2ZW50U291cmNlPFA+LCBoYW5kbGVyOiBFdmVudEhhbmRsZXI8UD4pOiB2b2lkIHtcbiAgICAgICAgbGV0IGVudHJ5ID0gdGhpcy5ldmVudHMuZ2V0KGV2ZW50KSBhcyBFbnRyeTxQPiB8IG51bGw7XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0VudHJ5OiBFbnRyeTxQPiA9IHtcbiAgICAgICAgICAgICAgICBzb3VyY2U6IGV2ZW50LFxuICAgICAgICAgICAgICAgIGxpc3RlbmVyczogbmV3IEV2ZW50RW1pdHRlcigpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGVudHJ5ID0gbmV3RW50cnk7XG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5zZXQoZXZlbnQsIG5ld0VudHJ5KTtcbiAgICAgICAgICAgIGV2ZW50LnN1YnNjcmliZSgoLi4uYXJncykgPT4gbmV3RW50cnkubGlzdGVuZXJzLmVtaXQoLi4uYXJncyksIHRoaXMuY2hhdCk7XG4gICAgICAgIH1cbiAgICAgICAgZW50cnkubGlzdGVuZXJzLmxpc3RlbigoLi4uYXJncykgPT4gaGFuZGxlciguLi5hcmdzKSk7XG4gICAgfVxufVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7QUFFQSxNQUFNLGFBQWE7QUFBQSxFQUNqQixZQUFZLENBQUM7QUFBQSxFQUNiLE1BQU0sQ0FBQyxVQUFVO0FBQUEsSUFDZixLQUFLLFVBQVUsS0FBSyxRQUFRO0FBQUEsSUFDNUIsT0FBTyxNQUFNO0FBQUEsTUFDWCxLQUFLLFVBQVUsT0FBTyxLQUFLLFVBQVUsUUFBUSxRQUFRLEdBQUcsQ0FBQztBQUFBO0FBQUE7QUFBQSxPQUd2RCxLQUFJLElBQUksTUFBTTtBQUFBLElBQ2xCLFdBQVcsWUFBWSxDQUFDLEdBQUcsS0FBSyxTQUFTLEdBQUc7QUFBQSxNQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJO0FBQUEsSUFDeEI7QUFBQTtBQUVKOzs7QUNITyxNQUFNLGNB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
@@ -1,115 +0,0 @@
1
- // @bun
2
- // ../omu/dist/esm/event/index.js
3
- class EventEmitter {
4
- listeners = [];
5
- listen(listener) {
6
- this.listeners.push(listener);
7
- return () => {
8
- this.listeners.splice(this.listeners.indexOf(listener), 1);
9
- };
10
- }
11
- async emit(...args) {
12
- for (const listener of [...this.listeners]) {
13
- await listener(...args);
14
- }
15
- }
16
- }
17
-
18
- // src/event/event.ts
19
- class ListenerEvent {
20
- getListener;
21
- constructor(getListener) {
22
- this.getListener = getListener;
23
- }
24
- subscribe(handler, chat) {
25
- const listener = this.getListener(chat);
26
- return listener.listen(handler);
27
- }
28
- }
29
-
30
- class TableEvent extends ListenerEvent {
31
- getTable;
32
- AddBatch;
33
- UpdateBatch;
34
- RemoveBatch;
35
- Add;
36
- Update;
37
- Remove;
38
- Clear;
39
- wrappers;
40
- constructor(getTable) {
41
- super((chat) => getTable(chat).event.cacheUpdate);
42
- this.getTable = getTable;
43
- this.AddBatch = new ListenerEvent((chat) => getTable(chat).event.add);
44
- this.UpdateBatch = new ListenerEvent((chat) => getTable(chat).event.update);
45
- this.RemoveBatch = new ListenerEvent((chat) => getTable(chat).event.remove);
46
- this.Add = this.createBatchSubscriber((table) => table.event.add);
47
- this.Update = this.createBatchSubscriber((table) => table.event.update);
48
- this.Remove = this.createBatchSubscriber((table) => table.event.remove);
49
- this.Clear = new ListenerEvent((client) => getTable(client).event.clear);
50
- this.wrappers = {};
51
- }
52
- static createBatchWrapper(emit) {
53
- return async (items) => {
54
- for (const item of items.values()) {
55
- await emit(item);
56
- }
57
- };
58
- }
59
- createBatchSubscriber(getListener) {
60
- let batchWrapper = null;
61
- const subscribe = (emit, chat) => {
62
- const table = this.getTable(chat);
63
- const listener = getListener(table);
64
- batchWrapper = TableEvent.createBatchWrapper((item) => emit(item));
65
- const stopListen = table.listen();
66
- const clearEvent = listener.listen(batchWrapper);
67
- return () => {
68
- stopListen();
69
- clearEvent();
70
- };
71
- };
72
- return {
73
- subscribe
74
- };
75
- }
76
- }
77
-
78
- class EventRegistry {
79
- chat;
80
- events;
81
- constructor(chat) {
82
- this.chat = chat;
83
- this.events = new Map;
84
- }
85
- register(event, handler) {
86
- let entry = this.events.get(event);
87
- if (!entry) {
88
- const newEntry = {
89
- source: event,
90
- listeners: new EventEmitter
91
- };
92
- entry = newEntry;
93
- this.events.set(event, newEntry);
94
- event.subscribe((...args) => newEntry.listeners.emit(...args), this.chat);
95
- }
96
- entry.listeners.listen((...args) => handler(...args));
97
- }
98
- }
99
-
100
- // src/event/event-types.ts
101
- var events = {
102
- Message: new TableEvent((chat) => chat.messages),
103
- Author: new TableEvent((chat) => chat.authors),
104
- Channel: new TableEvent((chat) => chat.channels),
105
- Provider: new TableEvent((chat) => chat.providers),
106
- Room: new TableEvent((chat) => chat.rooms),
107
- Vote: new TableEvent((chat) => chat.votes)
108
- };
109
- export {
110
- events as Events,
111
- EventRegistry
112
- };
113
-
114
- //# debugId=F2B3B443165F1CA764756E2164756E21
115
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vb211L2Rpc3QvZXNtL2V2ZW50L2luZGV4LmpzIiwgIi4uLy4uL3NyYy9ldmVudC9ldmVudC50cyIsICIuLi8uLi9zcmMvZXZlbnQvZXZlbnQtdHlwZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiLy8gQGJ1blxuLy8gc3JjL2V2ZW50L2luZGV4LnRzXG5jbGFzcyBFdmVudEVtaXR0ZXIge1xuICBsaXN0ZW5lcnMgPSBbXTtcbiAgbGlzdGVuKGxpc3RlbmVyKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMubGlzdGVuZXJzLnNwbGljZSh0aGlzLmxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKSwgMSk7XG4gICAgfTtcbiAgfVxuICBhc3luYyBlbWl0KC4uLmFyZ3MpIHtcbiAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIFsuLi50aGlzLmxpc3RlbmVyc10pIHtcbiAgICAgIGF3YWl0IGxpc3RlbmVyKC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxufVxuZXhwb3J0IHtcbiAgRXZlbnRFbWl0dGVyXG59O1xuXG4vLyMgZGVidWdJZD03RjU1NTA4OEU0NTA5QUY0NjQ3NTZFMjE2NDc1NkUyMVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxld29nSUNKMlpYSnphVzl1SWpvZ015d0tJQ0FpYzI5MWNtTmxjeUk2SUZzaUxpNHZMaTR2YzNKakwyVjJaVzUwTDJsdVpHVjRMblJ6SWwwc0NpQWdJbk52ZFhKalpYTkRiMjUwWlc1MElqb2dXd29nSUNBZ0ltVjRjRzl5ZENCMGVYQmxJRlZ1YkdsemRHVnVJRDBnS0NrZ1BUNGdkbTlwWkR0Y2JseHVaWGh3YjNKMElHTnNZWE56SUVWMlpXNTBSVzFwZEhSbGNqeFFJR1Y0ZEdWdVpITWdRWEp5WVhrOFlXNTVQajRnZTF4dUlDQWdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2diR2x6ZEdWdVpYSnpPaUJCY25KaGVUd29MaTR1WVhKbmN6b2dVQ2tnUFQ0Z1VISnZiV2x6WlR4MmIybGtQaUI4SUhadmFXUStJRDBnVzEwN1hHNWNiaUFnSUNCd2RXSnNhV01nYkdsemRHVnVLR3hwYzNSbGJtVnlPaUFvTGk0dVlYSm5jem9nVUNrZ1BUNGdZVzU1S1RvZ1ZXNXNhWE4wWlc0Z2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG14cGMzUmxibVZ5Y3k1d2RYTm9LR3hwYzNSbGJtVnlLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXViR2x6ZEdWdVpYSnpMbk53YkdsalpTaDBhR2x6TG14cGMzUmxibVZ5Y3k1cGJtUmxlRTltS0d4cGMzUmxibVZ5S1N3Z01TazdYRzRnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHRnplVzVqSUdWdGFYUW9MaTR1WVhKbmN6b2dVQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUd4cGMzUmxibVZ5SUc5bUlGc3VMaTUwYUdsekxteHBjM1JsYm1WeWMxMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRjNZV2wwSUd4cGMzUmxibVZ5S0M0dUxtRnlaM01wTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dWZWeHVJZ29nSUYwc0NpQWdJbTFoY0hCcGJtZHpJam9nSWpzN1FVRkZUeXhOUVVGTkxHRkJRVzFETzBGQlFVRXNSVUZETTBJc1dVRkJlVVFzUTBGQlF6dEJRVUZCTEVWQlJYQkZMRTFCUVUwc1EwRkJReXhWUVVGNVF6dEJRVUZCTEVsQlEyNUVMRXRCUVVzc1ZVRkJWU3hMUVVGTExGRkJRVkU3UVVGQlFTeEpRVU0xUWl4UFFVRlBMRTFCUVUwN1FVRkJRU3hOUVVOVUxFdEJRVXNzVlVGQlZTeFBRVUZQTEV0QlFVc3NWVUZCVlN4UlFVRlJMRkZCUVZFc1IwRkJSeXhEUVVGRE8wRkJRVUU3UVVGQlFUdEJRVUZCTEU5QlNYQkVMRXRCUVVrc1NVRkJTU3hOUVVGM1FqdEJRVUZCTEVsQlEzcERMRmRCUVZjc1dVRkJXU3hEUVVGRExFZEJRVWNzUzBGQlN5eFRRVUZUTEVkQlFVYzdRVUZCUVN4TlFVTjRReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTzBGQlFVRXNTVUZETVVJN1FVRkJRVHRCUVVWU095SXNDaUFnSW1SbFluVm5TV1FpT2lBaU4wWTFOVFV3T0RoRk5EVXdPVUZHTkRZME56VTJSVEl4TmpRM05UWkZNakVpTEFvZ0lDSnVZVzFsY3lJNklGdGRDbjA9XG4iLAogICAgImltcG9ydCB0eXBlIHsgVGFibGUgfSBmcm9tICdAb211anMvb211L2FwaS90YWJsZSc7XG5pbXBvcnQgdHlwZSB7IFVubGlzdGVuIH0gZnJvbSAnQG9tdWpzL29tdS9ldmVudCc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAb211anMvb211L2V2ZW50JztcblxuaW1wb3J0IHR5cGUgeyBDaGF0IH0gZnJvbSAnLi4vY2hhdC5qcyc7XG5cbmV4cG9ydCB0eXBlIEV2ZW50SGFuZGxlcjxQIGV4dGVuZHMgQXJyYXk8YW55Pj4gPSAoLi4uYXJnczogUCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2U8UCBleHRlbmRzIEFycmF5PGFueT4+IHtcbiAgICBzdWJzY3JpYmUoaGFuZGxlcjogRXZlbnRIYW5kbGVyPFA+LCBjaGF0OiBDaGF0KTogVW5saXN0ZW47XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0ZW5lckV2ZW50PFAgZXh0ZW5kcyBBcnJheTxhbnk+PiBpbXBsZW1lbnRzIEV2ZW50U291cmNlPFA+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGdldExpc3RlbmVyOiAoY2hhdDogQ2hhdCkgPT4gRXZlbnRFbWl0dGVyPFA+KSB7fVxuXG4gICAgcHVibGljIHN1YnNjcmliZShoYW5kbGVyOiBFdmVudEhhbmRsZXI8UD4sIGNoYXQ6IENoYXQpOiBVbmxpc3RlbiB7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVyID0gdGhpcy5nZXRMaXN0ZW5lcihjaGF0KTtcbiAgICAgICAgcmV0dXJuIGxpc3RlbmVyLmxpc3RlbihoYW5kbGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUV2ZW50PFQ+IGV4dGVuZHMgTGlzdGVuZXJFdmVudDxbTWFwPHN0cmluZywgVD5dPiB7XG4gICAgcHVibGljIHJlYWRvbmx5IEFkZEJhdGNoOiBMaXN0ZW5lckV2ZW50PFtNYXA8c3RyaW5nLCBUPl0+O1xuICAgIHB1YmxpYyByZWFkb25seSBVcGRhdGVCYXRjaDogTGlzdGVuZXJFdmVudDxbTWFwPHN0cmluZywgVD5dPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgUmVtb3ZlQmF0Y2g6IExpc3RlbmVyRXZlbnQ8W01hcDxzdHJpbmcsIFQ+XT47XG4gICAgcHVibGljIHJlYWRvbmx5IEFkZDogRXZlbnRTb3VyY2U8W1RdPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgVXBkYXRlOiBFdmVudFNvdXJjZTxbVF0+O1xuICAgIHB1YmxpYyByZWFkb25seSBSZW1vdmU6IEV2ZW50U291cmNlPFtUXT47XG4gICAgcHVibGljIHJlYWRvbmx5IENsZWFyOiBFdmVudFNvdXJjZTxbXT47XG4gICAgcHVibGljIHJlYWRvbmx5IHdyYXBwZXJzOiBSZWNvcmQ8c3RyaW5nLCBVbmxpc3Rlbj47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGdldFRhYmxlOiAoY2hhdDogQ2hhdCkgPT4gVGFibGU8VD4pIHtcbiAgICAgICAgc3VwZXIoKGNoYXQpID0+IGdldFRhYmxlKGNoYXQpLmV2ZW50LmNhY2hlVXBkYXRlKTtcbiAgICAgICAgdGhpcy5BZGRCYXRjaCA9IG5ldyBMaXN0ZW5lckV2ZW50KChjaGF0KSA9PiBnZXRUYWJsZShjaGF0KS5ldmVudC5hZGQpO1xuICAgICAgICB0aGlzLlVwZGF0ZUJhdGNoID0gbmV3IExpc3RlbmVyRXZlbnQoKGNoYXQpID0+IGdldFRhYmxlKGNoYXQpLmV2ZW50LnVwZGF0ZSk7XG4gICAgICAgIHRoaXMuUmVtb3ZlQmF0Y2ggPSBuZXcgTGlzdGVuZXJFdmVudCgoY2hhdCkgPT4gZ2V0VGFibGUoY2hhdCkuZXZlbnQucmVtb3ZlKTtcbiAgICAgICAgdGhpcy5BZGQgPSB0aGlzLmNyZWF0ZUJhdGNoU3Vic2NyaWJlcigodGFibGUpID0+IHRhYmxlLmV2ZW50LmFkZCk7XG4gICAgICAgIHRoaXMuVXBkYXRlID0gdGhpcy5jcmVhdGVCYXRjaFN1YnNjcmliZXIoKHRhYmxlKSA9PiB0YWJsZS5ldmVudC51cGRhdGUpO1xuICAgICAgICB0aGlzLlJlbW92ZSA9IHRoaXMuY3JlYXRlQmF0Y2hTdWJzY3JpYmVyKCh0YWJsZSkgPT4gdGFibGUuZXZlbnQucmVtb3ZlKTtcbiAgICAgICAgdGhpcy5DbGVhciA9IG5ldyBMaXN0ZW5lckV2ZW50KChjbGllbnQpID0+IGdldFRhYmxlKGNsaWVudCkuZXZlbnQuY2xlYXIpO1xuICAgICAgICB0aGlzLndyYXBwZXJzID0ge307XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQmF0Y2hXcmFwcGVyPFQ+KGVtaXQ6IEV2ZW50SGFuZGxlcjxbVF0+KTogRXZlbnRIYW5kbGVyPFtNYXA8c3RyaW5nLCBUPl0+IHtcbiAgICAgICAgcmV0dXJuIGFzeW5jIChpdGVtcykgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZW1pdChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUJhdGNoU3Vic2NyaWJlcihcbiAgICAgICAgZ2V0TGlzdGVuZXI6ICh0YWJsZTogVGFibGU8VD4pID0+IEV2ZW50RW1pdHRlcjxbTWFwPHN0cmluZywgVD5dPixcbiAgICApOiBFdmVudFNvdXJjZTxbVF0+IHtcbiAgICAgICAgbGV0IGJhdGNoV3JhcHBlcjogRXZlbnRIYW5kbGVyPFtNYXA8c3RyaW5nLCBUPl0+IHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlID0gKGVtaXQ6IEV2ZW50SGFuZGxlcjxbVF0+LCBjaGF0OiBDaGF0KTogVW5saXN0ZW4gPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLmdldFRhYmxlKGNoYXQpO1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBnZXRMaXN0ZW5lcih0YWJsZSk7XG4gICAgICAgICAgICBiYXRjaFdyYXBwZXIgPSBUYWJsZUV2ZW50LmNyZWF0ZUJhdGNoV3JhcHBlcigoaXRlbSkgPT4gZW1pdChpdGVtKSk7XG4gICAgICAgICAgICBjb25zdCBzdG9wTGlzdGVuID0gdGFibGUubGlzdGVuKCk7XG4gICAgICAgICAgICBjb25zdCBjbGVhckV2ZW50ID0gbGlzdGVuZXIubGlzdGVuKGJhdGNoV3JhcHBlcik7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0b3BMaXN0ZW4oKTtcbiAgICAgICAgICAgICAgICBjbGVhckV2ZW50KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG50eXBlIEVudHJ5PFAgZXh0ZW5kcyBBcnJheTxhbnk+PiA9IHtcbiAgICBzb3VyY2U6IEV2ZW50U291cmNlPFA+O1xuICAgIGxpc3RlbmVyczogRXZlbnRFbWl0dGVyPFA+O1xufTtcblxuZXhwb3J0IGNsYXNzIEV2ZW50UmVnaXN0cnkge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhdDogQ2hhdDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50czogTWFwPEV2ZW50U291cmNlPGFueT4sIEVudHJ5PGFueT4+O1xuXG4gICAgY29uc3RydWN0b3IoY2hhdDogQ2hhdCkge1xuICAgICAgICB0aGlzLmNoYXQgPSBjaGF0O1xuICAgICAgICB0aGlzLmV2ZW50cyA9IG5ldyBNYXAoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXI8UCBleHRlbmRzIEFycmF5PGFueT4+KGV2ZW50OiBFdmVudFNvdXJjZTxQPiwgaGFuZGxlcjogRXZlbnRIYW5kbGVyPFA+KTogdm9pZCB7XG4gICAgICAgIGxldCBlbnRyeSA9IHRoaXMuZXZlbnRzLmdldChldmVudCkgYXMgRW50cnk8UD4gfCBudWxsO1xuICAgICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdFbnRyeTogRW50cnk8UD4gPSB7XG4gICAgICAgICAgICAgICAgc291cmNlOiBldmVudCxcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnM6IG5ldyBFdmVudEVtaXR0ZXIoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBlbnRyeSA9IG5ld0VudHJ5O1xuICAgICAgICAgICAgdGhpcy5ldmVudHMuc2V0KGV2ZW50LCBuZXdFbnRyeSk7XG4gICAgICAgICAgICBldmVudC5zdWJzY3JpYmUoKC4uLmFyZ3MpID0+IG5ld0VudHJ5Lmxpc3RlbmVycy5lbWl0KC4uLmFyZ3MpLCB0aGlzLmNoYXQpO1xuICAgICAgICB9XG4gICAgICAgIGVudHJ5Lmxpc3RlbmVycy5saXN0ZW4oKC4uLmFyZ3MpID0+IGhhbmRsZXIoLi4uYXJncykpO1xuICAgIH1cbn1cbiIsCiAgICAiaW1wb3J0IHsgQXV0aG9yIH0gZnJvbSAnLi4vbW9kZWxzL2F1dGhvci5qcyc7XG5pbXBvcnQgeyBDaGFubmVsIH0gZnJvbSAnLi4vbW9kZWxzL2NoYW5uZWwuanMnO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJy4uL21vZGVscy9tZXNzYWdlLmpzJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3ZpZGVyLmpzJztcbmltcG9ydCB7IFJvb20gfSBmcm9tICcuLi9tb2RlbHMvcm9vbS5qcyc7XG5pbXBvcnQgeyBWb3RlIH0gZnJvbSAnLi4vbW9kZWxzL3ZvdGUuanMnO1xuaW1wb3J0IHsgVGFibGVFdmVudCB9IGZyb20gJy4vZXZlbnQuanMnO1xuXG5leHBvcnQgY29uc3QgZXZlbnRzOiB7IE1lc3NhZ2U6IFRhYmxlRXZlbnQ8TWVzc2FnZT47IEF1dGhvcjogVGFibGVFdmVudDxBdXRob3I+OyBDaGFubmVsOiBUYWJsZUV2ZW50PENoYW5uZWw+OyBQcm92aWRlcjogVGFibGVFdmVudDxQcm92aWRlcj47IFJvb206IFRhYmxlRXZlbnQ8Um9vbT47IFZvdGU6IFRhYmxlRXZlbnQ8Vm90ZT4gfSA9IHtcbiAgICBNZXNzYWdlOiBuZXcgVGFibGVFdmVudCgoY2hhdCkgPT4gY2hhdC5tZXNzYWdlcyksXG4gICAgQXV0aG9yOiBuZXcgVGFibGVFdmVudCgoY2hhdCkgPT4gY2hhdC5hdXRob3JzKSxcbiAgICBDaGFubmVsOiBuZXcgVGFibGVFdmVudCgoY2hhdCkgPT4gY2hhdC5jaGFubmVscyksXG4gICAgUHJvdmlkZXI6IG5ldyBUYWJsZUV2ZW50KChjaGF0KSA9PiBjaGF0LnByb3ZpZGVycyksXG4gICAgUm9vbTogbmV3IFRhYmxlRXZlbnQoKGNoYXQpID0+IGNoYXQucm9vbXMpLFxuICAgIFZvdGU6IG5ldyBUYWJsZUV2ZW50KChjaGF0KSA9PiBjaGF0LnZvdGVzKSxcbn07XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOztBQUVBLE1BQU0sYUFBYTtBQUFBLEVBQ2pCLFlBQVksQ0FBQztBQUFBLEVBQ2IsTUFBTSxDQUFDLFVBQVU7QUFBQSxJQUNmLEtBQUssVUFBVSxLQUFLLFFBQVE7QUFBQSxJQUM1QixPQUFPLE1BQU07QUFBQSxNQUNYLEtBQUssVUFBVSxPQUFPLEtBQUssVUFBVSxRQUFRLFFBQVEsR0FBRyxDQUFDO0FBQUE7QUFBQTtBQUFBLE9BR3ZELEtBQUksSUFBSSxNQUFNO0FBQUEsSUFDbEIsV0FBVyxZQUFZLENBQUMsR0FBRyxLQUFLLFNBQVMsR0FBRztBQUFBLE1BQzFDLE1BQU0sU0FBUyxHQUFHLElBQUk7QUFBQSxJQUN4QjtBQUFBO0FBRUo7OztBQ0hPLE1BQU0sY0FBOEQ7QUFBQSxFQUMxQztBQUFBLEVBQTdCLFdBQVcsQ0FBa0IsYUFBOEM7QUFBQSxJQUE5QztBQUFBO0FBQUEsRUFFdEIsU0FBUyxDQUFDLFNBQTBCLE1BQXNCO0FBQUEsSUFDN0QsTUFBTSxXQUFXLEtBQUssWUFBWSxJQUFJO0FBQUEsSUFDdEMsT0FBTyxTQUFTLE9BQU8sT0FBTztBQUFBO0FBRXRDO0FBQUE7QUFFTyxNQUFNLG1CQUFzQixjQUFnQztBQUFBLEVBVWxDO0FBQUEsRUFUYjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVoQixXQUFXLENBQWtCLFVBQW9DO0FBQUEsSUFDN0QsTUFBTSxDQUFDLFNBQVMsU0FBUyxJQUFJLEVBQUUsTUFBTSxXQUFXO0FBQUEsSUFEdkI7QUFBQSxJQUV6QixLQUFLLFdBQVcsSUFBSSxjQUFjLENBQUMsU0FBUyxTQUFTLElBQUksRUFBRSxNQUFNLEdBQUc7QUFBQSxJQUNwRSxLQUFLLGNBQWMsSUFBSSxjQUFjLENBQUMsU0FBUyxTQUFTLElBQUksRUFBRSxNQUFNLE1BQU07QUFBQSxJQUMxRSxLQUFLLGNBQWMsSUFBSSxjQUFjLENBQUMsU0FBUyxTQUFTLElBQUksRUFBRSxNQUFNLE1BQU07QUFBQSxJQUMxRSxLQUFLLE1BQU0sS0FBSyxzQkFBc0IsQ0FBQyxVQUFVLE1BQU0sTUFBTSxHQUFHO0FBQUEsSUFDaEUsS0FBSyxTQUFTLEtBQUssc0JBQXNCLENBQUMsVUFBVSxNQUFNLE1BQU0sTUFBTTtBQUFBLElBQ3RFLEtBQUssU0FBUyxLQUFLLHNCQUFzQixDQUFDLFVBQVUsTUFBTSxNQUFNLE1BQU07QUFBQSxJQUN0RSxLQUFLLFFBQVEsSUFBSSxjQUFjLENBQUMsV0FBVyxTQUFTLE1BQU0sRUFBRSxNQUFNLEtBQUs7QUFBQSxJQUN2RSxLQUFLLFdBQVcsQ0FBQztBQUFBO0FBQUEsU0FHTixrQkFBcUIsQ0FBQyxNQUF5RDtBQUFBLElBQzFGLE9BQU8sT0FBTyxVQUFVO0FBQUEsTUFDcEIsV0FBVyxRQUFRLE1BQU0sT0FBTyxHQUFHO0FBQUEsUUFDL0IsTUFBTSxLQUFLLElBQUk7QUFBQSxNQUNuQjtBQUFBO0FBQUE7QUFBQSxFQUlBLHFCQUFxQixDQUN6QixhQUNnQjtBQUFBLElBQ2hCLElBQUksZUFBc0Q7QUFBQSxJQUUxRCxNQUFNLFlBQVksQ0FBQyxNQUF5QixTQUF5QjtBQUFBLE1BQ2pFLE1BQU0sUUFBUSxLQUFLLFNBQVMsSUFBSTtBQUFBLE1BQ2hDLE1BQU0sV0FBVyxZQUFZLEtBQUs7QUFBQSxNQUNsQyxlQUFlLFdBQVcsbUJBQW1CLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQztBQUFBLE1BQ2pFLE1BQU0sYUFBYSxNQUFNLE9BQU87QUFBQSxNQUNoQyxNQUFNLGFBQWEsU0FBUyxPQUFPLFlBQVk7QUFBQSxNQUMvQyxPQUFPLE1BQU07QUFBQSxRQUNULFdBQVc7QUFBQSxRQUNYLFdBQVc7QUFBQTtBQUFBO0FBQUEsSUFJbkIsT0FBTztBQUFBLE1BQ0g7QUFBQSxJQUNKO0FBQUE7QUFFUjtBQUFBO0FBT08sTUFBTSxjQUFjO0FBQUEsRUFDTjtBQUFBLEVBQ0E7QUFBQSxFQUVqQixXQUFXLENBQUMsTUFBWTtBQUFBLElBQ3BCLEtBQUssT0FBTztBQUFBLElBQ1osS0FBSyxTQUFTLElBQUk7QUFBQTtBQUFBLEVBR2YsUUFBOEIsQ0FBQyxPQUF1QixTQUFnQztBQUFBLElBQ3pGLElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxLQUFLO0FBQUEsSUFDakMsSUFBSSxDQUFDLE9BQU87QUFBQSxNQUNSLE1BQU0sV0FBcUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixXQUFXLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsUUFBUTtBQUFBLE1BQ1IsS0FBSyxPQUFPLElBQUksT0FBTyxRQUFRO0FBQUEsTUFDL0IsTUFBTSxVQUFVLElBQUksU0FBUyxTQUFTLFVBQVUsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLElBQUk7QUFBQSxJQUM1RTtBQUFBLElBQ0EsTUFBTSxVQUFVLE9BQU8sSUFBSSxTQUFTLFFBQVEsR0FBRyxJQUFJLENBQUM7QUFBQTtBQUU1RDs7O0FDN0ZPLElBQU0sU0FBcUw7QUFBQSxFQUM5TCxTQUFTLElBQUksV0FBVyxDQUFDLFNBQVMsS0FBSyxRQUFRO0FBQUEsRUFDL0MsUUFBUSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEtBQUssT0FBTztBQUFBLEVBQzdDLFNBQVMsSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLFFBQVE7QUFBQSxFQUMvQyxVQUFVLElBQUksV0FBVyxDQUFDLFNBQVMsS0FBSyxTQUFTO0FBQUEsRUFDakQsTUFBTSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEtBQUssS0FBSztBQUFBLEVBQ3pDLE1BQU0sSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLEtBQUs7QUFDN0M7IiwKICAiZGVidWdJZCI6ICJGMkIzQjQ0MzE2NUYxQ0E3NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==