velocious 1.0.500 → 1.0.502

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.
@@ -11,6 +11,21 @@ export type SerializedSyncScope = {
11
11
  */
12
12
  resourceType: string;
13
13
  };
14
+ /**
15
+ * Static realtime channel declaration on a model's `static sync`, for channels
16
+ * whose name and params are static. Channels needing runtime params (like
17
+ * eventId) belong in the `sync.client.realtime.channels` callback instead.
18
+ */
19
+ export type ModelSyncRealtimeDeclaration = {
20
+ /**
21
+ * - Server channel name to subscribe.
22
+ */
23
+ channel: string;
24
+ /**
25
+ * - Static subscribe params. The framework injects `authenticationToken` automatically.
26
+ */
27
+ params?: Record<string, any> | undefined;
28
+ };
14
29
  /**
15
30
  * Declarative per-resource sync policy.
16
31
  */
@@ -62,11 +77,15 @@ export type SyncClientResourceConfig = {
62
77
  record: unknown;
63
78
  }) => Record<string, unknown>) | undefined;
64
79
  /**
65
- * - Enables automatic mutation tracking through model lifecycle callbacks.
80
+ * - Automatic mutation tracking policy. On by default (creates and updates queue automatically); `false` opts the resource out, `true` adds destroys, `{operations}` narrows the tracked operations.
66
81
  */
67
82
  track?: boolean | {
68
83
  operations: Array<"create" | "update" | "destroy">;
69
84
  } | undefined;
85
+ /**
86
+ * - Static realtime channel this resource subscribes through `subscribeRealtime(...)`.
87
+ */
88
+ realtime?: ModelSyncRealtimeDeclaration | undefined;
70
89
  };
71
90
  /**
72
91
  * Model-level client sync declaration read from `static sync` by
@@ -110,7 +129,7 @@ export type ModelSyncDeclarationConfig = {
110
129
  record: unknown;
111
130
  }) => string) | undefined;
112
131
  /**
113
- * - Enables automatic mutation tracking; an array is shorthand for {operations}.
132
+ * - Automatic mutation tracking policy; an array is shorthand for {operations}. On by default (creates and updates queue automatically); `false` opts the model out (for models written by non-user flows), `true` adds destroys.
114
133
  */
115
134
  track?: boolean | ("update" | "destroy" | "create")[] | {
116
135
  operations: Array<"create" | "update" | "destroy">;
@@ -122,6 +141,10 @@ export type ModelSyncDeclarationConfig = {
122
141
  operation: "create" | "update" | "destroy";
123
142
  record: unknown;
124
143
  }) => Record<string, unknown>) | undefined;
144
+ /**
145
+ * - Static realtime channel this resource subscribes through `subscribeRealtime(...)`; use the `sync.client.realtime.channels` callback for channels needing runtime params.
146
+ */
147
+ realtime?: ModelSyncRealtimeDeclaration | undefined;
125
148
  };
126
149
  export type ModelSyncDeclaration = boolean | ModelSyncDeclarationConfig;
