@artstesh/postboy 2.1.10 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +27 -68
  2. package/lib/index.d.ts +2 -3
  3. package/lib/index.d.ts.map +1 -1
  4. package/lib/index.js +2 -3
  5. package/lib/index.js.map +1 -1
  6. package/lib/models/message-queue.model.js +2 -2
  7. package/lib/models/message-queue.model.js.map +1 -1
  8. package/lib/models/postboy-callback.message.d.ts +18 -0
  9. package/lib/models/postboy-callback.message.d.ts.map +1 -1
  10. package/lib/models/postboy-callback.message.js +18 -0
  11. package/lib/models/postboy-callback.message.js.map +1 -1
  12. package/lib/models/postboy-executor.d.ts +2 -2
  13. package/lib/models/postboy-executor.d.ts.map +1 -1
  14. package/lib/models/postboy-executor.js +2 -2
  15. package/lib/models/postboy-executor.js.map +1 -1
  16. package/lib/models/postboy-generic-message.d.ts +2 -2
  17. package/lib/models/postboy-generic-message.d.ts.map +1 -1
  18. package/lib/models/postboy-generic-message.js +2 -4
  19. package/lib/models/postboy-generic-message.js.map +1 -1
  20. package/lib/models/postboy-middleware.d.ts +5 -0
  21. package/lib/models/postboy-middleware.d.ts.map +1 -0
  22. package/lib/models/{postboy-bbb.js → postboy-middleware.js} +1 -1
  23. package/lib/models/postboy-middleware.js.map +1 -0
  24. package/lib/models/postboy.message.d.ts +4 -0
  25. package/lib/models/postboy.message.d.ts.map +1 -0
  26. package/lib/models/postboy.message.js +10 -0
  27. package/lib/models/postboy.message.js.map +1 -0
  28. package/lib/models/queue.d.ts +11 -0
  29. package/lib/models/queue.d.ts.map +1 -0
  30. package/lib/models/queue.js +34 -0
  31. package/lib/models/queue.js.map +1 -0
  32. package/lib/postboy-abstract.registrator.d.ts +0 -24
  33. package/lib/postboy-abstract.registrator.d.ts.map +1 -1
  34. package/lib/postboy-abstract.registrator.js +0 -33
  35. package/lib/postboy-abstract.registrator.js.map +1 -1
  36. package/lib/postboy.service.d.ts +25 -42
  37. package/lib/postboy.service.d.ts.map +1 -1
  38. package/lib/postboy.service.js +50 -71
  39. package/lib/postboy.service.js.map +1 -1
  40. package/package.json +2 -4
  41. package/lib/locker.store.d.ts +0 -9
  42. package/lib/locker.store.d.ts.map +0 -1
  43. package/lib/locker.store.js +0 -27
  44. package/lib/locker.store.js.map +0 -1
  45. package/lib/mocks/message-history-item-mock.d.ts +0 -10
  46. package/lib/mocks/message-history-item-mock.d.ts.map +0 -1
  47. package/lib/mocks/message-history-item-mock.js +0 -26
  48. package/lib/mocks/message-history-item-mock.js.map +0 -1
  49. package/lib/mocks/message-history-mock.d.ts +0 -9
  50. package/lib/mocks/message-history-mock.d.ts.map +0 -1
  51. package/lib/mocks/message-history-mock.js +0 -24
  52. package/lib/mocks/message-history-mock.js.map +0 -1
  53. package/lib/mocks/postboy-service-mock.d.ts +0 -22
  54. package/lib/mocks/postboy-service-mock.d.ts.map +0 -1
  55. package/lib/mocks/postboy-service-mock.js +0 -51
  56. package/lib/mocks/postboy-service-mock.js.map +0 -1
  57. package/lib/models/dictionary.d.ts +0 -18
  58. package/lib/models/dictionary.d.ts.map +0 -1
  59. package/lib/models/dictionary.js +0 -59
  60. package/lib/models/dictionary.js.map +0 -1
  61. package/lib/models/id-generator.d.ts +0 -4
  62. package/lib/models/id-generator.d.ts.map +0 -1
  63. package/lib/models/id-generator.js +0 -14
  64. package/lib/models/id-generator.js.map +0 -1
  65. package/lib/models/postboy-bbb.d.ts +0 -4
  66. package/lib/models/postboy-bbb.d.ts.map +0 -1
  67. package/lib/models/postboy-bbb.js.map +0 -1
  68. package/lib/models/postboy.locker.d.ts +0 -6
  69. package/lib/models/postboy.locker.d.ts.map +0 -1
  70. package/lib/models/postboy.locker.js +0 -3
  71. package/lib/models/postboy.locker.js.map +0 -1
