velocious 1.0.396 → 1.0.398

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 (44) hide show
  1. package/README.md +12 -0
  2. package/build/src/configuration.d.ts +9 -0
  3. package/build/src/configuration.d.ts.map +1 -1
  4. package/build/src/configuration.js +19 -7
  5. package/build/src/database/record/instance-relationships/has-many.d.ts +2 -0
  6. package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
  7. package/build/src/database/record/instance-relationships/has-many.js +13 -1
  8. package/build/src/frontend-models/base.d.ts +22 -5
  9. package/build/src/frontend-models/base.d.ts.map +1 -1
  10. package/build/src/frontend-models/base.js +176 -33
  11. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts +6 -0
  12. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts.map +1 -0
  13. package/build/src/frontend-models/clear-pending-debounced-callback.js +12 -0
  14. package/build/src/frontend-models/event-hook-models.d.ts +12 -0
  15. package/build/src/frontend-models/event-hook-models.d.ts.map +1 -0
  16. package/build/src/frontend-models/event-hook-models.js +37 -0
  17. package/build/src/frontend-models/query.d.ts +63 -0
  18. package/build/src/frontend-models/query.d.ts.map +1 -1
  19. package/build/src/frontend-models/query.js +51 -1
  20. package/build/src/frontend-models/use-created-event.d.ts +17 -0
  21. package/build/src/frontend-models/use-created-event.d.ts.map +1 -0
  22. package/build/src/frontend-models/use-created-event.js +19 -0
  23. package/build/src/frontend-models/use-destroyed-event.d.ts +19 -0
  24. package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -0
  25. package/build/src/frontend-models/use-destroyed-event.js +103 -0
  26. package/build/src/frontend-models/use-model-class-event.d.ts +27 -0
  27. package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -0
  28. package/build/src/frontend-models/use-model-class-event.js +116 -0
  29. package/build/src/frontend-models/use-updated-event.d.ts +20 -0
  30. package/build/src/frontend-models/use-updated-event.d.ts.map +1 -0
  31. package/build/src/frontend-models/use-updated-event.js +105 -0
  32. package/build/src/frontend-models/websocket-channel.d.ts +54 -12
  33. package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
  34. package/build/src/frontend-models/websocket-channel.js +116 -6
  35. package/build/src/http-server/client/websocket-session.js +2 -2
  36. package/build/src/http-server/websocket-channel.d.ts +29 -9
  37. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  38. package/build/src/http-server/websocket-channel.js +23 -5
  39. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +56 -0
  40. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -0
  41. package/build/src/testing/browser-frontend-model-event-hook-scenarios.js +374 -0
  42. package/build/src/testing/browser-test-app.js +3 -1
  43. package/build/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +10 -1
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @typedef {null | boolean | number | string | object} WebsocketJsonValue
3
+ */
4
+ /**
5
+ * @typedef {Record<string, WebsocketJsonValue>} WebsocketParams
6
+ */
1
7
  /**
2
8
  * Base class for app-defined 1:N pub/sub channels.
3
9
  *
@@ -10,16 +16,16 @@ export default class VelociousWebsocketChannel {
10
16
  /**
11
17
  * @param {object} args
12
18
  * @param {string} args.subscriptionId - Client-assigned id, unique within the session.
13
- * @param {Record<string, any>} args.params - Subscribe params.
19
+ * @param {WebsocketParams} args.params - Subscribe params.
14
20
  * @param {import("./client/websocket-session.js").default} args.session - Owning session.
15
21
  */
16
22
  constructor({ subscriptionId, params, session }: {
17
23
  subscriptionId: string;
18
- params: Record<string, any>;
24
+ params: WebsocketParams;
19
25
  session: import("./client/websocket-session.js").default;
20
26
  });
21
27
  subscriptionId: string;
22
- params: Record<string, any>;
28
+ params: WebsocketParams;
23
29
  session: import("./client/websocket-session.js").default;
24
30
  _closed: boolean;
25
31
  /**
@@ -66,33 +72,47 @@ export default class VelociousWebsocketChannel {
66
72
  * sign-in / locale change). Override to react to session-level
67
73
  * metadata updates.
68
74
  *
69
- * @param {Record<string, any>} _metadata - Updated metadata.
75
+ * @param {WebsocketParams} _metadata - Updated metadata.
70
76
  * @returns {void | Promise<void>}
71
77
  */