127
150
  /**
@@ -193,6 +216,10 @@ export type SyncClientConfig = {
193
216
  authenticationToken: string;
194
217
  syncs: Array<Record<string, unknown>>;
195
218
  }) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>;
219
+ /**
220
+ * - Realtime push configuration consumed by `subscribeRealtime(...)`.
221
+ */
222
+ realtime?: import("../configuration-types.js").VelociousSyncClientRealtimeConfiguration | undefined;
196
223
  /**
197
224
  * - Derived resource policies keyed by resource/model name.
198
225
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":";;;;;;;gBAKc,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;kBACjB,MAAM;;;;;;;;;gBAMN,OAAC;;;;;;;;;;;;iBAED,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;iBAC9E,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;kCAGlD;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;0BAC9E;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;;oBAC7D,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;;;;;;;;iBAQ7D,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;iBAGrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;;;;;kCAE3D;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;;oBACrB,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;0BAC/F;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;mCAGpF,OAAO,GAAG,0BAA0B;;;;;;;;;;;;;;2BAQ7B;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;;gBAE9E,OAAC;;;;;;;;;;yBAOD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;mBAE9B,OAAO,qBAAqB,EAAE,OAAO;;;;sBAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;;;2BACzB;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;uBACtE,KAAK,KAAK,IAAI;;;;iBACtB,CAAC,OAAO,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,GAAG;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,mBAAmB,CAAC;;;;gBACtK,CAAC,OAAO,EAAE;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,kBAAkB,CAAC;;;;eAC7I,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;;;;eACxC,OAAC"}
1
+ {"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":";;;;;;;gBAKc,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;kBACjB,MAAM;;;;;;;;;;;aAQN,MAAM;;;;;;;;;;;;;gBAON,OAAC;;;;;;;;;;;;iBAED,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;iBAC9E,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;kCAGlD;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;0BAC9E;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;;oBAC7D,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;iBAS7D,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;iBAGrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;;;;;kCAE3D;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;;oBACrB,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;0BAC/F;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;;;mCAIpF,OAAO,GAAG,0BAA0B;;;;;;;;;;;;;;2BAQ7B;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;;gBAE9E,OAAC;;;;;;;;;;yBAOD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;mBAE9B,OAAO,qBAAqB,EAAE,OAAO;;;;sBAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;;;2BACzB;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;uBACtE,KAAK,KAAK,IAAI;;;;iBACtB,CAAC,OAAO,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,GAAG;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,mBAAmB,CAAC;;;;gBACtK,CAAC,OAAO,EAAE;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,kBAAkB,CAAC;;;;;;;;eAE7I,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;;;;eACxC,OAAC"}
@@ -1,3 +1,3 @@
1
1
  // @ts-check
2
2
  export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQ2xpZW50LWRlY2xhcmVkIHN5bmMgc2NvcGUgc2VyaWFsaXplZCBmcm9tIGEgbW9kZWwgcXVlcnkuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTZXJpYWxpemVkU3luY1Njb3BlXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+fSBjb25kaXRpb25zIC0gUGxhaW4gYXR0cmlidXRlIGNvbmRpdGlvbnMgZnJvbSB0aGUgcXVlcnkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UvbW9kZWwgbmFtZSB0aGUgc2NvcGUgd2FzIGRlY2xhcmVkIGZvci5cbiAqL1xuXG4vKipcbiAqIERlY2xhcmF0aXZlIHBlci1yZXNvdXJjZSBzeW5jIHBvbGljeS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZ1xuICogQHByb3BlcnR5IHs/fSBtb2RlbENsYXNzIC0gTG9jYWwgbW9kZWwgY2xhc3MgZm9yIHRoaXMgcmVzb3VyY2UuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImF0dHJpYnV0ZXNcIl19IFthdHRyaWJ1dGVzXSAtIFB1bGwtYXBwbHkgYXR0cmlidXRlIG1hcHBlci4gUmVxdWlyZWQgZm9yIHJlc291cmNlcyB0aGF0IHJlY2VpdmUgcHVsbGVkIGNoYW5nZXMuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRcIl19IFtmaW5kUmVjb3JkXSAtIEN1c3RvbSBwdWxsLWFwcGx5IHJlY29yZCByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZEZvckRlbGV0ZVwiXX0gW2ZpbmRSZWNvcmRGb3JEZWxldGVdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgZGVsZXRlIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhZnRlckFwcGx5XCJdfSBbYWZ0ZXJBcHBseV0gLSBQb3N0LWFwcGx5IGhvb2suXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbYm9vbGVhbkF0dHJpYnV0ZXNdIC0gQXR0cmlidXRlcyBjb2VyY2VkIHRocm91Z2ggc3luYyBib29sZWFuIHBhcnNpbmcgd2hlbiBxdWV1ZWluZy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFtsb2NhbE9ubHlBdHRyaWJ1dGVzXSAtIEF0dHJpYnV0ZXMgc3RyaXBwZWQgZnJvbSBxdWV1ZWQgcGF5bG9hZHMuXG4gKiBAcHJvcGVydHkge1widXBzZXJ0XCIgfCAoKGFyZ3M6IHtvcGVyYXRpb246IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCIsIHJlY29yZDogP30pID0+IHN0cmluZyl9IFtzeW5jVHlwZV0gLSBNYXBzIGEgbXV0YXRpb24gb3BlcmF0aW9uIHRvIGEgc3luYyB0eXBlLiBUaGUgXCJ1cHNlcnRcIiBmbGFnIHF1ZXVlcyBjcmVhdGVzIGFuZCB1cGRhdGVzIGFzIFwidXBkYXRlXCIgcm93cyAodGhlIHNlcnZlciB1cHNlcnRzIGJ5IHJlc291cmNlIGlkKSBhbmQgZGVzdHJveXMgYXMgXCJkZWxldGVcIi4gRGVmYXVsdHMgdG8gdGhlIG9wZXJhdGlvbiBuYW1lIHdpdGggZGVzdHJveSBtYXBwZWQgdG8gXCJkZWxldGVcIi5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtvcGVyYXRpb246IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCIsIHJlY29yZDogP30pID0+IFJlY29yZDxzdHJpbmcsID8+fSBbdHJhY2tlZERhdGFdIC0gQ3VzdG9tIHF1ZXVlZC1wYXlsb2FkIGJ1aWxkZXIgZm9yIHRyYWNrZWQgbXV0YXRpb25zLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwge29wZXJhdGlvbnM6IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+fX0gW3RyYWNrXSAtIEVuYWJsZXMgYXV0b21hdGljIG11dGF0aW9uIHRyYWNraW5nIHRocm91Z2ggbW9kZWwgbGlmZWN5Y2xlIGNhbGxiYWNrcy5cbiAqL1xuXG4vKipcbiAqIE1vZGVsLWxldmVsIGNsaWVudCBzeW5jIGRlY2xhcmF0aW9uIHJlYWQgZnJvbSBgc3RhdGljIHN5bmNgIGJ5XG4gKiBgU3luY0NsaWVudC5mcm9tQ29uZmlndXJhdGlvbiguLi4pYC4gYHRydWVgIG9wdHMgdGhlIG1vZGVsIGluIHdpdGggYWxsXG4gKiBkZWZhdWx0czsgYW4gb2JqZWN0IGN1c3RvbWl6ZXMgdGhlIGRlcml2ZWQgcmVzb3VyY2UgY29uZmlnLlxuICogQHR5cGVkZWYge29iamVjdH0gTW9kZWxTeW5jRGVjbGFyYXRpb25Db25maWdcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEV4dHJhIGJvb2xlYW4gYXR0cmlidXRlcyBtZXJnZWQgd2l0aCB0aGUgYm9vbGVhbiBjb2x1bW5zIGRlcml2ZWQgZnJvbSBjb2x1bW4gdHlwZXMuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRcIl19IFtmaW5kUmVjb3JkXSAtIEN1c3RvbSBwdWxsLWFwcGx5IHJlY29yZCByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZEZvckRlbGV0ZVwiXX0gW2ZpbmRSZWNvcmRGb3JEZWxldGVdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgZGVsZXRlIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2xvY2FsT25seUF0dHJpYnV0ZXNdIC0gRXh0cmEgbG9jYWwtb25seSBhdHRyaWJ1dGVzIG1lcmdlZCB3aXRoIHRoZSBkZXJpdmVkIHByaW1hcnkga2V5LCBjcmVhdGVkQXQvdXBkYXRlZEF0LCBhbmQgc3luYyBib29ra2VlcGluZyBhdHRyaWJ1dGVzLlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBzdHJpbmcpfSBbc3luY1R5cGVdIC0gU3luYyB0eXBlIGZsYWcgb3IgbWFwcGVyIChzZWUgU3luY0NsaWVudFJlc291cmNlQ29uZmlnKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+IHwge29wZXJhdGlvbnM6IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+fX0gW3RyYWNrXSAtIEVuYWJsZXMgYXV0b21hdGljIG11dGF0aW9uIHRyYWNraW5nOyBhbiBhcnJheSBpcyBzaG9ydGhhbmQgZm9yIHtvcGVyYXRpb25zfS5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtvcGVyYXRpb246IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCIsIHJlY29yZDogP30pID0+IFJlY29yZDxzdHJpbmcsID8+fSBbdHJhY2tlZERhdGFdIC0gQ3VzdG9tIHF1ZXVlZC1wYXlsb2FkIGJ1aWxkZXIgZm9yIHRyYWNrZWQgbXV0YXRpb25zLlxuICovXG5cbi8qKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IE1vZGVsU3luY0RlY2xhcmF0aW9uQ29uZmlnfSBNb2RlbFN5bmNEZWNsYXJhdGlvbiAqL1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJ1aWxkaW5nIGEgc3luYyBjbGllbnQuIEV2ZXJ5dGhpbmcgZWxzZSDigJQgcmVzb3VyY2VzLCB0cmFuc3BvcnRcbiAqIFBPU1RlcnMsIGF1dGgsIGNvbm5lY3Rpdml0eSwgYmF0Y2ggc2l6ZSDigJQgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb25maWd1cmF0aW9uJ3NcbiAqIHJlZ2lzdGVyZWQgbW9kZWxzIChgc3RhdGljIHN5bmNgKSBhbmQgaXRzIGBzeW5jLmNsaWVudGAgYmxvY2suXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50T3B0aW9uc1xuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IFtjb25maWd1cmF0aW9uXSAtIENvbmZpZ3VyYXRpb24gb3duaW5nIHRoZSByZWdpc3RlcmVkIG1vZGVscywgdGhlIGBzeW5jLmNsaWVudGAgYmxvY2ssIGFuZCB0aGUgc2NvcGUtc3RvcmUgZGF0YWJhc2UuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gW2xlZ2FjeUN1cnNvcl0gLSBTZWVkcyBhIG5ld2x5IGRlY2xhcmVkIHNjb3BlJ3MgY3Vyc29yIChlLmcuIGZyb20gYSBwcmUtc2NvcGUgY3Vyc29yIHN0b3JlKSBzbyBkZXZpY2VzIGRvbid0IHJlLXB1bGwgZXZlcnl0aGluZy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLXNjb3BlLXN0b3JlLmpzXCIpLmRlZmF1bHR9IFtzY29wZVN0b3JlXSAtIFNjb3BlIHN0b3JlIG92ZXJyaWRlICh0ZXN0cykuXG4gKiBAcHJvcGVydHkgez99IFtzeW5jTW9kZWxdIC0gUGVuZGluZy1zeW5jIG1vZGVsIG92ZXJyaWRlLiBEZWZhdWx0cyB0byB0aGUgcmVnaXN0ZXJlZCBcIlN5bmNcIiBtb2RlbC5cbiAqL1xuXG4vKipcbiAqIEludGVybmFsIGRlcml2ZWQgc3luYyBjbGllbnQgY29uZmlndXJhdGlvbiBidWlsdCBieSB0aGUgU3luY0NsaWVudFxuICogY29uc3RydWN0b3Ig4oCUIG5vdCBhbiBhcHAtZmFjaW5nIEFQSS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRDb25maWdcbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+fSBhdXRoZW50aWNhdGlvblRva2VuIC0gUmVzb2x2ZXMgdGhlIGF1dGggdG9rZW4gc2VudCB3aXRoIHN5bmMgcmVxdWVzdHMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2JhdGNoU2l6ZV0gLSBNYXggc3luY3MgcGVyIHJlcXVlc3QuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gb3duaW5nIHRoZSBzY29wZS1zdG9yZSBkYXRhYmFzZS5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj59IFtpc09ubGluZV0gLSBDb25uZWN0aXZpdHkgZ2F0ZSBmb3IgcHVsbHMgYW5kIHJlcGxheXMuIERlZmF1bHRzIHRvIGFsd2F5cyBvbmxpbmUuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gW2xlZ2FjeUN1cnNvcl0gLSBTZWVkcyBhIG5ld2x5IGRlY2xhcmVkIHNjb3BlJ3MgY3Vyc29yIChlLmcuIGZyb20gYSBwcmUtc2NvcGUgY3Vyc29yIHN0b3JlKSBzbyBkZXZpY2VzIGRvbid0IHJlLXB1bGwgZXZlcnl0aGluZy5cbiAqIEBwcm9wZXJ0eSB7KGVycm9yOiBFcnJvcikgPT4gdm9pZH0gW29uRXJyb3JdIC0gUmVwb3J0cyBiYWNrZ3JvdW5kIHJlcGxheS9wdWxsIGZhaWx1cmVzLiBEZWZhdWx0cyB0byByZXRocm93aW5nLlxuICogQHByb3BlcnR5IHsocGF5bG9hZDogaW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY0NoYW5nZXNSZXF1ZXN0ICYge3Njb3BlOiBTZXJpYWxpemVkU3luY1Njb3BlfSkgPT4gUHJvbWlzZTxpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1Jlc3BvbnNlPn0gcG9zdENoYW5nZXMgLSBQb3N0cyBvbmUgY2hhbmdlcyByZXF1ZXN0LlxuICogQHByb3BlcnR5IHsocGF5bG9hZDoge2F1dGhlbnRpY2F0aW9uVG9rZW46IHN0cmluZywgc3luY3M6IEFycmF5PFJlY29yZDxzdHJpbmcsID8+Pn0pID0+IFByb21pc2U8aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1JlcGxheVJlc3BvbnNlPn0gcG9zdFJlcGxheSAtIFBvc3RzIG9uZSByZXBsYXkgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgU3luY0NsaWVudFJlc291cmNlQ29uZmlnPn0gcmVzb3VyY2VzIC0gRGVyaXZlZCByZXNvdXJjZSBwb2xpY2llcyBrZXllZCBieSByZXNvdXJjZS9tb2RlbCBuYW1lLlxuICogQHByb3BlcnR5IHs/fSBzeW5jTW9kZWwgLSBMb2NhbCBwZW5kaW5nLXN5bmMgbW9kZWwgY2xhc3MuXG4gKi9cblxuZXhwb3J0IHt9XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQ2xpZW50LWRlY2xhcmVkIHN5bmMgc2NvcGUgc2VyaWFsaXplZCBmcm9tIGEgbW9kZWwgcXVlcnkuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTZXJpYWxpemVkU3luY1Njb3BlXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+fSBjb25kaXRpb25zIC0gUGxhaW4gYXR0cmlidXRlIGNvbmRpdGlvbnMgZnJvbSB0aGUgcXVlcnkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UvbW9kZWwgbmFtZSB0aGUgc2NvcGUgd2FzIGRlY2xhcmVkIGZvci5cbiAqL1xuXG4vKipcbiAqIFN0YXRpYyByZWFsdGltZSBjaGFubmVsIGRlY2xhcmF0aW9uIG9uIGEgbW9kZWwncyBgc3RhdGljIHN5bmNgLCBmb3IgY2hhbm5lbHNcbiAqIHdob3NlIG5hbWUgYW5kIHBhcmFtcyBhcmUgc3RhdGljLiBDaGFubmVscyBuZWVkaW5nIHJ1bnRpbWUgcGFyYW1zIChsaWtlXG4gKiBldmVudElkKSBiZWxvbmcgaW4gdGhlIGBzeW5jLmNsaWVudC5yZWFsdGltZS5jaGFubmVsc2AgY2FsbGJhY2sgaW5zdGVhZC5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGFubmVsIC0gU2VydmVyIGNoYW5uZWwgbmFtZSB0byBzdWJzY3JpYmUuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+fSBbcGFyYW1zXSAtIFN0YXRpYyBzdWJzY3JpYmUgcGFyYW1zLiBUaGUgZnJhbWV3b3JrIGluamVjdHMgYGF1dGhlbnRpY2F0aW9uVG9rZW5gIGF1dG9tYXRpY2FsbHkuXG4gKi9cblxuLyoqXG4gKiBEZWNsYXJhdGl2ZSBwZXItcmVzb3VyY2Ugc3luYyBwb2xpY3kuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50UmVzb3VyY2VDb25maWdcbiAqIEBwcm9wZXJ0eSB7P30gbW9kZWxDbGFzcyAtIExvY2FsIG1vZGVsIGNsYXNzIGZvciB0aGlzIHJlc291cmNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkXCJdfSBbZmluZFJlY29yZF0gLSBDdXN0b20gcHVsbC1hcHBseSByZWNvcmQgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRGb3JEZWxldGVcIl19IFtmaW5kUmVjb3JkRm9yRGVsZXRlXSAtIEN1c3RvbSBwdWxsLWFwcGx5IGRlbGV0ZSByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEF0dHJpYnV0ZXMgY29lcmNlZCB0aHJvdWdoIHN5bmMgYm9vbGVhbiBwYXJzaW5nIHdoZW4gcXVldWVpbmcuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxPbmx5QXR0cmlidXRlc10gLSBBdHRyaWJ1dGVzIHN0cmlwcGVkIGZyb20gcXVldWVkIHBheWxvYWRzLlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBzdHJpbmcpfSBbc3luY1R5cGVdIC0gTWFwcyBhIG11dGF0aW9uIG9wZXJhdGlvbiB0byBhIHN5bmMgdHlwZS4gVGhlIFwidXBzZXJ0XCIgZmxhZyBxdWV1ZXMgY3JlYXRlcyBhbmQgdXBkYXRlcyBhcyBcInVwZGF0ZVwiIHJvd3MgKHRoZSBzZXJ2ZXIgdXBzZXJ0cyBieSByZXNvdXJjZSBpZCkgYW5kIGRlc3Ryb3lzIGFzIFwiZGVsZXRlXCIuIERlZmF1bHRzIHRvIHRoZSBvcGVyYXRpb24gbmFtZSB3aXRoIGRlc3Ryb3kgbWFwcGVkIHRvIFwiZGVsZXRlXCIuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBSZWNvcmQ8c3RyaW5nLCA/Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBBdXRvbWF0aWMgbXV0YXRpb24gdHJhY2tpbmcgcG9saWN5LiBPbiBieSBkZWZhdWx0IChjcmVhdGVzIGFuZCB1cGRhdGVzIHF1ZXVlIGF1dG9tYXRpY2FsbHkpOyBgZmFsc2VgIG9wdHMgdGhlIHJlc291cmNlIG91dCwgYHRydWVgIGFkZHMgZGVzdHJveXMsIGB7b3BlcmF0aW9uc31gIG5hcnJvd3MgdGhlIHRyYWNrZWQgb3BlcmF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIFN0YXRpYyByZWFsdGltZSBjaGFubmVsIHRoaXMgcmVzb3VyY2Ugc3Vic2NyaWJlcyB0aHJvdWdoIGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC5cbiAqL1xuXG4vKipcbiAqIE1vZGVsLWxldmVsIGNsaWVudCBzeW5jIGRlY2xhcmF0aW9uIHJlYWQgZnJvbSBgc3RhdGljIHN5bmNgIGJ5XG4gKiBgU3luY0NsaWVudC5mcm9tQ29uZmlndXJhdGlvbiguLi4pYC4gYHRydWVgIG9wdHMgdGhlIG1vZGVsIGluIHdpdGggYWxsXG4gKiBkZWZhdWx0czsgYW4gb2JqZWN0IGN1c3RvbWl6ZXMgdGhlIGRlcml2ZWQgcmVzb3VyY2UgY29uZmlnLlxuICogQHR5cGVkZWYge29iamVjdH0gTW9kZWxTeW5jRGVjbGFyYXRpb25Db25maWdcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEV4dHJhIGJvb2xlYW4gYXR0cmlidXRlcyBtZXJnZWQgd2l0aCB0aGUgYm9vbGVhbiBjb2x1bW5zIGRlcml2ZWQgZnJvbSBjb2x1bW4gdHlwZXMuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRcIl19IFtmaW5kUmVjb3JkXSAtIEN1c3RvbSBwdWxsLWFwcGx5IHJlY29yZCByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZEZvckRlbGV0ZVwiXX0gW2ZpbmRSZWNvcmRGb3JEZWxldGVdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgZGVsZXRlIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2xvY2FsT25seUF0dHJpYnV0ZXNdIC0gRXh0cmEgbG9jYWwtb25seSBhdHRyaWJ1dGVzIG1lcmdlZCB3aXRoIHRoZSBkZXJpdmVkIHByaW1hcnkga2V5LCBjcmVhdGVkQXQvdXBkYXRlZEF0LCBhbmQgc3luYyBib29ra2VlcGluZyBhdHRyaWJ1dGVzLlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBzdHJpbmcpfSBbc3luY1R5cGVdIC0gU3luYyB0eXBlIGZsYWcgb3IgbWFwcGVyIChzZWUgU3luY0NsaWVudFJlc291cmNlQ29uZmlnKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+IHwge29wZXJhdGlvbnM6IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+fX0gW3RyYWNrXSAtIEF1dG9tYXRpYyBtdXRhdGlvbiB0cmFja2luZyBwb2xpY3k7IGFuIGFycmF5IGlzIHNob3J0aGFuZCBmb3Ige29wZXJhdGlvbnN9LiBPbiBieSBkZWZhdWx0IChjcmVhdGVzIGFuZCB1cGRhdGVzIHF1ZXVlIGF1dG9tYXRpY2FsbHkpOyBgZmFsc2VgIG9wdHMgdGhlIG1vZGVsIG91dCAoZm9yIG1vZGVscyB3cml0dGVuIGJ5IG5vbi11c2VyIGZsb3dzKSwgYHRydWVgIGFkZHMgZGVzdHJveXMuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBSZWNvcmQ8c3RyaW5nLCA/Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIFN0YXRpYyByZWFsdGltZSBjaGFubmVsIHRoaXMgcmVzb3VyY2Ugc3Vic2NyaWJlcyB0aHJvdWdoIGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYDsgdXNlIHRoZSBgc3luYy5jbGllbnQucmVhbHRpbWUuY2hhbm5lbHNgIGNhbGxiYWNrIGZvciBjaGFubmVscyBuZWVkaW5nIHJ1bnRpbWUgcGFyYW1zLlxuICovXG5cbi8qKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IE1vZGVsU3luY0RlY2xhcmF0aW9uQ29uZmlnfSBNb2RlbFN5bmNEZWNsYXJhdGlvbiAqL1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJ1aWxkaW5nIGEgc3luYyBjbGllbnQuIEV2ZXJ5dGhpbmcgZWxzZSDigJQgcmVzb3VyY2VzLCB0cmFuc3BvcnRcbiAqIFBPU1RlcnMsIGF1dGgsIGNvbm5lY3Rpdml0eSwgYmF0Y2ggc2l6ZSDigJQgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb25maWd1cmF0aW9uJ3NcbiAqIHJlZ2lzdGVyZWQgbW9kZWxzIChgc3RhdGljIHN5bmNgKSBhbmQgaXRzIGBzeW5jLmNsaWVudGAgYmxvY2suXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50T3B0aW9uc1xuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IFtjb25maWd1cmF0aW9uXSAtIENvbmZpZ3VyYXRpb24gb3duaW5nIHRoZSByZWdpc3RlcmVkIG1vZGVscywgdGhlIGBzeW5jLmNsaWVudGAgYmxvY2ssIGFuZCB0aGUgc2NvcGUtc3RvcmUgZGF0YWJhc2UuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gW2xlZ2FjeUN1cnNvcl0gLSBTZWVkcyBhIG5ld2x5IGRlY2xhcmVkIHNjb3BlJ3MgY3Vyc29yIChlLmcuIGZyb20gYSBwcmUtc2NvcGUgY3Vyc29yIHN0b3JlKSBzbyBkZXZpY2VzIGRvbid0IHJlLXB1bGwgZXZlcnl0aGluZy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLXNjb3BlLXN0b3JlLmpzXCIpLmRlZmF1bHR9IFtzY29wZVN0b3JlXSAtIFNjb3BlIHN0b3JlIG92ZXJyaWRlICh0ZXN0cykuXG4gKiBAcHJvcGVydHkgez99IFtzeW5jTW9kZWxdIC0gUGVuZGluZy1zeW5jIG1vZGVsIG92ZXJyaWRlLiBEZWZhdWx0cyB0byB0aGUgcmVnaXN0ZXJlZCBcIlN5bmNcIiBtb2RlbC5cbiAqL1xuXG4vKipcbiAqIEludGVybmFsIGRlcml2ZWQgc3luYyBjbGllbnQgY29uZmlndXJhdGlvbiBidWlsdCBieSB0aGUgU3luY0NsaWVudFxuICogY29uc3RydWN0b3Ig4oCUIG5vdCBhbiBhcHAtZmFjaW5nIEFQSS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRDb25maWdcbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+fSBhdXRoZW50aWNhdGlvblRva2VuIC0gUmVzb2x2ZXMgdGhlIGF1dGggdG9rZW4gc2VudCB3aXRoIHN5bmMgcmVxdWVzdHMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2JhdGNoU2l6ZV0gLSBNYXggc3luY3MgcGVyIHJlcXVlc3QuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gb3duaW5nIHRoZSBzY29wZS1zdG9yZSBkYXRhYmFzZS5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj59IFtpc09ubGluZV0gLSBDb25uZWN0aXZpdHkgZ2F0ZSBmb3IgcHVsbHMgYW5kIHJlcGxheXMuIERlZmF1bHRzIHRvIGFsd2F5cyBvbmxpbmUuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gW2xlZ2FjeUN1cnNvcl0gLSBTZWVkcyBhIG5ld2x5IGRlY2xhcmVkIHNjb3BlJ3MgY3Vyc29yIChlLmcuIGZyb20gYSBwcmUtc2NvcGUgY3Vyc29yIHN0b3JlKSBzbyBkZXZpY2VzIGRvbid0IHJlLXB1bGwgZXZlcnl0aGluZy5cbiAqIEBwcm9wZXJ0eSB7KGVycm9yOiBFcnJvcikgPT4gdm9pZH0gW29uRXJyb3JdIC0gUmVwb3J0cyBiYWNrZ3JvdW5kIHJlcGxheS9wdWxsIGZhaWx1cmVzLiBEZWZhdWx0cyB0byByZXRocm93aW5nLlxuICogQHByb3BlcnR5IHsocGF5bG9hZDogaW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY0NoYW5nZXNSZXF1ZXN0ICYge3Njb3BlOiBTZXJpYWxpemVkU3luY1Njb3BlfSkgPT4gUHJvbWlzZTxpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1Jlc3BvbnNlPn0gcG9zdENoYW5nZXMgLSBQb3N0cyBvbmUgY2hhbmdlcyByZXF1ZXN0LlxuICogQHByb3BlcnR5IHsocGF5bG9hZDoge2F1dGhlbnRpY2F0aW9uVG9rZW46IHN0cmluZywgc3luY3M6IEFycmF5PFJlY29yZDxzdHJpbmcsID8+Pn0pID0+IFByb21pc2U8aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1JlcGxheVJlc3BvbnNlPn0gcG9zdFJlcGxheSAtIFBvc3RzIG9uZSByZXBsYXkgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5WZWxvY2lvdXNTeW5jQ2xpZW50UmVhbHRpbWVDb25maWd1cmF0aW9ufSBbcmVhbHRpbWVdIC0gUmVhbHRpbWUgcHVzaCBjb25maWd1cmF0aW9uIGNvbnN1bWVkIGJ5IGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgU3luY0NsaWVudFJlc291cmNlQ29uZmlnPn0gcmVzb3VyY2VzIC0gRGVyaXZlZCByZXNvdXJjZSBwb2xpY2llcyBrZXllZCBieSByZXNvdXJjZS9tb2RlbCBuYW1lLlxuICogQHByb3BlcnR5IHs/fSBzeW5jTW9kZWwgLSBMb2NhbCBwZW5kaW5nLXN5bmMgbW9kZWwgY2xhc3MuXG4gKi9cblxuZXhwb3J0IHt9XG4iXX0=
@@ -55,6 +55,8 @@ export default class SyncClient {
55
55
  /** @type {import("./sync-client-types.js").SyncClientConfig} */
