@aigne/afs-did-space 1.12.0-beta.5

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 (510) hide show
  1. package/LICENSE.md +26 -0
  2. package/README.md +129 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.cjs +11 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.mjs +10 -0
  5. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  6. package/dist/afs-metadata-context.cjs +20 -0
  7. package/dist/afs-metadata-context.d.cts +21 -0
  8. package/dist/afs-metadata-context.d.cts.map +1 -0
  9. package/dist/afs-metadata-context.d.mts +21 -0
  10. package/dist/afs-metadata-context.d.mts.map +1 -0
  11. package/dist/afs-metadata-context.mjs +18 -0
  12. package/dist/afs-metadata-context.mjs.map +1 -0
  13. package/dist/blocklet-hook.cjs +180 -0
  14. package/dist/blocklet-hook.d.cts +29 -0
  15. package/dist/blocklet-hook.d.cts.map +1 -0
  16. package/dist/blocklet-hook.d.mts +29 -0
  17. package/dist/blocklet-hook.d.mts.map +1 -0
  18. package/dist/blocklet-hook.mjs +178 -0
  19. package/dist/blocklet-hook.mjs.map +1 -0
  20. package/dist/changelog-schema.cjs +603 -0
  21. package/dist/changelog-schema.d.cts +395 -0
  22. package/dist/changelog-schema.d.cts.map +1 -0
  23. package/dist/changelog-schema.d.mts +395 -0
  24. package/dist/changelog-schema.d.mts.map +1 -0
  25. package/dist/changelog-schema.mjs +570 -0
  26. package/dist/changelog-schema.mjs.map +1 -0
  27. package/dist/changelog-write.cjs +80 -0
  28. package/dist/changelog-write.d.cts +70 -0
  29. package/dist/changelog-write.d.cts.map +1 -0
  30. package/dist/changelog-write.d.mts +70 -0
  31. package/dist/changelog-write.d.mts.map +1 -0
  32. package/dist/changelog-write.mjs +77 -0
  33. package/dist/changelog-write.mjs.map +1 -0
  34. package/dist/cid-byte-cache.cjs +126 -0
  35. package/dist/cid-byte-cache.d.cts +46 -0
  36. package/dist/cid-byte-cache.d.cts.map +1 -0
  37. package/dist/cid-byte-cache.d.mts +47 -0
  38. package/dist/cid-byte-cache.d.mts.map +1 -0
  39. package/dist/cid-byte-cache.mjs +125 -0
  40. package/dist/cid-byte-cache.mjs.map +1 -0
  41. package/dist/cid.cjs +68 -0
  42. package/dist/cid.d.cts +22 -0
  43. package/dist/cid.d.cts.map +1 -0
  44. package/dist/cid.d.mts +22 -0
  45. package/dist/cid.d.mts.map +1 -0
  46. package/dist/cid.mjs +65 -0
  47. package/dist/cid.mjs.map +1 -0
  48. package/dist/client.cjs +221 -0
  49. package/dist/client.d.cts +72 -0
  50. package/dist/client.d.cts.map +1 -0
  51. package/dist/client.d.mts +72 -0
  52. package/dist/client.d.mts.map +1 -0
  53. package/dist/client.mjs +220 -0
  54. package/dist/client.mjs.map +1 -0
  55. package/dist/cloudflare.cjs +510 -0
  56. package/dist/cloudflare.d.cts +307 -0
  57. package/dist/cloudflare.d.cts.map +1 -0
  58. package/dist/cloudflare.d.mts +308 -0
  59. package/dist/cloudflare.d.mts.map +1 -0
  60. package/dist/cloudflare.mjs +507 -0
  61. package/dist/cloudflare.mjs.map +1 -0
  62. package/dist/ctime-backfill.cjs +272 -0
  63. package/dist/ctime-backfill.d.cts +169 -0
  64. package/dist/ctime-backfill.d.cts.map +1 -0
  65. package/dist/ctime-backfill.d.mts +169 -0
  66. package/dist/ctime-backfill.d.mts.map +1 -0
  67. package/dist/ctime-backfill.mjs +267 -0
  68. package/dist/ctime-backfill.mjs.map +1 -0
  69. package/dist/d1-gc-queue.cjs +80 -0
  70. package/dist/d1-gc-queue.d.cts +59 -0
  71. package/dist/d1-gc-queue.d.cts.map +1 -0
  72. package/dist/d1-gc-queue.d.mts +59 -0
  73. package/dist/d1-gc-queue.d.mts.map +1 -0
  74. package/dist/d1-gc-queue.mjs +81 -0
  75. package/dist/d1-gc-queue.mjs.map +1 -0
  76. package/dist/d1-resolve-store.cjs +189 -0
  77. package/dist/d1-resolve-store.d.cts +93 -0
  78. package/dist/d1-resolve-store.d.cts.map +1 -0
  79. package/dist/d1-resolve-store.d.mts +93 -0
  80. package/dist/d1-resolve-store.d.mts.map +1 -0
  81. package/dist/d1-resolve-store.mjs +190 -0
  82. package/dist/d1-resolve-store.mjs.map +1 -0
  83. package/dist/d1-schema.cjs +361 -0
  84. package/dist/d1-schema.d.cts +237 -0
  85. package/dist/d1-schema.d.cts.map +1 -0
  86. package/dist/d1-schema.d.mts +237 -0
  87. package/dist/d1-schema.d.mts.map +1 -0
  88. package/dist/d1-schema.mjs +341 -0
  89. package/dist/d1-schema.mjs.map +1 -0
  90. package/dist/d1-share-store.cjs +0 -0
  91. package/dist/d1-share-store.d.cts +53 -0
  92. package/dist/d1-share-store.d.cts.map +1 -0
  93. package/dist/d1-share-store.d.mts +53 -0
  94. package/dist/d1-share-store.d.mts.map +1 -0
  95. package/dist/d1-share-store.mjs +0 -0
  96. package/dist/d1-share-store.mjs.map +1 -0
  97. package/dist/d1-tree-index.cjs +1098 -0
  98. package/dist/d1-tree-index.d.cts +203 -0
  99. package/dist/d1-tree-index.d.cts.map +1 -0
  100. package/dist/d1-tree-index.d.mts +203 -0
  101. package/dist/d1-tree-index.d.mts.map +1 -0
  102. package/dist/d1-tree-index.mjs +1094 -0
  103. package/dist/d1-tree-index.mjs.map +1 -0
  104. package/dist/data-backend.cjs +147 -0
  105. package/dist/data-backend.d.cts +30 -0
  106. package/dist/data-backend.d.cts.map +1 -0
  107. package/dist/data-backend.d.mts +30 -0
  108. package/dist/data-backend.d.mts.map +1 -0
  109. package/dist/data-backend.mjs +148 -0
  110. package/dist/data-backend.mjs.map +1 -0
  111. package/dist/dedup-backfill.cjs +278 -0
  112. package/dist/dedup-backfill.d.cts +165 -0
  113. package/dist/dedup-backfill.d.cts.map +1 -0
  114. package/dist/dedup-backfill.d.mts +165 -0
  115. package/dist/dedup-backfill.d.mts.map +1 -0
  116. package/dist/dedup-backfill.mjs +273 -0
  117. package/dist/dedup-backfill.mjs.map +1 -0
  118. package/dist/did-space-like.d.cts +2 -0
  119. package/dist/did-space-like.d.mts +2 -0
  120. package/dist/did-utils.cjs +44 -0
  121. package/dist/did-utils.d.cts +25 -0
  122. package/dist/did-utils.d.cts.map +1 -0
  123. package/dist/did-utils.d.mts +25 -0
  124. package/dist/did-utils.d.mts.map +1 -0
  125. package/dist/did-utils.mjs +43 -0
  126. package/dist/did-utils.mjs.map +1 -0
  127. package/dist/dirty-path-queue.cjs +31 -0
  128. package/dist/dirty-path-queue.d.cts +104 -0
  129. package/dist/dirty-path-queue.d.cts.map +1 -0
  130. package/dist/dirty-path-queue.d.mts +104 -0
  131. package/dist/dirty-path-queue.d.mts.map +1 -0
  132. package/dist/dirty-path-queue.mjs +31 -0
  133. package/dist/dirty-path-queue.mjs.map +1 -0
  134. package/dist/dirty-path-schema.cjs +142 -0
  135. package/dist/dirty-path-schema.d.cts +90 -0
  136. package/dist/dirty-path-schema.d.cts.map +1 -0
  137. package/dist/dirty-path-schema.d.mts +90 -0
  138. package/dist/dirty-path-schema.d.mts.map +1 -0
  139. package/dist/dirty-path-schema.mjs +136 -0
  140. package/dist/dirty-path-schema.mjs.map +1 -0
  141. package/dist/download-actions.cjs +43 -0
  142. package/dist/download-actions.mjs +40 -0
  143. package/dist/download-actions.mjs.map +1 -0
  144. package/dist/fs-object-store.cjs +153 -0
  145. package/dist/fs-object-store.d.cts +21 -0
  146. package/dist/fs-object-store.d.cts.map +1 -0
  147. package/dist/fs-object-store.d.mts +22 -0
  148. package/dist/fs-object-store.d.mts.map +1 -0
  149. package/dist/fs-object-store.mjs +153 -0
  150. package/dist/fs-object-store.mjs.map +1 -0
  151. package/dist/gc-queue.d.cts +43 -0
  152. package/dist/gc-queue.d.cts.map +1 -0
  153. package/dist/gc-queue.d.mts +43 -0
  154. package/dist/gc-queue.d.mts.map +1 -0
  155. package/dist/index.cjs +2712 -0
  156. package/dist/index.d.cts +504 -0
  157. package/dist/index.d.cts.map +1 -0
  158. package/dist/index.d.mts +505 -0
  159. package/dist/index.d.mts.map +1 -0
  160. package/dist/index.mjs +2537 -0
  161. package/dist/index.mjs.map +1 -0
  162. package/dist/inline-content-migration.cjs +212 -0
  163. package/dist/inline-content-migration.d.cts +110 -0
  164. package/dist/inline-content-migration.d.cts.map +1 -0
  165. package/dist/inline-content-migration.d.mts +111 -0
  166. package/dist/inline-content-migration.d.mts.map +1 -0
  167. package/dist/inline-content-migration.mjs +207 -0
  168. package/dist/inline-content-migration.mjs.map +1 -0
  169. package/dist/inline-content.cjs +145 -0
  170. package/dist/inline-content.d.cts +98 -0
  171. package/dist/inline-content.d.cts.map +1 -0
  172. package/dist/inline-content.d.mts +98 -0
  173. package/dist/inline-content.d.mts.map +1 -0
  174. package/dist/inline-content.mjs +137 -0
  175. package/dist/inline-content.mjs.map +1 -0
  176. package/dist/local-changelog.cjs +241 -0
  177. package/dist/local-changelog.d.cts +119 -0
  178. package/dist/local-changelog.d.cts.map +1 -0
  179. package/dist/local-changelog.d.mts +119 -0
  180. package/dist/local-changelog.d.mts.map +1 -0
  181. package/dist/local-changelog.mjs +240 -0
  182. package/dist/local-changelog.mjs.map +1 -0
  183. package/dist/local.cjs +435 -0
  184. package/dist/local.d.cts +254 -0
  185. package/dist/local.d.cts.map +1 -0
  186. package/dist/local.d.mts +254 -0
  187. package/dist/local.d.mts.map +1 -0
  188. package/dist/local.mjs +427 -0
  189. package/dist/local.mjs.map +1 -0
  190. package/dist/memory-gc-queue.cjs +36 -0
  191. package/dist/memory-gc-queue.d.cts +22 -0
  192. package/dist/memory-gc-queue.d.cts.map +1 -0
  193. package/dist/memory-gc-queue.d.mts +22 -0
  194. package/dist/memory-gc-queue.d.mts.map +1 -0
  195. package/dist/memory-gc-queue.mjs +36 -0
  196. package/dist/memory-gc-queue.mjs.map +1 -0
  197. package/dist/memory-tree-index.cjs +734 -0
  198. package/dist/memory-tree-index.d.cts +159 -0
  199. package/dist/memory-tree-index.d.cts.map +1 -0
  200. package/dist/memory-tree-index.d.mts +159 -0
  201. package/dist/memory-tree-index.d.mts.map +1 -0
  202. package/dist/memory-tree-index.mjs +735 -0
  203. package/dist/memory-tree-index.mjs.map +1 -0
  204. package/dist/metadata-db.cjs +562 -0
  205. package/dist/metadata-db.d.cts +102 -0
  206. package/dist/metadata-db.d.cts.map +1 -0
  207. package/dist/metadata-db.d.mts +102 -0
  208. package/dist/metadata-db.d.mts.map +1 -0
  209. package/dist/metadata-db.mjs +562 -0
  210. package/dist/metadata-db.mjs.map +1 -0
  211. package/dist/mime-utils.cjs +2 -0
  212. package/dist/mime-utils.d.cts +2 -0
  213. package/dist/mime-utils.d.mts +2 -0
  214. package/dist/mime-utils.mjs +3 -0
  215. package/dist/object-key.cjs +41 -0
  216. package/dist/object-key.d.cts +25 -0
  217. package/dist/object-key.d.cts.map +1 -0
  218. package/dist/object-key.d.mts +25 -0
  219. package/dist/object-key.d.mts.map +1 -0
  220. package/dist/object-key.mjs +40 -0
  221. package/dist/object-key.mjs.map +1 -0
  222. package/dist/packages/session/dist/index.cjs +788 -0
  223. package/dist/packages/session/dist/index.mjs +782 -0
  224. package/dist/packages/session/dist/index.mjs.map +1 -0
  225. package/dist/platform/r2/dist/types.d.cts +49 -0
  226. package/dist/platform/r2/dist/types.d.cts.map +1 -0
  227. package/dist/prefix-range.cjs +33 -0
  228. package/dist/prefix-range.d.cts +29 -0
  229. package/dist/prefix-range.d.cts.map +1 -0
  230. package/dist/prefix-range.d.mts +29 -0
  231. package/dist/prefix-range.d.mts.map +1 -0
  232. package/dist/prefix-range.mjs +33 -0
  233. package/dist/prefix-range.mjs.map +1 -0
  234. package/dist/prefixed-tree-index.cjs +238 -0
  235. package/dist/prefixed-tree-index.d.cts +85 -0
  236. package/dist/prefixed-tree-index.d.cts.map +1 -0
  237. package/dist/prefixed-tree-index.d.mts +85 -0
  238. package/dist/prefixed-tree-index.d.mts.map +1 -0
  239. package/dist/prefixed-tree-index.mjs +239 -0
  240. package/dist/prefixed-tree-index.mjs.map +1 -0
  241. package/dist/presign-signer.cjs +7 -0
  242. package/dist/presign-signer.d.cts +99 -0
  243. package/dist/presign-signer.d.cts.map +1 -0
  244. package/dist/presign-signer.d.mts +99 -0
  245. package/dist/presign-signer.d.mts.map +1 -0
  246. package/dist/presign-signer.mjs +7 -0
  247. package/dist/presign-signer.mjs.map +1 -0
  248. package/dist/providers/platform/r2/dist/index.d.mts +3 -0
  249. package/dist/providers/platform/r2/dist/types.d.mts +49 -0
  250. package/dist/providers/platform/r2/dist/types.d.mts.map +1 -0
  251. package/dist/reconcile.cjs +184 -0
  252. package/dist/reconcile.d.cts +26 -0
  253. package/dist/reconcile.d.cts.map +1 -0
  254. package/dist/reconcile.d.mts +26 -0
  255. package/dist/reconcile.d.mts.map +1 -0
  256. package/dist/reconcile.mjs +184 -0
  257. package/dist/reconcile.mjs.map +1 -0
  258. package/dist/reference-check.cjs +49 -0
  259. package/dist/reference-check.d.cts +10 -0
  260. package/dist/reference-check.d.cts.map +1 -0
  261. package/dist/reference-check.d.mts +10 -0
  262. package/dist/reference-check.d.mts.map +1 -0
  263. package/dist/reference-check.mjs +48 -0
  264. package/dist/reference-check.mjs.map +1 -0
  265. package/dist/remote-afs.cjs +681 -0
  266. package/dist/remote-afs.d.cts +236 -0
  267. package/dist/remote-afs.d.cts.map +1 -0
  268. package/dist/remote-afs.d.mts +236 -0
  269. package/dist/remote-afs.d.mts.map +1 -0
  270. package/dist/remote-afs.mjs +676 -0
  271. package/dist/remote-afs.mjs.map +1 -0
  272. package/dist/rename-guard.cjs +18 -0
  273. package/dist/rename-guard.mjs +18 -0
  274. package/dist/rename-guard.mjs.map +1 -0
  275. package/dist/resolve.cjs +260 -0
  276. package/dist/resolve.d.cts +113 -0
  277. package/dist/resolve.d.cts.map +1 -0
  278. package/dist/resolve.d.mts +113 -0
  279. package/dist/resolve.d.mts.map +1 -0
  280. package/dist/resolve.mjs +260 -0
  281. package/dist/resolve.mjs.map +1 -0
  282. package/dist/rsync-content.cjs +33 -0
  283. package/dist/rsync-content.mjs +33 -0
  284. package/dist/rsync-content.mjs.map +1 -0
  285. package/dist/rsync.cjs +400 -0
  286. package/dist/rsync.d.cts +157 -0
  287. package/dist/rsync.d.cts.map +1 -0
  288. package/dist/rsync.d.mts +157 -0
  289. package/dist/rsync.d.mts.map +1 -0
  290. package/dist/rsync.mjs +397 -0
  291. package/dist/rsync.mjs.map +1 -0
  292. package/dist/run-gc.cjs +57 -0
  293. package/dist/run-gc.d.cts +40 -0
  294. package/dist/run-gc.d.cts.map +1 -0
  295. package/dist/run-gc.d.mts +41 -0
  296. package/dist/run-gc.d.mts.map +1 -0
  297. package/dist/run-gc.mjs +57 -0
  298. package/dist/run-gc.mjs.map +1 -0
  299. package/dist/scope-id.cjs +70 -0
  300. package/dist/scope-id.d.cts +35 -0
  301. package/dist/scope-id.d.cts.map +1 -0
  302. package/dist/scope-id.d.mts +35 -0
  303. package/dist/scope-id.d.mts.map +1 -0
  304. package/dist/scope-id.mjs +68 -0
  305. package/dist/scope-id.mjs.map +1 -0
  306. package/dist/scope-migration-node.cjs +172 -0
  307. package/dist/scope-migration-node.d.cts +44 -0
  308. package/dist/scope-migration-node.d.cts.map +1 -0
  309. package/dist/scope-migration-node.d.mts +44 -0
  310. package/dist/scope-migration-node.d.mts.map +1 -0
  311. package/dist/scope-migration-node.mjs +171 -0
  312. package/dist/scope-migration-node.mjs.map +1 -0
  313. package/dist/scope-migration.cjs +155 -0
  314. package/dist/scope-migration.d.cts +65 -0
  315. package/dist/scope-migration.d.cts.map +1 -0
  316. package/dist/scope-migration.d.mts +65 -0
  317. package/dist/scope-migration.d.mts.map +1 -0
  318. package/dist/scope-migration.mjs +154 -0
  319. package/dist/scope-migration.mjs.map +1 -0
  320. package/dist/share-declaration.cjs +225 -0
  321. package/dist/share-declaration.d.cts +30 -0
  322. package/dist/share-declaration.d.cts.map +1 -0
  323. package/dist/share-declaration.d.mts +32 -0
  324. package/dist/share-declaration.d.mts.map +1 -0
  325. package/dist/share-declaration.mjs +221 -0
  326. package/dist/share-declaration.mjs.map +1 -0
  327. package/dist/share-hook.cjs +63 -0
  328. package/dist/share-hook.mjs +62 -0
  329. package/dist/share-hook.mjs.map +1 -0
  330. package/dist/share-resolve.cjs +176 -0
  331. package/dist/share-resolve.d.cts +36 -0
  332. package/dist/share-resolve.d.cts.map +1 -0
  333. package/dist/share-resolve.d.mts +36 -0
  334. package/dist/share-resolve.d.mts.map +1 -0
  335. package/dist/share-resolve.mjs +177 -0
  336. package/dist/share-resolve.mjs.map +1 -0
  337. package/dist/share-serve.cjs +145 -0
  338. package/dist/share-serve.d.cts +30 -0
  339. package/dist/share-serve.d.cts.map +1 -0
  340. package/dist/share-serve.d.mts +30 -0
  341. package/dist/share-serve.d.mts.map +1 -0
  342. package/dist/share-serve.mjs +144 -0
  343. package/dist/share-serve.mjs.map +1 -0
  344. package/dist/share-store.cjs +25 -0
  345. package/dist/share-store.d.cts +65 -0
  346. package/dist/share-store.d.cts.map +1 -0
  347. package/dist/share-store.d.mts +65 -0
  348. package/dist/share-store.d.mts.map +1 -0
  349. package/dist/share-store.mjs +25 -0
  350. package/dist/share-store.mjs.map +1 -0
  351. package/dist/share-virtual-path.cjs +102 -0
  352. package/dist/share-virtual-path.mjs +101 -0
  353. package/dist/share-virtual-path.mjs.map +1 -0
  354. package/dist/space-resolver.cjs +54 -0
  355. package/dist/space-resolver.d.cts +34 -0
  356. package/dist/space-resolver.d.cts.map +1 -0
  357. package/dist/space-resolver.d.mts +34 -0
  358. package/dist/space-resolver.d.mts.map +1 -0
  359. package/dist/space-resolver.mjs +55 -0
  360. package/dist/space-resolver.mjs.map +1 -0
  361. package/dist/sqlite-gc-queue.cjs +51 -0
  362. package/dist/sqlite-gc-queue.d.cts +22 -0
  363. package/dist/sqlite-gc-queue.d.cts.map +1 -0
  364. package/dist/sqlite-gc-queue.d.mts +22 -0
  365. package/dist/sqlite-gc-queue.d.mts.map +1 -0
  366. package/dist/sqlite-gc-queue.mjs +52 -0
  367. package/dist/sqlite-gc-queue.mjs.map +1 -0
  368. package/dist/sqlite-resolve-store.cjs +163 -0
  369. package/dist/sqlite-resolve-store.d.cts +50 -0
  370. package/dist/sqlite-resolve-store.d.cts.map +1 -0
  371. package/dist/sqlite-resolve-store.d.mts +50 -0
  372. package/dist/sqlite-resolve-store.d.mts.map +1 -0
  373. package/dist/sqlite-resolve-store.mjs +164 -0
  374. package/dist/sqlite-resolve-store.mjs.map +1 -0
  375. package/dist/sqlite-share-store.cjs +157 -0
  376. package/dist/sqlite-share-store.d.cts +31 -0
  377. package/dist/sqlite-share-store.d.cts.map +1 -0
  378. package/dist/sqlite-share-store.d.mts +31 -0
  379. package/dist/sqlite-share-store.d.mts.map +1 -0
  380. package/dist/sqlite-share-store.mjs +157 -0
  381. package/dist/sqlite-share-store.mjs.map +1 -0
  382. package/dist/sqlite-tree-index.cjs +901 -0
  383. package/dist/sqlite-tree-index.d.cts +107 -0
  384. package/dist/sqlite-tree-index.d.cts.map +1 -0
  385. package/dist/sqlite-tree-index.d.mts +107 -0
  386. package/dist/sqlite-tree-index.d.mts.map +1 -0
  387. package/dist/sqlite-tree-index.mjs +902 -0
  388. package/dist/sqlite-tree-index.mjs.map +1 -0
  389. package/dist/sync-engine.cjs +1324 -0
  390. package/dist/sync-engine.d.cts +473 -0
  391. package/dist/sync-engine.d.cts.map +1 -0
  392. package/dist/sync-engine.d.mts +473 -0
  393. package/dist/sync-engine.d.mts.map +1 -0
  394. package/dist/sync-engine.mjs +1315 -0
  395. package/dist/sync-engine.mjs.map +1 -0
  396. package/dist/sync-state.cjs +303 -0
  397. package/dist/sync-state.d.cts +224 -0
  398. package/dist/sync-state.d.cts.map +1 -0
  399. package/dist/sync-state.d.mts +224 -0
  400. package/dist/sync-state.d.mts.map +1 -0
  401. package/dist/sync-state.mjs +297 -0
  402. package/dist/sync-state.mjs.map +1 -0
  403. package/dist/timestamp.cjs +92 -0
  404. package/dist/timestamp.mjs +91 -0
  405. package/dist/timestamp.mjs.map +1 -0
  406. package/dist/transports/http.cjs +54 -0
  407. package/dist/transports/http.d.cts +26 -0
  408. package/dist/transports/http.d.cts.map +1 -0
  409. package/dist/transports/http.d.mts +26 -0
  410. package/dist/transports/http.d.mts.map +1 -0
  411. package/dist/transports/http.mjs +54 -0
  412. package/dist/transports/http.mjs.map +1 -0
  413. package/dist/transports/static.cjs +55 -0
  414. package/dist/transports/static.d.cts +28 -0
  415. package/dist/transports/static.d.cts.map +1 -0
  416. package/dist/transports/static.d.mts +28 -0
  417. package/dist/transports/static.d.mts.map +1 -0
  418. package/dist/transports/static.mjs +55 -0
  419. package/dist/transports/static.mjs.map +1 -0
  420. package/dist/transports/types.cjs +13 -0
  421. package/dist/transports/types.d.cts +72 -0
  422. package/dist/transports/types.d.cts.map +1 -0
  423. package/dist/transports/types.d.mts +72 -0
  424. package/dist/transports/types.d.mts.map +1 -0
  425. package/dist/transports/types.mjs +13 -0
  426. package/dist/transports/types.mjs.map +1 -0
  427. package/dist/transports/ws.cjs +207 -0
  428. package/dist/transports/ws.d.cts +47 -0
  429. package/dist/transports/ws.d.cts.map +1 -0
  430. package/dist/transports/ws.d.mts +47 -0
  431. package/dist/transports/ws.d.mts.map +1 -0
  432. package/dist/transports/ws.mjs +206 -0
  433. package/dist/transports/ws.mjs.map +1 -0
  434. package/dist/tree-index.cjs +333 -0
  435. package/dist/tree-index.d.cts +524 -0
  436. package/dist/tree-index.d.cts.map +1 -0
  437. package/dist/tree-index.d.mts +524 -0
  438. package/dist/tree-index.d.mts.map +1 -0
  439. package/dist/tree-index.mjs +322 -0
  440. package/dist/tree-index.mjs.map +1 -0
  441. package/dist/tree-query.cjs +655 -0
  442. package/dist/tree-query.d.cts +70 -0
  443. package/dist/tree-query.d.cts.map +1 -0
  444. package/dist/tree-query.d.mts +70 -0
  445. package/dist/tree-query.d.mts.map +1 -0
  446. package/dist/tree-query.mjs +648 -0
  447. package/dist/tree-query.mjs.map +1 -0
  448. package/dist/upload-actions.cjs +97 -0
  449. package/dist/upload-actions.d.cts +19 -0
  450. package/dist/upload-actions.d.cts.map +1 -0
  451. package/dist/upload-actions.d.mts +21 -0
  452. package/dist/upload-actions.d.mts.map +1 -0
  453. package/dist/upload-actions.mjs +90 -0
  454. package/dist/upload-actions.mjs.map +1 -0
  455. package/dist/upload-session-store.cjs +185 -0
  456. package/dist/upload-session-store.d.cts +99 -0
  457. package/dist/upload-session-store.d.cts.map +1 -0
  458. package/dist/upload-session-store.d.mts +99 -0
  459. package/dist/upload-session-store.d.mts.map +1 -0
  460. package/dist/upload-session-store.mjs +184 -0
  461. package/dist/upload-session-store.mjs.map +1 -0
  462. package/dist/url-normalize.cjs +61 -0
  463. package/dist/url-normalize.d.cts +33 -0
  464. package/dist/url-normalize.d.cts.map +1 -0
  465. package/dist/url-normalize.d.mts +33 -0
  466. package/dist/url-normalize.d.mts.map +1 -0
  467. package/dist/url-normalize.mjs +61 -0
  468. package/dist/url-normalize.mjs.map +1 -0
  469. package/dist/versioned-content-backends.cjs +155 -0
  470. package/dist/versioned-content-backends.d.cts +49 -0
  471. package/dist/versioned-content-backends.d.cts.map +1 -0
  472. package/dist/versioned-content-backends.d.mts +49 -0
  473. package/dist/versioned-content-backends.d.mts.map +1 -0
  474. package/dist/versioned-content-backends.mjs +154 -0
  475. package/dist/versioned-content-backends.mjs.map +1 -0
  476. package/dist/versioned-content-index.cjs +102 -0
  477. package/dist/versioned-content-index.d.cts +46 -0
  478. package/dist/versioned-content-index.d.cts.map +1 -0
  479. package/dist/versioned-content-index.d.mts +46 -0
  480. package/dist/versioned-content-index.d.mts.map +1 -0
  481. package/dist/versioned-content-index.mjs +103 -0
  482. package/dist/versioned-content-index.mjs.map +1 -0
  483. package/dist/versioned-content-store.cjs +121 -0
  484. package/dist/versioned-content-store.d.cts +90 -0
  485. package/dist/versioned-content-store.d.cts.map +1 -0
  486. package/dist/versioned-content-store.d.mts +90 -0
  487. package/dist/versioned-content-store.d.mts.map +1 -0
  488. package/dist/versioned-content-store.mjs +122 -0
  489. package/dist/versioned-content-store.mjs.map +1 -0
  490. package/dist/versioned-scope.cjs +39 -0
  491. package/dist/versioned-scope.d.cts +57 -0
  492. package/dist/versioned-scope.d.cts.map +1 -0
  493. package/dist/versioned-scope.d.mts +57 -0
  494. package/dist/versioned-scope.d.mts.map +1 -0
  495. package/dist/versioned-scope.mjs +37 -0
  496. package/dist/versioned-scope.mjs.map +1 -0
  497. package/migrations/0001_tree_entries.sql +17 -0
  498. package/migrations/0002_resolve_entries.sql +7 -0
  499. package/migrations/0003_entries_v2.sql +38 -0
  500. package/migrations/0004_gc_queue.sql +5 -0
  501. package/migrations/0006_resolve_enhance.sql +14 -0
  502. package/migrations/0007_resolve_created_at.sql +10 -0
  503. package/migrations/0008_changelog.sql +34 -0
  504. package/migrations/0009_device_sync_state.sql +29 -0
  505. package/migrations/0010_scope_meta.sql +33 -0
  506. package/migrations/0011_shares.sql +25 -0
  507. package/migrations/0012_scope_meta_file_count.sql +41 -0
  508. package/migrations/0013_scope_meta_total_bytes.sql +47 -0
  509. package/migrations/0014_rename_tables.sql +62 -0
  510. package/package.json +102 -0