72
- onMetadataChanged(_metadata: Record<string, any>): void | Promise<void>;
78
+ onMetadataChanged(_metadata: WebsocketParams): void | Promise<void>;
73
79
  /**
74
80
  * Broadcast routing filter. Called by `broadcastToChannel` for
75
81
  * each live subscription — returning true delivers the body via
76
82
  * `sendMessage`. Default matches all broadcasts regardless of
77
83
  * params; override for per-subscriber filtering.
78
84
  *
79
- * @param {...any} _broadcastArgs - Params forwarded from `broadcastToChannel` (ignored by default).
85
+ * @param {...WebsocketJsonValue} _broadcastArgs - Params forwarded from `broadcastToChannel` (ignored by default).
80
86
  * @returns {boolean} - True to deliver the broadcast to this subscriber.
81
87
  */
82
- matches(..._broadcastArgs: any[]): boolean;
88
+ matches(..._broadcastArgs: WebsocketJsonValue[]): boolean;
89
+ /**
90
+ * Delivers a matched broadcast to this subscriber. Subclasses can
91
+ * override when the outbound body must be tailored to subscription
92
+ * params before sending.
93
+ *
94
+ * @param {WebsocketJsonValue} body
95
+ * @param {{eventId?: string}} [meta] - Optional event metadata.
96
+ * @returns {void | Promise<void>}
97
+ */
98
+ deliverBroadcast(body: WebsocketJsonValue, meta?: {
99
+ eventId?: string;
100
+ }): void | Promise<void>;
83
101
  /**
84
102
  * Sends a `channel-message` frame to THIS subscriber only.
85
103
  * When `meta.eventId` is provided, the client receives it so it
86
104
  * can track its checkpoint for `lastEventId` replay on reconnect.
87
105
  *
88
- * @param {any} body
106
+ * @param {WebsocketJsonValue} body
89
107
  * @param {{eventId?: string}} [meta] - Optional event metadata.
90
108
  * @returns {void}
91
109
  */
