@opendatalabs/personal-server-ts-core 0.0.1-canary.da568dc → 0.0.1-canary.dcf85ec

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 (302) hide show
  1. package/dist/api/index.d.ts +234 -8
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +659 -145
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/auth/request.d.ts.map +1 -1
  6. package/dist/auth/request.js.map +1 -1
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +21 -3
  9. package/dist/client.js.map +1 -1
  10. package/dist/contracts/binary.d.ts +12 -0
  11. package/dist/contracts/binary.d.ts.map +1 -1
  12. package/dist/contracts/binary.js +31 -0
  13. package/dist/contracts/binary.js.map +1 -1
  14. package/dist/contracts/data.d.ts +51 -5
  15. package/dist/contracts/data.d.ts.map +1 -1
  16. package/dist/contracts/data.js +169 -35
  17. package/dist/contracts/data.js.map +1 -1
  18. package/dist/contracts/index.d.ts +1 -1
  19. package/dist/contracts/index.d.ts.map +1 -1
  20. package/dist/contracts/index.js +1 -1
  21. package/dist/contracts/index.js.map +1 -1
  22. package/dist/derivatives/answer-shape.d.ts +83 -0
  23. package/dist/derivatives/answer-shape.d.ts.map +1 -0
  24. package/dist/derivatives/answer-shape.js +320 -0
  25. package/dist/derivatives/answer-shape.js.map +1 -0
  26. package/dist/derivatives/api.d.ts +48 -0
  27. package/dist/derivatives/api.d.ts.map +1 -0
  28. package/dist/derivatives/api.js +374 -0
  29. package/dist/derivatives/api.js.map +1 -0
  30. package/dist/derivatives/compute.d.ts +112 -0
  31. package/dist/derivatives/compute.d.ts.map +1 -0
  32. package/dist/derivatives/compute.js +476 -0
  33. package/dist/derivatives/compute.js.map +1 -0
  34. package/dist/derivatives/e2ee/aad.d.ts +22 -0
  35. package/dist/derivatives/e2ee/aad.d.ts.map +1 -0
  36. package/dist/derivatives/e2ee/aad.js +32 -0
  37. package/dist/derivatives/e2ee/aad.js.map +1 -0
  38. package/dist/derivatives/e2ee/attestation.d.ts +134 -0
  39. package/dist/derivatives/e2ee/attestation.d.ts.map +1 -0
  40. package/dist/derivatives/e2ee/attestation.js +248 -0
  41. package/dist/derivatives/e2ee/attestation.js.map +1 -0
  42. package/dist/derivatives/e2ee/index.d.ts +6 -0
  43. package/dist/derivatives/e2ee/index.d.ts.map +1 -0
  44. package/dist/derivatives/e2ee/index.js +6 -0
  45. package/dist/derivatives/e2ee/index.js.map +1 -0
  46. package/dist/derivatives/e2ee/jcs.d.ts +17 -0
  47. package/dist/derivatives/e2ee/jcs.d.ts.map +1 -0
  48. package/dist/derivatives/e2ee/jcs.js +55 -0
  49. package/dist/derivatives/e2ee/jcs.js.map +1 -0
  50. package/dist/derivatives/e2ee/phala.d.ts +62 -0
  51. package/dist/derivatives/e2ee/phala.d.ts.map +1 -0
  52. package/dist/derivatives/e2ee/phala.js +168 -0
  53. package/dist/derivatives/e2ee/phala.js.map +1 -0
  54. package/dist/derivatives/e2ee/suite.d.ts +56 -0
  55. package/dist/derivatives/e2ee/suite.d.ts.map +1 -0
  56. package/dist/derivatives/e2ee/suite.js +164 -0
  57. package/dist/derivatives/e2ee/suite.js.map +1 -0
  58. package/dist/derivatives/index.d.ts +11 -0
  59. package/dist/derivatives/index.d.ts.map +1 -0
  60. package/dist/derivatives/index.js +11 -0
  61. package/dist/derivatives/index.js.map +1 -0
  62. package/dist/derivatives/inference.d.ts +151 -0
  63. package/dist/derivatives/inference.d.ts.map +1 -0
  64. package/dist/derivatives/inference.js +262 -0
  65. package/dist/derivatives/inference.js.map +1 -0
  66. package/dist/derivatives/prompt.d.ts +99 -0
  67. package/dist/derivatives/prompt.d.ts.map +1 -0
  68. package/dist/derivatives/prompt.js +281 -0
  69. package/dist/derivatives/prompt.js.map +1 -0
  70. package/dist/derivatives/registration.d.ts +56 -0
  71. package/dist/derivatives/registration.d.ts.map +1 -0
  72. package/dist/derivatives/registration.js +187 -0
  73. package/dist/derivatives/registration.js.map +1 -0
  74. package/dist/derivatives/scheduler.d.ts +114 -0
  75. package/dist/derivatives/scheduler.d.ts.map +1 -0
  76. package/dist/derivatives/scheduler.js +331 -0
  77. package/dist/derivatives/scheduler.js.map +1 -0
  78. package/dist/derivatives/store.d.ts +14 -0
  79. package/dist/derivatives/store.d.ts.map +1 -0
  80. package/dist/derivatives/store.js +79 -0
  81. package/dist/derivatives/store.js.map +1 -0
  82. package/dist/derivatives/types.d.ts +102 -0
  83. package/dist/derivatives/types.d.ts.map +1 -0
  84. package/dist/derivatives/types.js +29 -0
  85. package/dist/derivatives/types.js.map +1 -0
  86. package/dist/errors/catalog.d.ts +75 -0
  87. package/dist/errors/catalog.d.ts.map +1 -1
  88. package/dist/errors/catalog.js +104 -0
  89. package/dist/errors/catalog.js.map +1 -1
  90. package/dist/keys/index.d.ts +1 -0
  91. package/dist/keys/index.d.ts.map +1 -1
  92. package/dist/keys/index.js +1 -1
  93. package/dist/keys/index.js.map +1 -1
  94. package/dist/keys/public-only-account.d.ts +8 -0
  95. package/dist/keys/public-only-account.d.ts.map +1 -0
  96. package/dist/keys/public-only-account.js +21 -0
  97. package/dist/keys/public-only-account.js.map +1 -0
  98. package/dist/keys/server-account.d.ts +2 -2
  99. package/dist/keys/server-account.d.ts.map +1 -1
  100. package/dist/lineage/attestation.d.ts +42 -0
  101. package/dist/lineage/attestation.d.ts.map +1 -0
  102. package/dist/lineage/attestation.js +25 -0
  103. package/dist/lineage/attestation.js.map +1 -0
  104. package/dist/lineage/gateway.d.ts +105 -0
  105. package/dist/lineage/gateway.d.ts.map +1 -0
  106. package/dist/lineage/gateway.js +242 -0
  107. package/dist/lineage/gateway.js.map +1 -0
  108. package/dist/lineage/index.d.ts +5 -0
  109. package/dist/lineage/index.d.ts.map +1 -0
  110. package/dist/lineage/index.js +5 -0
  111. package/dist/lineage/index.js.map +1 -0
  112. package/dist/lineage/lineage.d.ts +141 -0
  113. package/dist/lineage/lineage.d.ts.map +1 -0
  114. package/dist/lineage/lineage.js +255 -0
  115. package/dist/lineage/lineage.js.map +1 -0
  116. package/dist/logging/access-log.d.ts +10 -1
  117. package/dist/logging/access-log.d.ts.map +1 -1
  118. package/dist/mcp/activity.d.ts.map +1 -1
  119. package/dist/mcp/activity.js.map +1 -1
  120. package/dist/mcp/index.d.ts +1 -0
  121. package/dist/mcp/index.d.ts.map +1 -1
  122. package/dist/mcp/index.js +1 -0
  123. package/dist/mcp/index.js.map +1 -1
  124. package/dist/mcp/read-client.d.ts +39 -1
  125. package/dist/mcp/read-client.d.ts.map +1 -1
  126. package/dist/mcp/read-client.js +334 -45
  127. package/dist/mcp/read-client.js.map +1 -1
  128. package/dist/mcp/search/index.d.ts.map +1 -1
  129. package/dist/mcp/search/index.js +108 -21
  130. package/dist/mcp/search/index.js.map +1 -1
  131. package/dist/mcp/server.d.ts.map +1 -1
  132. package/dist/mcp/server.js +1 -2
  133. package/dist/mcp/server.js.map +1 -1
  134. package/dist/mcp/session.d.ts +160 -0
  135. package/dist/mcp/session.d.ts.map +1 -0
  136. package/dist/mcp/session.js +243 -0
  137. package/dist/mcp/session.js.map +1 -0
  138. package/dist/mcp/tools.d.ts +10 -0
  139. package/dist/mcp/tools.d.ts.map +1 -1
  140. package/dist/mcp/tools.js +319 -31
  141. package/dist/mcp/tools.js.map +1 -1
  142. package/dist/mcp/types.d.ts.map +1 -1
  143. package/dist/payment/x402.d.ts.map +1 -1
  144. package/dist/payment/x402.js.map +1 -1
  145. package/dist/policy/data-read.d.ts +17 -0
  146. package/dist/policy/data-read.d.ts.map +1 -1
  147. package/dist/policy/data-read.js +71 -9
  148. package/dist/policy/data-read.js.map +1 -1
  149. package/dist/policy/data-write.d.ts +69 -0
  150. package/dist/policy/data-write.d.ts.map +1 -0
  151. package/dist/policy/data-write.js +131 -0
  152. package/dist/policy/data-write.js.map +1 -0
  153. package/dist/policy/index.d.ts +3 -1
  154. package/dist/policy/index.d.ts.map +1 -1
  155. package/dist/policy/index.js +3 -1
  156. package/dist/policy/index.js.map +1 -1
  157. package/dist/policy/signed-artifacts.d.ts +17 -0
  158. package/dist/policy/signed-artifacts.d.ts.map +1 -0
  159. package/dist/policy/signed-artifacts.js +110 -0
  160. package/dist/policy/signed-artifacts.js.map +1 -0
  161. package/dist/ports/index.d.ts +151 -16
  162. package/dist/ports/index.d.ts.map +1 -1
  163. package/dist/ports/index.js.map +1 -1
  164. package/dist/schemas/server-config.d.ts +43 -4
  165. package/dist/schemas/server-config.d.ts.map +1 -1
  166. package/dist/schemas/server-config.js +74 -11
  167. package/dist/schemas/server-config.js.map +1 -1
  168. package/dist/signing/index.d.ts +2 -2
  169. package/dist/signing/index.d.ts.map +1 -1
  170. package/dist/signing/index.js +1 -1
  171. package/dist/signing/index.js.map +1 -1
  172. package/dist/signing/request-signer.d.ts +2 -0
  173. package/dist/signing/request-signer.d.ts.map +1 -1
  174. package/dist/signing/request-signer.js +1 -0
  175. package/dist/signing/request-signer.js.map +1 -1
  176. package/dist/signing/signer.d.ts +9 -24
  177. package/dist/signing/signer.d.ts.map +1 -1
  178. package/dist/signing/signer.js +9 -34
  179. package/dist/signing/signer.js.map +1 -1
  180. package/dist/storage/adapters/index.d.ts +1 -1
  181. package/dist/storage/adapters/index.d.ts.map +1 -1
  182. package/dist/storage/adapters/index.js +1 -1
  183. package/dist/storage/adapters/index.js.map +1 -1
  184. package/dist/storage/adapters/sdk.d.ts.map +1 -1
  185. package/dist/storage/adapters/sdk.js +35 -2
  186. package/dist/storage/adapters/sdk.js.map +1 -1
  187. package/dist/storage/adapters/vana.d.ts +3 -0
  188. package/dist/storage/adapters/vana.d.ts.map +1 -1
  189. package/dist/storage/adapters/vana.js +79 -4
  190. package/dist/storage/adapters/vana.js.map +1 -1
  191. package/dist/storage/blocks/errors.d.ts.map +1 -1
  192. package/dist/storage/blocks/errors.js.map +1 -1
  193. package/dist/storage/blocks/index.d.ts +1 -0
  194. package/dist/storage/blocks/index.d.ts.map +1 -1
  195. package/dist/storage/blocks/index.js +1 -0
  196. package/dist/storage/blocks/index.js.map +1 -1
  197. package/dist/storage/blocks/select.d.ts +29 -0
  198. package/dist/storage/blocks/select.d.ts.map +1 -0
  199. package/dist/storage/blocks/select.js +120 -0
  200. package/dist/storage/blocks/select.js.map +1 -0
  201. package/dist/storage/blocks/types.d.ts +7 -0
  202. package/dist/storage/blocks/types.d.ts.map +1 -1
  203. package/dist/storage/index/manager.d.ts +14 -0
  204. package/dist/storage/index/manager.d.ts.map +1 -1
  205. package/dist/storage/index/types.d.ts +1 -0
  206. package/dist/storage/index/types.d.ts.map +1 -1
  207. package/dist/sync/data-point-feed.d.ts +35 -0
  208. package/dist/sync/data-point-feed.d.ts.map +1 -0
  209. package/dist/sync/data-point-feed.js +122 -0
  210. package/dist/sync/data-point-feed.js.map +1 -0
  211. package/dist/sync/data-point-id.d.ts +7 -0
  212. package/dist/sync/data-point-id.d.ts.map +1 -0
  213. package/dist/sync/data-point-id.js +16 -0
  214. package/dist/sync/data-point-id.js.map +1 -0
  215. package/dist/sync/delete-data-port.d.ts +50 -0
  216. package/dist/sync/delete-data-port.d.ts.map +1 -0
  217. package/dist/sync/delete-data-port.js +244 -0
  218. package/dist/sync/delete-data-port.js.map +1 -0
  219. package/dist/sync/engine/sync-manager.d.ts +16 -4
  220. package/dist/sync/engine/sync-manager.d.ts.map +1 -1
  221. package/dist/sync/engine/sync-manager.js +87 -31
  222. package/dist/sync/engine/sync-manager.js.map +1 -1
  223. package/dist/sync/index.d.ts +7 -0
  224. package/dist/sync/index.d.ts.map +1 -1
  225. package/dist/sync/index.js +7 -0
  226. package/dist/sync/index.js.map +1 -1
  227. package/dist/sync/issues.d.ts.map +1 -1
  228. package/dist/sync/issues.js +21 -3
  229. package/dist/sync/issues.js.map +1 -1
  230. package/dist/sync/pending-blob-deletions.d.ts +29 -0
  231. package/dist/sync/pending-blob-deletions.d.ts.map +1 -0
  232. package/dist/sync/pending-blob-deletions.js +116 -0
  233. package/dist/sync/pending-blob-deletions.js.map +1 -0
  234. package/dist/sync/retry-memory.d.ts +33 -0
  235. package/dist/sync/retry-memory.d.ts.map +1 -0
  236. package/dist/sync/retry-memory.js +68 -0
  237. package/dist/sync/retry-memory.js.map +1 -0
  238. package/dist/sync/scope-deletions.d.ts +155 -0
  239. package/dist/sync/scope-deletions.d.ts.map +1 -0
  240. package/dist/sync/scope-deletions.js +225 -0
  241. package/dist/sync/scope-deletions.js.map +1 -0
  242. package/dist/sync/tombstone.d.ts +27 -0
  243. package/dist/sync/tombstone.d.ts.map +1 -0
  244. package/dist/sync/tombstone.js +28 -0
  245. package/dist/sync/tombstone.js.map +1 -0
  246. package/dist/sync/workers/delete.d.ts +152 -31
  247. package/dist/sync/workers/delete.d.ts.map +1 -1
  248. package/dist/sync/workers/delete.js +461 -27
  249. package/dist/sync/workers/delete.js.map +1 -1
  250. package/dist/sync/workers/download.d.ts +60 -1
  251. package/dist/sync/workers/download.d.ts.map +1 -1
  252. package/dist/sync/workers/download.js +165 -4
  253. package/dist/sync/workers/download.js.map +1 -1
  254. package/dist/sync/workers/upload.d.ts +57 -8
  255. package/dist/sync/workers/upload.d.ts.map +1 -1
  256. package/dist/sync/workers/upload.js +340 -50
  257. package/dist/sync/workers/upload.js.map +1 -1
  258. package/dist/test-utils/e2ee-fixtures.d.ts +94 -0
  259. package/dist/test-utils/e2ee-fixtures.d.ts.map +1 -0
  260. package/dist/test-utils/e2ee-fixtures.js +116 -0
  261. package/dist/test-utils/e2ee-fixtures.js.map +1 -0
  262. package/dist/test-utils/e2ee-gateway.d.ts +61 -0
  263. package/dist/test-utils/e2ee-gateway.d.ts.map +1 -0
  264. package/dist/test-utils/e2ee-gateway.js +248 -0
  265. package/dist/test-utils/e2ee-gateway.js.map +1 -0
  266. package/dist/test-utils/index.d.ts +3 -0
  267. package/dist/test-utils/index.d.ts.map +1 -1
  268. package/dist/test-utils/index.js +3 -0
  269. package/dist/test-utils/index.js.map +1 -1
  270. package/dist/test-utils/memory-storage.d.ts +12 -0
  271. package/dist/test-utils/memory-storage.d.ts.map +1 -0
  272. package/dist/test-utils/memory-storage.js +146 -0
  273. package/dist/test-utils/memory-storage.js.map +1 -0
  274. package/dist/test-utils/wallet.d.ts +6 -0
  275. package/dist/test-utils/wallet.d.ts.map +1 -1
  276. package/dist/test-utils/wallet.js +46 -0
  277. package/dist/test-utils/wallet.js.map +1 -1
  278. package/dist/write/attribution.d.ts +185 -0
  279. package/dist/write/attribution.d.ts.map +1 -0
  280. package/dist/write/attribution.js +450 -0
  281. package/dist/write/attribution.js.map +1 -0
  282. package/dist/write/authorize.d.ts +77 -0
  283. package/dist/write/authorize.d.ts.map +1 -0
  284. package/dist/write/authorize.js +109 -0
  285. package/dist/write/authorize.js.map +1 -0
  286. package/dist/write/index.d.ts +5 -0
  287. package/dist/write/index.d.ts.map +1 -0
  288. package/dist/write/index.js +5 -0
  289. package/dist/write/index.js.map +1 -0
  290. package/dist/write/route.d.ts +61 -0
  291. package/dist/write/route.d.ts.map +1 -0
  292. package/dist/write/route.js +132 -0
  293. package/dist/write/route.js.map +1 -0
  294. package/dist/write/session.d.ts +96 -0
  295. package/dist/write/session.d.ts.map +1 -0
  296. package/dist/write/session.js +136 -0
  297. package/dist/write/session.js.map +1 -0
  298. package/package.json +15 -3
  299. package/dist/api/schema-registrar.d.ts +0 -30
  300. package/dist/api/schema-registrar.d.ts.map +0 -1
  301. package/dist/api/schema-registrar.js +0 -65
  302. package/dist/api/schema-registrar.js.map +0 -1