@@ -1,45 +1,21 @@
1
1
  import { Observable, Subject } from 'rxjs';
2
2
  import { PostboyGenericMessage } from './models/postboy-generic-message';
3
- import { LockerStore } from './locker.store';
4
- import { PostboyLocker } from './models/postboy.locker';
5
3
  import { PostboySubscription } from './models/postboy-subscription';
6
4
  import { PostboyExecutor } from './models/postboy-executor';
7
5
  import { PostboyCallbackMessage } from './models/postboy-callback.message';
8
- import { Dictionary } from '@artstesh/collections';
9
6
  import { MessageType } from './postboy-abstract.registrator';
10
7
  import { PostboyExecutionHandler } from './models/postboy-execution.handler';
8
+ import { PostboyMiddleware } from "./models/postboy-middleware";
11
9
  export declare class PostboyService {
12
- protected applications: Dictionary<PostboySubscription<any>>;
13
- protected locker: LockerStore;
14
- protected executors: Dictionary<(e: PostboyExecutor<any>) => any>;
15
- /**
16
- * Adds a locker to the current list of lockers.
17
- *
18
- * @param {PostboyLocker} locker - The locker object to be added.
19
- * @return {void} This method does not return a value.
20
- */
21
- addLocker(locker: PostboyLocker): void;
22
- /**
23
- * @deprecated The method should be replaced with recordExecutor<T>
24
- */
25
- registerExecutor<E extends PostboyExecutor<T>, T>(id: string, exec: (e: E) => T): void;
26
- /**
27
- * @deprecated The method should be replaced with exec<T>
28
- */
29
- execute<E extends PostboyExecutor<T>, T>(executor: E): T;
30
- /**
31
- * @deprecated The method should be replaced with record<T>
32
- */
33
- register<T>(id: string, sub: Subject<T>): void;
34
- /**
35
- * @deprecated The method should be replaced with recordWithPipe<T>
36
- */
37
- registerWithPipe<T>(id: string, sub: Subject<T>, pipe: (s: Subject<T>) => Observable<T>): void;
10
+ protected locked: Set<string>;
11
+ protected applications: Map<string, PostboySubscription<any>>;
12
+ protected executors: Map<string, (e: PostboyExecutor<any>) => any>;
13
+ protected middlewares: PostboyMiddleware[];
14
+ lock<T extends PostboyGenericMessage>(type: MessageType<T>): void;
15
+ unlock<T extends PostboyGenericMessage>(type: MessageType<T>): void;
16
+ addMiddleware(middleware: PostboyMiddleware): void;
17
+ removeMiddleware(middleware: PostboyMiddleware): void;
38
18
  unregister(id: string): void;
39
- /**
40
- * @deprecated The method should be replaced with sub<T>
41
- */
42
- subscribe<T>(id: string): Observable<T>;
43
19
  /**
44
20
  * Fires a registered event and passes the message to its subscribers.
45
21
  *
@@ -57,6 +33,14 @@ export declare class PostboyService {
57
33
  * @return {void} This method does not return any value.
58
34
  */
59
35
  fireCallback<T>(message: PostboyCallbackMessage<T>, action?: (e: T) => void): Observable<T>;
36
+ /**
37
+ * Executes the provided executor function and returns its result.
38
+ *
39
+ * @param {PostboyExecutor<T>} executor The executor to be executed, which includes its identifier and logic.
40
+ * @return {T} The resulting output from the executed executor function.
41
+ * @throws {Error} If the specified executor is not registered.
42
+ */
43
+ exec<T>(executor: PostboyExecutor<T>): T;
60
44
  /**
61
45
  * Subscribes to a specific message type and returns an observable of that type.
62
46
  *
@@ -88,15 +72,7 @@ export declare class PostboyService {
88
72
  * @param {(e: E) => T} exec - The function to execute with the provided executor instance.
89
73
  * @return {void} No return value.
90
74
  */
91
- recordExecutor<E extends PostboyExecutor<T>, T>(type: new (...args: any[]) => E, exec: (e: E) => T): void;
92
- /**
93
- * Executes the provided executor function and returns its result.
94
- *
95
- * @param {PostboyExecutor<T>} executor The executor to be executed, which includes its identifier and logic.
96
- * @return {T} The resulting output from the executed executor function.
97
- * @throws {Error} If the specified executor is not registered.
98
- */
99
- exec<T>(executor: PostboyExecutor<T>): T;
75
+ recordExecutor<E extends PostboyExecutor<T>, T>(type: (new (...args: any[]) => E), exec: (e: E) => T): void;
100
76
  /**
101
77
  * Manages the recording of an executor and its corresponding handler into internal storage.
102
78
  *
@@ -105,5 +81,12 @@ export declare class PostboyService {
105
81
  * @return {void} No return value.
106
82
  */
107
83
  recordHandler<E extends PostboyExecutor<R>, R>(executor: new (...args: any[]) => E, handler: PostboyExecutionHandler<R, E>): void;
84
+ /**
85
+ * Executes each middleware in the order they are registered, passing the provided message to each middleware's handle method.
86
+ *
87
+ * @param {PostboyGenericMessage} msg - The message object to be processed by the middlewares.
88
+ * @return {void} This method does not return a value.
89
+ */
90
+ private executeMiddleware;
108
91
  }