@@ -0,0 +1,236 @@
1
+ import { AFSBatchDeleteEntry, AFSBatchWriteEntry, AFSDeleteOptions, AFSDeleteResult, AFSListOptions, AFSListResult, AFSReadResult, AFSWriteEntryPayload, AFSWriteResult } from "@aigne/afs";
2
+
3
+ //#region src/remote-afs.d.ts
4
+ /** Per-entry batch result restored from a wire `results[i]` (single-op iso). */
5
+ interface RpcBatchEntryResult {
6
+ path: string;
7
+ success: boolean;
8
+ /** Wire `status` verbatim (200/404/409/503/…). */
9
+ status: number;
10
+ data?: Record<string, unknown>;
11
+ error?: string;
12
+ code?: string;
13
+ /** Soft miss for `optional: true` batchRead entries. */
14
+ missing?: boolean;
15
+ /** Conflict triple — same fields `AFSConflictError` carries. */
16
+ conflict?: {
17
+ currentCid: string | null;
18
+ currentMtime: number | null;
19
+ currentDeviceId: string | null;
20
+ };
21
+ }
22
+ interface RpcBatchResult {
23
+ results: RpcBatchEntryResult[];
24
+ succeeded: number;
25
+ failed: number;
26
+ }
27
+ /** Thrown when the server does not support the batch wire ops (old daemon). */
28
+ declare class BatchUnsupportedError extends Error {
29
+ constructor();
30
+ }
31
+ /**
32
+ * Envelope-level BATCH_OVER_BUDGET / PAYLOAD_TOO_LARGE — zero entries
33
+ * executed; the engine halves the chunk and retries (design §7.3). MUST NOT
34
+ * trip the capability-fallback memory.
35
+ */
36
+ declare class BatchOverBudgetError extends Error {
37
+ constructor(message: string);
38
+ }
39
+ interface RpcUserSpaceAFSOptions {
40
+ /** Base URL of the arc daemon / worker (e.g. "http://127.0.0.1:4900"). */
41
+ baseUrl: string;
42
+ /** Bearer token. */
43
+ token: string;
44
+ /** Envelope blocklet (the app whose /user fragment is the sync target). */
45
+ blocklet: string;
46
+ /** Optional envelope sessionId. */
47
+ sessionId?: string;
48
+ /** Extra headers (test seams, tracing). Never logged. */
49
+ extraHeaders?: Record<string, string>;
50
+ }
51
+ /**
52
+ * SyncCloudAFS over the afs-rpc wire (`POST /api/afs/rpc`) — the transport
53
+ * the production daemon/worker actually serve (the legacy `/api/space` REST
54
+ * server is gone; `RemoteUserSpaceAFS` above survives only for the
55
+ * export/import CLI against legacy hosts).
56
+ *
57
+ * Sync paths are fragment-root-relative; the wire allowlist admits only
58
+ * `/user/**` mutations, so every path is mapped through `/user` on the way
59
+ * out and stripped on the way back.
60
+ *
61
+ * Batch (P4): `batchWrite`/`batchDelete`/`batchRead` send one wire envelope
62
+ * each (wire-contract §9) and restore per-entry results to the single-op
63
+ * error types (`AFSConflictError` with the triple, `BATCH_TAIL_SKIPPED`
64
+ * passthrough). Capability fallback: the FIRST envelope answered with the
65
+ * old server's exact `Unsupported op 'batch…'` 400 marks this INSTANCE as
66
+ * batch-unsupported (`supportsBatch === false`) and throws
67
+ * {@link BatchUnsupportedError}; the engine then stays on the single-op
68
+ * path for the rest of the instance's life. Any other 400 (e.g.
69
+ * BATCH_OVER_BUDGET) does NOT trip the memory.
70
+ */
71
+ declare class RpcUserSpaceAFS {
72
+ readonly name = "rpc-user-space";
73
+ private baseUrl;
74
+ private token;
75
+ private blocklet;
76
+ private sessionId?;
77
+ private extraHeaders;
78
+ /** null = unknown (no batch envelope sent yet); set on first evidence. */
79
+ private batchSupported;
80
+ constructor(options: RpcUserSpaceAFSOptions);
81
+ /** Instance-scoped capability memory (per-server, design §7.1). */
82
+ get supportsBatch(): boolean | null;
83
+ private wirePath;
84
+ private stripUser;
85
+ private rpc;
86
+ /** Map a non-OK single-op wire response onto the AFS error types. */
87
+ private throwWireError;
88
+ /**
89
+ * 409 → AFSConflictError with the triple. Keyed on `code: "AFS_CONFLICT"`
90
+ * OR triple-field presence — NEVER the legacy `error === "if_match_failed"`
91
+ * string (the T4.1 存量 bug: the wire sends the stable code, see
92
+ * afs-rpc-wire.ts WIRE_ERROR_CODES.conflict; Swift's throwConflict already
93
+ * keys on the code).
94
+ */
95
+ private throwConflict;
96
+ list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
97
+ read(path: string): Promise<AFSReadResult>;
98
+ write(path: string, payload: AFSWriteEntryPayload): Promise<AFSWriteResult>;
99
+ delete(path: string, opts?: AFSDeleteOptions): Promise<AFSDeleteResult>;
100
+ /** Detect the old server's exact "unsupported batch op" 400 (design T4.2):
101
+ * ONLY this text trips the per-instance fallback memory. */
102
+ private checkBatchUnsupported;
103
+ private restoreBatchResults;
104
+ /**
105
+ * One wire envelope per call — entries in the CORE batch shape
106
+ * (`AFSBatchWriteEntry`: `content.content` bytes + `options.ifMatch` /
107
+ * `options.meta` provenance), paths fragment-relative.
108
+ */
109
+ batchWrite(entries: AFSBatchWriteEntry[]): Promise<RpcBatchResult>;
110
+ /** Core-shaped delete entries (`options.meta.{ifMatch,deviceId,mtime}`). */
111
+ batchDelete(entries: AFSBatchDeleteEntry[]): Promise<RpcBatchResult>;
112
+ /** Entries are absolute wire paths already (e.g. "/.objects/{cid}" reads). */
113
+ batchRead(entries: Array<{
114
+ path: string;
115
+ optional?: boolean;
116
+ }>): Promise<RpcBatchResult>;
117
+ /**
118
+ * Probe whether the server's `/user` space advertises grant capability
119
+ * (P2 T2.5). Reads the `.actions` catalogue and checks the prepare-upload
120
+ * entry's `meta.grantCapability`. `false` on Node (fallback-only) or an old
121
+ * server with no upload actions → the engine stays on batchWrite.
122
+ */
123
+ uploadGrantCapability(): Promise<boolean>;
124
+ /** Run a `/user/.actions/<name>` exec. Throws `BatchUnsupportedError` when the
125
+ * server lacks the action (old server) so the engine falls back. */
126
+ private execAction;
127
+ prepareUpload(entries: PrepareUploadEntryInput[]): Promise<PrepareUploadResult>;
128
+ commitUpload(sessionId: string, entries: CommitUploadEntryInput[]): Promise<RpcBatchResult>;
129
+ /** Abort a prepared session (staged objects → GC). No TS engine call site yet
130
+ * — the engine bails via BatchUnsupportedError on grant loss; exposed for
131
+ * protocol parity (Swift mirror) + a future P4 abort-on-timeout path. */
132
+ abortUpload(sessionId: string): Promise<void>;
133
+ /** Out-of-band PUT of object bytes via a presigned grant. Returns the HTTP
134
+ * status (commit-after-200: the engine only commits entries that got 200). */
135
+ uploadObject(grant: UploadGrant, bytes: Uint8Array): Promise<number>;
136
+ /**
137
+ * Probe whether the server's `/user` space advertises GET-grant capability
138
+ * (P2 T2.4). Reads the `.actions` catalogue and checks the prepare-download
139
+ * entry's INDEPENDENT `meta.downloadGrantCapability` (NOT the upload
140
+ * `grantCapability`). `false` on Node (fallback-only) or an old server → the
141
+ * engine stays on batchRead.
142
+ */
143
+ downloadGrantCapability(): Promise<boolean>;
144
+ /** Run `prepare-download` — mints GET grants for the referenced cids. Throws
145
+ * `BatchUnsupportedError` when the server lacks the action (old server). */
146
+ prepareDownload(entries: PrepareDownloadEntryInput[]): Promise<PrepareDownloadResult>;
147
+ /**
148
+ * Out-of-band GET of object bytes via a presigned grant (content leaves R2
149
+ * directly — never through the Worker / base64). Returns the raw bytes on
150
+ * 200. A 401/403 means the grant was rejected (token lacks GetObject / bad
151
+ * signature) → throws {@link DownloadForbiddenError} so the engine flips the
152
+ * whole session to batchRead (runtime fallback-on-403, §7.3). Any other
153
+ * non-2xx (404 dangling / 5xx) throws a generic Error — the engine leaves the
154
+ * cid unfilled so the existing missing-object path handles it.
155
+ */
156
+ downloadObject(grant: DownloadGrant): Promise<Uint8Array>;
157
+ }
158
+ /** A minted presigned-PUT grant (mirrors the provider's PresignedPut). */
159
+ interface UploadGrant {
160
+ kind: "presigned-put";
161
+ url: string;
162
+ method: "PUT";
163
+ signedHeaders: Record<string, string>;
164
+ expiresAt: string;
165
+ }
166
+ interface PrepareUploadEntryInput {
167
+ path: string;
168
+ cid: string;
169
+ size: number;
170
+ /**
171
+ * Path-detected mime (the changelog carries none): drives the server's
172
+ * `treeEntry.mimeType` AND the text-mime gate for the inline copy a matching
173
+ * commit entry carries (inline-content-commit §5.3). Belongs on prepare so
174
+ * the session persists it before commit.
175
+ */
176
+ mimeType?: string;
177
+ ifMatch?: string;
178
+ deviceId?: string;
179
+ mtime?: number;
180
+ }
181
+ /**
182
+ * Commit entries are prepare entries PLUS an optional cid-verified inline text
183
+ * copy of the bytes (inline-content-commit §5.1/§5.3). Split from
184
+ * `PrepareUploadEntryInput` so the 2KB×N content rides ONLY the commit leg, not
185
+ * prepare (the grant-signing step has no use for it). The server text-mime-gates
186
+ * + digest-pre-verifies the copy before storing it.
187
+ */
188
+ interface CommitUploadEntryInput extends PrepareUploadEntryInput {
189
+ content?: string;
190
+ /**
191
+ * Application metadata (did-space-metadata G2): app fields (e.g. createdAt)
192
+ * the commit persists to `entries.metadata`. The server strips
193
+ * provider-reserved keys + caps the size; not part of the digest (it is
194
+ * application data, not bytes).
195
+ */
196
+ metadata?: Record<string, unknown>;
197
+ }
198
+ interface PreparedUploadEntry {
199
+ path: string;
200
+ cid: string;
201
+ status: string;
202
+ objectKey: string;
203
+ checksumSha256: string;
204
+ grant: UploadGrant | null;
205
+ }
206
+ interface PrepareUploadResult {
207
+ sessionId: string;
208
+ expiresAt: string;
209
+ entries: PreparedUploadEntry[];
210
+ }
211
+ /** A minted presigned-GET grant (mirrors the provider's PresignedGet). */
212
+ interface DownloadGrant {
213
+ kind: "presigned-get";
214
+ url: string;
215
+ method: "GET";
216
+ signedHeaders: Record<string, string>;
217
+ expiresAt: string;
218
+ }
219
+ interface PrepareDownloadEntryInput {
220
+ cid: string;
221
+ /** Error/log context only — never participates in authorization (§7.2). */
222
+ path?: string;
223
+ }
224
+ interface PreparedDownloadEntry {
225
+ cid: string;
226
+ /** "ok" | "forbidden" | "invalid" (partial-success, §7.2). */
227
+ status: string;
228
+ objectKey?: string;
229
+ grant?: DownloadGrant | null;
230
+ }
231
+ interface PrepareDownloadResult {
232
+ entries: PreparedDownloadEntry[];
233
+ }
234
+ //#endregion
235
+ export { BatchOverBudgetError, BatchUnsupportedError, CommitUploadEntryInput, DownloadGrant, PrepareDownloadEntryInput, PrepareDownloadResult, PrepareUploadEntryInput, PrepareUploadResult, RpcBatchEntryResult, RpcBatchResult, RpcUserSpaceAFS, RpcUserSpaceAFSOptions, UploadGrant };
236
+ //# sourceMappingURL=remote-afs.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-afs.d.cts","names":[],"sources":["../src/remote-afs.ts"],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ import { AFSBatchDeleteEntry, AFSBatchWriteEntry, AFSDeleteOptions, AFSDeleteResult, AFSListOptions, AFSListResult, AFSReadResult, AFSWriteEntryPayload, AFSWriteResult } from "@aigne/afs";
2
+
3
+ //#region src/remote-afs.d.ts
4
+ /** Per-entry batch result restored from a wire `results[i]` (single-op iso). */
5
+ interface RpcBatchEntryResult {
6
+ path: string;
7
+ success: boolean;
8
+ /** Wire `status` verbatim (200/404/409/503/…). */
9
+ status: number;
10
+ data?: Record<string, unknown>;
11
+ error?: string;
12
+ code?: string;
13
+ /** Soft miss for `optional: true` batchRead entries. */
14
+ missing?: boolean;
15
+ /** Conflict triple — same fields `AFSConflictError` carries. */
16
+ conflict?: {
17
+ currentCid: string | null;
18
+ currentMtime: number | null;
19
+ currentDeviceId: string | null;
20
+ };
21
+ }
22
+ interface RpcBatchResult {
23
+ results: RpcBatchEntryResult[];
24
+ succeeded: number;
25
+ failed: number;
26
+ }
27
+ /** Thrown when the server does not support the batch wire ops (old daemon). */
28
+ declare class BatchUnsupportedError extends Error {
29
+ constructor();
30
+ }
31
+ /**
32
+ * Envelope-level BATCH_OVER_BUDGET / PAYLOAD_TOO_LARGE — zero entries
33
+ * executed; the engine halves the chunk and retries (design §7.3). MUST NOT
34
+ * trip the capability-fallback memory.
35
+ */
36
+ declare class BatchOverBudgetError extends Error {
37
+ constructor(message: string);
38
+ }
39
+ interface RpcUserSpaceAFSOptions {
40
+ /** Base URL of the arc daemon / worker (e.g. "http://127.0.0.1:4900"). */
41
+ baseUrl: string;
42
+ /** Bearer token. */
43
+ token: string;
44
+ /** Envelope blocklet (the app whose /user fragment is the sync target). */
45
+ blocklet: string;
46
+ /** Optional envelope sessionId. */
47
+ sessionId?: string;
48
+ /** Extra headers (test seams, tracing). Never logged. */
49
+ extraHeaders?: Record<string, string>;
50
+ }
51
+ /**
52
+ * SyncCloudAFS over the afs-rpc wire (`POST /api/afs/rpc`) — the transport
53
+ * the production daemon/worker actually serve (the legacy `/api/space` REST
54
+ * server is gone; `RemoteUserSpaceAFS` above survives only for the
55
+ * export/import CLI against legacy hosts).
56
+ *
57
+ * Sync paths are fragment-root-relative; the wire allowlist admits only
58
+ * `/user/**` mutations, so every path is mapped through `/user` on the way
59
+ * out and stripped on the way back.
60
+ *
61
+ * Batch (P4): `batchWrite`/`batchDelete`/`batchRead` send one wire envelope
62
+ * each (wire-contract §9) and restore per-entry results to the single-op
63
+ * error types (`AFSConflictError` with the triple, `BATCH_TAIL_SKIPPED`
64
+ * passthrough). Capability fallback: the FIRST envelope answered with the
65
+ * old server's exact `Unsupported op 'batch…'` 400 marks this INSTANCE as
66
+ * batch-unsupported (`supportsBatch === false`) and throws
67
+ * {@link BatchUnsupportedError}; the engine then stays on the single-op
68
+ * path for the rest of the instance's life. Any other 400 (e.g.
69
+ * BATCH_OVER_BUDGET) does NOT trip the memory.
70
+ */
71
+ declare class RpcUserSpaceAFS {
72
+ readonly name = "rpc-user-space";
73
+ private baseUrl;
74
+ private token;
75
+ private blocklet;
76
+ private sessionId?;
77
+ private extraHeaders;
78
+ /** null = unknown (no batch envelope sent yet); set on first evidence. */
79
+ private batchSupported;
80
+ constructor(options: RpcUserSpaceAFSOptions);
81
+ /** Instance-scoped capability memory (per-server, design §7.1). */
82
+ get supportsBatch(): boolean | null;
83
+ private wirePath;
84
+ private stripUser;
85
+ private rpc;
86
+ /** Map a non-OK single-op wire response onto the AFS error types. */
87
+ private throwWireError;
88
+ /**
89
+ * 409 → AFSConflictError with the triple. Keyed on `code: "AFS_CONFLICT"`
90
+ * OR triple-field presence — NEVER the legacy `error === "if_match_failed"`
91
+ * string (the T4.1 存量 bug: the wire sends the stable code, see
92
+ * afs-rpc-wire.ts WIRE_ERROR_CODES.conflict; Swift's throwConflict already
93
+ * keys on the code).
94
+ */
95
+ private throwConflict;
96
+ list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
97
+ read(path: string): Promise<AFSReadResult>;
98
+ write(path: string, payload: AFSWriteEntryPayload): Promise<AFSWriteResult>;
99
+ delete(path: string, opts?: AFSDeleteOptions): Promise<AFSDeleteResult>;
100
+ /** Detect the old server's exact "unsupported batch op" 400 (design T4.2):
101
+ * ONLY this text trips the per-instance fallback memory. */
102
+ private checkBatchUnsupported;
103
+ private restoreBatchResults;
104
+ /**
105
+ * One wire envelope per call — entries in the CORE batch shape
106
+ * (`AFSBatchWriteEntry`: `content.content` bytes + `options.ifMatch` /
107
+ * `options.meta` provenance), paths fragment-relative.
108
+ */
109
+ batchWrite(entries: AFSBatchWriteEntry[]): Promise<RpcBatchResult>;
110
+ /** Core-shaped delete entries (`options.meta.{ifMatch,deviceId,mtime}`). */
111
+ batchDelete(entries: AFSBatchDeleteEntry[]): Promise<RpcBatchResult>;
112
+ /** Entries are absolute wire paths already (e.g. "/.objects/{cid}" reads). */
113
+ batchRead(entries: Array<{
114
+ path: string;
115
+ optional?: boolean;
116
+ }>): Promise<RpcBatchResult>;
117
+ /**
118
+ * Probe whether the server's `/user` space advertises grant capability
119
+ * (P2 T2.5). Reads the `.actions` catalogue and checks the prepare-upload
120
+ * entry's `meta.grantCapability`. `false` on Node (fallback-only) or an old
121
+ * server with no upload actions → the engine stays on batchWrite.
122
+ */
123
+ uploadGrantCapability(): Promise<boolean>;
124
+ /** Run a `/user/.actions/<name>` exec. Throws `BatchUnsupportedError` when the
125
+ * server lacks the action (old server) so the engine falls back. */
126
+ private execAction;
127
+ prepareUpload(entries: PrepareUploadEntryInput[]): Promise<PrepareUploadResult>;
128
+ commitUpload(sessionId: string, entries: CommitUploadEntryInput[]): Promise<RpcBatchResult>;
129
+ /** Abort a prepared session (staged objects → GC). No TS engine call site yet
130
+ * — the engine bails via BatchUnsupportedError on grant loss; exposed for
131
+ * protocol parity (Swift mirror) + a future P4 abort-on-timeout path. */
132
+ abortUpload(sessionId: string): Promise<void>;
133
+ /** Out-of-band PUT of object bytes via a presigned grant. Returns the HTTP
134
+ * status (commit-after-200: the engine only commits entries that got 200). */
135
+ uploadObject(grant: UploadGrant, bytes: Uint8Array): Promise<number>;
136
+ /**
137
+ * Probe whether the server's `/user` space advertises GET-grant capability
138
+ * (P2 T2.4). Reads the `.actions` catalogue and checks the prepare-download
139
+ * entry's INDEPENDENT `meta.downloadGrantCapability` (NOT the upload
140
+ * `grantCapability`). `false` on Node (fallback-only) or an old server → the
141
+ * engine stays on batchRead.
142
+ */
143
+ downloadGrantCapability(): Promise<boolean>;
144
+ /** Run `prepare-download` — mints GET grants for the referenced cids. Throws
145
+ * `BatchUnsupportedError` when the server lacks the action (old server). */
146
+ prepareDownload(entries: PrepareDownloadEntryInput[]): Promise<PrepareDownloadResult>;
147
+ /**
148
+ * Out-of-band GET of object bytes via a presigned grant (content leaves R2
149
+ * directly — never through the Worker / base64). Returns the raw bytes on
150
+ * 200. A 401/403 means the grant was rejected (token lacks GetObject / bad
151
+ * signature) → throws {@link DownloadForbiddenError} so the engine flips the
152
+ * whole session to batchRead (runtime fallback-on-403, §7.3). Any other
153
+ * non-2xx (404 dangling / 5xx) throws a generic Error — the engine leaves the
154
+ * cid unfilled so the existing missing-object path handles it.
155
+ */
156
+ downloadObject(grant: DownloadGrant): Promise<Uint8Array>;
157
+ }
158
+ /** A minted presigned-PUT grant (mirrors the provider's PresignedPut). */
159
+ interface UploadGrant {
160
+ kind: "presigned-put";
161
+ url: string;
162
+ method: "PUT";
163
+ signedHeaders: Record<string, string>;
164
+ expiresAt: string;
165
+ }
166
+ interface PrepareUploadEntryInput {
167
+ path: string;
168
+ cid: string;
169
+ size: number;
170
+ /**
171
+ * Path-detected mime (the changelog carries none): drives the server's
172
+ * `treeEntry.mimeType` AND the text-mime gate for the inline copy a matching
173
+ * commit entry carries (inline-content-commit §5.3). Belongs on prepare so
174
+ * the session persists it before commit.
175
+ */
176
+ mimeType?: string;
177
+ ifMatch?: string;
178
+ deviceId?: string;
179
+ mtime?: number;
180
+ }
181
+ /**
182
+ * Commit entries are prepare entries PLUS an optional cid-verified inline text
183
+ * copy of the bytes (inline-content-commit §5.1/§5.3). Split from
184
+ * `PrepareUploadEntryInput` so the 2KB×N content rides ONLY the commit leg, not
185
+ * prepare (the grant-signing step has no use for it). The server text-mime-gates
186
+ * + digest-pre-verifies the copy before storing it.
187
+ */
188
+ interface CommitUploadEntryInput extends PrepareUploadEntryInput {
189
+ content?: string;
190
+ /**
191
+ * Application metadata (did-space-metadata G2): app fields (e.g. createdAt)
192
+ * the commit persists to `entries.metadata`. The server strips
193
+ * provider-reserved keys + caps the size; not part of the digest (it is
194
+ * application data, not bytes).
195
+ */
196
+ metadata?: Record<string, unknown>;
197
+ }
198
+ interface PreparedUploadEntry {
199
+ path: string;
200
+ cid: string;
201
+ status: string;
202
+ objectKey: string;
203
+ checksumSha256: string;
204
+ grant: UploadGrant | null;
205
+ }
206
+ interface PrepareUploadResult {
207
+ sessionId: string;
208
+ expiresAt: string;
209
+ entries: PreparedUploadEntry[];
210
+ }
211
+ /** A minted presigned-GET grant (mirrors the provider's PresignedGet). */
212
+ interface DownloadGrant {
213
+ kind: "presigned-get";
214
+ url: string;
215
+ method: "GET";
216
+ signedHeaders: Record<string, string>;
217
+ expiresAt: string;
218
+ }
219
+ interface PrepareDownloadEntryInput {
220
+ cid: string;
221
+ /** Error/log context only — never participates in authorization (§7.2). */
222
+ path?: string;
223
+ }
224
+ interface PreparedDownloadEntry {
225
+ cid: string;
226
+ /** "ok" | "forbidden" | "invalid" (partial-success, §7.2). */
227
+ status: string;
228
+ objectKey?: string;
229
+ grant?: DownloadGrant | null;
230
+ }
231
+ interface PrepareDownloadResult {
232
+ entries: PreparedDownloadEntry[];
233
+ }
234
+ //#endregion
235
+ export { BatchOverBudgetError, BatchUnsupportedError, CommitUploadEntryInput, DownloadGrant, PrepareDownloadEntryInput, PrepareDownloadResult, PrepareUploadEntryInput, PrepareUploadResult, RpcBatchEntryResult, RpcBatchResult, RpcUserSpaceAFS, RpcUserSpaceAFSOptions, UploadGrant };
236
+ //# sourceMappingURL=remote-afs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-afs.d.mts","names":[],"sources":["../src/remote-afs.ts"],"mappings":"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"}