@opendatalabs/personal-server-ts-core 0.0.1-canary.00328bf

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 (573) hide show
  1. package/dist/api/index.d.ts +408 -0
  2. package/dist/api/index.d.ts.map +1 -0
  3. package/dist/api/index.js +1257 -0
  4. package/dist/api/index.js.map +1 -0
  5. package/dist/api/raw-envelope.d.ts +3 -0
  6. package/dist/api/raw-envelope.d.ts.map +1 -0
  7. package/dist/api/raw-envelope.js +215 -0
  8. package/dist/api/raw-envelope.js.map +1 -0
  9. package/dist/auth/index.d.ts +2 -0
  10. package/dist/auth/index.d.ts.map +1 -0
  11. package/dist/auth/index.js +2 -0
  12. package/dist/auth/index.js.map +1 -0
  13. package/dist/auth/request.d.ts +28 -0
  14. package/dist/auth/request.d.ts.map +1 -0
  15. package/dist/auth/request.js +106 -0
  16. package/dist/auth/request.js.map +1 -0
  17. package/dist/client.d.ts +233 -0
  18. package/dist/client.d.ts.map +1 -0
  19. package/dist/client.js +243 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/config/defaults.d.ts +12 -0
  22. package/dist/config/defaults.d.ts.map +1 -0
  23. package/dist/config/defaults.js +12 -0
  24. package/dist/config/defaults.js.map +1 -0
  25. package/dist/config/index.d.ts +3 -0
  26. package/dist/config/index.d.ts.map +1 -0
  27. package/dist/config/index.js +3 -0
  28. package/dist/config/index.js.map +1 -0
  29. package/dist/config/paths.d.ts +9 -0
  30. package/dist/config/paths.d.ts.map +1 -0
  31. package/dist/config/paths.js +14 -0
  32. package/dist/config/paths.js.map +1 -0
  33. package/dist/contracts/access-logs.d.ts +8 -0
  34. package/dist/contracts/access-logs.d.ts.map +1 -0
  35. package/dist/contracts/access-logs.js +7 -0
  36. package/dist/contracts/access-logs.js.map +1 -0
  37. package/dist/contracts/auth-device.d.ts +70 -0
  38. package/dist/contracts/auth-device.d.ts.map +1 -0
  39. package/dist/contracts/auth-device.js +163 -0
  40. package/dist/contracts/auth-device.js.map +1 -0
  41. package/dist/contracts/binary.d.ts +66 -0
  42. package/dist/contracts/binary.d.ts.map +1 -0
  43. package/dist/contracts/binary.js +123 -0
  44. package/dist/contracts/binary.js.map +1 -0
  45. package/dist/contracts/config.d.ts +5 -0
  46. package/dist/contracts/config.d.ts.map +1 -0
  47. package/dist/contracts/config.js +30 -0
  48. package/dist/contracts/config.js.map +1 -0
  49. package/dist/contracts/data.d.ts +165 -0
  50. package/dist/contracts/data.d.ts.map +1 -0
  51. package/dist/contracts/data.js +371 -0
  52. package/dist/contracts/data.js.map +1 -0
  53. package/dist/contracts/grants.d.ts +45 -0
  54. package/dist/contracts/grants.d.ts.map +1 -0
  55. package/dist/contracts/grants.js +177 -0
  56. package/dist/contracts/grants.js.map +1 -0
  57. package/dist/contracts/http.d.ts +21 -0
  58. package/dist/contracts/http.d.ts.map +1 -0
  59. package/dist/contracts/http.js +49 -0
  60. package/dist/contracts/http.js.map +1 -0
  61. package/dist/contracts/index.d.ts +16 -0
  62. package/dist/contracts/index.d.ts.map +1 -0
  63. package/dist/contracts/index.js +10 -0
  64. package/dist/contracts/index.js.map +1 -0
  65. package/dist/contracts/oauth.d.ts +38 -0
  66. package/dist/contracts/oauth.d.ts.map +1 -0
  67. package/dist/contracts/oauth.js +130 -0
  68. package/dist/contracts/oauth.js.map +1 -0
  69. package/dist/contracts/sync.d.ts +10 -0
  70. package/dist/contracts/sync.d.ts.map +1 -0
  71. package/dist/contracts/sync.js +35 -0
  72. package/dist/contracts/sync.js.map +1 -0
  73. package/dist/derivatives/answer-shape.d.ts +83 -0
  74. package/dist/derivatives/answer-shape.d.ts.map +1 -0
  75. package/dist/derivatives/answer-shape.js +320 -0
  76. package/dist/derivatives/answer-shape.js.map +1 -0
  77. package/dist/derivatives/api.d.ts +48 -0
  78. package/dist/derivatives/api.d.ts.map +1 -0
  79. package/dist/derivatives/api.js +374 -0
  80. package/dist/derivatives/api.js.map +1 -0
  81. package/dist/derivatives/compute.d.ts +112 -0
  82. package/dist/derivatives/compute.d.ts.map +1 -0
  83. package/dist/derivatives/compute.js +476 -0
  84. package/dist/derivatives/compute.js.map +1 -0
  85. package/dist/derivatives/e2ee/aad.d.ts +22 -0
  86. package/dist/derivatives/e2ee/aad.d.ts.map +1 -0
  87. package/dist/derivatives/e2ee/aad.js +32 -0
  88. package/dist/derivatives/e2ee/aad.js.map +1 -0
  89. package/dist/derivatives/e2ee/attestation.d.ts +134 -0
  90. package/dist/derivatives/e2ee/attestation.d.ts.map +1 -0
  91. package/dist/derivatives/e2ee/attestation.js +248 -0
  92. package/dist/derivatives/e2ee/attestation.js.map +1 -0
  93. package/dist/derivatives/e2ee/index.d.ts +6 -0
  94. package/dist/derivatives/e2ee/index.d.ts.map +1 -0
  95. package/dist/derivatives/e2ee/index.js +6 -0
  96. package/dist/derivatives/e2ee/index.js.map +1 -0
  97. package/dist/derivatives/e2ee/jcs.d.ts +17 -0
  98. package/dist/derivatives/e2ee/jcs.d.ts.map +1 -0
  99. package/dist/derivatives/e2ee/jcs.js +55 -0
  100. package/dist/derivatives/e2ee/jcs.js.map +1 -0
  101. package/dist/derivatives/e2ee/phala.d.ts +62 -0
  102. package/dist/derivatives/e2ee/phala.d.ts.map +1 -0
  103. package/dist/derivatives/e2ee/phala.js +168 -0
  104. package/dist/derivatives/e2ee/phala.js.map +1 -0
  105. package/dist/derivatives/e2ee/suite.d.ts +56 -0
  106. package/dist/derivatives/e2ee/suite.d.ts.map +1 -0
  107. package/dist/derivatives/e2ee/suite.js +164 -0
  108. package/dist/derivatives/e2ee/suite.js.map +1 -0
  109. package/dist/derivatives/index.d.ts +11 -0
  110. package/dist/derivatives/index.d.ts.map +1 -0
  111. package/dist/derivatives/index.js +11 -0
  112. package/dist/derivatives/index.js.map +1 -0
  113. package/dist/derivatives/inference.d.ts +151 -0
  114. package/dist/derivatives/inference.d.ts.map +1 -0
  115. package/dist/derivatives/inference.js +262 -0
  116. package/dist/derivatives/inference.js.map +1 -0
  117. package/dist/derivatives/prompt.d.ts +99 -0
  118. package/dist/derivatives/prompt.d.ts.map +1 -0
  119. package/dist/derivatives/prompt.js +281 -0
  120. package/dist/derivatives/prompt.js.map +1 -0
  121. package/dist/derivatives/registration.d.ts +56 -0
  122. package/dist/derivatives/registration.d.ts.map +1 -0
  123. package/dist/derivatives/registration.js +187 -0
  124. package/dist/derivatives/registration.js.map +1 -0
  125. package/dist/derivatives/scheduler.d.ts +114 -0
  126. package/dist/derivatives/scheduler.d.ts.map +1 -0
  127. package/dist/derivatives/scheduler.js +331 -0
  128. package/dist/derivatives/scheduler.js.map +1 -0
  129. package/dist/derivatives/store.d.ts +14 -0
  130. package/dist/derivatives/store.d.ts.map +1 -0
  131. package/dist/derivatives/store.js +79 -0
  132. package/dist/derivatives/store.js.map +1 -0
  133. package/dist/derivatives/types.d.ts +102 -0
  134. package/dist/derivatives/types.d.ts.map +1 -0
  135. package/dist/derivatives/types.js +29 -0
  136. package/dist/derivatives/types.js.map +1 -0
  137. package/dist/errors/catalog.d.ts +125 -0
  138. package/dist/errors/catalog.d.ts.map +1 -0
  139. package/dist/errors/catalog.js +198 -0
  140. package/dist/errors/catalog.js.map +1 -0
  141. package/dist/errors/pdpp-catalog.d.ts +36 -0
  142. package/dist/errors/pdpp-catalog.d.ts.map +1 -0
  143. package/dist/errors/pdpp-catalog.js +82 -0
  144. package/dist/errors/pdpp-catalog.js.map +1 -0
  145. package/dist/grants/index.d.ts +5 -0
  146. package/dist/grants/index.d.ts.map +1 -0
  147. package/dist/grants/index.js +6 -0
  148. package/dist/grants/index.js.map +1 -0
  149. package/dist/grants/pdpp-binding-store.d.ts +58 -0
  150. package/dist/grants/pdpp-binding-store.d.ts.map +1 -0
  151. package/dist/grants/pdpp-binding-store.js +97 -0
  152. package/dist/grants/pdpp-binding-store.js.map +1 -0
  153. package/dist/grants/pdpp-binding.d.ts +179 -0
  154. package/dist/grants/pdpp-binding.d.ts.map +1 -0
  155. package/dist/grants/pdpp-binding.js +214 -0
  156. package/dist/grants/pdpp-binding.js.map +1 -0
  157. package/dist/keys/index.d.ts +3 -0
  158. package/dist/keys/index.d.ts.map +1 -0
  159. package/dist/keys/index.js +2 -0
  160. package/dist/keys/index.js.map +1 -0
  161. package/dist/keys/public-only-account.d.ts +8 -0
  162. package/dist/keys/public-only-account.d.ts.map +1 -0
  163. package/dist/keys/public-only-account.js +21 -0
  164. package/dist/keys/public-only-account.js.map +1 -0
  165. package/dist/keys/server-account.d.ts +24 -0
  166. package/dist/keys/server-account.d.ts.map +1 -0
  167. package/dist/keys/server-account.js +2 -0
  168. package/dist/keys/server-account.js.map +1 -0
  169. package/dist/lineage/attestation.d.ts +42 -0
  170. package/dist/lineage/attestation.d.ts.map +1 -0
  171. package/dist/lineage/attestation.js +25 -0
  172. package/dist/lineage/attestation.js.map +1 -0
  173. package/dist/lineage/gateway.d.ts +105 -0
  174. package/dist/lineage/gateway.d.ts.map +1 -0
  175. package/dist/lineage/gateway.js +242 -0
  176. package/dist/lineage/gateway.js.map +1 -0
  177. package/dist/lineage/index.d.ts +5 -0
  178. package/dist/lineage/index.d.ts.map +1 -0
  179. package/dist/lineage/index.js +5 -0
  180. package/dist/lineage/index.js.map +1 -0
  181. package/dist/lineage/lineage.d.ts +141 -0
  182. package/dist/lineage/lineage.d.ts.map +1 -0
  183. package/dist/lineage/lineage.js +255 -0
  184. package/dist/lineage/lineage.js.map +1 -0
  185. package/dist/logger/index.d.ts +9 -0
  186. package/dist/logger/index.d.ts.map +1 -0
  187. package/dist/logger/index.js +5 -0
  188. package/dist/logger/index.js.map +1 -0
  189. package/dist/logging/access-log.d.ts +23 -0
  190. package/dist/logging/access-log.d.ts.map +1 -0
  191. package/dist/logging/access-log.js +2 -0
  192. package/dist/logging/access-log.js.map +1 -0
  193. package/dist/logging/access-reader.d.ts +14 -0
  194. package/dist/logging/access-reader.d.ts.map +1 -0
  195. package/dist/logging/access-reader.js +2 -0
  196. package/dist/logging/access-reader.js.map +1 -0
  197. package/dist/mcp/activity.d.ts +68 -0
  198. package/dist/mcp/activity.d.ts.map +1 -0
  199. package/dist/mcp/activity.js +111 -0
  200. package/dist/mcp/activity.js.map +1 -0
  201. package/dist/mcp/builder-registration.d.ts +24 -0
  202. package/dist/mcp/builder-registration.d.ts.map +1 -0
  203. package/dist/mcp/builder-registration.js +89 -0
  204. package/dist/mcp/builder-registration.js.map +1 -0
  205. package/dist/mcp/connection-api.d.ts +201 -0
  206. package/dist/mcp/connection-api.d.ts.map +1 -0
  207. package/dist/mcp/connection-api.js +506 -0
  208. package/dist/mcp/connection-api.js.map +1 -0
  209. package/dist/mcp/grantee.d.ts +52 -0
  210. package/dist/mcp/grantee.d.ts.map +1 -0
  211. package/dist/mcp/grantee.js +91 -0
  212. package/dist/mcp/grantee.js.map +1 -0
  213. package/dist/mcp/index.d.ts +12 -0
  214. package/dist/mcp/index.d.ts.map +1 -0
  215. package/dist/mcp/index.js +12 -0
  216. package/dist/mcp/index.js.map +1 -0
  217. package/dist/mcp/read-client.d.ts +176 -0
  218. package/dist/mcp/read-client.d.ts.map +1 -0
  219. package/dist/mcp/read-client.js +579 -0
  220. package/dist/mcp/read-client.js.map +1 -0
  221. package/dist/mcp/resources.d.ts +37 -0
  222. package/dist/mcp/resources.d.ts.map +1 -0
  223. package/dist/mcp/resources.js +114 -0
  224. package/dist/mcp/resources.js.map +1 -0
  225. package/dist/mcp/search/index.d.ts +34 -0
  226. package/dist/mcp/search/index.d.ts.map +1 -0
  227. package/dist/mcp/search/index.js +156 -0
  228. package/dist/mcp/search/index.js.map +1 -0
  229. package/dist/mcp/server.d.ts +72 -0
  230. package/dist/mcp/server.d.ts.map +1 -0
  231. package/dist/mcp/server.js +447 -0
  232. package/dist/mcp/server.js.map +1 -0
  233. package/dist/mcp/session.d.ts +160 -0
  234. package/dist/mcp/session.d.ts.map +1 -0
  235. package/dist/mcp/session.js +243 -0
  236. package/dist/mcp/session.js.map +1 -0
  237. package/dist/mcp/store.d.ts +13 -0
  238. package/dist/mcp/store.d.ts.map +1 -0
  239. package/dist/mcp/store.js +119 -0
  240. package/dist/mcp/store.js.map +1 -0
  241. package/dist/mcp/token-expiry.d.ts +38 -0
  242. package/dist/mcp/token-expiry.d.ts.map +1 -0
  243. package/dist/mcp/token-expiry.js +55 -0
  244. package/dist/mcp/token-expiry.js.map +1 -0
  245. package/dist/mcp/tools.d.ts +95 -0
  246. package/dist/mcp/tools.d.ts.map +1 -0
  247. package/dist/mcp/tools.js +1381 -0
  248. package/dist/mcp/tools.js.map +1 -0
  249. package/dist/mcp/types.d.ts +135 -0
  250. package/dist/mcp/types.d.ts.map +1 -0
  251. package/dist/mcp/types.js +24 -0
  252. package/dist/mcp/types.js.map +1 -0
  253. package/dist/payment/index.d.ts +2 -0
  254. package/dist/payment/index.d.ts.map +1 -0
  255. package/dist/payment/index.js +2 -0
  256. package/dist/payment/index.js.map +1 -0
  257. package/dist/payment/x402.d.ts +155 -0
  258. package/dist/payment/x402.d.ts.map +1 -0
  259. package/dist/payment/x402.js +402 -0
  260. package/dist/payment/x402.js.map +1 -0
  261. package/dist/pdpp/approval.d.ts +182 -0
  262. package/dist/pdpp/approval.d.ts.map +1 -0
  263. package/dist/pdpp/approval.js +337 -0
  264. package/dist/pdpp/approval.js.map +1 -0
  265. package/dist/pdpp/client-identity.d.ts +88 -0
  266. package/dist/pdpp/client-identity.d.ts.map +1 -0
  267. package/dist/pdpp/client-identity.js +183 -0
  268. package/dist/pdpp/client-identity.js.map +1 -0
  269. package/dist/pdpp/client-metadata.d.ts +95 -0
  270. package/dist/pdpp/client-metadata.d.ts.map +1 -0
  271. package/dist/pdpp/client-metadata.js +96 -0
  272. package/dist/pdpp/client-metadata.js.map +1 -0
  273. package/dist/pdpp/declaration.d.ts +118 -0
  274. package/dist/pdpp/declaration.d.ts.map +1 -0
  275. package/dist/pdpp/declaration.js +549 -0
  276. package/dist/pdpp/declaration.js.map +1 -0
  277. package/dist/pdpp/index.d.ts +35 -0
  278. package/dist/pdpp/index.d.ts.map +1 -0
  279. package/dist/pdpp/index.js +22 -0
  280. package/dist/pdpp/index.js.map +1 -0
  281. package/dist/pdpp/issuance.d.ts +91 -0
  282. package/dist/pdpp/issuance.d.ts.map +1 -0
  283. package/dist/pdpp/issuance.js +124 -0
  284. package/dist/pdpp/issuance.js.map +1 -0
  285. package/dist/pdpp/pkce.d.ts +53 -0
  286. package/dist/pdpp/pkce.d.ts.map +1 -0
  287. package/dist/pdpp/pkce.js +109 -0
  288. package/dist/pdpp/pkce.js.map +1 -0
  289. package/dist/pdpp/redirect.d.ts +60 -0
  290. package/dist/pdpp/redirect.d.ts.map +1 -0
  291. package/dist/pdpp/redirect.js +125 -0
  292. package/dist/pdpp/redirect.js.map +1 -0
  293. package/dist/pdpp/resolve.d.ts +53 -0
  294. package/dist/pdpp/resolve.d.ts.map +1 -0
  295. package/dist/pdpp/resolve.js +218 -0
  296. package/dist/pdpp/resolve.js.map +1 -0
  297. package/dist/pdpp/review.d.ts +155 -0
  298. package/dist/pdpp/review.d.ts.map +1 -0
  299. package/dist/pdpp/review.js +142 -0
  300. package/dist/pdpp/review.js.map +1 -0
  301. package/dist/pdpp/selection.d.ts +43 -0
  302. package/dist/pdpp/selection.d.ts.map +1 -0
  303. package/dist/pdpp/selection.js +211 -0
  304. package/dist/pdpp/selection.js.map +1 -0
  305. package/dist/pdpp/store.d.ts +204 -0
  306. package/dist/pdpp/store.d.ts.map +1 -0
  307. package/dist/pdpp/store.js +501 -0
  308. package/dist/pdpp/store.js.map +1 -0
  309. package/dist/pdpp/tokens.d.ts +149 -0
  310. package/dist/pdpp/tokens.d.ts.map +1 -0
  311. package/dist/pdpp/tokens.js +387 -0
  312. package/dist/pdpp/tokens.js.map +1 -0
  313. package/dist/pdpp/types.d.ts +258 -0
  314. package/dist/pdpp/types.d.ts.map +1 -0
  315. package/dist/pdpp/types.js +40 -0
  316. package/dist/pdpp/types.js.map +1 -0
  317. package/dist/pdpp-version.d.ts +28 -0
  318. package/dist/pdpp-version.d.ts.map +1 -0
  319. package/dist/pdpp-version.js +28 -0
  320. package/dist/pdpp-version.js.map +1 -0
  321. package/dist/policy/data-read.d.ts +56 -0
  322. package/dist/policy/data-read.d.ts.map +1 -0
  323. package/dist/policy/data-read.js +176 -0
  324. package/dist/policy/data-read.js.map +1 -0
  325. package/dist/policy/data-write.d.ts +69 -0
  326. package/dist/policy/data-write.d.ts.map +1 -0
  327. package/dist/policy/data-write.js +131 -0
  328. package/dist/policy/data-write.js.map +1 -0
  329. package/dist/policy/index.d.ts +4 -0
  330. package/dist/policy/index.d.ts.map +1 -0
  331. package/dist/policy/index.js +4 -0
  332. package/dist/policy/index.js.map +1 -0
  333. package/dist/policy/signed-artifacts.d.ts +17 -0
  334. package/dist/policy/signed-artifacts.d.ts.map +1 -0
  335. package/dist/policy/signed-artifacts.js +110 -0
  336. package/dist/policy/signed-artifacts.js.map +1 -0
  337. package/dist/ports/index.d.ts +243 -0
  338. package/dist/ports/index.d.ts.map +1 -0
  339. package/dist/ports/index.js +7 -0
  340. package/dist/ports/index.js.map +1 -0
  341. package/dist/ports/pdpp-auth.d.ts +103 -0
  342. package/dist/ports/pdpp-auth.d.ts.map +1 -0
  343. package/dist/ports/pdpp-auth.js +37 -0
  344. package/dist/ports/pdpp-auth.js.map +1 -0
  345. package/dist/ports/pdpp-auth.test-utils.d.ts +9 -0
  346. package/dist/ports/pdpp-auth.test-utils.d.ts.map +1 -0
  347. package/dist/ports/pdpp-auth.test-utils.js +18 -0
  348. package/dist/ports/pdpp-auth.test-utils.js.map +1 -0
  349. package/dist/schemas/server-config.d.ts +190 -0
  350. package/dist/schemas/server-config.d.ts.map +1 -0
  351. package/dist/schemas/server-config.js +282 -0
  352. package/dist/schemas/server-config.js.map +1 -0
  353. package/dist/signing/index.d.ts +3 -0
  354. package/dist/signing/index.d.ts.map +1 -0
  355. package/dist/signing/index.js +3 -0
  356. package/dist/signing/index.js.map +1 -0
  357. package/dist/signing/request-signer.d.ts +20 -0
  358. package/dist/signing/request-signer.d.ts.map +1 -0
  359. package/dist/signing/request-signer.js +23 -0
  360. package/dist/signing/request-signer.js.map +1 -0
  361. package/dist/signing/signer.d.ts +40 -0
  362. package/dist/signing/signer.d.ts.map +1 -0
  363. package/dist/signing/signer.js +56 -0
  364. package/dist/signing/signer.js.map +1 -0
  365. package/dist/storage/adapters/index.d.ts +4 -0
  366. package/dist/storage/adapters/index.d.ts.map +1 -0
  367. package/dist/storage/adapters/index.js +3 -0
  368. package/dist/storage/adapters/index.js.map +1 -0
  369. package/dist/storage/adapters/interface.d.ts +57 -0
  370. package/dist/storage/adapters/interface.d.ts.map +1 -0
  371. package/dist/storage/adapters/interface.js +2 -0
  372. package/dist/storage/adapters/interface.js.map +1 -0
  373. package/dist/storage/adapters/sdk.d.ts +23 -0
  374. package/dist/storage/adapters/sdk.d.ts.map +1 -0
  375. package/dist/storage/adapters/sdk.js +73 -0
  376. package/dist/storage/adapters/sdk.js.map +1 -0
  377. package/dist/storage/adapters/vana.d.ts +12 -0
  378. package/dist/storage/adapters/vana.d.ts.map +1 -0
  379. package/dist/storage/adapters/vana.js +111 -0
  380. package/dist/storage/adapters/vana.js.map +1 -0
  381. package/dist/storage/blocks/build.d.ts +20 -0
  382. package/dist/storage/blocks/build.d.ts.map +1 -0
  383. package/dist/storage/blocks/build.js +378 -0
  384. package/dist/storage/blocks/build.js.map +1 -0
  385. package/dist/storage/blocks/cursor.d.ts +33 -0
  386. package/dist/storage/blocks/cursor.d.ts.map +1 -0
  387. package/dist/storage/blocks/cursor.js +142 -0
  388. package/dist/storage/blocks/cursor.js.map +1 -0
  389. package/dist/storage/blocks/errors.d.ts +6 -0
  390. package/dist/storage/blocks/errors.d.ts.map +1 -0
  391. package/dist/storage/blocks/errors.js +9 -0
  392. package/dist/storage/blocks/errors.js.map +1 -0
  393. package/dist/storage/blocks/index.d.ts +6 -0
  394. package/dist/storage/blocks/index.d.ts.map +1 -0
  395. package/dist/storage/blocks/index.js +5 -0
  396. package/dist/storage/blocks/index.js.map +1 -0
  397. package/dist/storage/blocks/select.d.ts +29 -0
  398. package/dist/storage/blocks/select.d.ts.map +1 -0
  399. package/dist/storage/blocks/select.js +120 -0
  400. package/dist/storage/blocks/select.js.map +1 -0
  401. package/dist/storage/blocks/types.d.ts +56 -0
  402. package/dist/storage/blocks/types.d.ts.map +1 -0
  403. package/dist/storage/blocks/types.js +2 -0
  404. package/dist/storage/blocks/types.js.map +1 -0
  405. package/dist/storage/hierarchy/index.d.ts +3 -0
  406. package/dist/storage/hierarchy/index.d.ts.map +1 -0
  407. package/dist/storage/hierarchy/index.js +2 -0
  408. package/dist/storage/hierarchy/index.js.map +1 -0
  409. package/dist/storage/hierarchy/manager.d.ts +9 -0
  410. package/dist/storage/hierarchy/manager.d.ts.map +1 -0
  411. package/dist/storage/hierarchy/manager.js +2 -0
  412. package/dist/storage/hierarchy/manager.js.map +1 -0
  413. package/dist/storage/hierarchy/paths.d.ts +11 -0
  414. package/dist/storage/hierarchy/paths.d.ts.map +1 -0
  415. package/dist/storage/hierarchy/paths.js +43 -0
  416. package/dist/storage/hierarchy/paths.js.map +1 -0
  417. package/dist/storage/index/index.d.ts +3 -0
  418. package/dist/storage/index/index.d.ts.map +1 -0
  419. package/dist/storage/index/index.js +2 -0
  420. package/dist/storage/index/index.js.map +1 -0
  421. package/dist/storage/index/manager.d.ts +63 -0
  422. package/dist/storage/index/manager.d.ts.map +1 -0
  423. package/dist/storage/index/manager.js +2 -0
  424. package/dist/storage/index/manager.js.map +1 -0
  425. package/dist/storage/index/schema.d.ts +2 -0
  426. package/dist/storage/index/schema.d.ts.map +1 -0
  427. package/dist/storage/index/schema.js +2 -0
  428. package/dist/storage/index/schema.js.map +1 -0
  429. package/dist/storage/index/types.d.ts +37 -0
  430. package/dist/storage/index/types.d.ts.map +1 -0
  431. package/dist/storage/index/types.js +2 -0
  432. package/dist/storage/index/types.js.map +1 -0
  433. package/dist/storage/pdpp-records/cursor.d.ts +27 -0
  434. package/dist/storage/pdpp-records/cursor.d.ts.map +1 -0
  435. package/dist/storage/pdpp-records/cursor.js +49 -0
  436. package/dist/storage/pdpp-records/cursor.js.map +1 -0
  437. package/dist/storage/pdpp-records/enforcement.d.ts +37 -0
  438. package/dist/storage/pdpp-records/enforcement.d.ts.map +1 -0
  439. package/dist/storage/pdpp-records/enforcement.js +79 -0
  440. package/dist/storage/pdpp-records/enforcement.js.map +1 -0
  441. package/dist/storage/pdpp-records/index.d.ts +8 -0
  442. package/dist/storage/pdpp-records/index.d.ts.map +1 -0
  443. package/dist/storage/pdpp-records/index.js +8 -0
  444. package/dist/storage/pdpp-records/index.js.map +1 -0
  445. package/dist/storage/pdpp-records/interface.d.ts +49 -0
  446. package/dist/storage/pdpp-records/interface.d.ts.map +1 -0
  447. package/dist/storage/pdpp-records/interface.js +2 -0
  448. package/dist/storage/pdpp-records/interface.js.map +1 -0
  449. package/dist/storage/pdpp-records/memory-store.d.ts +9 -0
  450. package/dist/storage/pdpp-records/memory-store.d.ts.map +1 -0
  451. package/dist/storage/pdpp-records/memory-store.js +0 -0
  452. package/dist/storage/pdpp-records/memory-store.js.map +1 -0
  453. package/dist/storage/pdpp-records/record-key.d.ts +52 -0
  454. package/dist/storage/pdpp-records/record-key.d.ts.map +1 -0
  455. package/dist/storage/pdpp-records/record-key.js +97 -0
  456. package/dist/storage/pdpp-records/record-key.js.map +1 -0
  457. package/dist/storage/pdpp-records/stream-declaration.d.ts +43 -0
  458. package/dist/storage/pdpp-records/stream-declaration.d.ts.map +1 -0
  459. package/dist/storage/pdpp-records/stream-declaration.js +17 -0
  460. package/dist/storage/pdpp-records/stream-declaration.js.map +1 -0
  461. package/dist/storage/pdpp-records/types.d.ts +93 -0
  462. package/dist/storage/pdpp-records/types.d.ts.map +1 -0
  463. package/dist/storage/pdpp-records/types.js +17 -0
  464. package/dist/storage/pdpp-records/types.js.map +1 -0
  465. package/dist/storage/preview.d.ts +12 -0
  466. package/dist/storage/preview.d.ts.map +1 -0
  467. package/dist/storage/preview.js +239 -0
  468. package/dist/storage/preview.js.map +1 -0
  469. package/dist/sync/cursor.d.ts +10 -0
  470. package/dist/sync/cursor.d.ts.map +1 -0
  471. package/dist/sync/cursor.js +2 -0
  472. package/dist/sync/cursor.js.map +1 -0
  473. package/dist/sync/data-point-feed.d.ts +35 -0
  474. package/dist/sync/data-point-feed.d.ts.map +1 -0
  475. package/dist/sync/data-point-feed.js +122 -0
  476. package/dist/sync/data-point-feed.js.map +1 -0
  477. package/dist/sync/data-point-id.d.ts +7 -0
  478. package/dist/sync/data-point-id.d.ts.map +1 -0
  479. package/dist/sync/data-point-id.js +16 -0
  480. package/dist/sync/data-point-id.js.map +1 -0
  481. package/dist/sync/delete-data-port.d.ts +50 -0
  482. package/dist/sync/delete-data-port.d.ts.map +1 -0
  483. package/dist/sync/delete-data-port.js +244 -0
  484. package/dist/sync/delete-data-port.js.map +1 -0
  485. package/dist/sync/engine/sync-manager.d.ts +58 -0
  486. package/dist/sync/engine/sync-manager.d.ts.map +1 -0
  487. package/dist/sync/engine/sync-manager.js +285 -0
  488. package/dist/sync/engine/sync-manager.js.map +1 -0
  489. package/dist/sync/index.d.ts +15 -0
  490. package/dist/sync/index.d.ts.map +1 -0
  491. package/dist/sync/index.js +14 -0
  492. package/dist/sync/index.js.map +1 -0
  493. package/dist/sync/issues.d.ts +55 -0
  494. package/dist/sync/issues.d.ts.map +1 -0
  495. package/dist/sync/issues.js +168 -0
  496. package/dist/sync/issues.js.map +1 -0
  497. package/dist/sync/pdpp-import.d.ts +192 -0
  498. package/dist/sync/pdpp-import.d.ts.map +1 -0
  499. package/dist/sync/pdpp-import.js +422 -0
  500. package/dist/sync/pdpp-import.js.map +1 -0
  501. package/dist/sync/pending-blob-deletions.d.ts +29 -0
  502. package/dist/sync/pending-blob-deletions.d.ts.map +1 -0
  503. package/dist/sync/pending-blob-deletions.js +116 -0
  504. package/dist/sync/pending-blob-deletions.js.map +1 -0
  505. package/dist/sync/retry-memory.d.ts +33 -0
  506. package/dist/sync/retry-memory.d.ts.map +1 -0
  507. package/dist/sync/retry-memory.js +68 -0
  508. package/dist/sync/retry-memory.js.map +1 -0
  509. package/dist/sync/scope-deletions.d.ts +155 -0
  510. package/dist/sync/scope-deletions.d.ts.map +1 -0
  511. package/dist/sync/scope-deletions.js +225 -0
  512. package/dist/sync/scope-deletions.js.map +1 -0
  513. package/dist/sync/tombstone.d.ts +27 -0
  514. package/dist/sync/tombstone.d.ts.map +1 -0
  515. package/dist/sync/tombstone.js +28 -0
  516. package/dist/sync/tombstone.js.map +1 -0
  517. package/dist/sync/types.d.ts +27 -0
  518. package/dist/sync/types.d.ts.map +1 -0
  519. package/dist/sync/types.js +2 -0
  520. package/dist/sync/types.js.map +1 -0
  521. package/dist/sync/workers/delete.d.ts +163 -0
  522. package/dist/sync/workers/delete.d.ts.map +1 -0
  523. package/dist/sync/workers/delete.js +474 -0
  524. package/dist/sync/workers/delete.js.map +1 -0
  525. package/dist/sync/workers/download.d.ts +159 -0
  526. package/dist/sync/workers/download.d.ts.map +1 -0
  527. package/dist/sync/workers/download.js +731 -0
  528. package/dist/sync/workers/download.js.map +1 -0
  529. package/dist/sync/workers/upload.d.ts +98 -0
  530. package/dist/sync/workers/upload.d.ts.map +1 -0
  531. package/dist/sync/workers/upload.js +412 -0
  532. package/dist/sync/workers/upload.js.map +1 -0
  533. package/dist/test-utils/e2ee-fixtures.d.ts +94 -0
  534. package/dist/test-utils/e2ee-fixtures.d.ts.map +1 -0
  535. package/dist/test-utils/e2ee-fixtures.js +116 -0
  536. package/dist/test-utils/e2ee-fixtures.js.map +1 -0
  537. package/dist/test-utils/e2ee-gateway.d.ts +61 -0
  538. package/dist/test-utils/e2ee-gateway.d.ts.map +1 -0
  539. package/dist/test-utils/e2ee-gateway.js +248 -0
  540. package/dist/test-utils/e2ee-gateway.js.map +1 -0
  541. package/dist/test-utils/index.d.ts +5 -0
  542. package/dist/test-utils/index.d.ts.map +1 -0
  543. package/dist/test-utils/index.js +5 -0
  544. package/dist/test-utils/index.js.map +1 -0
  545. package/dist/test-utils/memory-storage.d.ts +12 -0
  546. package/dist/test-utils/memory-storage.d.ts.map +1 -0
  547. package/dist/test-utils/memory-storage.js +146 -0
  548. package/dist/test-utils/memory-storage.js.map +1 -0
  549. package/dist/test-utils/wallet.d.ts +47 -0
  550. package/dist/test-utils/wallet.d.ts.map +1 -0
  551. package/dist/test-utils/wallet.js +98 -0
  552. package/dist/test-utils/wallet.js.map +1 -0
  553. package/dist/write/attribution.d.ts +185 -0
  554. package/dist/write/attribution.d.ts.map +1 -0
  555. package/dist/write/attribution.js +450 -0
  556. package/dist/write/attribution.js.map +1 -0
  557. package/dist/write/authorize.d.ts +77 -0
  558. package/dist/write/authorize.d.ts.map +1 -0
  559. package/dist/write/authorize.js +109 -0
  560. package/dist/write/authorize.js.map +1 -0
  561. package/dist/write/index.d.ts +5 -0
  562. package/dist/write/index.d.ts.map +1 -0
  563. package/dist/write/index.js +5 -0
  564. package/dist/write/index.js.map +1 -0
  565. package/dist/write/route.d.ts +61 -0
  566. package/dist/write/route.d.ts.map +1 -0
  567. package/dist/write/route.js +132 -0
  568. package/dist/write/route.js.map +1 -0
  569. package/dist/write/session.d.ts +96 -0
  570. package/dist/write/session.d.ts.map +1 -0
  571. package/dist/write/session.js +136 -0
  572. package/dist/write/session.js.map +1 -0
  573. package/package.json +175 -0