92
- sendMessage(body: any, meta?: {
110
+ sendMessage(body: WebsocketJsonValue, meta?: {
93
111
  eventId?: string;
94
112
  }): void;
95
113
  /** @returns {boolean} */
96
114
  isClosed(): boolean;
97
115
  }
116
+ export type WebsocketJsonValue = null | boolean | number | string | object;
117
+ export type WebsocketParams = Record<string, WebsocketJsonValue>;
98
118
  //# sourceMappingURL=websocket-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/http-server/websocket-channel.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH;IACE;;;;;OAKG;IACH,iDAJG;QAAqB,cAAc,EAA3B,MAAM;QACoB,MAAM,EAAhC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QACmC,OAAO,EAA7D,OAAO,+BAA+B,EAAE,OAAO;KACzD,EAMA;IAJC,uBAAoC;IACpC,4BAA0B;IAC1B,yDAAsB;IACtB,iBAAoB;IAGtB;;;;;;OAMG;IACH,gBAFa,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAER;IAE/B;;;;;;OAMG;IACH,cAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAElB;IAEf;;;;;OAKG;IACH,gBAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;;;;OAOG;IACH,gBAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;;OAKG;IACH,YAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpB;IAEb;;;;;;;OAOG;IACH,6BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEF;IAE/B;;;;;;;;OAQG;IACH,2BAHc,GAAG,EAAA,GACJ,OAAO,CAEsB;IAE1C;;;;;;;;OAQG;IACH,kBAJW,GAAG,SACH;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,GAChB,IAAI,CAahB;IAED,yBAAyB;IACzB,YADc,OAAO,CACa;CACnC"}
1
+ {"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/http-server/websocket-channel.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;;GAEG;AAEH;;;;;;;GAOG;AACH;IACE;;;;;OAKG;IACH,iDAJG;QAAqB,cAAc,EAA3B,MAAM;QACgB,MAAM,EAA5B,eAAe;QACuC,OAAO,EAA7D,OAAO,+BAA+B,EAAE,OAAO;KACzD,EAMA;IAJC,uBAAoC;IACpC,wBAA0B;IAC1B,yDAAsB;IACtB,iBAAoB;IAGtB;;;;;;OAMG;IACH,gBAFa,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAER;IAE/B;;;;;;OAMG;IACH,cAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAElB;IAEf;;;;;OAKG;IACH,gBAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;;;;OAOG;IACH,gBAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;;OAKG;IACH,YAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpB;IAEb;;;;;;;OAOG;IACH,6BAHW,eAAe,GACb,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEF;IAE/B;;;;;;;;OAQG;IACH,2BAHc,kBAAkB,EAAA,GACnB,OAAO,CAEsB;IAE1C;;;;;;;;OAQG;IACH,uBAJW,kBAAkB,SAClB;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,GAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhC;IAED;;;;;;;;OAQG;IACH,kBAJW,kBAAkB,SAClB;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,GAChB,IAAI,CAahB;IAED,yBAAyB;IACzB,YADc,OAAO,CACa;CACnC;iCAlIY,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;8BAGzC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC"}
@@ -1,4 +1,10 @@
1
1
  // @ts-check
2
+ /**
3
+ * @typedef {null | boolean | number | string | object} WebsocketJsonValue
4
+ */
5
+ /**
6
+ * @typedef {Record<string, WebsocketJsonValue>} WebsocketParams
7
+ */
2
8
  /**
3
9
  * Base class for app-defined 1:N pub/sub channels.
4
10
  *
@@ -11,7 +17,7 @@ export default class VelociousWebsocketChannel {
11
17
  /**
12
18
  * @param {object} args
13
19
  * @param {string} args.subscriptionId - Client-assigned id, unique within the session.
14
- * @param {Record<string, any>} args.params - Subscribe params.
20
+ * @param {WebsocketParams} args.params - Subscribe params.
15
21
  * @param {import("./client/websocket-session.js").default} args.session - Owning session.
16
22
  */
17
23
  constructor({ subscriptionId, params, session }) {
@@ -64,7 +70,7 @@ export default class VelociousWebsocketChannel {
64
70
  * sign-in / locale change). Override to react to session-level
65
71
  * metadata updates.
66
72
  *
67
- * @param {Record<string, any>} _metadata - Updated metadata.
73
+ * @param {WebsocketParams} _metadata - Updated metadata.
68
74
  * @returns {void | Promise<void>}
69
75
  */
70
76
  onMetadataChanged(_metadata) { }
@@ -74,16 +80,28 @@ export default class VelociousWebsocketChannel {
74
80
  * `sendMessage`. Default matches all broadcasts regardless of
75
81
  * params; override for per-subscriber filtering.
76
82
  *
77
- * @param {...any} _broadcastArgs - Params forwarded from `broadcastToChannel` (ignored by default).
83
+ * @param {...WebsocketJsonValue} _broadcastArgs - Params forwarded from `broadcastToChannel` (ignored by default).
78
84
  * @returns {boolean} - True to deliver the broadcast to this subscriber.
79
85
  */
80
86
  matches(..._broadcastArgs) { return true; }
87
+ /**
88
+ * Delivers a matched broadcast to this subscriber. Subclasses can
89
+ * override when the outbound body must be tailored to subscription
90
+ * params before sending.
91
+ *
92
+ * @param {WebsocketJsonValue} body
93
+ * @param {{eventId?: string}} [meta] - Optional event metadata.
94
+ * @returns {void | Promise<void>}
95
+ */
96
+ deliverBroadcast(body, meta) {
97
+ this.sendMessage(body, meta);
98
+ }
81
99
  /**
82
100
  * Sends a `channel-message` frame to THIS subscriber only.
83
101
  * When `meta.eventId` is provided, the client receives it so it
84
102
  * can track its checkpoint for `lastEventId` replay on reconnect.
85
103
  *
86
- * @param {any} body
104
+ * @param {WebsocketJsonValue} body
87
105
  * @param {{eventId?: string}} [meta] - Optional event metadata.
88
106
  * @returns {void}
89
107
  */
@@ -101,4 +119,4 @@ export default class VelociousWebsocketChannel {
101
119
  /** @returns {boolean} */
102
120
  isClosed() { return this._closed; }
103
121
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWNoYW5uZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQUM1Qzs7Ozs7T0FLRztJQUNILFlBQVksRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBSyxPQUFPLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFFL0I7Ozs7OztPQU1HO0lBQ0gsVUFBVSxLQUFJLENBQUM7SUFFZjs7Ozs7T0FLRztJQUNILFlBQVksS0FBSSxDQUFDO0lBRWpCOzs7Ozs7O09BT0c7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7Ozs7T0FLRztJQUNILFFBQVEsS0FBSSxDQUFDO0lBRWI7Ozs7Ozs7T0FPRztJQUNILGlCQUFpQixDQUFDLFNBQVMsSUFBRyxDQUFDO0lBRS9COzs7Ozs7OztPQVFHO0lBQ0gsT0FBTyxDQUFDLEdBQUcsY0FBYyxJQUFJLE9BQU8sSUFBSSxDQUFBLENBQUMsQ0FBQztJQUUxQzs7Ozs7Ozs7T0FRRztJQUNILFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSTtRQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtRQUNyRixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDcEIsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsSUFBSTtZQUNKLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0NBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYXBwLWRlZmluZWQgMTpOIHB1Yi9zdWIgY2hhbm5lbHMuXG4gKlxuICogU3ViY2xhc3NlcyBvdmVycmlkZTpcbiAqICAtIGBjYW5TdWJzY3JpYmUoKWAg4oCUIHN1YnNjcmliZS10aW1lIGF1dGggKGRlZmF1bHQgYGZhbHNlYCkuXG4gKiAgLSBgc3Vic2NyaWJlZCgpYCAvIGB1bnN1YnNjcmliZWQoKWAg4oCUIG9wdGlvbmFsIGxpZmVjeWNsZSBob29rcy5cbiAqICAtIGBtYXRjaGVzKGJyb2FkY2FzdFBhcmFtcylgIOKAlCBicm9hZGNhc3Qgcm91dGluZyBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c1dlYnNvY2tldENoYW5uZWwge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muc3Vic2NyaXB0aW9uSWQgLSBDbGllbnQtYXNzaWduZWQgaWQsIHVuaXF1ZSB3aXRoaW4gdGhlIHNlc3Npb24uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gYXJncy5wYXJhbXMgLSBTdWJzY3JpYmUgcGFyYW1zLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vY2xpZW50L3dlYnNvY2tldC1zZXNzaW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3Muc2Vzc2lvbiAtIE93bmluZyBzZXNzaW9uLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe3N1YnNjcmlwdGlvbklkLCBwYXJhbXMsIHNlc3Npb259KSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IHN1YnNjcmlwdGlvbklkXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXMgfHwge31cbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uXG4gICAgdGhpcy5fY2xvc2VkID0gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUtdGltZSBhdXRoLiBEZWZhdWx0IGlzIGBmYWxzZWAgKGRlbnkpLiBDaGFubmVsIGF1dGhvcnNcbiAgICogTVVTVCBvdmVycmlkZSB0byBhbGxvdyBzdWJzY3JpcHRpb25zLiBSZXR1cm5pbmcgYSBQcm9taXNlIGRlZmVyc1xuICAgKiB0aGUgYGNoYW5uZWwtc3Vic2NyaWJlZGAgY29uZmlybWF0aW9uIHVudGlsIGl0IHJlc29sdmVzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj59XG4gICAqL1xuICBjYW5TdWJzY3JpYmUoKSB7IHJldHVybiBmYWxzZSB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIOKAlCBjYWxsZWQgb25jZSBhZnRlciBgY2FuU3Vic2NyaWJlYCByZXNvbHZlcyB0cnV0aHkgYW5kXG4gICAqIGJlZm9yZSBgY2hhbm5lbC1zdWJzY3JpYmVkYCBpcyBzZW50IHRvIHRoZSBjbGllbnQuIFVzZSBmb3JcbiAgICogaW5pdGlhbCBzbmFwc2hvdCBkZWxpdmVyeS5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgc3Vic2NyaWJlZCgpIHt9XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIOKAlCBjYWxsZWQgb25jZSB3aGVuIHRoZSBzdWJzY3JpcHRpb24gZW5kcy4gRmlyZXMgb25cbiAgICogY2xpZW50LWluaXRpYXRlZCBgY2hhbm5lbC11bnN1YnNjcmliZWAgb3Igb24gc2Vzc2lvbiB0ZWFyZG93bi5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgdW5zdWJzY3JpYmVkKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVuZGVybHlpbmcgc29ja2V0IGRyb3BzIGFuZCB0aGUgc2Vzc2lvbiBpc1xuICAgKiBtb3ZlZCBpbnRvIHRoZSBwYXVzZWQvZ3JhY2UgcmVnaXN0cnkuIEVpdGhlciBgb25SZXN1bWVgIGZpcmVzXG4gICAqIG9uIHN1Y2Nlc3NmdWwgY2xpZW50IHJlY29ubmVjdCwgb3IgYHVuc3Vic2NyaWJlZCgpYCBmaXJlcyB3aGVuXG4gICAqIHRoZSBncmFjZSB3aW5kb3cgZXhwaXJlcy5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgb25EaXNjb25uZWN0KCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGEgY2xpZW50IHJlY29ubmVjdCArIGBzZXNzaW9uLXJlc3VtZWAgcmViaW5kcyB0aGlzXG4gICAqIHN1YnNjcmlwdGlvbiB0byBhIG5ldyBzb2NrZXQuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIG9uUmVzdW1lKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGNsaWVudCBzZW5kcyB1cGRhdGVkIG1ldGFkYXRhIChlLmcuIGFmdGVyXG4gICAqIHNpZ24taW4gLyBsb2NhbGUgY2hhbmdlKS4gT3ZlcnJpZGUgdG8gcmVhY3QgdG8gc2Vzc2lvbi1sZXZlbFxuICAgKiBtZXRhZGF0YSB1cGRhdGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IF9tZXRhZGF0YSAtIFVwZGF0ZWQgbWV0YWRhdGEuXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIG9uTWV0YWRhdGFDaGFuZ2VkKF9tZXRhZGF0YSkge31cblxuICAvKipcbiAgICogQnJvYWRjYXN0IHJvdXRpbmcgZmlsdGVyLiBDYWxsZWQgYnkgYGJyb2FkY2FzdFRvQ2hhbm5lbGAgZm9yXG4gICAqIGVhY2ggbGl2ZSBzdWJzY3JpcHRpb24g4oCUIHJldHVybmluZyB0cnVlIGRlbGl2ZXJzIHRoZSBib2R5IHZpYVxuICAgKiBgc2VuZE1lc3NhZ2VgLiBEZWZhdWx0IG1hdGNoZXMgYWxsIGJyb2FkY2FzdHMgcmVnYXJkbGVzcyBvZlxuICAgKiBwYXJhbXM7IG92ZXJyaWRlIGZvciBwZXItc3Vic2NyaWJlciBmaWx0ZXJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7Li4uYW55fSBfYnJvYWRjYXN0QXJncyAtIFBhcmFtcyBmb3J3YXJkZWQgZnJvbSBgYnJvYWRjYXN0VG9DaGFubmVsYCAoaWdub3JlZCBieSBkZWZhdWx0KS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSB0byBkZWxpdmVyIHRoZSBicm9hZGNhc3QgdG8gdGhpcyBzdWJzY3JpYmVyLlxuICAgKi9cbiAgbWF0Y2hlcyguLi5fYnJvYWRjYXN0QXJncykgeyByZXR1cm4gdHJ1ZSB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgYGNoYW5uZWwtbWVzc2FnZWAgZnJhbWUgdG8gVEhJUyBzdWJzY3JpYmVyIG9ubHkuXG4gICAqIFdoZW4gYG1ldGEuZXZlbnRJZGAgaXMgcHJvdmlkZWQsIHRoZSBjbGllbnQgcmVjZWl2ZXMgaXQgc28gaXRcbiAgICogY2FuIHRyYWNrIGl0cyBjaGVja3BvaW50IGZvciBgbGFzdEV2ZW50SWRgIHJlcGxheSBvbiByZWNvbm5lY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSBib2R5XG4gICAqIEBwYXJhbSB7e2V2ZW50SWQ/OiBzdHJpbmd9fSBbbWV0YV0gLSBPcHRpb25hbCBldmVudCBtZXRhZGF0YS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzZW5kTWVzc2FnZShib2R5LCBtZXRhKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2VuZE1lc3NhZ2Ugb24gY2xvc2VkIHN1YnNjcmlwdGlvbiAke3RoaXMuc3Vic2NyaXB0aW9uSWR9YClcbiAgICB9XG5cbiAgICB0aGlzLnNlc3Npb24uc2VuZEpzb24oe1xuICAgICAgdHlwZTogXCJjaGFubmVsLW1lc3NhZ2VcIixcbiAgICAgIHN1YnNjcmlwdGlvbklkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgYm9keSxcbiAgICAgIC4uLihtZXRhPy5ldmVudElkID8ge2V2ZW50SWQ6IG1ldGEuZXZlbnRJZH0gOiB7fSlcbiAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAqL1xuICBpc0Nsb3NlZCgpIHsgcmV0dXJuIHRoaXMuX2Nsb3NlZCB9XG59XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWNoYW5uZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOztHQUVHO0FBQ0g7O0dBRUc7QUFFSDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyx5QkFBeUI7SUFDNUM7Ozs7O09BS0c7SUFDSCxZQUFZLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQUssT0FBTyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBRS9COzs7Ozs7T0FNRztJQUNILFVBQVUsS0FBSSxDQUFDO0lBRWY7Ozs7O09BS0c7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxLQUFJLENBQUM7SUFFakI7Ozs7O09BS0c7SUFDSCxRQUFRLEtBQUksQ0FBQztJQUViOzs7Ozs7O09BT0c7SUFDSCxpQkFBaUIsQ0FBQyxTQUFTLElBQUcsQ0FBQztJQUUvQjs7Ozs7Ozs7T0FRRztJQUNILE9BQU8sQ0FBQyxHQUFHLGNBQWMsSUFBSSxPQUFPLElBQUksQ0FBQSxDQUFDLENBQUM7SUFFMUM7Ozs7Ozs7O09BUUc7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSTtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUk7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7UUFDckYsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3BCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLElBQUk7WUFDSixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELHlCQUF5QjtJQUN6QixRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQztDQUNuQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIEB0eXBlZGVmIHtudWxsIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG9iamVjdH0gV2Vic29ja2V0SnNvblZhbHVlXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIFdlYnNvY2tldEpzb25WYWx1ZT59IFdlYnNvY2tldFBhcmFtc1xuICovXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYXBwLWRlZmluZWQgMTpOIHB1Yi9zdWIgY2hhbm5lbHMuXG4gKlxuICogU3ViY2xhc3NlcyBvdmVycmlkZTpcbiAqICAtIGBjYW5TdWJzY3JpYmUoKWAg4oCUIHN1YnNjcmliZS10aW1lIGF1dGggKGRlZmF1bHQgYGZhbHNlYCkuXG4gKiAgLSBgc3Vic2NyaWJlZCgpYCAvIGB1bnN1YnNjcmliZWQoKWAg4oCUIG9wdGlvbmFsIGxpZmVjeWNsZSBob29rcy5cbiAqICAtIGBtYXRjaGVzKGJyb2FkY2FzdFBhcmFtcylgIOKAlCBicm9hZGNhc3Qgcm91dGluZyBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c1dlYnNvY2tldENoYW5uZWwge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muc3Vic2NyaXB0aW9uSWQgLSBDbGllbnQtYXNzaWduZWQgaWQsIHVuaXF1ZSB3aXRoaW4gdGhlIHNlc3Npb24uXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0UGFyYW1zfSBhcmdzLnBhcmFtcyAtIFN1YnNjcmliZSBwYXJhbXMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jbGllbnQvd2Vic29ja2V0LXNlc3Npb24uanNcIikuZGVmYXVsdH0gYXJncy5zZXNzaW9uIC0gT3duaW5nIHNlc3Npb24uXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7c3Vic2NyaXB0aW9uSWQsIHBhcmFtcywgc2Vzc2lvbn0pIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gc3Vic2NyaXB0aW9uSWRcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcyB8fCB7fVxuICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb25cbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZS10aW1lIGF1dGguIERlZmF1bHQgaXMgYGZhbHNlYCAoZGVueSkuIENoYW5uZWwgYXV0aG9yc1xuICAgKiBNVVNUIG92ZXJyaWRlIHRvIGFsbG93IHN1YnNjcmlwdGlvbnMuIFJldHVybmluZyBhIFByb21pc2UgZGVmZXJzXG4gICAqIHRoZSBgY2hhbm5lbC1zdWJzY3JpYmVkYCBjb25maXJtYXRpb24gdW50aWwgaXQgcmVzb2x2ZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn1cbiAgICovXG4gIGNhblN1YnNjcmliZSgpIHsgcmV0dXJuIGZhbHNlIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwg4oCUIGNhbGxlZCBvbmNlIGFmdGVyIGBjYW5TdWJzY3JpYmVgIHJlc29sdmVzIHRydXRoeSBhbmRcbiAgICogYmVmb3JlIGBjaGFubmVsLXN1YnNjcmliZWRgIGlzIHNlbnQgdG8gdGhlIGNsaWVudC4gVXNlIGZvclxuICAgKiBpbml0aWFsIHNuYXBzaG90IGRlbGl2ZXJ5LlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICBzdWJzY3JpYmVkKCkge31cblxuICAvKipcbiAgICogT3B0aW9uYWwg4oCUIGNhbGxlZCBvbmNlIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBlbmRzLiBGaXJlcyBvblxuICAgKiBjbGllbnQtaW5pdGlhdGVkIGBjaGFubmVsLXVuc3Vic2NyaWJlYCBvciBvbiBzZXNzaW9uIHRlYXJkb3duLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICB1bnN1YnNjcmliZWQoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdW5kZXJseWluZyBzb2NrZXQgZHJvcHMgYW5kIHRoZSBzZXNzaW9uIGlzXG4gICAqIG1vdmVkIGludG8gdGhlIHBhdXNlZC9ncmFjZSByZWdpc3RyeS4gRWl0aGVyIGBvblJlc3VtZWAgZmlyZXNcbiAgICogb24gc3VjY2Vzc2Z1bCBjbGllbnQgcmVjb25uZWN0LCBvciBgdW5zdWJzY3JpYmVkKClgIGZpcmVzIHdoZW5cbiAgICogdGhlIGdyYWNlIHdpbmRvdyBleHBpcmVzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICBvbkRpc2Nvbm5lY3QoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgYSBjbGllbnQgcmVjb25uZWN0ICsgYHNlc3Npb24tcmVzdW1lYCByZWJpbmRzIHRoaXNcbiAgICogc3Vic2NyaXB0aW9uIHRvIGEgbmV3IHNvY2tldC5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgb25SZXN1bWUoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY2xpZW50IHNlbmRzIHVwZGF0ZWQgbWV0YWRhdGEgKGUuZy4gYWZ0ZXJcbiAgICogc2lnbi1pbiAvIGxvY2FsZSBjaGFuZ2UpLiBPdmVycmlkZSB0byByZWFjdCB0byBzZXNzaW9uLWxldmVsXG4gICAqIG1ldGFkYXRhIHVwZGF0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0UGFyYW1zfSBfbWV0YWRhdGEgLSBVcGRhdGVkIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICBvbk1ldGFkYXRhQ2hhbmdlZChfbWV0YWRhdGEpIHt9XG5cbiAgLyoqXG4gICAqIEJyb2FkY2FzdCByb3V0aW5nIGZpbHRlci4gQ2FsbGVkIGJ5IGBicm9hZGNhc3RUb0NoYW5uZWxgIGZvclxuICAgKiBlYWNoIGxpdmUgc3Vic2NyaXB0aW9uIOKAlCByZXR1cm5pbmcgdHJ1ZSBkZWxpdmVycyB0aGUgYm9keSB2aWFcbiAgICogYHNlbmRNZXNzYWdlYC4gRGVmYXVsdCBtYXRjaGVzIGFsbCBicm9hZGNhc3RzIHJlZ2FyZGxlc3Mgb2ZcbiAgICogcGFyYW1zOyBvdmVycmlkZSBmb3IgcGVyLXN1YnNjcmliZXIgZmlsdGVyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLldlYnNvY2tldEpzb25WYWx1ZX0gX2Jyb2FkY2FzdEFyZ3MgLSBQYXJhbXMgZm9yd2FyZGVkIGZyb20gYGJyb2FkY2FzdFRvQ2hhbm5lbGAgKGlnbm9yZWQgYnkgZGVmYXVsdCkuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFRydWUgdG8gZGVsaXZlciB0aGUgYnJvYWRjYXN0IHRvIHRoaXMgc3Vic2NyaWJlci5cbiAgICovXG4gIG1hdGNoZXMoLi4uX2Jyb2FkY2FzdEFyZ3MpIHsgcmV0dXJuIHRydWUgfVxuXG4gIC8qKlxuICAgKiBEZWxpdmVycyBhIG1hdGNoZWQgYnJvYWRjYXN0IHRvIHRoaXMgc3Vic2NyaWJlci4gU3ViY2xhc3NlcyBjYW5cbiAgICogb3ZlcnJpZGUgd2hlbiB0aGUgb3V0Ym91bmQgYm9keSBtdXN0IGJlIHRhaWxvcmVkIHRvIHN1YnNjcmlwdGlvblxuICAgKiBwYXJhbXMgYmVmb3JlIHNlbmRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0SnNvblZhbHVlfSBib2R5XG4gICAqIEBwYXJhbSB7e2V2ZW50SWQ/OiBzdHJpbmd9fSBbbWV0YV0gLSBPcHRpb25hbCBldmVudCBtZXRhZGF0YS5cbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgZGVsaXZlckJyb2FkY2FzdChib2R5LCBtZXRhKSB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZShib2R5LCBtZXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgYGNoYW5uZWwtbWVzc2FnZWAgZnJhbWUgdG8gVEhJUyBzdWJzY3JpYmVyIG9ubHkuXG4gICAqIFdoZW4gYG1ldGEuZXZlbnRJZGAgaXMgcHJvdmlkZWQsIHRoZSBjbGllbnQgcmVjZWl2ZXMgaXQgc28gaXRcbiAgICogY2FuIHRyYWNrIGl0cyBjaGVja3BvaW50IGZvciBgbGFzdEV2ZW50SWRgIHJlcGxheSBvbiByZWNvbm5lY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0SnNvblZhbHVlfSBib2R5XG4gICAqIEBwYXJhbSB7e2V2ZW50SWQ/OiBzdHJpbmd9fSBbbWV0YV0gLSBPcHRpb25hbCBldmVudCBtZXRhZGF0YS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzZW5kTWVzc2FnZShib2R5LCBtZXRhKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2VuZE1lc3NhZ2Ugb24gY2xvc2VkIHN1YnNjcmlwdGlvbiAke3RoaXMuc3Vic2NyaXB0aW9uSWR9YClcbiAgICB9XG5cbiAgICB0aGlzLnNlc3Npb24uc2VuZEpzb24oe1xuICAgICAgdHlwZTogXCJjaGFubmVsLW1lc3NhZ2VcIixcbiAgICAgIHN1YnNjcmlwdGlvbklkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgYm9keSxcbiAgICAgIC4uLihtZXRhPy5ldmVudElkID8ge2V2ZW50SWQ6IG1ldGEuZXZlbnRJZH0gOiB7fSlcbiAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAqL1xuICBpc0Nsb3NlZCgpIHsgcmV0dXJuIHRoaXMuX2Nsb3NlZCB9XG59XG4iXX0=
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @param {keyof typeof scenarios} scenarioName - Scenario name.
3
+ * @returns {Promise<Record<string, number>>} - Scenario result.
4
+ */
5
+ export default function runFrontendModelEventHookScenario(scenarioName: keyof typeof scenarios): Promise<Record<string, number>>;
6
+ export type FrontendModelProjectionOptions = import("../frontend-models/query.js").FrontendModelProjectionOptions;
7
+ export type FrontendModelResourceConfig = import("../frontend-models/base.js").FrontendModelResourceConfig;
8
+ export type FrontendModelHookTestCreateUpdatePayload = {
9
+ id: string;
10
+ model: FrontendModelBase;
11
+ };
12
+ export type FrontendModelHookTestDestroyPayload = {
13
+ id: string;
14
+ };
15
+ export type FakeSubscriptions = {
16
+ /**
17
+ * - Create callbacks.
18
+ */
19
+ create: Set<(payload: FrontendModelHookTestCreateUpdatePayload) => void>;
20
+ /**
21
+ * - Destroy callbacks.
22
+ */
23
+ destroy: Set<(payload: FrontendModelHookTestDestroyPayload) => void>;
24
+ /**
25
+ * - Subscription options.
26
+ */
27
+ options: {
28
+ create: FrontendModelProjectionOptions[];
29
+ destroy: FrontendModelProjectionOptions[];
30
+ update: FrontendModelProjectionOptions[];
31
+ };
32
+ /**
33
+ * - Update callbacks.
34
+ */
35
+ update: Set<(payload: FrontendModelHookTestCreateUpdatePayload) => void>;
36
+ };
37
+ declare namespace scenarios {
38
+ export { classLifecycleScenario as classLifecycle };
39
+ export { debounceUnmountScenario as debounceUnmount };
40
+ export { instanceLifecycleScenario as instanceLifecycle };
41
+ export { projectionOptionsScenario as projectionOptions };
42
+ export { resubscribeInstanceScenario as resubscribeInstance };
43
+ }
44
+ import FrontendModelBase from "../frontend-models/base.js";
45
+ /** @returns {Promise<Record<string, number>>} - Scenario result. */
46
+ declare function classLifecycleScenario(): Promise<Record<string, number>>;
47
+ /** @returns {Promise<Record<string, number>>} - Scenario result. */
48
+ declare function debounceUnmountScenario(): Promise<Record<string, number>>;
49
+ /** @returns {Promise<Record<string, number>>} - Scenario result. */
50
+ declare function instanceLifecycleScenario(): Promise<Record<string, number>>;
51
+ /** @returns {Promise<Record<string, number>>} - Scenario result. */
52
+ declare function projectionOptionsScenario(): Promise<Record<string, number>>;
53
+ /** @returns {Promise<Record<string, number>>} - Scenario result. */
54
+ declare function resubscribeInstanceScenario(): Promise<Record<string, number>>;
55
+ export {};
56
+ //# sourceMappingURL=browser-frontend-model-event-hook-scenarios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-frontend-model-event-hook-scenarios.d.ts","sourceRoot":"","sources":["../../../src/testing/browser-frontend-model-event-hook-scenarios.js"],"names":[],"mappings":"AAwbA;;;GAGG;AACH,wEAHW,MAAM,OAAO,SAAS,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAQ3C;6CAvba,OAAO,6BAA6B,EAAE,8BAA8B;0CACpE,OAAO,4BAA4B,EAAE,2BAA2B;uDAChE;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAC;kDACtC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC;;;;;YAGZ,GAAG,CAAC,CAAC,OAAO,EAAE,wCAAwC,KAAK,IAAI,CAAC;;;;aAChE,GAAG,CAAC,CAAC,OAAO,EAAE,mCAAmC,KAAK,IAAI,CAAC;;;;aAC3D;QAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC;QAAC,OAAO,EAAE,8BAA8B,EAAE,CAAC;QAAC,MAAM,EAAE,8BAA8B,EAAE,CAAA;KAAC;;;;YAC/H,GAAG,CAAC,CAAC,OAAO,EAAE,wCAAwC,KAAK,IAAI,CAAC;;;;;;;;;8BAbhD,4BAA4B;AAkN1D,oEAAoE;AACpE,2CADc,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA2C5C;AAyFD,oEAAoE;AACpE,4CADc,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4B5C;AAnHD,oEAAoE;AACpE,8CADc,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0C5C;AAED,oEAAoE;AACpE,8CADc,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyC5C;AAgCD,oEAAoE;AACpE,gDADc,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmD5C"}