@opendatalabs/personal-server-ts-core 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 (333) hide show
  1. package/dist/additions/budget.d.ts +28 -0
  2. package/dist/additions/budget.d.ts.map +1 -0
  3. package/dist/additions/budget.js +119 -0
  4. package/dist/additions/budget.js.map +1 -0
  5. package/dist/additions/durable.d.ts +64 -0
  6. package/dist/additions/durable.d.ts.map +1 -0
  7. package/dist/additions/durable.js +591 -0
  8. package/dist/additions/durable.js.map +1 -0
  9. package/dist/additions/first-added.d.ts +32 -48
  10. package/dist/additions/first-added.d.ts.map +1 -1
  11. package/dist/additions/first-added.js +68 -123
  12. package/dist/additions/first-added.js.map +1 -1
  13. package/dist/additions/index.d.ts +3 -0
  14. package/dist/additions/index.d.ts.map +1 -1
  15. package/dist/additions/index.js +3 -0
  16. package/dist/additions/index.js.map +1 -1
  17. package/dist/additions/ledger-store.js +1 -1
  18. package/dist/additions/record-rules.d.ts.map +1 -1
  19. package/dist/additions/record-rules.js +7 -0
  20. package/dist/additions/record-rules.js.map +1 -1
  21. package/dist/additions/summary.d.ts +88 -1
  22. package/dist/additions/summary.d.ts.map +1 -1
  23. package/dist/additions/summary.js +173 -8
  24. package/dist/additions/summary.js.map +1 -1
  25. package/dist/additions/version-inventory.d.ts +80 -0
  26. package/dist/additions/version-inventory.d.ts.map +1 -0
  27. package/dist/additions/version-inventory.js +232 -0
  28. package/dist/additions/version-inventory.js.map +1 -0
  29. package/dist/api/index.d.ts +70 -2
  30. package/dist/api/index.d.ts.map +1 -1
  31. package/dist/api/index.js +506 -79
  32. package/dist/api/index.js.map +1 -1
  33. package/dist/auth/index.d.ts +1 -1
  34. package/dist/auth/index.d.ts.map +1 -1
  35. package/dist/auth/index.js +1 -1
  36. package/dist/auth/index.js.map +1 -1
  37. package/dist/auth/request.d.ts +6 -0
  38. package/dist/auth/request.d.ts.map +1 -1
  39. package/dist/auth/request.js +66 -4
  40. package/dist/auth/request.js.map +1 -1
  41. package/dist/contracts/data.d.ts +54 -8
  42. package/dist/contracts/data.d.ts.map +1 -1
  43. package/dist/contracts/data.js +178 -35
  44. package/dist/contracts/data.js.map +1 -1
  45. package/dist/contracts/index.d.ts +1 -1
  46. package/dist/contracts/index.d.ts.map +1 -1
  47. package/dist/derivatives/registration.d.ts +0 -5
  48. package/dist/derivatives/registration.d.ts.map +1 -1
  49. package/dist/derivatives/registration.js +2 -1
  50. package/dist/derivatives/registration.js.map +1 -1
  51. package/dist/errors/pdpp-catalog.d.ts +36 -0
  52. package/dist/errors/pdpp-catalog.d.ts.map +1 -0
  53. package/dist/errors/pdpp-catalog.js +86 -0
  54. package/dist/errors/pdpp-catalog.js.map +1 -0
  55. package/dist/grants/index.d.ts +2 -0
  56. package/dist/grants/index.d.ts.map +1 -1
  57. package/dist/grants/index.js +4 -0
  58. package/dist/grants/index.js.map +1 -1
  59. package/dist/grants/pdpp-binding-store.d.ts +89 -0
  60. package/dist/grants/pdpp-binding-store.d.ts.map +1 -0
  61. package/dist/grants/pdpp-binding-store.js +112 -0
  62. package/dist/grants/pdpp-binding-store.js.map +1 -0
  63. package/dist/grants/pdpp-binding.d.ts +169 -0
  64. package/dist/grants/pdpp-binding.d.ts.map +1 -0
  65. package/dist/grants/pdpp-binding.js +236 -0
  66. package/dist/grants/pdpp-binding.js.map +1 -0
  67. package/dist/legacy-projection/bindings.d.ts +28 -1
  68. package/dist/legacy-projection/bindings.d.ts.map +1 -1
  69. package/dist/legacy-projection/bindings.js +622 -189
  70. package/dist/legacy-projection/bindings.js.map +1 -1
  71. package/dist/legacy-projection/claude-source-record.d.ts +22 -0
  72. package/dist/legacy-projection/claude-source-record.d.ts.map +1 -0
  73. package/dist/legacy-projection/claude-source-record.js +360 -0
  74. package/dist/legacy-projection/claude-source-record.js.map +1 -0
  75. package/dist/legacy-projection/declared-text.d.ts +41 -0
  76. package/dist/legacy-projection/declared-text.d.ts.map +1 -0
  77. package/dist/legacy-projection/declared-text.js +199 -0
  78. package/dist/legacy-projection/declared-text.js.map +1 -0
  79. package/dist/legacy-projection/github-browser-bindings.d.ts.map +1 -1
  80. package/dist/legacy-projection/github-browser-bindings.js +89 -5
  81. package/dist/legacy-projection/github-browser-bindings.js.map +1 -1
  82. package/dist/legacy-projection/github-legacy-fields.d.ts +6 -0
  83. package/dist/legacy-projection/github-legacy-fields.d.ts.map +1 -0
  84. package/dist/legacy-projection/github-legacy-fields.js +202 -0
  85. package/dist/legacy-projection/github-legacy-fields.js.map +1 -0
  86. package/dist/legacy-projection/index.d.ts +5 -1
  87. package/dist/legacy-projection/index.d.ts.map +1 -1
  88. package/dist/legacy-projection/index.js +55 -1
  89. package/dist/legacy-projection/index.js.map +1 -1
  90. package/dist/legacy-projection/oura-browser-bindings.d.ts.map +1 -1
  91. package/dist/legacy-projection/oura-browser-bindings.js +43 -41
  92. package/dist/legacy-projection/oura-browser-bindings.js.map +1 -1
  93. package/dist/legacy-projection/types.d.ts +38 -2
  94. package/dist/legacy-projection/types.d.ts.map +1 -1
  95. package/dist/mcp/read-client.d.ts.map +1 -1
  96. package/dist/mcp/read-client.js +10 -1
  97. package/dist/mcp/read-client.js.map +1 -1
  98. package/dist/mcp/resources.d.ts.map +1 -1
  99. package/dist/mcp/resources.js +3 -0
  100. package/dist/mcp/resources.js.map +1 -1
  101. package/dist/mcp/tools.d.ts.map +1 -1
  102. package/dist/mcp/tools.js +11 -2
  103. package/dist/mcp/tools.js.map +1 -1
  104. package/dist/pdpp/approval.d.ts +271 -0
  105. package/dist/pdpp/approval.d.ts.map +1 -0
  106. package/dist/pdpp/approval.js +467 -0
  107. package/dist/pdpp/approval.js.map +1 -0
  108. package/dist/pdpp/client-identity.d.ts +88 -0
  109. package/dist/pdpp/client-identity.d.ts.map +1 -0
  110. package/dist/pdpp/client-identity.js +196 -0
  111. package/dist/pdpp/client-identity.js.map +1 -0
  112. package/dist/pdpp/client-metadata.d.ts +95 -0
  113. package/dist/pdpp/client-metadata.d.ts.map +1 -0
  114. package/dist/pdpp/client-metadata.js +96 -0
  115. package/dist/pdpp/client-metadata.js.map +1 -0
  116. package/dist/pdpp/commitments.d.ts +75 -0
  117. package/dist/pdpp/commitments.d.ts.map +1 -0
  118. package/dist/pdpp/commitments.js +113 -0
  119. package/dist/pdpp/commitments.js.map +1 -0
  120. package/dist/pdpp/declaration.d.ts +118 -0
  121. package/dist/pdpp/declaration.d.ts.map +1 -0
  122. package/dist/pdpp/declaration.js +836 -0
  123. package/dist/pdpp/declaration.js.map +1 -0
  124. package/dist/pdpp/index.d.ts +37 -0
  125. package/dist/pdpp/index.d.ts.map +1 -0
  126. package/dist/pdpp/index.js +23 -0
  127. package/dist/pdpp/index.js.map +1 -0
  128. package/dist/pdpp/issuance.d.ts +126 -0
  129. package/dist/pdpp/issuance.d.ts.map +1 -0
  130. package/dist/pdpp/issuance.js +180 -0
  131. package/dist/pdpp/issuance.js.map +1 -0
  132. package/dist/pdpp/pkce.d.ts +53 -0
  133. package/dist/pdpp/pkce.d.ts.map +1 -0
  134. package/dist/pdpp/pkce.js +109 -0
  135. package/dist/pdpp/pkce.js.map +1 -0
  136. package/dist/pdpp/redirect.d.ts +60 -0
  137. package/dist/pdpp/redirect.d.ts.map +1 -0
  138. package/dist/pdpp/redirect.js +125 -0
  139. package/dist/pdpp/redirect.js.map +1 -0
  140. package/dist/pdpp/resolve.d.ts +109 -0
  141. package/dist/pdpp/resolve.d.ts.map +1 -0
  142. package/dist/pdpp/resolve.js +393 -0
  143. package/dist/pdpp/resolve.js.map +1 -0
  144. package/dist/pdpp/review.d.ts +280 -0
  145. package/dist/pdpp/review.d.ts.map +1 -0
  146. package/dist/pdpp/review.js +205 -0
  147. package/dist/pdpp/review.js.map +1 -0
  148. package/dist/pdpp/selection.d.ts +50 -0
  149. package/dist/pdpp/selection.d.ts.map +1 -0
  150. package/dist/pdpp/selection.js +442 -0
  151. package/dist/pdpp/selection.js.map +1 -0
  152. package/dist/pdpp/store.d.ts +228 -0
  153. package/dist/pdpp/store.d.ts.map +1 -0
  154. package/dist/pdpp/store.js +542 -0
  155. package/dist/pdpp/store.js.map +1 -0
  156. package/dist/pdpp/tokens.d.ts +181 -0
  157. package/dist/pdpp/tokens.d.ts.map +1 -0
  158. package/dist/pdpp/tokens.js +419 -0
  159. package/dist/pdpp/tokens.js.map +1 -0
  160. package/dist/pdpp/types.d.ts +441 -0
  161. package/dist/pdpp/types.d.ts.map +1 -0
  162. package/dist/pdpp/types.js +61 -0
  163. package/dist/pdpp/types.js.map +1 -0
  164. package/dist/pdpp-version.d.ts +28 -0
  165. package/dist/pdpp-version.d.ts.map +1 -0
  166. package/dist/pdpp-version.js +28 -0
  167. package/dist/pdpp-version.js.map +1 -0
  168. package/dist/policy/data-read.d.ts +24 -0
  169. package/dist/policy/data-read.d.ts.map +1 -1
  170. package/dist/policy/data-read.js +60 -3
  171. package/dist/policy/data-read.js.map +1 -1
  172. package/dist/policy/data-write.d.ts.map +1 -1
  173. package/dist/policy/data-write.js +3 -0
  174. package/dist/policy/data-write.js.map +1 -1
  175. package/dist/policy/index.d.ts +1 -0
  176. package/dist/policy/index.d.ts.map +1 -1
  177. package/dist/policy/index.js +1 -0
  178. package/dist/policy/index.js.map +1 -1
  179. package/dist/policy/reserved-scopes.d.ts +3 -0
  180. package/dist/policy/reserved-scopes.d.ts.map +1 -0
  181. package/dist/policy/reserved-scopes.js +5 -0
  182. package/dist/policy/reserved-scopes.js.map +1 -0
  183. package/dist/ports/index.d.ts +63 -0
  184. package/dist/ports/index.d.ts.map +1 -1
  185. package/dist/ports/index.js.map +1 -1
  186. package/dist/ports/pdpp-auth.d.ts +129 -0
  187. package/dist/ports/pdpp-auth.d.ts.map +1 -0
  188. package/dist/ports/pdpp-auth.js +60 -0
  189. package/dist/ports/pdpp-auth.js.map +1 -0
  190. package/dist/ports/pdpp-auth.test-utils.d.ts +9 -0
  191. package/dist/ports/pdpp-auth.test-utils.d.ts.map +1 -0
  192. package/dist/ports/pdpp-auth.test-utils.js +18 -0
  193. package/dist/ports/pdpp-auth.test-utils.js.map +1 -0
  194. package/dist/schemas/server-config.d.ts +44 -0
  195. package/dist/schemas/server-config.d.ts.map +1 -1
  196. package/dist/schemas/server-config.js +91 -0
  197. package/dist/schemas/server-config.js.map +1 -1
  198. package/dist/signing/request-signer.d.ts +2 -0
  199. package/dist/signing/request-signer.d.ts.map +1 -1
  200. package/dist/signing/request-signer.js +1 -0
  201. package/dist/signing/request-signer.js.map +1 -1
  202. package/dist/storage/adapters/interface.d.ts +3 -0
  203. package/dist/storage/adapters/interface.d.ts.map +1 -1
  204. package/dist/storage/adapters/vana-audience.d.ts +12 -0
  205. package/dist/storage/adapters/vana-audience.d.ts.map +1 -0
  206. package/dist/storage/adapters/vana-audience.js +72 -0
  207. package/dist/storage/adapters/vana-audience.js.map +1 -0
  208. package/dist/storage/adapters/vana.d.ts +2 -0
  209. package/dist/storage/adapters/vana.d.ts.map +1 -1
  210. package/dist/storage/adapters/vana.js +53 -20
  211. package/dist/storage/adapters/vana.js.map +1 -1
  212. package/dist/storage/canonical-legacy-projection.d.ts +262 -0
  213. package/dist/storage/canonical-legacy-projection.d.ts.map +1 -0
  214. package/dist/storage/canonical-legacy-projection.js +761 -0
  215. package/dist/storage/canonical-legacy-projection.js.map +1 -0
  216. package/dist/storage/index/manager.d.ts +29 -2
  217. package/dist/storage/index/manager.d.ts.map +1 -1
  218. package/dist/storage/index/schema.d.ts +1 -1
  219. package/dist/storage/index/schema.js +1 -1
  220. package/dist/storage/index/types.d.ts +7 -1
  221. package/dist/storage/index/types.d.ts.map +1 -1
  222. package/dist/storage/legacy-projection.d.ts +13 -10
  223. package/dist/storage/legacy-projection.d.ts.map +1 -1
  224. package/dist/storage/legacy-projection.js +269 -74
  225. package/dist/storage/legacy-projection.js.map +1 -1
  226. package/dist/storage/legacy-scope-coverage-exceptions.d.ts +8 -0
  227. package/dist/storage/legacy-scope-coverage-exceptions.d.ts.map +1 -0
  228. package/dist/storage/legacy-scope-coverage-exceptions.js +10 -0
  229. package/dist/storage/legacy-scope-coverage-exceptions.js.map +1 -0
  230. package/dist/storage/legacy-scope-coverage.d.ts +53 -0
  231. package/dist/storage/legacy-scope-coverage.d.ts.map +1 -0
  232. package/dist/storage/legacy-scope-coverage.js +403 -0
  233. package/dist/storage/legacy-scope-coverage.js.map +1 -0
  234. package/dist/storage/legacy-scope-entity-keys.d.ts +4 -0
  235. package/dist/storage/legacy-scope-entity-keys.d.ts.map +1 -0
  236. package/dist/storage/legacy-scope-entity-keys.js +92 -0
  237. package/dist/storage/legacy-scope-entity-keys.js.map +1 -0
  238. package/dist/storage/legacy-scope-view.d.ts +154 -0
  239. package/dist/storage/legacy-scope-view.d.ts.map +1 -0
  240. package/dist/storage/legacy-scope-view.js +735 -0
  241. package/dist/storage/legacy-scope-view.js.map +1 -0
  242. package/dist/storage/pdpp-records/completion.d.ts +91 -0
  243. package/dist/storage/pdpp-records/completion.d.ts.map +1 -0
  244. package/dist/storage/pdpp-records/completion.js +170 -0
  245. package/dist/storage/pdpp-records/completion.js.map +1 -0
  246. package/dist/storage/pdpp-records/cursor.d.ts +41 -0
  247. package/dist/storage/pdpp-records/cursor.d.ts.map +1 -0
  248. package/dist/storage/pdpp-records/cursor.js +49 -0
  249. package/dist/storage/pdpp-records/cursor.js.map +1 -0
  250. package/dist/storage/pdpp-records/declaration-witness.d.ts +58 -0
  251. package/dist/storage/pdpp-records/declaration-witness.d.ts.map +1 -0
  252. package/dist/storage/pdpp-records/declaration-witness.js +230 -0
  253. package/dist/storage/pdpp-records/declaration-witness.js.map +1 -0
  254. package/dist/storage/pdpp-records/enforcement.d.ts +52 -0
  255. package/dist/storage/pdpp-records/enforcement.d.ts.map +1 -0
  256. package/dist/storage/pdpp-records/enforcement.js +116 -0
  257. package/dist/storage/pdpp-records/enforcement.js.map +1 -0
  258. package/dist/storage/pdpp-records/index.d.ts +5 -0
  259. package/dist/storage/pdpp-records/index.d.ts.map +1 -0
  260. package/dist/storage/pdpp-records/index.js +5 -0
  261. package/dist/storage/pdpp-records/index.js.map +1 -0
  262. package/dist/storage/pdpp-records/ingest-plan.d.ts +39 -0
  263. package/dist/storage/pdpp-records/ingest-plan.d.ts.map +1 -0
  264. package/dist/storage/pdpp-records/ingest-plan.js +103 -0
  265. package/dist/storage/pdpp-records/ingest-plan.js.map +1 -0
  266. package/dist/storage/pdpp-records/interface.d.ts +104 -0
  267. package/dist/storage/pdpp-records/interface.d.ts.map +1 -0
  268. package/dist/storage/pdpp-records/interface.js +2 -0
  269. package/dist/storage/pdpp-records/interface.js.map +1 -0
  270. package/dist/storage/pdpp-records/memory-store.d.ts +9 -0
  271. package/dist/storage/pdpp-records/memory-store.d.ts.map +1 -0
  272. package/dist/storage/pdpp-records/memory-store.js +466 -0
  273. package/dist/storage/pdpp-records/memory-store.js.map +1 -0
  274. package/dist/storage/pdpp-records/portable.d.ts +9 -0
  275. package/dist/storage/pdpp-records/portable.d.ts.map +1 -0
  276. package/dist/storage/pdpp-records/portable.js +8 -0
  277. package/dist/storage/pdpp-records/portable.js.map +1 -0
  278. package/dist/storage/pdpp-records/read-port.d.ts +44 -0
  279. package/dist/storage/pdpp-records/read-port.d.ts.map +1 -0
  280. package/dist/storage/pdpp-records/read-port.js +22 -0
  281. package/dist/storage/pdpp-records/read-port.js.map +1 -0
  282. package/dist/storage/pdpp-records/record-key.d.ts +52 -0
  283. package/dist/storage/pdpp-records/record-key.d.ts.map +1 -0
  284. package/dist/storage/pdpp-records/record-key.js +97 -0
  285. package/dist/storage/pdpp-records/record-key.js.map +1 -0
  286. package/dist/storage/pdpp-records/schema.d.ts +41 -0
  287. package/dist/storage/pdpp-records/schema.d.ts.map +1 -0
  288. package/dist/storage/pdpp-records/schema.js +153 -0
  289. package/dist/storage/pdpp-records/schema.js.map +1 -0
  290. package/dist/storage/pdpp-records/stream-declaration.d.ts +88 -0
  291. package/dist/storage/pdpp-records/stream-declaration.d.ts.map +1 -0
  292. package/dist/storage/pdpp-records/stream-declaration.js +57 -0
  293. package/dist/storage/pdpp-records/stream-declaration.js.map +1 -0
  294. package/dist/storage/pdpp-records/types.d.ts +138 -0
  295. package/dist/storage/pdpp-records/types.d.ts.map +1 -0
  296. package/dist/storage/pdpp-records/types.js +38 -0
  297. package/dist/storage/pdpp-records/types.js.map +1 -0
  298. package/dist/sync/data-point-feed.d.ts +3 -0
  299. package/dist/sync/data-point-feed.d.ts.map +1 -1
  300. package/dist/sync/data-point-feed.js +17 -1
  301. package/dist/sync/data-point-feed.js.map +1 -1
  302. package/dist/sync/delete-data-port.d.ts +2 -0
  303. package/dist/sync/delete-data-port.d.ts.map +1 -1
  304. package/dist/sync/delete-data-port.js +1 -1
  305. package/dist/sync/delete-data-port.js.map +1 -1
  306. package/dist/sync/engine/sync-manager.d.ts.map +1 -1
  307. package/dist/sync/engine/sync-manager.js +5 -2
  308. package/dist/sync/engine/sync-manager.js.map +1 -1
  309. package/dist/sync/index.d.ts +3 -1
  310. package/dist/sync/index.d.ts.map +1 -1
  311. package/dist/sync/index.js +4 -0
  312. package/dist/sync/index.js.map +1 -1
  313. package/dist/sync/pdpp-import.d.ts +192 -0
  314. package/dist/sync/pdpp-import.d.ts.map +1 -0
  315. package/dist/sync/pdpp-import.js +441 -0
  316. package/dist/sync/pdpp-import.js.map +1 -0
  317. package/dist/sync/scope-deletions.d.ts +10 -0
  318. package/dist/sync/scope-deletions.d.ts.map +1 -1
  319. package/dist/sync/scope-deletions.js +40 -7
  320. package/dist/sync/scope-deletions.js.map +1 -1
  321. package/dist/sync/workers/download.d.ts +14 -0
  322. package/dist/sync/workers/download.d.ts.map +1 -1
  323. package/dist/sync/workers/download.js +149 -13
  324. package/dist/sync/workers/download.js.map +1 -1
  325. package/dist/sync/workers/upload.d.ts +2 -0
  326. package/dist/sync/workers/upload.d.ts.map +1 -1
  327. package/dist/sync/workers/upload.js +7 -0
  328. package/dist/sync/workers/upload.js.map +1 -1
  329. package/dist/test-utils/memory-storage.d.ts +1 -1
  330. package/dist/test-utils/memory-storage.d.ts.map +1 -1
  331. package/dist/test-utils/memory-storage.js +11 -5
  332. package/dist/test-utils/memory-storage.js.map +1 -1
  333. package/package.json +54 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-scope-view.js","sourceRoot":"","sources":["../../src/storage/legacy-scope-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Completion metadata for one native collection: "this stream's current live