56
56
  config: import("./sync-client-types.js").SyncClientConfig;
57
57
  _clientNumber: number;
58
+ /** @type {SyncRealtimeBridge | null} */
59
+ _realtimeBridge: SyncRealtimeBridge | null;
58
60
  /** @type {import("./sync-scope-store.js").default | null} */
59
61
  _scopeStore: import("./sync-scope-store.js").default | null;
60
62
  /** @type {Promise<void> | null} */
@@ -69,11 +71,18 @@ export default class SyncClient {
69
71
  }>;
70
72
  /** @type {WeakSet<object>} */
71
73
  _remoteApplyRecords: WeakSet<object>;
74
+ _withoutTrackingDepth: number;
75
+ /** @type {Logger | {error: (...messages: Array<?>) => Promise<void>} | null} */
76
+ _logger: Logger | {
77
+ error: (...messages: Array<unknown>) => Promise<void>;
78
+ } | null;
72
79
  _started: boolean;
73
80
  /**
74
- * Registers automatic mutation tracking for every resource with `track` enabled:
75
- * local model creates/updates/destroys queue pending sync rows and schedule an
76
- * immediate replay attempt, without app-side queue calls.
81
+ * Registers automatic mutation tracking for every declared resource (on by
82
+ * default: local creates and updates queue pending sync rows once their
83
+ * transaction commits and schedule an immediate replay attempt, without
84
+ * app-side queue calls). `track: false` resources are skipped; `track: true`
85
+ * adds destroys; an operations list narrows the tracked operations.
77
86
  * @returns {Promise<void>}
78
87
  */
