@indigoai-us/hq-cloud 6.18.44-alpha.48 → 6.18.44-alpha.49

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 (1021) hide show
  1. package/dist/active-company.test.d.ts +2 -0
  2. package/dist/active-company.test.d.ts.map +1 -0
  3. package/dist/active-company.test.js +149 -0
  4. package/dist/active-company.test.js.map +1 -0
  5. package/dist/agent-codex-instructions.test.d.ts +2 -0
  6. package/dist/agent-codex-instructions.test.d.ts.map +1 -0
  7. package/dist/agent-codex-instructions.test.js +276 -0
  8. package/dist/agent-codex-instructions.test.js.map +1 -0
  9. package/dist/backup-prune.test.d.ts +2 -0
  10. package/dist/backup-prune.test.d.ts.map +1 -0
  11. package/dist/backup-prune.test.js +154 -0
  12. package/dist/backup-prune.test.js.map +1 -0
  13. package/dist/bandwidth.test.d.ts +2 -0
  14. package/dist/bandwidth.test.d.ts.map +1 -0
  15. package/dist/bandwidth.test.js +342 -0
  16. package/dist/bandwidth.test.js.map +1 -0
  17. package/dist/best-effort-error.test.d.ts +2 -0
  18. package/dist/best-effort-error.test.d.ts.map +1 -0
  19. package/dist/best-effort-error.test.js +54 -0
  20. package/dist/best-effort-error.test.js.map +1 -0
  21. package/dist/bin/area-ledger-migration.test.d.ts +2 -0
  22. package/dist/bin/area-ledger-migration.test.d.ts.map +1 -0
  23. package/dist/bin/area-ledger-migration.test.js +410 -0
  24. package/dist/bin/area-ledger-migration.test.js.map +1 -0
  25. package/dist/bin/backup-prune-runner.test.d.ts +2 -0
  26. package/dist/bin/backup-prune-runner.test.d.ts.map +1 -0
  27. package/dist/bin/backup-prune-runner.test.js +22 -0
  28. package/dist/bin/backup-prune-runner.test.js.map +1 -0
  29. package/dist/bin/journal-repair.test.d.ts +2 -0
  30. package/dist/bin/journal-repair.test.d.ts.map +1 -0
  31. package/dist/bin/journal-repair.test.js +53 -0
  32. package/dist/bin/journal-repair.test.js.map +1 -0
  33. package/dist/bin/layout-compatibility.test.d.ts +2 -0
  34. package/dist/bin/layout-compatibility.test.d.ts.map +1 -0
  35. package/dist/bin/layout-compatibility.test.js +87 -0
  36. package/dist/bin/layout-compatibility.test.js.map +1 -0
  37. package/dist/bin/outpost-heartbeat.test.d.ts +7 -0
  38. package/dist/bin/outpost-heartbeat.test.d.ts.map +1 -0
  39. package/dist/bin/outpost-heartbeat.test.js +84 -0
  40. package/dist/bin/outpost-heartbeat.test.js.map +1 -0
  41. package/dist/bin/outpost-session-host.test.d.ts +7 -0
  42. package/dist/bin/outpost-session-host.test.d.ts.map +1 -0
  43. package/dist/bin/outpost-session-host.test.js +52 -0
  44. package/dist/bin/outpost-session-host.test.js.map +1 -0
  45. package/dist/bin/sync-mutation.test.d.ts +2 -0
  46. package/dist/bin/sync-mutation.test.d.ts.map +1 -0
  47. package/dist/bin/sync-mutation.test.js +64 -0
  48. package/dist/bin/sync-mutation.test.js.map +1 -0
  49. package/dist/bin/sync-runner-args.test.d.ts +2 -0
  50. package/dist/bin/sync-runner-args.test.d.ts.map +1 -0
  51. package/dist/bin/sync-runner-args.test.js +82 -0
  52. package/dist/bin/sync-runner-args.test.js.map +1 -0
  53. package/dist/bin/sync-runner-auth-wait.test.d.ts +2 -0
  54. package/dist/bin/sync-runner-auth-wait.test.d.ts.map +1 -0
  55. package/dist/bin/sync-runner-auth-wait.test.js +406 -0
  56. package/dist/bin/sync-runner-auth-wait.test.js.map +1 -0
  57. package/dist/bin/sync-runner-backoff.regression.test.d.ts +29 -0
  58. package/dist/bin/sync-runner-backoff.regression.test.d.ts.map +1 -0
  59. package/dist/bin/sync-runner-backoff.regression.test.js +224 -0
  60. package/dist/bin/sync-runner-backoff.regression.test.js.map +1 -0
  61. package/dist/bin/sync-runner-company.test.d.ts +2 -0
  62. package/dist/bin/sync-runner-company.test.d.ts.map +1 -0
  63. package/dist/bin/sync-runner-company.test.js +2439 -0
  64. package/dist/bin/sync-runner-company.test.js.map +1 -0
  65. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.d.ts +2 -0
  66. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.d.ts.map +1 -0
  67. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js +648 -0
  68. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js.map +1 -0
  69. package/dist/bin/sync-runner-delete-snapshot.bench.test.d.ts +2 -0
  70. package/dist/bin/sync-runner-delete-snapshot.bench.test.d.ts.map +1 -0
  71. package/dist/bin/sync-runner-delete-snapshot.bench.test.js +329 -0
  72. package/dist/bin/sync-runner-delete-snapshot.bench.test.js.map +1 -0
  73. package/dist/bin/sync-runner-events.test.d.ts +2 -0
  74. package/dist/bin/sync-runner-events.test.d.ts.map +1 -0
  75. package/dist/bin/sync-runner-events.test.js +364 -0
  76. package/dist/bin/sync-runner-events.test.js.map +1 -0
  77. package/dist/bin/sync-runner-heap-telemetry.test.d.ts +2 -0
  78. package/dist/bin/sync-runner-heap-telemetry.test.d.ts.map +1 -0
  79. package/dist/bin/sync-runner-heap-telemetry.test.js +1966 -0
  80. package/dist/bin/sync-runner-heap-telemetry.test.js.map +1 -0
  81. package/dist/bin/sync-runner-manifest.test.d.ts +12 -0
  82. package/dist/bin/sync-runner-manifest.test.d.ts.map +1 -0
  83. package/dist/bin/sync-runner-manifest.test.js +921 -0
  84. package/dist/bin/sync-runner-manifest.test.js.map +1 -0
  85. package/dist/bin/sync-runner-planning.test.d.ts +2 -0
  86. package/dist/bin/sync-runner-planning.test.d.ts.map +1 -0
  87. package/dist/bin/sync-runner-planning.test.js +448 -0
  88. package/dist/bin/sync-runner-planning.test.js.map +1 -0
  89. package/dist/bin/sync-runner-post-sync-flags.test.d.ts +2 -0
  90. package/dist/bin/sync-runner-post-sync-flags.test.d.ts.map +1 -0
  91. package/dist/bin/sync-runner-post-sync-flags.test.js +64 -0
  92. package/dist/bin/sync-runner-post-sync-flags.test.js.map +1 -0
  93. package/dist/bin/sync-runner-publish-expansion.test.d.ts +2 -0
  94. package/dist/bin/sync-runner-publish-expansion.test.d.ts.map +1 -0
  95. package/dist/bin/sync-runner-publish-expansion.test.js +54 -0
  96. package/dist/bin/sync-runner-publish-expansion.test.js.map +1 -0
  97. package/dist/bin/sync-runner-receiver-unresolved-company.test.d.ts +2 -0
  98. package/dist/bin/sync-runner-receiver-unresolved-company.test.d.ts.map +1 -0
  99. package/dist/bin/sync-runner-receiver-unresolved-company.test.js +379 -0
  100. package/dist/bin/sync-runner-receiver-unresolved-company.test.js.map +1 -0
  101. package/dist/bin/sync-runner-rollup.test.d.ts +2 -0
  102. package/dist/bin/sync-runner-rollup.test.d.ts.map +1 -0
  103. package/dist/bin/sync-runner-rollup.test.js +24 -0
  104. package/dist/bin/sync-runner-rollup.test.js.map +1 -0
  105. package/dist/bin/sync-runner-watch-loop.test.d.ts +2 -0
  106. package/dist/bin/sync-runner-watch-loop.test.d.ts.map +1 -0
  107. package/dist/bin/sync-runner-watch-loop.test.js +735 -0
  108. package/dist/bin/sync-runner-watch-loop.test.js.map +1 -0
  109. package/dist/bin/sync-runner-watch-routes.test.d.ts +2 -0
  110. package/dist/bin/sync-runner-watch-routes.test.d.ts.map +1 -0
  111. package/dist/bin/sync-runner-watch-routes.test.js +181 -0
  112. package/dist/bin/sync-runner-watch-routes.test.js.map +1 -0
  113. package/dist/bin/sync-runner.test.d.ts +10 -0
  114. package/dist/bin/sync-runner.test.d.ts.map +1 -0
  115. package/dist/bin/sync-runner.test.js +19084 -0
  116. package/dist/bin/sync-runner.test.js.map +1 -0
  117. package/dist/cli/case-alias.test.d.ts +2 -0
  118. package/dist/cli/case-alias.test.d.ts.map +1 -0
  119. package/dist/cli/case-alias.test.js +96 -0
  120. package/dist/cli/case-alias.test.js.map +1 -0
  121. package/dist/cli/conflict-recovery.test.d.ts +2 -0
  122. package/dist/cli/conflict-recovery.test.d.ts.map +1 -0
  123. package/dist/cli/conflict-recovery.test.js +207 -0
  124. package/dist/cli/conflict-recovery.test.js.map +1 -0
  125. package/dist/cli/conflict-winner.test.d.ts +7 -0
  126. package/dist/cli/conflict-winner.test.d.ts.map +1 -0
  127. package/dist/cli/conflict-winner.test.js +98 -0
  128. package/dist/cli/conflict-winner.test.js.map +1 -0
  129. package/dist/cli/doctor.test.d.ts +13 -0
  130. package/dist/cli/doctor.test.d.ts.map +1 -0
  131. package/dist/cli/doctor.test.js +607 -0
  132. package/dist/cli/doctor.test.js.map +1 -0
  133. package/dist/cli/invite.test.d.ts +5 -0
  134. package/dist/cli/invite.test.d.ts.map +1 -0
  135. package/dist/cli/invite.test.js +178 -0
  136. package/dist/cli/invite.test.js.map +1 -0
  137. package/dist/cli/onepass-pull-planner-regressions.test.d.ts +2 -0
  138. package/dist/cli/onepass-pull-planner-regressions.test.d.ts.map +1 -0
  139. package/dist/cli/onepass-pull-planner-regressions.test.js +300 -0
  140. package/dist/cli/onepass-pull-planner-regressions.test.js.map +1 -0
  141. package/dist/cli/onepass-pull-planner.test.d.ts +2 -0
  142. package/dist/cli/onepass-pull-planner.test.d.ts.map +1 -0
  143. package/dist/cli/onepass-pull-planner.test.js +266 -0
  144. package/dist/cli/onepass-pull-planner.test.js.map +1 -0
  145. package/dist/cli/push-scan-exclusions.test.d.ts +2 -0
  146. package/dist/cli/push-scan-exclusions.test.d.ts.map +1 -0
  147. package/dist/cli/push-scan-exclusions.test.js +99 -0
  148. package/dist/cli/push-scan-exclusions.test.js.map +1 -0
  149. package/dist/cli/reindex-knowledge.test.d.ts +12 -0
  150. package/dist/cli/reindex-knowledge.test.d.ts.map +1 -0
  151. package/dist/cli/reindex-knowledge.test.js +318 -0
  152. package/dist/cli/reindex-knowledge.test.js.map +1 -0
  153. package/dist/cli/reindex.test.d.ts +11 -0
  154. package/dist/cli/reindex.test.d.ts.map +1 -0
  155. package/dist/cli/reindex.test.js +860 -0
  156. package/dist/cli/reindex.test.js.map +1 -0
  157. package/dist/cli/rescue-breaker.test.d.ts +2 -0
  158. package/dist/cli/rescue-breaker.test.d.ts.map +1 -0
  159. package/dist/cli/rescue-breaker.test.js +812 -0
  160. package/dist/cli/rescue-breaker.test.js.map +1 -0
  161. package/dist/cli/rescue-classify-ordering.test.d.ts +2 -0
  162. package/dist/cli/rescue-classify-ordering.test.d.ts.map +1 -0
  163. package/dist/cli/rescue-classify-ordering.test.js +500 -0
  164. package/dist/cli/rescue-classify-ordering.test.js.map +1 -0
  165. package/dist/cli/rescue-clone-diagnostics.test.d.ts +2 -0
  166. package/dist/cli/rescue-clone-diagnostics.test.d.ts.map +1 -0
  167. package/dist/cli/rescue-clone-diagnostics.test.js +101 -0
  168. package/dist/cli/rescue-clone-diagnostics.test.js.map +1 -0
  169. package/dist/cli/rescue-clone-network-retry.test.d.ts +2 -0
  170. package/dist/cli/rescue-clone-network-retry.test.d.ts.map +1 -0
  171. package/dist/cli/rescue-clone-network-retry.test.js +415 -0
  172. package/dist/cli/rescue-clone-network-retry.test.js.map +1 -0
  173. package/dist/cli/rescue-core-stamp.test.d.ts +2 -0
  174. package/dist/cli/rescue-core-stamp.test.d.ts.map +1 -0
  175. package/dist/cli/rescue-core-stamp.test.js +364 -0
  176. package/dist/cli/rescue-core-stamp.test.js.map +1 -0
  177. package/dist/cli/rescue-drift-reconcile.test.d.ts +2 -0
  178. package/dist/cli/rescue-drift-reconcile.test.d.ts.map +1 -0
  179. package/dist/cli/rescue-drift-reconcile.test.js +162 -0
  180. package/dist/cli/rescue-drift-reconcile.test.js.map +1 -0
  181. package/dist/cli/rescue-drop-dir-symlink.test.d.ts +2 -0
  182. package/dist/cli/rescue-drop-dir-symlink.test.d.ts.map +1 -0
  183. package/dist/cli/rescue-drop-dir-symlink.test.js +255 -0
  184. package/dist/cli/rescue-drop-dir-symlink.test.js.map +1 -0
  185. package/dist/cli/rescue-exec-bit-preserve.test.d.ts +2 -0
  186. package/dist/cli/rescue-exec-bit-preserve.test.d.ts.map +1 -0
  187. package/dist/cli/rescue-exec-bit-preserve.test.js +177 -0
  188. package/dist/cli/rescue-exec-bit-preserve.test.js.map +1 -0
  189. package/dist/cli/rescue-hq-root-guard.test.d.ts +2 -0
  190. package/dist/cli/rescue-hq-root-guard.test.d.ts.map +1 -0
  191. package/dist/cli/rescue-hq-root-guard.test.js +210 -0
  192. package/dist/cli/rescue-hq-root-guard.test.js.map +1 -0
  193. package/dist/cli/rescue-journal-reconcile.test.d.ts +2 -0
  194. package/dist/cli/rescue-journal-reconcile.test.d.ts.map +1 -0
  195. package/dist/cli/rescue-journal-reconcile.test.js +186 -0
  196. package/dist/cli/rescue-journal-reconcile.test.js.map +1 -0
  197. package/dist/cli/rescue-keep-local-ignore.test.d.ts +2 -0
  198. package/dist/cli/rescue-keep-local-ignore.test.d.ts.map +1 -0
  199. package/dist/cli/rescue-keep-local-ignore.test.js +315 -0
  200. package/dist/cli/rescue-keep-local-ignore.test.js.map +1 -0
  201. package/dist/cli/rescue-move.test.d.ts +2 -0
  202. package/dist/cli/rescue-move.test.d.ts.map +1 -0
  203. package/dist/cli/rescue-move.test.js +166 -0
  204. package/dist/cli/rescue-move.test.js.map +1 -0
  205. package/dist/cli/rescue-mtime-preserve.test.d.ts +2 -0
  206. package/dist/cli/rescue-mtime-preserve.test.d.ts.map +1 -0
  207. package/dist/cli/rescue-mtime-preserve.test.js +186 -0
  208. package/dist/cli/rescue-mtime-preserve.test.js.map +1 -0
  209. package/dist/cli/rescue-preserve-copy-symlink.test.d.ts +2 -0
  210. package/dist/cli/rescue-preserve-copy-symlink.test.d.ts.map +1 -0
  211. package/dist/cli/rescue-preserve-copy-symlink.test.js +483 -0
  212. package/dist/cli/rescue-preserve-copy-symlink.test.js.map +1 -0
  213. package/dist/cli/rescue-realpath.test.d.ts +2 -0
  214. package/dist/cli/rescue-realpath.test.d.ts.map +1 -0
  215. package/dist/cli/rescue-realpath.test.js +109 -0
  216. package/dist/cli/rescue-realpath.test.js.map +1 -0
  217. package/dist/cli/rescue-restore-flag.test.d.ts +2 -0
  218. package/dist/cli/rescue-restore-flag.test.d.ts.map +1 -0
  219. package/dist/cli/rescue-restore-flag.test.js +82 -0
  220. package/dist/cli/rescue-restore-flag.test.js.map +1 -0
  221. package/dist/cli/rescue-rsync-preflight.test.d.ts +2 -0
  222. package/dist/cli/rescue-rsync-preflight.test.d.ts.map +1 -0
  223. package/dist/cli/rescue-rsync-preflight.test.js +579 -0
  224. package/dist/cli/rescue-rsync-preflight.test.js.map +1 -0
  225. package/dist/cli/rescue-rsync-status.test.d.ts +2 -0
  226. package/dist/cli/rescue-rsync-status.test.d.ts.map +1 -0
  227. package/dist/cli/rescue-rsync-status.test.js +406 -0
  228. package/dist/cli/rescue-rsync-status.test.js.map +1 -0
  229. package/dist/cli/rescue-settings-reconcile.test.d.ts +2 -0
  230. package/dist/cli/rescue-settings-reconcile.test.d.ts.map +1 -0
  231. package/dist/cli/rescue-settings-reconcile.test.js +610 -0
  232. package/dist/cli/rescue-settings-reconcile.test.js.map +1 -0
  233. package/dist/cli/rescue-snapshot-copy.test.d.ts +2 -0
  234. package/dist/cli/rescue-snapshot-copy.test.d.ts.map +1 -0
  235. package/dist/cli/rescue-snapshot-copy.test.js +790 -0
  236. package/dist/cli/rescue-snapshot-copy.test.js.map +1 -0
  237. package/dist/cli/rescue-snapshot-recovery.test.d.ts +2 -0
  238. package/dist/cli/rescue-snapshot-recovery.test.d.ts.map +1 -0
  239. package/dist/cli/rescue-snapshot-recovery.test.js +265 -0
  240. package/dist/cli/rescue-snapshot-recovery.test.js.map +1 -0
  241. package/dist/cli/rescue-snapshot.test.d.ts +2 -0
  242. package/dist/cli/rescue-snapshot.test.d.ts.map +1 -0
  243. package/dist/cli/rescue-snapshot.test.js +46 -0
  244. package/dist/cli/rescue-snapshot.test.js.map +1 -0
  245. package/dist/cli/rescue-source-switch-floor.test.d.ts +2 -0
  246. package/dist/cli/rescue-source-switch-floor.test.d.ts.map +1 -0
  247. package/dist/cli/rescue-source-switch-floor.test.js +247 -0
  248. package/dist/cli/rescue-source-switch-floor.test.js.map +1 -0
  249. package/dist/cli/rescue-unchanged-delete.test.d.ts +2 -0
  250. package/dist/cli/rescue-unchanged-delete.test.d.ts.map +1 -0
  251. package/dist/cli/rescue-unchanged-delete.test.js +305 -0
  252. package/dist/cli/rescue-unchanged-delete.test.js.map +1 -0
  253. package/dist/cli/rescue.reindex.test.d.ts +2 -0
  254. package/dist/cli/rescue.reindex.test.d.ts.map +1 -0
  255. package/dist/cli/rescue.reindex.test.js +72 -0
  256. package/dist/cli/rescue.reindex.test.js.map +1 -0
  257. package/dist/cli/rescue.test.d.ts +2 -0
  258. package/dist/cli/rescue.test.d.ts.map +1 -0
  259. package/dist/cli/rescue.test.js +127 -0
  260. package/dist/cli/rescue.test.js.map +1 -0
  261. package/dist/cli/share-plan-limit-presign.test.d.ts +2 -0
  262. package/dist/cli/share-plan-limit-presign.test.d.ts.map +1 -0
  263. package/dist/cli/share-plan-limit-presign.test.js +271 -0
  264. package/dist/cli/share-plan-limit-presign.test.js.map +1 -0
  265. package/dist/cli/share-presign-transport.test.d.ts +22 -0
  266. package/dist/cli/share-presign-transport.test.d.ts.map +1 -0
  267. package/dist/cli/share-presign-transport.test.js +388 -0
  268. package/dist/cli/share-presign-transport.test.js.map +1 -0
  269. package/dist/cli/share.test.d.ts +5 -0
  270. package/dist/cli/share.test.d.ts.map +1 -0
  271. package/dist/cli/share.test.js +12336 -0
  272. package/dist/cli/share.test.js.map +1 -0
  273. package/dist/cli/streaming-pull-planner.bench.test.d.ts +15 -0
  274. package/dist/cli/streaming-pull-planner.bench.test.d.ts.map +1 -0
  275. package/dist/cli/streaming-pull-planner.bench.test.js +273 -0
  276. package/dist/cli/streaming-pull-planner.bench.test.js.map +1 -0
  277. package/dist/cli/sync-scope.test.d.ts +22 -0
  278. package/dist/cli/sync-scope.test.d.ts.map +1 -0
  279. package/dist/cli/sync-scope.test.js +903 -0
  280. package/dist/cli/sync-scope.test.js.map +1 -0
  281. package/dist/cli/sync.test.d.ts +5 -0
  282. package/dist/cli/sync.test.d.ts.map +1 -0
  283. package/dist/cli/sync.test.js +9028 -0
  284. package/dist/cli/sync.test.js.map +1 -0
  285. package/dist/cli/tombstones.test.d.ts +2 -0
  286. package/dist/cli/tombstones.test.d.ts.map +1 -0
  287. package/dist/cli/tombstones.test.js +120 -0
  288. package/dist/cli/tombstones.test.js.map +1 -0
  289. package/dist/cli/watch-event-push-conflict.test.d.ts +25 -0
  290. package/dist/cli/watch-event-push-conflict.test.d.ts.map +1 -0
  291. package/dist/cli/watch-event-push-conflict.test.js +230 -0
  292. package/dist/cli/watch-event-push-conflict.test.js.map +1 -0
  293. package/dist/client-info.test.d.ts +11 -0
  294. package/dist/client-info.test.d.ts.map +1 -0
  295. package/dist/client-info.test.js +168 -0
  296. package/dist/client-info.test.js.map +1 -0
  297. package/dist/cognito-auth-lock-no-hard-links.test.d.ts +11 -0
  298. package/dist/cognito-auth-lock-no-hard-links.test.d.ts.map +1 -0
  299. package/dist/cognito-auth-lock-no-hard-links.test.js +76 -0
  300. package/dist/cognito-auth-lock-no-hard-links.test.js.map +1 -0
  301. package/dist/cognito-auth.test.d.ts +9 -0
  302. package/dist/cognito-auth.test.d.ts.map +1 -0
  303. package/dist/cognito-auth.test.js +745 -0
  304. package/dist/cognito-auth.test.js.map +1 -0
  305. package/dist/company-resolver.test.d.ts +7 -0
  306. package/dist/company-resolver.test.d.ts.map +1 -0
  307. package/dist/company-resolver.test.js +535 -0
  308. package/dist/company-resolver.test.js.map +1 -0
  309. package/dist/company-slug.test.d.ts +7 -0
  310. package/dist/company-slug.test.d.ts.map +1 -0
  311. package/dist/company-slug.test.js +43 -0
  312. package/dist/company-slug.test.js.map +1 -0
  313. package/dist/company-vault-transport.test.d.ts +12 -0
  314. package/dist/company-vault-transport.test.d.ts.map +1 -0
  315. package/dist/company-vault-transport.test.js +97 -0
  316. package/dist/company-vault-transport.test.js.map +1 -0
  317. package/dist/context.test.d.ts +7 -0
  318. package/dist/context.test.d.ts.map +1 -0
  319. package/dist/context.test.js +646 -0
  320. package/dist/context.test.js.map +1 -0
  321. package/dist/entity-resolver.test.d.ts +10 -0
  322. package/dist/entity-resolver.test.d.ts.map +1 -0
  323. package/dist/entity-resolver.test.js +244 -0
  324. package/dist/entity-resolver.test.js.map +1 -0
  325. package/dist/getindigo-dead-refs-contract.test.d.ts +2 -0
  326. package/dist/getindigo-dead-refs-contract.test.d.ts.map +1 -0
  327. package/dist/getindigo-dead-refs-contract.test.js +58 -0
  328. package/dist/getindigo-dead-refs-contract.test.js.map +1 -0
  329. package/dist/hermetic-test-env.test.d.ts +2 -0
  330. package/dist/hermetic-test-env.test.d.ts.map +1 -0
  331. package/dist/hermetic-test-env.test.js +61 -0
  332. package/dist/hermetic-test-env.test.js.map +1 -0
  333. package/dist/hq-root-recovery.test.d.ts +2 -0
  334. package/dist/hq-root-recovery.test.d.ts.map +1 -0
  335. package/dist/hq-root-recovery.test.js +65 -0
  336. package/dist/hq-root-recovery.test.js.map +1 -0
  337. package/dist/ignore.test.d.ts +10 -0
  338. package/dist/ignore.test.d.ts.map +1 -0
  339. package/dist/ignore.test.js +958 -0
  340. package/dist/ignore.test.js.map +1 -0
  341. package/dist/index.test.d.ts +2 -0
  342. package/dist/index.test.d.ts.map +1 -0
  343. package/dist/index.test.js +26 -0
  344. package/dist/index.test.js.map +1 -0
  345. package/dist/journal-area-ledger-read-boundary.test.d.ts +2 -0
  346. package/dist/journal-area-ledger-read-boundary.test.d.ts.map +1 -0
  347. package/dist/journal-area-ledger-read-boundary.test.js +425 -0
  348. package/dist/journal-area-ledger-read-boundary.test.js.map +1 -0
  349. package/dist/journal-baseline.test.d.ts +2 -0
  350. package/dist/journal-baseline.test.d.ts.map +1 -0
  351. package/dist/journal-baseline.test.js +218 -0
  352. package/dist/journal-baseline.test.js.map +1 -0
  353. package/dist/journal-decode-window.test.d.ts +2 -0
  354. package/dist/journal-decode-window.test.d.ts.map +1 -0
  355. package/dist/journal-decode-window.test.js +99 -0
  356. package/dist/journal-decode-window.test.js.map +1 -0
  357. package/dist/journal-delta-writes.test.d.ts +2 -0
  358. package/dist/journal-delta-writes.test.d.ts.map +1 -0
  359. package/dist/journal-delta-writes.test.js +159 -0
  360. package/dist/journal-delta-writes.test.js.map +1 -0
  361. package/dist/journal-ledger-index.test.d.ts +15 -0
  362. package/dist/journal-ledger-index.test.d.ts.map +1 -0
  363. package/dist/journal-ledger-index.test.js +269 -0
  364. package/dist/journal-ledger-index.test.js.map +1 -0
  365. package/dist/journal-public-boundary.test.d.ts +2 -0
  366. package/dist/journal-public-boundary.test.d.ts.map +1 -0
  367. package/dist/journal-public-boundary.test.js +216 -0
  368. package/dist/journal-public-boundary.test.js.map +1 -0
  369. package/dist/journal-row-store.test.d.ts +2 -0
  370. package/dist/journal-row-store.test.d.ts.map +1 -0
  371. package/dist/journal-row-store.test.js +729 -0
  372. package/dist/journal-row-store.test.js.map +1 -0
  373. package/dist/journal-snapshot-memory-helpers.d.ts +35 -0
  374. package/dist/journal-snapshot-memory-helpers.d.ts.map +1 -0
  375. package/dist/journal-snapshot-memory-helpers.js +298 -0
  376. package/dist/journal-snapshot-memory-helpers.js.map +1 -0
  377. package/dist/journal-snapshot-memory.test.d.ts +2 -0
  378. package/dist/journal-snapshot-memory.test.d.ts.map +1 -0
  379. package/dist/journal-snapshot-memory.test.js +55 -0
  380. package/dist/journal-snapshot-memory.test.js.map +1 -0
  381. package/dist/journal-snapshot-v4-memory.test.d.ts +2 -0
  382. package/dist/journal-snapshot-v4-memory.test.d.ts.map +1 -0
  383. package/dist/journal-snapshot-v4-memory.test.js +24 -0
  384. package/dist/journal-snapshot-v4-memory.test.js.map +1 -0
  385. package/dist/journal-snapshot-v4-writer-memory.test.d.ts +2 -0
  386. package/dist/journal-snapshot-v4-writer-memory.test.d.ts.map +1 -0
  387. package/dist/journal-snapshot-v4-writer-memory.test.js +76 -0
  388. package/dist/journal-snapshot-v4-writer-memory.test.js.map +1 -0
  389. package/dist/journal-snapshot-v4-writer.test.d.ts +2 -0
  390. package/dist/journal-snapshot-v4-writer.test.d.ts.map +1 -0
  391. package/dist/journal-snapshot-v4-writer.test.js +282 -0
  392. package/dist/journal-snapshot-v4-writer.test.js.map +1 -0
  393. package/dist/journal-snapshot-v4.test.d.ts +2 -0
  394. package/dist/journal-snapshot-v4.test.d.ts.map +1 -0
  395. package/dist/journal-snapshot-v4.test.js +281 -0
  396. package/dist/journal-snapshot-v4.test.js.map +1 -0
  397. package/dist/journal-store.test.d.ts +2 -0
  398. package/dist/journal-store.test.d.ts.map +1 -0
  399. package/dist/journal-store.test.js +1227 -0
  400. package/dist/journal-store.test.js.map +1 -0
  401. package/dist/journal-streaming.heap.test.d.ts +2 -0
  402. package/dist/journal-streaming.heap.test.d.ts.map +1 -0
  403. package/dist/journal-streaming.heap.test.js +190 -0
  404. package/dist/journal-streaming.heap.test.js.map +1 -0
  405. package/dist/journal.test.d.ts +9 -0
  406. package/dist/journal.test.d.ts.map +1 -0
  407. package/dist/journal.test.js +1074 -0
  408. package/dist/journal.test.js.map +1 -0
  409. package/dist/kms10-etag-safe-pull.test.d.ts +2 -0
  410. package/dist/kms10-etag-safe-pull.test.d.ts.map +1 -0
  411. package/dist/kms10-etag-safe-pull.test.js +53 -0
  412. package/dist/kms10-etag-safe-pull.test.js.map +1 -0
  413. package/dist/lib/cloud-authoritative.test.d.ts +2 -0
  414. package/dist/lib/cloud-authoritative.test.d.ts.map +1 -0
  415. package/dist/lib/cloud-authoritative.test.js +42 -0
  416. package/dist/lib/cloud-authoritative.test.js.map +1 -0
  417. package/dist/lib/conflict-reconcile.test.d.ts +7 -0
  418. package/dist/lib/conflict-reconcile.test.d.ts.map +1 -0
  419. package/dist/lib/conflict-reconcile.test.js +246 -0
  420. package/dist/lib/conflict-reconcile.test.js.map +1 -0
  421. package/dist/lib/conflict.test.d.ts +9 -0
  422. package/dist/lib/conflict.test.d.ts.map +1 -0
  423. package/dist/lib/conflict.test.js +340 -0
  424. package/dist/lib/conflict.test.js.map +1 -0
  425. package/dist/lib/describe-error.test.d.ts +2 -0
  426. package/dist/lib/describe-error.test.d.ts.map +1 -0
  427. package/dist/lib/describe-error.test.js +148 -0
  428. package/dist/lib/describe-error.test.js.map +1 -0
  429. package/dist/lib/machine-id.test.d.ts +8 -0
  430. package/dist/lib/machine-id.test.d.ts.map +1 -0
  431. package/dist/lib/machine-id.test.js +228 -0
  432. package/dist/lib/machine-id.test.js.map +1 -0
  433. package/dist/lib/net-errors.test.d.ts +2 -0
  434. package/dist/lib/net-errors.test.d.ts.map +1 -0
  435. package/dist/lib/net-errors.test.js +111 -0
  436. package/dist/lib/net-errors.test.js.map +1 -0
  437. package/dist/lib/ontology-entity-meta.test.d.ts +2 -0
  438. package/dist/lib/ontology-entity-meta.test.d.ts.map +1 -0
  439. package/dist/lib/ontology-entity-meta.test.js +79 -0
  440. package/dist/lib/ontology-entity-meta.test.js.map +1 -0
  441. package/dist/lib/ontology-entity-push.test.d.ts +2 -0
  442. package/dist/lib/ontology-entity-push.test.d.ts.map +1 -0
  443. package/dist/lib/ontology-entity-push.test.js +156 -0
  444. package/dist/lib/ontology-entity-push.test.js.map +1 -0
  445. package/dist/lib/personal-connector-settings-sync.test.d.ts +2 -0
  446. package/dist/lib/personal-connector-settings-sync.test.d.ts.map +1 -0
  447. package/dist/lib/personal-connector-settings-sync.test.js +34 -0
  448. package/dist/lib/personal-connector-settings-sync.test.js.map +1 -0
  449. package/dist/lib/readlink-safe.test.d.ts +2 -0
  450. package/dist/lib/readlink-safe.test.d.ts.map +1 -0
  451. package/dist/lib/readlink-safe.test.js +34 -0
  452. package/dist/lib/readlink-safe.test.js.map +1 -0
  453. package/dist/lib/s3-content-checksum.test.d.ts +2 -0
  454. package/dist/lib/s3-content-checksum.test.d.ts.map +1 -0
  455. package/dist/lib/s3-content-checksum.test.js +26 -0
  456. package/dist/lib/s3-content-checksum.test.js.map +1 -0
  457. package/dist/lib/skill-register-landed-bytes.test.d.ts +2 -0
  458. package/dist/lib/skill-register-landed-bytes.test.d.ts.map +1 -0
  459. package/dist/lib/skill-register-landed-bytes.test.js +83 -0
  460. package/dist/lib/skill-register-landed-bytes.test.js.map +1 -0
  461. package/dist/local-path-codec.test.d.ts +14 -0
  462. package/dist/local-path-codec.test.d.ts.map +1 -0
  463. package/dist/local-path-codec.test.js +122 -0
  464. package/dist/local-path-codec.test.js.map +1 -0
  465. package/dist/machine-auth.test.d.ts +14 -0
  466. package/dist/machine-auth.test.d.ts.map +1 -0
  467. package/dist/machine-auth.test.js +1492 -0
  468. package/dist/machine-auth.test.js.map +1 -0
  469. package/dist/machine-token-cache-isolation.test.d.ts +24 -0
  470. package/dist/machine-token-cache-isolation.test.d.ts.map +1 -0
  471. package/dist/machine-token-cache-isolation.test.js +284 -0
  472. package/dist/machine-token-cache-isolation.test.js.map +1 -0
  473. package/dist/manifest/US-002.acceptance.test.d.ts +11 -0
  474. package/dist/manifest/US-002.acceptance.test.d.ts.map +1 -0
  475. package/dist/manifest/US-002.acceptance.test.js +160 -0
  476. package/dist/manifest/US-002.acceptance.test.js.map +1 -0
  477. package/dist/manifest/US-004.acceptance.test.d.ts +12 -0
  478. package/dist/manifest/US-004.acceptance.test.d.ts.map +1 -0
  479. package/dist/manifest/US-004.acceptance.test.js +173 -0
  480. package/dist/manifest/US-004.acceptance.test.js.map +1 -0
  481. package/dist/manifest/bench-gate.d.ts +30 -0
  482. package/dist/manifest/bench-gate.d.ts.map +1 -0
  483. package/dist/manifest/bench-gate.js +47 -0
  484. package/dist/manifest/bench-gate.js.map +1 -0
  485. package/dist/manifest/bench-gate.test.d.ts +2 -0
  486. package/dist/manifest/bench-gate.test.d.ts.map +1 -0
  487. package/dist/manifest/bench-gate.test.js +67 -0
  488. package/dist/manifest/bench-gate.test.js.map +1 -0
  489. package/dist/manifest/build-manifest-resident-parity.test.d.ts +2 -0
  490. package/dist/manifest/build-manifest-resident-parity.test.d.ts.map +1 -0
  491. package/dist/manifest/build-manifest-resident-parity.test.js +69 -0
  492. package/dist/manifest/build-manifest-resident-parity.test.js.map +1 -0
  493. package/dist/manifest/build-manifest.bench.test.d.ts +22 -0
  494. package/dist/manifest/build-manifest.bench.test.d.ts.map +1 -0
  495. package/dist/manifest/build-manifest.bench.test.js +931 -0
  496. package/dist/manifest/build-manifest.bench.test.js.map +1 -0
  497. package/dist/manifest/build-manifest.test.d.ts +10 -0
  498. package/dist/manifest/build-manifest.test.d.ts.map +1 -0
  499. package/dist/manifest/build-manifest.test.js +1220 -0
  500. package/dist/manifest/build-manifest.test.js.map +1 -0
  501. package/dist/manifest/contract.test.d.ts +17 -0
  502. package/dist/manifest/contract.test.d.ts.map +1 -0
  503. package/dist/manifest/contract.test.js +346 -0
  504. package/dist/manifest/contract.test.js.map +1 -0
  505. package/dist/manifest/import-graph.test.d.ts +25 -0
  506. package/dist/manifest/import-graph.test.d.ts.map +1 -0
  507. package/dist/manifest/import-graph.test.js +120 -0
  508. package/dist/manifest/import-graph.test.js.map +1 -0
  509. package/dist/manifest/ledger-shard-isolation.test.d.ts +18 -0
  510. package/dist/manifest/ledger-shard-isolation.test.d.ts.map +1 -0
  511. package/dist/manifest/ledger-shard-isolation.test.js +153 -0
  512. package/dist/manifest/ledger-shard-isolation.test.js.map +1 -0
  513. package/dist/manifest/snapshot-store.test.d.ts +11 -0
  514. package/dist/manifest/snapshot-store.test.d.ts.map +1 -0
  515. package/dist/manifest/snapshot-store.test.js +206 -0
  516. package/dist/manifest/snapshot-store.test.js.map +1 -0
  517. package/dist/manifest/upload-manifest.test.d.ts +10 -0
  518. package/dist/manifest/upload-manifest.test.d.ts.map +1 -0
  519. package/dist/manifest/upload-manifest.test.js +1335 -0
  520. package/dist/manifest/upload-manifest.test.js.map +1 -0
  521. package/dist/manifest-reconcile.test.d.ts +2 -0
  522. package/dist/manifest-reconcile.test.d.ts.map +1 -0
  523. package/dist/manifest-reconcile.test.js +1032 -0
  524. package/dist/manifest-reconcile.test.js.map +1 -0
  525. package/dist/object-io.test.d.ts +11 -0
  526. package/dist/object-io.test.d.ts.map +1 -0
  527. package/dist/object-io.test.js +2376 -0
  528. package/dist/object-io.test.js.map +1 -0
  529. package/dist/operation-lock.test.d.ts +5 -0
  530. package/dist/operation-lock.test.d.ts.map +1 -0
  531. package/dist/operation-lock.test.js +796 -0
  532. package/dist/operation-lock.test.js.map +1 -0
  533. package/dist/outcome-telemetry.test.d.ts +9 -0
  534. package/dist/outcome-telemetry.test.d.ts.map +1 -0
  535. package/dist/outcome-telemetry.test.js +663 -0
  536. package/dist/outcome-telemetry.test.js.map +1 -0
  537. package/dist/outposts/client.test.d.ts +9 -0
  538. package/dist/outposts/client.test.d.ts.map +1 -0
  539. package/dist/outposts/client.test.js +415 -0
  540. package/dist/outposts/client.test.js.map +1 -0
  541. package/dist/outposts/command.test.d.ts +18 -0
  542. package/dist/outposts/command.test.d.ts.map +1 -0
  543. package/dist/outposts/command.test.js +1230 -0
  544. package/dist/outposts/command.test.js.map +1 -0
  545. package/dist/outposts/replica-sync.test.d.ts +2 -0
  546. package/dist/outposts/replica-sync.test.d.ts.map +1 -0
  547. package/dist/outposts/replica-sync.test.js +225 -0
  548. package/dist/outposts/replica-sync.test.js.map +1 -0
  549. package/dist/outposts/self-deploy.test.d.ts +2 -0
  550. package/dist/outposts/self-deploy.test.d.ts.map +1 -0
  551. package/dist/outposts/self-deploy.test.js +218 -0
  552. package/dist/outposts/self-deploy.test.js.map +1 -0
  553. package/dist/outposts/session-heartbeat-bounds.test.d.ts +25 -0
  554. package/dist/outposts/session-heartbeat-bounds.test.d.ts.map +1 -0
  555. package/dist/outposts/session-heartbeat-bounds.test.js +159 -0
  556. package/dist/outposts/session-heartbeat-bounds.test.js.map +1 -0
  557. package/dist/outposts/session-heartbeat-guard.test.d.ts +16 -0
  558. package/dist/outposts/session-heartbeat-guard.test.d.ts.map +1 -0
  559. package/dist/outposts/session-heartbeat-guard.test.js +88 -0
  560. package/dist/outposts/session-heartbeat-guard.test.js.map +1 -0
  561. package/dist/outposts/session-heartbeat-publisher.test.d.ts +10 -0
  562. package/dist/outposts/session-heartbeat-publisher.test.d.ts.map +1 -0
  563. package/dist/outposts/session-heartbeat-publisher.test.js +153 -0
  564. package/dist/outposts/session-heartbeat-publisher.test.js.map +1 -0
  565. package/dist/outposts/session-heartbeat-retain-guard.test.d.ts +18 -0
  566. package/dist/outposts/session-heartbeat-retain-guard.test.d.ts.map +1 -0
  567. package/dist/outposts/session-heartbeat-retain-guard.test.js +106 -0
  568. package/dist/outposts/session-heartbeat-retain-guard.test.js.map +1 -0
  569. package/dist/outposts/session-heartbeat-scan.test.d.ts +20 -0
  570. package/dist/outposts/session-heartbeat-scan.test.d.ts.map +1 -0
  571. package/dist/outposts/session-heartbeat-scan.test.js +242 -0
  572. package/dist/outposts/session-heartbeat-scan.test.js.map +1 -0
  573. package/dist/outposts/session-heartbeat.test.d.ts +11 -0
  574. package/dist/outposts/session-heartbeat.test.d.ts.map +1 -0
  575. package/dist/outposts/session-heartbeat.test.js +387 -0
  576. package/dist/outposts/session-heartbeat.test.js.map +1 -0
  577. package/dist/outposts/session-host-auth.test.d.ts +16 -0
  578. package/dist/outposts/session-host-auth.test.d.ts.map +1 -0
  579. package/dist/outposts/session-host-auth.test.js +284 -0
  580. package/dist/outposts/session-host-auth.test.js.map +1 -0
  581. package/dist/outposts/session-host-command.test.d.ts +10 -0
  582. package/dist/outposts/session-host-command.test.d.ts.map +1 -0
  583. package/dist/outposts/session-host-command.test.js +182 -0
  584. package/dist/outposts/session-host-command.test.js.map +1 -0
  585. package/dist/outposts/session-host-connection.test.d.ts +18 -0
  586. package/dist/outposts/session-host-connection.test.d.ts.map +1 -0
  587. package/dist/outposts/session-host-connection.test.js +392 -0
  588. package/dist/outposts/session-host-connection.test.js.map +1 -0
  589. package/dist/outposts/session-host-fakes.d.ts +61 -0
  590. package/dist/outposts/session-host-fakes.d.ts.map +1 -0
  591. package/dist/outposts/session-host-fakes.js +115 -0
  592. package/dist/outposts/session-host-fakes.js.map +1 -0
  593. package/dist/outposts/session-host-ndjson.test.d.ts +11 -0
  594. package/dist/outposts/session-host-ndjson.test.d.ts.map +1 -0
  595. package/dist/outposts/session-host-ndjson.test.js +73 -0
  596. package/dist/outposts/session-host-ndjson.test.js.map +1 -0
  597. package/dist/outposts/session-host-protocol.test.d.ts +15 -0
  598. package/dist/outposts/session-host-protocol.test.d.ts.map +1 -0
  599. package/dist/outposts/session-host-protocol.test.js +0 -0
  600. package/dist/outposts/session-host-protocol.test.js.map +1 -0
  601. package/dist/outposts/session-host-server.test.d.ts +10 -0
  602. package/dist/outposts/session-host-server.test.d.ts.map +1 -0
  603. package/dist/outposts/session-host-server.test.js +118 -0
  604. package/dist/outposts/session-host-server.test.js.map +1 -0
  605. package/dist/outposts/session-host-sessions.test.d.ts +18 -0
  606. package/dist/outposts/session-host-sessions.test.d.ts.map +1 -0
  607. package/dist/outposts/session-host-sessions.test.js +439 -0
  608. package/dist/outposts/session-host-sessions.test.js.map +1 -0
  609. package/dist/outposts/terminal.test.d.ts +2 -0
  610. package/dist/outposts/terminal.test.d.ts.map +1 -0
  611. package/dist/outposts/terminal.test.js +146 -0
  612. package/dist/outposts/terminal.test.js.map +1 -0
  613. package/dist/outposts/transport.test.d.ts +10 -0
  614. package/dist/outposts/transport.test.d.ts.map +1 -0
  615. package/dist/outposts/transport.test.js +205 -0
  616. package/dist/outposts/transport.test.js.map +1 -0
  617. package/dist/packed-journal-phase2.test.d.ts +2 -0
  618. package/dist/packed-journal-phase2.test.d.ts.map +1 -0
  619. package/dist/packed-journal-phase2.test.js +273 -0
  620. package/dist/packed-journal-phase2.test.js.map +1 -0
  621. package/dist/path-ancestors.test.d.ts +2 -0
  622. package/dist/path-ancestors.test.d.ts.map +1 -0
  623. package/dist/path-ancestors.test.js +21 -0
  624. package/dist/path-ancestors.test.js.map +1 -0
  625. package/dist/personal-vault-exclusions.test.d.ts +22 -0
  626. package/dist/personal-vault-exclusions.test.d.ts.map +1 -0
  627. package/dist/personal-vault-exclusions.test.js +294 -0
  628. package/dist/personal-vault-exclusions.test.js.map +1 -0
  629. package/dist/personal-vault.test.d.ts +18 -0
  630. package/dist/personal-vault.test.d.ts.map +1 -0
  631. package/dist/personal-vault.test.js +1106 -0
  632. package/dist/personal-vault.test.js.map +1 -0
  633. package/dist/plan-limit-pause.test.d.ts +2 -0
  634. package/dist/plan-limit-pause.test.d.ts.map +1 -0
  635. package/dist/plan-limit-pause.test.js +150 -0
  636. package/dist/plan-limit-pause.test.js.map +1 -0
  637. package/dist/plan-limit.fixtures.d.ts +34 -0
  638. package/dist/plan-limit.fixtures.d.ts.map +1 -0
  639. package/dist/plan-limit.fixtures.js +96 -0
  640. package/dist/plan-limit.fixtures.js.map +1 -0
  641. package/dist/plan-limit.test.d.ts +2 -0
  642. package/dist/plan-limit.test.d.ts.map +1 -0
  643. package/dist/plan-limit.test.js +132 -0
  644. package/dist/plan-limit.test.js.map +1 -0
  645. package/dist/prefix-coalesce.test.d.ts +2 -0
  646. package/dist/prefix-coalesce.test.d.ts.map +1 -0
  647. package/dist/prefix-coalesce.test.js +260 -0
  648. package/dist/prefix-coalesce.test.js.map +1 -0
  649. package/dist/private-folder-transport.test.d.ts +2 -0
  650. package/dist/private-folder-transport.test.d.ts.map +1 -0
  651. package/dist/private-folder-transport.test.js +33 -0
  652. package/dist/private-folder-transport.test.js.map +1 -0
  653. package/dist/public-surface.test.d.ts +15 -0
  654. package/dist/public-surface.test.d.ts.map +1 -0
  655. package/dist/public-surface.test.js +110 -0
  656. package/dist/public-surface.test.js.map +1 -0
  657. package/dist/qmd-reindex.test.d.ts +14 -0
  658. package/dist/qmd-reindex.test.d.ts.map +1 -0
  659. package/dist/qmd-reindex.test.js +904 -0
  660. package/dist/qmd-reindex.test.js.map +1 -0
  661. package/dist/read-only-state-dir.test.d.ts +27 -0
  662. package/dist/read-only-state-dir.test.d.ts.map +1 -0
  663. package/dist/read-only-state-dir.test.js +210 -0
  664. package/dist/read-only-state-dir.test.js.map +1 -0
  665. package/dist/remote-pull.test.d.ts +2 -0
  666. package/dist/remote-pull.test.d.ts.map +1 -0
  667. package/dist/remote-pull.test.js +1147 -0
  668. package/dist/remote-pull.test.js.map +1 -0
  669. package/dist/s3-download-stream-hash.test.d.ts +2 -0
  670. package/dist/s3-download-stream-hash.test.d.ts.map +1 -0
  671. package/dist/s3-download-stream-hash.test.js +70 -0
  672. package/dist/s3-download-stream-hash.test.js.map +1 -0
  673. package/dist/s3.list-cost.test.d.ts +2 -0
  674. package/dist/s3.list-cost.test.d.ts.map +1 -0
  675. package/dist/s3.list-cost.test.js +51 -0
  676. package/dist/s3.list-cost.test.js.map +1 -0
  677. package/dist/s3.rename-retry.test.d.ts +2 -0
  678. package/dist/s3.rename-retry.test.d.ts.map +1 -0
  679. package/dist/s3.rename-retry.test.js +217 -0
  680. package/dist/s3.rename-retry.test.js.map +1 -0
  681. package/dist/s3.symlink-materialize.test.d.ts +18 -0
  682. package/dist/s3.symlink-materialize.test.d.ts.map +1 -0
  683. package/dist/s3.symlink-materialize.test.js +591 -0
  684. package/dist/s3.symlink-materialize.test.js.map +1 -0
  685. package/dist/s3.test.d.ts +9 -0
  686. package/dist/s3.test.d.ts.map +1 -0
  687. package/dist/s3.test.js +2091 -0
  688. package/dist/s3.test.js.map +1 -0
  689. package/dist/s3.windows-portability.test.d.ts +12 -0
  690. package/dist/s3.windows-portability.test.d.ts.map +1 -0
  691. package/dist/s3.windows-portability.test.js +228 -0
  692. package/dist/s3.windows-portability.test.js.map +1 -0
  693. package/dist/schemas/signal-types.test.d.ts +2 -0
  694. package/dist/schemas/signal-types.test.d.ts.map +1 -0
  695. package/dist/schemas/signal-types.test.js +65 -0
  696. package/dist/schemas/signal-types.test.js.map +1 -0
  697. package/dist/schemas/source-channels.test.d.ts +2 -0
  698. package/dist/schemas/source-channels.test.d.ts.map +1 -0
  699. package/dist/schemas/source-channels.test.js +65 -0
  700. package/dist/schemas/source-channels.test.js.map +1 -0
  701. package/dist/scope-shrink.test.d.ts +13 -0
  702. package/dist/scope-shrink.test.d.ts.map +1 -0
  703. package/dist/scope-shrink.test.js +558 -0
  704. package/dist/scope-shrink.test.js.map +1 -0
  705. package/dist/session-log-capture.test.d.ts +2 -0
  706. package/dist/session-log-capture.test.d.ts.map +1 -0
  707. package/dist/session-log-capture.test.js +533 -0
  708. package/dist/session-log-capture.test.js.map +1 -0
  709. package/dist/session-log-retention.test.d.ts +2 -0
  710. package/dist/session-log-retention.test.d.ts.map +1 -0
  711. package/dist/session-log-retention.test.js +383 -0
  712. package/dist/session-log-retention.test.js.map +1 -0
  713. package/dist/signals/get.test.d.ts +5 -0
  714. package/dist/signals/get.test.d.ts.map +1 -0
  715. package/dist/signals/get.test.js +254 -0
  716. package/dist/signals/get.test.js.map +1 -0
  717. package/dist/signals/list.test.d.ts +9 -0
  718. package/dist/signals/list.test.d.ts.map +1 -0
  719. package/dist/signals/list.test.js +330 -0
  720. package/dist/signals/list.test.js.map +1 -0
  721. package/dist/skill-telemetry.test.d.ts +2 -0
  722. package/dist/skill-telemetry.test.d.ts.map +1 -0
  723. package/dist/skill-telemetry.test.js +1484 -0
  724. package/dist/skill-telemetry.test.js.map +1 -0
  725. package/dist/sources/get.test.d.ts +5 -0
  726. package/dist/sources/get.test.d.ts.map +1 -0
  727. package/dist/sources/get.test.js +236 -0
  728. package/dist/sources/get.test.js.map +1 -0
  729. package/dist/sources/list.test.d.ts +8 -0
  730. package/dist/sources/list.test.d.ts.map +1 -0
  731. package/dist/sources/list.test.js +318 -0
  732. package/dist/sources/list.test.js.map +1 -0
  733. package/dist/sts-credential-refresh.test.d.ts +2 -0
  734. package/dist/sts-credential-refresh.test.d.ts.map +1 -0
  735. package/dist/sts-credential-refresh.test.js +181 -0
  736. package/dist/sts-credential-refresh.test.js.map +1 -0
  737. package/dist/swallowed-error-sites.test.d.ts +2 -0
  738. package/dist/swallowed-error-sites.test.d.ts.map +1 -0
  739. package/dist/swallowed-error-sites.test.js +209 -0
  740. package/dist/swallowed-error-sites.test.js.map +1 -0
  741. package/dist/swallowed-error-w32.test.d.ts +2 -0
  742. package/dist/swallowed-error-w32.test.d.ts.map +1 -0
  743. package/dist/swallowed-error-w32.test.js +186 -0
  744. package/dist/swallowed-error-w32.test.js.map +1 -0
  745. package/dist/swallowed-error-w33.test.d.ts +2 -0
  746. package/dist/swallowed-error-w33.test.d.ts.map +1 -0
  747. package/dist/swallowed-error-w33.test.js +136 -0
  748. package/dist/swallowed-error-w33.test.js.map +1 -0
  749. package/dist/swallowed-error-w34.test.d.ts +2 -0
  750. package/dist/swallowed-error-w34.test.d.ts.map +1 -0
  751. package/dist/swallowed-error-w34.test.js +110 -0
  752. package/dist/swallowed-error-w34.test.js.map +1 -0
  753. package/dist/swallowed-error-w35.test.d.ts +2 -0
  754. package/dist/swallowed-error-w35.test.d.ts.map +1 -0
  755. package/dist/swallowed-error-w35.test.js +237 -0
  756. package/dist/swallowed-error-w35.test.js.map +1 -0
  757. package/dist/sync/area-ledger-auto-migration.test.d.ts +2 -0
  758. package/dist/sync/area-ledger-auto-migration.test.d.ts.map +1 -0
  759. package/dist/sync/area-ledger-auto-migration.test.js +291 -0
  760. package/dist/sync/area-ledger-auto-migration.test.js.map +1 -0
  761. package/dist/sync/area-ledger-migration.test.d.ts +2 -0
  762. package/dist/sync/area-ledger-migration.test.d.ts.map +1 -0
  763. package/dist/sync/area-ledger-migration.test.js +554 -0
  764. package/dist/sync/area-ledger-migration.test.js.map +1 -0
  765. package/dist/sync/area-ledger-recovery.bench.test.d.ts +2 -0
  766. package/dist/sync/area-ledger-recovery.bench.test.d.ts.map +1 -0
  767. package/dist/sync/area-ledger-recovery.bench.test.js +60 -0
  768. package/dist/sync/area-ledger-recovery.bench.test.js.map +1 -0
  769. package/dist/sync/area-ledger-writer-lock.bench.test.d.ts +2 -0
  770. package/dist/sync/area-ledger-writer-lock.bench.test.d.ts.map +1 -0
  771. package/dist/sync/area-ledger-writer-lock.bench.test.js +57 -0
  772. package/dist/sync/area-ledger-writer-lock.bench.test.js.map +1 -0
  773. package/dist/sync/area-ledger.test.d.ts +2 -0
  774. package/dist/sync/area-ledger.test.d.ts.map +1 -0
  775. package/dist/sync/area-ledger.test.js +1401 -0
  776. package/dist/sync/area-ledger.test.js.map +1 -0
  777. package/dist/sync/area-resolver.test.d.ts +2 -0
  778. package/dist/sync/area-resolver.test.d.ts.map +1 -0
  779. package/dist/sync/area-resolver.test.js +234 -0
  780. package/dist/sync/area-resolver.test.js.map +1 -0
  781. package/dist/sync/base-version-resolver.test.d.ts +2 -0
  782. package/dist/sync/base-version-resolver.test.d.ts.map +1 -0
  783. package/dist/sync/base-version-resolver.test.js +24 -0
  784. package/dist/sync/base-version-resolver.test.js.map +1 -0
  785. package/dist/sync/candidate-uploader.test.d.ts +2 -0
  786. package/dist/sync/candidate-uploader.test.d.ts.map +1 -0
  787. package/dist/sync/candidate-uploader.test.js +132 -0
  788. package/dist/sync/candidate-uploader.test.js.map +1 -0
  789. package/dist/sync/child-process-sync-worker-env.test.d.ts +2 -0
  790. package/dist/sync/child-process-sync-worker-env.test.d.ts.map +1 -0
  791. package/dist/sync/child-process-sync-worker-env.test.js +38 -0
  792. package/dist/sync/child-process-sync-worker-env.test.js.map +1 -0
  793. package/dist/sync/child-process-sync-worker-errors.test.d.ts +2 -0
  794. package/dist/sync/child-process-sync-worker-errors.test.d.ts.map +1 -0
  795. package/dist/sync/child-process-sync-worker-errors.test.js +121 -0
  796. package/dist/sync/child-process-sync-worker-errors.test.js.map +1 -0
  797. package/dist/sync/child-process-sync-worker.test.d.ts +2 -0
  798. package/dist/sync/child-process-sync-worker.test.d.ts.map +1 -0
  799. package/dist/sync/child-process-sync-worker.test.js +279 -0
  800. package/dist/sync/child-process-sync-worker.test.js.map +1 -0
  801. package/dist/sync/content-hash.test.d.ts +2 -0
  802. package/dist/sync/content-hash.test.d.ts.map +1 -0
  803. package/dist/sync/content-hash.test.js +16 -0
  804. package/dist/sync/content-hash.test.js.map +1 -0
  805. package/dist/sync/delta-client.test.d.ts +2 -0
  806. package/dist/sync/delta-client.test.d.ts.map +1 -0
  807. package/dist/sync/delta-client.test.js +97 -0
  808. package/dist/sync/delta-client.test.js.map +1 -0
  809. package/dist/sync/durable-apply.test.d.ts +2 -0
  810. package/dist/sync/durable-apply.test.d.ts.map +1 -0
  811. package/dist/sync/durable-apply.test.js +187 -0
  812. package/dist/sync/durable-apply.test.js.map +1 -0
  813. package/dist/sync/event-sync.test.d.ts +14 -0
  814. package/dist/sync/event-sync.test.d.ts.map +1 -0
  815. package/dist/sync/event-sync.test.js +1717 -0
  816. package/dist/sync/event-sync.test.js.map +1 -0
  817. package/dist/sync/feature-flags.test.d.ts +24 -0
  818. package/dist/sync/feature-flags.test.d.ts.map +1 -0
  819. package/dist/sync/feature-flags.test.js +594 -0
  820. package/dist/sync/feature-flags.test.js.map +1 -0
  821. package/dist/sync/fsync-compat.test.d.ts +2 -0
  822. package/dist/sync/fsync-compat.test.d.ts.map +1 -0
  823. package/dist/sync/fsync-compat.test.js +52 -0
  824. package/dist/sync/fsync-compat.test.js.map +1 -0
  825. package/dist/sync/full-pass-cap-governor.bench.test.d.ts +2 -0
  826. package/dist/sync/full-pass-cap-governor.bench.test.d.ts.map +1 -0
  827. package/dist/sync/full-pass-cap-governor.bench.test.js +179 -0
  828. package/dist/sync/full-pass-cap-governor.bench.test.js.map +1 -0
  829. package/dist/sync/full-pass-caps.test.d.ts +2 -0
  830. package/dist/sync/full-pass-caps.test.d.ts.map +1 -0
  831. package/dist/sync/full-pass-caps.test.js +550 -0
  832. package/dist/sync/full-pass-caps.test.js.map +1 -0
  833. package/dist/sync/idle-full-reconcile.test.d.ts +2 -0
  834. package/dist/sync/idle-full-reconcile.test.d.ts.map +1 -0
  835. package/dist/sync/idle-full-reconcile.test.js +62 -0
  836. package/dist/sync/idle-full-reconcile.test.js.map +1 -0
  837. package/dist/sync/inbound-event-admission.test.d.ts +2 -0
  838. package/dist/sync/inbound-event-admission.test.d.ts.map +1 -0
  839. package/dist/sync/inbound-event-admission.test.js +128 -0
  840. package/dist/sync/inbound-event-admission.test.js.map +1 -0
  841. package/dist/sync/journal-ledger-stream.test.d.ts +12 -0
  842. package/dist/sync/journal-ledger-stream.test.d.ts.map +1 -0
  843. package/dist/sync/journal-ledger-stream.test.js +134 -0
  844. package/dist/sync/journal-ledger-stream.test.js.map +1 -0
  845. package/dist/sync/lease-client.test.d.ts +2 -0
  846. package/dist/sync/lease-client.test.d.ts.map +1 -0
  847. package/dist/sync/lease-client.test.js +119 -0
  848. package/dist/sync/lease-client.test.js.map +1 -0
  849. package/dist/sync/logger.test.d.ts +19 -0
  850. package/dist/sync/logger.test.d.ts.map +1 -0
  851. package/dist/sync/logger.test.js +204 -0
  852. package/dist/sync/logger.test.js.map +1 -0
  853. package/dist/sync/metrics.test.d.ts +19 -0
  854. package/dist/sync/metrics.test.d.ts.map +1 -0
  855. package/dist/sync/metrics.test.js +357 -0
  856. package/dist/sync/metrics.test.js.map +1 -0
  857. package/dist/sync/multipart-uploader.test.d.ts +2 -0
  858. package/dist/sync/multipart-uploader.test.d.ts.map +1 -0
  859. package/dist/sync/multipart-uploader.test.js +141 -0
  860. package/dist/sync/multipart-uploader.test.js.map +1 -0
  861. package/dist/sync/mutation-client.test.d.ts +2 -0
  862. package/dist/sync/mutation-client.test.d.ts.map +1 -0
  863. package/dist/sync/mutation-client.test.js +100 -0
  864. package/dist/sync/mutation-client.test.js.map +1 -0
  865. package/dist/sync/mutation-session.test.d.ts +2 -0
  866. package/dist/sync/mutation-session.test.d.ts.map +1 -0
  867. package/dist/sync/mutation-session.test.js +190 -0
  868. package/dist/sync/mutation-session.test.js.map +1 -0
  869. package/dist/sync/parallel-sync-coordinator.test.d.ts +2 -0
  870. package/dist/sync/parallel-sync-coordinator.test.d.ts.map +1 -0
  871. package/dist/sync/parallel-sync-coordinator.test.js +564 -0
  872. package/dist/sync/parallel-sync-coordinator.test.js.map +1 -0
  873. package/dist/sync/path-leases.test.d.ts +2 -0
  874. package/dist/sync/path-leases.test.d.ts.map +1 -0
  875. package/dist/sync/path-leases.test.js +51 -0
  876. package/dist/sync/path-leases.test.js.map +1 -0
  877. package/dist/sync/per-area-maintenance.test.d.ts +2 -0
  878. package/dist/sync/per-area-maintenance.test.d.ts.map +1 -0
  879. package/dist/sync/per-area-maintenance.test.js +100 -0
  880. package/dist/sync/per-area-maintenance.test.js.map +1 -0
  881. package/dist/sync/push-event.test.d.ts +15 -0
  882. package/dist/sync/push-event.test.d.ts.map +1 -0
  883. package/dist/sync/push-event.test.js +282 -0
  884. package/dist/sync/push-event.test.js.map +1 -0
  885. package/dist/sync/push-receiver.test.d.ts +25 -0
  886. package/dist/sync/push-receiver.test.d.ts.map +1 -0
  887. package/dist/sync/push-receiver.test.js +2851 -0
  888. package/dist/sync/push-receiver.test.js.map +1 -0
  889. package/dist/sync/push-transport.test.d.ts +2 -0
  890. package/dist/sync/push-transport.test.d.ts.map +1 -0
  891. package/dist/sync/push-transport.test.js +70 -0
  892. package/dist/sync/push-transport.test.js.map +1 -0
  893. package/dist/sync/push-walk-matchers.bench.test.d.ts +2 -0
  894. package/dist/sync/push-walk-matchers.bench.test.d.ts.map +1 -0
  895. package/dist/sync/push-walk-matchers.bench.test.js +230 -0
  896. package/dist/sync/push-walk-matchers.bench.test.js.map +1 -0
  897. package/dist/sync/realtime-network-integration.test.d.ts +2 -0
  898. package/dist/sync/realtime-network-integration.test.d.ts.map +1 -0
  899. package/dist/sync/realtime-network-integration.test.js +83 -0
  900. package/dist/sync/realtime-network-integration.test.js.map +1 -0
  901. package/dist/sync/realtime-rollout.test.d.ts +2 -0
  902. package/dist/sync/realtime-rollout.test.d.ts.map +1 -0
  903. package/dist/sync/realtime-rollout.test.js +94 -0
  904. package/dist/sync/realtime-rollout.test.js.map +1 -0
  905. package/dist/sync/realtime-telemetry.test.d.ts +2 -0
  906. package/dist/sync/realtime-telemetry.test.d.ts.map +1 -0
  907. package/dist/sync/realtime-telemetry.test.js +300 -0
  908. package/dist/sync/realtime-telemetry.test.js.map +1 -0
  909. package/dist/sync/receiver-origin-config.test.d.ts +2 -0
  910. package/dist/sync/receiver-origin-config.test.d.ts.map +1 -0
  911. package/dist/sync/receiver-origin-config.test.js +39 -0
  912. package/dist/sync/receiver-origin-config.test.js.map +1 -0
  913. package/dist/sync/reconcile-cursor.test.d.ts +2 -0
  914. package/dist/sync/reconcile-cursor.test.d.ts.map +1 -0
  915. package/dist/sync/reconcile-cursor.test.js +139 -0
  916. package/dist/sync/reconcile-cursor.test.js.map +1 -0
  917. package/dist/sync/remote-file-spool.test.d.ts +2 -0
  918. package/dist/sync/remote-file-spool.test.d.ts.map +1 -0
  919. package/dist/sync/remote-file-spool.test.js +79 -0
  920. package/dist/sync/remote-file-spool.test.js.map +1 -0
  921. package/dist/sync/scope-inventory-client.test.d.ts +2 -0
  922. package/dist/sync/scope-inventory-client.test.d.ts.map +1 -0
  923. package/dist/sync/scope-inventory-client.test.js +110 -0
  924. package/dist/sync/scope-inventory-client.test.js.map +1 -0
  925. package/dist/sync/secret-path-policy.test.d.ts +2 -0
  926. package/dist/sync/secret-path-policy.test.d.ts.map +1 -0
  927. package/dist/sync/secret-path-policy.test.js +183 -0
  928. package/dist/sync/secret-path-policy.test.js.map +1 -0
  929. package/dist/sync/snapshot-client.test.d.ts +2 -0
  930. package/dist/sync/snapshot-client.test.d.ts.map +1 -0
  931. package/dist/sync/snapshot-client.test.js +169 -0
  932. package/dist/sync/snapshot-client.test.js.map +1 -0
  933. package/dist/sync/state-store.test.d.ts +2 -0
  934. package/dist/sync/state-store.test.d.ts.map +1 -0
  935. package/dist/sync/state-store.test.js +1556 -0
  936. package/dist/sync/state-store.test.js.map +1 -0
  937. package/dist/sync/sync-contract.test.d.ts +2 -0
  938. package/dist/sync/sync-contract.test.d.ts.map +1 -0
  939. package/dist/sync/sync-contract.test.js +141 -0
  940. package/dist/sync/sync-contract.test.js.map +1 -0
  941. package/dist/sync/targeted-pull-prefixes.test.d.ts +2 -0
  942. package/dist/sync/targeted-pull-prefixes.test.d.ts.map +1 -0
  943. package/dist/sync/targeted-pull-prefixes.test.js +33 -0
  944. package/dist/sync/targeted-pull-prefixes.test.js.map +1 -0
  945. package/dist/sync/targeted-upsert-exact-list.test.d.ts +2 -0
  946. package/dist/sync/targeted-upsert-exact-list.test.d.ts.map +1 -0
  947. package/dist/sync/targeted-upsert-exact-list.test.js +247 -0
  948. package/dist/sync/targeted-upsert-exact-list.test.js.map +1 -0
  949. package/dist/sync/unchanged-push-events.test.d.ts +2 -0
  950. package/dist/sync/unchanged-push-events.test.d.ts.map +1 -0
  951. package/dist/sync/unchanged-push-events.test.js +76 -0
  952. package/dist/sync/unchanged-push-events.test.js.map +1 -0
  953. package/dist/sync/uploader-finalization.test.d.ts +2 -0
  954. package/dist/sync/uploader-finalization.test.d.ts.map +1 -0
  955. package/dist/sync/uploader-finalization.test.js +107 -0
  956. package/dist/sync/uploader-finalization.test.js.map +1 -0
  957. package/dist/sync-core.test.d.ts +2 -0
  958. package/dist/sync-core.test.d.ts.map +1 -0
  959. package/dist/sync-core.test.js +189 -0
  960. package/dist/sync-core.test.js.map +1 -0
  961. package/dist/sync-progress.test.d.ts +2 -0
  962. package/dist/sync-progress.test.d.ts.map +1 -0
  963. package/dist/sync-progress.test.js +277 -0
  964. package/dist/sync-progress.test.js.map +1 -0
  965. package/dist/telemetry-events.test.d.ts +2 -0
  966. package/dist/telemetry-events.test.d.ts.map +1 -0
  967. package/dist/telemetry-events.test.js +113 -0
  968. package/dist/telemetry-events.test.js.map +1 -0
  969. package/dist/telemetry.test.d.ts +11 -0
  970. package/dist/telemetry.test.d.ts.map +1 -0
  971. package/dist/telemetry.test.js +1603 -0
  972. package/dist/telemetry.test.js.map +1 -0
  973. package/dist/vault-client.test.d.ts +7 -0
  974. package/dist/vault-client.test.d.ts.map +1 -0
  975. package/dist/vault-client.test.js +1334 -0
  976. package/dist/vault-client.test.js.map +1 -0
  977. package/dist/watch-coverage.test.d.ts +2 -0
  978. package/dist/watch-coverage.test.d.ts.map +1 -0
  979. package/dist/watch-coverage.test.js +56 -0
  980. package/dist/watch-coverage.test.js.map +1 -0
  981. package/dist/watch-owner-lease.test.d.ts +2 -0
  982. package/dist/watch-owner-lease.test.d.ts.map +1 -0
  983. package/dist/watch-owner-lease.test.js +364 -0
  984. package/dist/watch-owner-lease.test.js.map +1 -0
  985. package/dist/watch-parent.test.d.ts +2 -0
  986. package/dist/watch-parent.test.d.ts.map +1 -0
  987. package/dist/watch-parent.test.js +131 -0
  988. package/dist/watch-parent.test.js.map +1 -0
  989. package/dist/watch-roots.test.d.ts +18 -0
  990. package/dist/watch-roots.test.d.ts.map +1 -0
  991. package/dist/watch-roots.test.js +395 -0
  992. package/dist/watch-roots.test.js.map +1 -0
  993. package/dist/watcher-continuity-hot-path.test.d.ts +2 -0
  994. package/dist/watcher-continuity-hot-path.test.d.ts.map +1 -0
  995. package/dist/watcher-continuity-hot-path.test.js +40 -0
  996. package/dist/watcher-continuity-hot-path.test.js.map +1 -0
  997. package/dist/watcher-event-gate.test.d.ts +16 -0
  998. package/dist/watcher-event-gate.test.d.ts.map +1 -0
  999. package/dist/watcher-event-gate.test.js +191 -0
  1000. package/dist/watcher-event-gate.test.js.map +1 -0
  1001. package/dist/watcher-replan-sweep.test.d.ts +2 -0
  1002. package/dist/watcher-replan-sweep.test.d.ts.map +1 -0
  1003. package/dist/watcher-replan-sweep.test.js +260 -0
  1004. package/dist/watcher-replan-sweep.test.js.map +1 -0
  1005. package/dist/watcher-stdout.test.d.ts +2 -0
  1006. package/dist/watcher-stdout.test.d.ts.map +1 -0
  1007. package/dist/watcher-stdout.test.js +86 -0
  1008. package/dist/watcher-stdout.test.js.map +1 -0
  1009. package/dist/watcher.test.d.ts +2 -0
  1010. package/dist/watcher.test.d.ts.map +1 -0
  1011. package/dist/watcher.test.js +4329 -0
  1012. package/dist/watcher.test.js.map +1 -0
  1013. package/dist/watcher.warmup-cancel.test.d.ts +2 -0
  1014. package/dist/watcher.warmup-cancel.test.d.ts.map +1 -0
  1015. package/dist/watcher.warmup-cancel.test.js +59 -0
  1016. package/dist/watcher.warmup-cancel.test.js.map +1 -0
  1017. package/dist/watcher.warmup-responsive.test.d.ts +2 -0
  1018. package/dist/watcher.warmup-responsive.test.d.ts.map +1 -0
  1019. package/dist/watcher.warmup-responsive.test.js +62 -0
  1020. package/dist/watcher.warmup-responsive.test.js.map +1 -0
  1021. package/package.json +2 -2