@@ -1,28 +1,115 @@
1
1
  import type { AccessLogWriter } from "../logging/access-log.js";
2
2
  import type { AccessLogReader } from "../logging/access-reader.js";
3
- import { type DataStoragePort, type RuntimeAvailabilityPort, type SchemaResolverPort, type SchemaRegistrarPort } from "../ports/index.js";
3
+ import { type DataStoragePort, type RuntimeAvailabilityPort } from "../ports/index.js";
4
4
  import type { DataReadPolicyPorts } from "../policy/index.js";
5
5
  import type { SyncManager } from "../sync/index.js";
6
+ import { type ScopeDeletionTracker } from "../sync/scope-deletions.js";
7
+ import type { IndexEntry } from "../storage/index/types.js";
8
+ import { type DeleteScopeResult } from "../sync/workers/delete.js";
6
9
  import { type OAuthDeviceSessionLookup, type OAuthTokenStorePort } from "../contracts/index.js";
7
- import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/browser";
10
+ import type { DataFileEnvelope, DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/browser";
8
11
  import type { ServerSigner } from "../signing/index.js";
9
- export { createSchemaRegistrar, NO_SCHEMA_DEFINITION_URL, NO_SCHEMA_DIALECT, NO_SCHEMA_NAME, type SchemaRegistrarDeps, } from "./schema-registrar.js";
12
+ import { type WriterAttribution } from "../write/attribution.js";
13
+ import type { LineageGatewayPort } from "../lineage/gateway.js";
14
+ import { type X402Challenge } from "../payment/index.js";
10
15
  export interface PersonalServerReadAuthInput {
11
16
  request: Request;
12
17
  scope: string;
13
18
  grantId?: string;
14
19
  fileId?: string;
20
+ /**
21
+ * The `collectedAt` version the read is pinned to (cursor-pinned or
22
+ * `?at=`-pinned reads). Payment-enforcing auth ports use it to bind the
23
+ * x402 challenge/settlement to the exact version served, not the latest.
24
+ */
25
+ at?: string;
15
26
  }
16
27
  export interface PersonalServerReadAuthResult {
17
28
  builder?: `0x${string}` | string;
18
29
  grantId?: string;
19
30
  }
31
+ export interface PersonalServerWriteAuthInput {
32
+ request: Request;
33
+ /** Raw scope path param (validated by parseDataScopeContract after auth,
34
+ * same precedence as the owner write path). */
35
+ scope: string;
36
+ }
37
+ /**
38
+ * Result of authorizing a DELEGATED (write-session) write. A void return
39
+ * means the request was authorized as the owner instead — the ingest then
40
+ * proceeds exactly as today, with no attribution stamped.
41
+ */
42
+ export interface PersonalServerWriteAuthResult {
43
+ builder: `0x${string}`;
44
+ grantId: string;
45
+ /**
46
+ * The live grant's scope entries (read entries bare, write entries
47
+ * `write:`-prefixed). Consumers that need more than the write permission
48
+ * (the derivative compute layer checks read coverage of source scopes)
49
+ * fail closed when this is absent.
50
+ */
51
+ grantScopes?: string[];
52
+ attribution: WriterAttribution;
53
+ /**
54
+ * Rolls back the per-write proof reservation (replay guard). The handler
55
+ * calls it when the write fails BEFORE the record is committed, so the
56
+ * builder can retry with the same still-valid proof.
57
+ */
58
+ releaseProof?: () => Promise<void>;
59
+ }
60
+ /**
61
+ * Result of recognizing a delegated caller WITHOUT a scope to authorize
62
+ * against (see `authorizeWriteSession`). Identity only: no grant policy has
63
+ * been evaluated, so this must never gate access to data — it exists so a
64
+ * route can tell "a builder is calling" from "nobody is authenticated" and
65
+ * answer 404 / 400 instead of a misleading 401.
66
+ */
67
+ export interface PersonalServerWriteSessionResult {
68
+ builder: `0x${string}`;
69
+ grantId: string;
70
+ /** Rolls back the per-call proof reservation; see the write result. */
71
+ releaseProof?: () => Promise<void>;
72
+ }
73
+ export interface PersonalServerReadFulfillment {
74
+ builder: string;
75
+ fileId?: string;
76
+ grantId: string;
77
+ ipAddress: string;
78
+ logId: string;
79
+ scope: string;
80
+ servedAt: string;
81
+ userAgent: string;
82
+ }
83
+ export interface PersonalServerReadFulfillmentReporter {
84
+ report(event: PersonalServerReadFulfillment): Promise<void>;
85
+ }
20
86
  export interface PersonalServerApiAuthPort {
21
87
  authorizeOwner(request: Request): Promise<void>;
22
88
  authorizeBuilderList(request: Request): Promise<void>;
23
89
  authorizeBuilderRead(input: PersonalServerReadAuthInput): Promise<PersonalServerReadAuthResult | void>;
90
+ /**
91
+ * Authorize a data ingest (POST /v1/data/:scope). Optional — auth ports
92
+ * that don't support delegated writes omit it and the handler falls back
93
+ * to authorizeOwner, preserving today's owner-only behavior. Ports that DO
94
+ * support write sessions handle BOTH paths here: a recognized session
95
+ * token authorizes as the builder (write policy + attribution proof) and
96
+ * returns the attribution to store; anything else falls through to the
97
+ * owner path and returns void.
98
+ */
99
+ authorizeWrite?(input: PersonalServerWriteAuthInput): Promise<PersonalServerWriteAuthResult | void>;
100
+ /**
101
+ * Recognize a live write session (bearer + `X-Vana-Write-Signature` proof)
102
+ * WITHOUT authorizing a scope. Optional, and identity only: routes use it
103
+ * where there is no scope to authorize against yet — an unknown question
104
+ * id, or a builder list call missing its `?derivedScope=` — so the answer
105
+ * is 404 / 400 rather than the owner gate's 401, which would send every
106
+ * client with a re-handshake-on-401 policy through a pointless handshake.
107
+ * Returns void when the request carries no write-session credential.
108
+ */
109
+ authorizeWriteSession?(request: Request): Promise<PersonalServerWriteSessionResult | void>;
24
110
  }
25
111
  export interface PersonalServerApiLogger {
112
+ debug?(payload: Record<string, unknown>, message: string): void;
26
113
  info?(payload: Record<string, unknown>, message: string): void;
27
114
  warn?(payload: Record<string, unknown>, message: string): void;
28
115
  error?(payload: Record<string, unknown>, message: string): void;
@@ -30,18 +117,29 @@ export interface PersonalServerApiLogger {
30
117
  export interface PersonalServerIngestSyncManager {
31
118
  trigger(): Promise<void>;
32
119
  notifyNewData?(): void;
33
- /** Propagate a scope deletion to R2 + the gateway before the local delete. */
34
- deleteScopeRemote?(scope: string): Promise<void>;
120
+ /**
121
+ * Durable scope deletion (gateway tombstone -> storage blobs -> local).
122
+ * When absent the DELETE route deletes the local copy only and reports
123
+ * `durable: false`.
124
+ */
125
+ deleteScope?(scope: string): Promise<DeleteScopeResult>;
35
126
  }
36
127
  export interface PersonalServerDataApiDeps {
37
128
  storage: DataStoragePort;
38
129
  auth: PersonalServerApiAuthPort;
39
- schemaResolver?: SchemaResolverPort;
40
- /** Auto-registers a "no-schema" schema for binary scopes that lack one. */
41
- schemaRegistrar?: SchemaRegistrarPort;
42
130
  accessLogWriter: AccessLogWriter;
43
131
  syncManager?: PersonalServerIngestSyncManager | null;
44
132
  runtimeAvailability?: RuntimeAvailabilityPort;
133
+ readFulfillmentReporter?: PersonalServerReadFulfillmentReporter;
134
+ /**
135
+ * Read-side memory of gateway tombstones (see sync/scope-deletions.ts for
136
+ * the consistency window). Every read consults it before serving or
137
+ * charging: a scope the gateway reports deleted answers 410 DATA_DELETED
138
+ * whether or not a stale local copy still exists, and a local miss on a
139
+ * deleted scope answers 410 instead of 404 so SDK readers can tell
140
+ * "deleted" from "never had it". Without it reads are local-only.
141
+ */
142
+ scopeDeletions?: ScopeDeletionTracker;
45
143
  /**
46
144
  * Required when payment is on. Powers two things on GET /v1/data/:scope:
47
145
  * - the X402 challenge generation (fee lookup, accessRecord binding)
@@ -104,6 +202,38 @@ export interface PersonalServerDataApiDeps {
104
202
  now?: () => Date;
105
203
  createLogId?: () => string;
106
204
  logger?: PersonalServerApiLogger;
205
+ /**
206
+ * Gateway access for derivative data (docs/derivative-data-api.md): source
207
+ * lookups for lineage validation on write and the signed lineage read
208
+ * behind GET /v1/data/:scope/lineage. Absent = writes with lineage can
209
+ * only cite local scopes and the lineage read answers 503.
210
+ */
211
+ lineageGateway?: LineageGatewayPort;
212
+ /**
213
+ * Called after a write is committed (owner or builder, JSON or binary).
214
+ * The derivative compute layer uses it to mark questions that read the
215
+ * scope stale; the recompute itself waits for a reader (see onDataRead).
216
+ * Best-effort: a throwing hook is swallowed, the write already succeeded.
217
+ */
218
+ onDataWritten?: (event: {
219
+ scope: string;
220
+ collectedAt: string;
221
+ /** The stamped `$lineage.sources` of the written record, if any. */
222
+ lineageSources?: string[];
223
+ }) => void;
224
+ /**
225
+ * Called on GET /v1/data/:scope once the read is authorized (a live grant
226
+ * covering the scope, or the owner) and the scope is not tombstoned, and
227
+ * before anything is served. The derivative compute layer uses it to run
228
+ * a question whose answer is stale just in time: a source refresh only
229
+ * marks the answer stale, and this is the demand that pays for the
230
+ * recompute. Called for every scope — the compute layer decides whether a
231
+ * question is behind it. Best-effort and non-blocking: a throwing hook is
232
+ * swallowed and the read is never delayed by inference.
233
+ */
234
+ onDataRead?: (event: {
235
+ scope: string;
236
+ }) => void;
107
237
  }
108
238
  export interface PersonalServerAccessLogsApiDeps {
109
239
  auth: Pick<PersonalServerApiAuthPort, "authorizeOwner">;
@@ -138,6 +268,102 @@ export interface PersonalServerOauthTokenApiDeps {
138
268
  export interface PersonalServerApiDispatchOptions {
139
269
  basePath?: string;
140
270
  }
271
+ /**
272
+ * The grant the caller nominates for a read: `?grantId=` or the
273
+ * `x-ps-grant-id` header, the SDK's shape on every read route. Exported so
274
+ * the derivatives status route authorizes with exactly the same inputs as
275
+ * a data read — a credential that reads /v1/data/<scope> must not be
276
+ * refused by /v1/derivatives/status.
277
+ */
278
+ export declare function selectedGrantId(request: Request, url: URL): string | undefined;
279
+ export interface X402CycleInput {
280
+ deps: PersonalServerDataApiDeps;
281
+ request: Request;
282
+ scope: string;
283
+ fileIdParam?: string;
284
+ atParam?: string;
285
+ grantId: string;
286
+ builder: `0x${string}`;
287
+ gateway: Pick<GatewayClient, "getGrant">;
288
+ gatewayConfig: DataPortabilityGatewayConfig;
289
+ gatewayUrl: string;
290
+ }
291
+ export type X402CycleResult = {
292
+ kind: "ok";
293
+ payResponse: unknown;
294
+ } | {
295
+ kind: "challenge";
296
+ body: X402Challenge;
297
+ } | {
298
+ kind: "gateway-error";
299
+ status: number;
300
+ body: unknown;
301
+ };
302
+ /**
303
+ * Run the X402 dispatch for one read:
304
+ *
305
+ * X-PAYMENT absent / malformed / fails local validation
306
+ * → challenge: fresh 402 with current fee + accessRecord
307
+ * X-PAYMENT valid, forward to gateway succeeds
308
+ * → ok: caller proceeds to read the data
309
+ * X-PAYMENT valid, gateway returns 4xx/5xx
310
+ * → gateway-error: relay the gateway's body verbatim so the builder
311
+ * can dispatch (insufficient balance vs. replay vs. race etc.)
312
+ *
313
+ * The gateway POST goes through `fetch` directly (not `gateway.payForOperation`)
314
+ * because the SDK client throws plain Errors and loses the body — which is
315
+ * exactly what we need to distinguish gateway 402 (insufficient balance) from
316
+ * 409 (replay) from 400 (amount mismatch).
317
+ */
318
+ export declare function handleX402Cycle(input: X402CycleInput): Promise<X402CycleResult>;
319
+ /**
320
+ * The deletion that applies to a read of `scope`, or null when the read may
321
+ * be served. `entry` is the local version the read would serve (undefined
322
+ * on a local miss).
323
+ *
324
+ * - A local copy is refused when the gateway holds a tombstone that covers
325
+ * it (see `isEntryCoveredByTombstone`: registry versions and the ingest
326
+ * marker, never clocks). A local re-add on top of the tombstone is served.
327
+ * - A local miss asks the tracker to consult the gateway (bounded by its
328
+ * per-scope verdict cache and failure back-off): the local index cannot
329
+ * tell "deleted long ago" from "never had it".
330
+ * Gateway unreachability never fails the read: the tracker answers from its
331
+ * last known state, which is the documented offline behaviour.
332
+ */
333
+ export declare function resolveReadDeletion(deps: Pick<PersonalServerDataApiDeps, "scopeDeletions" | "serverOwner">, scope: string, entry: ReadDeletionEntry | null | undefined): Promise<{
334
+ scope: string;
335
+ dataPointId: string | null;
336
+ deletedAt: string;
337
+ } | null>;
338
+ /**
339
+ * Throw 410 DATA_DELETED when `resolveReadDeletion` says the read must not be
340
+ * served. Call it before any payment step: a builder must never be charged
341
+ * for a scope the owner deleted.
342
+ */
343
+ export declare function assertScopeNotDeleted(deps: Pick<PersonalServerDataApiDeps, "scopeDeletions" | "serverOwner">, scope: string, entry: ReadDeletionEntry | null | undefined): Promise<void>;
344
+ /** The index fields the deletion gate needs from the entry a read would serve. */
345
+ export type ReadDeletionEntry = Pick<IndexEntry, "version" | "dataPointId" | "afterTombstoneVersion">;
346
+ export declare function reportPersonalServerReadFulfillment(deps: PersonalServerDataApiDeps, event: PersonalServerReadFulfillment): void;
347
+ /**
348
+ * True when a read auth result entitles the caller to the owner's view of a
349
+ * record — the same convention as resolveLineageGrantView: no result, or the
350
+ * "owner" / "policy-bypass" sentinels. Everything else is a grantee.
351
+ */
352
+ export declare function isOwnerView(authResult: PersonalServerReadAuthResult | void): boolean;
353
+ /**
354
+ * The envelope view a grantee read is entitled to. The server-stamped
355
+ * `$writtenBy` (writing builder's address, grantId, signature) and
356
+ * `$lineage` (the owner's source data-point ids, dictionary-attackable back
357
+ * to scopes since dataPointId = keccak(owner, scope)) never leave the server
358
+ * on a grantee read: the owner reads them from storage, and grantees get the
359
+ * graph only through the grant-redacted lineage endpoint. When `$lineage` is
360
+ * present, the caller-supplied lineage field it mirrors (top-level `lineage`
361
+ * on a JSON record, `metadata.lineage` on a binary one) carries the same ids
362
+ * and is dropped with it; without the stamp such a field is ordinary user
363
+ * data and stays. Redaction is at serve time only — the stored envelope, its
364
+ * dataHash commitment, and the owner's view are unchanged.
365
+ */
366
+ export declare function redactEnvelopeForGrantee(envelope: DataFileEnvelope): DataFileEnvelope;
141
367
  export declare function handlePersonalServerDataRequest(request: Request, deps: PersonalServerDataApiDeps, options?: PersonalServerApiDispatchOptions): Promise<Response>;
142
368
  export declare function handlePersonalServerAccessLogsRequest(request: Request, deps: PersonalServerAccessLogsApiDeps, options?: PersonalServerApiDispatchOptions): Promise<Response>;
143
369
  export declare function handlePersonalServerSyncRequest(request: Request, deps: PersonalServerSyncApiDeps, options?: PersonalServerApiDispatchOptions): Promise<Response>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAoBL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EASzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMhE,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB;mDAC+C;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qCAAqC;IACpD,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,oBAAoB,CAClB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IAChD;;;;;;;;OAQG;IACH,cAAc,CAAC,CACb,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IACjD;;;;;;;;OAQG;IACH,qBAAqB,CAAC,CACpB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,aAAa,CAAC,IAAI,IAAI,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,yBAAyB,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;IACrD,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,uBAAuB,CAAC,EAAE,qCAAqC,CAAC;IAChE;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,4BAA4B,CAAC;IAC7C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,MAAM,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,oEAAoE;QACpE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACxD,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACxD,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAC/D,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACxD,OAAO,CAAC,EAAE,IAAI,CACZ,aAAa,EACX,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,aAAa,GAIb,UAAU,CACb,CAAC;IACF,aAAa,CAAC,EAAE,4BAA4B,CAAC;IAC7C,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACrD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACxD,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,mBAAmB,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,IAAI,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACxD;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA+FD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,GACP,MAAM,GAAG,SAAS,CAMpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACzC,aAAa,EAAE,4BAA4B,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC,CAuK1B;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,GAAG,aAAa,CAAC,EACvE,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC,CAgBR;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,GAAG,aAAa,CAAC,EACvE,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAAC,IAAI,CAAC,CAGf;AAeD,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,UAAU,EACV,SAAS,GAAG,aAAa,GAAG,uBAAuB,CACpD,CAAC;AAgHF,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,yBAAyB,EAC/B,KAAK,EAAE,6BAA6B,GACnC,IAAI,CAcN;AAoDD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,4BAA4B,GAAG,IAAI,GAC9C,OAAO,CAMT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CAqClB;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,QAAQ,CAAC,CA4oBnB;AAED,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,+BAA+B,EACrC,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,QAAQ,CAAC,CAenB;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,QAAQ,CAAC,CAmCnB;AAED,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,2BAA2B,EACjC,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,QAAQ,CAAC,CAyEnB;AAED,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,QAAQ,CAAC,CA8BnB;AAED,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,QAAQ,CAAC,CA6BnB;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC"}