79
88
  start(): Promise<void>;
@@ -84,6 +93,9 @@ export default class SyncClient {
84
93
  stop(): void;
85
94
  /**
86
95
  * Resolves and validates the tracked operations for a resource config.
96
+ * Tracking is on by default: models declaring `static sync` without a `track`
97
+ * key queue local creates and updates automatically; `track: false` opts a
98
+ * model out (for models written by non-user flows).
87
99
  * @param {{resourceConfig: import("./sync-client-types.js").SyncClientResourceConfig, resourceType: string}} args - Resource config and name.
88
100
  * @returns {Array<"create" | "update" | "destroy">} Tracked operations.
89
101
  */
@@ -92,7 +104,15 @@ export default class SyncClient {
92
104
  resourceType: string;
93
105
  }): Array<"create" | "update" | "destroy">;
94
106
  /**
95
- * Builds the lifecycle callback queueing one tracked mutation.
107
+ * Builds the lifecycle callback queueing one tracked mutation. The queued
108
+ * payload and sync type are snapshotted at mutation-callback time, so
109
+ * afterSave hooks assigning unsaved attributes (or any later drift on the
110
+ * record) cannot change what gets queued vs what was committed. Queueing is
111
+ * deferred through the model connection's afterCommit hook so it only runs
112
+ * once the mutation's transaction has committed (immediately when no
113
+ * transaction is open) - queued syncs never reference rolled-back rows.
114
+ * Post-commit queue failures are reported without rethrowing into the
115
+ * driver's afterCommit chain (see reportAfterCommitError).
96
116
  * @param {{operation: "create" | "update" | "destroy", resourceConfig: import("./sync-client-types.js").SyncClientResourceConfig}} args - Operation and resource config.
97
117
  * @returns {(record: ?) => Promise<void>} Lifecycle callback.
98
118
  */