@@ -0,0 +1,729 @@
1
+ /**
2
+ * Contract tests for the packed in-memory journal rows.
3
+ *
4
+ * This deliberately exercises the view rather than its typed-array internals:
5
+ * a later snapshot/WAL layer must be able to replace the storage layout without
6
+ * changing what callers observe.
7
+ */
8
+ import { describe, expect, it, vi } from "vitest";
9
+ import { JOURNAL_ENTRY_STORAGE, JournalRowStore, journalEntryFingerprint, } from "./journal-row-store.js";
10
+ function optionalBoolean(index, offset) {
11
+ const value = (index + offset) % 3;
12
+ return value === 0 ? undefined : value === 1;
13
+ }
14
+ function generatedEntry(index) {
15
+ const entry = {
16
+ hash: index % 3 === 0
17
+ ? index.toString(16).padStart(64, "0")
18
+ : index % 3 === 1 ? "a".repeat(63) : "B".repeat(64),
19
+ size: index * 17.25,
20
+ syncedAt: index % 2 === 0
21
+ ? new Date(1_700_000_000_000 + index).toISOString()
22
+ : "not-an-iso-synced-at-" + index,
23
+ direction: index % 2 === 0 ? "up" : "down",
24
+ };
25
+ if (index % 3 !== 0)
26
+ entry.kind = index % 2 === 0 ? "file" : "symlink";
27
+ if (index % 4 !== 0)
28
+ entry.createdBySub = "author-" + (index % 11);
29
+ if (index % 3 === 1)
30
+ entry.remoteEtag = index.toString(16).padStart(32, "f");
31
+ if (index % 3 === 2)
32
+ entry.remoteEtag = "d".repeat(32) + "-" + (1 + (index % 5));
33
+ if (index % 4 !== 0)
34
+ entry.mtimeMs = 1_700_000_000_000 + index * 3;
35
+ if (index % 5 !== 0)
36
+ entry.ctimeMs = 1_700_000_000_000 + index * 7;
37
+ if (index % 5 === 0) {
38
+ entry.removedAt = new Date(1_700_100_000_000 + index).toISOString();
39
+ entry.removedReason = ["scope_shrink", "narrow_apply", "manual", "local-delete"][index % 4];
40
+ }
41
+ if (index % 6 === 0)
42
+ entry.message = "shared note " + index;
43
+ if (index % 4 === 0) {
44
+ entry.localDeleteIntent = {
45
+ version: 1,
46
+ remoteEtag: "e".repeat(32),
47
+ localHash: (index + 7).toString(16).padStart(64, "0"),
48
+ localKind: index % 8 === 0 ? "symlink" : "file",
49
+ };
50
+ }
51
+ const outOfScopeProtected = optionalBoolean(index, 0);
52
+ const skillMetadataPending = optionalBoolean(index, 1);
53
+ const localDiverges = optionalBoolean(index, 2);
54
+ if (outOfScopeProtected !== undefined)
55
+ entry.outOfScopeProtected = outOfScopeProtected;
56
+ if (skillMetadataPending !== undefined)
57
+ entry.skillMetadataPending = skillMetadataPending;
58
+ if (localDiverges !== undefined)
59
+ entry.localDiverges = localDiverges;
60
+ return entry;
61
+ }
62
+ function sameEntry(a, b) {
63
+ const keys = Object.keys(a);
64
+ if (keys.length !== Object.keys(b).length)
65
+ return false;
66
+ return keys.every((key) => {
67
+ const left = a[key];
68
+ const right = b[key];
69
+ if (left === right)
70
+ return true;
71
+ return typeof left === "object" && left !== null && typeof right === "object" && right !== null
72
+ && JSON.stringify(left) === JSON.stringify(right);
73
+ });
74
+ }
75
+ function referenceDelta(previous, next) {
76
+ const upserts = {};
77
+ for (const [key, row] of Object.entries(next)) {
78
+ const before = previous[key];
79
+ if (before !== undefined && sameEntry(before, row))
80
+ continue;
81
+ upserts[key] = row;
82
+ }
83
+ return {
84
+ upserts,
85
+ deletes: Object.keys(previous).filter((key) => !Object.hasOwn(next, key)).sort(),
86
+ };
87
+ }
88
+ function deltaFromDirtyLog(store, changes) {
89
+ const previous = new Map();
90
+ for (const change of changes) {
91
+ if (!previous.has(change.path)) {
92
+ previous.set(change.path, {
93
+ hadPrevious: change.hadPrevious,
94
+ previousFingerprint: change.previousFingerprint,
95
+ });
96
+ }
97
+ }
98
+ const upserts = {};
99
+ const deletes = [];
100
+ for (const [key, before] of previous) {
101
+ const after = store.get(key);
102
+ if (after === undefined) {
103
+ if (before.hadPrevious)
104
+ deletes.push(key);
105
+ }
106
+ else if (!before.hadPrevious || before.previousFingerprint !== journalEntryFingerprint(after)) {
107
+ upserts[key] = after;
108
+ }
109
+ }
110
+ return { upserts, deletes: deletes.sort() };
111
+ }
112
+ function rng(seed) {
113
+ let state = seed >>> 0;
114
+ return () => {
115
+ state = (state + 0x6d2b79f5) >>> 0;
116
+ let value = state;
117
+ value = Math.imul(value ^ (value >>> 15), value | 1);
118
+ value ^= value + Math.imul(value ^ (value >>> 7), value | 61);
119
+ return ((value ^ (value >>> 14)) >>> 0) / 4_294_967_296;
120
+ };
121
+ }
122
+ function expectIndexInvariant(store) {
123
+ const buckets = store.buckets;
124
+ const indexedRows = [...buckets].filter((row) => row !== 0);
125
+ expect(indexedRows, "index occupancy must equal the number of live rows").toHaveLength(store.size);
126
+ expect(new Set(indexedRows).size, "a row id must occupy at most one bucket").toBe(indexedRows.length);
127
+ }
128
+ function dirtyLogForTest(store) {
129
+ return store.dirtyLog;
130
+ }
131
+ function retainsMaterializedRow(store) {
132
+ const seen = new Set();
133
+ const pending = [store];
134
+ while (pending.length > 0) {
135
+ const value = pending.pop();
136
+ if (value === null || typeof value !== "object" || seen.has(value))
137
+ continue;
138
+ seen.add(value);
139
+ const candidate = value;
140
+ if (Object.isFrozen(candidate) &&
141
+ "hash" in candidate &&
142
+ "size" in candidate &&
143
+ "syncedAt" in candidate &&
144
+ "direction" in candidate)
145
+ return true;
146
+ if (ArrayBuffer.isView(candidate) || candidate instanceof ArrayBuffer)
147
+ continue;
148
+ if (candidate instanceof Map || candidate instanceof Set) {
149
+ for (const nested of candidate.values())
150
+ pending.push(nested);
151
+ continue;
152
+ }
153
+ for (const key of Reflect.ownKeys(candidate)) {
154
+ const descriptor = Object.getOwnPropertyDescriptor(candidate, key);
155
+ if (descriptor && "value" in descriptor)
156
+ pending.push(descriptor.value);
157
+ }
158
+ }
159
+ return false;
160
+ }
161
+ function churnStore(store, rowCount) {
162
+ const paths = Array.from({ length: rowCount }, (_value, index) => `churn/row-${index}.md`);
163
+ for (const [index, path] of paths.entries())
164
+ store.set(path, generatedEntry(index));
165
+ for (let round = 0; round < 4; round += 1) {
166
+ for (const [index, path] of paths.entries())
167
+ store.set(path, generatedEntry((round + 1) * rowCount + index));
168
+ }
169
+ for (const [index, path] of paths.entries()) {
170
+ expect(store.delete(path)).toBe(true);
171
+ store.set(path, generatedEntry(5 * rowCount + index));
172
+ }
173
+ return paths;
174
+ }
175
+ const fuzzAlphabet = ["a", "é", "漢", "🙂", "ß", "z", "\ud800", "�"];
176
+ const LARGE_STRING_TABLE_ROWS = 400_000;
177
+ const LARGE_ENTRY_VARIANTS = 257;
178
+ function largeTableEntryVariant(variant) {
179
+ const entry = {
180
+ hash: variant % 3 === 0 ? variant.toString(16).padStart(64, "0") : `fallback-hash-${variant}`,
181
+ size: variant * 17.25,
182
+ syncedAt: variant % 2 === 0
183
+ ? new Date(1_700_000_000_000 + variant).toISOString()
184
+ : `fallback-synced-at-${variant}`,
185
+ direction: variant % 2 === 0 ? "up" : "down",
186
+ };
187
+ if (variant % 3 !== 0)
188
+ entry.kind = variant % 2 === 0 ? "file" : "symlink";
189
+ if (variant % 3 === 1)
190
+ entry.remoteEtag = variant.toString(16).padStart(32, "f");
191
+ if (variant % 3 === 2)
192
+ entry.remoteEtag = `fallback-etag-${variant}`;
193
+ if (variant % 4 !== 0)
194
+ entry.mtimeMs = 1_700_000_000_000 + variant * 3;
195
+ if (variant % 5 !== 0)
196
+ entry.ctimeMs = 1_700_000_000_000 + variant * 7;
197
+ if (variant % 5 === 0) {
198
+ entry.removedAt = new Date(1_700_100_000_000 + variant).toISOString();
199
+ entry.removedReason = ["scope_shrink", "narrow_apply", "manual", "local-delete"][variant % 4];
200
+ }
201
+ if (variant % 8 === 0) {
202
+ entry.localDeleteIntent = {
203
+ version: 1,
204
+ remoteEtag: `intent-etag-${variant}`,
205
+ localHash: (variant + 7).toString(16).padStart(64, "0"),
206
+ localKind: variant % 16 === 0 ? "symlink" : "file",
207
+ };
208
+ }
209
+ const outOfScopeProtected = optionalBoolean(variant, 0);
210
+ const skillMetadataPending = optionalBoolean(variant, 1);
211
+ const localDiverges = optionalBoolean(variant, 2);
212
+ if (outOfScopeProtected !== undefined)
213
+ entry.outOfScopeProtected = outOfScopeProtected;
214
+ if (skillMetadataPending !== undefined)
215
+ entry.skillMetadataPending = skillMetadataPending;
216
+ if (localDiverges !== undefined)
217
+ entry.localDiverges = localDiverges;
218
+ return entry;
219
+ }
220
+ const largeTableEntryVariants = Array.from({ length: LARGE_ENTRY_VARIANTS }, (_value, index) => largeTableEntryVariant(index));
221
+ function largeTableEntry(index, author) {
222
+ const entry = { ...largeTableEntryVariants[index % LARGE_ENTRY_VARIANTS] };
223
+ if (index % 5 === 0)
224
+ delete entry.createdBySub;
225
+ else
226
+ entry.createdBySub = author;
227
+ return entry;
228
+ }
229
+ function storeWithLargeStringTable(table) {
230
+ const store = new JournalRowStore(LARGE_STRING_TABLE_ROWS);
231
+ let lastPath = "";
232
+ for (let index = 0; index < LARGE_STRING_TABLE_ROWS; index += 1) {
233
+ const directory = table === "directory" ? `directory-${index}` : "directory";
234
+ const author = table === "author" ? `author-${index}` : "author";
235
+ const entry = largeTableEntry(index, author);
236
+ lastPath = `${directory}/entry-${index}.md`;
237
+ store.set(lastPath, entry);
238
+ }
239
+ // Leave a row hole so toSnapshot takes the HQSNAP4 compaction path.
240
+ expect(store.delete(lastPath)).toBe(true);
241
+ return store;
242
+ }
243
+ function expectLargeTableEntryValueEqual(actual, expected, index, field) {
244
+ if (typeof actual === "object" && actual !== null && typeof expected === "object" && expected !== null) {
245
+ const actualRecord = actual;
246
+ const expectedRecord = expected;
247
+ const actualKeys = Object.keys(actualRecord);
248
+ const expectedKeys = Object.keys(expectedRecord);
249
+ if (actualKeys.length !== expectedKeys.length) {
250
+ throw new Error(`HQSNAP4 entry ${field} own-key count differs at index ${index}`);
251
+ }
252
+ for (const key of expectedKeys) {
253
+ if (!Object.hasOwn(actualRecord, key)) {
254
+ throw new Error(`HQSNAP4 entry ${field} is missing own key ${key} at index ${index}`);
255
+ }
256
+ if (actualRecord[key] !== expectedRecord[key]) {
257
+ throw new Error(`HQSNAP4 entry ${field}.${key} differs at index ${index}`);
258
+ }
259
+ }
260
+ return;
261
+ }
262
+ if (actual !== expected) {
263
+ throw new Error(`HQSNAP4 entry ${field} differs at index ${index}: ${String(actual)} !== ${String(expected)}`);
264
+ }
265
+ }
266
+ function expectLargeTableEntriesEqual(actual, expected) {
267
+ let index = 0;
268
+ while (true) {
269
+ const actualNext = actual.next();
270
+ const expectedNext = expected.next();
271
+ if (actualNext.done || expectedNext.done) {
272
+ if (actualNext.done !== expectedNext.done) {
273
+ throw new Error(`HQSNAP4 entry count differs at index ${index}`);
274
+ }
275
+ return;
276
+ }
277
+ const [actualPath, actualEntry] = actualNext.value;
278
+ const [expectedPath, expectedEntry] = expectedNext.value;
279
+ if (actualPath !== expectedPath) {
280
+ throw new Error(`HQSNAP4 entry path differs at index ${index}: ${actualPath} !== ${expectedPath}`);
281
+ }
282
+ const actualKeys = Object.keys(actualEntry);
283
+ const expectedKeys = Object.keys(expectedEntry);
284
+ if (actualKeys.length !== expectedKeys.length) {
285
+ const missingKey = expectedKeys.find((key) => !Object.hasOwn(actualEntry, key));
286
+ const unexpectedKey = actualKeys.find((key) => !Object.hasOwn(expectedEntry, key));
287
+ throw new Error(`HQSNAP4 entry own keys differ at index ${index}: missing ${missingKey ?? "none"}, unexpected ${unexpectedKey ?? "none"}`);
288
+ }
289
+ const actualRecord = actualEntry;
290
+ const expectedRecord = expectedEntry;
291
+ for (const key of expectedKeys) {
292
+ if (!Object.hasOwn(actualEntry, key)) {
293
+ throw new Error(`HQSNAP4 entry is missing own key ${key} at index ${index}`);
294
+ }
295
+ expectLargeTableEntryValueEqual(actualRecord[key], expectedRecord[key], index, key);
296
+ }
297
+ index += 1;
298
+ }
299
+ }
300
+ function expectLargeTableEqual(name, actual, expected) {
301
+ if (actual.length !== expected.length) {
302
+ throw new Error(`HQSNAP4 ${name} length differs: ${actual.length} !== ${expected.length}`);
303
+ }
304
+ for (let index = 0; index < actual.length; index += 1) {
305
+ if (actual[index] !== expected[index]) {
306
+ throw new Error(`HQSNAP4 ${name} differs at index ${index}: ${actual[index]} !== ${expected[index]}`);
307
+ }
308
+ }
309
+ }
310
+ function fuzzPath(random) {
311
+ const depth = Math.floor(random() * 4);
312
+ const segment = () => {
313
+ const length = 1 + Math.floor(random() * 4);
314
+ return Array.from({ length }, () => fuzzAlphabet[Math.floor(random() * fuzzAlphabet.length)]).join("");
315
+ };
316
+ const parts = Array.from({ length: depth + 1 }, segment);
317
+ return parts.join("/");
318
+ }
319
+ describe("packed journal row store", () => {
320
+ it("round-trips every JournalEntry field across canonical and side-table values", () => {
321
+ const store = new JournalRowStore();
322
+ const expected = new Map();
323
+ for (let index = 0; index < 420; index++) {
324
+ const key = "notes/世界/entry-" + index + ".md";
325
+ const row = generatedEntry(index);
326
+ store.set(key, row);
327
+ expected.set(key, row);
328
+ }
329
+ for (const [key, row] of expected)
330
+ expect(store.get(key)).toEqual(row);
331
+ expect(store.toRecord()).toEqual(Object.fromEntries(expected));
332
+ });
333
+ it("declares storage for every JournalEntry key", () => {
334
+ const schema = JOURNAL_ENTRY_STORAGE;
335
+ expect(Object.keys(schema)).toHaveLength(16);
336
+ expect(Object.values(schema).every((storage) => storage === "column" || storage === "side-table")).toBe(true);
337
+ });
338
+ it("deliberately drops unknown row keys at the packed schema boundary", () => {
339
+ const store = new JournalRowStore();
340
+ const known = generatedEntry(31);
341
+ const written = { ...known, futureField: "x" };
342
+ store.set("future.md", written);
343
+ // A client that writes a field a reader does not know about loses it on
344
+ // the next checkpoint. The schema-completeness test above guards only
345
+ // declared JournalEntry fields; an extras table must consciously change this test.
346
+ expect(store.get("future.md")).toEqual(known);
347
+ expect(store.get("future.md")).not.toHaveProperty("futureField");
348
+ });
349
+ it("exposes the packed store through a lazy JournalRows view", () => {
350
+ const store = new JournalRowStore();
351
+ const rows = store.rows;
352
+ const iterator = rows.keys();
353
+ rows.set("view/one.md", generatedEntry(1));
354
+ rows.set("view/two.md", generatedEntry(2));
355
+ expect(iterator.next().value).toBe("view/one.md");
356
+ expect([...rows.entries()].map(([key]) => key)).toEqual(["view/one.md", "view/two.md"]);
357
+ expect([...rows.values()]).toEqual([generatedEntry(1), generatedEntry(2)]);
358
+ expect(rows.has("view/two.md")).toBe(true);
359
+ expect(rows.delete("view/two.md")).toBe(true);
360
+ expect(rows.size).toBe(1);
361
+ });
362
+ it("defers recovered prefix candidates until a caller actually scans a prefix", () => {
363
+ const source = new JournalRowStore();
364
+ source.set("alpha/one.md", generatedEntry(1));
365
+ source.set("alpha/nested/two.md", generatedEntry(2));
366
+ source.set("beta/three.md", generatedEntry(3));
367
+ const restored = JournalRowStore.fromSnapshot(source.toSnapshot());
368
+ const inspected = restored;
369
+ // Whole-journal writers recover this packed object too. They must not pay
370
+ // to build targeted-pull candidates unless they perform a prefix scan.
371
+ expect(inspected.prefixRows).toBeUndefined();
372
+ expect([...restored.entriesForPrefix("alpha")].map(([path]) => path))
373
+ .toEqual(["alpha/one.md", "alpha/nested/two.md"]);
374
+ expect(inspected.prefixRows?.prefixIds.has("alpha")).toBe(true);
375
+ expect(inspected.prefixRows?.rowIds).toBeInstanceOf(Uint32Array);
376
+ });
377
+ it("keeps compact prefix candidates current across deletes, reused rows, and new directories", () => {
378
+ const rows = new JournalRowStore();
379
+ rows.set("alpha/nested/one.md", generatedEntry(1));
380
+ rows.set("alpha/root.md", generatedEntry(2));
381
+ rows.preparePrefixIndex();
382
+ rows.set("alpha/nested/two.md", generatedEntry(3));
383
+ expect(rows.delete("alpha/nested/one.md")).toBe(true);
384
+ rows.set("alpha/nested/one.md", generatedEntry(4));
385
+ rows.set("alpha/leaf", generatedEntry(5));
386
+ rows.set("alpha/leaf/child.md", generatedEntry(6));
387
+ expect([...rows.entriesForPrefix("alpha/nested")].map(([path]) => path))
388
+ .toEqual(["alpha/nested/two.md", "alpha/nested/one.md"]);
389
+ expect([...rows.entriesForPrefix("alpha/leaf")].map(([path]) => path))
390
+ .toEqual(["alpha/leaf", "alpha/leaf/child.md"]);
391
+ expect([...rows.entriesForPrefix("alpha")].map(([path]) => path))
392
+ .toEqual([
393
+ "alpha/root.md",
394
+ "alpha/nested/two.md",
395
+ "alpha/nested/one.md",
396
+ "alpha/leaf",
397
+ "alpha/leaf/child.md",
398
+ ]);
399
+ });
400
+ it("does not reuse released dynamic prefix ids while sibling directories remain live", () => {
401
+ const rows = new JournalRowStore();
402
+ rows.set("alpha/seed.md", generatedEntry(1));
403
+ rows.preparePrefixIndex();
404
+ rows.set("alpha/first/one.md", generatedEntry(2));
405
+ rows.set("alpha/second/two.md", generatedEntry(3));
406
+ expect(rows.delete("alpha/first/one.md")).toBe(true);
407
+ rows.set("alpha/third/three.md", generatedEntry(4));
408
+ expect([...rows.entriesForPrefix("alpha/second")].map(([path]) => path))
409
+ .toEqual(["alpha/second/two.md"]);
410
+ expect([...rows.entriesForPrefix("alpha/third")].map(([path]) => path))
411
+ .toEqual(["alpha/third/three.md"]);
412
+ const inspected = rows;
413
+ expect(inspected.prefixRows.prefixIds.get("alpha/second"))
414
+ .not.toBe(inspected.prefixRows.prefixIds.get("alpha/third"));
415
+ });
416
+ it("keeps absent optionals distinct from present false values", () => {
417
+ const store = new JournalRowStore();
418
+ const base = generatedEntry(6);
419
+ delete base.localDiverges;
420
+ delete base.outOfScopeProtected;
421
+ delete base.skillMetadataPending;
422
+ delete base.remoteEtag;
423
+ delete base.mtimeMs;
424
+ delete base.ctimeMs;
425
+ store.set("absent.md", base);
426
+ store.set("false.md", {
427
+ ...base,
428
+ localDiverges: false,
429
+ outOfScopeProtected: false,
430
+ skillMetadataPending: false,
431
+ remoteEtag: "e".repeat(32),
432
+ mtimeMs: 0,
433
+ ctimeMs: 0,
434
+ });
435
+ const absent = store.get("absent.md");
436
+ const presentFalse = store.get("false.md");
437
+ for (const key of ["localDiverges", "outOfScopeProtected", "skillMetadataPending", "remoteEtag", "mtimeMs", "ctimeMs"]) {
438
+ expect(Object.hasOwn(absent, key)).toBe(false);
439
+ expect(Object.hasOwn(presentFalse, key)).toBe(true);
440
+ }
441
+ expect(presentFalse.localDiverges).toBe(false);
442
+ expect(presentFalse.outOfScopeProtected).toBe(false);
443
+ expect(presentFalse.skillMetadataPending).toBe(false);
444
+ });
445
+ it("emits the same net delta as a plain-object reference and can drain twice", () => {
446
+ const store = new JournalRowStore();
447
+ const initial = {};
448
+ for (let index = 0; index < 120; index++) {
449
+ const key = "seed/" + index + ".md";
450
+ const row = generatedEntry(index);
451
+ initial[key] = row;
452
+ store.set(key, row);
453
+ }
454
+ expect(store.drainDirtyLog()).toHaveLength(120);
455
+ for (let seed = 1; seed <= 300; seed++) {
456
+ const random = rng(seed);
457
+ const before = structuredClone(store.toRecord());
458
+ const current = structuredClone(before);
459
+ for (let step = 0; step < 1 + Math.floor(random() * 12); step++) {
460
+ const keys = Object.keys(current);
461
+ const key = keys[Math.floor(random() * keys.length)];
462
+ if (random() < 0.34) {
463
+ delete current[key];
464
+ store.delete(key);
465
+ }
466
+ else {
467
+ const next = generatedEntry(Math.floor(random() * 10_000));
468
+ current[key] = next;
469
+ store.set(key, next);
470
+ }
471
+ }
472
+ const changes = store.drainDirtyLog();
473
+ expect(deltaFromDirtyLog(store, changes)).toEqual(referenceDelta(before, current));
474
+ expect(store.drainDirtyLog()).toEqual([]);
475
+ const extraKey = "extra/" + seed + ".md";
476
+ const extra = generatedEntry(20_000 + seed);
477
+ current[extraKey] = extra;
478
+ store.set(extraKey, extra);
479
+ expect(deltaFromDirtyLog(store, store.drainDirtyLog())).toEqual({ upserts: { [extraKey]: extra }, deletes: [] });
480
+ }
481
+ });
482
+ it("does not retain dirty changes or materialized previous rows when change tracking is disabled", () => {
483
+ const rowCount = 72;
484
+ const nonTracking = new JournalRowStore(64, { trackChanges: false });
485
+ churnStore(nonTracking, rowCount);
486
+ expect(nonTracking.size).toBe(rowCount);
487
+ expect(dirtyLogForTest(nonTracking)).toEqual([]);
488
+ expect(retainsMaterializedRow(nonTracking)).toBe(false);
489
+ expect(() => nonTracking.drainDirtyLog()).toThrow("Change tracking is disabled");
490
+ expect(() => nonTracking.drainChanges()).toThrow("Change tracking is disabled");
491
+ const tracking = new JournalRowStore();
492
+ churnStore(tracking, rowCount);
493
+ expect(tracking.size).toBe(rowCount);
494
+ expect(dirtyLogForTest(tracking)).toHaveLength(rowCount);
495
+ expect(retainsMaterializedRow(tracking)).toBe(false);
496
+ });
497
+ it("does not materialize existing rows while updating with change tracking disabled", () => {
498
+ const store = new JournalRowStore(64, { trackChanges: false });
499
+ const paths = Array.from({ length: 36 }, (_value, index) => `updates/row-${index}.md`);
500
+ for (const [index, path] of paths.entries())
501
+ store.set(path, generatedEntry(index));
502
+ const materialize = vi.spyOn(store, "materialize");
503
+ for (let round = 0; round < 5; round += 1) {
504
+ for (const [index, path] of paths.entries())
505
+ store.set(path, generatedEntry((round + 1) * paths.length + index));
506
+ }
507
+ expect(materialize).not.toHaveBeenCalled();
508
+ materialize.mockRestore();
509
+ });
510
+ it("iterates keys without materializing rows", () => {
511
+ const store = new JournalRowStore(64, { trackChanges: false });
512
+ const paths = ["docs/guide.md", "docs/nested/plan.md", "docsx/guide.md", "root.md"];
513
+ for (const [index, path] of paths.entries())
514
+ store.set(path, generatedEntry(index));
515
+ const materialize = vi.spyOn(store, "materialize");
516
+ expect([...store.keys()]).toEqual(paths);
517
+ expect(materialize).not.toHaveBeenCalled();
518
+ materialize.mockRestore();
519
+ });
520
+ it("compacts a non-tracking store after heavy churn without losing live rows", () => {
521
+ const store = new JournalRowStore(64, { trackChanges: false });
522
+ const paths = churnStore(store, 96);
523
+ const before = store.toRecord();
524
+ const sizeBeforeCompaction = store.size;
525
+ store.compact();
526
+ expect(store.size).toBe(sizeBeforeCompaction);
527
+ for (const path of paths)
528
+ expect(store.get(path)).toEqual(before[path]);
529
+ });
530
+ it("returns frozen rows", () => {
531
+ const store = new JournalRowStore();
532
+ store.set("frozen.md", generatedEntry(10));
533
+ const row = store.get("frozen.md");
534
+ expect(Object.isFrozen(row)).toBe(true);
535
+ expect(() => { row.size = 9; }).toThrow(TypeError);
536
+ });
537
+ it("clears columns, index state, free rows, and pending dirty changes", () => {
538
+ const store = new JournalRowStore();
539
+ const paths = ["clear/one.md", "clear/two.md", "clear/three.md"];
540
+ for (const [index, rowPath] of paths.entries())
541
+ store.set(rowPath, generatedEntry(index));
542
+ store.clear();
543
+ expect(store.size).toBe(0);
544
+ for (const rowPath of paths)
545
+ expect(store.get(rowPath)).toBeUndefined();
546
+ expect(store.drainDirtyLog()).toEqual([]);
547
+ const replacement = generatedEntry(99);
548
+ store.set("clear/reused.md", replacement);
549
+ expect(store.get("clear/reused.md")).toEqual(replacement);
550
+ });
551
+ it("keeps UTF-8 leaves and same-named paths in their correct directories", () => {
552
+ const store = new JournalRowStore();
553
+ store.set("same/世界.md", generatedEntry(1));
554
+ store.set("same/é.md", generatedEntry(2));
555
+ store.set("other/世界.md", generatedEntry(3));
556
+ expect(store.directoryCount).toBe(3);
557
+ store.delete("same/世界.md");
558
+ expect(store.get("other/世界.md")).toEqual(generatedEntry(3));
559
+ expect(store.get("same/é.md")).toEqual(generatedEntry(2));
560
+ });
561
+ it("reuses a deleted row id without resurrecting its side tables", () => {
562
+ const store = new JournalRowStore();
563
+ const withIntent = generatedEntry(4);
564
+ expect(withIntent.localDeleteIntent).toBeDefined();
565
+ store.set("intent.md", withIntent);
566
+ const firstId = store.drainDirtyLog()[0].rowId;
567
+ store.delete("intent.md");
568
+ store.drainDirtyLog();
569
+ const plain = generatedEntry(5);
570
+ delete plain.localDeleteIntent;
571
+ store.set("plain.md", plain);
572
+ const replacementId = store.drainDirtyLog()[0].rowId;
573
+ expect(replacementId).toBe(firstId);
574
+ expect(store.get("plain.md")).toEqual(plain);
575
+ expect(Object.hasOwn(store.get("plain.md"), "localDeleteIntent")).toBe(false);
576
+ });
577
+ it("keeps Map iteration order when a deleted row id is reused", () => {
578
+ const store = new JournalRowStore();
579
+ store.set("first.md", generatedEntry(1));
580
+ store.set("middle.md", generatedEntry(2));
581
+ store.set("last.md", generatedEntry(3));
582
+ store.delete("middle.md");
583
+ store.set("reinserted.md", generatedEntry(4));
584
+ expect([...store.keys()]).toEqual(["first.md", "last.md", "reinserted.md"]);
585
+ });
586
+ it("compacts active rows after their checkpoint", () => {
587
+ const store = new JournalRowStore();
588
+ store.set("compact/one.md", generatedEntry(1));
589
+ store.set("compact/two.md", generatedEntry(2));
590
+ store.set("compact/three.md", generatedEntry(3));
591
+ store.drainDirtyLog();
592
+ store.delete("compact/two.md");
593
+ store.drainDirtyLog();
594
+ store.compact();
595
+ expect(store.toRecord()).toEqual({
596
+ "compact/one.md": generatedEntry(1),
597
+ "compact/three.md": generatedEntry(3),
598
+ });
599
+ store.set("compact/four.md", generatedEntry(4));
600
+ expect(store.drainDirtyLog()[0].rowId).toBe(2);
601
+ });
602
+ it("keeps one index bucket per row through growth, deletion, and row-id reuse", () => {
603
+ const store = new JournalRowStore();
604
+ const activePaths = [];
605
+ for (let cycle = 0; cycle < 7; cycle++) {
606
+ for (let index = 0; index < 90; index++) {
607
+ const path = cycle % 2 === 0
608
+ ? `entry-${cycle}-${index}.md`
609
+ : `nested/${cycle % 3}/entry-${cycle}-${index}.md`;
610
+ store.set(path, generatedEntry(cycle * 100 + index));
611
+ activePaths.push(path);
612
+ expectIndexInvariant(store);
613
+ }
614
+ for (let index = activePaths.length - 1; index >= 0; index -= 2) {
615
+ const [path] = activePaths.splice(index, 1);
616
+ expect(store.delete(path)).toBe(true);
617
+ expectIndexInvariant(store);
618
+ }
619
+ }
620
+ });
621
+ it("matches Map across deterministic UTF-8 path churn", () => {
622
+ for (let seed = 1; seed <= 300; seed++) {
623
+ const random = rng(seed);
624
+ const store = new JournalRowStore();
625
+ const expected = new Map();
626
+ const paths = new Set();
627
+ while (paths.size < 96)
628
+ paths.add(fuzzPath(random));
629
+ const candidates = [...paths];
630
+ for (let step = 0; step < 240; step++) {
631
+ const path = candidates[Math.floor(random() * candidates.length)];
632
+ const action = random();
633
+ if (action < 0.56) {
634
+ const entry = generatedEntry(seed * 1_000 + step);
635
+ store.set(path, entry);
636
+ expected.set(path, entry);
637
+ }
638
+ else if (action < 0.78) {
639
+ expect(store.delete(path), `seed ${seed}, delete ${JSON.stringify(path)}`).toBe(expected.delete(path));
640
+ }
641
+ else {
642
+ expect(store.has(path), `seed ${seed}, has ${JSON.stringify(path)}`).toBe(expected.has(path));
643
+ }
644
+ }
645
+ expect(store.size, `seed ${seed}, size`).toBe(expected.size);
646
+ expect([...store.keys()].sort(), `seed ${seed}, iterated keys`).toEqual([...expected.keys()].sort());
647
+ for (const [path, entry] of expected) {
648
+ expect(store.get(path), `seed ${seed}, get ${JSON.stringify(path)}`).toEqual(entry);
649
+ }
650
+ }
651
+ });
652
+ it("round-trips leaves with unpaired and paired surrogates exactly", () => {
653
+ const paths = ["notes/a\ud800", "notes/a\udc00b", "notes/a😀"];
654
+ const store = new JournalRowStore();
655
+ for (const [index, path] of paths.entries())
656
+ store.set(path, generatedEntry(index));
657
+ const keys = [...store.keys()];
658
+ for (const [index, path] of paths.entries()) {
659
+ expect(store.has(path)).toBe(true);
660
+ expect(keys[index]).toBe(path);
661
+ }
662
+ });
663
+ it("keeps byte-equal surrogate and replacement-character paths distinct", () => {
664
+ const surrogatePath = "notes/x\ud800";
665
+ const replacementPath = "notes/x�";
666
+ const surrogateEntry = generatedEntry(1);
667
+ const replacementEntry = generatedEntry(2);
668
+ const store = new JournalRowStore();
669
+ store.set(surrogatePath, surrogateEntry);
670
+ store.set(replacementPath, replacementEntry);
671
+ const keys = [...store.keys()];
672
+ expect(store.size).toBe(2);
673
+ expect(keys.some((path) => path === surrogatePath)).toBe(true);
674
+ expect(keys.some((path) => path === replacementPath)).toBe(true);
675
+ expect(store.get(surrogatePath)).toEqual(surrogateEntry);
676
+ expect(store.get(replacementPath)).toEqual(replacementEntry);
677
+ });
678
+ it("deletes only the intended byte-equal surrogate path", () => {
679
+ const surrogatePath = "notes/x\ud800";
680
+ const replacementPath = "notes/x�";
681
+ const surrogateEntry = generatedEntry(1);
682
+ const replacementEntry = generatedEntry(2);
683
+ const store = new JournalRowStore();
684
+ store.set(surrogatePath, surrogateEntry);
685
+ store.set(replacementPath, replacementEntry);
686
+ expect(store.delete(surrogatePath)).toBe(true);
687
+ expect(store.size).toBe(1);
688
+ expect(store.get(surrogatePath)).toBeUndefined();
689
+ expect(store.get(replacementPath)).toEqual(replacementEntry);
690
+ expect([...store.keys()]).toEqual([replacementPath]);
691
+ });
692
+ it("reports resident growth for 100,000 packed rows without making hardware a gate", () => {
693
+ const collector = globalThis.gc;
694
+ collector?.();
695
+ const before = process.memoryUsage().rss;
696
+ const store = new JournalRowStore(100_000);
697
+ for (let index = 0; index < 100_000; index++) {
698
+ store.set("sample/" + (index % 250) + "/file-" + index + ".md", {
699
+ hash: index.toString(16).padStart(64, "0"),
700
+ size: index * 12,
701
+ syncedAt: new Date(1_700_000_000_000 + index).toISOString(),
702
+ direction: index % 2 === 0 ? "up" : "down",
703
+ remoteEtag: index.toString(16).padStart(32, "0"),
704
+ mtimeMs: 1_700_000_000_000 + index,
705
+ ctimeMs: 1_700_000_100_000 + index,
706
+ });
707
+ }
708
+ store.drainDirtyLog();
709
+ globalThis.__packedJournalRowStoreBench = store;
710
+ collector?.();
711
+ const bytesPerRow = (process.memoryUsage().rss - before) / store.size;
712
+ process.stdout.write("packed journal resident bytes/row (" + (collector ? "gc" : "no gc") + "): " + bytesPerRow.toFixed(2) + "\\n");
713
+ expect(store.size).toBe(100_000);
714
+ });
715
+ it.each(["directory", "author"])("compacts and reloads a large %s table for HQSNAP4", (table) => {
716
+ const store = storeWithLargeStringTable(table);
717
+ const snapshot = store.toSnapshot();
718
+ const expectedDirIds = snapshot.dirIds.slice();
719
+ const expectedCreatedBySubs = snapshot.createdBySubs.slice();
720
+ const reloaded = JournalRowStore.fromSnapshot(snapshot);
721
+ const reloadedSnapshot = reloaded.toSnapshot();
722
+ expectLargeTableEntriesEqual(reloaded.entries(), store.entries());
723
+ expectLargeTableEqual("directories", reloadedSnapshot.directories, snapshot.directories);
724
+ expectLargeTableEqual("authors", reloadedSnapshot.authors, snapshot.authors);
725
+ expectLargeTableEqual("dirIds", reloadedSnapshot.dirIds, expectedDirIds);
726
+ expectLargeTableEqual("createdBySubs", reloadedSnapshot.createdBySubs, expectedCreatedBySubs);
727
+ });
728
+ });
729
+ //# sourceMappingURL=journal-row-store.test.js.map