@@ -0,0 +1,79 @@
1
+ import { PdppError } from "../../errors/pdpp-catalog.js";
2
+ import { findStreamGrant, withinTimeConstraint, } from "../../ports/pdpp-auth.js";
3
+ import { withRequiredFields, } from "./stream-declaration.js";
4
+ export function resolveReadScope(context, stream, declaration) {
5
+ if (!context.active) {
6
+ throw mapInactiveToError(context);
7
+ }
8
+ if (!declaration) {
9
+ throw new PdppError("not_found", `Stream '${stream}' not found`);
10
+ }
11
+ if (context.tokenKind === "owner") {
12
+ // Owner tokens carry no grant: full current-capability read, but still
13
+ // scoped to the owner's own subject — enforced by the caller passing
14
+ // only that subject's instance_ids into the store query, which for the
15
+ // owner-token case is "every instance belonging to subjectId". This
16
+ // module doesn't own instance-to-subject resolution (that's the RS
17
+ // route layer's data-store lookup); it returns `undefined` fields (no
18
+ // projection restriction) since an owner token has no grant field list.
19
+ return { instanceIds: [], fields: undefined };
20
+ }
21
+ // Client token: requires an active resolved grant.
22
+ if (!context.grant) {
23
+ throw new PdppError("grant_invalid", "Client token has no resolved grant");
24
+ }
25
+ const streamGrant = findStreamGrant(context.grant, stream);
26
+ if (!streamGrant) {
27
+ throw new PdppError("grant_stream_not_allowed", `Grant does not include stream '${stream}'`);
28
+ }
29
+ if (streamGrant.fields.length === 0 ||
30
+ streamGrant.instance_ids.length === 0) {
31
+ // Per the AS contract: "If the RS finds ... an empty `fields`, or an
32
+ // empty `instance_ids`, that is an AS bug — fail closed."
33
+ throw new PdppError("grant_invalid", "Resolved grant is malformed (empty fields or instance_ids)");
34
+ }
35
+ return {
36
+ instanceIds: streamGrant.instance_ids,
37
+ fields: withRequiredFields(streamGrant.fields, declaration.requiredFields),
38
+ streamGrant,
39
+ };
40
+ }
41
+ /**
42
+ * Validates that a record's time field satisfies the grant's frozen
43
+ * time_constraint, if any. Callers filter store results through this before
44
+ * returning them (the store itself is time_constraint-agnostic).
45
+ */
46
+ export function recordWithinGrantTimeConstraint(data, streamGrant) {
47
+ if (!streamGrant?.time_constraint)
48
+ return true;
49
+ const value = data[streamGrant.time_constraint.field];
50
+ return withinTimeConstraint(typeof value === "string" ? value : undefined, streamGrant.time_constraint);
51
+ }
52
+ /** Validates a canonical record_key is within the grant's `resources` allowlist, if constrained. */
53
+ export function recordKeyWithinGrantResources(recordKey, streamGrant) {
54
+ if (!streamGrant?.resources)
55
+ return true; // absent = all records
56
+ return streamGrant.resources.includes(recordKey);
57
+ }
58
+ /**
59
+ * The PdppError an inactive token maps to.
60
+ *
61
+ * Exported so every route answers an inactive token with the SAME reason.
62
+ * `/v1/streams` previously inlined a flat `authentication_error` while record
63
+ * reads used this mapping, so one revoked grant produced a 401 on one endpoint
64
+ * and a 403 `grant_revoked` on another.
65
+ */
66
+ export function mapInactiveToError(context) {
67
+ switch (context.inactiveReason) {
68
+ case "grant_revoked":
69
+ return new PdppError("grant_revoked", "Grant has been revoked");
70
+ case "grant_expired":
71
+ return new PdppError("grant_expired", "Grant has expired");
72
+ case "expired":
73
+ case "revoked":
74
+ case "unknown":
75
+ default:
76
+ return new PdppError("authentication_error", "Missing or invalid access token");
77
+ }
78
+ }
79
+ //# sourceMappingURL=enforcement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforcement.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/enforcement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from "./types.js";
2
+ export * from "./interface.js";
3
+ export { encodeRecordKey, computeRecordKeyFromData, keyMatchesData, RecordKeyError, } from "./record-key.js";
4
+ export * from "./cursor.js";
5
+ export * from "./memory-store.js";
6
+ export * from "./stream-declaration.js";
7
+ export * from "./enforcement.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from "./types.js";
2
+ export * from "./interface.js";
3
+ export { encodeRecordKey, computeRecordKeyFromData, keyMatchesData, RecordKeyError, } from "./record-key.js";
4
+ export * from "./cursor.js";
5
+ export * from "./memory-store.js";
6
+ export * from "./stream-declaration.js";
7
+ export * from "./enforcement.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { ChangesSinceOptions, ChangesSincePage, IngestResult, ListRecordsOptions, ListRecordsPage, PdppBlobMeta, PdppRecordEnvelopeInput, PdppStoredRecord, StreamListing, StreamSemantics } from "./types.js";
2
+ /**
3
+ * Persistence index for PDPP records. Implementable by a SQLite backend
4
+ * (desktop, `sqlite-store.ts`) and an in-memory backend that stands in for
5
+ * the Enclave runtime (`memory-store.ts`) — real Enclave persistence
6
+ * integration needs the supplied Enclave runtime and is out of scope here.
7
+ */
8
+ export interface PdppRecordStore {
9
+ /**
10
+ * Validates key/data agreement per envelope, computes the canonical
11
+ * record_key, allocates the next version for mutable_state streams, and
12
+ * writes the whole batch atomically: a failure partway through rolls back
13
+ * every write from this call, it never leaves partial version/history
14
+ * state. Per-envelope validation failures (e.g. key/data mismatch) are
15
+ * reported in `rejected` and do not fail the rest of the batch.
16
+ */
17
+ ingestBatch(envelopes: PdppRecordEnvelopeInput[], streamSemantics: (stream: string) => StreamSemantics, primaryKeyFields: (stream: string) => string[]): IngestResult;
18
+ getRecord(instance: string, stream: string, recordKey: string): PdppStoredRecord | undefined;
19
+ listRecords(stream: string, options: ListRecordsOptions): ListRecordsPage;
20
+ /**
21
+ * Owner-authenticated explicit delete directive (DELETE endpoint). Only
22
+ * valid for mutable_state streams; returns false if the stream is
23
+ * append_only or the record does not exist.
24
+ */
25
+ deleteRecord(instance: string, stream: string, recordKey: string, deletedAt: string, streamSemantics: StreamSemantics): boolean;
26
+ changesSince(stream: string, options: ChangesSinceOptions): ChangesSincePage;
27
+ listStreams(instanceIds: string[]): StreamListing[];
28
+ putBlobMeta(meta: PdppBlobMeta): void;
29
+ getBlobMeta(blobId: string): PdppBlobMeta | undefined;
30
+ /**
31
+ * Finds the record that references a `blob_id` via `data.blob_ref.blob_id`
32
+ * (spec §4 "Binary data (blob_ref)"), if any. A `blob_id` alone is never
33
+ * sufficient to authorize access (spec §8 "Get a blob"): the resource
34
+ * server must verify the grant includes a stream containing a record that
35
+ * references this blob, that record passes all grant filters, and
36
+ * `blob_ref` is in the grant's authorized field projection. This lookup
37
+ * is what makes that verification possible instead of trusting field-name
38
+ * presence alone. Returns undefined if no ingested record currently
39
+ * references this blob_id.
40
+ */
41
+ findBlobReference(blobId: string): BlobReference | undefined;
42
+ close(): void;
43
+ }
44
+ export interface BlobReference {
45
+ instance: string;
46
+ stream: string;
47
+ recordKey: string;
48
+ }
49
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,WAAW,CACT,SAAS,EAAE,uBAAuB,EAAE,EACpC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,eAAe,EACpD,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,GAC7C,YAAY,CAAC;IAEhB,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,gBAAgB,GAAG,SAAS,CAAC;IAEhC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,eAAe,CAAC;IAE1E;;;;OAIG;IACH,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC;IAEX,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,CAAC;IAE7E,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IAEpD,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IAEtD;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAE7D,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { PdppRecordStore } from "./interface.js";
2
+ /**
3
+ * In-memory PdppRecordStore. Stands in for the Enclave runtime for this
4
+ * lane's own tests and as a second implementation of the shared interface.
5
+ * This is NOT a real Enclave persistence integration — that needs the
6
+ * supplied Enclave runtime, which this lane does not have access to.
7
+ */
8
+ export declare function createMemoryRecordStore(): PdppRecordStore;
9
+ //# sourceMappingURL=memory-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAyCtD;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,eAAe,CA8dzD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/memory-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Canonical record-key encoding, spec-core.md Section 4 "Compound key encoding".
3
+ *
4
+ * Single-field primary keys: the key is the string form of that value.
5
+ * Multi-field (compound) primary keys: the key is the minified JSON array of
6
+ * string-converted key values, in the order declared by the SourceDeclaration
7
+ * `primary_key`. Every component is converted to a string before encoding,
8
+ * even when the source value is a number, boolean, or date.
9
+ *
10
+ * Known encoding ambiguity (reviewed, not fixed — INFO, not exploitable):
11
+ * a single-field key whose literal string value happens to look like a
12
+ * minified JSON array, e.g. `'["a","b"]'`, encodes identically to the
13
+ * compound key `["a", "b"]`. Evaluated against how this collides in
14
+ * practice: `PdppRecordStore` keys every row by `(instance, stream,
15
+ * record_key)`, and a stream's declared `primary_key` arity is fixed at
16
+ * declaration time — a stream cannot be single-key for one record and
17
+ * compound-key for another. The ambiguous pair above can therefore only
18
+ * ever arise across two DIFFERENT streams (one single-key, one compound),
19
+ * which are different storage-key namespaces and never compared against
20
+ * each other. It cannot happen within one stream. It also does not widen a
21
+ * grant: `resources` matching is exact string `includes()`, never a prefix
22
+ * or substring match (`enforcement.ts`), so an aliased key string cannot be
23
+ * used to smuggle access to a record the grant didn't name. Not fixed here:
24
+ * changing the wire encoding (e.g. a type-tagged prefix) would need
25
+ * coordination with every existing reader of these keys (list/get/delete/
26
+ * blob routes here, and any client already parsing record IDs), which this
27
+ * lane should not do unilaterally for a risk that is bounded to data
28
+ * integrity within a single (currently impossible) same-stream collision.
29
+ */
30
+ import type { EnvelopeKey } from "./types.js";
31
+ export declare class RecordKeyError extends Error {
32
+ }
33
+ /**
34
+ * Encodes an envelope `key` (string or string[]) into the canonical record-key
35
+ * string used for storage, URLs, and `resources[]` grant entries.
36
+ */
37
+ export declare function encodeRecordKey(key: EnvelopeKey): string;
38
+ /**
39
+ * Computes the canonical record key from a record's `data` object and the
40
+ * stream's declared `primary_key` field list, independent of the envelope's
41
+ * `key` field. Used to validate `key` <-> `data` agreement (spec §4 "Record
42
+ * identity").
43
+ */
44
+ export declare function computeRecordKeyFromData(data: Record<string, unknown>, primaryKeyFields: string[]): string;
45
+ /**
46
+ * Validates that the envelope `key` field encodes to the same canonical
47
+ * string as the record's `data`, per spec §4 "Record identity": "the values
48
+ * of the `data` fields named by the stream's `primary_key` MUST match the
49
+ * values in the `key` envelope field (in order)."
50
+ */
51
+ export declare function keyMatchesData(envelopeKey: EnvelopeKey, data: Record<string, unknown>, primaryKeyFields: string[]): boolean;
52
+ //# sourceMappingURL=record-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-key.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/record-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAoB9C,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAE5C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CASxD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CAkBR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAIT"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Canonical record-key encoding, spec-core.md Section 4 "Compound key encoding".
3
+ *
4
+ * Single-field primary keys: the key is the string form of that value.
5
+ * Multi-field (compound) primary keys: the key is the minified JSON array of
6
+ * string-converted key values, in the order declared by the SourceDeclaration
7
+ * `primary_key`. Every component is converted to a string before encoding,
8
+ * even when the source value is a number, boolean, or date.
9
+ *
10
+ * Known encoding ambiguity (reviewed, not fixed — INFO, not exploitable):
11
+ * a single-field key whose literal string value happens to look like a
12
+ * minified JSON array, e.g. `'["a","b"]'`, encodes identically to the
13
+ * compound key `["a", "b"]`. Evaluated against how this collides in
14
+ * practice: `PdppRecordStore` keys every row by `(instance, stream,
15
+ * record_key)`, and a stream's declared `primary_key` arity is fixed at
16
+ * declaration time — a stream cannot be single-key for one record and
17
+ * compound-key for another. The ambiguous pair above can therefore only
18
+ * ever arise across two DIFFERENT streams (one single-key, one compound),
19
+ * which are different storage-key namespaces and never compared against
20
+ * each other. It cannot happen within one stream. It also does not widen a
21
+ * grant: `resources` matching is exact string `includes()`, never a prefix
22
+ * or substring match (`enforcement.ts`), so an aliased key string cannot be
23
+ * used to smuggle access to a record the grant didn't name. Not fixed here:
24
+ * changing the wire encoding (e.g. a type-tagged prefix) would need
25
+ * coordination with every existing reader of these keys (list/get/delete/
26
+ * blob routes here, and any client already parsing record IDs), which this
27
+ * lane should not do unilaterally for a risk that is bounded to data
28
+ * integrity within a single (currently impossible) same-stream collision.
29
+ */
30
+ /** Converts a single primary-key field value to its canonical string form. */
31
+ function toKeyComponentString(value) {
32
+ if (typeof value === "string")
33
+ return value;
34
+ if (typeof value === "number" || typeof value === "boolean") {
35
+ return String(value);
36
+ }
37
+ if (value instanceof Date)
38
+ return value.toISOString();
39
+ if (value === null || value === undefined) {
40
+ throw new RecordKeyError("Primary key component cannot be null or undefined");
41
+ }
42
+ // Objects/arrays are not valid primary-key component types.
43
+ throw new RecordKeyError(`Primary key component has unsupported type: ${typeof value}`);
44
+ }
45
+ export class RecordKeyError extends Error {
46
+ }
47
+ /**
48
+ * Encodes an envelope `key` (string or string[]) into the canonical record-key
49
+ * string used for storage, URLs, and `resources[]` grant entries.
50
+ */
51
+ export function encodeRecordKey(key) {
52
+ if (Array.isArray(key)) {
53
+ if (key.length === 0) {
54
+ throw new RecordKeyError("Compound key array must not be empty");
55
+ }
56
+ const components = key.map(toKeyComponentString);
57
+ return JSON.stringify(components);
58
+ }
59
+ return toKeyComponentString(key);
60
+ }
61
+ /**
62
+ * Computes the canonical record key from a record's `data` object and the
63
+ * stream's declared `primary_key` field list, independent of the envelope's
64
+ * `key` field. Used to validate `key` <-> `data` agreement (spec §4 "Record
65
+ * identity").
66
+ */
67
+ export function computeRecordKeyFromData(data, primaryKeyFields) {
68
+ if (primaryKeyFields.length === 0) {
69
+ throw new RecordKeyError("Stream has no declared primary_key fields");
70
+ }
71
+ if (primaryKeyFields.length === 1) {
72
+ const [field] = primaryKeyFields;
73
+ if (!(field in data)) {
74
+ throw new RecordKeyError(`data is missing primary key field "${field}"`);
75
+ }
76
+ return toKeyComponentString(data[field]);
77
+ }
78
+ const components = primaryKeyFields.map((field) => {
79
+ if (!(field in data)) {
80
+ throw new RecordKeyError(`data is missing primary key field "${field}"`);
81
+ }
82
+ return toKeyComponentString(data[field]);
83
+ });
84
+ return JSON.stringify(components);
85
+ }
86
+ /**
87
+ * Validates that the envelope `key` field encodes to the same canonical
88
+ * string as the record's `data`, per spec §4 "Record identity": "the values
89
+ * of the `data` fields named by the stream's `primary_key` MUST match the
90
+ * values in the `key` envelope field (in order)."
91
+ */
92
+ export function keyMatchesData(envelopeKey, data, primaryKeyFields) {
93
+ const fromEnvelope = encodeRecordKey(envelopeKey);
94
+ const fromData = computeRecordKeyFromData(data, primaryKeyFields);
95
+ return fromEnvelope === fromData;
96
+ }
97
+ //# sourceMappingURL=record-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-key.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/record-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,8EAA8E;AAC9E,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,cAAc,CACtB,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,4DAA4D;IAC5D,MAAM,IAAI,cAAc,CACtB,+CAA+C,OAAO,KAAK,EAAE,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAE5C;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAgB;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,cAAc,CAAC,sCAAsC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA6B,EAC7B,gBAA0B;IAE1B,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,cAAc,CAAC,2CAA2C,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;QACjC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,cAAc,CAAC,sCAAsC,KAAK,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChD,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,cAAc,CAAC,sCAAsC,KAAK,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAwB,EACxB,IAA6B,EAC7B,gBAA0B;IAE1B,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAClE,OAAO,YAAY,KAAK,QAAQ,CAAC;AACnC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { StreamSemantics } from "./types.js";
2
+ /**
3
+ * The minimal per-stream declaration this lane needs from spec-core.md
4
+ * Section 5 "Source Declaration" — NOT a full Source Declaration model (that
5
+ * is Collection Profile / Lane D territory, out of scope here). This lane
6
+ * only needs enough to validate ingest and serve §8 reads: semantics,
7
+ * primary key, the field used for stable list ordering / incremental sync,
8
+ * and which fields are schema-required (always included in a sparse
9
+ * projection per spec §8 "fields" parameter).
10
+ */
11
+ export interface StreamDeclaration {
12
+ name: string;
13
+ semantics: StreamSemantics;
14
+ primaryKey: string[];
15
+ cursorField: string;
16
+ /** Fields declared as consent_time_field candidates for time_constraint enforcement. */
17
+ consentTimeField?: string;
18
+ /** Always included in a sparse `fields` projection, even if not requested. */
19
+ requiredFields: string[];
20
+ /**
21
+ * The stream's JSON Schema from the retained declaration (§5).
22
+ *
23
+ * §8 stream metadata carries this so a client can understand record shape
24
+ * without a second lookup. Optional because a deployment may boot from a
25
+ * private-shape declaration that has no schema to carry; the route then
26
+ * falls back to a field-name projection rather than fabricating one.
27
+ */
28
+ schema?: Record<string, unknown>;
29
+ /**
30
+ * The stream's declared selection capabilities (§5), e.g.
31
+ * `{ fields: true, resources: false }`. §8 metadata reports what the source
32
+ * supports so a client knows which selections are even expressible.
33
+ */
34
+ selection?: Record<string, unknown>;
35
+ }
36
+ export interface StreamDeclarationRegistry {
37
+ get(stream: string): StreamDeclaration | undefined;
38
+ list(): StreamDeclaration[];
39
+ }
40
+ export declare function createStreamDeclarationRegistry(declarations: StreamDeclaration[]): StreamDeclarationRegistry;
41
+ /** Schema-required fields are always included, even under a sparse `fields` request. */
42
+ export declare function withRequiredFields(requested: string[] | undefined, required: string[]): string[] | undefined;
43
+ //# sourceMappingURL=stream-declaration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-declaration.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/stream-declaration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACnD,IAAI,IAAI,iBAAiB,EAAE,CAAC;CAC7B;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,iBAAiB,EAAE,GAChC,yBAAyB,CAM3B;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,GAAG,SAAS,CAKtB"}
@@ -0,0 +1,17 @@
1
+ export function createStreamDeclarationRegistry(declarations) {
2
+ const byName = new Map(declarations.map((d) => [d.name, d]));
3
+ return {
4
+ get: (stream) => byName.get(stream),
5
+ list: () => declarations,
6
+ };
7
+ }
8
+ /** Schema-required fields are always included, even under a sparse `fields` request. */
9
+ export function withRequiredFields(requested, required) {
10
+ if (!requested)
11
+ return undefined;
12
+ const merged = new Set(requested);
13
+ for (const field of required)
14
+ merged.add(field);
15
+ return Array.from(merged);
16
+ }
17
+ //# sourceMappingURL=stream-declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-declaration.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/stream-declaration.ts"],"names":[],"mappings":"AA0CA,MAAM,UAAU,+BAA+B,CAC7C,YAAiC;IAEjC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO;QACL,GAAG,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY;KACzB,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAChC,SAA+B,EAC/B,QAAkB;IAElB,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * PDPP record persistence types (spec-core.md Section 4 "Record Model").
3
+ *
4
+ * This is a NEW, separate index for PDPP-shaped records. It is deliberately
5
+ * not the legacy `packages/core/src/storage/index/` DPP fileId/scope model —
6
+ * that module serves existing non-PDPP callers and is left untouched.
7
+ */
8
+ export type StreamSemantics = "append_only" | "mutable_state";
9
+ export type EnvelopeKey = string | string[];
10
+ /** The RECORD envelope, spec §4 "The RECORD envelope". */
11
+ export interface PdppRecordEnvelopeInput {
12
+ instance: string;
13
+ stream: string;
14
+ key: EnvelopeKey;
15
+ data: Record<string, unknown> | null;
16
+ emitted_at: string;
17
+ op?: "upsert" | "delete";
18
+ }
19
+ export interface PdppStoredRecord {
20
+ instance: string;
21
+ stream: string;
22
+ recordKey: string;
23
+ data: Record<string, unknown>;
24
+ version: number;
25
+ emittedAt: string;
26
+ deleted: false;
27
+ }
28
+ export interface PdppTombstoneRecord {
29
+ instance: string;
30
+ stream: string;
31
+ recordKey: string;
32
+ version: number;
33
+ deletedAt: string;
34
+ emittedAt: string;
35
+ deleted: true;
36
+ }
37
+ export type PdppRecordRow = PdppStoredRecord | PdppTombstoneRecord;
38
+ export interface IngestRejection {
39
+ index: number;
40
+ reason: string;
41
+ }
42
+ export interface IngestResult {
43
+ accepted: number;
44
+ rejected: IngestRejection[];
45
+ }
46
+ export interface ListRecordsOptions {
47
+ instanceIds: string[];
48
+ limit: number;
49
+ cursor?: string;
50
+ order: "asc" | "desc";
51
+ /** undefined = no projection restriction (owner reads / unrestricted). */
52
+ fields?: string[];
53
+ }
54
+ export interface ListRecordsPage {
55
+ data: PdppStoredRecord[];
56
+ hasMore: boolean;
57
+ nextCursor?: string;
58
+ }
59
+ export interface ChangesSinceOptions {
60
+ instanceIds: string[];
61
+ /** Absent = start a new session anchored at "now". */
62
+ changesSince?: string;
63
+ /** Page cursor within an already-anchored session. */
64
+ cursor?: string;
65
+ limit: number;
66
+ fields?: string[];
67
+ }
68
+ export interface ChangesSincePage {
69
+ data: PdppRecordRow[];
70
+ hasMore: boolean;
71
+ nextCursor?: string;
72
+ /** Present only on the terminal page. */
73
+ nextChangesSince?: string;
74
+ }
75
+ export interface StreamListing {
76
+ stream: string;
77
+ recordCount: number;
78
+ lastUpdated: string | null;
79
+ }
80
+ export interface PdppBlobMeta {
81
+ blobId: string;
82
+ mimeType: string;
83
+ sizeBytes: number;
84
+ sha256: string;
85
+ }
86
+ export declare class CursorExpiredError extends Error {
87
+ constructor();
88
+ }
89
+ export declare class InvalidCursorError extends Error {
90
+ }
91
+ export declare class RecordIdentityMismatchError extends Error {
92
+ }
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/pdpp-records/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * PDPP record persistence types (spec-core.md Section 4 "Record Model").
3
+ *
4
+ * This is a NEW, separate index for PDPP-shaped records. It is deliberately
5
+ * not the legacy `packages/core/src/storage/index/` DPP fileId/scope model —
6
+ * that module serves existing non-PDPP callers and is left untouched.
7
+ */
8
+ export class CursorExpiredError extends Error {
9
+ constructor() {
10
+ super("changes_since cursor has expired");
11
+ }
12
+ }
13
+ export class InvalidCursorError extends Error {
14
+ }
15
+ export class RecordIdentityMismatchError extends Error {
16
+ }
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/storage/pdpp-records/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8FH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C;QACE,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,MAAM,OAAO,2BAA4B,SAAQ,KAAK;CAAG"}
@@ -0,0 +1,12 @@
1
+ export interface EnvelopePreview {
2
+ text: string;
3
+ truncated: boolean;
4
+ }
5
+ export declare function previewEnvelopeValue(envelope: unknown, maxBytes: number, options?: {
6
+ nodeBudget?: number;
7
+ }): EnvelopePreview;
8
+ export declare function previewJsonEnvelopePrefix(jsonText: string, maxBytes: number, options?: {
9
+ sourceTruncated?: boolean;
10
+ nodeBudget?: number;
11
+ }): EnvelopePreview;
12
+ //# sourceMappingURL=preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/storage/preview.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAoED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC,eAAe,CAwDjB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,eAAe,CAiDjB"}