@@ -100,12 +120,60 @@ export default class SyncClient {
100
120
  operation: "create" | "update" | "destroy";
101
121
  resourceConfig: import("./sync-client-types.js").SyncClientResourceConfig;
102
122
  }): (record: unknown) => Promise<void>;
123
+ /**
124
+ * Reports a post-commit tracked-queueing failure. The transaction has already
125
+ * committed when afterCommit callbacks run, so rethrowing here would poison
126
+ * the driver's awaited afterCommit chain (breaking unrelated callbacks) -
127
+ * instead the failure goes to the configured sync.client.onError hook, or is
128
+ * logged loudly through the client's logger when none is configured.
129
+ * @param {Error} error - Post-commit queueing failure.
130
+ * @returns {Promise<void>}
131
+ */
132
+ reportAfterCommitError(error: Error): Promise<void>;
133
+ /**
134
+ * Returns the lazily built client logger.
135
+ * @returns {Logger | {error: (...messages: Array<?>) => Promise<void>}} Client logger.
136
+ */
137
+ logger(): Logger | {
138
+ error: (...messages: Array<unknown>) => Promise<void>;
139
+ };
103
140
  /**
104
141
  * Whether a record is currently being written by pull-apply (echo suppression).
105
142
  * @param {?} record - Local model record.
106
143
  * @returns {boolean} Whether the record write originates from a remote change.
107
144
  */
