velocious 1.0.397 → 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.
- package/README.md +1 -1
- package/build/src/configuration.d.ts +9 -0
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +19 -7
- package/build/src/frontend-models/base.d.ts +22 -5
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +176 -33
- package/build/src/frontend-models/query.d.ts +63 -0
- package/build/src/frontend-models/query.d.ts.map +1 -1
- package/build/src/frontend-models/query.js +51 -1
- package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-destroyed-event.js +12 -8
- package/build/src/frontend-models/use-model-class-event.d.ts +1 -1
- package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-model-class-event.js +14 -10
- package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-updated-event.js +12 -8
- package/build/src/frontend-models/websocket-channel.d.ts +54 -12
- package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.js +116 -6
- package/build/src/http-server/client/websocket-session.js +2 -2
- package/build/src/http-server/websocket-channel.d.ts +29 -9
- package/build/src/http-server/websocket-channel.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel.js +23 -5
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +24 -3
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -1
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.js +152 -37
- package/package.json +1 -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 {
|
|
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:
|
|
24
|
+
params: WebsocketParams;
|
|
19
25
|
session: import("./client/websocket-session.js").default;
|
|
20
26
|
});
|
|
21
27
|
subscriptionId: string;
|
|
22
|
-
params:
|
|
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 {
|
|
75
|
+
* @param {WebsocketParams} _metadata - Updated metadata.
|
|
70
76
|
* @returns {void | Promise<void>}
|
|
71
77
|
*/
|
|
72
|
-
onMetadataChanged(_metadata:
|
|
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 {...
|
|
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:
|
|
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 {
|
|
106
|
+
* @param {WebsocketJsonValue} body
|
|
89
107
|
* @param {{eventId?: string}} [meta] - Optional event metadata.
|
|
90
108
|
* @returns {void}
|
|
91
109
|
*/
|
|
92
|
-
sendMessage(body:
|
|
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;
|
|
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 {
|
|
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 {
|
|
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 {...
|
|
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 {
|
|
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,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWNoYW5uZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOztHQUVHO0FBQ0g7O0dBRUc7QUFFSDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyx5QkFBeUI7SUFDNUM7Ozs7O09BS0c7SUFDSCxZQUFZLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQUssT0FBTyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBRS9COzs7Ozs7T0FNRztJQUNILFVBQVUsS0FBSSxDQUFDO0lBRWY7Ozs7O09BS0c7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxLQUFJLENBQUM7SUFFakI7Ozs7O09BS0c7SUFDSCxRQUFRLEtBQUksQ0FBQztJQUViOzs7Ozs7O09BT0c7SUFDSCxpQkFBaUIsQ0FBQyxTQUFTLElBQUcsQ0FBQztJQUUvQjs7Ozs7Ozs7T0FRRztJQUNILE9BQU8sQ0FBQyxHQUFHLGNBQWMsSUFBSSxPQUFPLElBQUksQ0FBQSxDQUFDLENBQUM7SUFFMUM7Ozs7Ozs7O09BUUc7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSTtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUk7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7UUFDckYsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3BCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLElBQUk7WUFDSixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELHlCQUF5QjtJQUN6QixRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQztDQUNuQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIEB0eXBlZGVmIHtudWxsIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG9iamVjdH0gV2Vic29ja2V0SnNvblZhbHVlXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIFdlYnNvY2tldEpzb25WYWx1ZT59IFdlYnNvY2tldFBhcmFtc1xuICovXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYXBwLWRlZmluZWQgMTpOIHB1Yi9zdWIgY2hhbm5lbHMuXG4gKlxuICogU3ViY2xhc3NlcyBvdmVycmlkZTpcbiAqICAtIGBjYW5TdWJzY3JpYmUoKWAg4oCUIHN1YnNjcmliZS10aW1lIGF1dGggKGRlZmF1bHQgYGZhbHNlYCkuXG4gKiAgLSBgc3Vic2NyaWJlZCgpYCAvIGB1bnN1YnNjcmliZWQoKWAg4oCUIG9wdGlvbmFsIGxpZmVjeWNsZSBob29rcy5cbiAqICAtIGBtYXRjaGVzKGJyb2FkY2FzdFBhcmFtcylgIOKAlCBicm9hZGNhc3Qgcm91dGluZyBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c1dlYnNvY2tldENoYW5uZWwge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muc3Vic2NyaXB0aW9uSWQgLSBDbGllbnQtYXNzaWduZWQgaWQsIHVuaXF1ZSB3aXRoaW4gdGhlIHNlc3Npb24uXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0UGFyYW1zfSBhcmdzLnBhcmFtcyAtIFN1YnNjcmliZSBwYXJhbXMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jbGllbnQvd2Vic29ja2V0LXNlc3Npb24uanNcIikuZGVmYXVsdH0gYXJncy5zZXNzaW9uIC0gT3duaW5nIHNlc3Npb24uXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7c3Vic2NyaXB0aW9uSWQsIHBhcmFtcywgc2Vzc2lvbn0pIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gc3Vic2NyaXB0aW9uSWRcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcyB8fCB7fVxuICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb25cbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZS10aW1lIGF1dGguIERlZmF1bHQgaXMgYGZhbHNlYCAoZGVueSkuIENoYW5uZWwgYXV0aG9yc1xuICAgKiBNVVNUIG92ZXJyaWRlIHRvIGFsbG93IHN1YnNjcmlwdGlvbnMuIFJldHVybmluZyBhIFByb21pc2UgZGVmZXJzXG4gICAqIHRoZSBgY2hhbm5lbC1zdWJzY3JpYmVkYCBjb25maXJtYXRpb24gdW50aWwgaXQgcmVzb2x2ZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn1cbiAgICovXG4gIGNhblN1YnNjcmliZSgpIHsgcmV0dXJuIGZhbHNlIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwg4oCUIGNhbGxlZCBvbmNlIGFmdGVyIGBjYW5TdWJzY3JpYmVgIHJlc29sdmVzIHRydXRoeSBhbmRcbiAgICogYmVmb3JlIGBjaGFubmVsLXN1YnNjcmliZWRgIGlzIHNlbnQgdG8gdGhlIGNsaWVudC4gVXNlIGZvclxuICAgKiBpbml0aWFsIHNuYXBzaG90IGRlbGl2ZXJ5LlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICBzdWJzY3JpYmVkKCkge31cblxuICAvKipcbiAgICogT3B0aW9uYWwg4oCUIGNhbGxlZCBvbmNlIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBlbmRzLiBGaXJlcyBvblxuICAgKiBjbGllbnQtaW5pdGlhdGVkIGBjaGFubmVsLXVuc3Vic2NyaWJlYCBvciBvbiBzZXNzaW9uIHRlYXJkb3duLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICB1bnN1YnNjcmliZWQoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdW5kZXJseWluZyBzb2NrZXQgZHJvcHMgYW5kIHRoZSBzZXNzaW9uIGlzXG4gICAqIG1vdmVkIGludG8gdGhlIHBhdXNlZC9ncmFjZSByZWdpc3RyeS4gRWl0aGVyIGBvblJlc3VtZWAgZmlyZXNcbiAgICogb24gc3VjY2Vzc2Z1bCBjbGllbnQgcmVjb25uZWN0LCBvciBgdW5zdWJzY3JpYmVkKClgIGZpcmVzIHdoZW5cbiAgICogdGhlIGdyYWNlIHdpbmRvdyBleHBpcmVzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICBvbkRpc2Nvbm5lY3QoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgYSBjbGllbnQgcmVjb25uZWN0ICsgYHNlc3Npb24tcmVzdW1lYCByZWJpbmRzIHRoaXNcbiAgICogc3Vic2NyaXB0aW9uIHRvIGEgbmV3IHNvY2tldC5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgb25SZXN1bWUoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY2xpZW50IHNlbmRzIHVwZGF0ZWQgbWV0YWRhdGEgKGUuZy4gYWZ0ZXJcbiAgICogc2lnbi1pbiAvIGxvY2FsZSBjaGFuZ2UpLiBPdmVycmlkZSB0byByZWFjdCB0byBzZXNzaW9uLWxldmVsXG4gICAqIG1ldGFkYXRhIHVwZGF0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0UGFyYW1zfSBfbWV0YWRhdGEgLSBVcGRhdGVkIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59XG4gICAqL1xuICBvbk1ldGFkYXRhQ2hhbmdlZChfbWV0YWRhdGEpIHt9XG5cbiAgLyoqXG4gICAqIEJyb2FkY2FzdCByb3V0aW5nIGZpbHRlci4gQ2FsbGVkIGJ5IGBicm9hZGNhc3RUb0NoYW5uZWxgIGZvclxuICAgKiBlYWNoIGxpdmUgc3Vic2NyaXB0aW9uIOKAlCByZXR1cm5pbmcgdHJ1ZSBkZWxpdmVycyB0aGUgYm9keSB2aWFcbiAgICogYHNlbmRNZXNzYWdlYC4gRGVmYXVsdCBtYXRjaGVzIGFsbCBicm9hZGNhc3RzIHJlZ2FyZGxlc3Mgb2ZcbiAgICogcGFyYW1zOyBvdmVycmlkZSBmb3IgcGVyLXN1YnNjcmliZXIgZmlsdGVyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLldlYnNvY2tldEpzb25WYWx1ZX0gX2Jyb2FkY2FzdEFyZ3MgLSBQYXJhbXMgZm9yd2FyZGVkIGZyb20gYGJyb2FkY2FzdFRvQ2hhbm5lbGAgKGlnbm9yZWQgYnkgZGVmYXVsdCkuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFRydWUgdG8gZGVsaXZlciB0aGUgYnJvYWRjYXN0IHRvIHRoaXMgc3Vic2NyaWJlci5cbiAgICovXG4gIG1hdGNoZXMoLi4uX2Jyb2FkY2FzdEFyZ3MpIHsgcmV0dXJuIHRydWUgfVxuXG4gIC8qKlxuICAgKiBEZWxpdmVycyBhIG1hdGNoZWQgYnJvYWRjYXN0IHRvIHRoaXMgc3Vic2NyaWJlci4gU3ViY2xhc3NlcyBjYW5cbiAgICogb3ZlcnJpZGUgd2hlbiB0aGUgb3V0Ym91bmQgYm9keSBtdXN0IGJlIHRhaWxvcmVkIHRvIHN1YnNjcmlwdGlvblxuICAgKiBwYXJhbXMgYmVmb3JlIHNlbmRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0SnNvblZhbHVlfSBib2R5XG4gICAqIEBwYXJhbSB7e2V2ZW50SWQ/OiBzdHJpbmd9fSBbbWV0YV0gLSBPcHRpb25hbCBldmVudCBtZXRhZGF0YS5cbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgZGVsaXZlckJyb2FkY2FzdChib2R5LCBtZXRhKSB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZShib2R5LCBtZXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgYGNoYW5uZWwtbWVzc2FnZWAgZnJhbWUgdG8gVEhJUyBzdWJzY3JpYmVyIG9ubHkuXG4gICAqIFdoZW4gYG1ldGEuZXZlbnRJZGAgaXMgcHJvdmlkZWQsIHRoZSBjbGllbnQgcmVjZWl2ZXMgaXQgc28gaXRcbiAgICogY2FuIHRyYWNrIGl0cyBjaGVja3BvaW50IGZvciBgbGFzdEV2ZW50SWRgIHJlcGxheSBvbiByZWNvbm5lY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0SnNvblZhbHVlfSBib2R5XG4gICAqIEBwYXJhbSB7e2V2ZW50SWQ/OiBzdHJpbmd9fSBbbWV0YV0gLSBPcHRpb25hbCBldmVudCBtZXRhZGF0YS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzZW5kTWVzc2FnZShib2R5LCBtZXRhKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2VuZE1lc3NhZ2Ugb24gY2xvc2VkIHN1YnNjcmlwdGlvbiAke3RoaXMuc3Vic2NyaXB0aW9uSWR9YClcbiAgICB9XG5cbiAgICB0aGlzLnNlc3Npb24uc2VuZEpzb24oe1xuICAgICAgdHlwZTogXCJjaGFubmVsLW1lc3NhZ2VcIixcbiAgICAgIHN1YnNjcmlwdGlvbklkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgYm9keSxcbiAgICAgIC4uLihtZXRhPy5ldmVudElkID8ge2V2ZW50SWQ6IG1ldGEuZXZlbnRJZH0gOiB7fSlcbiAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAqL1xuICBpc0Nsb3NlZCgpIHsgcmV0dXJuIHRoaXMuX2Nsb3NlZCB9XG59XG4iXX0=
|
|
@@ -3,26 +3,45 @@
|
|
|
3
3
|
* @returns {Promise<Record<string, number>>} - Scenario result.
|
|
4
4
|
*/
|
|
5
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
|
+
};
|
|
6
15
|
export type FakeSubscriptions = {
|
|
7
16
|
/**
|
|
8
17
|
* - Create callbacks.
|
|
9
18
|
*/
|
|
10
|
-
create: Set<(payload:
|
|
19
|
+
create: Set<(payload: FrontendModelHookTestCreateUpdatePayload) => void>;
|
|
11
20
|
/**
|
|
12
21
|
* - Destroy callbacks.
|
|
13
22
|
*/
|
|
14
|
-
destroy: Set<(payload:
|
|
23
|
+
destroy: Set<(payload: FrontendModelHookTestDestroyPayload) => void>;
|
|
24
|
+
/**
|
|
25
|
+
* - Subscription options.
|
|
26
|
+
*/
|
|
27
|
+
options: {
|
|
28
|
+
create: FrontendModelProjectionOptions[];
|
|
29
|
+
destroy: FrontendModelProjectionOptions[];
|
|
30
|
+
update: FrontendModelProjectionOptions[];
|
|
31
|
+
};
|
|
15
32
|
/**
|
|
16
33
|
* - Update callbacks.
|
|
17
34
|
*/
|
|
18
|
-
update: Set<(payload:
|
|
35
|
+
update: Set<(payload: FrontendModelHookTestCreateUpdatePayload) => void>;
|
|
19
36
|
};
|
|
20
37
|
declare namespace scenarios {
|
|
21
38
|
export { classLifecycleScenario as classLifecycle };
|
|
22
39
|
export { debounceUnmountScenario as debounceUnmount };
|
|
23
40
|
export { instanceLifecycleScenario as instanceLifecycle };
|
|
41
|
+
export { projectionOptionsScenario as projectionOptions };
|
|
24
42
|
export { resubscribeInstanceScenario as resubscribeInstance };
|
|
25
43
|
}
|
|
44
|
+
import FrontendModelBase from "../frontend-models/base.js";
|
|
26
45
|
/** @returns {Promise<Record<string, number>>} - Scenario result. */
|
|
27
46
|
declare function classLifecycleScenario(): Promise<Record<string, number>>;
|
|
28
47
|
/** @returns {Promise<Record<string, number>>} - Scenario result. */
|
|
@@ -30,6 +49,8 @@ declare function debounceUnmountScenario(): Promise<Record<string, number>>;
|
|
|
30
49
|
/** @returns {Promise<Record<string, number>>} - Scenario result. */
|
|
31
50
|
declare function instanceLifecycleScenario(): Promise<Record<string, number>>;
|
|
32
51
|
/** @returns {Promise<Record<string, number>>} - Scenario result. */
|
|
52
|
+
declare function projectionOptionsScenario(): Promise<Record<string, number>>;
|
|
53
|
+
/** @returns {Promise<Record<string, number>>} - Scenario result. */
|
|
33
54
|
declare function resubscribeInstanceScenario(): Promise<Record<string, number>>;
|
|
34
55
|
export {};
|
|
35
56
|
//# sourceMappingURL=browser-frontend-model-event-hook-scenarios.d.ts.map
|
|
@@ -1 +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":"
|
|
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"}
|