velocious 1.0.663 → 1.0.665
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 +2 -2
- package/build/background-jobs/client.js +36 -6
- package/build/configuration-types.js +3 -3
- package/build/database/query/alter-table-base.js +11 -1
- package/build/src/background-jobs/client.d.ts.map +1 -1
- package/build/src/background-jobs/client.js +35 -6
- package/build/src/configuration-types.d.ts +8 -4
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +4 -4
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +12 -2
- package/build/src/sync/sync-api-client.d.ts +36 -10
- package/build/src/sync/sync-api-client.d.ts.map +1 -1
- package/build/src/sync/sync-api-client.js +58 -14
- package/build/src/sync/sync-client-types.d.ts +41 -2
- package/build/src/sync/sync-client-types.d.ts.map +1 -1
- package/build/src/sync/sync-client-types.js +20 -3
- package/build/src/sync/sync-client.d.ts +112 -3
- package/build/src/sync/sync-client.d.ts.map +1 -1
- package/build/src/sync/sync-client.js +306 -60
- package/build/src/sync/sync-publisher-types.d.ts +36 -3
- package/build/src/sync/sync-publisher-types.d.ts.map +1 -1
- package/build/src/sync/sync-publisher-types.js +16 -2
- package/build/src/sync/sync-publisher.d.ts +22 -3
- package/build/src/sync/sync-publisher.d.ts.map +1 -1
- package/build/src/sync/sync-publisher.js +134 -13
- package/build/src/sync/sync-realtime-bridge.d.ts +11 -5
- package/build/src/sync/sync-realtime-bridge.d.ts.map +1 -1
- package/build/src/sync/sync-realtime-bridge.js +37 -13
- package/build/src/sync/sync-scope-store.d.ts +32 -0
- package/build/src/sync/sync-scope-store.d.ts.map +1 -1
- package/build/src/sync/sync-scope-store.js +74 -4
- package/build/sync/sync-api-client.js +58 -13
- package/build/sync/sync-client-types.js +22 -2
- package/build/sync/sync-client.js +333 -63
- package/build/sync/sync-publisher-types.js +17 -1
- package/build/sync/sync-publisher.js +156 -15
- package/build/sync/sync-realtime-bridge.js +37 -12
- package/build/sync/sync-scope-store.js +79 -3
- package/package.json +1 -1
- package/src/background-jobs/client.js +36 -6
- package/src/configuration-types.js +3 -3
- package/src/database/query/alter-table-base.js +11 -1
- package/src/sync/sync-api-client.js +58 -13
- package/src/sync/sync-client-types.js +22 -2
- package/src/sync/sync-client.js +333 -63
- package/src/sync/sync-publisher-types.js +17 -1
- package/src/sync/sync-publisher.js +156 -15
- package/src/sync/sync-realtime-bridge.js +37 -12
- package/src/sync/sync-scope-store.js +79 -3
|
@@ -210,6 +210,24 @@ export type SyncClientOptions = {
|
|
|
210
210
|
*/
|
|
211
211
|
tenantHandle?: import("../tenants/tenant-handle.js").default;
|
|
212
212
|
};
|
|
213
|
+
export type SyncClientScopeCleanup = (args: {
|
|
214
|
+
connection: import("../database/drivers/base.js").default | null;
|
|
215
|
+
scopes: SerializedSyncScope[];
|
|
216
|
+
}) => Promise<void> | void;
|
|
217
|
+
export type SyncClientStopOptions = {
|
|
218
|
+
/**
|
|
219
|
+
* - App-owned local-row purge run atomically with resetScopes.
|
|
220
|
+
*/
|
|
221
|
+
cleanup?: SyncClientScopeCleanup;
|
|
222
|
+
/**
|
|
223
|
+
* - Selected scope rows to deactivate and restart from a null cursor.
|
|
224
|
+
*/
|
|
225
|
+
resetScopes?: SerializedSyncScope[];
|
|
226
|
+
};
|
|
227
|
+
export type SyncClientReplaceIdentityOptions = SyncClientStopOptions & {
|
|
228
|
+
replace: () => Promise<void> | void;
|
|
229
|
+
subscribeUserScope?: boolean;
|
|
230
|
+
};
|
|
213
231
|
export type SyncClientConfig = {
|
|
214
232
|
/**
|
|
215
233
|
* - Resolves the auth token sent with sync requests.
|
|
@@ -242,6 +260,8 @@ export type SyncClientConfig = {
|
|
|
242
260
|
*/
|
|
243
261
|
postChanges: (payload: import("./sync-api-client-types.js").SyncChangesRequest & {
|
|
244
262
|
scope: SerializedSyncScope;
|
|
263
|
+
}, options?: {
|
|
264
|
+
signal?: AbortSignal;
|
|
245
265
|
}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>;
|
|
246
266
|
/**
|
|
247
267
|
* - Posts one replay request.
|
|
@@ -249,6 +269,8 @@ export type SyncClientConfig = {
|
|
|
249
269
|
postReplay: (payload: {
|
|
250
270
|
authenticationToken: string;
|
|
251
271
|
syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>;
|
|
272
|
+
}, options?: {
|
|
273
|
+
signal?: AbortSignal;
|
|
252
274
|
}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>;
|
|
253
275
|
/**
|
|
254
276
|
* - Realtime push configuration consumed by `subscribeRealtime(...)`.
|
|
@@ -372,6 +394,23 @@ export type SyncClientConfig = {
|
|
|
372
394
|
* @property {string} [databaseIdentifier] - Tenant database identifier; required with tenantHandle.
|
|
373
395
|
* @property {import("../tenants/tenant-handle.js").default} [tenantHandle] - Immutable tenant handle binding every local sync state transition.
|
|
374
396
|
*/
|
|
397
|
+
/**
|
|
398
|
+
* Local cleanup hook that runs transactionally with selected scope resets.
|
|
399
|
+
* @typedef {(args: {connection: import("../database/drivers/base.js").default | null, scopes: SerializedSyncScope[]}) => Promise<void> | void} SyncClientScopeCleanup
|
|
400
|
+
*/
|
|
401
|
+
/**
|
|
402
|
+
* Options for stopping and resetting a sync client lifecycle.
|
|
403
|
+
* @typedef {object} SyncClientStopOptions
|
|
404
|
+
* @property {SyncClientScopeCleanup} [cleanup] - App-owned local-row purge run atomically with resetScopes.
|
|
405
|
+
* @property {SerializedSyncScope[]} [resetScopes] - Selected scope rows to deactivate and restart from a null cursor.
|
|
406
|
+
*/
|
|
407
|
+
/**
|
|
408
|
+
* Options for atomically replacing the external identity read by sync.client.
|
|
409
|
+
* @typedef {SyncClientStopOptions & {
|
|
410
|
+
* replace: () => Promise<void> | void,
|
|
411
|
+
* subscribeUserScope?: boolean
|
|
412
|
+
* }} SyncClientReplaceIdentityOptions
|
|
413
|
+
*/
|
|
375
414
|
/**
|
|
376
415
|
* Internal derived sync client configuration built by the SyncClient
|
|
377
416
|
* constructor — not an app-facing API.
|
|
@@ -382,8 +421,8 @@ export type SyncClientConfig = {
|
|
|
382
421
|
* @property {() => boolean | Promise<boolean>} [isOnline] - Connectivity gate for pulls and replays. Defaults to always online.
|
|
383
422
|
* @property {(args: {scope: SerializedSyncScope}) => string | null | Promise<string | null>} [legacyCursor] - Seeds a newly declared scope's cursor (e.g. from a pre-scope cursor store) so devices don't re-pull everything.
|
|
384
423
|
* @property {(error: Error) => void} [onError] - Reports background replay/pull failures. Defaults to rethrowing.
|
|
385
|
-
* @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
|
|
386
|
-
* @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
|
|
424
|
+
* @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
|
|
425
|
+
* @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
|
|
387
426
|
* @property {import("../configuration-types.js").VelociousSyncClientRealtimeConfiguration} [realtime] - Realtime push configuration consumed by `subscribeRealtime(...)`.
|
|
388
427
|
* @property {import("../remote-request-context.js").RemoteRequestContext} requestContext - Immutable scalar context captured for this client.
|
|
389
428
|
* @property {Record<string, SyncClientResourceConfig>} resources - Derived resource policies keyed by resource/model name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,23 @@
|
|
|
88
88
|
* @property {string} [databaseIdentifier] - Tenant database identifier; required with tenantHandle.
|
|
89
89
|
* @property {import("../tenants/tenant-handle.js").default} [tenantHandle] - Immutable tenant handle binding every local sync state transition.
|
|
90
90
|
*/
|
|
91
|
+
/**
|
|
92
|
+
* Local cleanup hook that runs transactionally with selected scope resets.
|
|
93
|
+
* @typedef {(args: {connection: import("../database/drivers/base.js").default | null, scopes: SerializedSyncScope[]}) => Promise<void> | void} SyncClientScopeCleanup
|
|
94
|
+
*/
|
|
95
|
+
/**
|
|
96
|
+
* Options for stopping and resetting a sync client lifecycle.
|
|
97
|
+
* @typedef {object} SyncClientStopOptions
|
|
98
|
+
* @property {SyncClientScopeCleanup} [cleanup] - App-owned local-row purge run atomically with resetScopes.
|
|
99
|
+
* @property {SerializedSyncScope[]} [resetScopes] - Selected scope rows to deactivate and restart from a null cursor.
|
|
100
|
+
*/
|
|
101
|
+
/**
|
|
102
|
+
* Options for atomically replacing the external identity read by sync.client.
|
|
103
|
+
* @typedef {SyncClientStopOptions & {
|
|
104
|
+
* replace: () => Promise<void> | void,
|
|
105
|
+
* subscribeUserScope?: boolean
|
|
106
|
+
* }} SyncClientReplaceIdentityOptions
|
|
107
|
+
*/
|
|
91
108
|
/**
|
|
92
109
|
* Internal derived sync client configuration built by the SyncClient
|
|
93
110
|
* constructor — not an app-facing API.
|
|
@@ -98,8 +115,8 @@
|
|
|
98
115
|
* @property {() => boolean | Promise<boolean>} [isOnline] - Connectivity gate for pulls and replays. Defaults to always online.
|
|
99
116
|
* @property {(args: {scope: SerializedSyncScope}) => string | null | Promise<string | null>} [legacyCursor] - Seeds a newly declared scope's cursor (e.g. from a pre-scope cursor store) so devices don't re-pull everything.
|
|
100
117
|
* @property {(error: Error) => void} [onError] - Reports background replay/pull failures. Defaults to rethrowing.
|
|
101
|
-
* @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
|
|
102
|
-
* @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
|
|
118
|
+
* @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
|
|
119
|
+
* @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
|
|
103
120
|
* @property {import("../configuration-types.js").VelociousSyncClientRealtimeConfiguration} [realtime] - Realtime push configuration consumed by `subscribeRealtime(...)`.
|
|
104
121
|
* @property {import("../remote-request-context.js").RemoteRequestContext} requestContext - Immutable scalar context captured for this client.
|
|
105
122
|
* @property {Record<string, SyncClientResourceConfig>} resources - Derived resource policies keyed by resource/model name.
|
|
@@ -110,4 +127,4 @@
|
|
|
110
127
|
* @property {string | (() => string | null | undefined)} [websocketUrl] - Shared app-lifetime websocket URL the framework builds a client from.
|
|
111
128
|
*/
|
|
112
129
|
export {};
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7R0FPRztBQUVIOzs7Ozs7Ozs7Ozs7R0FZRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIENsaWVudC1kZWNsYXJlZCBzeW5jIHNjb3BlIHNlcmlhbGl6ZWQgZnJvbSBhIG1vZGVsIHF1ZXJ5LlxuICogQHR5cGVkZWYge29iamVjdH0gU2VyaWFsaXplZFN5bmNTY29wZVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IGNvbmRpdGlvbnMgLSBQbGFpbiBhdHRyaWJ1dGUgY29uZGl0aW9ucyBmcm9tIHRoZSBxdWVyeS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UvbW9kZWwgbmFtZSB0aGUgc2NvcGUgd2FzIGRlY2xhcmVkIGZvciwgb3IgbnVsbCBmb3IgdGhlIGFsbC10eXBlcyAodXNlcikgc2NvcGUgY292ZXJpbmcgZXZlcnkgdHlwZSB0aGUgc2VydmVyIGF1dGhvcml6ZXMgZm9yIHRoZSBjYWxsZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW293bmVyXSAtIExvY2FsIHBhcnRpdGlvbiBrZXk6IHRoZSBhdXRoZW50aWNhdGVkIGlkZW50aXR5IHRoYXQgZGVjbGFyZWQgdGhlIHNjb3BlLiBVc2VkIG9ubHkgdG8gcGFydGl0aW9uIHRoZSBsb2NhbCBzY29wZS9jdXJzb3Igc3RvcmUgKG5ldmVyIHNlbnQgdG8gdGhlIHNlcnZlciBhcyBzY29wZSBjb25kaXRpb25zKSwgc28gYSB1c2VyIHNjb3BlJ3MgZW1wdHktY29uZGl0aW9ucyBjdXJzb3IgZG9lcyBub3QgbGVhayBhY3Jvc3MgYWNjb3VudHMgb24gYSBzaGFyZWQgZGV2aWNlLlxuICovXG5cbi8qKlxuICogU3RhdGljIHJlYWx0aW1lIGNoYW5uZWwgZGVjbGFyYXRpb24gb24gYSBtb2RlbCdzIGBzdGF0aWMgc3luY2AsIGZvciBjaGFubmVsc1xuICogd2hvc2UgbmFtZSBhbmQgcGFyYW1zIGFyZSBzdGF0aWMuXG4gKiBAZGVwcmVjYXRlZCBEZWNsYXJlZCBwdWxsIHNjb3BlcyBzdWJzY3JpYmUgdGhlIGZyYW1ld29yayBzeW5jIGNoYW5uZWwgYXV0b21hdGljYWxseTsga2VlcCB0aGlzIG9ubHkgZm9yIGxlZ2FjeSBhcHAgY2hhbm5lbHMuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBNb2RlbFN5bmNSZWFsdGltZURlY2xhcmF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2hhbm5lbCAtIFNlcnZlciBjaGFubmVsIG5hbWUgdG8gc3Vic2NyaWJlLlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IFtwYXJhbXNdIC0gU3RhdGljIHN1YnNjcmliZSBwYXJhbXMuIFRoZSBmcmFtZXdvcmsgaW5qZWN0cyBgYXV0aGVudGljYXRpb25Ub2tlbmAgYXV0b21hdGljYWxseS5cbiAqL1xuXG4vKipcbiAqIER1cmFibGUgb3B0aW1pc3RpYy12ZXJzaW9uIHRyYWNraW5nIGNvbmZpZ3VyYXRpb24uIElkZW50aXR5L2dyYW50IGZpZWxkcyBhcmVcbiAqIHJldGFpbmVkIGluIHRoZSBzaGFyZWQgTG9jYWxNdXRhdGlvbkxvZyBtdXRhdGlvbiBzaGFwZSB1c2VkIGJ5IG9mZmxpbmUgc3luYy5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRDb25mbGljdFRyYWNraW5nQ29uZmlnXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYWN0b3JEZXZpY2VJZCAtIFN0YWJsZSBkZXZpY2UgaWRlbnRpdHkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYWN0b3JVc2VySWQgLSBTdGFibGUgdXNlciBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nfSBjbGllbnRNdXRhdGlvbklkIC0gRHVyYWJsZSBpZGVtcG90ZW5jeS1pZCBnZW5lcmF0b3IuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vbG9jYWwtbXV0YXRpb24tbG9nLmpzXCIpLmRlZmF1bHR9IG11dGF0aW9uTG9nIC0gRXhpc3RpbmcgZHVyYWJsZSBtdXRhdGlvbiBsb2cuXG4gKiBAcHJvcGVydHkgeygpID0+IERhdGV9IFtub3ddIC0gTXV0YXRpb24gY2xvY2suXG4gKiBAcHJvcGVydHkge3N0cmluZ30gb2ZmbGluZUdyYW50SWQgLSBHcmFudCBpZGVudGlmaWVyIHJldGFpbmVkIHdpdGggaW50ZW50LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBvbGljeUhhc2ggLSBQb2xpY3kgaGFzaCByZXRhaW5lZCB3aXRoIGludGVudC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdmVyc2lvbkF0dHJpYnV0ZV0gLSBBdXRob3JpdGF0aXZlIHZlcnNpb24gYXR0cmlidXRlOyBkZWZhdWx0cyB0byB1cGRhdGVkQXQgd2hlbiBwcmVzZW50LlxuICovXG5cbi8qKlxuICogRGVjbGFyYXRpdmUgcGVyLXJlc291cmNlIHN5bmMgcG9saWN5LlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudFJlc291cmNlQ29uZmlnXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBtZXRhZGF0YU1vZGVsQ2xhc3MgLSBNb2RlbCBtZXRhZGF0YSBvd25lciBmb3Igc2NvcGUgdHJhbnNsYXRpb24gYW5kIGRlcml2ZWQgYXR0cmlidXRlcy5cbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IG1vZGVsQ2xhc3MgLSBMb2NhbCBtb2RlbCBjbGFzcyBmb3IgdGhpcyByZXNvdXJjZS5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYXR0cmlidXRlc1wiXX0gW2F0dHJpYnV0ZXNdIC0gUHVsbC1hcHBseSBhdHRyaWJ1dGUgbWFwcGVyLiBSZXF1aXJlZCBmb3IgcmVzb3VyY2VzIHRoYXQgcmVjZWl2ZSBwdWxsZWQgY2hhbmdlcy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZFwiXX0gW2ZpbmRSZWNvcmRdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgcmVjb3JkIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkRm9yRGVsZXRlXCJdfSBbZmluZFJlY29yZEZvckRlbGV0ZV0gLSBDdXN0b20gcHVsbC1hcHBseSBkZWxldGUgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImFmdGVyQXBwbHlcIl19IFthZnRlckFwcGx5XSAtIFBvc3QtYXBwbHkgaG9vay5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFtib29sZWFuQXR0cmlidXRlc10gLSBBdHRyaWJ1dGVzIGNvZXJjZWQgdGhyb3VnaCBzeW5jIGJvb2xlYW4gcGFyc2luZyB3aGVuIHF1ZXVlaW5nLlxuICogQHByb3BlcnR5IHtTeW5jQ2xpZW50Q29uZmxpY3RUcmFja2luZ0NvbmZpZ30gW2NvbmZsaWN0VHJhY2tpbmddIC0gT3B0LWluIGR1cmFibGUgYmFzZS12ZXJzaW9uIGNvbmZsaWN0IHRyYWNraW5nLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2xvY2FsT25seUF0dHJpYnV0ZXNdIC0gQXR0cmlidXRlcyBzdHJpcHBlZCBmcm9tIHF1ZXVlZCBwYXlsb2Fkcy5cbiAqIEBwcm9wZXJ0eSB7XCJ1cHNlcnRcIiB8ICgoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0pID0+IHN0cmluZyl9IFtzeW5jVHlwZV0gLSBNYXBzIGEgbXV0YXRpb24gb3BlcmF0aW9uIHRvIGEgc3luYyB0eXBlLiBUaGUgXCJ1cHNlcnRcIiBmbGFnIHF1ZXVlcyBjcmVhdGVzIGFuZCB1cGRhdGVzIGFzIFwidXBkYXRlXCIgcm93cyAodGhlIHNlcnZlciB1cHNlcnRzIGJ5IHJlc291cmNlIGlkKSBhbmQgZGVzdHJveXMgYXMgXCJkZWxldGVcIi4gRGVmYXVsdHMgdG8gdGhlIG9wZXJhdGlvbiBuYW1lIHdpdGggZGVzdHJveSBtYXBwZWQgdG8gXCJkZWxldGVcIi5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtvcGVyYXRpb246IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCIsIHJlY29yZDogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59KSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IFt0cmFja2VkRGF0YV0gLSBDdXN0b20gcXVldWVkLXBheWxvYWQgYnVpbGRlciBmb3IgdHJhY2tlZCBtdXRhdGlvbnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCB7b3BlcmF0aW9uczogQXJyYXk8XCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIj59fSBbdHJhY2tdIC0gQXV0b21hdGljIG11dGF0aW9uIHRyYWNraW5nIHBvbGljeS4gT24gYnkgZGVmYXVsdCAoY3JlYXRlcyBhbmQgdXBkYXRlcyBxdWV1ZSBhdXRvbWF0aWNhbGx5KTsgYGZhbHNlYCBvcHRzIHRoZSByZXNvdXJjZSBvdXQsIGB0cnVlYCBhZGRzIGRlc3Ryb3lzLCBge29wZXJhdGlvbnN9YCBuYXJyb3dzIHRoZSB0cmFja2VkIG9wZXJhdGlvbnMuXG4gKiBAcHJvcGVydHkge01vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb259IFtyZWFsdGltZV0gLSBEZXByZWNhdGVkOiBzdGF0aWMgbGVnYWN5IHJlYWx0aW1lIGNoYW5uZWwgdGhpcyByZXNvdXJjZSBzdWJzY3JpYmVzIHRocm91Z2ggYHN1YnNjcmliZVJlYWx0aW1lKC4uLilgLiBEZWNsYXJlZCBwdWxsIHNjb3BlcyBzdWJzY3JpYmUgdGhlIGZyYW1ld29yayBzeW5jIGNoYW5uZWwgYXV0b21hdGljYWxseS5cbiAqL1xuXG4vKipcbiAqIE1vZGVsLWxldmVsIGNsaWVudCBzeW5jIGRlY2xhcmF0aW9uIHJlYWQgZnJvbSBgc3RhdGljIHN5bmNgIGJ5XG4gKiBgU3luY0NsaWVudC5mcm9tQ29uZmlndXJhdGlvbiguLi4pYC4gYHRydWVgIG9wdHMgdGhlIG1vZGVsIGluIHdpdGggYWxsXG4gKiBkZWZhdWx0czsgYW4gb2JqZWN0IGN1c3RvbWl6ZXMgdGhlIGRlcml2ZWQgcmVzb3VyY2UgY29uZmlnLlxuICogQHRlbXBsYXRlIFtUTW9kZWw9YW55XVxuICogQHR5cGVkZWYge29iamVjdH0gTW9kZWxTeW5jRGVjbGFyYXRpb25Db25maWdcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEV4dHJhIGJvb2xlYW4gYXR0cmlidXRlcyBtZXJnZWQgd2l0aCB0aGUgYm9vbGVhbiBjb2x1bW5zIGRlcml2ZWQgZnJvbSBjb2x1bW4gdHlwZXMuXG4gKiBAcHJvcGVydHkge1N5bmNDbGllbnRDb25mbGljdFRyYWNraW5nQ29uZmlnfSBbY29uZmxpY3RUcmFja2luZ10gLSBPcHQtaW4gZHVyYWJsZSBiYXNlLXZlcnNpb24gY29uZmxpY3QgdHJhY2tpbmcuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRcIl19IFtmaW5kUmVjb3JkXSAtIEN1c3RvbSBwdWxsLWFwcGx5IHJlY29yZCByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZEZvckRlbGV0ZVwiXX0gW2ZpbmRSZWNvcmRGb3JEZWxldGVdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgZGVsZXRlIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2xvY2FsT25seUF0dHJpYnV0ZXNdIC0gRXh0cmEgbG9jYWwtb25seSBhdHRyaWJ1dGVzIG1lcmdlZCB3aXRoIHRoZSBkZXJpdmVkIHByaW1hcnkga2V5LCBjcmVhdGVkQXQvdXBkYXRlZEF0LCBhbmQgc3luYyBib29ra2VlcGluZyBhdHRyaWJ1dGVzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtcHVibGlzaGVyLXR5cGVzLmpzXCIpLlN5bmNQdWJsaXNoRGVjbGFyYXRpb248VE1vZGVsPn0gW3B1Ymxpc2hdIC0gU2VydmVyLXNpZGUgcHVibGlzaCBkZWNsYXJhdGlvbiBjb25zdW1lZCBieSBgU3luY1B1Ymxpc2hlci5mcm9tQ29uZmlndXJhdGlvbiguLi4pYCBvbiB0aGUgYmFja2VuZDsgaWdub3JlZCBieSB0aGUgY2xpZW50LlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSkgPT4gc3RyaW5nKX0gW3N5bmNUeXBlXSAtIFN5bmMgdHlwZSBmbGFnIG9yIG1hcHBlciAoc2VlIFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBBdXRvbWF0aWMgbXV0YXRpb24gdHJhY2tpbmcgcG9saWN5OyBhbiBhcnJheSBpcyBzaG9ydGhhbmQgZm9yIHtvcGVyYXRpb25zfS4gT24gYnkgZGVmYXVsdCAoY3JlYXRlcyBhbmQgdXBkYXRlcyBxdWV1ZSBhdXRvbWF0aWNhbGx5KTsgYGZhbHNlYCBvcHRzIHRoZSBtb2RlbCBvdXQgKGZvciBtb2RlbHMgd3JpdHRlbiBieSBub24tdXNlciBmbG93cyksIGB0cnVlYCBhZGRzIGRlc3Ryb3lzLlxuICogQHByb3BlcnR5IHsoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0pID0+IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIERlcHJlY2F0ZWQ6IHN0YXRpYyBsZWdhY3kgcmVhbHRpbWUgY2hhbm5lbCB0aGlzIHJlc291cmNlIHN1YnNjcmliZXMgdGhyb3VnaCBgc3Vic2NyaWJlUmVhbHRpbWUoLi4uKWAuIERlY2xhcmVkIHB1bGwgc2NvcGVzIHN1YnNjcmliZSB0aGUgZnJhbWV3b3JrIHN5bmMgY2hhbm5lbCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogTW9kZWwtbGV2ZWwgc3luYyBkZWNsYXJhdGlvbiB2YWx1ZTogYHRydWVgIG9wdHMgaW4gd2l0aCBhbGwgZGVmYXVsdHMsIGFuXG4gKiBvYmplY3QgY3VzdG9taXplcyB0aGUgZGVyaXZlZCByZXNvdXJjZSBjb25maWcuXG4gKiBAdGVtcGxhdGUgW1RNb2RlbD1hbnldXG4gKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IE1vZGVsU3luY0RlY2xhcmF0aW9uQ29uZmlnPFRNb2RlbD59IE1vZGVsU3luY0RlY2xhcmF0aW9uXG4gKi9cblxuLyoqXG4gKiBTaGFyZWQgYXBwLWxpZmV0aW1lIHdlYnNvY2tldCBjb25uZWN0aW9uIGFsbCBzeW5jIHRyYWZmaWMgcmlkZXMuIE1hdGNoZXMgdGhlXG4gKiByZWFsdGltZSB3ZWJzb2NrZXQgY2xpZW50IGNvbnRyYWN0OyB0aGUgc3luYyBjbGllbnQgcmlkZXMgaXQgd2l0aG91dCBvd25pbmdcbiAqIGl0cyBjb25uZWN0L2Rpc2Nvbm5lY3QgbGlmZWN5Y2xlLlxuICogQHR5cGVkZWYge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuVmVsb2Npb3VzU3luY1JlYWx0aW1lV2Vic29ja2V0Q2xpZW50fSBTeW5jQ2xpZW50U2hhcmVkQ29ubmVjdGlvblxuICovXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYnVpbGRpbmcgYSBzeW5jIGNsaWVudC4gRXZlcnl0aGluZyBlbHNlIOKAlCByZXNvdXJjZXMsIHRyYW5zcG9ydFxuICogUE9TVGVycywgYXV0aCwgY29ubmVjdGl2aXR5LCBiYXRjaCBzaXplIOKAlCBpcyBkZXJpdmVkIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24nc1xuICogcmVnaXN0ZXJlZCBtb2RlbHMgKGBzdGF0aWMgc3luY2ApIGFuZCBpdHMgYHN5bmMuY2xpZW50YCBibG9jay5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRPcHRpb25zXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2NvbmZpZ3VyYXRpb25dIC0gQ29uZmlndXJhdGlvbiBvd25pbmcgdGhlIHJlZ2lzdGVyZWQgbW9kZWxzLCB0aGUgYHN5bmMuY2xpZW50YCBibG9jaywgYW5kIHRoZSBzY29wZS1zdG9yZSBkYXRhYmFzZS4gRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtzY29wZTogU2VyaWFsaXplZFN5bmNTY29wZX0pID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+fSBbbGVnYWN5Q3Vyc29yXSAtIFNlZWRzIGEgbmV3bHkgZGVjbGFyZWQgc2NvcGUncyBjdXJzb3IgKGUuZy4gZnJvbSBhIHByZS1zY29wZSBjdXJzb3Igc3RvcmUpIHNvIGRldmljZXMgZG9uJ3QgcmUtcHVsbCBldmVyeXRoaW5nLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9yZW1vdGUtcmVxdWVzdC1jb250ZXh0LmpzXCIpLlJlbW90ZVJlcXVlc3RDb250ZXh0fSBbcmVxdWVzdENvbnRleHRdIC0gSW1tdXRhYmxlIHNjYWxhciBjb250ZXh0IGNhcHR1cmVkIGZvciB0aGlzIGNsaWVudCBhbmQgc2VudCB3aXRoIGV2ZXJ5IHB1bGwsIHJlcGxheSwgYW5kIHJlYWx0aW1lIHN1YnNjcmlwdGlvbi5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLXNjb3BlLXN0b3JlLmpzXCIpLmRlZmF1bHR9IFtzY29wZVN0b3JlXSAtIFNjb3BlIHN0b3JlIG92ZXJyaWRlICh0ZXN0cykuXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBbc3luY01vZGVsXSAtIFBlbmRpbmctc3luYyBtb2RlbCBvdmVycmlkZS4gRGVmYXVsdHMgdG8gdGhlIHJlZ2lzdGVyZWQgXCJTeW5jXCIgbW9kZWwuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2RhdGFiYXNlSWRlbnRpZmllcl0gLSBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllcjsgcmVxdWlyZWQgd2l0aCB0ZW5hbnRIYW5kbGUuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL3RlbmFudHMvdGVuYW50LWhhbmRsZS5qc1wiKS5kZWZhdWx0fSBbdGVuYW50SGFuZGxlXSAtIEltbXV0YWJsZSB0ZW5hbnQgaGFuZGxlIGJpbmRpbmcgZXZlcnkgbG9jYWwgc3luYyBzdGF0ZSB0cmFuc2l0aW9uLlxuICovXG5cbi8qKlxuICogSW50ZXJuYWwgZGVyaXZlZCBzeW5jIGNsaWVudCBjb25maWd1cmF0aW9uIGJ1aWx0IGJ5IHRoZSBTeW5jQ2xpZW50XG4gKiBjb25zdHJ1Y3RvciDigJQgbm90IGFuIGFwcC1mYWNpbmcgQVBJLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudENvbmZpZ1xuICogQHByb3BlcnR5IHsoKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz59IGF1dGhlbnRpY2F0aW9uVG9rZW4gLSBSZXNvbHZlcyB0aGUgYXV0aCB0b2tlbiBzZW50IHdpdGggc3luYyByZXF1ZXN0cy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbYmF0Y2hTaXplXSAtIE1heCBzeW5jcyBwZXIgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBjb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBvd25pbmcgdGhlIHNjb3BlLXN0b3JlIGRhdGFiYXNlLlxuICogQHByb3BlcnR5IHsoKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn0gW2lzT25saW5lXSAtIENvbm5lY3Rpdml0eSBnYXRlIGZvciBwdWxscyBhbmQgcmVwbGF5cy4gRGVmYXVsdHMgdG8gYWx3YXlzIG9ubGluZS5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtzY29wZTogU2VyaWFsaXplZFN5bmNTY29wZX0pID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+fSBbbGVnYWN5Q3Vyc29yXSAtIFNlZWRzIGEgbmV3bHkgZGVjbGFyZWQgc2NvcGUncyBjdXJzb3IgKGUuZy4gZnJvbSBhIHByZS1zY29wZSBjdXJzb3Igc3RvcmUpIHNvIGRldmljZXMgZG9uJ3QgcmUtcHVsbCBldmVyeXRoaW5nLlxuICogQHByb3BlcnR5IHsoZXJyb3I6IEVycm9yKSA9PiB2b2lkfSBbb25FcnJvcl0gLSBSZXBvcnRzIGJhY2tncm91bmQgcmVwbGF5L3B1bGwgZmFpbHVyZXMuIERlZmF1bHRzIHRvIHJldGhyb3dpbmcuXG4gKiBAcHJvcGVydHkgeyhwYXlsb2FkOiBpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1JlcXVlc3QgJiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBQcm9taXNlPGltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNDaGFuZ2VzUmVzcG9uc2U+fSBwb3N0Q2hhbmdlcyAtIFBvc3RzIG9uZSBjaGFuZ2VzIHJlcXVlc3QuXG4gKiBAcHJvcGVydHkgeyhwYXlsb2FkOiB7YXV0aGVudGljYXRpb25Ub2tlbjogc3RyaW5nLCBzeW5jczogQXJyYXk8UmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+Pn0pID0+IFByb21pc2U8aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1JlcGxheVJlc3BvbnNlPn0gcG9zdFJlcGxheSAtIFBvc3RzIG9uZSByZXBsYXkgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5WZWxvY2lvdXNTeW5jQ2xpZW50UmVhbHRpbWVDb25maWd1cmF0aW9ufSBbcmVhbHRpbWVdIC0gUmVhbHRpbWUgcHVzaCBjb25maWd1cmF0aW9uIGNvbnN1bWVkIGJ5IGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vcmVtb3RlLXJlcXVlc3QtY29udGV4dC5qc1wiKS5SZW1vdGVSZXF1ZXN0Q29udGV4dH0gcmVxdWVzdENvbnRleHQgLSBJbW11dGFibGUgc2NhbGFyIGNvbnRleHQgY2FwdHVyZWQgZm9yIHRoaXMgY2xpZW50LlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBTeW5jQ2xpZW50UmVzb3VyY2VDb25maWc+fSByZXNvdXJjZXMgLSBEZXJpdmVkIHJlc291cmNlIHBvbGljaWVzIGtleWVkIGJ5IHJlc291cmNlL21vZGVsIG5hbWUuXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBzeW5jTW9kZWwgLSBMb2NhbCBwZW5kaW5nLXN5bmMgbW9kZWwgY2xhc3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2RhdGFiYXNlSWRlbnRpZmllcl0gLSBUZW5hbnQtc2NvcGVkIGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL3RlbmFudHMvdGVuYW50LWhhbmRsZS5qc1wiKS5kZWZhdWx0fSBbdGVuYW50SGFuZGxlXSAtIFRlbmFudC1zY29wZWQgaW1tdXRhYmxlIGhhbmRsZS5cbiAqIEBwcm9wZXJ0eSB7U3luY0NsaWVudFNoYXJlZENvbm5lY3Rpb259IFt3ZWJzb2NrZXRDbGllbnRdIC0gU2hhcmVkIGFwcC1saWZldGltZSB3ZWJzb2NrZXQgY2xpZW50IGluc3RhbmNlICh0aGUgbG93LWxldmVsIHNoYXJlZC1jb25uZWN0aW9uIGZvcm0pLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCl9IFt3ZWJzb2NrZXRVcmxdIC0gU2hhcmVkIGFwcC1saWZldGltZSB3ZWJzb2NrZXQgVVJMIHRoZSBmcmFtZXdvcmsgYnVpbGRzIGEgY2xpZW50IGZyb20uXG4gKi9cblxuZXhwb3J0IHt9XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7R0FPRztBQUVIOzs7Ozs7Ozs7Ozs7R0FZRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSDs7O0dBR0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUVILE9BQU8sRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQ2xpZW50LWRlY2xhcmVkIHN5bmMgc2NvcGUgc2VyaWFsaXplZCBmcm9tIGEgbW9kZWwgcXVlcnkuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTZXJpYWxpemVkU3luY1Njb3BlXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gY29uZGl0aW9ucyAtIFBsYWluIGF0dHJpYnV0ZSBjb25kaXRpb25zIGZyb20gdGhlIHF1ZXJ5LlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSByZXNvdXJjZVR5cGUgLSBSZXNvdXJjZS9tb2RlbCBuYW1lIHRoZSBzY29wZSB3YXMgZGVjbGFyZWQgZm9yLCBvciBudWxsIGZvciB0aGUgYWxsLXR5cGVzICh1c2VyKSBzY29wZSBjb3ZlcmluZyBldmVyeSB0eXBlIHRoZSBzZXJ2ZXIgYXV0aG9yaXplcyBmb3IgdGhlIGNhbGxlci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbb3duZXJdIC0gTG9jYWwgcGFydGl0aW9uIGtleTogdGhlIGF1dGhlbnRpY2F0ZWQgaWRlbnRpdHkgdGhhdCBkZWNsYXJlZCB0aGUgc2NvcGUuIFVzZWQgb25seSB0byBwYXJ0aXRpb24gdGhlIGxvY2FsIHNjb3BlL2N1cnNvciBzdG9yZSAobmV2ZXIgc2VudCB0byB0aGUgc2VydmVyIGFzIHNjb3BlIGNvbmRpdGlvbnMpLCBzbyBhIHVzZXIgc2NvcGUncyBlbXB0eS1jb25kaXRpb25zIGN1cnNvciBkb2VzIG5vdCBsZWFrIGFjcm9zcyBhY2NvdW50cyBvbiBhIHNoYXJlZCBkZXZpY2UuXG4gKi9cblxuLyoqXG4gKiBTdGF0aWMgcmVhbHRpbWUgY2hhbm5lbCBkZWNsYXJhdGlvbiBvbiBhIG1vZGVsJ3MgYHN0YXRpYyBzeW5jYCwgZm9yIGNoYW5uZWxzXG4gKiB3aG9zZSBuYW1lIGFuZCBwYXJhbXMgYXJlIHN0YXRpYy5cbiAqIEBkZXByZWNhdGVkIERlY2xhcmVkIHB1bGwgc2NvcGVzIHN1YnNjcmliZSB0aGUgZnJhbWV3b3JrIHN5bmMgY2hhbm5lbCBhdXRvbWF0aWNhbGx5OyBrZWVwIHRoaXMgb25seSBmb3IgbGVnYWN5IGFwcCBjaGFubmVscy5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGFubmVsIC0gU2VydmVyIGNoYW5uZWwgbmFtZSB0byBzdWJzY3JpYmUuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW3BhcmFtc10gLSBTdGF0aWMgc3Vic2NyaWJlIHBhcmFtcy4gVGhlIGZyYW1ld29yayBpbmplY3RzIGBhdXRoZW50aWNhdGlvblRva2VuYCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogRHVyYWJsZSBvcHRpbWlzdGljLXZlcnNpb24gdHJhY2tpbmcgY29uZmlndXJhdGlvbi4gSWRlbnRpdHkvZ3JhbnQgZmllbGRzIGFyZVxuICogcmV0YWluZWQgaW4gdGhlIHNoYXJlZCBMb2NhbE11dGF0aW9uTG9nIG11dGF0aW9uIHNoYXBlIHVzZWQgYnkgb2ZmbGluZSBzeW5jLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudENvbmZsaWN0VHJhY2tpbmdDb25maWdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3RvckRldmljZUlkIC0gU3RhYmxlIGRldmljZSBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3RvclVzZXJJZCAtIFN0YWJsZSB1c2VyIGlkZW50aXR5LlxuICogQHByb3BlcnR5IHsoKSA9PiBzdHJpbmd9IGNsaWVudE11dGF0aW9uSWQgLSBEdXJhYmxlIGlkZW1wb3RlbmN5LWlkIGdlbmVyYXRvci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9sb2NhbC1tdXRhdGlvbi1sb2cuanNcIikuZGVmYXVsdH0gbXV0YXRpb25Mb2cgLSBFeGlzdGluZyBkdXJhYmxlIG11dGF0aW9uIGxvZy5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gRGF0ZX0gW25vd10gLSBNdXRhdGlvbiBjbG9jay5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBvZmZsaW5lR3JhbnRJZCAtIEdyYW50IGlkZW50aWZpZXIgcmV0YWluZWQgd2l0aCBpbnRlbnQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcG9saWN5SGFzaCAtIFBvbGljeSBoYXNoIHJldGFpbmVkIHdpdGggaW50ZW50LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt2ZXJzaW9uQXR0cmlidXRlXSAtIEF1dGhvcml0YXRpdmUgdmVyc2lvbiBhdHRyaWJ1dGU7IGRlZmF1bHRzIHRvIHVwZGF0ZWRBdCB3aGVuIHByZXNlbnQuXG4gKi9cblxuLyoqXG4gKiBEZWNsYXJhdGl2ZSBwZXItcmVzb3VyY2Ugc3luYyBwb2xpY3kuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50UmVzb3VyY2VDb25maWdcbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IG1ldGFkYXRhTW9kZWxDbGFzcyAtIE1vZGVsIG1ldGFkYXRhIG93bmVyIGZvciBzY29wZSB0cmFuc2xhdGlvbiBhbmQgZGVyaXZlZCBhdHRyaWJ1dGVzLlxuICogQHByb3BlcnR5IHtSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0gbW9kZWxDbGFzcyAtIExvY2FsIG1vZGVsIGNsYXNzIGZvciB0aGlzIHJlc291cmNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkXCJdfSBbZmluZFJlY29yZF0gLSBDdXN0b20gcHVsbC1hcHBseSByZWNvcmQgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRGb3JEZWxldGVcIl19IFtmaW5kUmVjb3JkRm9yRGVsZXRlXSAtIEN1c3RvbSBwdWxsLWFwcGx5IGRlbGV0ZSByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEF0dHJpYnV0ZXMgY29lcmNlZCB0aHJvdWdoIHN5bmMgYm9vbGVhbiBwYXJzaW5nIHdoZW4gcXVldWVpbmcuXG4gKiBAcHJvcGVydHkge1N5bmNDbGllbnRDb25mbGljdFRyYWNraW5nQ29uZmlnfSBbY29uZmxpY3RUcmFja2luZ10gLSBPcHQtaW4gZHVyYWJsZSBiYXNlLXZlcnNpb24gY29uZmxpY3QgdHJhY2tpbmcuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxPbmx5QXR0cmlidXRlc10gLSBBdHRyaWJ1dGVzIHN0cmlwcGVkIGZyb20gcXVldWVkIHBheWxvYWRzLlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSkgPT4gc3RyaW5nKX0gW3N5bmNUeXBlXSAtIE1hcHMgYSBtdXRhdGlvbiBvcGVyYXRpb24gdG8gYSBzeW5jIHR5cGUuIFRoZSBcInVwc2VydFwiIGZsYWcgcXVldWVzIGNyZWF0ZXMgYW5kIHVwZGF0ZXMgYXMgXCJ1cGRhdGVcIiByb3dzICh0aGUgc2VydmVyIHVwc2VydHMgYnkgcmVzb3VyY2UgaWQpIGFuZCBkZXN0cm95cyBhcyBcImRlbGV0ZVwiLiBEZWZhdWx0cyB0byB0aGUgb3BlcmF0aW9uIG5hbWUgd2l0aCBkZXN0cm95IG1hcHBlZCB0byBcImRlbGV0ZVwiLlxuICogQHByb3BlcnR5IHsoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0pID0+IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBBdXRvbWF0aWMgbXV0YXRpb24gdHJhY2tpbmcgcG9saWN5LiBPbiBieSBkZWZhdWx0IChjcmVhdGVzIGFuZCB1cGRhdGVzIHF1ZXVlIGF1dG9tYXRpY2FsbHkpOyBgZmFsc2VgIG9wdHMgdGhlIHJlc291cmNlIG91dCwgYHRydWVgIGFkZHMgZGVzdHJveXMsIGB7b3BlcmF0aW9uc31gIG5hcnJvd3MgdGhlIHRyYWNrZWQgb3BlcmF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIERlcHJlY2F0ZWQ6IHN0YXRpYyBsZWdhY3kgcmVhbHRpbWUgY2hhbm5lbCB0aGlzIHJlc291cmNlIHN1YnNjcmliZXMgdGhyb3VnaCBgc3Vic2NyaWJlUmVhbHRpbWUoLi4uKWAuIERlY2xhcmVkIHB1bGwgc2NvcGVzIHN1YnNjcmliZSB0aGUgZnJhbWV3b3JrIHN5bmMgY2hhbm5lbCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogTW9kZWwtbGV2ZWwgY2xpZW50IHN5bmMgZGVjbGFyYXRpb24gcmVhZCBmcm9tIGBzdGF0aWMgc3luY2AgYnlcbiAqIGBTeW5jQ2xpZW50LmZyb21Db25maWd1cmF0aW9uKC4uLilgLiBgdHJ1ZWAgb3B0cyB0aGUgbW9kZWwgaW4gd2l0aCBhbGxcbiAqIGRlZmF1bHRzOyBhbiBvYmplY3QgY3VzdG9taXplcyB0aGUgZGVyaXZlZCByZXNvdXJjZSBjb25maWcuXG4gKiBAdGVtcGxhdGUgW1RNb2RlbD1hbnldXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBNb2RlbFN5bmNEZWNsYXJhdGlvbkNvbmZpZ1xuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhZnRlckFwcGx5XCJdfSBbYWZ0ZXJBcHBseV0gLSBQb3N0LWFwcGx5IGhvb2suXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImF0dHJpYnV0ZXNcIl19IFthdHRyaWJ1dGVzXSAtIFB1bGwtYXBwbHkgYXR0cmlidXRlIG1hcHBlci4gUmVxdWlyZWQgZm9yIHJlc291cmNlcyB0aGF0IHJlY2VpdmUgcHVsbGVkIGNoYW5nZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbYm9vbGVhbkF0dHJpYnV0ZXNdIC0gRXh0cmEgYm9vbGVhbiBhdHRyaWJ1dGVzIG1lcmdlZCB3aXRoIHRoZSBib29sZWFuIGNvbHVtbnMgZGVyaXZlZCBmcm9tIGNvbHVtbiB0eXBlcy5cbiAqIEBwcm9wZXJ0eSB7U3luY0NsaWVudENvbmZsaWN0VHJhY2tpbmdDb25maWd9IFtjb25mbGljdFRyYWNraW5nXSAtIE9wdC1pbiBkdXJhYmxlIGJhc2UtdmVyc2lvbiBjb25mbGljdCB0cmFja2luZy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZFwiXX0gW2ZpbmRSZWNvcmRdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgcmVjb3JkIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkRm9yRGVsZXRlXCJdfSBbZmluZFJlY29yZEZvckRlbGV0ZV0gLSBDdXN0b20gcHVsbC1hcHBseSBkZWxldGUgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxPbmx5QXR0cmlidXRlc10gLSBFeHRyYSBsb2NhbC1vbmx5IGF0dHJpYnV0ZXMgbWVyZ2VkIHdpdGggdGhlIGRlcml2ZWQgcHJpbWFyeSBrZXksIGNyZWF0ZWRBdC91cGRhdGVkQXQsIGFuZCBzeW5jIGJvb2trZWVwaW5nIGF0dHJpYnV0ZXMuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1wdWJsaXNoZXItdHlwZXMuanNcIikuU3luY1B1Ymxpc2hEZWNsYXJhdGlvbjxUTW9kZWw+fSBbcHVibGlzaF0gLSBTZXJ2ZXItc2lkZSBwdWJsaXNoIGRlY2xhcmF0aW9uIGNvbnN1bWVkIGJ5IGBTeW5jUHVibGlzaGVyLmZyb21Db25maWd1cmF0aW9uKC4uLilgIG9uIHRoZSBiYWNrZW5kOyBpZ25vcmVkIGJ5IHRoZSBjbGllbnQuXG4gKiBAcHJvcGVydHkge1widXBzZXJ0XCIgfCAoKGFyZ3M6IHtvcGVyYXRpb246IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCIsIHJlY29yZDogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59KSA9PiBzdHJpbmcpfSBbc3luY1R5cGVdIC0gU3luYyB0eXBlIGZsYWcgb3IgbWFwcGVyIChzZWUgU3luY0NsaWVudFJlc291cmNlQ29uZmlnKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+IHwge29wZXJhdGlvbnM6IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+fX0gW3RyYWNrXSAtIEF1dG9tYXRpYyBtdXRhdGlvbiB0cmFja2luZyBwb2xpY3k7IGFuIGFycmF5IGlzIHNob3J0aGFuZCBmb3Ige29wZXJhdGlvbnN9LiBPbiBieSBkZWZhdWx0IChjcmVhdGVzIGFuZCB1cGRhdGVzIHF1ZXVlIGF1dG9tYXRpY2FsbHkpOyBgZmFsc2VgIG9wdHMgdGhlIG1vZGVsIG91dCAoZm9yIG1vZGVscyB3cml0dGVuIGJ5IG5vbi11c2VyIGZsb3dzKSwgYHRydWVgIGFkZHMgZGVzdHJveXMuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSkgPT4gUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+fSBbdHJhY2tlZERhdGFdIC0gQ3VzdG9tIHF1ZXVlZC1wYXlsb2FkIGJ1aWxkZXIgZm9yIHRyYWNrZWQgbXV0YXRpb25zLlxuICogQHByb3BlcnR5IHtNb2RlbFN5bmNSZWFsdGltZURlY2xhcmF0aW9ufSBbcmVhbHRpbWVdIC0gRGVwcmVjYXRlZDogc3RhdGljIGxlZ2FjeSByZWFsdGltZSBjaGFubmVsIHRoaXMgcmVzb3VyY2Ugc3Vic2NyaWJlcyB0aHJvdWdoIGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC4gRGVjbGFyZWQgcHVsbCBzY29wZXMgc3Vic2NyaWJlIHRoZSBmcmFtZXdvcmsgc3luYyBjaGFubmVsIGF1dG9tYXRpY2FsbHkuXG4gKi9cblxuLyoqXG4gKiBNb2RlbC1sZXZlbCBzeW5jIGRlY2xhcmF0aW9uIHZhbHVlOiBgdHJ1ZWAgb3B0cyBpbiB3aXRoIGFsbCBkZWZhdWx0cywgYW5cbiAqIG9iamVjdCBjdXN0b21pemVzIHRoZSBkZXJpdmVkIHJlc291cmNlIGNvbmZpZy5cbiAqIEB0ZW1wbGF0ZSBbVE1vZGVsPWFueV1cbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgTW9kZWxTeW5jRGVjbGFyYXRpb25Db25maWc8VE1vZGVsPn0gTW9kZWxTeW5jRGVjbGFyYXRpb25cbiAqL1xuXG4vKipcbiAqIFNoYXJlZCBhcHAtbGlmZXRpbWUgd2Vic29ja2V0IGNvbm5lY3Rpb24gYWxsIHN5bmMgdHJhZmZpYyByaWRlcy4gTWF0Y2hlcyB0aGVcbiAqIHJlYWx0aW1lIHdlYnNvY2tldCBjbGllbnQgY29udHJhY3Q7IHRoZSBzeW5jIGNsaWVudCByaWRlcyBpdCB3aXRob3V0IG93bmluZ1xuICogaXRzIGNvbm5lY3QvZGlzY29ubmVjdCBsaWZlY3ljbGUuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5WZWxvY2lvdXNTeW5jUmVhbHRpbWVXZWJzb2NrZXRDbGllbnR9IFN5bmNDbGllbnRTaGFyZWRDb25uZWN0aW9uXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBidWlsZGluZyBhIHN5bmMgY2xpZW50LiBFdmVyeXRoaW5nIGVsc2Ug4oCUIHJlc291cmNlcywgdHJhbnNwb3J0XG4gKiBQT1NUZXJzLCBhdXRoLCBjb25uZWN0aXZpdHksIGJhdGNoIHNpemUg4oCUIGlzIGRlcml2ZWQgZnJvbSB0aGUgY29uZmlndXJhdGlvbidzXG4gKiByZWdpc3RlcmVkIG1vZGVscyAoYHN0YXRpYyBzeW5jYCkgYW5kIGl0cyBgc3luYy5jbGllbnRgIGJsb2NrLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBbY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIG93bmluZyB0aGUgcmVnaXN0ZXJlZCBtb2RlbHMsIHRoZSBgc3luYy5jbGllbnRgIGJsb2NrLCBhbmQgdGhlIHNjb3BlLXN0b3JlIGRhdGFiYXNlLiBEZWZhdWx0cyB0byB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHsoYXJnczoge3Njb3BlOiBTZXJpYWxpemVkU3luY1Njb3BlfSkgPT4gc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD59IFtsZWdhY3lDdXJzb3JdIC0gU2VlZHMgYSBuZXdseSBkZWNsYXJlZCBzY29wZSdzIGN1cnNvciAoZS5nLiBmcm9tIGEgcHJlLXNjb3BlIGN1cnNvciBzdG9yZSkgc28gZGV2aWNlcyBkb24ndCByZS1wdWxsIGV2ZXJ5dGhpbmcuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL3JlbW90ZS1yZXF1ZXN0LWNvbnRleHQuanNcIikuUmVtb3RlUmVxdWVzdENvbnRleHR9IFtyZXF1ZXN0Q29udGV4dF0gLSBJbW11dGFibGUgc2NhbGFyIGNvbnRleHQgY2FwdHVyZWQgZm9yIHRoaXMgY2xpZW50IGFuZCBzZW50IHdpdGggZXZlcnkgcHVsbCwgcmVwbGF5LCBhbmQgcmVhbHRpbWUgc3Vic2NyaXB0aW9uLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtc2NvcGUtc3RvcmUuanNcIikuZGVmYXVsdH0gW3Njb3BlU3RvcmVdIC0gU2NvcGUgc3RvcmUgb3ZlcnJpZGUgKHRlc3RzKS5cbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IFtzeW5jTW9kZWxdIC0gUGVuZGluZy1zeW5jIG1vZGVsIG92ZXJyaWRlLiBEZWZhdWx0cyB0byB0aGUgcmVnaXN0ZXJlZCBcIlN5bmNcIiBtb2RlbC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGF0YWJhc2VJZGVudGlmaWVyXSAtIFRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyOyByZXF1aXJlZCB3aXRoIHRlbmFudEhhbmRsZS5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vdGVuYW50cy90ZW5hbnQtaGFuZGxlLmpzXCIpLmRlZmF1bHR9IFt0ZW5hbnRIYW5kbGVdIC0gSW1tdXRhYmxlIHRlbmFudCBoYW5kbGUgYmluZGluZyBldmVyeSBsb2NhbCBzeW5jIHN0YXRlIHRyYW5zaXRpb24uXG4gKi9cblxuLyoqXG4gKiBMb2NhbCBjbGVhbnVwIGhvb2sgdGhhdCBydW5zIHRyYW5zYWN0aW9uYWxseSB3aXRoIHNlbGVjdGVkIHNjb3BlIHJlc2V0cy5cbiAqIEB0eXBlZGVmIHsoYXJnczoge2Nvbm5lY3Rpb246IGltcG9ydChcIi4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0IHwgbnVsbCwgc2NvcGVzOiBTZXJpYWxpemVkU3luY1Njb3BlW119KSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZH0gU3luY0NsaWVudFNjb3BlQ2xlYW51cFxuICovXG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc3RvcHBpbmcgYW5kIHJlc2V0dGluZyBhIHN5bmMgY2xpZW50IGxpZmVjeWNsZS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRTdG9wT3B0aW9uc1xuICogQHByb3BlcnR5IHtTeW5jQ2xpZW50U2NvcGVDbGVhbnVwfSBbY2xlYW51cF0gLSBBcHAtb3duZWQgbG9jYWwtcm93IHB1cmdlIHJ1biBhdG9taWNhbGx5IHdpdGggcmVzZXRTY29wZXMuXG4gKiBAcHJvcGVydHkge1NlcmlhbGl6ZWRTeW5jU2NvcGVbXX0gW3Jlc2V0U2NvcGVzXSAtIFNlbGVjdGVkIHNjb3BlIHJvd3MgdG8gZGVhY3RpdmF0ZSBhbmQgcmVzdGFydCBmcm9tIGEgbnVsbCBjdXJzb3IuXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBhdG9taWNhbGx5IHJlcGxhY2luZyB0aGUgZXh0ZXJuYWwgaWRlbnRpdHkgcmVhZCBieSBzeW5jLmNsaWVudC5cbiAqIEB0eXBlZGVmIHtTeW5jQ2xpZW50U3RvcE9wdGlvbnMgJiB7XG4gKiAgIHJlcGxhY2U6ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkLFxuICogICBzdWJzY3JpYmVVc2VyU2NvcGU/OiBib29sZWFuXG4gKiB9fSBTeW5jQ2xpZW50UmVwbGFjZUlkZW50aXR5T3B0aW9uc1xuICovXG5cbi8qKlxuICogSW50ZXJuYWwgZGVyaXZlZCBzeW5jIGNsaWVudCBjb25maWd1cmF0aW9uIGJ1aWx0IGJ5IHRoZSBTeW5jQ2xpZW50XG4gKiBjb25zdHJ1Y3RvciDigJQgbm90IGFuIGFwcC1mYWNpbmcgQVBJLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudENvbmZpZ1xuICogQHByb3BlcnR5IHsoKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz59IGF1dGhlbnRpY2F0aW9uVG9rZW4gLSBSZXNvbHZlcyB0aGUgYXV0aCB0b2tlbiBzZW50IHdpdGggc3luYyByZXF1ZXN0cy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbYmF0Y2hTaXplXSAtIE1heCBzeW5jcyBwZXIgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBjb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBvd25pbmcgdGhlIHNjb3BlLXN0b3JlIGRhdGFiYXNlLlxuICogQHByb3BlcnR5IHsoKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn0gW2lzT25saW5lXSAtIENvbm5lY3Rpdml0eSBnYXRlIGZvciBwdWxscyBhbmQgcmVwbGF5cy4gRGVmYXVsdHMgdG8gYWx3YXlzIG9ubGluZS5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtzY29wZTogU2VyaWFsaXplZFN5bmNTY29wZX0pID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+fSBbbGVnYWN5Q3Vyc29yXSAtIFNlZWRzIGEgbmV3bHkgZGVjbGFyZWQgc2NvcGUncyBjdXJzb3IgKGUuZy4gZnJvbSBhIHByZS1zY29wZSBjdXJzb3Igc3RvcmUpIHNvIGRldmljZXMgZG9uJ3QgcmUtcHVsbCBldmVyeXRoaW5nLlxuICogQHByb3BlcnR5IHsoZXJyb3I6IEVycm9yKSA9PiB2b2lkfSBbb25FcnJvcl0gLSBSZXBvcnRzIGJhY2tncm91bmQgcmVwbGF5L3B1bGwgZmFpbHVyZXMuIERlZmF1bHRzIHRvIHJldGhyb3dpbmcuXG4gKiBAcHJvcGVydHkgeyhwYXlsb2FkOiBpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1JlcXVlc3QgJiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9LCBvcHRpb25zPzoge3NpZ25hbD86IEFib3J0U2lnbmFsfSkgPT4gUHJvbWlzZTxpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1Jlc3BvbnNlPn0gcG9zdENoYW5nZXMgLSBQb3N0cyBvbmUgY2hhbmdlcyByZXF1ZXN0LlxuICogQHByb3BlcnR5IHsocGF5bG9hZDoge2F1dGhlbnRpY2F0aW9uVG9rZW46IHN0cmluZywgc3luY3M6IEFycmF5PFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pj59LCBvcHRpb25zPzoge3NpZ25hbD86IEFib3J0U2lnbmFsfSkgPT4gUHJvbWlzZTxpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVwbGF5UmVzcG9uc2U+fSBwb3N0UmVwbGF5IC0gUG9zdHMgb25lIHJlcGxheSByZXF1ZXN0LlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLlZlbG9jaW91c1N5bmNDbGllbnRSZWFsdGltZUNvbmZpZ3VyYXRpb259IFtyZWFsdGltZV0gLSBSZWFsdGltZSBwdXNoIGNvbmZpZ3VyYXRpb24gY29uc3VtZWQgYnkgYHN1YnNjcmliZVJlYWx0aW1lKC4uLilgLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9yZW1vdGUtcmVxdWVzdC1jb250ZXh0LmpzXCIpLlJlbW90ZVJlcXVlc3RDb250ZXh0fSByZXF1ZXN0Q29udGV4dCAtIEltbXV0YWJsZSBzY2FsYXIgY29udGV4dCBjYXB0dXJlZCBmb3IgdGhpcyBjbGllbnQuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZz59IHJlc291cmNlcyAtIERlcml2ZWQgcmVzb3VyY2UgcG9saWNpZXMga2V5ZWQgYnkgcmVzb3VyY2UvbW9kZWwgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IHN5bmNNb2RlbCAtIExvY2FsIHBlbmRpbmctc3luYyBtb2RlbCBjbGFzcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGF0YWJhc2VJZGVudGlmaWVyXSAtIFRlbmFudC1zY29wZWQgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vdGVuYW50cy90ZW5hbnQtaGFuZGxlLmpzXCIpLmRlZmF1bHR9IFt0ZW5hbnRIYW5kbGVdIC0gVGVuYW50LXNjb3BlZCBpbW11dGFibGUgaGFuZGxlLlxuICogQHByb3BlcnR5IHtTeW5jQ2xpZW50U2hhcmVkQ29ubmVjdGlvbn0gW3dlYnNvY2tldENsaWVudF0gLSBTaGFyZWQgYXBwLWxpZmV0aW1lIHdlYnNvY2tldCBjbGllbnQgaW5zdGFuY2UgKHRoZSBsb3ctbGV2ZWwgc2hhcmVkLWNvbm5lY3Rpb24gZm9ybSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8ICgoKSA9PiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKX0gW3dlYnNvY2tldFVybF0gLSBTaGFyZWQgYXBwLWxpZmV0aW1lIHdlYnNvY2tldCBVUkwgdGhlIGZyYW1ld29yayBidWlsZHMgYSBjbGllbnQgZnJvbS5cbiAqL1xuXG5leHBvcnQge31cbiJdfQ==
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import Configuration from "../configuration.js";
|
|
2
2
|
import Logger from "../logger.js";
|
|
3
3
|
import SyncRealtimeBridge from "./sync-realtime-bridge.js";
|
|
4
|
+
/** Expected cooperative cancellation raised by a SyncClient lifecycle transition. */
|
|
5
|
+
export declare class SyncClientLifecycleAbortError extends Error {
|
|
6
|
+
/**
|
|
7
|
+
* Builds an expected lifecycle cancellation error.
|
|
8
|
+
* @param {string} message - Lifecycle cancellation reason.
|
|
9
|
+
*/
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
4
12
|
/**
|
|
5
13
|
* Declarative client-side sync driver.
|
|
6
14
|
*
|
|
@@ -50,6 +58,13 @@ export default class SyncClient {
|
|
|
50
58
|
_logger: Logger | {
|
|
51
59
|
error: (...messages: Array<ReturnType<typeof JSON.parse>>) => Promise<void>;
|
|
52
60
|
} | null;
|
|
61
|
+
/** @type {Set<Promise<unknown>>} */
|
|
62
|
+
_activeLifecycleWork: Set<Promise<unknown>>;
|
|
63
|
+
_lifecycleAbortController: AbortController;
|
|
64
|
+
_lifecycleGeneration: number;
|
|
65
|
+
_lifecycleTransitionCount: number;
|
|
66
|
+
/** @type {Promise<void>} */
|
|
67
|
+
_lifecycleTransitionPromise: Promise<void>;
|
|
53
68
|
_started: boolean;
|
|
54
69
|
/**
|
|
55
70
|
* Builds the sync client by deriving everything from the app's Velocious
|
|
@@ -73,10 +88,84 @@ export default class SyncClient {
|
|
|
73
88
|
*/
|
|
74
89
|
start(): Promise<void>;
|
|
75
90
|
/**
|
|
76
|
-
* Unregisters all tracking callbacks
|
|
91
|
+
* Unregisters all tracking callbacks, aborts in-flight pull/replay/realtime
|
|
92
|
+
* work and resolves after it is quiescent. Optional selected scope reset and
|
|
93
|
+
* app-owned cleanup happen after old work drains.
|
|
94
|
+
* @param {import("./sync-client-types.js").SyncClientStopOptions} [options] - Stop and selected-scope reset options.
|
|
95
|
+
* @returns {Promise<void>}
|
|
96
|
+
*/
|
|
97
|
+
stop(options?: import("./sync-client-types.js").SyncClientStopOptions): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Aborts and drains current work, then atomically resets selected scope
|
|
100
|
+
* cursors together with an optional app-owned local-row cleanup hook.
|
|
101
|
+
* Tracking declarations remain registered so the same client may continue.
|
|
102
|
+
* @param {import("./sync-client-types.js").SerializedSyncScope[]} scopes - Selected scopes to reset.
|
|
103
|
+
* @param {{cleanup?: import("./sync-client-types.js").SyncClientScopeCleanup}} [options] - Scope cleanup options.
|
|
104
|
+
* @returns {Promise<void>}
|
|
105
|
+
*/
|
|
106
|
+
resetScopes(scopes: import("./sync-client-types.js").SerializedSyncScope[], options?: {
|
|
107
|
+
cleanup?: import("./sync-client-types.js").SyncClientScopeCleanup;
|
|
108
|
+
}): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Atomically replaces the external identity read by the configured auth and
|
|
111
|
+
* scope-owner resolvers: old work is aborted and drained, selected private
|
|
112
|
+
* scope state/cache is reset, then the app's replacement callback runs while
|
|
113
|
+
* new sync work remains behind the lifecycle barrier. Optionally subscribes
|
|
114
|
+
* the new user scope before resolving.
|
|
115
|
+
* @param {import("./sync-client-types.js").SyncClientReplaceIdentityOptions} options - Identity replacement contract.
|
|
116
|
+
* @returns {Promise<void>}
|
|
117
|
+
*/
|
|
118
|
+
replaceIdentity(options: import("./sync-client-types.js").SyncClientReplaceIdentityOptions): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Runs one callback while holding the current lifecycle generation and
|
|
121
|
+
* tracks it so stop/reset/identity replacement can await quiescence.
|
|
122
|
+
* @template Result
|
|
123
|
+
* @param {(signal: AbortSignal) => Promise<Result>} callback - Generation-bound work.
|
|
124
|
+
* @returns {Promise<Result>} Callback result.
|
|
125
|
+
*/
|
|
126
|
+
_runLifecycleWork<Result>(callback: (signal: AbortSignal) => Promise<Result>): Promise<Result>;
|
|
127
|
+
/**
|
|
128
|
+
* Runs mutation queueing only while the lifecycle generation captured by the
|
|
129
|
+
* caller remains active. Unlike pulls, a mutation must never wait through an
|
|
130
|
+
* identity transition and then persist under the replacement identity.
|
|
131
|
+
* @template Result
|
|
132
|
+
* @param {number} lifecycleGeneration - Generation owning the mutation.
|
|
133
|
+
* @param {() => Promise<Result>} callback - Mutation queueing work.
|
|
134
|
+
* @returns {Promise<Result>} Callback result.
|
|
135
|
+
*/
|
|
136
|
+
_runMutationLifecycleWork<Result>(lifecycleGeneration: number, callback: () => Promise<Result>): Promise<Result>;
|
|
137
|
+
/**
|
|
138
|
+
* Rejects mutation queueing captured outside the current stable lifecycle.
|
|
139
|
+
* @param {number} lifecycleGeneration - Generation owning the mutation.
|
|
140
|
+
* @returns {void}
|
|
141
|
+
*/
|
|
142
|
+
_assertMutationLifecycleGeneration(lifecycleGeneration: number): void;
|
|
143
|
+
/**
|
|
144
|
+
* Serializes a lifecycle barrier: cooperatively aborts transport/start work,
|
|
145
|
+
* stops new realtime delivery, awaits old applies/replays/pulls, rejects on
|
|
146
|
+
* unexpected old-work failures, then runs the reset/replacement callback.
|
|
147
|
+
* @param {() => Promise<void>} callback - Transition action after quiescence.
|
|
148
|
+
* @returns {Promise<void>}
|
|
149
|
+
*/
|
|
150
|
+
_runLifecycleTransition(callback: () => Promise<void>): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Resets selected scopes through the framework-owned store.
|
|
153
|
+
* @param {import("./sync-client-types.js").SyncClientStopOptions} options - Reset options.
|
|
154
|
+
* @returns {Promise<void>}
|
|
155
|
+
*/
|
|
156
|
+
_resetScopesForLifecycle(options: import("./sync-client-types.js").SyncClientStopOptions): Promise<void>;
|
|
157
|
+
/**
|
|
158
|
+
* Whether an error is the framework's narrow expected lifecycle abort.
|
|
159
|
+
* @param {unknown} error - Candidate error.
|
|
160
|
+
* @returns {boolean} Whether the error is an expected lifecycle abort.
|
|
161
|
+
*/
|
|
162
|
+
isLifecycleAbort(error: unknown): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Throws the current lifecycle reason when the signal is aborted.
|
|
165
|
+
* @param {AbortSignal} signal - Lifecycle signal.
|
|
77
166
|
* @returns {void}
|
|
78
167
|
*/
|
|
79
|
-
|
|
168
|
+
_throwIfLifecycleAborted(signal: AbortSignal): void;
|
|
80
169
|
/**
|
|
81
170
|
* Resolves and validates the tracked operations for a resource config.
|
|
82
171
|
* Tracking is on by default: models declaring `static sync` without a `track`
|
|
@@ -210,6 +299,19 @@ export default class SyncClient {
|
|
|
210
299
|
onProgress?: (progress: import("./sync-api-client-types.js").SyncPullProgress) => void;
|
|
211
300
|
upstreamRefresh?: boolean;
|
|
212
301
|
}): Promise<import("./sync-api-client-types.js").SyncChangesResult | null>;
|
|
302
|
+
/**
|
|
303
|
+
* Pull implementation bound to one lifecycle generation.
|
|
304
|
+
* @param {object} args - Pull args.
|
|
305
|
+
* @param {(progress: import("./sync-api-client-types.js").SyncPullProgress) => void} [args.onProgress] - Progress callback.
|
|
306
|
+
* @param {AbortSignal} args.signal - Lifecycle cancellation signal.
|
|
307
|
+
* @param {boolean} [args.upstreamRefresh] - User-initiated upstream refresh marker.
|
|
308
|
+
* @returns {Promise<import("./sync-api-client-types.js").SyncChangesResult | null>} Combined pull result, or null while offline.
|
|
309
|
+
*/
|
|
310
|
+
_pull({ onProgress, signal, upstreamRefresh }: {
|
|
311
|
+
onProgress?: (progress: import("./sync-api-client-types.js").SyncPullProgress) => void;
|
|
312
|
+
signal: AbortSignal;
|
|
313
|
+
upstreamRefresh?: boolean;
|
|
314
|
+
}): Promise<import("./sync-api-client-types.js").SyncChangesResult | null>;
|
|
213
315
|
/**
|
|
214
316
|
* Builds the derived remote-change applier shared by pulls and realtime pushes:
|
|
215
317
|
* applies through the declared resource configs, registers each written record
|
|
@@ -255,9 +357,10 @@ export default class SyncClient {
|
|
|
255
357
|
/**
|
|
256
358
|
* Declares and activates the user scope for every pullable resource, then
|
|
257
359
|
* subscribes realtime and pulls.
|
|
360
|
+
* @param {AbortSignal} signal - Lifecycle cancellation signal.
|
|
258
361
|
* @returns {Promise<void>}
|
|
259
362
|
*/
|
|
260
|
-
_subscribeUserScope(): Promise<void>;
|
|
363
|
+
_subscribeUserScope(signal: AbortSignal): Promise<void>;
|
|
261
364
|
/**
|
|
262
365
|
* Unsubscribes the user scope: deactivates the per-resource user scopes and
|
|
263
366
|
* closes the realtime channel subscriptions. The shared websocket connection
|
|
@@ -338,6 +441,12 @@ export default class SyncClient {
|
|
|
338
441
|
* @returns {Promise<void>}
|
|
339
442
|
*/
|
|
340
443
|
replayPending(): Promise<void>;
|
|
444
|
+
/**
|
|
445
|
+
* Replay implementation bound to one lifecycle generation.
|
|
446
|
+
* @param {AbortSignal} signal - Lifecycle cancellation signal.
|
|
447
|
+
* @returns {Promise<void>}
|
|
448
|
+
*/
|
|
449
|
+
_replayPending(signal: AbortSignal): Promise<void>;
|
|
341
450
|
/**
|
|
342
451
|
* Records an authoritative remote observation so an in-flight acknowledgement
|
|
343
452
|
* cannot rebase a successor across that observation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAE/C,OAAO,MAAM,MAAM,cAAc,CAAA;AAQjC,OAAO,kBAAkB,MAAM,2BAA2B,CAAA;AAqC1D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAyE3B,gEAAgE;IAC3D,MAAM,EADA,OAAO,wBAAwB,EAAE,gBAAgB;IAmBvD,aAAa;IACb,iBAAiB;IACjB,uBAAuB;IAG5B,wCAAwC;IACnC,eAAe,EADT,kBAAkB,GAAG,IAAI;IAEpC,sMAAsM;IACjM,eAAe,EADT,OAAO,wBAAwB,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS;IAEzF,mCAAmC;IAC9B,0BAA0B,EADpB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE/B,4DAA4D;IACvD,eAAe,EADT,YAAY,GAAG,aAAa,GAAG,cAAc;IAExD,6DAA6D;IACxD,WAAW,EADL,OAAO,uBAAuB,EAAE,OAAO,GAAG,IAAI;IAEzD,mCAAmC;IAC9B,gBAAgB,EADV,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE/B,6FAA6F;IACxF,oBAAoB,EADd,MAAM,CAAC,MAAM,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,GAAG,IAAI;IAEzF,6OAA6O;IACxO,iBAAiB,EADX,KAAK,CAAC;QAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;KAAC,CAAC;IAEzO,8BAA8B;IACzB,mBAAmB,EADb,OAAO,CAAC,MAAM,CAAC;IAE1B,kCAAkC;IAC7B,kBAAkB,EADZ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAE9B,6DAA6D;IACxD,qBAAqB,EADf,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD,qBAAqB;IAC1B,4GAA4G;IACvG,OAAO,EADD,MAAM,GAAG;QAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"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"}
|