108
145
  isRemoteApply(record: unknown): boolean;
146
+ /**
147
+ * Whether tracked mutation queueing is currently suppressed for a record:
148
+ * either the record was marked as a remote apply (`markRemoteApply`, used by
149
+ * pull and realtime applies) or a `withoutTracking` callback is running on
150
+ * this client.
151
+ * @param {?} record - Local model record.
152
+ * @returns {boolean} Whether tracked queueing is suppressed for the record.
153
+ */
154
+ isTrackingSuppressed(record: unknown): boolean;
155
+ /**
156
+ * Runs a callback with tracked mutation queueing suppressed on this client -
157
+ * for code applying server-originated data outside the derived pull/realtime
158
+ * appliers (legacy pull paths, importers, sign-in backfills), so their writes
159
+ * are not echoed back to the server as device changes. Suppression covers the
160
+ * whole async duration of the callback (nested calls stack) and is
161
+ * client-wide while it runs: mutations from concurrently running tasks are
162
+ * also suppressed for that window, so prefer `markRemoteApply(record)` when
163
+ * writes from other flows can interleave.
164
+ * @template T
165
+ * @param {() => Promise<T> | T} callback - Work whose model writes should not queue tracked syncs.
166
+ * @returns {Promise<T>} The callback result.
167
+ */
168
+ withoutTracking<T>(callback: () => Promise<T> | T): Promise<T>;
169
+ /**
170
+ * Marks one record as being written from server-originated data so tracked
171
+ * mutation queueing skips it (record-precise suppression). The derived pull
172
+ * and realtime appliers use this internally around every applied write.
173
+ * @param {?} record - Local model record about to be written.
174
+ * @returns {() => void} Release callback re-enabling tracking for the record.
175
+ */
176
+ markRemoteApply(record: unknown): () => void;
109
177
  /**
110
178
  * Registers this client as the app's current sync client.
111
179
  * @returns {void}
@@ -131,6 +199,45 @@ export default class SyncClient {
131
199
  * @returns {Promise<import("./sync-api-client-types.js").SyncChangesResult | null>} Combined pull result, or null while offline.
132
200
  */