109
92
  //# sourceMappingURL=postboy.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postboy.service.d.ts","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postboy.service.d.ts","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACzC,OAAO,EAAU,qBAAqB,EAAC,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAG9D,qBAAa,cAAc;IACzB,SAAS,CAAC,MAAM,cAAqB;IACrC,SAAS,CAAC,YAAY,wCAA+C;IACrE,SAAS,CAAC,SAAS,kBAAuB,gBAAgB,GAAG,CAAC,KAAK,GAAG,EAAI;IAC1E,SAAS,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEzC,IAAI,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAIjE,MAAM,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAInE,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIlD,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIrD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKnC;;;;;;OAMG;IACI,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAOjD;;;;;;;OAOG;IACI,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IASlG;;;;;;OAMG;IACI,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;IAM/C;;;;;OAKG;IACI,GAAG,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAMhF;;;;;;OAMG;IACI,MAAM,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3F;;;;;;;OAOG;IACI,cAAc,CAAC,CAAC,SAAS,qBAAqB,EACnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GACrC,IAAI;IAIP;;;;;;OAMG;IACI,cAAc,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAIlH;;;;;;OAMG;IACI,aAAa,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAClD,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EACnC,OAAO,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,IAAI;IAIP;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -2,63 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PostboyService = void 0;
4
4
  const postboy_generic_message_1 = require("./models/postboy-generic-message");
5
- const locker_store_1 = require("./locker.store");
6
5
  const postboy_subscription_1 = require("./models/postboy-subscription");
