velocious 1.0.409 → 1.0.410
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/database/table-data/table-column.d.ts.map +1 -1
- package/build/src/database/table-data/table-column.js +5 -2
- package/build/src/frontend-models/base.d.ts +15 -12
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +96 -27
- package/build/src/frontend-models/query.d.ts +55 -3
- package/build/src/frontend-models/query.d.ts.map +1 -1
- package/build/src/frontend-models/query.js +157 -14
- package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-destroyed-event.js +19 -10
- 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 +26 -17
- package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-updated-event.js +16 -7
- package/build/src/frontend-models/websocket-channel.d.ts +46 -6
- package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.js +163 -19
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +3 -4
- 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 +12 -8
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-destroyed-event.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/use-destroyed-event.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-destroyed-event.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/use-destroyed-event.js"],"names":[],"mappings":"AAuCA;;;;;;;GAOG;AACH,8DALW,kBAAkB,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,GAAG,IAAI,GAAG,SAAS,YACvF,iCAAiC,YACjC,wBAAwB,GACtB,IAAI,CAYhB;iCAhDa,cAAc,WAAW,EAAE,OAAO;oCAClC,OAAO,WAAW,EAAE,OAAO;oDAC3B,OAAO,4BAA4B,EAAE,gCAAgC;uDACrE;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC;+CACZ,qCAAqC,GAAG,wCAAwC;uCAChF,OAAO,4BAA4B,EAAE,yBAAyB;gDAC9D,CAAC,OAAO,EAAE,gCAAgC,KAAK,IAAI"}
|
|
@@ -17,9 +17,18 @@ import useModelClassEvent from "./use-model-class-event.js";
|
|
|
17
17
|
*/
|
|
18
18
|
function assertNoUnknownOptions(restOptions) {
|
|
19
19
|
const unknownOptionNames = Object.keys(restOptions);
|
|
20
|
-
if (unknownOptionNames.length
|
|
21
|
-
|
|
22
|
-
}
|
|
20
|
+
if (unknownOptionNames.length === 0)
|
|
21
|
+
return;
|
|
22
|
+
throw new Error(`Unknown options given to useDestroyedEvent: ${unknownOptionNames.join(", ")}`);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @param {import("./query.js").default<FrontendModelClass> | undefined} query - Event query option.
|
|
26
|
+
* @returns {import("./query.js").FrontendModelEventOptionsPayload | null} Stable dependency payload.
|
|
27
|
+
*/
|
|
28
|
+
function eventQueryDependencyPayload(query) {
|
|
29
|
+
if (!query)
|
|
30
|
+
return null;
|
|
31
|
+
return query.eventOptionsPayload();
|
|
23
32
|
}
|
|
24
33
|
/**
|
|
25
34
|
* React hook for frontend-model destroy events. Pass a model class for class-level
|
|
@@ -30,11 +39,11 @@ function assertNoUnknownOptions(restOptions) {
|
|
|
30
39
|
* @returns {void}
|
|
31
40
|
*/
|
|
32
41
|
export default function useDestroyedEvent(modelClassOrModels, callback, options = {}) {
|
|
33
|
-
const { active = true, abilities, debounce = false, onConnected, preload, queryData, select, withCount, ...restOptions } = options;
|
|
42
|
+
const { active = true, abilities, debounce = false, onConnected, preload, query, queryData, select, selectsExtra, withCount, ...restOptions } = options;
|
|
34
43
|
assertNoUnknownOptions(restOptions);
|
|
35
44
|
const classModel = typeof modelClassOrModels === "function" ? modelClassOrModels : null;
|
|
36
45
|
const instanceModels = typeof modelClassOrModels === "function" ? null : modelClassOrModels;
|
|
37
|
-
const projectionOptions = { abilities, preload, queryData, select, withCount };
|
|
46
|
+
const projectionOptions = { abilities, preload, query, queryData, select, selectsExtra, withCount };
|
|
38
47
|
useModelClassEvent(classModel, "destroy", callback, { active: active && Boolean(classModel), debounce, onConnected, ...projectionOptions });
|
|
39
48
|
useInstanceDestroyedEvent(instanceModels, callback, { active: active && !classModel, debounce, onConnected, ...projectionOptions });
|
|
40
49
|
}
|
|
@@ -45,12 +54,12 @@ export default function useDestroyedEvent(modelClassOrModels, callback, options
|
|
|
45
54
|
* @returns {void}
|
|
46
55
|
*/
|
|
47
56
|
function useInstanceDestroyedEvent(modelOrModels, callback, options) {
|
|
48
|
-
const { active = true, abilities, debounce = false, onConnected, preload, queryData, select, withCount } = options;
|
|
49
|
-
const projectionKey = JSON.stringify({ abilities, preload, queryData, select, withCount });
|
|
50
|
-
const projectionOptionsRef = useRef({ abilities, preload, queryData, select, withCount });
|
|
57
|
+
const { active = true, abilities, debounce = false, onConnected, preload, query, queryData, select, selectsExtra, withCount } = options;
|
|
58
|
+
const projectionKey = JSON.stringify({ abilities, preload, query: eventQueryDependencyPayload(query), queryData, select, selectsExtra, withCount });
|
|
59
|
+
const projectionOptionsRef = useRef({ abilities, preload, query, queryData, select, selectsExtra, withCount });
|
|
51
60
|
const callbackRef = useRef(callback);
|
|
52
61
|
const activeRef = useRef(active);
|
|
53
|
-
projectionOptionsRef.current = { abilities, preload, queryData, select, withCount };
|
|
62
|
+
projectionOptionsRef.current = { abilities, preload, query, queryData, select, selectsExtra, withCount };
|
|
54
63
|
callbackRef.current = callback;
|
|
55
64
|
activeRef.current = active;
|
|
56
65
|
const modelsKey = modelsDependencyKey(modelOrModels);
|
|
@@ -100,4 +109,4 @@ function useInstanceDestroyedEvent(modelOrModels, callback, options) {
|
|
|
100
109
|
};
|
|
101
110
|
}, [active, eventCallback, modelsKey, onConnected, projectionKey]);
|
|
102
111
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRlc3Ryb3llZC1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mcm9udGVuZC1tb2RlbHMvdXNlLWRlc3Ryb3llZC1ldmVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxnQkFBZ0IsTUFBTSxVQUFVLENBQUE7QUFDdkMsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBRWhELE9BQU8sNkJBQTZCLE1BQU0sdUNBQXVDLENBQUE7QUFDakYsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFBO0FBQzNFLE9BQU8sa0JBQWtCLE1BQU0sNEJBQTRCLENBQUE7QUFFM0QsdUVBQXVFO0FBQ3ZFLG1FQUFtRTtBQUNuRSw2SEFBNkg7QUFDN0gsdUVBQXVFO0FBQ3ZFLG1JQUFtSTtBQUNuSSx5R0FBeUc7QUFDekcsdUdBQXVHO0FBRXZHOzs7R0FHRztBQUNILFNBQVMsc0JBQXNCLENBQUMsV0FBVztJQUN6QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFbkQsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0Msa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNqRyxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxVQUFVLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsRUFBRTtJQUNsRixNQUFNLEVBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFB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ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZGVib3VuY2VGdW5jdGlvbiBmcm9tIFwiZGVib3VuY2VcIlxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IGNsZWFyUGVuZGluZ0RlYm91bmNlZENhbGxiYWNrIGZyb20gXCIuL2NsZWFyLXBlbmRpbmctZGVib3VuY2VkLWNhbGxiYWNrLmpzXCJcbmltcG9ydCB7bW9kZWxzRGVwZW5kZW5jeUtleSwgbW9kZWxzRnJvbUlucHV0fSBmcm9tIFwiLi9ldmVudC1ob29rLW1vZGVscy5qc1wiXG5pbXBvcnQgdXNlTW9kZWxDbGFzc0V2ZW50IGZyb20gXCIuL3VzZS1tb2RlbC1jbGFzcy1ldmVudC5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7dHlwZW9mIGltcG9ydChcIi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBGcm9udGVuZE1vZGVsQ2xhc3MgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi9iYXNlLmpzXCIpLmRlZmF1bHR9IEZyb250ZW5kTW9kZWxJbnN0YW5jZSAqL1xuLyoqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL3VzZS1tb2RlbC1jbGFzcy1ldmVudC5qc1wiKS5Gcm9udGVuZE1vZGVsRGVzdHJveUV2ZW50UGF5bG9hZH0gRnJvbnRlbmRNb2RlbENsYXNzRGVzdHJveUV2ZW50UGF5bG9hZCAqL1xuLyoqIEB0eXBlZGVmIHt7aWQ6IHN0cmluZ319IEZyb250ZW5kTW9kZWxJbnN0YW5jZURlc3Ryb3lFdmVudFBheWxvYWQgKi9cbi8qKiBAdHlwZWRlZiB7RnJvbnRlbmRNb2RlbENsYXNzRGVzdHJveUV2ZW50UGF5bG9hZCB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZURlc3Ryb3lFdmVudFBheWxvYWR9IEZyb250ZW5kTW9kZWxEZXN0cm95RXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4vdXNlLW1vZGVsLWNsYXNzLWV2ZW50LmpzXCIpLlVzZU1vZGVsQ2xhc3NFdmVudE9wdGlvbnN9IFVzZURlc3Ryb3llZEV2ZW50T3B0aW9ucyAqL1xuLyoqIEB0eXBlZGVmIHsocGF5bG9hZDogRnJvbnRlbmRNb2RlbERlc3Ryb3lFdmVudFBheWxvYWQpID0+IHZvaWR9IEZyb250ZW5kTW9kZWxEZXN0cm95RXZlbnRDYWxsYmFjayAqL1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsVHJhbnNwb3J0VmFsdWUgfCAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+fSByZXN0T3B0aW9ucyAtIFVua25vd24gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9Vbmtub3duT3B0aW9ucyhyZXN0T3B0aW9ucykge1xuICBjb25zdCB1bmtub3duT3B0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhyZXN0T3B0aW9ucylcblxuICBpZiAodW5rbm93bk9wdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3B0aW9ucyBnaXZlbiB0byB1c2VEZXN0cm95ZWRFdmVudDogJHt1bmtub3duT3B0aW9uTmFtZXMuam9pbihcIiwgXCIpfWApXG4gIH1cbn1cblxuLyoqXG4gKiBSZWFjdCBob29rIGZvciBmcm9udGVuZC1tb2RlbCBkZXN0cm95IGV2ZW50cy4gUGFzcyBhIG1vZGVsIGNsYXNzIGZvciBjbGFzcy1sZXZlbFxuICogZGVzdHJveSBldmVudHMsIG9yIGEgbW9kZWwgLyBtb2RlbCBhcnJheSBmb3IgaW5zdGFuY2UtbGV2ZWwgZGVzdHJveSBldmVudHMuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzcyB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZSB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZVtdIHwgbnVsbCB8IHVuZGVmaW5lZH0gbW9kZWxDbGFzc09yTW9kZWxzIC0gTW9kZWwgY2xhc3MsIG1vZGVsLCBvciBtb2RlbHMuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxEZXN0cm95RXZlbnRDYWxsYmFja30gY2FsbGJhY2sgLSBFdmVudCBjYWxsYmFjay5cbiAqIEBwYXJhbSB7VXNlRGVzdHJveWVkRXZlbnRPcHRpb25zfSBbb3B0aW9uc10gLSBIb29rIG9wdGlvbnMuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRGVzdHJveWVkRXZlbnQobW9kZWxDbGFzc09yTW9kZWxzLCBjYWxsYmFjaywgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBhYmlsaXRpZXMsIGRlYm91bmNlID0gZmFsc2UsIG9uQ29ubmVjdGVkLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50LCAuLi5yZXN0T3B0aW9uc30gPSBvcHRpb25zXG4gIGFzc2VydE5vVW5rbm93bk9wdGlvbnMocmVzdE9wdGlvbnMpXG5cbiAgY29uc3QgY2xhc3NNb2RlbCA9IHR5cGVvZiBtb2RlbENsYXNzT3JNb2RlbHMgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsQ2xhc3NPck1vZGVscyA6IG51bGxcbiAgY29uc3QgaW5zdGFuY2VNb2RlbHMgPSB0eXBlb2YgbW9kZWxDbGFzc09yTW9kZWxzID09PSBcImZ1bmN0aW9uXCIgPyBudWxsIDogbW9kZWxDbGFzc09yTW9kZWxzXG4gIGNvbnN0IHByb2plY3Rpb25PcHRpb25zID0ge2FiaWxpdGllcywgcHJlbG9hZCwgcXVlcnlEYXRhLCBzZWxlY3QsIHdpdGhDb3VudH1cblxuICB1c2VNb2RlbENsYXNzRXZlbnQoY2xhc3NNb2RlbCwgXCJkZXN0cm95XCIsIGNhbGxiYWNrLCB7YWN0aXZlOiBhY3RpdmUgJiYgQm9vbGVhbihjbGFzc01vZGVsKSwgZGVib3VuY2UsIG9uQ29ubmVjdGVkLCAuLi5wcm9qZWN0aW9uT3B0aW9uc30pXG4gIHVzZUluc3RhbmNlRGVzdHJveWVkRXZlbnQoaW5zdGFuY2VNb2RlbHMsIGNhbGxiYWNrLCB7YWN0aXZlOiBhY3RpdmUgJiYgIWNsYXNzTW9kZWwsIGRlYm91bmNlLCBvbkNvbm5lY3RlZCwgLi4ucHJvamVjdGlvbk9wdGlvbnN9KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RnJvbnRlbmRNb2RlbEluc3RhbmNlIHwgRnJvbnRlbmRNb2RlbEluc3RhbmNlW10gfCBudWxsIHwgdW5kZWZpbmVkfSBtb2RlbE9yTW9kZWxzIC0gTW9kZWwgb3IgbW9kZWxzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsRGVzdHJveUV2ZW50Q2FsbGJhY2t9IGNhbGxiYWNrIC0gRXZlbnQgY2FsbGJhY2suXG4gKiBAcGFyYW0ge1VzZURlc3Ryb3llZEV2ZW50T3B0aW9uc30gb3B0aW9ucyAtIEhvb2sgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiB1c2VJbnN0YW5jZURlc3Ryb3llZEV2ZW50KG1vZGVsT3JNb2RlbHMsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBhYmlsaXRpZXMsIGRlYm91bmNlID0gZmFsc2UsIG9uQ29ubmVjdGVkLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50fSA9IG9wdGlvbnNcbiAgY29uc3QgcHJvamVjdGlvbktleSA9IEpTT04uc3RyaW5naWZ5KHthYmlsaXRpZXMsIHByZWxvYWQsIHF1ZXJ5RGF0YSwgc2VsZWN0LCB3aXRoQ291bnR9KVxuICBjb25zdCBwcm9qZWN0aW9uT3B0aW9uc1JlZiA9IHVzZVJlZih7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50fSlcbiAgY29uc3QgY2FsbGJhY2tSZWYgPSB1c2VSZWYoY2FsbGJhY2spXG4gIGNvbnN0IGFjdGl2ZVJlZiA9IHVzZVJlZihhY3RpdmUpXG4gIHByb2plY3Rpb25PcHRpb25zUmVmLmN1cnJlbnQgPSB7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50fVxuICBjYWxsYmFja1JlZi5jdXJyZW50ID0gY2FsbGJhY2tcbiAgYWN0aXZlUmVmLmN1cnJlbnQgPSBhY3RpdmVcblxuICBjb25zdCBtb2RlbHNLZXkgPSBtb2RlbHNEZXBlbmRlbmN5S2V5KG1vZGVsT3JNb2RlbHMpXG4gIGNvbnN0IGV2ZW50Q2FsbGJhY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVkQ2FsbGJhY2sgPSAoLyoqIEB0eXBlIHtGcm9udGVuZE1vZGVsSW5zdGFuY2VEZXN0cm95RXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoYWN0aXZlUmVmLmN1cnJlbnQpIGNhbGxiYWNrUmVmLmN1cnJlbnQocGF5bG9hZClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09PSBcIm51bWJlclwiKSByZXR1cm4gZGVib3VuY2VGdW5jdGlvbih3cmFwcGVkQ2FsbGJhY2ssIGRlYm91bmNlKVxuICAgIGlmIChkZWJvdW5jZSkgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24od3JhcHBlZENhbGxiYWNrKVxuXG4gICAgcmV0dXJuIHdyYXBwZWRDYWxsYmFja1xuICB9LCBbZGVib3VuY2VdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhY3RpdmUpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IG1vZGVscyA9IG1vZGVsc0Zyb21JbnB1dChtb2RlbE9yTW9kZWxzKVxuICAgIGlmIChtb2RlbHMubGVuZ3RoIDwgMSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgbGV0IGNsb3NlZCA9IGZhbHNlXG4gICAgLyoqIEB0eXBlIHtBcnJheTwoKSA9PiB2b2lkPn0gKi9cbiAgICBjb25zdCB1bnN1YnNjcmliZUNhbGxiYWNrcyA9IFtdXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uQ2FsbGJhY2sgPSAoLyoqIEB0eXBlIHtGcm9udGVuZE1vZGVsSW5zdGFuY2VEZXN0cm95RXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoIWNsb3NlZCkgZXZlbnRDYWxsYmFjayhwYXlsb2FkKVxuICAgIH1cblxuICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gYXdhaXQgbW9kZWwub25EZXN0cm95KHN1YnNjcmlwdGlvbkNhbGxiYWNrLCBwcm9qZWN0aW9uT3B0aW9uc1JlZi5jdXJyZW50KVxuXG4gICAgICAgIGlmIChjbG9zZWQpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmVDYWxsYmFja3MucHVzaCh1bnN1YnNjcmliZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNsb3NlZCAmJiBvbkNvbm5lY3RlZCkgb25Db25uZWN0ZWQoKVxuICAgIH0pKClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbG9zZWQgPSB0cnVlXG5cbiAgICAgIGZvciAoY29uc3QgdW5zdWJzY3JpYmUgb2YgdW5zdWJzY3JpYmVDYWxsYmFja3MpIHtcbiAgICAgICAgdW5zdWJzY3JpYmUoKVxuICAgICAgfVxuXG4gICAgICBjbGVhclBlbmRpbmdEZWJvdW5jZWRDYWxsYmFjayhldmVudENhbGxiYWNrKVxuICAgIH1cbiAgfSwgW2FjdGl2ZSwgZXZlbnRDYWxsYmFjaywgbW9kZWxzS2V5LCBvbkNvbm5lY3RlZCwgcHJvamVjdGlvbktleV0pXG59XG4iXX0=
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRlc3Ryb3llZC1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mcm9udGVuZC1tb2RlbHMvdXNlLWRlc3Ryb3llZC1ldmVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxnQkFBZ0IsTUFBTSxVQUFVLENBQUE7QUFDdkMsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBRWhELE9BQU8sNkJBQTZCLE1BQU0sdUNBQXVDLENBQUE7QUFDakYsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFBO0FBQzNFLE9BQU8sa0JBQWtCLE1BQU0sNEJBQTRCLENBQUE7QUFFM0QsdUVBQXVFO0FBQ3ZFLG1FQUFtRTtBQUNuRSw2SEFBNkg7QUFDN0gsdUVBQXVFO0FBQ3ZFLG1JQUFtSTtBQUNuSSx5R0FBeUc7QUFDekcsdUdBQXVHO0FBRXZHOzs7R0FHRztBQUNILFNBQVMsc0JBQXNCLENBQUMsV0FBVztJQUN6QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFbkQsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU07SUFFM0MsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0Msa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNqRyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUywyQkFBMkIsQ0FBQyxLQUFLO0lBQ3hDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFFdkIsT0FBTyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtBQUNwQyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUs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T0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLEdBQUcsSUFBSSxDQUFBO1lBRWIsS0FBSyxNQUFNLFdBQVcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO2dCQUMvQyxXQUFXLEVBQUUsQ0FBQTtZQUNmLENBQUM7WUFFRCw2QkFBNkIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM5QyxDQUFDLENBQUE7SUFDSCxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQTtBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBkZWJvdW5jZUZ1bmN0aW9uIGZyb20gXCJkZWJvdW5jZVwiXG5pbXBvcnQge3VzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgY2xlYXJQZW5kaW5nRGVib3VuY2VkQ2FsbGJhY2sgZnJvbSBcIi4vY2xlYXItcGVuZGluZy1kZWJvdW5jZWQtY2FsbGJhY2suanNcIlxuaW1wb3J0IHttb2RlbHNEZXBlbmRlbmN5S2V5LCBtb2RlbHNGcm9tSW5wdXR9IGZyb20gXCIuL2V2ZW50LWhvb2stbW9kZWxzLmpzXCJcbmltcG9ydCB1c2VNb2RlbENsYXNzRXZlbnQgZnJvbSBcIi4vdXNlLW1vZGVsLWNsYXNzLWV2ZW50LmpzXCJcblxuLyoqIEB0eXBlZGVmIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLmpzXCIpLmRlZmF1bHR9IEZyb250ZW5kTW9kZWxDbGFzcyAqL1xuLyoqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL2Jhc2UuanNcIikuZGVmYXVsdH0gRnJvbnRlbmRNb2RlbEluc3RhbmNlICovXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4vdXNlLW1vZGVsLWNsYXNzLWV2ZW50LmpzXCIpLkZyb250ZW5kTW9kZWxEZXN0cm95RXZlbnRQYXlsb2FkfSBGcm9udGVuZE1vZGVsQ2xhc3NEZXN0cm95RXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYge3tpZDogc3RyaW5nfX0gRnJvbnRlbmRNb2RlbEluc3RhbmNlRGVzdHJveUV2ZW50UGF5bG9hZCAqL1xuLyoqIEB0eXBlZGVmIHtGcm9udGVuZE1vZGVsQ2xhc3NEZXN0cm95RXZlbnRQYXlsb2FkIHwgRnJvbnRlbmRNb2RlbEluc3RhbmNlRGVzdHJveUV2ZW50UGF5bG9hZH0gRnJvbnRlbmRNb2RlbERlc3Ryb3lFdmVudFBheWxvYWQgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi91c2UtbW9kZWwtY2xhc3MtZXZlbnQuanNcIikuVXNlTW9kZWxDbGFzc0V2ZW50T3B0aW9uc30gVXNlRGVzdHJveWVkRXZlbnRPcHRpb25zICovXG4vKiogQHR5cGVkZWYgeyhwYXlsb2FkOiBGcm9udGVuZE1vZGVsRGVzdHJveUV2ZW50UGF5bG9hZCkgPT4gdm9pZH0gRnJvbnRlbmRNb2RlbERlc3Ryb3lFdmVudENhbGxiYWNrICovXG5cbi8qKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoXCIuL3F1ZXJ5LmpzXCIpLkZyb250ZW5kTW9kZWxUcmFuc3BvcnRWYWx1ZSB8ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZD59IHJlc3RPcHRpb25zIC0gVW5rbm93biBvcHRpb25zIG9iamVjdC5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBhc3NlcnROb1Vua25vd25PcHRpb25zKHJlc3RPcHRpb25zKSB7XG4gIGNvbnN0IHVua25vd25PcHRpb25OYW1lcyA9IE9iamVjdC5rZXlzKHJlc3RPcHRpb25zKVxuXG4gIGlmICh1bmtub3duT3B0aW9uTmFtZXMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3B0aW9ucyBnaXZlbiB0byB1c2VEZXN0cm95ZWRFdmVudDogJHt1bmtub3duT3B0aW9uTmFtZXMuam9pbihcIiwgXCIpfWApXG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3F1ZXJ5LmpzXCIpLmRlZmF1bHQ8RnJvbnRlbmRNb2RlbENsYXNzPiB8IHVuZGVmaW5lZH0gcXVlcnkgLSBFdmVudCBxdWVyeSBvcHRpb24uXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsRXZlbnRPcHRpb25zUGF5bG9hZCB8IG51bGx9IFN0YWJsZSBkZXBlbmRlbmN5IHBheWxvYWQuXG4gKi9cbmZ1bmN0aW9uIGV2ZW50UXVlcnlEZXBlbmRlbmN5UGF5bG9hZChxdWVyeSkge1xuICBpZiAoIXF1ZXJ5KSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiBxdWVyeS5ldmVudE9wdGlvbnNQYXlsb2FkKClcbn1cblxuLyoqXG4gKiBSZWFjdCBob29rIGZvciBmcm9udGVuZC1tb2RlbCBkZXN0cm95IGV2ZW50cy4gUGFzcyBhIG1vZGVsIGNsYXNzIGZvciBjbGFzcy1sZXZlbFxuICogZGVzdHJveSBldmVudHMsIG9yIGEgbW9kZWwgLyBtb2RlbCBhcnJheSBmb3IgaW5zdGFuY2UtbGV2ZWwgZGVzdHJveSBldmVudHMuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzcyB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZSB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZVtdIHwgbnVsbCB8IHVuZGVmaW5lZH0gbW9kZWxDbGFzc09yTW9kZWxzIC0gTW9kZWwgY2xhc3MsIG1vZGVsLCBvciBtb2RlbHMuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxEZXN0cm95RXZlbnRDYWxsYmFja30gY2FsbGJhY2sgLSBFdmVudCBjYWxsYmFjay5cbiAqIEBwYXJhbSB7VXNlRGVzdHJveWVkRXZlbnRPcHRpb25zfSBbb3B0aW9uc10gLSBIb29rIG9wdGlvbnMuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRGVzdHJveWVkRXZlbnQobW9kZWxDbGFzc09yTW9kZWxzLCBjYWxsYmFjaywgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBhYmlsaXRpZXMsIGRlYm91bmNlID0gZmFsc2UsIG9uQ29ubmVjdGVkLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50LCAuLi5yZXN0T3B0aW9uc30gPSBvcHRpb25zXG4gIGFzc2VydE5vVW5rbm93bk9wdGlvbnMocmVzdE9wdGlvbnMpXG5cbiAgY29uc3QgY2xhc3NNb2RlbCA9IHR5cGVvZiBtb2RlbENsYXNzT3JNb2RlbHMgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsQ2xhc3NPck1vZGVscyA6IG51bGxcbiAgY29uc3QgaW5zdGFuY2VNb2RlbHMgPSB0eXBlb2YgbW9kZWxDbGFzc09yTW9kZWxzID09PSBcImZ1bmN0aW9uXCIgPyBudWxsIDogbW9kZWxDbGFzc09yTW9kZWxzXG4gIGNvbnN0IHByb2plY3Rpb25PcHRpb25zID0ge2FiaWxpdGllcywgcHJlbG9hZCwgcXVlcnksIHF1ZXJ5RGF0YSwgc2VsZWN0LCBzZWxlY3RzRXh0cmEsIHdpdGhDb3VudH1cblxuICB1c2VNb2RlbENsYXNzRXZlbnQoY2xhc3NNb2RlbCwgXCJkZXN0cm95XCIsIGNhbGxiYWNrLCB7YWN0aXZlOiBhY3RpdmUgJiYgQm9vbGVhbihjbGFzc01vZGVsKSwgZGVib3VuY2UsIG9uQ29ubmVjdGVkLCAuLi5wcm9qZWN0aW9uT3B0aW9uc30pXG4gIHVzZUluc3RhbmNlRGVzdHJveWVkRXZlbnQoaW5zdGFuY2VNb2RlbHMsIGNhbGxiYWNrLCB7YWN0aXZlOiBhY3RpdmUgJiYgIWNsYXNzTW9kZWwsIGRlYm91bmNlLCBvbkNvbm5lY3RlZCwgLi4ucHJvamVjdGlvbk9wdGlvbnN9KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RnJvbnRlbmRNb2RlbEluc3RhbmNlIHwgRnJvbnRlbmRNb2RlbEluc3RhbmNlW10gfCBudWxsIHwgdW5kZWZpbmVkfSBtb2RlbE9yTW9kZWxzIC0gTW9kZWwgb3IgbW9kZWxzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsRGVzdHJveUV2ZW50Q2FsbGJhY2t9IGNhbGxiYWNrIC0gRXZlbnQgY2FsbGJhY2suXG4gKiBAcGFyYW0ge1VzZURlc3Ryb3llZEV2ZW50T3B0aW9uc30gb3B0aW9ucyAtIEhvb2sgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiB1c2VJbnN0YW5jZURlc3Ryb3llZEV2ZW50KG1vZGVsT3JNb2RlbHMsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBhYmlsaXRpZXMsIGRlYm91bmNlID0gZmFsc2UsIG9uQ29ubmVjdGVkLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fSA9IG9wdGlvbnNcbiAgY29uc3QgcHJvamVjdGlvbktleSA9IEpTT04uc3RyaW5naWZ5KHthYmlsaXRpZXMsIHByZWxvYWQsIHF1ZXJ5OiBldmVudFF1ZXJ5RGVwZW5kZW5jeVBheWxvYWQocXVlcnkpLCBxdWVyeURhdGEsIHNlbGVjdCwgc2VsZWN0c0V4dHJhLCB3aXRoQ291bnR9KVxuICBjb25zdCBwcm9qZWN0aW9uT3B0aW9uc1JlZiA9IHVzZVJlZih7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fSlcbiAgY29uc3QgY2FsbGJhY2tSZWYgPSB1c2VSZWYoY2FsbGJhY2spXG4gIGNvbnN0IGFjdGl2ZVJlZiA9IHVzZVJlZihhY3RpdmUpXG4gIHByb2plY3Rpb25PcHRpb25zUmVmLmN1cnJlbnQgPSB7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fVxuICBjYWxsYmFja1JlZi5jdXJyZW50ID0gY2FsbGJhY2tcbiAgYWN0aXZlUmVmLmN1cnJlbnQgPSBhY3RpdmVcblxuICBjb25zdCBtb2RlbHNLZXkgPSBtb2RlbHNEZXBlbmRlbmN5S2V5KG1vZGVsT3JNb2RlbHMpXG4gIGNvbnN0IGV2ZW50Q2FsbGJhY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVkQ2FsbGJhY2sgPSAoLyoqIEB0eXBlIHtGcm9udGVuZE1vZGVsSW5zdGFuY2VEZXN0cm95RXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoYWN0aXZlUmVmLmN1cnJlbnQpIGNhbGxiYWNrUmVmLmN1cnJlbnQocGF5bG9hZClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09PSBcIm51bWJlclwiKSByZXR1cm4gZGVib3VuY2VGdW5jdGlvbih3cmFwcGVkQ2FsbGJhY2ssIGRlYm91bmNlKVxuICAgIGlmIChkZWJvdW5jZSkgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24od3JhcHBlZENhbGxiYWNrKVxuXG4gICAgcmV0dXJuIHdyYXBwZWRDYWxsYmFja1xuICB9LCBbZGVib3VuY2VdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhY3RpdmUpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IG1vZGVscyA9IG1vZGVsc0Zyb21JbnB1dChtb2RlbE9yTW9kZWxzKVxuICAgIGlmIChtb2RlbHMubGVuZ3RoIDwgMSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgbGV0IGNsb3NlZCA9IGZhbHNlXG4gICAgLyoqIEB0eXBlIHtBcnJheTwoKSA9PiB2b2lkPn0gKi9cbiAgICBjb25zdCB1bnN1YnNjcmliZUNhbGxiYWNrcyA9IFtdXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uQ2FsbGJhY2sgPSAoLyoqIEB0eXBlIHtGcm9udGVuZE1vZGVsSW5zdGFuY2VEZXN0cm95RXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoIWNsb3NlZCkgZXZlbnRDYWxsYmFjayhwYXlsb2FkKVxuICAgIH1cblxuICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gYXdhaXQgbW9kZWwub25EZXN0cm95KHN1YnNjcmlwdGlvbkNhbGxiYWNrLCBwcm9qZWN0aW9uT3B0aW9uc1JlZi5jdXJyZW50KVxuXG4gICAgICAgIGlmIChjbG9zZWQpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmVDYWxsYmFja3MucHVzaCh1bnN1YnNjcmliZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNsb3NlZCAmJiBvbkNvbm5lY3RlZCkgb25Db25uZWN0ZWQoKVxuICAgIH0pKClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbG9zZWQgPSB0cnVlXG5cbiAgICAgIGZvciAoY29uc3QgdW5zdWJzY3JpYmUgb2YgdW5zdWJzY3JpYmVDYWxsYmFja3MpIHtcbiAgICAgICAgdW5zdWJzY3JpYmUoKVxuICAgICAgfVxuXG4gICAgICBjbGVhclBlbmRpbmdEZWJvdW5jZWRDYWxsYmFjayhldmVudENhbGxiYWNrKVxuICAgIH1cbiAgfSwgW2FjdGl2ZSwgZXZlbnRDYWxsYmFjaywgbW9kZWxzS2V5LCBvbkNvbm5lY3RlZCwgcHJvamVjdGlvbktleV0pXG59XG4iXX0=
|
|
@@ -23,5 +23,5 @@ export type UseModelClassEventOptions = {
|
|
|
23
23
|
active?: boolean;
|
|
24
24
|
debounce?: boolean | number;
|
|
25
25
|
onConnected?: () => void;
|
|
26
|
-
} & import("./query.js").
|
|
26
|
+
} & import("./query.js").FrontendModelEventOptionsObject;
|
|
27
27
|
//# sourceMappingURL=use-model-class-event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-model-class-event.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/use-model-class-event.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-model-class-event.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/use-model-class-event.js"],"names":[],"mappings":"AAqEA;;;;;;;GAOG;AACH,uDANW,kBAAkB,GAAG,IAAI,GAAG,SAAS,iBACrC,2BAA2B,GAAG,2BAA2B,EAAE,YAC3D,+BAA+B,YAC/B,yBAAyB,GACvB,IAAI,CA6DhB;iCAjIa,cAAc,WAAW,EAAE,OAAO;oCAClC,YAAY,CAAC,kBAAkB,CAAC;0CAChC,QAAQ,GAAG,QAAQ,GAAG,SAAS;oDAC/B;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAC;+CAC1C;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC;6CACZ,qCAAqC,GAAG,gCAAgC;8CACxE,CAAC,OAAO,EAAE,8BAA8B,KAAK,IAAI;wCACjD;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;CAAC,GAAG,OAAO,YAAY,EAAE,+BAA+B"}
|
|
@@ -9,7 +9,26 @@ import clearPendingDebouncedCallback from "./clear-pending-debounced-callback.js
|
|
|
9
9
|
/** @typedef {{id: string}} FrontendModelDestroyEventPayload */
|
|
10
10
|
/** @typedef {FrontendModelCreateUpdateEventPayload | FrontendModelDestroyEventPayload} FrontendModelClassEventPayload */
|
|
11
11
|
/** @typedef {(payload: FrontendModelClassEventPayload) => void} FrontendModelClassEventCallback */
|
|
12
|
-
/** @typedef {{active?: boolean, debounce?: boolean | number, onConnected?: () => void} & import("./query.js").
|
|
12
|
+
/** @typedef {{active?: boolean, debounce?: boolean | number, onConnected?: () => void} & import("./query.js").FrontendModelEventOptionsObject} UseModelClassEventOptions */
|
|
13
|
+
/**
|
|
14
|
+
* @param {Record<string, import("./query.js").FrontendModelTransportValue | (() => void) | undefined>} restOptions - Unknown options object.
|
|
15
|
+
* @returns {void}
|
|
16
|
+
*/
|
|
17
|
+
function assertNoUnknownOptions(restOptions) {
|
|
18
|
+
const unknownOptionNames = Object.keys(restOptions);
|
|
19
|
+
if (unknownOptionNames.length > 0) {
|
|
20
|
+
throw new Error(`Unknown options given to useModelClassEvent: ${unknownOptionNames.join(", ")}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @param {import("./query.js").default<FrontendModelClass> | undefined} query - Event query option.
|
|
25
|
+
* @returns {import("./query.js").FrontendModelEventOptionsPayload | null} Stable dependency payload.
|
|
26
|
+
*/
|
|
27
|
+
function eventQueryDependencyPayload(query) {
|
|
28
|
+
if (!query)
|
|
29
|
+
return null;
|
|
30
|
+
return query.eventOptionsPayload();
|
|
31
|
+
}
|
|
13
32
|
/**
|
|
14
33
|
* @param {FrontendModelClassEventName | FrontendModelClassEventName[]} eventOrEvents - Event name or names.
|
|
15
34
|
* @returns {FrontendModelClassEventName[]} - Normalized event names.
|
|
@@ -24,21 +43,11 @@ function normalizeEventNames(eventOrEvents) {
|
|
|
24
43
|
function eventNamesDependencyKey(eventNames) {
|
|
25
44
|
return eventNames.join("|");
|
|
26
45
|
}
|
|
27
|
-
/**
|
|
28
|
-
* @param {Record<string, import("./query.js").FrontendModelTransportValue | (() => void) | undefined>} restOptions - Unknown options object.
|
|
29
|
-
* @returns {void}
|
|
30
|
-
*/
|
|
31
|
-
function assertNoUnknownOptions(restOptions) {
|
|
32
|
-
const unknownOptionNames = Object.keys(restOptions);
|
|
33
|
-
if (unknownOptionNames.length > 0) {
|
|
34
|
-
throw new Error(`Unknown options given to useModelClassEvent: ${unknownOptionNames.join(", ")}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
46
|
/**
|
|
38
47
|
* @param {FrontendModelClass} modelClass - Frontend model class.
|
|
39
48
|
* @param {FrontendModelClassEventName} eventName - Event name.
|
|
40
49
|
* @param {FrontendModelClassEventCallback} callback - Event callback.
|
|
41
|
-
* @param {import("./query.js").
|
|
50
|
+
* @param {import("./query.js").FrontendModelEventOptionsObject} options - Event query or record projection options.
|
|
42
51
|
* @returns {Promise<() => void>} - Unsubscribe callback.
|
|
43
52
|
*/
|
|
44
53
|
async function subscribeToModelClassEvent(modelClass, eventName, callback, options) {
|
|
@@ -59,13 +68,13 @@ async function subscribeToModelClassEvent(modelClass, eventName, callback, optio
|
|
|
59
68
|
* @returns {void}
|
|
60
69
|
*/
|
|
61
70
|
export default function useModelClassEvent(modelClass, eventOrEvents, callback, options = {}) {
|
|
62
|
-
const { active = true, abilities, debounce = false, onConnected, preload, queryData, select, withCount, ...restOptions } = options;
|
|
71
|
+
const { active = true, abilities, debounce = false, onConnected, preload, query, queryData, select, selectsExtra, withCount, ...restOptions } = options;
|
|
63
72
|
assertNoUnknownOptions(restOptions);
|
|
64
|
-
const projectionKey = JSON.stringify({ abilities, preload, queryData, select, withCount });
|
|
65
|
-
const projectionOptionsRef = useRef({ abilities, preload, queryData, select, withCount });
|
|
73
|
+
const projectionKey = JSON.stringify({ abilities, preload, query: eventQueryDependencyPayload(query), queryData, select, selectsExtra, withCount });
|
|
74
|
+
const projectionOptionsRef = useRef({ abilities, preload, query, queryData, select, selectsExtra, withCount });
|
|
66
75
|
const callbackRef = useRef(callback);
|
|
67
76
|
const activeRef = useRef(active);
|
|
68
|
-
projectionOptionsRef.current = { abilities, preload, queryData, select, withCount };
|
|
77
|
+
projectionOptionsRef.current = { abilities, preload, query, queryData, select, selectsExtra, withCount };
|
|
69
78
|
callbackRef.current = callback;
|
|
70
79
|
activeRef.current = active;
|
|
71
80
|
const eventNames = normalizeEventNames(eventOrEvents);
|
|
@@ -113,4 +122,4 @@ export default function useModelClassEvent(modelClass, eventOrEvents, callback,
|
|
|
113
122
|
};
|
|
114
123
|
}, [active, eventsKey, eventCallback, modelClass, onConnected, projectionKey]);
|
|
115
124
|
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLWNsYXNzLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zyb250ZW5kLW1vZGVscy91c2UtbW9kZWwtY2xhc3MtZXZlbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sZ0JBQWdCLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUVoRCxPQUFPLDZCQUE2QixNQUFNLHVDQUF1QyxDQUFBO0FBRWpGLHVFQUF1RTtBQUN2RSx3RUFBd0U7QUFDeEUsNkVBQTZFO0FBQzdFLGtHQUFrRztBQUNsRywrREFBK0Q7QUFDL0QseUhBQXlIO0FBQ3pILG1HQUFtRztBQUNuRywyS0FBMks7QUFFM0s7OztHQUdHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxhQUFhO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3ZFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLHVCQUF1QixDQUFDLFVBQVU7SUFDekMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzdCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLFdBQVc7SUFDekMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRW5ELElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbEcsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7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SUFBSSxDQUFDLE1BQU07Z0JBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQTtRQUVELEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNmLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sV0FBVyxHQUFHLE1BQU0sMEJBQTBCLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFFL0gsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxXQUFXLEVBQUUsQ0FBQTtnQkFDZixDQUFDO3FCQUFNLENBQUM7b0JBQ04sb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLElBQUksV0FBVztnQkFBRSxXQUFXLEVBQUUsQ0FBQTtRQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRUosT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLEdBQUcsSUFBSSxDQUFBO1lBRWIsS0FBSyxNQUFNLFdBQVcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO2dCQUMvQyxXQUFXLEVBQUUsQ0FBQTtZQUNmLENBQUM7WUFFRCw2QkFBNkIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM5QyxDQUFDLENBQUE7SUFDSCxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUE7QUFDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZGVib3VuY2VGdW5jdGlvbiBmcm9tIFwiZGVib3VuY2VcIlxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IGNsZWFyUGVuZGluZ0RlYm91bmNlZENhbGxiYWNrIGZyb20gXCIuL2NsZWFyLXBlbmRpbmctZGVib3VuY2VkLWNhbGxiYWNrLmpzXCJcblxuLyoqIEB0eXBlZGVmIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLmpzXCIpLmRlZmF1bHR9IEZyb250ZW5kTW9kZWxDbGFzcyAqL1xuLyoqIEB0eXBlZGVmIHtJbnN0YW5jZVR5cGU8RnJvbnRlbmRNb2RlbENsYXNzPn0gRnJvbnRlbmRNb2RlbEluc3RhbmNlICovXG4vKiogQHR5cGVkZWYge1wiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCJ9IEZyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZSAqL1xuLyoqIEB0eXBlZGVmIHt7aWQ6IHN0cmluZywgbW9kZWw6IEZyb250ZW5kTW9kZWxJbnN0YW5jZX19IEZyb250ZW5kTW9kZWxDcmVhdGVVcGRhdGVFdmVudFBheWxvYWQgKi9cbi8qKiBAdHlwZWRlZiB7e2lkOiBzdHJpbmd9fSBGcm9udGVuZE1vZGVsRGVzdHJveUV2ZW50UGF5bG9hZCAqL1xuLyoqIEB0eXBlZGVmIHtGcm9udGVuZE1vZGVsQ3JlYXRlVXBkYXRlRXZlbnRQYXlsb2FkIHwgRnJvbnRlbmRNb2RlbERlc3Ryb3lFdmVudFBheWxvYWR9IEZyb250ZW5kTW9kZWxDbGFzc0V2ZW50UGF5bG9hZCAqL1xuLyoqIEB0eXBlZGVmIHsocGF5bG9hZDogRnJvbnRlbmRNb2RlbENsYXNzRXZlbnRQYXlsb2FkKSA9PiB2b2lkfSBGcm9udGVuZE1vZGVsQ2xhc3NFdmVudENhbGxiYWNrICovXG4vKiogQHR5cGVkZWYge3thY3RpdmU/OiBib29sZWFuLCBkZWJvdW5jZT86IGJvb2xlYW4gfCBudW1iZXIsIG9uQ29ubmVjdGVkPzogKCkgPT4gdm9pZH0gJiBpbXBvcnQoXCIuL3F1ZXJ5LmpzXCIpLkZyb250ZW5kTW9kZWxQcm9qZWN0aW9uT3B0aW9uc30gVXNlTW9kZWxDbGFzc0V2ZW50T3B0aW9ucyAqL1xuXG4vKipcbiAqIEBwYXJhbSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnROYW1lIHwgRnJvbnRlbmRNb2RlbENsYXNzRXZlbnROYW1lW119IGV2ZW50T3JFdmVudHMgLSBFdmVudCBuYW1lIG9yIG5hbWVzLlxuICogQHJldHVybnMge0Zyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZVtdfSAtIE5vcm1hbGl6ZWQgZXZlbnQgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUV2ZW50TmFtZXMoZXZlbnRPckV2ZW50cykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShldmVudE9yRXZlbnRzKSA/IGV2ZW50T3JFdmVudHMgOiBbZXZlbnRPckV2ZW50c11cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZVtdfSBldmVudE5hbWVzIC0gRXZlbnQgbmFtZXMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFN0YWJsZSBkZXBlbmRlbmN5IGtleS5cbiAqL1xuZnVuY3Rpb24gZXZlbnROYW1lc0RlcGVuZGVuY3lLZXkoZXZlbnROYW1lcykge1xuICByZXR1cm4gZXZlbnROYW1lcy5qb2luKFwifFwiKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsVHJhbnNwb3J0VmFsdWUgfCAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+fSByZXN0T3B0aW9ucyAtIFVua25vd24gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9Vbmtub3duT3B0aW9ucyhyZXN0T3B0aW9ucykge1xuICBjb25zdCB1bmtub3duT3B0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhyZXN0T3B0aW9ucylcblxuICBpZiAodW5rbm93bk9wdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3B0aW9ucyBnaXZlbiB0byB1c2VNb2RlbENsYXNzRXZlbnQ6ICR7dW5rbm93bk9wdGlvbk5hbWVzLmpvaW4oXCIsIFwiKX1gKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsQ2xhc3N9IG1vZGVsQ2xhc3MgLSBGcm9udGVuZCBtb2RlbCBjbGFzcy5cbiAqIEBwYXJhbSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnROYW1lfSBldmVudE5hbWUgLSBFdmVudCBuYW1lLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsQ2xhc3NFdmVudENhbGxiYWNrfSBjYWxsYmFjayAtIEV2ZW50IGNhbGxiYWNrLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3F1ZXJ5LmpzXCIpLkZyb250ZW5kTW9kZWxQcm9qZWN0aW9uT3B0aW9uc30gb3B0aW9ucyAtIEV2ZW50IHJlY29yZCBwcm9qZWN0aW9uIG9wdGlvbnMuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTwoKSA9PiB2b2lkPn0gLSBVbnN1YnNjcmliZSBjYWxsYmFjay5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc3Vic2NyaWJlVG9Nb2RlbENsYXNzRXZlbnQobW9kZWxDbGFzcywgZXZlbnROYW1lLCBjYWxsYmFjaywgb3B0aW9ucykge1xuICBpZiAoZXZlbnROYW1lID09PSBcImNyZWF0ZVwiKSByZXR1cm4gYXdhaXQgbW9kZWxDbGFzcy5vbkNyZWF0ZShjYWxsYmFjaywgb3B0aW9ucylcbiAgaWYgKGV2ZW50TmFtZSA9PT0gXCJ1cGRhdGVcIikgcmV0dXJuIGF3YWl0IG1vZGVsQ2xhc3Mub25VcGRhdGUoY2FsbGJhY2ssIG9wdGlvbnMpXG4gIGlmIChldmVudE5hbWUgPT09IFwiZGVzdHJveVwiKSByZXR1cm4gYXdhaXQgbW9kZWxDbGFzcy5vbkRlc3Ryb3koY2FsbGJhY2ssIG9wdGlvbnMpXG5cbiAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBmcm9udGVuZCBtb2RlbCBjbGFzcyBldmVudDogJHtldmVudE5hbWV9YClcbn1cblxuLyoqXG4gKiBSZWFjdCBob29rIGZvciBmcm9udGVuZC1tb2RlbCBjbGFzcyBsaWZlY3ljbGUgZXZlbnRzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsQ2xhc3MgfCBudWxsIHwgdW5kZWZpbmVkfSBtb2RlbENsYXNzIC0gRnJvbnRlbmQgbW9kZWwgY2xhc3MuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZSB8IEZyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZVtdfSBldmVudE9yRXZlbnRzIC0gRXZlbnQgbmFtZSBvciBuYW1lcy5cbiAqIEBwYXJhbSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnRDYWxsYmFja30gY2FsbGJhY2sgLSBFdmVudCBjYWxsYmFjay5cbiAqIEBwYXJhbSB7VXNlTW9kZWxDbGFzc0V2ZW50T3B0aW9uc30gW29wdGlvbnNdIC0gSG9vayBvcHRpb25zLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU1vZGVsQ2xhc3NFdmVudChtb2RlbENsYXNzLCBldmVudE9yRXZlbnRzLCBjYWxsYmFjaywgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBhYmlsaXRpZXMsIGRlYm91bmNlID0gZmFsc2UsIG9uQ29ubmVjdGVkLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50LCAuLi5yZXN0T3B0aW9uc30gPSBvcHRpb25zXG4gIGFzc2VydE5vVW5rbm93bk9wdGlvbnMocmVzdE9wdGlvbnMpXG5cbiAgY29uc3QgcHJvamVjdGlvbktleSA9IEpTT04uc3RyaW5naWZ5KHthYmlsaXRpZXMsIHByZWxvYWQsIHF1ZXJ5RGF0YSwgc2VsZWN0LCB3aXRoQ291bnR9KVxuICBjb25zdCBwcm9qZWN0aW9uT3B0aW9uc1JlZiA9IHVzZVJlZih7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50fSlcbiAgY29uc3QgY2FsbGJhY2tSZWYgPSB1c2VSZWYoY2FsbGJhY2spXG4gIGNvbnN0IGFjdGl2ZVJlZiA9IHVzZVJlZihhY3RpdmUpXG4gIHByb2plY3Rpb25PcHRpb25zUmVmLmN1cnJlbnQgPSB7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50fVxuICBjYWxsYmFja1JlZi5jdXJyZW50ID0gY2FsbGJhY2tcbiAgYWN0aXZlUmVmLmN1cnJlbnQgPSBhY3RpdmVcblxuICBjb25zdCBldmVudE5hbWVzID0gbm9ybWFsaXplRXZlbnROYW1lcyhldmVudE9yRXZlbnRzKVxuICBjb25zdCBldmVudHNLZXkgPSBldmVudE5hbWVzRGVwZW5kZW5jeUtleShldmVudE5hbWVzKVxuICBjb25zdCBldmVudENhbGxiYWNrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlZENhbGxiYWNrID0gKC8qKiBAdHlwZSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoYWN0aXZlUmVmLmN1cnJlbnQpIGNhbGxiYWNrUmVmLmN1cnJlbnQocGF5bG9hZClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09PSBcIm51bWJlclwiKSByZXR1cm4gZGVib3VuY2VGdW5jdGlvbih3cmFwcGVkQ2FsbGJhY2ssIGRlYm91bmNlKVxuICAgIGlmIChkZWJvdW5jZSkgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24od3JhcHBlZENhbGxiYWNrKVxuXG4gICAgcmV0dXJuIHdyYXBwZWRDYWxsYmFja1xuICB9LCBbZGVib3VuY2VdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhY3RpdmUgfHwgIW1vZGVsQ2xhc3MpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGxldCBjbG9zZWQgPSBmYWxzZVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8KCkgPT4gdm9pZD59ICovXG4gICAgY29uc3QgdW5zdWJzY3JpYmVDYWxsYmFja3MgPSBbXVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbkNhbGxiYWNrID0gKC8qKiBAdHlwZSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoIWNsb3NlZCkgZXZlbnRDYWxsYmFjayhwYXlsb2FkKVxuICAgIH1cblxuICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZXZlbnROYW1lIG9mIGV2ZW50TmFtZXMpIHtcbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSBhd2FpdCBzdWJzY3JpYmVUb01vZGVsQ2xhc3NFdmVudChtb2RlbENsYXNzLCBldmVudE5hbWUsIHN1YnNjcmlwdGlvbkNhbGxiYWNrLCBwcm9qZWN0aW9uT3B0aW9uc1JlZi5jdXJyZW50KVxuXG4gICAgICAgIGlmIChjbG9zZWQpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmVDYWxsYmFja3MucHVzaCh1bnN1YnNjcmliZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNsb3NlZCAmJiBvbkNvbm5lY3RlZCkgb25Db25uZWN0ZWQoKVxuICAgIH0pKClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbG9zZWQgPSB0cnVlXG5cbiAgICAgIGZvciAoY29uc3QgdW5zdWJzY3JpYmUgb2YgdW5zdWJzY3JpYmVDYWxsYmFja3MpIHtcbiAgICAgICAgdW5zdWJzY3JpYmUoKVxuICAgICAgfVxuXG4gICAgICBjbGVhclBlbmRpbmdEZWJvdW5jZWRDYWxsYmFjayhldmVudENhbGxiYWNrKVxuICAgIH1cbiAgfSwgW2FjdGl2ZSwgZXZlbnRzS2V5LCBldmVudENhbGxiYWNrLCBtb2RlbENsYXNzLCBvbkNvbm5lY3RlZCwgcHJvamVjdGlvbktleV0pXG59XG4iXX0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLWNsYXNzLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zyb250ZW5kLW1vZGVscy91c2UtbW9kZWwtY2xhc3MtZXZlbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sZ0JBQWdCLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUVoRCxPQUFPLDZCQUE2QixNQUFNLHVDQUF1QyxDQUFBO0FBRWpGLHVFQUF1RTtBQUN2RSx3RUFBd0U7QUFDeEUsNkVBQTZFO0FBQzdFLGtHQUFrRztBQUNsRywrREFBK0Q7QUFDL0QseUhBQXlIO0FBQ3pILG1HQUFtRztBQUNuRyw0S0FBNEs7QUFFNUs7OztHQUdHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxXQUFXO0lBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUVuRCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUywyQkFBMkIsQ0FBQyxLQUFLO0lBQ3hDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFFdkIsT0FBTyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtBQUNwQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxhQUFhO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FB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RUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQTtBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBkZWJvdW5jZUZ1bmN0aW9uIGZyb20gXCJkZWJvdW5jZVwiXG5pbXBvcnQge3VzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgY2xlYXJQZW5kaW5nRGVib3VuY2VkQ2FsbGJhY2sgZnJvbSBcIi4vY2xlYXItcGVuZGluZy1kZWJvdW5jZWQtY2FsbGJhY2suanNcIlxuXG4vKiogQHR5cGVkZWYge3R5cGVvZiBpbXBvcnQoXCIuL2Jhc2UuanNcIikuZGVmYXVsdH0gRnJvbnRlbmRNb2RlbENsYXNzICovXG4vKiogQHR5cGVkZWYge0luc3RhbmNlVHlwZTxGcm9udGVuZE1vZGVsQ2xhc3M+fSBGcm9udGVuZE1vZGVsSW5zdGFuY2UgKi9cbi8qKiBAdHlwZWRlZiB7XCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIn0gRnJvbnRlbmRNb2RlbENsYXNzRXZlbnROYW1lICovXG4vKiogQHR5cGVkZWYge3tpZDogc3RyaW5nLCBtb2RlbDogRnJvbnRlbmRNb2RlbEluc3RhbmNlfX0gRnJvbnRlbmRNb2RlbENyZWF0ZVVwZGF0ZUV2ZW50UGF5bG9hZCAqL1xuLyoqIEB0eXBlZGVmIHt7aWQ6IHN0cmluZ319IEZyb250ZW5kTW9kZWxEZXN0cm95RXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYge0Zyb250ZW5kTW9kZWxDcmVhdGVVcGRhdGVFdmVudFBheWxvYWQgfCBGcm9udGVuZE1vZGVsRGVzdHJveUV2ZW50UGF5bG9hZH0gRnJvbnRlbmRNb2RlbENsYXNzRXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYgeyhwYXlsb2FkOiBGcm9udGVuZE1vZGVsQ2xhc3NFdmVudFBheWxvYWQpID0+IHZvaWR9IEZyb250ZW5kTW9kZWxDbGFzc0V2ZW50Q2FsbGJhY2sgKi9cbi8qKiBAdHlwZWRlZiB7e2FjdGl2ZT86IGJvb2xlYW4sIGRlYm91bmNlPzogYm9vbGVhbiB8IG51bWJlciwgb25Db25uZWN0ZWQ/OiAoKSA9PiB2b2lkfSAmIGltcG9ydChcIi4vcXVlcnkuanNcIikuRnJvbnRlbmRNb2RlbEV2ZW50T3B0aW9uc09iamVjdH0gVXNlTW9kZWxDbGFzc0V2ZW50T3B0aW9ucyAqL1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsVHJhbnNwb3J0VmFsdWUgfCAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+fSByZXN0T3B0aW9ucyAtIFVua25vd24gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9Vbmtub3duT3B0aW9ucyhyZXN0T3B0aW9ucykge1xuICBjb25zdCB1bmtub3duT3B0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhyZXN0T3B0aW9ucylcblxuICBpZiAodW5rbm93bk9wdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3B0aW9ucyBnaXZlbiB0byB1c2VNb2RlbENsYXNzRXZlbnQ6ICR7dW5rbm93bk9wdGlvbk5hbWVzLmpvaW4oXCIsIFwiKX1gKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3F1ZXJ5LmpzXCIpLmRlZmF1bHQ8RnJvbnRlbmRNb2RlbENsYXNzPiB8IHVuZGVmaW5lZH0gcXVlcnkgLSBFdmVudCBxdWVyeSBvcHRpb24uXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsRXZlbnRPcHRpb25zUGF5bG9hZCB8IG51bGx9IFN0YWJsZSBkZXBlbmRlbmN5IHBheWxvYWQuXG4gKi9cbmZ1bmN0aW9uIGV2ZW50UXVlcnlEZXBlbmRlbmN5UGF5bG9hZChxdWVyeSkge1xuICBpZiAoIXF1ZXJ5KSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiBxdWVyeS5ldmVudE9wdGlvbnNQYXlsb2FkKClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZSB8IEZyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZVtdfSBldmVudE9yRXZlbnRzIC0gRXZlbnQgbmFtZSBvciBuYW1lcy5cbiAqIEByZXR1cm5zIHtGcm9udGVuZE1vZGVsQ2xhc3NFdmVudE5hbWVbXX0gLSBOb3JtYWxpemVkIGV2ZW50IG5hbWVzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVFdmVudE5hbWVzKGV2ZW50T3JFdmVudHMpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZXZlbnRPckV2ZW50cykgPyBldmVudE9yRXZlbnRzIDogW2V2ZW50T3JFdmVudHNdXG59XG5cbi8qKlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsQ2xhc3NFdmVudE5hbWVbXX0gZXZlbnROYW1lcyAtIEV2ZW50IG5hbWVzLlxuICogQHJldHVybnMge3N0cmluZ30gLSBTdGFibGUgZGVwZW5kZW5jeSBrZXkuXG4gKi9cbmZ1bmN0aW9uIGV2ZW50TmFtZXNEZXBlbmRlbmN5S2V5KGV2ZW50TmFtZXMpIHtcbiAgcmV0dXJuIGV2ZW50TmFtZXMuam9pbihcInxcIilcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzc30gbW9kZWxDbGFzcyAtIEZyb250ZW5kIG1vZGVsIGNsYXNzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsQ2xhc3NFdmVudE5hbWV9IGV2ZW50TmFtZSAtIEV2ZW50IG5hbWUuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzc0V2ZW50Q2FsbGJhY2t9IGNhbGxiYWNrIC0gRXZlbnQgY2FsbGJhY2suXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vcXVlcnkuanNcIikuRnJvbnRlbmRNb2RlbEV2ZW50T3B0aW9uc09iamVjdH0gb3B0aW9ucyAtIEV2ZW50IHF1ZXJ5IG9yIHJlY29yZCBwcm9qZWN0aW9uIG9wdGlvbnMuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTwoKSA9PiB2b2lkPn0gLSBVbnN1YnNjcmliZSBjYWxsYmFjay5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc3Vic2NyaWJlVG9Nb2RlbENsYXNzRXZlbnQobW9kZWxDbGFzcywgZXZlbnROYW1lLCBjYWxsYmFjaywgb3B0aW9ucykge1xuICBpZiAoZXZlbnROYW1lID09PSBcImNyZWF0ZVwiKSByZXR1cm4gYXdhaXQgbW9kZWxDbGFzcy5vbkNyZWF0ZShjYWxsYmFjaywgb3B0aW9ucylcbiAgaWYgKGV2ZW50TmFtZSA9PT0gXCJ1cGRhdGVcIikgcmV0dXJuIGF3YWl0IG1vZGVsQ2xhc3Mub25VcGRhdGUoY2FsbGJhY2ssIG9wdGlvbnMpXG4gIGlmIChldmVudE5hbWUgPT09IFwiZGVzdHJveVwiKSByZXR1cm4gYXdhaXQgbW9kZWxDbGFzcy5vbkRlc3Ryb3koY2FsbGJhY2ssIG9wdGlvbnMpXG5cbiAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBmcm9udGVuZCBtb2RlbCBjbGFzcyBldmVudDogJHtldmVudE5hbWV9YClcbn1cblxuLyoqXG4gKiBSZWFjdCBob29rIGZvciBmcm9udGVuZC1tb2RlbCBjbGFzcyBsaWZlY3ljbGUgZXZlbnRzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsQ2xhc3MgfCBudWxsIHwgdW5kZWZpbmVkfSBtb2RlbENsYXNzIC0gRnJvbnRlbmQgbW9kZWwgY2xhc3MuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZSB8IEZyb250ZW5kTW9kZWxDbGFzc0V2ZW50TmFtZVtdfSBldmVudE9yRXZlbnRzIC0gRXZlbnQgbmFtZSBvciBuYW1lcy5cbiAqIEBwYXJhbSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnRDYWxsYmFja30gY2FsbGJhY2sgLSBFdmVudCBjYWxsYmFjay5cbiAqIEBwYXJhbSB7VXNlTW9kZWxDbGFzc0V2ZW50T3B0aW9uc30gW29wdGlvbnNdIC0gSG9vayBvcHRpb25zLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU1vZGVsQ2xhc3NFdmVudChtb2RlbENsYXNzLCBldmVudE9yRXZlbnRzLCBjYWxsYmFjaywgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBhYmlsaXRpZXMsIGRlYm91bmNlID0gZmFsc2UsIG9uQ29ubmVjdGVkLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50LCAuLi5yZXN0T3B0aW9uc30gPSBvcHRpb25zXG4gIGFzc2VydE5vVW5rbm93bk9wdGlvbnMocmVzdE9wdGlvbnMpXG5cbiAgY29uc3QgcHJvamVjdGlvbktleSA9IEpTT04uc3RyaW5naWZ5KHthYmlsaXRpZXMsIHByZWxvYWQsIHF1ZXJ5OiBldmVudFF1ZXJ5RGVwZW5kZW5jeVBheWxvYWQocXVlcnkpLCBxdWVyeURhdGEsIHNlbGVjdCwgc2VsZWN0c0V4dHJhLCB3aXRoQ291bnR9KVxuICBjb25zdCBwcm9qZWN0aW9uT3B0aW9uc1JlZiA9IHVzZVJlZih7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fSlcbiAgY29uc3QgY2FsbGJhY2tSZWYgPSB1c2VSZWYoY2FsbGJhY2spXG4gIGNvbnN0IGFjdGl2ZVJlZiA9IHVzZVJlZihhY3RpdmUpXG4gIHByb2plY3Rpb25PcHRpb25zUmVmLmN1cnJlbnQgPSB7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fVxuICBjYWxsYmFja1JlZi5jdXJyZW50ID0gY2FsbGJhY2tcbiAgYWN0aXZlUmVmLmN1cnJlbnQgPSBhY3RpdmVcblxuICBjb25zdCBldmVudE5hbWVzID0gbm9ybWFsaXplRXZlbnROYW1lcyhldmVudE9yRXZlbnRzKVxuICBjb25zdCBldmVudHNLZXkgPSBldmVudE5hbWVzRGVwZW5kZW5jeUtleShldmVudE5hbWVzKVxuICBjb25zdCBldmVudENhbGxiYWNrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlZENhbGxiYWNrID0gKC8qKiBAdHlwZSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoYWN0aXZlUmVmLmN1cnJlbnQpIGNhbGxiYWNrUmVmLmN1cnJlbnQocGF5bG9hZClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09PSBcIm51bWJlclwiKSByZXR1cm4gZGVib3VuY2VGdW5jdGlvbih3cmFwcGVkQ2FsbGJhY2ssIGRlYm91bmNlKVxuICAgIGlmIChkZWJvdW5jZSkgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24od3JhcHBlZENhbGxiYWNrKVxuXG4gICAgcmV0dXJuIHdyYXBwZWRDYWxsYmFja1xuICB9LCBbZGVib3VuY2VdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhY3RpdmUgfHwgIW1vZGVsQ2xhc3MpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGxldCBjbG9zZWQgPSBmYWxzZVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8KCkgPT4gdm9pZD59ICovXG4gICAgY29uc3QgdW5zdWJzY3JpYmVDYWxsYmFja3MgPSBbXVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbkNhbGxiYWNrID0gKC8qKiBAdHlwZSB7RnJvbnRlbmRNb2RlbENsYXNzRXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoIWNsb3NlZCkgZXZlbnRDYWxsYmFjayhwYXlsb2FkKVxuICAgIH1cblxuICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZXZlbnROYW1lIG9mIGV2ZW50TmFtZXMpIHtcbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSBhd2FpdCBzdWJzY3JpYmVUb01vZGVsQ2xhc3NFdmVudChtb2RlbENsYXNzLCBldmVudE5hbWUsIHN1YnNjcmlwdGlvbkNhbGxiYWNrLCBwcm9qZWN0aW9uT3B0aW9uc1JlZi5jdXJyZW50KVxuXG4gICAgICAgIGlmIChjbG9zZWQpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmVDYWxsYmFja3MucHVzaCh1bnN1YnNjcmliZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNsb3NlZCAmJiBvbkNvbm5lY3RlZCkgb25Db25uZWN0ZWQoKVxuICAgIH0pKClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbG9zZWQgPSB0cnVlXG5cbiAgICAgIGZvciAoY29uc3QgdW5zdWJzY3JpYmUgb2YgdW5zdWJzY3JpYmVDYWxsYmFja3MpIHtcbiAgICAgICAgdW5zdWJzY3JpYmUoKVxuICAgICAgfVxuXG4gICAgICBjbGVhclBlbmRpbmdEZWJvdW5jZWRDYWxsYmFjayhldmVudENhbGxiYWNrKVxuICAgIH1cbiAgfSwgW2FjdGl2ZSwgZXZlbnRzS2V5LCBldmVudENhbGxiYWNrLCBtb2RlbENsYXNzLCBvbkNvbm5lY3RlZCwgcHJvamVjdGlvbktleV0pXG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-updated-event.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/use-updated-event.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-updated-event.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/use-updated-event.js"],"names":[],"mappings":"AAuCA;;;;;;;GAOG;AACH,4DALW,kBAAkB,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,GAAG,IAAI,GAAG,SAAS,YACvF,gCAAgC,YAChC,sBAAsB,GACpB,IAAI,CAchB;iCAlDa,cAAc,WAAW,EAAE,OAAO;oCAClC,OAAO,WAAW,EAAE,OAAO;mDAC3B,OAAO,4BAA4B,EAAE,qCAAqC;sDAC1E;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAC;8CAC1C,oCAAoC,GAAG,uCAAuC;qCAC9E,OAAO,4BAA4B,EAAE,yBAAyB;+CAC9D,CAAC,OAAO,EAAE,+BAA+B,KAAK,IAAI"}
|
|
@@ -21,6 +21,15 @@ function assertNoUnknownOptions(restOptions) {
|
|
|
21
21
|
throw new Error(`Unknown options given to useUpdatedEvent: ${unknownOptionNames.join(", ")}`);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* @param {import("./query.js").default<FrontendModelClass> | undefined} query - Event query option.
|
|
26
|
+
* @returns {import("./query.js").FrontendModelEventOptionsPayload | null} Stable dependency payload.
|
|
27
|
+
*/
|
|
28
|
+
function eventQueryDependencyPayload(query) {
|
|
29
|
+
if (!query)
|
|
30
|
+
return null;
|
|
31
|
+
return query.eventOptionsPayload();
|
|
32
|
+
}
|
|
24
33
|
/**
|
|
25
34
|
* React hook for frontend-model update events. Pass a model class for class-level
|
|
26
35
|
* update events, or a model / model array for instance-level update events.
|
|
@@ -30,11 +39,11 @@ function assertNoUnknownOptions(restOptions) {
|
|
|
30
39
|
* @returns {void}
|
|
31
40
|
*/
|
|
32
41
|
export default function useUpdatedEvent(modelClassOrModels, callback, options = {}) {
|
|
33
|
-
const { active = true, abilities, debounce = false, onConnected, preload, queryData, select, withCount, ...restOptions } = options;
|
|
42
|
+
const { active = true, abilities, debounce = false, onConnected, preload, query, queryData, select, selectsExtra, withCount, ...restOptions } = options;
|
|
34
43
|
assertNoUnknownOptions(restOptions);
|
|
35
44
|
const classModel = typeof modelClassOrModels === "function" ? modelClassOrModels : null;
|
|
36
45
|
const instanceModels = typeof modelClassOrModels === "function" ? null : modelClassOrModels;
|
|
37
|
-
const projectionOptions = { abilities, preload, queryData, select, withCount };
|
|
46
|
+
const projectionOptions = { abilities, preload, query, queryData, select, selectsExtra, withCount };
|
|
38
47
|
useModelClassEvent(classModel, "update", (payload) => {
|
|
39
48
|
callback(/** @type {FrontendModelClassUpdateEventPayload} */ (payload));
|
|
40
49
|
}, { active: active && Boolean(classModel), debounce, onConnected, ...projectionOptions });
|
|
@@ -47,12 +56,12 @@ export default function useUpdatedEvent(modelClassOrModels, callback, options =
|
|
|
47
56
|
* @returns {void}
|
|
48
57
|
*/
|
|
49
58
|
function useInstanceUpdatedEvent(modelOrModels, callback, options) {
|
|
50
|
-
const { active = true, abilities, debounce = false, onConnected, preload, queryData, select, withCount } = options;
|
|
51
|
-
const projectionKey = JSON.stringify({ abilities, preload, queryData, select, withCount });
|
|
52
|
-
const projectionOptionsRef = useRef({ abilities, preload, queryData, select, withCount });
|
|
59
|
+
const { active = true, abilities, debounce = false, onConnected, preload, query, queryData, select, selectsExtra, withCount } = options;
|
|
60
|
+
const projectionKey = JSON.stringify({ abilities, preload, query: eventQueryDependencyPayload(query), queryData, select, selectsExtra, withCount });
|
|
61
|
+
const projectionOptionsRef = useRef({ abilities, preload, query, queryData, select, selectsExtra, withCount });
|
|
53
62
|
const callbackRef = useRef(callback);
|
|
54
63
|
const activeRef = useRef(active);
|
|
55
|
-
projectionOptionsRef.current = { abilities, preload, queryData, select, withCount };
|
|
64
|
+
projectionOptionsRef.current = { abilities, preload, query, queryData, select, selectsExtra, withCount };
|
|
56
65
|
callbackRef.current = callback;
|
|
57
66
|
activeRef.current = active;
|
|
58
67
|
const modelsKey = modelsDependencyKey(modelOrModels);
|
|
@@ -102,4 +111,4 @@ function useInstanceUpdatedEvent(modelOrModels, callback, options) {
|
|
|
102
111
|
};
|
|
103
112
|
}, [active, eventCallback, modelsKey, onConnected, projectionKey]);
|
|
104
113
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXVwZGF0ZWQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnJvbnRlbmQtbW9kZWxzL3VzZS11cGRhdGVkLWV2ZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGdCQUFnQixNQUFNLFVBQVUsQ0FBQTtBQUN2QyxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFFaEQsT0FBTyw2QkFBNkIsTUFBTSx1Q0FBdUMsQ0FBQTtBQUNqRixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUE7QUFDM0UsT0FBTyxrQkFBa0IsTUFBTSw0QkFBNEIsQ0FBQTtBQUUzRCx1RUFBdUU7QUFDdkUsbUVBQW1FO0FBQ25FLGlJQUFpSTtBQUNqSSxvR0FBb0c7QUFDcEcsZ0lBQWdJO0FBQ2hJLHVHQUF1RztBQUN2RyxxR0FBcUc7QUFFckc7OztHQUdHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxXQUFXO0lBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUVuRCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQy9GLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsZUFBZSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsRUFBRTtJQUNoRixNQUFNLEVBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFN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QUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFBO0FBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IGRlYm91bmNlRnVuY3Rpb24gZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCBjbGVhclBlbmRpbmdEZWJvdW5jZWRDYWxsYmFjayBmcm9tIFwiLi9jbGVhci1wZW5kaW5nLWRlYm91bmNlZC1jYWxsYmFjay5qc1wiXG5pbXBvcnQge21vZGVsc0RlcGVuZGVuY3lLZXksIG1vZGVsc0Zyb21JbnB1dH0gZnJvbSBcIi4vZXZlbnQtaG9vay1tb2RlbHMuanNcIlxuaW1wb3J0IHVzZU1vZGVsQ2xhc3NFdmVudCBmcm9tIFwiLi91c2UtbW9kZWwtY2xhc3MtZXZlbnQuanNcIlxuXG4vKiogQHR5cGVkZWYge3R5cGVvZiBpbXBvcnQoXCIuL2Jhc2UuanNcIikuZGVmYXVsdH0gRnJvbnRlbmRNb2RlbENsYXNzICovXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBGcm9udGVuZE1vZGVsSW5zdGFuY2UgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi91c2UtbW9kZWwtY2xhc3MtZXZlbnQuanNcIikuRnJvbnRlbmRNb2RlbENyZWF0ZVVwZGF0ZUV2ZW50UGF5bG9hZH0gRnJvbnRlbmRNb2RlbENsYXNzVXBkYXRlRXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYge3tpZDogc3RyaW5nLCBtb2RlbDogRnJvbnRlbmRNb2RlbEluc3RhbmNlfX0gRnJvbnRlbmRNb2RlbEluc3RhbmNlVXBkYXRlRXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYge0Zyb250ZW5kTW9kZWxDbGFzc1VwZGF0ZUV2ZW50UGF5bG9hZCB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZVVwZGF0ZUV2ZW50UGF5bG9hZH0gRnJvbnRlbmRNb2RlbFVwZGF0ZUV2ZW50UGF5bG9hZCAqL1xuLyoqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL3VzZS1tb2RlbC1jbGFzcy1ldmVudC5qc1wiKS5Vc2VNb2RlbENsYXNzRXZlbnRPcHRpb25zfSBVc2VVcGRhdGVkRXZlbnRPcHRpb25zICovXG4vKiogQHR5cGVkZWYgeyhwYXlsb2FkOiBGcm9udGVuZE1vZGVsVXBkYXRlRXZlbnRQYXlsb2FkKSA9PiB2b2lkfSBGcm9udGVuZE1vZGVsVXBkYXRlRXZlbnRDYWxsYmFjayAqL1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsVHJhbnNwb3J0VmFsdWUgfCAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+fSByZXN0T3B0aW9ucyAtIFVua25vd24gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9Vbmtub3duT3B0aW9ucyhyZXN0T3B0aW9ucykge1xuICBjb25zdCB1bmtub3duT3B0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhyZXN0T3B0aW9ucylcblxuICBpZiAodW5rbm93bk9wdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3B0aW9ucyBnaXZlbiB0byB1c2VVcGRhdGVkRXZlbnQ6ICR7dW5rbm93bk9wdGlvbk5hbWVzLmpvaW4oXCIsIFwiKX1gKVxuICB9XG59XG5cbi8qKlxuICogUmVhY3QgaG9vayBmb3IgZnJvbnRlbmQtbW9kZWwgdXBkYXRlIGV2ZW50cy4gUGFzcyBhIG1vZGVsIGNsYXNzIGZvciBjbGFzcy1sZXZlbFxuICogdXBkYXRlIGV2ZW50cywgb3IgYSBtb2RlbCAvIG1vZGVsIGFycmF5IGZvciBpbnN0YW5jZS1sZXZlbCB1cGRhdGUgZXZlbnRzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsQ2xhc3MgfCBGcm9udGVuZE1vZGVsSW5zdGFuY2UgfCBGcm9udGVuZE1vZGVsSW5zdGFuY2VbXSB8IG51bGwgfCB1bmRlZmluZWR9IG1vZGVsQ2xhc3NPck1vZGVscyAtIE1vZGVsIGNsYXNzLCBtb2RlbCwgb3IgbW9kZWxzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsVXBkYXRlRXZlbnRDYWxsYmFja30gY2FsbGJhY2sgLSBFdmVudCBjYWxsYmFjay5cbiAqIEBwYXJhbSB7VXNlVXBkYXRlZEV2ZW50T3B0aW9uc30gW29wdGlvbnNdIC0gSG9vayBvcHRpb25zLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVVwZGF0ZWRFdmVudChtb2RlbENsYXNzT3JNb2RlbHMsIGNhbGxiYWNrLCBvcHRpb25zID0ge30pIHtcbiAgY29uc3Qge2FjdGl2ZSA9IHRydWUsIGFiaWxpdGllcywgZGVib3VuY2UgPSBmYWxzZSwgb25Db25uZWN0ZWQsIHByZWxvYWQsIHF1ZXJ5RGF0YSwgc2VsZWN0LCB3aXRoQ291bnQsIC4uLnJlc3RPcHRpb25zfSA9IG9wdGlvbnNcbiAgYXNzZXJ0Tm9Vbmtub3duT3B0aW9ucyhyZXN0T3B0aW9ucylcblxuICBjb25zdCBjbGFzc01vZGVsID0gdHlwZW9mIG1vZGVsQ2xhc3NPck1vZGVscyA9PT0gXCJmdW5jdGlvblwiID8gbW9kZWxDbGFzc09yTW9kZWxzIDogbnVsbFxuICBjb25zdCBpbnN0YW5jZU1vZGVscyA9IHR5cGVvZiBtb2RlbENsYXNzT3JNb2RlbHMgPT09IFwiZnVuY3Rpb25cIiA/IG51bGwgOiBtb2RlbENsYXNzT3JNb2RlbHNcbiAgY29uc3QgcHJvamVjdGlvbk9wdGlvbnMgPSB7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50fVxuXG4gIHVzZU1vZGVsQ2xhc3NFdmVudChjbGFzc01vZGVsLCBcInVwZGF0ZVwiLCAocGF5bG9hZCkgPT4ge1xuICAgIGNhbGxiYWNrKC8qKiBAdHlwZSB7RnJvbnRlbmRNb2RlbENsYXNzVXBkYXRlRXZlbnRQYXlsb2FkfSAqLyAocGF5bG9hZCkpXG4gIH0sIHthY3RpdmU6IGFjdGl2ZSAmJiBCb29sZWFuKGNsYXNzTW9kZWwpLCBkZWJvdW5jZSwgb25Db25uZWN0ZWQsIC4uLnByb2plY3Rpb25PcHRpb25zfSlcbiAgdXNlSW5zdGFuY2VVcGRhdGVkRXZlbnQoaW5zdGFuY2VNb2RlbHMsIGNhbGxiYWNrLCB7YWN0aXZlOiBhY3RpdmUgJiYgIWNsYXNzTW9kZWwsIGRlYm91bmNlLCBvbkNvbm5lY3RlZCwgLi4ucHJvamVjdGlvbk9wdGlvbnN9KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RnJvbnRlbmRNb2RlbEluc3RhbmNlIHwgRnJvbnRlbmRNb2RlbEluc3RhbmNlW10gfCBudWxsIHwgdW5kZWZpbmVkfSBtb2RlbE9yTW9kZWxzIC0gTW9kZWwgb3IgbW9kZWxzLlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsVXBkYXRlRXZlbnRDYWxsYmFja30gY2FsbGJhY2sgLSBFdmVudCBjYWxsYmFjay5cbiAqIEBwYXJhbSB7VXNlVXBkYXRlZEV2ZW50T3B0aW9uc30gb3B0aW9ucyAtIEhvb2sgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiB1c2VJbnN0YW5jZVVwZGF0ZWRFdmVudChtb2RlbE9yTW9kZWxzLCBjYWxsYmFjaywgb3B0aW9ucykge1xuICBjb25zdCB7YWN0aXZlID0gdHJ1ZSwgYWJpbGl0aWVzLCBkZWJvdW5jZSA9IGZhbHNlLCBvbkNvbm5lY3RlZCwgcHJlbG9hZCwgcXVlcnlEYXRhLCBzZWxlY3QsIHdpdGhDb3VudH0gPSBvcHRpb25zXG4gIGNvbnN0IHByb2plY3Rpb25LZXkgPSBKU09OLnN0cmluZ2lmeSh7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeURhdGEsIHNlbGVjdCwgd2l0aENvdW50fSlcbiAgY29uc3QgcHJvamVjdGlvbk9wdGlvbnNSZWYgPSB1c2VSZWYoe2FiaWxpdGllcywgcHJlbG9hZCwgcXVlcnlEYXRhLCBzZWxlY3QsIHdpdGhDb3VudH0pXG4gIGNvbnN0IGNhbGxiYWNrUmVmID0gdXNlUmVmKGNhbGxiYWNrKVxuICBjb25zdCBhY3RpdmVSZWYgPSB1c2VSZWYoYWN0aXZlKVxuICBwcm9qZWN0aW9uT3B0aW9uc1JlZi5jdXJyZW50ID0ge2FiaWxpdGllcywgcHJlbG9hZCwgcXVlcnlEYXRhLCBzZWxlY3QsIHdpdGhDb3VudH1cbiAgY2FsbGJhY2tSZWYuY3VycmVudCA9IGNhbGxiYWNrXG4gIGFjdGl2ZVJlZi5jdXJyZW50ID0gYWN0aXZlXG5cbiAgY29uc3QgbW9kZWxzS2V5ID0gbW9kZWxzRGVwZW5kZW5jeUtleShtb2RlbE9yTW9kZWxzKVxuICBjb25zdCBldmVudENhbGxiYWNrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlZENhbGxiYWNrID0gKC8qKiBAdHlwZSB7RnJvbnRlbmRNb2RlbEluc3RhbmNlVXBkYXRlRXZlbnRQYXlsb2FkfSAqLyBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoYWN0aXZlUmVmLmN1cnJlbnQpIGNhbGxiYWNrUmVmLmN1cnJlbnQocGF5bG9hZClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09PSBcIm51bWJlclwiKSByZXR1cm4gZGVib3VuY2VGdW5jdGlvbih3cmFwcGVkQ2FsbGJhY2ssIGRlYm91bmNlKVxuICAgIGlmIChkZWJvdW5jZSkgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24od3JhcHBlZENhbGxiYWNrKVxuXG4gICAgcmV0dXJuIHdyYXBwZWRDYWxsYmFja1xuICB9LCBbZGVib3VuY2VdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhY3RpdmUpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IG1vZGVscyA9IG1vZGVsc0Zyb21JbnB1dChtb2RlbE9yTW9kZWxzKVxuICAgIGlmIChtb2RlbHMubGVuZ3RoIDwgMSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgbGV0IGNsb3NlZCA9IGZhbHNlXG4gICAgLyoqIEB0eXBlIHtBcnJheTwoKSA9PiB2b2lkPn0gKi9cbiAgICBjb25zdCB1bnN1YnNjcmliZUNhbGxiYWNrcyA9IFtdXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uQ2FsbGJhY2sgPSAoLyoqIEB0eXBlIHtGcm9udGVuZE1vZGVsSW5zdGFuY2VVcGRhdGVFdmVudFBheWxvYWR9ICovIHBheWxvYWQpID0+IHtcbiAgICAgIGlmICghY2xvc2VkKSBldmVudENhbGxiYWNrKHBheWxvYWQpXG4gICAgfVxuXG4gICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBtb2RlbCBvZiBtb2RlbHMpIHtcbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSBhd2FpdCBtb2RlbC5vblVwZGF0ZShzdWJzY3JpcHRpb25DYWxsYmFjaywgcHJvamVjdGlvbk9wdGlvbnNSZWYuY3VycmVudClcblxuICAgICAgICBpZiAoY2xvc2VkKSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmUoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVuc3Vic2NyaWJlQ2FsbGJhY2tzLnB1c2godW5zdWJzY3JpYmUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFjbG9zZWQgJiYgb25Db25uZWN0ZWQpIG9uQ29ubmVjdGVkKClcbiAgICB9KSgpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xvc2VkID0gdHJ1ZVxuXG4gICAgICBmb3IgKGNvbnN0IHVuc3Vic2NyaWJlIG9mIHVuc3Vic2NyaWJlQ2FsbGJhY2tzKSB7XG4gICAgICAgIHVuc3Vic2NyaWJlKClcbiAgICAgIH1cblxuICAgICAgY2xlYXJQZW5kaW5nRGVib3VuY2VkQ2FsbGJhY2soZXZlbnRDYWxsYmFjaylcbiAgICB9XG4gIH0sIFthY3RpdmUsIGV2ZW50Q2FsbGJhY2ssIG1vZGVsc0tleSwgb25Db25uZWN0ZWQsIHByb2plY3Rpb25LZXldKVxufVxuIl19
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXVwZGF0ZWQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnJvbnRlbmQtbW9kZWxzL3VzZS11cGRhdGVkLWV2ZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGdCQUFnQixNQUFNLFVBQVUsQ0FBQTtBQUN2QyxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFFaEQsT0FBTyw2QkFBNkIsTUFBTSx1Q0FBdUMsQ0FBQTtBQUNqRixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUE7QUFDM0UsT0FBTyxrQkFBa0IsTUFBTSw0QkFBNEIsQ0FBQTtBQUUzRCx1RUFBdUU7QUFDdkUsbUVBQW1FO0FBQ25FLGlJQUFpSTtBQUNqSSxvR0FBb0c7QUFDcEcsZ0lBQWdJO0FBQ2hJLHVHQUF1RztBQUN2RyxxR0FBcUc7QUFFckc7OztHQUdHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxXQUFXO0lBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUVuRCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQy9GLENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUywyQkFBMkIsQ0FBQyxLQUFLO0lBQ3hDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFFdkIsT0FBTyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtBQUNwQyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsZUFBZSxDQUFDLGtCQUFrQixF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O1lBRUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxXQUFXO2dCQUFFLFdBQVcsRUFBRSxDQUFBO1FBQzNDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFFSixPQUFPLEdBQUcsRUFBRTtZQUNWLE1BQU0sR0FBRyxJQUFJLENBQUE7WUFFYixLQUFLLE1BQU0sV0FBVyxJQUFJLG9CQUFvQixFQUFFLENBQUM7Z0JBQy9DLFdBQVcsRUFBRSxDQUFBO1lBQ2YsQ0FBQztZQUVELDZCQUE2QixDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzlDLENBQUMsQ0FBQTtJQUNILENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFBO0FBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IGRlYm91bmNlRnVuY3Rpb24gZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCBjbGVhclBlbmRpbmdEZWJvdW5jZWRDYWxsYmFjayBmcm9tIFwiLi9jbGVhci1wZW5kaW5nLWRlYm91bmNlZC1jYWxsYmFjay5qc1wiXG5pbXBvcnQge21vZGVsc0RlcGVuZGVuY3lLZXksIG1vZGVsc0Zyb21JbnB1dH0gZnJvbSBcIi4vZXZlbnQtaG9vay1tb2RlbHMuanNcIlxuaW1wb3J0IHVzZU1vZGVsQ2xhc3NFdmVudCBmcm9tIFwiLi91c2UtbW9kZWwtY2xhc3MtZXZlbnQuanNcIlxuXG4vKiogQHR5cGVkZWYge3R5cGVvZiBpbXBvcnQoXCIuL2Jhc2UuanNcIikuZGVmYXVsdH0gRnJvbnRlbmRNb2RlbENsYXNzICovXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBGcm9udGVuZE1vZGVsSW5zdGFuY2UgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi91c2UtbW9kZWwtY2xhc3MtZXZlbnQuanNcIikuRnJvbnRlbmRNb2RlbENyZWF0ZVVwZGF0ZUV2ZW50UGF5bG9hZH0gRnJvbnRlbmRNb2RlbENsYXNzVXBkYXRlRXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYge3tpZDogc3RyaW5nLCBtb2RlbDogRnJvbnRlbmRNb2RlbEluc3RhbmNlfX0gRnJvbnRlbmRNb2RlbEluc3RhbmNlVXBkYXRlRXZlbnRQYXlsb2FkICovXG4vKiogQHR5cGVkZWYge0Zyb250ZW5kTW9kZWxDbGFzc1VwZGF0ZUV2ZW50UGF5bG9hZCB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZVVwZGF0ZUV2ZW50UGF5bG9hZH0gRnJvbnRlbmRNb2RlbFVwZGF0ZUV2ZW50UGF5bG9hZCAqL1xuLyoqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL3VzZS1tb2RlbC1jbGFzcy1ldmVudC5qc1wiKS5Vc2VNb2RlbENsYXNzRXZlbnRPcHRpb25zfSBVc2VVcGRhdGVkRXZlbnRPcHRpb25zICovXG4vKiogQHR5cGVkZWYgeyhwYXlsb2FkOiBGcm9udGVuZE1vZGVsVXBkYXRlRXZlbnRQYXlsb2FkKSA9PiB2b2lkfSBGcm9udGVuZE1vZGVsVXBkYXRlRXZlbnRDYWxsYmFjayAqL1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsVHJhbnNwb3J0VmFsdWUgfCAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+fSByZXN0T3B0aW9ucyAtIFVua25vd24gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9Vbmtub3duT3B0aW9ucyhyZXN0T3B0aW9ucykge1xuICBjb25zdCB1bmtub3duT3B0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhyZXN0T3B0aW9ucylcblxuICBpZiAodW5rbm93bk9wdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3B0aW9ucyBnaXZlbiB0byB1c2VVcGRhdGVkRXZlbnQ6ICR7dW5rbm93bk9wdGlvbk5hbWVzLmpvaW4oXCIsIFwiKX1gKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3F1ZXJ5LmpzXCIpLmRlZmF1bHQ8RnJvbnRlbmRNb2RlbENsYXNzPiB8IHVuZGVmaW5lZH0gcXVlcnkgLSBFdmVudCBxdWVyeSBvcHRpb24uXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9xdWVyeS5qc1wiKS5Gcm9udGVuZE1vZGVsRXZlbnRPcHRpb25zUGF5bG9hZCB8IG51bGx9IFN0YWJsZSBkZXBlbmRlbmN5IHBheWxvYWQuXG4gKi9cbmZ1bmN0aW9uIGV2ZW50UXVlcnlEZXBlbmRlbmN5UGF5bG9hZChxdWVyeSkge1xuICBpZiAoIXF1ZXJ5KSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiBxdWVyeS5ldmVudE9wdGlvbnNQYXlsb2FkKClcbn1cblxuLyoqXG4gKiBSZWFjdCBob29rIGZvciBmcm9udGVuZC1tb2RlbCB1cGRhdGUgZXZlbnRzLiBQYXNzIGEgbW9kZWwgY2xhc3MgZm9yIGNsYXNzLWxldmVsXG4gKiB1cGRhdGUgZXZlbnRzLCBvciBhIG1vZGVsIC8gbW9kZWwgYXJyYXkgZm9yIGluc3RhbmNlLWxldmVsIHVwZGF0ZSBldmVudHMuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxDbGFzcyB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZSB8IEZyb250ZW5kTW9kZWxJbnN0YW5jZVtdIHwgbnVsbCB8IHVuZGVmaW5lZH0gbW9kZWxDbGFzc09yTW9kZWxzIC0gTW9kZWwgY2xhc3MsIG1vZGVsLCBvciBtb2RlbHMuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxVcGRhdGVFdmVudENhbGxiYWNrfSBjYWxsYmFjayAtIEV2ZW50IGNhbGxiYWNrLlxuICogQHBhcmFtIHtVc2VVcGRhdGVkRXZlbnRPcHRpb25zfSBbb3B0aW9uc10gLSBIb29rIG9wdGlvbnMuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlVXBkYXRlZEV2ZW50KG1vZGVsQ2xhc3NPck1vZGVscywgY2FsbGJhY2ssIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7YWN0aXZlID0gdHJ1ZSwgYWJpbGl0aWVzLCBkZWJvdW5jZSA9IGZhbHNlLCBvbkNvbm5lY3RlZCwgcHJlbG9hZCwgcXVlcnksIHF1ZXJ5RGF0YSwgc2VsZWN0LCBzZWxlY3RzRXh0cmEsIHdpdGhDb3VudCwgLi4ucmVzdE9wdGlvbnN9ID0gb3B0aW9uc1xuICBhc3NlcnROb1Vua25vd25PcHRpb25zKHJlc3RPcHRpb25zKVxuXG4gIGNvbnN0IGNsYXNzTW9kZWwgPSB0eXBlb2YgbW9kZWxDbGFzc09yTW9kZWxzID09PSBcImZ1bmN0aW9uXCIgPyBtb2RlbENsYXNzT3JNb2RlbHMgOiBudWxsXG4gIGNvbnN0IGluc3RhbmNlTW9kZWxzID0gdHlwZW9mIG1vZGVsQ2xhc3NPck1vZGVscyA9PT0gXCJmdW5jdGlvblwiID8gbnVsbCA6IG1vZGVsQ2xhc3NPck1vZGVsc1xuICBjb25zdCBwcm9qZWN0aW9uT3B0aW9ucyA9IHthYmlsaXRpZXMsIHByZWxvYWQsIHF1ZXJ5LCBxdWVyeURhdGEsIHNlbGVjdCwgc2VsZWN0c0V4dHJhLCB3aXRoQ291bnR9XG5cbiAgdXNlTW9kZWxDbGFzc0V2ZW50KGNsYXNzTW9kZWwsIFwidXBkYXRlXCIsIChwYXlsb2FkKSA9PiB7XG4gICAgY2FsbGJhY2soLyoqIEB0eXBlIHtGcm9udGVuZE1vZGVsQ2xhc3NVcGRhdGVFdmVudFBheWxvYWR9ICovIChwYXlsb2FkKSlcbiAgfSwge2FjdGl2ZTogYWN0aXZlICYmIEJvb2xlYW4oY2xhc3NNb2RlbCksIGRlYm91bmNlLCBvbkNvbm5lY3RlZCwgLi4ucHJvamVjdGlvbk9wdGlvbnN9KVxuICB1c2VJbnN0YW5jZVVwZGF0ZWRFdmVudChpbnN0YW5jZU1vZGVscywgY2FsbGJhY2ssIHthY3RpdmU6IGFjdGl2ZSAmJiAhY2xhc3NNb2RlbCwgZGVib3VuY2UsIG9uQ29ubmVjdGVkLCAuLi5wcm9qZWN0aW9uT3B0aW9uc30pXG59XG5cbi8qKlxuICogQHBhcmFtIHtGcm9udGVuZE1vZGVsSW5zdGFuY2UgfCBGcm9udGVuZE1vZGVsSW5zdGFuY2VbXSB8IG51bGwgfCB1bmRlZmluZWR9IG1vZGVsT3JNb2RlbHMgLSBNb2RlbCBvciBtb2RlbHMuXG4gKiBAcGFyYW0ge0Zyb250ZW5kTW9kZWxVcGRhdGVFdmVudENhbGxiYWNrfSBjYWxsYmFjayAtIEV2ZW50IGNhbGxiYWNrLlxuICogQHBhcmFtIHtVc2VVcGRhdGVkRXZlbnRPcHRpb25zfSBvcHRpb25zIC0gSG9vayBvcHRpb25zLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHVzZUluc3RhbmNlVXBkYXRlZEV2ZW50KG1vZGVsT3JNb2RlbHMsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBhYmlsaXRpZXMsIGRlYm91bmNlID0gZmFsc2UsIG9uQ29ubmVjdGVkLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fSA9IG9wdGlvbnNcbiAgY29uc3QgcHJvamVjdGlvbktleSA9IEpTT04uc3RyaW5naWZ5KHthYmlsaXRpZXMsIHByZWxvYWQsIHF1ZXJ5OiBldmVudFF1ZXJ5RGVwZW5kZW5jeVBheWxvYWQocXVlcnkpLCBxdWVyeURhdGEsIHNlbGVjdCwgc2VsZWN0c0V4dHJhLCB3aXRoQ291bnR9KVxuICBjb25zdCBwcm9qZWN0aW9uT3B0aW9uc1JlZiA9IHVzZVJlZih7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fSlcbiAgY29uc3QgY2FsbGJhY2tSZWYgPSB1c2VSZWYoY2FsbGJhY2spXG4gIGNvbnN0IGFjdGl2ZVJlZiA9IHVzZVJlZihhY3RpdmUpXG4gIHByb2plY3Rpb25PcHRpb25zUmVmLmN1cnJlbnQgPSB7YWJpbGl0aWVzLCBwcmVsb2FkLCBxdWVyeSwgcXVlcnlEYXRhLCBzZWxlY3QsIHNlbGVjdHNFeHRyYSwgd2l0aENvdW50fVxuICBjYWxsYmFja1JlZi5jdXJyZW50ID0gY2FsbGJhY2tcbiAgYWN0aXZlUmVmLmN1cnJlbnQgPSBhY3RpdmVcblxuICBjb25zdCBtb2RlbHNLZXkgPSBtb2RlbHNEZXBlbmRlbmN5S2V5KG1vZGVsT3JNb2RlbHMpXG4gIGNvbnN0IGV2ZW50Q2FsbGJhY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVkQ2FsbGJhY2sgPSAoLyoqIEB0eXBlIHtGcm9udGVuZE1vZGVsSW5zdGFuY2VVcGRhdGVFdmVudFBheWxvYWR9ICovIHBheWxvYWQpID0+IHtcbiAgICAgIGlmIChhY3RpdmVSZWYuY3VycmVudCkgY2FsbGJhY2tSZWYuY3VycmVudChwYXlsb2FkKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGVib3VuY2UgPT09IFwibnVtYmVyXCIpIHJldHVybiBkZWJvdW5jZUZ1bmN0aW9uKHdyYXBwZWRDYWxsYmFjaywgZGVib3VuY2UpXG4gICAgaWYgKGRlYm91bmNlKSByZXR1cm4gZGVib3VuY2VGdW5jdGlvbih3cmFwcGVkQ2FsbGJhY2spXG5cbiAgICByZXR1cm4gd3JhcHBlZENhbGxiYWNrXG4gIH0sIFtkZWJvdW5jZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgbW9kZWxzID0gbW9kZWxzRnJvbUlucHV0KG1vZGVsT3JNb2RlbHMpXG4gICAgaWYgKG1vZGVscy5sZW5ndGggPCAxKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgY2xvc2VkID0gZmFsc2VcbiAgICAvKiogQHR5cGUge0FycmF5PCgpID0+IHZvaWQ+fSAqL1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlQ2FsbGJhY2tzID0gW11cbiAgICBjb25zdCBzdWJzY3JpcHRpb25DYWxsYmFjayA9ICgvKiogQHR5cGUge0Zyb250ZW5kTW9kZWxJbnN0YW5jZVVwZGF0ZUV2ZW50UGF5bG9hZH0gKi8gcGF5bG9hZCkgPT4ge1xuICAgICAgaWYgKCFjbG9zZWQpIGV2ZW50Q2FsbGJhY2socGF5bG9hZClcbiAgICB9XG5cbiAgICB2b2lkIChhc3luYyAoKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIG1vZGVscykge1xuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IGF3YWl0IG1vZGVsLm9uVXBkYXRlKHN1YnNjcmlwdGlvbkNhbGxiYWNrLCBwcm9qZWN0aW9uT3B0aW9uc1JlZi5jdXJyZW50KVxuXG4gICAgICAgIGlmIChjbG9zZWQpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmVDYWxsYmFja3MucHVzaCh1bnN1YnNjcmliZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNsb3NlZCAmJiBvbkNvbm5lY3RlZCkgb25Db25uZWN0ZWQoKVxuICAgIH0pKClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbG9zZWQgPSB0cnVlXG5cbiAgICAgIGZvciAoY29uc3QgdW5zdWJzY3JpYmUgb2YgdW5zdWJzY3JpYmVDYWxsYmFja3MpIHtcbiAgICAgICAgdW5zdWJzY3JpYmUoKVxuICAgICAgfVxuXG4gICAgICBjbGVhclBlbmRpbmdEZWJvdW5jZWRDYWxsYmFjayhldmVudENhbGxiYWNrKVxuICAgIH1cbiAgfSwgW2FjdGl2ZSwgZXZlbnRDYWxsYmFjaywgbW9kZWxzS2V5LCBvbkNvbm5lY3RlZCwgcHJvamVjdGlvbktleV0pXG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @typedef {{action?: string, id?: string | number, record?: import("./query.js").FrontendModelTransportValue, [key: string]: import("./query.js").FrontendModelTransportValue | undefined}} FrontendModelLifecycleBroadcastBody
|
|
2
|
+
* @typedef {{action?: string, id?: string | number, matchedEventFilterKeys?: string[], record?: import("./query.js").FrontendModelTransportValue, [key: string]: import("./query.js").FrontendModelTransportValue | string[] | undefined}} FrontendModelLifecycleBroadcastBody
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* @typedef {{headers?: () => Record<string, string | string[] | undefined>, remoteAddress?: () => string | undefined}} FrontendModelWebsocketUpgradeRequest
|
|
@@ -13,10 +13,13 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Auth model: subscribe-time only. `canSubscribe` resolves the caller's
|
|
15
15
|
* ability once, checks that at least one `allow` rule exists for
|
|
16
|
-
* `read` on the requested model class, and then delivers
|
|
17
|
-
* lifecycle
|
|
16
|
+
* `read` on the requested model class, and then delivers future
|
|
17
|
+
* lifecycle broadcasts for that model without re-authorizing per event.
|
|
18
18
|
* This matches the explicit design decision in Phase 3 to trade
|
|
19
19
|
* per-record visibility guarantees for massively cheaper broadcast fan-out.
|
|
20
|
+
* Subscriber-provided event filters can still narrow which create/update
|
|
21
|
+
* events are delivered, but they are matching predicates rather than
|
|
22
|
+
* per-record authorization checks.
|
|
20
23
|
*
|
|
21
24
|
* Wire: subscribe with `subscribeChannel("frontend-models", {params: {model: ModelName}})`.
|
|
22
25
|
* Backend publishes `{action, id, record}` via
|
|
@@ -36,6 +39,14 @@ export default class FrontendModelWebsocketChannel extends VelociousWebsocketCha
|
|
|
36
39
|
deliverBroadcast(body: FrontendModelLifecycleBroadcastBody, meta?: {
|
|
37
40
|
eventId?: string;
|
|
38
41
|
}): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* @param {FrontendModelLifecycleBroadcastBody} body - Broadcast body.
|
|
44
|
+
* @param {{eventId?: string}} [meta] - Optional event metadata.
|
|
45
|
+
* @returns {Promise<void>} Resolves after delivery.
|
|
46
|
+
*/
|
|
47
|
+
_deliverBroadcast(body: FrontendModelLifecycleBroadcastBody, meta?: {
|
|
48
|
+
eventId?: string;
|
|
49
|
+
}): Promise<void>;
|
|
39
50
|
/**
|
|
40
51
|
* @param {Record<string, import("./query.js").FrontendModelTransportValue>} broadcastParams - Params from `broadcastToChannel`.
|
|
41
52
|
* @returns {boolean} Whether the broadcast matches this subscriber's model.
|
|
@@ -45,16 +56,44 @@ export default class FrontendModelWebsocketChannel extends VelociousWebsocketCha
|
|
|
45
56
|
_modelName(): string | null;
|
|
46
57
|
/** @returns {boolean} - Whether this subscription requested per-event record projection. */
|
|
47
58
|
_hasProjectionParams(): boolean;
|
|
59
|
+
/** @returns {boolean} - Whether this subscription requested event query filters. */
|
|
60
|
+
_hasEventFilterParams(): boolean;
|
|
61
|
+
/** @returns {boolean} - Whether unfiltered callbacks should receive every event. */
|
|
62
|
+
_hasUnfilteredEventDelivery(): boolean;
|
|
63
|
+
/** @returns {import("./query.js").FrontendModelEventFilterPayloadEntry[]} - Valid event filters. */
|
|
64
|
+
_eventFilters(): import("./query.js").FrontendModelEventFilterPayloadEntry[];
|
|
65
|
+
/** @returns {Promise<typeof import("../frontend-model-controller.js").default>} - Frontend model controller class. */
|
|
66
|
+
_frontendModelControllerClass(): Promise<typeof import("../frontend-model-controller.js").default>;
|
|
48
67
|
/**
|
|
49
68
|
* @param {typeof import("../frontend-model-controller.js").default} FrontendModelController - Server-side frontend-model controller class.
|
|
69
|
+
* @param {Record<string, unknown>} [params] - Optional params override.
|
|
50
70
|
* @returns {import("../frontend-model-controller.js").default} - Synthetic controller used for resource serialization.
|
|
51
71
|
*/
|
|
52
|
-
_frontendModelController(FrontendModelController: typeof import("../frontend-model-controller.js").default): import("../frontend-model-controller.js").default;
|
|
72
|
+
_frontendModelController(FrontendModelController: typeof import("../frontend-model-controller.js").default, params?: Record<string, unknown>): import("../frontend-model-controller.js").default;
|
|
53
73
|
/**
|
|
54
74
|
* @param {string | number} id - Event record id.
|
|
75
|
+
* @param {typeof import("../frontend-model-controller.js").default} FrontendModelController - Server-side frontend-model controller class.
|
|
76
|
+
* @returns {Promise<string[]>} - Event filter keys matched by the record.
|
|
77
|
+
*/
|
|
78
|
+
_matchedEventFilterKeysForEventId(id: string | number, FrontendModelController: typeof import("../frontend-model-controller.js").default): Promise<string[]>;
|
|
79
|
+
/**
|
|
80
|
+
* @param {object} args - Filter args.
|
|
81
|
+
* @param {typeof import("../frontend-model-controller.js").default} args.FrontendModelController - Server-side frontend-model controller class.
|
|
82
|
+
* @param {import("./query.js").FrontendModelEventFilterPayloadEntry} args.eventFilter - Event filter payload.
|
|
83
|
+
* @param {string | number} args.id - Event record id.
|
|
84
|
+
* @returns {Promise<boolean>} Whether the record matches the filter.
|
|
85
|
+
*/
|
|
86
|
+
_eventMatchesFilter({ FrontendModelController, eventFilter, id }: {
|
|
87
|
+
FrontendModelController: typeof import("../frontend-model-controller.js").default;
|
|
88
|
+
eventFilter: import("./query.js").FrontendModelEventFilterPayloadEntry;
|
|
89
|
+
id: string | number;
|
|
90
|
+
}): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* @param {string | number} id - Event record id.
|
|
93
|
+
* @param {typeof import("../frontend-model-controller.js").default} FrontendModelController - Server-side frontend-model controller class.
|
|
55
94
|
* @returns {Promise<Record<string, import("./query.js").FrontendModelTransportValue> | null>} - Serialized projected record.
|
|
56
95
|
*/
|
|
57
|
-
_projectedRecordForEventId(id: string | number): Promise<Record<string, import("./query.js").FrontendModelTransportValue> | null>;
|
|
96
|
+
_projectedRecordForEventId(id: string | number, FrontendModelController: typeof import("../frontend-model-controller.js").default): Promise<Record<string, import("./query.js").FrontendModelTransportValue> | null>;
|
|
58
97
|
/**
|
|
59
98
|
* Minimal Request-like stub used only for ability resolution. Avoids
|
|
60
99
|
* importing `WebsocketRequest` here because its `node:querystring`
|
|
@@ -72,8 +111,9 @@ export default class FrontendModelWebsocketChannel extends VelociousWebsocketCha
|
|
|
72
111
|
export type FrontendModelLifecycleBroadcastBody = {
|
|
73
112
|
action?: string;
|
|
74
113
|
id?: string | number;
|
|
114
|
+
matchedEventFilterKeys?: string[];
|
|
75
115
|
record?: import("./query.js").FrontendModelTransportValue;
|
|
76
|
-
[key: string]: import("./query.js").FrontendModelTransportValue | undefined;
|
|
116
|
+
[key: string]: import("./query.js").FrontendModelTransportValue | string[] | undefined;
|
|
77
117
|
};
|
|
78
118
|
export type FrontendModelWebsocketUpgradeRequest = {
|
|
79
119
|
headers?: () => Record<string, string | string[] | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/websocket-channel.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/frontend-models/websocket-channel.js"],"names":[],"mappings":"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"}
|