133
201
  pull(): Promise<import("./sync-api-client-types.js").SyncChangesResult | null>;
202
+ /**
203
+ * Builds the derived remote-change applier shared by pulls and realtime pushes:
204
+ * applies through the declared resource configs, registers each written record
205
+ * for echo suppression (tracked resources do not re-queue applied changes), and
206
+ * fails loudly instead of silently skipping unconfigured resources.
207
+ * @param {{source?: string}} [args] - Error context describing where the change came from.
208
+ * @returns {(sync: import("./sync-api-client-types.js").SyncChangeEnvelope) => Promise<import("./sync-api-client-types.js").SyncChangeApplyResult>} Loud remote-change applier.
209
+ */
210
+ remoteApplySync({ source }?: {
211
+ source?: string;
212
+ }): (sync: import("./sync-api-client-types.js").SyncChangeEnvelope) => Promise<import("./sync-api-client-types.js").SyncChangeApplyResult>;
213
+ /**
214
+ * Subscribes the derived realtime channels so pushed websocket changes apply
215
+ * through the same derived applier as pulls (idempotent, single-flighted).
216
+ * @param {?} [context] - App context passed to the `sync.client.realtime.channels` callback (runtime values like eventId).
217
+ * @returns {Promise<void>}
218
+ */
219
+ subscribeRealtime(context?: unknown): Promise<void>;
220
+ /**
221
+ * Unsubscribes the realtime channels and disconnects the websocket client (idempotent).
222
+ * @returns {Promise<void>}
223
+ */
224
+ unsubscribeRealtime(): Promise<void>;
225
+ /**
226
+ * Reports the realtime subscription state and per-channel readiness.
227
+ * @returns {ReturnType<SyncRealtimeBridge["status"]>} Realtime status.
228
+ */
229
+ realtimeStatus(): ReturnType<SyncRealtimeBridge["status"]>;
230
+ /**
231
+ * Awaits all pending realtime message applies and any scheduled
232
+ * pull-on-reconnect (useful in tests and shutdown flows).
233
+ * @returns {Promise<void>}
234
+ */
235
+ waitForRealtimeApplied(): Promise<void>;
236
+ /**
237
+ * Returns the lazily built realtime bridge.
238
+ * @returns {SyncRealtimeBridge} Realtime bridge.
239
+ */
240
+ realtimeBridge(): SyncRealtimeBridge;
134
241
  /**
135
242
  * Queues a local model change as a pending sync row and schedules an immediate
136
243
  * replay attempt (kept pending while offline or when the backend rejects it).
@@ -200,4 +307,6 @@ export default class SyncClient {
200
307
  pullResourceConfigs(): Record<string, import("./sync-api-client-types.js").SyncResourceConfig>;
201
308
  }
202
309
  import Configuration from "../configuration.js";
310
+ import SyncRealtimeBridge from "./sync-realtime-bridge.js";
311
+ import Logger from "../logger.js";
203
312
  //# sourceMappingURL=sync-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"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"}