7
- const collections_1 = require("@artstesh/collections");
8
6
  class PostboyService {
9
7
  constructor() {
10
- this.applications = new collections_1.Dictionary();
11
- this.locker = new locker_store_1.LockerStore();
12
- this.executors = new collections_1.Dictionary();
8
+ this.locked = new Set();
9
+ this.applications = new Map();
10
+ this.executors = new Map();
11
+ this.middlewares = [];
13
12
  }
14
- /**
15
- * Adds a locker to the current list of lockers.
16
- *
17
- * @param {PostboyLocker} locker - The locker object to be added.
18
- * @return {void} This method does not return a value.
19
- */
20
- addLocker(locker) {
21
- this.locker.addLocker(locker);
13
+ lock(type) {
14
+ this.locked.add((0, postboy_generic_message_1.checkId)(type));
22
15
  }
23
- /**
24
- * @deprecated The method should be replaced with recordExecutor<T>
25
- */
26
- registerExecutor(id, exec) {
27
- this.executors.put(id, exec);
16
+ unlock(type) {
17
+ this.locked.delete((0, postboy_generic_message_1.checkId)(type));
28
18
  }
29
- /**
30
- * @deprecated The method should be replaced with exec<T>
31
- */
32
- execute(executor) {
33
- if (!this.executors.has(executor.id))
34
- throw new Error(`There is no registered executor ${executor.constructor.name}`);
35
- return this.executors.take(executor.id)(executor);
19
+ addMiddleware(middleware) {
20
+ this.middlewares.push(middleware);
36
21
  }
37
- /**
38
- * @deprecated The method should be replaced with record<T>
39
- */
40
- register(id, sub) {
41
- this.applications.put(id, new postboy_subscription_1.PostboySubscription(sub, (s) => s.asObservable()));
42
- }
43
- /**
44
- * @deprecated The method should be replaced with recordWithPipe<T>
45
- */
46
- registerWithPipe(id, sub, pipe) {
47
- this.applications.put(id, new postboy_subscription_1.PostboySubscription(sub, pipe));
22
+ removeMiddleware(middleware) {
23
+ this.middlewares = this.middlewares.filter((m) => m !== middleware);
48
24
  }
49
25
  unregister(id) {
50
26
  var _a, _b;
51
- (_b = (_a = this.applications.take(id)) === null || _a === void 0 ? void 0 : _a.sub) === null || _b === void 0 ? void 0 : _b.complete();
52
- this.applications.rmv(id);
53
- }
54
- /**
55
- * @deprecated The method should be replaced with sub<T>
56
- */
57
- subscribe(id) {
58
- const application = this.applications.take(id);
59
- if (!application)
60
- throw new Error(`There is no event with id ${id}`);
61
- return application.pipe(application.sub);
27
+ (_b = (_a = this.applications.get(id)) === null || _a === void 0 ? void 0 : _a.sub) === null || _b === void 0 ? void 0 : _b.complete();
28
+ this.applications.delete(id);
62
29
  }
63
30
  /**
64
31
  * Fires a registered event and passes the message to its subscribers.
@@ -69,10 +36,11 @@ class PostboyService {
69
36
  */
70
37
  fire(message) {
71
38
  var _a, _b;
72
- if (!((_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
39
+ this.executeMiddleware(message);
40
+ if (!((_a = this.applications.get(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
73
41
  throw new Error(`There is no registered event ${message.constructor.name}`);
74
- if (this.locker.check(message.id))
75
- (_b = this.applications.take(message.id)) === null || _b === void 0 ? void 0 : _b.sub.next(message);
42
+ if (!this.locked.has(message.id))
43
+ (_b = this.applications.get(message.id)) === null || _b === void 0 ? void 0 : _b.sub.next(message);
76
44
  }
77
45
  /**
78
46
  * Triggers a callback function associated with a given message.
@@ -84,14 +52,27 @@ class PostboyService {
84
52
  */
85
53
  fireCallback(message, action) {
86
54
  var _a;
87
- if (!((_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
55
+ this.executeMiddleware(message);
56
+ if (!((_a = this.applications.get(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
88
57
  throw new Error(`There is no registered event ${message.constructor.name}`);
89
58
  message.result.subscribe(action);
90
- if (this.locker.check(message.id))
91
- setTimeout(() => { var _a; return (_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub.next(message); }, 0);
59
+ if (!this.locked.has(message.id))
60
+ setTimeout(() => { var _a; return (_a = this.applications.get(message.id)) === null || _a === void 0 ? void 0 : _a.sub.next(message); }, 0);
92
61
  return message.result;
93
62
  }
94
- // future
63
+ /**
64
+ * Executes the provided executor function and returns its result.
65
+ *
66
+ * @param {PostboyExecutor<T>} executor The executor to be executed, which includes its identifier and logic.
67
+ * @return {T} The resulting output from the executed executor function.
68
+ * @throws {Error} If the specified executor is not registered.
69
+ */
70
+ exec(executor) {
71
+ this.executeMiddleware(executor);
72
+ if (!this.executors.has(executor.id))
73
+ throw new Error(`There is no registered executor with id ${executor.id}`);
74
+ return this.executors.get(executor.id)(executor);
75
+ }
95
76
  /**
96
77
  * Subscribes to a specific message type and returns an observable of that type.
97
78
  *
@@ -99,7 +80,7 @@ class PostboyService {
99
80
  * @return An Observable of the specified generic message type.
100
81
  */
101
82
  sub(type) {
102
- const application = this.applications.take((0, postboy_generic_message_1.checkId)(type));
83
+ const application = this.applications.get((0, postboy_generic_message_1.checkId)(type));
103
84
  if (!application)
104
85
  throw new Error(`There is no registered event ${type.name}`);
105
86
  return application.pipe(application.sub);
@@ -112,7 +93,7 @@ class PostboyService {
112
93
  * @return {void} No return value.
113
94
  */
114
95
  record(type, sub) {
115
- this.applications.put((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, (s) => s.asObservable()));
96
+ this.applications.set((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, (s) => s.asObservable()));
116
97
  }
117
98
  /**
118
99
  * Registers a generic message type with a Subject and a transformation pipe.
@@ -123,7 +104,7 @@ class PostboyService {
123
104
  * @return {void} No return value.
124
105
  */
125
106
  recordWithPipe(type, sub, pipe) {
126
- this.applications.put((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, pipe));
107
+ this.applications.set((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, pipe));
127
108
  }
128
109
  /**
129
110
  * Records an executor instance and its corresponding execution function.
@@ -133,19 +114,7 @@ class PostboyService {
133
114
  * @return {void} No return value.
134
115
  */
135
116
  recordExecutor(type, exec) {
136
- this.executors.put((0, postboy_generic_message_1.checkId)(type), exec);
137
- }
138
- /**
139
- * Executes the provided executor function and returns its result.
140
- *
141
- * @param {PostboyExecutor<T>} executor The executor to be executed, which includes its identifier and logic.
142
- * @return {T} The resulting output from the executed executor function.
143
- * @throws {Error} If the specified executor is not registered.
144
- */
145
- exec(executor) {
146
- if (!this.executors.has(executor.id))
147
- throw new Error(`There is no registered executor with id ${executor.id}`);
148
- return this.executors.take(executor.id)(executor);
117
+ this.executors.set((0, postboy_generic_message_1.checkId)(type), exec);
149
118
  }
150
119
  /**
151
120
  * Manages the recording of an executor and its corresponding handler into internal storage.
@@ -155,7 +124,17 @@ class PostboyService {
155
124
  * @return {void} No return value.
156
125
  */
157
126
  recordHandler(executor, handler) {
158
- this.executors.put((0, postboy_generic_message_1.checkId)(executor), (e) => handler.handle(e));
127
+ this.executors.set((0, postboy_generic_message_1.checkId)(executor), (e) => handler.handle(e));
128
+ }
129
+ /**
130
+ * Executes each middleware in the order they are registered, passing the provided message to each middleware's handle method.
131
+ *
132
+ * @param {PostboyGenericMessage} msg - The message object to be processed by the middlewares.
133
+ * @return {void} This method does not return a value.
134
+ */
135
+ executeMiddleware(msg) {
136
+ for (let i = 0; i < this.middlewares.length; i++)
137
+ this.middlewares[i].handle(msg);
159
138
  }
160
139
  }
161
140
  exports.PostboyService = PostboyService;
@@ -1 +1 @@
1
- {"version":3,"file":"postboy.service.js","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postboy.service.js","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artstesh/postboy",
3
- "version": "2.1.10",
3
+ "version": "3.0.0",
4
4
  "author": "artstesh",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -28,8 +28,7 @@
28
28
  },
29
29
  "peerDependencies": {
30
30
  "rxjs": ">7.0.0",
31
- "typescript": "^5.0.0",
32
- "@artstesh/collections": "^1.0.4"
31
+ "typescript": "^5.0.0"
33
32
  },
34
33
  "dependencies": {
35
34
  "rxjs": "^7.0.0",
@@ -38,7 +37,6 @@
38
37
  "devDependencies": {
39
38
  "@artstesh/forger": "^2.0.0",
40
39
  "@artstesh/it-should": "^2.0.0",
41
- "@artstesh/collections": "^1.0.4",
42
40
  "@types/jest": "29.5.12",
43
41
  "jest": "29.7.0",
44
42
  "prettier": "^3.1.1",
@@ -1,9 +0,0 @@
1
- import { PostboyLocker } from './models/postboy.locker';
2
- export declare class LockerStore {
3
- private lockers;
4
- private unlockers;
5
- private locked;
6
- addLocker(locker: PostboyLocker): void;
7
- check(eventId: string): boolean;
8
- }
9
- //# sourceMappingURL=locker.store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locker.store.d.ts","sourceRoot":"","sources":["../src/locker.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,MAAM,CAAqB;IAEnC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKtC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAMhC"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LockerStore = void 0;
4
- class LockerStore {
5
- constructor() {
6
- this.lockers = {};
7
- this.unlockers = {};
8
- this.locked = new Set();
9
- }
10
- addLocker(locker) {
11
- if (locker.locker)
12
- this.lockers[locker.locker] = locker.locking;
13
- if (locker.unlocker)
14
- this.unlockers[locker.unlocker] = locker.locking;
15
- }
16
- check(eventId) {
17
- if (this.locked.has(eventId))
18
- return false;
19
- if (this.unlockers[eventId])
20
- this.unlockers[eventId].forEach((id) => this.locked.delete(id));
21
- if (this.lockers[eventId])
22
- this.lockers[eventId].forEach((id) => this.locked.add(id));
23
- return true;
24
- }
25
- }
26
- exports.LockerStore = LockerStore;
27
- //# sourceMappingURL=locker.store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locker.store.js","sourceRoot":"","sources":["../src/locker.store.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAAxB;QACU,YAAO,GAA+B,EAAE,CAAC;QACzC,cAAS,GAA+B,EAAE,CAAC;QAC3C,WAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAarC,CAAC;IAXC,SAAS,CAAC,MAAqB;QAC7B,IAAI,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QAChE,IAAI,MAAM,CAAC,QAAQ;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7F,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAhBD,kCAgBC"}
@@ -1,10 +0,0 @@
1
- import { PostboyGenericMessage } from '../models/postboy-generic-message';
2
- export declare class MessageHistoryItemMock<T extends PostboyGenericMessage> {
3
- private list;
4
- add(message: T): this;
5
- clear(): void;
6
- get length(): number;
7
- get last(): T;
8
- get all(): T[];
9
- }
10
- //# sourceMappingURL=message-history-item-mock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-history-item-mock.d.ts","sourceRoot":"","sources":["../../src/mocks/message-history-item-mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,qBAAa,sBAAsB,CAAC,CAAC,SAAS,qBAAqB;IACjE,OAAO,CAAC,IAAI,CAAW;IAEvB,GAAG,CAAC,OAAO,EAAE,CAAC;IAKd,KAAK;IAIL,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,CAAC,CAEZ;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;CACF"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageHistoryItemMock = void 0;
4
- class MessageHistoryItemMock {
5
- constructor() {
6
- this.list = [];
7
- }
8
- add(message) {
9
- this.list.push(message);
10
- return this;
11
- }
12
- clear() {
13
- this.list = [];
14
- }
15
- get length() {
16
- return this.list.length;
17
- }
18
- get last() {
19
- return this.list[this.list.length - 1];
20
- }
21
- get all() {
22
- return [...this.list];
23
- }
24
- }
25
- exports.MessageHistoryItemMock = MessageHistoryItemMock;
26
- //# sourceMappingURL=message-history-item-mock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-history-item-mock.js","sourceRoot":"","sources":["../../src/mocks/message-history-item-mock.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IAAnC;QACU,SAAI,GAAQ,EAAE,CAAC;IAsBzB,CAAC;IApBC,GAAG,CAAC,OAAU;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACF;AAvBD,wDAuBC"}
@@ -1,9 +0,0 @@
1
- import { PostboyGenericMessage } from '../models/postboy-generic-message';
2
- import { MessageHistoryItemMock } from './message-history-item-mock';
3
- export declare class MessageHistoryMock {
4
- private _items;
5
- get<T extends PostboyGenericMessage>(id: string): MessageHistoryItemMock<T>;
6
- add(message: PostboyGenericMessage): void;
7
- reset(): void;
8
- }
9
- //# sourceMappingURL=message-history-mock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-history-mock.d.ts","sourceRoot":"","sources":["../../src/mocks/message-history-mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAiD;IAE/D,GAAG,CAAC,CAAC,SAAS,qBAAqB,EAAE,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC;IAI3E,GAAG,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAKzC,KAAK,IAAI,IAAI;CAGd"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageHistoryMock = void 0;
4
- const message_history_item_mock_1 = require("./message-history-item-mock");
5
- const collections_1 = require("@artstesh/collections");
6
- class MessageHistoryMock {
7
- constructor() {
8
- this._items = new collections_1.Dictionary();
9
- }
10
- get(id) {
11
- var _a;
12
- return (_a = this._items.take(id)) !== null && _a !== void 0 ? _a : new message_history_item_mock_1.MessageHistoryItemMock();
13
- }
14
- add(message) {
15
- var _a;
16
- if (!((_a = this._items.take(message.id)) === null || _a === void 0 ? void 0 : _a.add(message)))
17
- this._items.put(message.id, new message_history_item_mock_1.MessageHistoryItemMock().add(message));
18
- }
19
- reset() {
20
- this._items.forEach((i) => i.clear());
21
- }
22
- }
23
- exports.MessageHistoryMock = MessageHistoryMock;
24
- //# sourceMappingURL=message-history-mock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-history-mock.js","sourceRoot":"","sources":["../../src/mocks/message-history-mock.ts"],"names":[],"mappings":";;;AACA,2EAAqE;AACrE,uDAAmD;AAEnD,MAAa,kBAAkB;IAA/B;QACU,WAAM,GAAG,IAAI,wBAAU,EAA+B,CAAC;IAcjE,CAAC;IAZC,GAAG,CAAkC,EAAU;;QAC7C,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,mCAAI,IAAI,kDAAsB,EAAE,CAAC;IAC9D,CAAC;IAED,GAAG,CAAC,OAA8B;;QAChC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,0CAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,kDAAsB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;CACF;AAfD,gDAeC"}
@@ -1,22 +0,0 @@
1
- import { PostboyService } from '../postboy.service';
2
- import { Observable } from 'rxjs';
3
- import { PostboyExecutor } from '../models/postboy-executor';
4
- import { PostboyGenericMessage } from '../models/postboy-generic-message';
5
- import { PostboyCallbackMessage } from '../models/postboy-callback.message';
6
- import { MessageHistoryItemMock } from './message-history-item-mock';
7
- import { MessageType } from '../postboy-abstract.registrator';
8
- export declare class PostboyServiceMock extends PostboyService {
9
- private subscriptions;
10
- private _history;
11
- reset(): void;
12
- fired(id: string, times?: number): boolean;
13
- subscribed(id: string, times?: number): boolean;
14
- private count;
15
- exec<E extends PostboyExecutor<T>, T>(executor: E): T;
16
- subscribe<T>(id: string): Observable<T>;
17
- sub<T extends PostboyGenericMessage>(type: MessageType<T>): Observable<T>;
18
- fire<T extends PostboyGenericMessage>(message: T): void;
19
- fireCallback<T>(message: PostboyCallbackMessage<T>, action?: (e: T) => void): Observable<T>;
20
- history<T extends PostboyGenericMessage>(type: MessageType<T>): MessageHistoryItemMock<T>;
21
- }
22
- //# sourceMappingURL=postboy-service-mock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postboy-service-mock.d.ts","sourceRoot":"","sources":["../../src/mocks/postboy-service-mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAW,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAA4B;IAE5C,KAAK,IAAI,IAAI;IAKb,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO;IAI7C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO;IAKlD,OAAO,CAAC,KAAK,CAAmF;IAEhG,IAAI,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAKrD,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAKhC,GAAG,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAKhF,IAAI,CAAC,CAAC,SAAS,qBAAqB,EAAE,OAAO,EAAE,CAAC;IAKhD,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IAK3F,OAAO,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC;CAG1F"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PostboyServiceMock = void 0;
4
- const postboy_service_1 = require("../postboy.service");
5
- const postboy_generic_message_1 = require("../models/postboy-generic-message");
6
- const message_history_mock_1 = require("./message-history-mock");
7
- class PostboyServiceMock extends postboy_service_1.PostboyService {
8
- constructor() {
9
- super(...arguments);
10
- this.subscriptions = [];
11
- this._history = new message_history_mock_1.MessageHistoryMock();
12
- this.count = (collection, el) => collection.filter((e) => e === el).length;
13
- }
14
- reset() {
15
- this.subscriptions = [];
16
- this._history.reset();
17
- }
18
- fired(id, times = 0) {
19
- var _a;
20
- return ((_a = this._history.get(id)) === null || _a === void 0 ? void 0 : _a.length) === times;
21
- }
22
- subscribed(id, times = 0) {
23
- const count = this.count(this.subscriptions, id);
24
- return !!count && (!times || count === times);
25
- }
26
- exec(executor) {
27
- this._history.add(executor);
28
- return super.exec(executor);
29
- }
30
- subscribe(id) {
31
- this.subscriptions.push(id);
32
- return super.subscribe(id);
33
- }
34
- sub(type) {
35
- this.subscriptions.push((0, postboy_generic_message_1.checkId)(type));
36
- return super.subscribe((0, postboy_generic_message_1.checkId)(type));
37
- }
38
- fire(message) {
39
- this._history.add(message);
40
- super.fire(message);
41
- }
42
- fireCallback(message, action) {
43
- this._history.add(message);
44
- return super.fireCallback(message, action);
45
- }
46
- history(type) {
47
- return this._history.get((0, postboy_generic_message_1.checkId)(type));
48
- }
49
- }
50
- exports.PostboyServiceMock = PostboyServiceMock;
51
- //# sourceMappingURL=postboy-service-mock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postboy-service-mock.js","sourceRoot":"","sources":["../../src/mocks/postboy-service-mock.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAGpD,+EAAmF;AAEnF,iEAA4D;AAI5D,MAAa,kBAAmB,SAAQ,gCAAc;IAAtD;;QACU,kBAAa,GAAa,EAAE,CAAC;QAC7B,aAAQ,GAAG,IAAI,yCAAkB,EAAE,CAAC;QAgBpC,UAAK,GAAG,CAAC,UAAoB,EAAE,EAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;IA8BlG,CAAC;IA5CC,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,QAAgB,CAAC;;QACjC,OAAO,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,0CAAE,MAAM,MAAK,KAAK,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,QAAgB,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC;IAChD,CAAC;IAID,IAAI,CAAkC,QAAW;QAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAI,EAAU;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAkC,IAAoB;QAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAA,iCAAO,EAAC,IAAI,CAAC,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC,SAAS,CAAC,IAAA,iCAAO,EAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAkC,OAAU;QAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,YAAY,CAAI,OAAkC,EAAE,MAAuB;QACzE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAkC,IAAoB;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,iCAAO,EAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAhDD,gDAgDC"}
@@ -1,18 +0,0 @@
1
- export declare class Dictionary<T> {
2
- collection: DictionaryType<T>;
3
- private _keys;
4
- get keys(): string[];
5
- get size(): number;
6
- static clone<T>(dic: Dictionary<T>, action?: (e: T, k: string) => T): Dictionary<T>;
7
- static create<T>(dic: DictionaryType<T>, action?: (e: T, k: string) => T): Dictionary<T>;
8
- find(predicate: (value: T) => boolean): T | null;
9
- has: (key: string) => boolean;
10
- take(key: string): T | null;
11
- put(key: string, value?: T | null): void;
12
- rmv(key: string): void;
13
- forEach(callback: (value: T, index: number) => void): void;
14
- }
15
- export type DictionaryType<T> = {
16
- [id: string]: T;
17
- };
18
- //# sourceMappingURL=dictionary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/models/dictionary.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU,CAAC,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAM;IAC1C,OAAO,CAAC,KAAK,CAAqB;IAElC,IAAW,IAAI,IAAI,MAAM,EAAE,CAE1B;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;WAEa,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;WAI5E,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAUxF,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,IAAI;IAQhD,GAAG,QAAS,MAAM,aAAyB;IAE3C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAI3B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAMxC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMtB,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAMlE;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAAE,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAAC"}