3
+ * set is exactly what the host's full-stream collection saw". It is checked
4
+ * against the rows SQLite holds, and it writes only completion receipts.
5
+ */
6
+ export type StreamCompletionFailure =
7
+ /** The request is malformed. Nothing was read. */
8
+ "invalid_request"
9
+ /** The trusted declarations do not know the stream. */
10
+ | "unknown_stream"
11
+ /** The trusted declaration for the stream cannot name a primary key. */
12
+ | "invalid_declaration"
13
+ /** A stored live row cannot be digested under the native key/JSON domain. */
14
+ | "invalid_snapshot_data"
15
+ /** The live count or digest differs from the proof. */
16
+ | "snapshot_conflict"
17
+ /** The proof is older than, or ambiguous against, a valid receipt. */
18
+ | "time_conflict"
19
+ /** A stored receipt contradicts the data it claims to describe. */
20
+ | "invalid_prior_receipt";
21
+ export declare class StreamCompletionError extends Error {
22
+ readonly reason: StreamCompletionFailure;
23
+ constructor(reason: StreamCompletionFailure);
24
+ }
25
+ export interface StreamCompletionProof {
26
+ stream: string;
27
+ coverage: "full_stream";
28
+ /** Safe integer >= 0. */
29
+ liveCount: number;
30
+ /** 64 lower-case hex characters. */
31
+ snapshotSha256: string;
32
+ }
33
+ export interface StreamCompletionRequest {
34
+ instance: string;
35
+ sourceId: string;
36
+ method: string;
37
+ generation: number;
38
+ /** UTC with exactly three fractional digits, e.g. 2026-09-10T06:30:00.000Z. */
39
+ sourceCollectedAt: string;
40
+ collectionTimeBasis: "host_run_finished";
41
+ /** Nonempty, one entry per stream. */
42
+ streams: StreamCompletionProof[];
43
+ }
44
+ /**
45
+ * Trusted declaration lookup: the primary-key fields of a declared stream, or
46
+ * undefined when the source does not declare it. Never built from a request.
47
+ */
48
+ export type StreamDeclarationResolver = (sourceId: string, stream: string) => readonly string[] | undefined;
49
+ /** A receipt written by this operation, as stored. */
50
+ export interface NativeStreamCompletionReceipt {
51
+ instance: string;
52
+ stream: string;
53
+ method: string;
54
+ generation: number;
55
+ sourceCollectedAt: string;
56
+ /** The write clock when the receipt was stored. This operation never advances it. */
57
+ writeSeq: number;
58
+ liveCount: number;
59
+ snapshotSha256: string;
60
+ collectionTimeBasis: "host_run_finished";
61
+ }
62
+ export declare function isCompletionTime(value: unknown): value is string;
63
+ /** Validates the request's shape, so the store never trusts a cast. */
64
+ export declare function parseCompletionRequest(input: StreamCompletionRequest): StreamCompletionRequest;
65
+ export interface LiveSnapshotIdentity {
66
+ sourceId: string;
67
+ instance: string;
68
+ method: string;
69
+ generation: number;
70
+ stream: string;
71
+ }
72
+ export interface LiveSnapshotRow {
73
+ recordKey: string;
74
+ /** The stored JSON text of `data`. */
75
+ dataJson: string;
76
+ }
77
+ /**
78
+ * UTF-8 digest input: the canonical JSON of
79
+ * `[source_id, instance, method, generation, stream, sortedPairs]`, each pair
80
+ * `[encodedRecordKey, parsedData]`. Pairs sort by JS UTF-16 string order. Row
81
+ * and envelope metadata are not part of it; every `data` property is, unknown
82
+ * ones, `blob_ref` and timestamps included. The bytes of objects follow the
83
+ * existing `canonicalJson` (JS enumeration order after key sorting), so a
84
+ * native producer must reuse that function rather than a second serializer.
85
+ */
86
+ export declare function encodeLiveSnapshotDigestInput(identity: LiveSnapshotIdentity, primaryKey: readonly string[], rows: readonly LiveSnapshotRow[]): Uint8Array<ArrayBuffer>;
87
+ /** SHA-256 adapter; resolves to the 32 digest bytes, without a Node dependency. */
88
+ export type Sha256 = (input: Uint8Array<ArrayBuffer>) => Promise<Uint8Array>;
89
+ /** Hashes the shared validated bytes; Web Crypto is the default host adapter. */
90
+ export declare function liveSnapshotDigestAsync(identity: LiveSnapshotIdentity, primaryKey: readonly string[], rows: readonly LiveSnapshotRow[], sha256?: Sha256): Promise<string>;
91
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/completion.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,MAAM,MAAM,uBAAuB;AACjC,kDAAkD;AAChD,iBAAiB;AACnB,uDAAuD;GACrD,gBAAgB;AAClB,wEAAwE;GACtE,qBAAqB;AACvB,6EAA6E;GAC3E,uBAAuB;AACzB,uDAAuD;GACrD,mBAAmB;AACrB,sEAAsE;GACpE,eAAe;AACjB,mEAAmE;GACjE,uBAAuB,CAAC;AAE5B,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,MAAM,EAAE,uBAAuB;gBAA/B,MAAM,EAAE,uBAAuB;CAG5D;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;IACxB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,sCAAsC;IACtC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,KACX,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;AAEnC,sDAAsD;AACtD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAKD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAKhE;AAMD,uEAAuE;AACvE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,uBAAuB,GAC7B,uBAAuB,CAsCzB;AAsED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,IAAI,EAAE,SAAS,eAAe,EAAE,GAC/B,UAAU,CAAC,WAAW,CAAC,CA4BzB;AAED,mFAAmF;AACnF,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE7E,iFAAiF;AACjF,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,IAAI,EAAE,SAAS,eAAe,EAAE,EAChC,MAAM,GAAE,MACiE,GACxE,OAAO,CAAC,MAAM,CAAC,CAMjB"}
@@ -0,0 +1,170 @@
1
+ import { canonicalJson } from "./ingest-plan.js";
2
+ import { computeRecordKeyFromData, RecordKeyError } from "./record-key.js";
3
+ export class StreamCompletionError extends Error {
4
+ reason;
5
+ constructor(reason) {
6
+ super(reason);
7
+ this.reason = reason;
8
+ }
9
+ }
10
+ const SHA256_HEX = /^[0-9a-f]{64}$/;
11
+ const UTC_MILLIS = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
12
+ export function isCompletionTime(value) {
13
+ if (typeof value !== "string" || !UTC_MILLIS.test(value))
14
+ return false;
15
+ // `toISOString` throws on an invalid Date, so test for one first.
16
+ const instant = Date.parse(value);
17
+ return !Number.isNaN(instant) && new Date(instant).toISOString() === value;
18
+ }
19
+ function nonEmptyString(value) {
20
+ return typeof value === "string" && value.length > 0;
21
+ }
22
+ /** Validates the request's shape, so the store never trusts a cast. */
23
+ export function parseCompletionRequest(input) {
24
+ const invalid = () => new StreamCompletionError("invalid_request");
25
+ const request = input;
26
+ if (!request ||
27
+ typeof request !== "object" ||
28
+ !nonEmptyString(request.instance) ||
29
+ !nonEmptyString(request.sourceId) ||
30
+ !nonEmptyString(request.method) ||
31
+ typeof request.generation !== "number" ||
32
+ !Number.isSafeInteger(request.generation) ||
33
+ request.generation < 1 ||
34
+ !isCompletionTime(request.sourceCollectedAt) ||
35
+ request.collectionTimeBasis !== "host_run_finished" ||
36
+ !Array.isArray(request.streams) ||
37
+ request.streams.length === 0) {
38
+ throw invalid();
39
+ }
40
+ const seen = new Set();
41
+ for (const proof of request.streams) {
42
+ if (!proof ||
43
+ typeof proof !== "object" ||
44
+ !nonEmptyString(proof.stream) ||
45
+ seen.has(proof.stream) ||
46
+ proof.coverage !== "full_stream" ||
47
+ typeof proof.liveCount !== "number" ||
48
+ !Number.isSafeInteger(proof.liveCount) ||
49
+ proof.liveCount < 0 ||
50
+ typeof proof.snapshotSha256 !== "string" ||
51
+ !SHA256_HEX.test(proof.snapshotSha256)) {
52
+ throw invalid();
53
+ }
54
+ seen.add(proof.stream);
55
+ }
56
+ return request;
57
+ }
58
+ const LONE_SURROGATE = /[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/;
59
+ /** JSON-native values only: no coercion of undefined, Date, NaN or Infinity. */
60
+ function assertJsonNative(value) {
61
+ if (value === null || typeof value === "boolean")
62
+ return;
63
+ if (typeof value === "string") {
64
+ if (LONE_SURROGATE.test(value))
65
+ throw badData();
66
+ return;
67
+ }
68
+ if (typeof value === "number") {
69
+ if (!Number.isFinite(value))
70
+ throw badData();
71
+ return;
72
+ }
73
+ if (Array.isArray(value)) {
74
+ for (const item of value)
75
+ assertJsonNative(item);
76
+ return;
77
+ }
78
+ if (typeof value === "object") {
79
+ const prototype = Object.getPrototypeOf(value);
80
+ if (prototype !== Object.prototype && prototype !== null)
81
+ throw badData();
82
+ for (const [key, item] of Object.entries(value)) {
83
+ if (LONE_SURROGATE.test(key))
84
+ throw badData();
85
+ assertJsonNative(item);
86
+ }
87
+ return;
88
+ }
89
+ throw badData();
90
+ }
91
+ const badData = () => new StreamCompletionError("invalid_snapshot_data");
92
+ /**
93
+ * Stored scalar keys are literal strings, so a single-key declaration never
94
+ * reads an array-looking key as a compound one. A compound key must be the
95
+ * exact minified string array of the declared arity.
96
+ */
97
+ function assertKeyDomain(recordKey, data, primaryKey) {
98
+ if (primaryKey.length > 1) {
99
+ let parsed;
100
+ try {
101
+ parsed = JSON.parse(recordKey);
102
+ }
103
+ catch {
104
+ throw badData();
105
+ }
106
+ if (!Array.isArray(parsed) ||
107
+ parsed.length !== primaryKey.length ||
108
+ !parsed.every((part) => typeof part === "string") ||
109
+ JSON.stringify(parsed) !== recordKey) {
110
+ throw badData();
111
+ }
112
+ }
113
+ try {
114
+ if (computeRecordKeyFromData(data, [...primaryKey]) !== recordKey) {
115
+ throw badData();
116
+ }
117
+ }
118
+ catch (error) {
119
+ if (error instanceof RecordKeyError)
120
+ throw badData();
121
+ throw error;
122
+ }
123
+ }
124
+ /**
125
+ * UTF-8 digest input: the canonical JSON of
126
+ * `[source_id, instance, method, generation, stream, sortedPairs]`, each pair
127
+ * `[encodedRecordKey, parsedData]`. Pairs sort by JS UTF-16 string order. Row
128
+ * and envelope metadata are not part of it; every `data` property is, unknown
129
+ * ones, `blob_ref` and timestamps included. The bytes of objects follow the
130
+ * existing `canonicalJson` (JS enumeration order after key sorting), so a
131
+ * native producer must reuse that function rather than a second serializer.
132
+ */
133
+ export function encodeLiveSnapshotDigestInput(identity, primaryKey, rows) {
134
+ const pairs = rows.map((row) => {
135
+ let data;
136
+ try {
137
+ data = JSON.parse(row.dataJson);
138
+ }
139
+ catch {
140
+ throw badData();
141
+ }
142
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
143
+ throw badData();
144
+ }
145
+ assertKeyDomain(row.recordKey, data, primaryKey);
146
+ return [row.recordKey, data];
147
+ });
148
+ pairs.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
149
+ for (let i = 1; i < pairs.length; i++) {
150
+ if (pairs[i][0] === pairs[i - 1][0])
151
+ throw badData();
152
+ }
153
+ const tuple = [
154
+ identity.sourceId,
155
+ identity.instance,
156
+ identity.method,
157
+ identity.generation,
158
+ identity.stream,
159
+ pairs,
160
+ ];
161
+ assertJsonNative(tuple);
162
+ return new TextEncoder().encode(canonicalJson(tuple));
163
+ }
164
+ /** Hashes the shared validated bytes; Web Crypto is the default host adapter. */
165
+ export async function liveSnapshotDigestAsync(identity, primaryKey, rows, sha256 = async (input) => new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256", input))) {
166
+ const bytes = encodeLiveSnapshotDigestInput(identity, primaryKey, rows);
167
+ const digest = await sha256(bytes);
168
+ return Array.from(digest, (byte) => byte.toString(16).padStart(2, "0")).join("");
169
+ }
170
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwB3E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAClB;IAA5B,YAA4B,MAA+B;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;QADY,WAAM,GAAN,MAAM,CAAyB;IAE3D,CAAC;CACF;AA8CD,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,UAAU,GAAG,+CAA+C,CAAC;AAEnE,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,kEAAkE;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,sBAAsB,CACpC,KAA8B;IAE9B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,KAAgD,CAAC;IACjE,IACE,CAAC,OAAO;QACR,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;QACtC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC;QACzC,OAAO,CAAC,UAAU,GAAG,CAAC;QACtB,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAC5C,OAAO,CAAC,mBAAmB,KAAK,mBAAmB;QACnD,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAC5B,CAAC;QACD,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAA2C,EAAE,CAAC;QACxE,IACE,CAAC,KAAK;YACN,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,KAAK,CAAC,QAAQ,KAAK,aAAa;YAChC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;YACnC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;YACtC,KAAK,CAAC,SAAS,GAAG,CAAC;YACnB,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ;YACxC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EACtC,CAAC;YACD,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,OAAkC,CAAC;AAC5C,CAAC;AAED,MAAM,cAAc,GAClB,wEAAwE,CAAC;AAE3E,gFAAgF;AAChF,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,OAAO,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,OAAO,EAAE,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI;YAAE,MAAM,OAAO,EAAE,CAAC;QAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,MAAM,OAAO,EAAE,CAAC;YAC9C,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;AAEzE;;;;GAIG;AACH,SAAS,eAAe,CACtB,SAAiB,EACjB,IAA6B,EAC7B,UAA6B;IAE7B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;YACnC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EACpC,CAAC;YACD,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,IAAI,wBAAwB,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAClE,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc;YAAE,MAAM,OAAO,EAAE,CAAC;QACrD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAgBD;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAA8B,EAC9B,UAA6B,EAC7B,IAAgC;IAEhC,MAAM,KAAK,GAAwB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAA+B,EAAE,UAAU,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,OAAO,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,QAAQ;QACjB,QAAQ,CAAC,QAAQ;QACjB,QAAQ,CAAC,MAAM;QACf,QAAQ,CAAC,UAAU;QACnB,QAAQ,CAAC,MAAM;QACf,KAAK;KACN,CAAC;IACF,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAKD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA8B,EAC9B,UAA6B,EAC7B,IAAgC,EAChC,SAAiB,KAAK,EAAE,KAAK,EAAE,EAAE,CAC/B,IAAI,UAAU,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEzE,MAAM,KAAK,GAAG,6BAA6B,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAC1E,EAAE,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Opaque cursor encoding shared by both store backends. Cursors are base64url
3
+ * JSON; clients MUST NOT parse or construct them (spec §8), but both
4
+ * implementations need a shared wire format to stay behaviorally identical.
5
+ */
6
+ export interface ListCursorPayload {
7
+ kind: "list";
8
+ /** Stream this token was minted for. Absent only on legacy cursors. */
9
+ stream?: string;
10
+ /** Store reset epoch this token was minted in. Absent only on legacy cursors. */
11
+ epoch?: string;
12
+ order: "asc" | "desc";
13
+ sortValue: string | null;
14
+ recordKey: string;
15
+ /**
16
+ * Write clock when page 1 was served. A reset of a read instance after
17
+ * this point expires the cursor (410), so one paginated read never mixes
18
+ * rows from two generations. Absent on cursors minted before the fence.
19
+ */
20
+ horizon?: string;
21
+ }
22
+ export interface ChangesSinceCursorPayload {
23
+ kind: "changes_since";
24
+ /** Stream this token was minted for. Absent only on legacy cursors. */
25
+ stream?: string;
26
+ /** Store reset epoch this token was minted in. Absent only on legacy cursors. */
27
+ epoch?: string;
28
+ /** The session horizon every page of this session is anchored to. */
29
+ horizon: string;
30
+ /** The previous session's horizon, or null for a first-ever sync. */
31
+ sinceHorizon: string | null;
32
+ /** Pagination offset within the horizon-anchored result set. */
33
+ offset: number;
34
+ }
35
+ export type CursorPayload = ListCursorPayload | ChangesSinceCursorPayload;
36
+ export declare function encodeCursor(payload: CursorPayload): string;
37
+ export declare function decodeCursor(cursor: string): CursorPayload;
38
+ export declare class InvalidCursorSyntaxError extends Error {
39
+ constructor();
40
+ }
41
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/cursor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAC;IACtB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,yBAAyB,CAAC;AAyB1E,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAE3D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAW1D;AAED,qBAAa,wBAAyB,SAAQ,KAAK;;CAIlD"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Opaque cursor encoding shared by both store backends. Cursors are base64url
3
+ * JSON; clients MUST NOT parse or construct them (spec §8), but both
4
+ * implementations need a shared wire format to stay behaviorally identical.
5
+ */
6
+ // Base64url encode/decode via the universally-available `atob`/`btoa` + Web
7
+ // text codecs rather than Node's Buffer, so this module stays browser-safe
8
+ // (packages/core is consumed by ps-lite as well as the Node server) —
9
+ // matches the convention in packages/core/src/payment/x402.ts.
10
+ function base64urlEncode(input) {
11
+ const bytes = new TextEncoder().encode(input);
12
+ let binString = "";
13
+ for (const b of bytes)
14
+ binString += String.fromCodePoint(b);
15
+ return btoa(binString)
16
+ .replace(/\+/g, "-")
17
+ .replace(/\//g, "_")
18
+ .replace(/=+$/, "");
19
+ }
20
+ function base64urlDecode(input) {
21
+ let s = input.replace(/-/g, "+").replace(/_/g, "/");
22
+ const pad = (4 - (s.length % 4)) % 4;
23
+ s += "=".repeat(pad);
24
+ const binString = atob(s);
25
+ const bytes = Uint8Array.from(binString, (c) => c.codePointAt(0) ?? 0);
26
+ return new TextDecoder().decode(bytes);
27
+ }
28
+ export function encodeCursor(payload) {
29
+ return base64urlEncode(JSON.stringify(payload));
30
+ }
31
+ export function decodeCursor(cursor) {
32
+ try {
33
+ const json = base64urlDecode(cursor);
34
+ const parsed = JSON.parse(json);
35
+ if (parsed && (parsed.kind === "list" || parsed.kind === "changes_since")) {
36
+ return parsed;
37
+ }
38
+ throw new Error("malformed cursor payload");
39
+ }
40
+ catch {
41
+ throw new InvalidCursorSyntaxError();
42
+ }
43
+ }
44
+ export class InvalidCursorSyntaxError extends Error {
45
+ constructor() {
46
+ super("Cursor token is malformed or unrecognized");
47
+ }
48
+ }
49
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/cursor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH,4EAA4E;AAC5E,2EAA2E;AAC3E,sEAAsE;AACtE,+DAA+D;AAC/D,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,SAAS,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;QACjD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,CAAC;YAC1E,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,wBAAwB,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD;QACE,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,58 @@
1
+ import type { PdppRecordReadPort } from "./read-port.js";
2
+ import { InvalidCursorError } from "./types.js";
3
+ export interface DeclarationWitnessOptions {
4
+ readPort: PdppRecordReadPort;
5
+ /** One connection instance ID, as accepted by listRecords.instanceIds. */
6
+ sourceKey: string;
7
+ stream: string;
8
+ nextSchema: Record<string, unknown>;
9
+ cursor?: string;
10
+ /** Positive safe integer; bounds returned rows and validations per call. */
11
+ limit: number;
12
+ }
13
+ export interface DeclarationWitnessResult {
14
+ verdict: "pass" | "fail" | "partial";
15
+ /** Rows validated in this call, including the failing row, if any. */
16
+ checked: number;
17
+ nextCursor: string | null;
18
+ failure?: {
19
+ /** Lowercase SHA-256 hex of the UTF-8 record key, never the key itself. */
20
+ recordKeyDigest: string;
21
+ /** JSON pointer; data-derived property names are redacted as "*". */
22
+ instancePath: string;
23
+ keyword: string;
24
+ };
25
+ }
26
+ export declare class DeclarationWitnessInputError extends Error {
27
+ constructor();
28
+ }
29
+ export declare class DeclarationWitnessSchemaError extends Error {
30
+ constructor();
31
+ }
32
+ export declare class DeclarationWitnessCursorError extends InvalidCursorError {
33
+ constructor();
34
+ }
35
+ export declare class DeclarationWitnessReadError extends Error {
36
+ constructor();
37
+ }
38
+ /**
39
+ * Validate one bounded page of a declaration-upgrade walk.
40
+ *
41
+ * A partial result certifies only the rows already visited. A pass means the
42
+ * read port reported its terminal page and all visited live rows validated.
43
+ * The read port is NOT a snapshot: inserts behind the cursor, updates and
44
+ * deletes can change what the walk observes. The caller MUST keep writes and
45
+ * resets quiescent (or supply a snapshot-backed port) for the entire walk
46
+ * through the upgrade decision. This API supplies no mutation fence.
47
+ *
48
+ * sourceKey is exactly one instance ID, avoiding cross-instance tuple ties.
49
+ * Continuations are opaque, encrypted/authenticated, and scoped to the same
50
+ * port object/process, source, stream and JSON-serialized nextSchema. Restart
51
+ * the walk after recreating a port, restarting the process or changing the
52
+ * schema. A retry may reuse a cursor; the port's live-read caveat still applies.
53
+ * No record data, raw keys, schema contents or validator messages are logged
54
+ * or returned. Array indices and schema-declared property names may appear
55
+ * in the redacted failure pointer.
56
+ */
57
+ export declare function witnessDeclarationUpgrade({ readPort, sourceKey, stream, nextSchema, cursor, limit, }: DeclarationWitnessOptions): Promise<DeclarationWitnessResult>;
58
+ //# sourceMappingURL=declaration-witness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declaration-witness.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/declaration-witness.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAEL,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE;QACR,2EAA2E;QAC3E,eAAe,EAAE,MAAM,CAAC;QACxB,qEAAqE;QACrE,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,qBAAa,4BAA6B,SAAQ,KAAK;;CAOtD;AAED,qBAAa,6BAA8B,SAAQ,KAAK;;CAMvD;AAED,qBAAa,6BAA8B,SAAQ,kBAAkB;;CAOpE;AAED,qBAAa,2BAA4B,SAAQ,KAAK;;CAKrD;AAiFD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,yBAAyB,CAAC,EAC9C,QAAQ,EACR,SAAS,EACT,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,GACN,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAqI/D"}