@opendatalabs/personal-server-ts-server 1.33.8 → 1.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/__fixtures__/bound-record-store.d.ts +19 -0
  2. package/dist/__fixtures__/bound-record-store.d.ts.map +1 -0
  3. package/dist/__fixtures__/bound-record-store.js +60 -0
  4. package/dist/__fixtures__/bound-record-store.js.map +1 -0
  5. package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.d.ts +41 -0
  6. package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.d.ts.map +1 -0
  7. package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.js +34 -0
  8. package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.js.map +1 -0
  9. package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.d.ts +112 -0
  10. package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.d.ts.map +1 -0
  11. package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.js +226 -0
  12. package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.js.map +1 -0
  13. package/dist/__fixtures__/cg-pdpp-client/pdpp-types.d.ts +135 -0
  14. package/dist/__fixtures__/cg-pdpp-client/pdpp-types.d.ts.map +1 -0
  15. package/dist/__fixtures__/cg-pdpp-client/pdpp-types.js +21 -0
  16. package/dist/__fixtures__/cg-pdpp-client/pdpp-types.js.map +1 -0
  17. package/dist/api-auth.d.ts +18 -2
  18. package/dist/api-auth.d.ts.map +1 -1
  19. package/dist/api-auth.js +114 -22
  20. package/dist/api-auth.js.map +1 -1
  21. package/dist/app.d.ts +60 -1
  22. package/dist/app.d.ts.map +1 -1
  23. package/dist/app.js +139 -1
  24. package/dist/app.js.map +1 -1
  25. package/dist/bootstrap.d.ts +10 -0
  26. package/dist/bootstrap.d.ts.map +1 -1
  27. package/dist/bootstrap.js +359 -8
  28. package/dist/bootstrap.js.map +1 -1
  29. package/dist/enclave-main.d.ts +4 -0
  30. package/dist/enclave-main.d.ts.map +1 -1
  31. package/dist/enclave-main.js +152 -1
  32. package/dist/enclave-main.js.map +1 -1
  33. package/dist/middleware/body-limit.d.ts +1 -1
  34. package/dist/middleware/body-limit.d.ts.map +1 -1
  35. package/dist/middleware/body-limit.js +8 -3
  36. package/dist/middleware/body-limit.js.map +1 -1
  37. package/dist/middleware/cors.d.ts.map +1 -1
  38. package/dist/middleware/cors.js +1 -0
  39. package/dist/middleware/cors.js.map +1 -1
  40. package/dist/package.json +9 -1
  41. package/dist/pdpp/bootstrap.d.ts +72 -0
  42. package/dist/pdpp/bootstrap.d.ts.map +1 -0
  43. package/dist/pdpp/bootstrap.js +270 -0
  44. package/dist/pdpp/bootstrap.js.map +1 -0
  45. package/dist/pdpp/chain-enforcement.d.ts +95 -0
  46. package/dist/pdpp/chain-enforcement.d.ts.map +1 -0
  47. package/dist/pdpp/chain-enforcement.js +145 -0
  48. package/dist/pdpp/chain-enforcement.js.map +1 -0
  49. package/dist/pdpp/client-document-fetch.d.ts +63 -0
  50. package/dist/pdpp/client-document-fetch.d.ts.map +1 -0
  51. package/dist/pdpp/client-document-fetch.js +254 -0
  52. package/dist/pdpp/client-document-fetch.js.map +1 -0
  53. package/dist/pdpp/declaration-registry.d.ts +83 -0
  54. package/dist/pdpp/declaration-registry.d.ts.map +1 -0
  55. package/dist/pdpp/declaration-registry.js +251 -0
  56. package/dist/pdpp/declaration-registry.js.map +1 -0
  57. package/dist/pdpp/deployment.d.ts +70 -0
  58. package/dist/pdpp/deployment.d.ts.map +1 -0
  59. package/dist/pdpp/deployment.js +104 -0
  60. package/dist/pdpp/deployment.js.map +1 -0
  61. package/dist/pdpp/record-schema.d.ts +2 -0
  62. package/dist/pdpp/record-schema.d.ts.map +1 -0
  63. package/dist/pdpp/record-schema.js +2 -0
  64. package/dist/pdpp/record-schema.js.map +1 -0
  65. package/dist/pdpp/records-bootstrap.d.ts +111 -0
  66. package/dist/pdpp/records-bootstrap.d.ts.map +1 -0
  67. package/dist/pdpp/records-bootstrap.js +353 -0
  68. package/dist/pdpp/records-bootstrap.js.map +1 -0
  69. package/dist/pdpp/source-id-compat.d.ts +5 -0
  70. package/dist/pdpp/source-id-compat.d.ts.map +1 -0
  71. package/dist/pdpp/source-id-compat.js +16 -0
  72. package/dist/pdpp/source-id-compat.js.map +1 -0
  73. package/dist/pdpp/test-connections.d.ts +6 -0
  74. package/dist/pdpp/test-connections.d.ts.map +1 -0
  75. package/dist/pdpp/test-connections.js +37 -0
  76. package/dist/pdpp/test-connections.js.map +1 -0
  77. package/dist/routes/auth-device.d.ts.map +1 -1
  78. package/dist/routes/auth-device.js +3 -0
  79. package/dist/routes/auth-device.js.map +1 -1
  80. package/dist/routes/chunked-scope-import.d.ts +41 -0
  81. package/dist/routes/chunked-scope-import.d.ts.map +1 -0
  82. package/dist/routes/chunked-scope-import.js +901 -0
  83. package/dist/routes/chunked-scope-import.js.map +1 -0
  84. package/dist/routes/data.d.ts +23 -1
  85. package/dist/routes/data.d.ts.map +1 -1
  86. package/dist/routes/data.js +112 -1
  87. package/dist/routes/data.js.map +1 -1
  88. package/dist/routes/grants.d.ts.map +1 -1
  89. package/dist/routes/grants.js +2 -0
  90. package/dist/routes/grants.js.map +1 -1
  91. package/dist/routes/mcp.d.ts.map +1 -1
  92. package/dist/routes/mcp.js +3 -0
  93. package/dist/routes/mcp.js.map +1 -1
  94. package/dist/routes/pdpp-auth.d.ts +157 -0
  95. package/dist/routes/pdpp-auth.d.ts.map +1 -0
  96. package/dist/routes/pdpp-auth.js +953 -0
  97. package/dist/routes/pdpp-auth.js.map +1 -0
  98. package/dist/routes/pdpp-blobs.d.ts +26 -0
  99. package/dist/routes/pdpp-blobs.d.ts.map +1 -0
  100. package/dist/routes/pdpp-blobs.js +179 -0
  101. package/dist/routes/pdpp-blobs.js.map +1 -0
  102. package/dist/routes/pdpp-connections.d.ts +28 -0
  103. package/dist/routes/pdpp-connections.d.ts.map +1 -0
  104. package/dist/routes/pdpp-connections.js +144 -0
  105. package/dist/routes/pdpp-connections.js.map +1 -0
  106. package/dist/routes/pdpp-declarations.d.ts +58 -0
  107. package/dist/routes/pdpp-declarations.d.ts.map +1 -0
  108. package/dist/routes/pdpp-declarations.js +94 -0
  109. package/dist/routes/pdpp-declarations.js.map +1 -0
  110. package/dist/routes/pdpp-instance-bindings.d.ts +26 -0
  111. package/dist/routes/pdpp-instance-bindings.d.ts.map +1 -0
  112. package/dist/routes/pdpp-instance-bindings.js +124 -0
  113. package/dist/routes/pdpp-instance-bindings.js.map +1 -0
  114. package/dist/routes/pdpp-records.d.ts +158 -0
  115. package/dist/routes/pdpp-records.d.ts.map +1 -0
  116. package/dist/routes/pdpp-records.js +1537 -0
  117. package/dist/routes/pdpp-records.js.map +1 -0
  118. package/dist/routes/pdpp-well-known.d.ts +13 -0
  119. package/dist/routes/pdpp-well-known.d.ts.map +1 -0
  120. package/dist/routes/pdpp-well-known.js +20 -0
  121. package/dist/routes/pdpp-well-known.js.map +1 -0
  122. package/dist/storage/declaration-witness.d.ts +56 -0
  123. package/dist/storage/declaration-witness.d.ts.map +1 -0
  124. package/dist/storage/declaration-witness.js +273 -0
  125. package/dist/storage/declaration-witness.js.map +1 -0
  126. package/dist/storage/hierarchy.d.ts +25 -1
  127. package/dist/storage/hierarchy.d.ts.map +1 -1
  128. package/dist/storage/hierarchy.js +210 -16
  129. package/dist/storage/hierarchy.js.map +1 -1
  130. package/dist/storage/import-operations.d.ts +11 -0
  131. package/dist/storage/import-operations.d.ts.map +1 -0
  132. package/dist/storage/import-operations.js +261 -0
  133. package/dist/storage/import-operations.js.map +1 -0
  134. package/dist/storage/index-manager.d.ts +24 -2
  135. package/dist/storage/index-manager.d.ts.map +1 -1
  136. package/dist/storage/index-manager.js +279 -30
  137. package/dist/storage/index-manager.js.map +1 -1
  138. package/dist/storage/index-schema.d.ts +1 -1
  139. package/dist/storage/index-schema.d.ts.map +1 -1
  140. package/dist/storage/index-schema.js +189 -8
  141. package/dist/storage/index-schema.js.map +1 -1
  142. package/dist/storage/legacy-scope-authority.d.ts +14 -0
  143. package/dist/storage/legacy-scope-authority.d.ts.map +1 -0
  144. package/dist/storage/legacy-scope-authority.js +298 -0
  145. package/dist/storage/legacy-scope-authority.js.map +1 -0
  146. package/dist/storage/node-data-storage.d.ts +6 -0
  147. package/dist/storage/node-data-storage.d.ts.map +1 -1
  148. package/dist/storage/node-data-storage.js +161 -2
  149. package/dist/storage/node-data-storage.js.map +1 -1
  150. package/dist/storage/pdpp-grant-binding-sqlite-store.d.ts +17 -0
  151. package/dist/storage/pdpp-grant-binding-sqlite-store.d.ts.map +1 -0
  152. package/dist/storage/pdpp-grant-binding-sqlite-store.js +159 -0
  153. package/dist/storage/pdpp-grant-binding-sqlite-store.js.map +1 -0
  154. package/dist/storage/pdpp-records-sqlite-store.d.ts +112 -0
  155. package/dist/storage/pdpp-records-sqlite-store.d.ts.map +1 -0
  156. package/dist/storage/pdpp-records-sqlite-store.js +1440 -0
  157. package/dist/storage/pdpp-records-sqlite-store.js.map +1 -0
  158. package/dist/storage/pdpp-stream-completion.d.ts +5 -0
  159. package/dist/storage/pdpp-stream-completion.d.ts.map +1 -0
  160. package/dist/storage/pdpp-stream-completion.js +10 -0
  161. package/dist/storage/pdpp-stream-completion.js.map +1 -0
  162. package/dist/storage/scope-deletion-history.d.ts +8 -0
  163. package/dist/storage/scope-deletion-history.d.ts.map +1 -0
  164. package/dist/storage/scope-deletion-history.js +40 -0
  165. package/dist/storage/scope-deletion-history.js.map +1 -0
  166. package/dist/ui/ps-lite-debug.js +3981 -1109
  167. package/package.json +12 -4
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Boot the PDPP Resource Server for a real Personal Server.
3
+ *
4
+ * `createPdppAuthDeps` makes a running server a PDPP *authorization* server.
5
+ * This is its counterpart: without it a real deployment can issue a perfectly
6
+ * valid grant-bound token that has nothing to read, and cannot even publish
7
+ * the RFC 9728 metadata a client needs to discover where to authorize.
8
+ *
9
+ * Two deliberate choices about where things come from:
10
+ *
11
+ * 1. Stream declarations are derived from the SAME retained declaration
12
+ * snapshots the AS resolved grants against — not a second config list.
13
+ * A grant freezes a declaration version at consent time; if the RS read
14
+ * its stream shapes from somewhere else, the two could disagree about
15
+ * what a stream's primary key or required fields are, and enforcement
16
+ * would be measured against a different document than the one the owner
17
+ * consented to. One retained snapshot, one authority.
18
+ *
19
+ * 2. Token resolution is the co-located path: the RS resolves through the
20
+ * AS's own `PdppTokenService` in-process. Core §8 permits this for a
21
+ * co-located AS+RS, and it is the only correct option here because there
22
+ * is exactly one authority — introspecting over HTTP against ourselves
23
+ * would add a network hop and a second code path without adding a second
24
+ * opinion. A separated deployment is a different wiring, not this one.
25
+ *
26
+ * Returns undefined when the AS did not mount, which leaves the resource
27
+ * surface unmounted too. An RS with no authorization server cannot enforce a
28
+ * grant, and a resource server that cannot enforce is worse than absent.
29
+ */
30
+ import { createHash } from "node:crypto";
31
+ import { createSourceStreamDeclarationRegistry, } from "@opendatalabs/personal-server-ts-core/storage/pdpp-records";
32
+ import { createPdppImporter, } from "@opendatalabs/personal-server-ts-core/sync";
33
+ import { createSqliteRecordStore, PdppBindingError, } from "../storage/pdpp-records-sqlite-store.js";
34
+ /** Restore account-one registry rows for legacy scopes before Desktop reads the registry. */
35
+ export function registerLegacyDataConnections(options) {
36
+ if (!options.serverOwner)
37
+ return;
38
+ const store = createSqliteRecordStore(options.db);
39
+ const scopesWithData = new Set(options.legacyScopes.map((scope) => scope.split(".", 1)[0]?.toLowerCase()));
40
+ const subjectId = options.serverOwner.toLowerCase();
41
+ for (const [sourceId, methods] of options.connectionMethods) {
42
+ const connector = sourceId.split("/").filter(Boolean).at(-1) ?? sourceId;
43
+ if (!scopesWithData.has(connector.toLowerCase()) || methods.length !== 1) {
44
+ continue;
45
+ }
46
+ const [method] = methods;
47
+ if (!method || store.listConnections(sourceId).length > 0)
48
+ continue;
49
+ const instance = `${connector}:${subjectId}`;
50
+ const binding = store.getInstanceBinding(instance);
51
+ if (binding.deletedAt !== null ||
52
+ (binding.method !== method &&
53
+ !(binding.method === null &&
54
+ binding.empty &&
55
+ binding.sourceId === null)) ||
56
+ (binding.sourceId !== null && binding.sourceId !== sourceId)) {
57
+ options.logger.warn({ sourceId }, "PDPP legacy-data binding does not match this boot and was left unchanged");
58
+ continue;
59
+ }
60
+ try {
61
+ store.registerConnection({ instance, sourceId, method, label: "" });
62
+ }
63
+ catch (error) {
64
+ if (!(error instanceof PdppBindingError))
65
+ throw error;
66
+ if (error.reason !== "connection_deleted" &&
67
+ error.reason !== "connection_conflict") {
68
+ throw error;
69
+ }
70
+ options.logger.warn({ sourceId }, "PDPP legacy-data binding changed during startup and was left unchanged");
71
+ }
72
+ }
73
+ }
74
+ export function createPdppRecordsDeps(options) {
75
+ const { pdppAuth, logger } = options;
76
+ // No authorization server means no authority to enforce against.
77
+ if (!pdppAuth || !options.serverOwner)
78
+ return undefined;
79
+ const subjectId = options.serverOwner.toLowerCase();
80
+ // Declarations define stream shapes. The active connection registry defines
81
+ // which instances exist for each source.
82
+ const sources = [];
83
+ for (const snapshot of options.declarations) {
84
+ const connector = snapshot.source_id.split("/").filter(Boolean).pop() ?? snapshot.source_id;
85
+ const instance = `${connector}:${subjectId}`;
86
+ sources.push({
87
+ sourceId: snapshot.source_id,
88
+ instance,
89
+ streams: toStreamDeclarations(snapshot),
90
+ });
91
+ }
92
+ const streams = sources.flatMap((source) => source.streams);
93
+ if (streams.length === 0) {
94
+ logger.warn("PDPP retained declarations define no streams — resource server not mounted");
95
+ return undefined;
96
+ }
97
+ const configuredMethods = new Map();
98
+ for (const configured of options.configuredMethods ?? []) {
99
+ const source = sources.find((candidate) => candidate.sourceId === configured.sourceId);
100
+ if (!source)
101
+ continue;
102
+ const methodIds = configuredMethods.get(source.sourceId) ?? [];
103
+ methodIds.push(configured.methodId);
104
+ configuredMethods.set(source.sourceId, methodIds);
105
+ }
106
+ const store = createSqliteRecordStore(options.db);
107
+ // Register account 1 only for an empty source registry. Never add a legacy
108
+ // fallback beside a connection that the owner already registered.
109
+ for (const source of sources) {
110
+ const instance = source.instance;
111
+ if (!instance)
112
+ continue;
113
+ const methods = configuredMethods.get(source.sourceId) ?? [];
114
+ if (methods.length !== 1)
115
+ continue;
116
+ const method = methods[0];
117
+ if (!method)
118
+ continue;
119
+ if (store.listConnections(source.sourceId).length > 0)
120
+ continue;
121
+ const binding = store.getInstanceBinding(instance);
122
+ if (binding.deletedAt !== null ||
123
+ (binding.method !== method &&
124
+ !(binding.method === null &&
125
+ binding.empty &&
126
+ binding.sourceId === null)) ||
127
+ (binding.sourceId !== null && binding.sourceId !== source.sourceId)) {
128
+ logger.warn({ sourceId: source.sourceId }, "PDPP account-one binding does not match this boot and was left unchanged");
129
+ continue;
130
+ }
131
+ try {
132
+ store.registerConnection({
133
+ instance,
134
+ sourceId: source.sourceId,
135
+ method,
136
+ label: "",
137
+ });
138
+ }
139
+ catch (error) {
140
+ if (!(error instanceof PdppBindingError))
141
+ throw error;
142
+ if (error.reason !== "connection_deleted" &&
143
+ error.reason !== "connection_conflict") {
144
+ throw error;
145
+ }
146
+ logger.warn({ sourceId: source.sourceId }, "PDPP account-one binding changed during startup and was left unchanged");
147
+ }
148
+ }
149
+ // Rebuild each registered connection's active-method view from the
150
+ // durable binding and this boot's source configuration. New connection
151
+ // ids survive a PS restart; keeping this map legacy-only would leave them
152
+ // registered but unable to write.
153
+ for (const source of sources) {
154
+ const methods = configuredMethods.get(source.sourceId) ?? [];
155
+ for (const connection of store.listConnections(source.sourceId)) {
156
+ if (connection.method && methods.includes(connection.method)) {
157
+ configuredMethods.set(connection.instance, [connection.method]);
158
+ }
159
+ }
160
+ }
161
+ const sourceRegistry = createSourceStreamDeclarationRegistry(sources);
162
+ const declarations = {
163
+ get: (stream, sourceId) => sourceRegistry.get(stream, sourceId),
164
+ forInstance(instance, stream) {
165
+ // Resolve authority from the live connection registry on every read.
166
+ // A deleted or unregistered handle has no source declaration.
167
+ const sourceId = store.getInstanceBinding(instance).sourceId;
168
+ return sourceId ? sourceRegistry.get(stream, sourceId) : undefined;
169
+ },
170
+ declares: (stream) => sourceRegistry.declares(stream),
171
+ list: () => sourceRegistry.list(),
172
+ };
173
+ const connectionInventory = (sourceId) => ({
174
+ eligibleFor: () => store.listConnections(sourceId).map((connection) => connection.instance),
175
+ });
176
+ pdppAuth.inventoryFor = (subject, sourceId) => subject.toLowerCase() === subjectId &&
177
+ sources.some((source) => source.sourceId === sourceId)
178
+ ? connectionInventory(sourceId)
179
+ : { eligibleFor: () => [] };
180
+ pdppAuth.connectionState = (instance) => {
181
+ const binding = store.getInstanceBinding(instance);
182
+ return {
183
+ sourceId: binding.sourceId,
184
+ deleted: binding.deletedAt !== null,
185
+ };
186
+ };
187
+ logger.info({ streams: streams.map((s) => s.name), resource: options.resource }, "PDPP Resource Server mounted at /v1");
188
+ return {
189
+ store,
190
+ bindingStore: store,
191
+ configuredMethods,
192
+ auth: coLocatedAuthorizationService(pdppAuth),
193
+ declarations,
194
+ // This deployment has exactly one owner. A subject other than that
195
+ // owner (however it got an "owner"-kind token) owns none of these
196
+ // instances — comparison normalized the same way subjectId is derived
197
+ // above (lowercased address), so casing never causes a false mismatch.
198
+ instancesForSubject: (subject) => subject.toLowerCase() === subjectId
199
+ ? Array.from(new Set(sources.flatMap((source) => store
200
+ .listConnections(source.sourceId)
201
+ .map((connection) => connection.instance))))
202
+ : [],
203
+ instancesForSource: (subject, sourceId) => subject.toLowerCase() === subjectId
204
+ ? store
205
+ .listConnections(sourceId)
206
+ .map((connection) => connection.instance)
207
+ : [],
208
+ // Real boot wiring for GET /v1/blobs/:blobId: reads the same store the
209
+ // blob was ingested into, so this deployment can only ever serve bytes
210
+ // it verifiably stored -- store.getBlobBytes re-verifies size/sha256
211
+ // against the recorded metadata on every read (fails closed on
212
+ // corruption or metadata-only rows) rather than trusting the disk blindly.
213
+ readBlobBytes: async (blobId) => store.getBlobBytes(blobId),
214
+ resource: options.resource,
215
+ // Co-located: this server is its own authorization server.
216
+ authorizationServers: [options.resource],
217
+ };
218
+ }
219
+ /**
220
+ * Resolve tokens through the AS in-process.
221
+ *
222
+ * The AS's `resolveToken` is synchronous and marks `tokenKind`/`subjectId`
223
+ * optional, because an inactive token carries neither (RFC 7662 §2.2). The
224
+ * RS port is async and requires them, so this narrows explicitly rather than
225
+ * casting: an inactive result must never yield an undefined subject that
226
+ * flows onward into an authorization decision.
227
+ */
228
+ export function coLocatedAuthorizationService(pdppAuth) {
229
+ return {
230
+ async resolveToken(accessToken) {
231
+ const context = pdppAuth.tokens.resolveToken(accessToken);
232
+ if (!context.active) {
233
+ return {
234
+ active: false,
235
+ tokenKind: "client",
236
+ subjectId: "",
237
+ inactiveReason: context.inactiveReason,
238
+ };
239
+ }
240
+ return {
241
+ active: true,
242
+ tokenKind: context.tokenKind ?? "client",
243
+ subjectId: context.subjectId ?? "",
244
+ sourceId: context.sourceId,
245
+ instanceIds: context.instanceIds,
246
+ grant: context.grant,
247
+ clientId: context.clientId,
248
+ expiresAt: context.expiresAt,
249
+ };
250
+ },
251
+ };
252
+ }
253
+ /**
254
+ * Build the sync importer that maps qualifying DataPipe envelopes into the
255
+ * record store the RS reads from.
256
+ *
257
+ * Built from the SAME retained snapshots and the SAME instance derivation as
258
+ * the RS above, for the same reason given at the top of this file: a record
259
+ * imported under a different stream shape or a different instance handle than
260
+ * the RS enforces against is a record no grant can correctly reach. One
261
+ * retained declaration, one authority — on the write path too.
262
+ *
263
+ * The SQLite store refuses every write from this importer with
264
+ * `method_required`: `$pdpp` metadata names no acquisition method or binding
265
+ * generation, so P8a and P8c cannot be applied to it. The importer reports
266
+ * that as a terminal `method_authority` rejection and does not retry it.
267
+ *
268
+ * Returns undefined when the RS did not mount. Importing into a store nothing
269
+ * can read would be write-only work, and it would do it against declarations
270
+ * this deployment has not accepted.
271
+ */
272
+ export function createPdppSyncImporter(options) {
273
+ const { records, serverOwner, logger } = options;
274
+ if (!records || !serverOwner)
275
+ return undefined;
276
+ const retained = [];
277
+ for (const snapshot of options.declarations) {
278
+ const document = options.documents.get(snapshot.source_id);
279
+ if (document === undefined) {
280
+ // A snapshot with no retained document cannot have its digest
281
+ // verified, and an unverifiable declaration must not be used as the
282
+ // authority for accepting writes. Skipping it is fail-closed: its
283
+ // envelopes are rejected as `unknown_source` rather than imported on
284
+ // the strength of a check that never ran.
285
+ logger.warn({ sourceId: snapshot.source_id }, "PDPP declaration has no retained document — sync import disabled for this source");
286
+ continue;
287
+ }
288
+ retained.push({
289
+ sourceId: snapshot.source_id,
290
+ version: snapshot.version,
291
+ // Digest the exact retained bytes once, here, because this is the only
292
+ // place they exist and because the importer is bundled for the browser
293
+ // lite runtime where `node:crypto` is unavailable.
294
+ documentDigest: createHash("sha256")
295
+ .update(document, "utf8")
296
+ .digest("hex"),
297
+ streams: toStreamDeclarations(snapshot).map((stream) => ({
298
+ name: stream.name,
299
+ primaryKey: stream.primaryKey,
300
+ semantics: stream.semantics,
301
+ })),
302
+ });
303
+ }
304
+ if (retained.length === 0)
305
+ return undefined;
306
+ logger.info({ sources: retained.map((d) => d.sourceId) }, "PDPP sync importer enabled for synced DataPipe envelopes");
307
+ return createPdppImporter({
308
+ store: records.store,
309
+ declarations: retained,
310
+ instanceFor: (sourceId) => {
311
+ const connections = records.bindingStore.listConnections(sourceId);
312
+ if (connections.length === 1)
313
+ return connections[0].instance;
314
+ if (connections.length > 1)
315
+ return undefined;
316
+ return undefined;
317
+ },
318
+ logger,
319
+ });
320
+ }
321
+ /**
322
+ * Project a retained declaration onto the per-stream shapes the RS enforces.
323
+ *
324
+ * `cursorField` falls back to `emitted_at` because that is what both record
325
+ * store backends actually sort by; naming a declared field the store does not
326
+ * order by would produce cursors that resume at the wrong place.
327
+ */
328
+ function toStreamDeclarations(snapshot) {
329
+ return snapshot.streams.map((stream) => ({
330
+ name: stream.name,
331
+ // From the declaration, defaulting to `mutable_state` when a declaration
332
+ // omits it so documents written before the field existed keep their exact
333
+ // meaning. Previously hardcoded, which silently coerced an `append_only`
334
+ // stream into upsert behavior and left a producer's claim unfalsifiable.
335
+ semantics: stream.semantics ?? "mutable_state",
336
+ primaryKey: stream.primary_key,
337
+ cursorField: "emitted_at",
338
+ consentTimeField: stream.consent_time_field,
339
+ requiredFields: stream.required_fields,
340
+ // The declared member list, carried rather than dropped: it is what makes
341
+ // a v0.2 grant's approved projection checkable against the snapshot the
342
+ // grant was resolved from. Without it the RS would have to treat any
343
+ // granted field as servable and answer from whatever a record happened to
344
+ // carry.
345
+ declaredFields: stream.fields,
346
+ // §8 stream metadata reports both; carried from the retained declaration
347
+ // rather than reconstructed, so what a client is told matches what the
348
+ // owner consented against.
349
+ ...(stream.schema && { schema: stream.schema }),
350
+ ...(stream.selection && { selection: stream.selection }),
351
+ }));
352
+ }
353
+ //# sourceMappingURL=records-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records-bootstrap.js","sourceRoot":"","sources":["../../src/pdpp/records-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Resolve Desktop's legacy source keys only when their retained source exists. */
2
+ export declare function resolveRetainedSourceId(requested: string, retainedSourceIds: ReadonlySet<string>): string | undefined;
3
+ /** Convert only the two Desktop legacy keys into a canonical-source candidate. */
4
+ export declare function canonicalSourceIdCandidate(requested: string): string | undefined;
5
+ //# sourceMappingURL=source-id-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-id-compat.d.ts","sourceRoot":"","sources":["../../src/pdpp/source-id-compat.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,MAAM,GAAG,SAAS,CAKpB;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CASpB"}
@@ -0,0 +1,16 @@
1
+ /** Resolve Desktop's legacy source keys only when their retained source exists. */
2
+ export function resolveRetainedSourceId(requested, retainedSourceIds) {
3
+ if (retainedSourceIds.has(requested))
4
+ return requested;
5
+ const candidate = canonicalSourceIdCandidate(requested);
6
+ return candidate && retainedSourceIds.has(candidate) ? candidate : undefined;
7
+ }
8
+ /** Convert only the two Desktop legacy keys into a canonical-source candidate. */
9
+ export function canonicalSourceIdCandidate(requested) {
10
+ const publicId = requested.match(/^([a-z0-9_-]+)$/i)?.[1] ??
11
+ requested.match(/^https:\/\/registry\.pdpp\.dev\/connectors\/([a-z0-9_-]+)$/i)?.[1];
12
+ if (!publicId)
13
+ return undefined;
14
+ return `https://registry.pdpp.dev/sources/${publicId}`;
15
+ }
16
+ //# sourceMappingURL=source-id-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-id-compat.js","sourceRoot":"","sources":["../../src/pdpp/source-id-compat.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,iBAAsC;IAEtC,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvD,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACxD,OAAO,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,0BAA0B,CACxC,SAAiB;IAEjB,MAAM,QAAQ,GACZ,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,SAAS,CAAC,KAAK,CACb,6DAA6D,CAC9D,EAAE,CAAC,CAAC,CAAC,CAAC;IACT,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,OAAO,qCAAqC,QAAQ,EAAE,CAAC;AACzD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** Register the existing account-1 handle the way Desktop does at startup. */
2
+ export declare function legacyTestConnectionId(owner: string, sourceId: string): string;
3
+ export declare function registerTestConnection(app: {
4
+ request(path: string, init?: RequestInit): Response | Promise<Response>;
5
+ }, devToken: string, owner: string, sourceId: string, methodId?: string): Promise<string>;
6
+ //# sourceMappingURL=test-connections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-connections.d.ts","sourceRoot":"","sources":["../../src/pdpp/test-connections.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE;IAEH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzE,EACD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAyD,GAChE,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
@@ -0,0 +1,37 @@
1
+ /** Register the existing account-1 handle the way Desktop does at startup. */
2
+ export function legacyTestConnectionId(owner, sourceId) {
3
+ const connector = sourceId.split("/").filter(Boolean).at(-1) ?? sourceId;
4
+ return `${connector}:${owner.toLowerCase()}`;
5
+ }
6
+ export async function registerTestConnection(app, devToken, owner, sourceId, methodId = sourceId.split("/").filter(Boolean).at(-1) ?? sourceId) {
7
+ const connectionId = legacyTestConnectionId(owner, sourceId);
8
+ const ownerResponse = await app.request("/pdpp/v1/owner/token", {
9
+ method: "POST",
10
+ headers: {
11
+ authorization: `Bearer ${devToken}`,
12
+ "content-type": "application/json",
13
+ },
14
+ body: JSON.stringify({ source_id: sourceId }),
15
+ });
16
+ if (!ownerResponse.ok) {
17
+ throw new Error(`owner token request failed: ${ownerResponse.status}`);
18
+ }
19
+ const { access_token: token } = (await ownerResponse.json());
20
+ const registration = await app.request(`/pdpp/connections/${encodeURIComponent(connectionId)}`, {
21
+ method: "PUT",
22
+ headers: {
23
+ authorization: `Bearer ${token}`,
24
+ "content-type": "application/json",
25
+ },
26
+ body: JSON.stringify({
27
+ source_id: sourceId,
28
+ method_id: methodId,
29
+ label: "Personal",
30
+ }),
31
+ });
32
+ if (!registration.ok) {
33
+ throw new Error(`connection registration failed: ${registration.status}`);
34
+ }
35
+ return token;
36
+ }
37
+ //# sourceMappingURL=test-connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-connections.js","sourceRoot":"","sources":["../../src/pdpp/test-connections.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,QAAgB;IAEhB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IACzE,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAGC,EACD,QAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ;IAEjE,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE;QAC9D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,QAAQ,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAE1D,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,OAAO,CACpC,qBAAqB,kBAAkB,CAAC,YAAY,CAAC,EAAE,EACvD;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,UAAU;SAClB,CAAC;KACH,CACF,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-device.d.ts","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,EAGL,uBAAuB,EACvB,qBAAqB,EAKrB,KAAK,kBAAkB,EACxB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAapD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;CACvD;AAED,KAAK,6BAA6B,GAAG,kBAAkB,GAAG;IACxD,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC,CAAC;AA0CF,wEAAwE;AACxE,QAAA,MAAM,QAAQ,+BAAwC,CAAC;AAuIvD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAmOxD;AA8LD,OAAO,EACL,QAAQ,EACR,qBAAqB,IAAI,cAAc,EACvC,uBAAuB,IAAI,gBAAgB,GAC5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB;iCAER,MAAM;;;;;;uBAWhB,MAAM;EAI5B"}
1
+ {"version":3,"file":"auth-device.d.ts","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,EAGL,uBAAuB,EACvB,qBAAqB,EAKrB,KAAK,kBAAkB,EACxB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAcpD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;CACvD;AAED,KAAK,6BAA6B,GAAG,kBAAkB,GAAG;IACxD,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC,CAAC;AA0CF,wEAAwE;AACxE,QAAA,MAAM,QAAQ,+BAAwC,CAAC;AAuIvD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAqOxD;AA8LD,OAAO,EACL,QAAQ,EACR,qBAAqB,IAAI,cAAc,EACvC,uBAAuB,IAAI,gBAAgB,GAC5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB;iCAER,MAAM;;;;;;uBAWhB,MAAM;EAI5B"}
@@ -16,6 +16,7 @@ import { approveDeviceSessionContract, createMemoryDeviceSessionStore, DEVICE_PO
16
16
  import { NotOwnerError, ProtocolError, } from "@opendatalabs/personal-server-ts-core/errors";
17
17
  import { createWeb3AuthMiddleware, mapSdkAuthError, } from "../middleware/web3-auth.js";
18
18
  import { createOwnerCheckMiddleware } from "../middleware/owner-check.js";
19
+ import { createBodyLimit, DEFAULT_MAX_SIZE } from "../middleware/body-limit.js";
19
20
  import { arrivedOnLoopbackListener, isLoopbackIp, isSameOriginLoopbackRequest, } from "../middleware/local-listener.js";
20
21
  import { escapeHtml, renderAccountPage } from "../ui/account-page.js";
21
22
  function createInspectableDeviceSessionStore() {
@@ -173,6 +174,8 @@ export function authDeviceRoutes(deps) {
173
174
  serverOwner: deps.serverOwner,
174
175
  });
175
176
  const ownerCheck = createOwnerCheckMiddleware(deps.serverOwner);
177
+ app.use("/approve", createBodyLimit(DEFAULT_MAX_SIZE));
178
+ app.use("/token", createBodyLimit(DEFAULT_MAX_SIZE));
176
179
  if (allowInteractiveLogin) {
177
180
  // POST / — Initiate login flow (no auth required)
178
181
  app.post("/", (c) => {
@@ -1 +1 @@
1
- {"version":3,"file":"auth-device.js","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6EAA6E;AAC7E,+DAA+D;AAC/D,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAE1C,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAE1B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,wBAAwB,EACxB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA4BtE,SAAS,mCAAmC;IAC1C,MAAM,KAAK,GAAG,8BAA8B,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,OAAO;QACL,MAAM,CAAC,KAAK;YACV,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,GAAG,CAAC,SAAS;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,eAAe,CAAC,SAAS;YACvB,OAAO,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,SAAS;YACd,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,YAAY,CAAC,GAAG;YACd,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACxB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,KAAK;YACH,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,IAAI;YACN,OAAO,UAAU,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,GAAG,CAAC,SAAiB;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,QAAQ,GAAG,mCAAmC,EAAE,CAAC;AAEvD,SAAS,gBAAgB,CAAC,CAAU;IAClC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CACpB,MAAuD;IAEvD,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1D,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAU;IACxC,iFAAiF;IACjF,8DAA8D;IAC9D,OAAQ,CAAC,CAAC,GAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,CAAU,EAAE,IAAiB;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,CAAU,EAAE,IAAiB;IAC7D,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,yBAAyB,CAAC,CAAC,EAAE;QAC3B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,CAAU,EACV,IAAY,EACZ,SAA0B,GAAG;IAE7B,CAAC,CAAC,MAAM,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,CAAU,EACV,WAAsC;IAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,uBAAuB;gBAClC,OAAO,EACL,0FAA0F;aAC7F;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,OAAO,EACL,wDAAwD;oBACxD,gDAAgD;aACnD;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAClC,WAAW,EAAE,UAAU;YACvB,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACnC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;YAC5B,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;YAC/B,SAAS,EACP,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;gBAC/C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;SAC5D,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,IAAW,CAAC,CAAC;QACxE,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,IAAiB,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,KAAK,KAAK,CAAC;IACnE,MAAM,QAAQ,GAAG,wBAAwB,CAAC;QACxC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhE,IAAI,qBAAqB,EAAE,CAAC;QAC1B,mDAAmD;QACnD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpE,mEAAmE;YACnE,sEAAsE;YACtE,sEAAsE;YACtE,sCAAsC;YACtC,EAAE;YACF,mEAAmE;YACnE,8DAA8D;YAC9D,uEAAuE;YACvE,kEAAkE;YAClE,+CAA+C;YAC/C,MAAM,oBAAoB,GACxB,mBAAmB,KAAK,SAAS,IAAI,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,6BAA6B,CAAC;gBAC3C,YAAY,EAAE,QAAQ;gBACtB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa;gBACb,cAAc,EACZ,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,IAAI,aAAa;gBAChE,oBAAoB;gBACpB,SAAS;gBACT,SAAS;gBACT,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,SAAS,EAAE,oBAAoB,EAAE,EACnC,sBAAsB,CACvB,CAAC;YACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,yBAAyB,CAAC;gBACvC,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;gBACvC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAChB,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAA2B,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EACvB,wCAAwC,CACzC,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAqC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YACxB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAElC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;YAC5C,MAAM,4BAA4B,GAChC,OAAO,CAAC,oBAAoB,KAAK,IAAI;gBACrC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEpC,OAAO,WAAW,CAChB,CAAC,EACD,WAAW,CACT,OAAO,CAAC,qBAAqB,EAC7B,KAAK,EACL,SAAS,EACT,4BAA4B,CAC7B,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAElC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,EAC9D,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE,EAC/D,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,yDAAyD;YACzD,MAAM,UAAU,GACd,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,kBAAkB,GACtB,OAAO,CAAC,oBAAoB,KAAK,IAAI;gBACrC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC;gBACjC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAE1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,CAAC,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,IAAI,YAAY,YAAY,QAAQ,EAAE,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EACzD,0BAA0B,CAC3B,CAAC;oBACF,OAAO,YAAY,CAAC;gBACtB,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,EACtD,iDAAiD,CAClD,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,WAAW,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;gBAChD,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW;gBACX,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,uCAAuC,CAAC,CAAC;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAA+B,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,qBAAqB,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG;oBACT,OAAO,EACL,wEAAwE;iBAC3E;aACF,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,EACpE,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;YAChD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI;YACJ,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;SAChB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAa,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,+DAA+D;IAE/D,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC;gBAC5C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAa,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uEAAuE;AACvE,yEAAyE;AACzE,oDAAoD;AAEpD,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,SAAS,WAAW,CAClB,MAAc,EACd,KAAa,EACb,SAAiB,EACjB,4BAAqC;IAErC,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,iCAAiC;QACxC,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,eAAe;QACxB,WAAW,EACT,6GAA6G;QAC/G,QAAQ,EAAE;;;gBAGE,UAAU,CAAC,MAAM,CAAC;;mCAEC,UAAU,CAAC,KAAK,CAAC;;;;;;eAMrC;QACX,MAAM,EAAE;yBACa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;4BACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;8CACH,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA2FvC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC3D;KACA,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,8BAA8B;QACrC,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,+CAA+C;QAC5D,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,yBAAyB;QAChC,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE;kGACoF;QAC9F,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,qBAAqB,IAAI,cAAc,EACvC,uBAAuB,IAAI,gBAAgB,GAC5C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,gBAAgB,CAAC,UAAkB;YACjC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAClD,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,SAAiB;YACvB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"auth-device.js","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { IndexManager } from "@opendatalabs/personal-server-ts-core/storage/index";
2
+ import type { HierarchyManagerOptions } from "@opendatalabs/personal-server-ts-core/storage/hierarchy";
3
+ export declare const SCOPE_IMPORT_CHUNK_BYTES: number;
4
+ export declare const SCOPE_IMPORT_MAX_BYTES: number;
5
+ export declare const SCOPE_IMPORT_MAX_CHUNKS = 32;
6
+ export declare const SCOPE_IMPORT_TTL_MS: number;
7
+ export interface ScopeImportDeps {
8
+ hierarchyOptions: HierarchyManagerOptions;
9
+ indexManager: IndexManager;
10
+ serverOwner?: string;
11
+ authorizeOwner(request: Request, scope: string): Promise<void>;
12
+ afterTombstoneVersion?(scope: string): Promise<number | null>;
13
+ onDataWritten?(event: {
14
+ scope: string;
15
+ collectedAt: string;
16
+ }): void;
17
+ syncManager?: {
18
+ notifyNewData?(): void;
19
+ trigger?(): Promise<void>;
20
+ } | null;
21
+ }
22
+ export declare class ScopeImportError extends Error {
23
+ readonly status: number;
24
+ readonly code: string;
25
+ constructor(status: number, code: string, message: string);
26
+ }
27
+ export declare function cleanupExpiredScopeImports(deps: Pick<ScopeImportDeps, "hierarchyOptions" | "indexManager">, now?: number, removeTemps?: boolean): Promise<void>;
28
+ export declare function beginScopeImport(deps: ScopeImportDeps, request: Request, scope: string, body: unknown): Promise<{
29
+ importId: string;
30
+ chunkBytes: number;
31
+ expiresAt: string;
32
+ }>;
33
+ export declare function putScopeImportChunk(deps: ScopeImportDeps, request: Request, scope: string, id: string, index: number): Promise<{
34
+ accepted: true;
35
+ index: number;
36
+ bytes: number;
37
+ sha256: string;
38
+ }>;
39
+ export declare function finalizeScopeImport(deps: ScopeImportDeps, request: Request, scope: string, id: string): Promise<Record<string, unknown>>;
40
+ export declare function abortScopeImport(deps: ScopeImportDeps, request: Request, scope: string, id: string): Promise<Record<string, unknown>>;
41
+ //# sourceMappingURL=chunked-scope-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunked-scope-import.d.ts","sourceRoot":"","sources":["../../src/routes/chunked-scope-import.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAKvG,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AACxD,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AACxD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,mBAAmB,QAAsB,CAAC;AA+QvD,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,qBAAqB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,aAAa,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpE,WAAW,CAAC,EAAE;QAAE,aAAa,CAAC,IAAI,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5E;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAEvC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAIlB;AAiID,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAkB,GAAG,cAAc,CAAC,EAChE,GAAG,SAAa,EAChB,WAAW,UAAQ,GAClB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA+HtE;AA0BD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoI3E;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAsBlC;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA0FlC"}