@openclaw/fs-safe 0.17.0 → 0.18.0

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 (644) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/absolute-path.d.ts +0 -1
  3. package/dist/advanced.d.ts +0 -1
  4. package/dist/archive-crc32.d.ts +0 -1
  5. package/dist/archive-deadline.d.ts +0 -1
  6. package/dist/archive-durability.d.ts +0 -1
  7. package/dist/archive-entry.d.ts +0 -1
  8. package/dist/archive-errors.d.ts +0 -1
  9. package/dist/archive-gzip-tail.d.ts +0 -1
  10. package/dist/archive-input.d.ts +0 -1
  11. package/dist/archive-kind.d.ts +0 -1
  12. package/dist/archive-limits.d.ts +0 -1
  13. package/dist/archive-merge.d.ts +2 -4
  14. package/dist/archive-merge.js +14 -4
  15. package/dist/archive-native.d.ts +3 -15
  16. package/dist/archive-native.js +46 -71
  17. package/dist/archive-options.d.ts +7 -2
  18. package/dist/archive-parser-errors.d.ts +0 -1
  19. package/dist/archive-plan.d.ts +10 -1
  20. package/dist/archive-plan.js +31 -21
  21. package/dist/archive-policy.d.ts +0 -1
  22. package/dist/archive-read.d.ts +0 -1
  23. package/dist/archive-staging.d.ts +0 -1
  24. package/dist/archive-tar-inspect.d.ts +0 -1
  25. package/dist/archive-tar-stream.d.ts +0 -1
  26. package/dist/archive-tar-wasm.d.ts +0 -1
  27. package/dist/archive-tar.d.ts +0 -1
  28. package/dist/archive-zip-admission.d.ts +0 -1
  29. package/dist/archive-zip-count.d.ts +0 -1
  30. package/dist/archive-zip-directory.d.ts +0 -1
  31. package/dist/archive-zip-entry.d.ts +0 -1
  32. package/dist/archive-zip-integrity.d.ts +0 -1
  33. package/dist/archive-zip-loader.d.ts +0 -1
  34. package/dist/archive-zip-manifest.d.ts +0 -1
  35. package/dist/archive-zip-names.d.ts +0 -1
  36. package/dist/archive-zip-preflight.d.ts +0 -1
  37. package/dist/archive.d.ts +0 -1
  38. package/dist/archive.js +87 -164
  39. package/dist/async-lock.d.ts +0 -1
  40. package/dist/atomic.d.ts +0 -1
  41. package/dist/bounded-read-stream.d.ts +0 -1
  42. package/dist/bounded-read.d.ts +0 -1
  43. package/dist/byte-budget.d.ts +0 -1
  44. package/dist/byte-view.d.ts +0 -1
  45. package/dist/clone-metadata.d.ts +0 -1
  46. package/dist/config.d.ts +0 -1
  47. package/dist/containment.d.ts +0 -1
  48. package/dist/copy-file-input.d.ts +0 -1
  49. package/dist/copy-policy.d.ts +0 -1
  50. package/dist/copy-publication.d.ts +0 -1
  51. package/dist/copy-tree-portable.d.ts +0 -1
  52. package/dist/copy-tree-portable.js +9 -6
  53. package/dist/copy.d.ts +0 -1
  54. package/dist/copy.js +5 -5
  55. package/dist/create-directory.d.ts +0 -2
  56. package/dist/create-directory.js +3 -22
  57. package/dist/create-file-async.d.ts +0 -1
  58. package/dist/create-file.d.ts +0 -1
  59. package/dist/create-file.js +3 -14
  60. package/dist/create-owned-file.d.ts +0 -1
  61. package/dist/create.d.ts +1 -2
  62. package/dist/create.js +1 -1
  63. package/dist/creation-darwin.d.ts +0 -1
  64. package/dist/creation-file-state.d.ts +0 -1
  65. package/dist/creation-path.d.ts +2 -1
  66. package/dist/creation-path.js +12 -0
  67. package/dist/creation-permissions.d.ts +0 -1
  68. package/dist/creation-permissions.js +28 -38
  69. package/dist/deny-mutations.d.ts +2 -3
  70. package/dist/deny-mutations.js +55 -35
  71. package/dist/device-path.d.ts +0 -1
  72. package/dist/directory-durability.d.ts +0 -1
  73. package/dist/directory-entry-path.d.ts +0 -1
  74. package/dist/directory-guard.d.ts +2 -7
  75. package/dist/directory-guard.js +25 -56
  76. package/dist/directory-mode-node.d.ts +0 -1
  77. package/dist/directory-mode-owner.d.ts +0 -1
  78. package/dist/directory-receipt.d.ts +0 -1
  79. package/dist/durability.d.ts +0 -1
  80. package/dist/effective-uid.d.ts +0 -1
  81. package/dist/error-detail.d.ts +0 -1
  82. package/dist/errors.d.ts +0 -1
  83. package/dist/file-cleanup.d.ts +0 -1
  84. package/dist/file-contents.d.ts +0 -1
  85. package/dist/file-handle-transfer.d.ts +0 -1
  86. package/dist/file-hash.d.ts +0 -1
  87. package/dist/file-hash.js +170 -66
  88. package/dist/file-identity.d.ts +0 -1
  89. package/dist/file-lock-sync-acquisition.d.ts +22 -0
  90. package/dist/file-lock-sync-acquisition.js +98 -0
  91. package/dist/file-lock-sync-admission.d.ts +0 -2
  92. package/dist/file-lock-sync-admission.js +9 -48
  93. package/dist/file-lock-sync-root-acquire.d.ts +0 -1
  94. package/dist/file-lock-sync-root-acquire.js +32 -98
  95. package/dist/file-lock-sync-root-arbitration.d.ts +0 -1
  96. package/dist/file-lock-sync-root-held.d.ts +0 -1
  97. package/dist/file-lock-sync-root-io.d.ts +0 -1
  98. package/dist/file-lock-sync-root-mutation.d.ts +4 -5
  99. package/dist/file-lock-sync-root-mutation.js +7 -9
  100. package/dist/file-lock-sync-root-options.d.ts +0 -1
  101. package/dist/file-lock-sync-root-registration.d.ts +0 -1
  102. package/dist/file-lock-sync-root.d.ts +1 -2
  103. package/dist/file-lock-sync-root.js +14 -87
  104. package/dist/file-lock-sync-stale-admission.d.ts +2 -7
  105. package/dist/file-lock-sync-stale-admission.js +21 -23
  106. package/dist/file-lock-sync.d.ts +0 -1
  107. package/dist/file-lock-sync.js +38 -117
  108. package/dist/file-lock.d.ts +0 -1
  109. package/dist/file-observation.d.ts +0 -1
  110. package/dist/file-store-boundary.d.ts +0 -2
  111. package/dist/file-store-boundary.js +6 -26
  112. package/dist/file-store-copy-source.d.ts +1 -2
  113. package/dist/file-store-copy-source.js +1 -1
  114. package/dist/file-store-limit.d.ts +1 -2
  115. package/dist/file-store-limit.js +2 -3
  116. package/dist/file-store-path.d.ts +0 -1
  117. package/dist/file-store-prune.d.ts +0 -1
  118. package/dist/file-store-sync-directory.d.ts +0 -1
  119. package/dist/file-store-sync-directory.js +194 -231
  120. package/dist/file-store-sync-write.d.ts +0 -1
  121. package/dist/file-store-sync-write.js +16 -26
  122. package/dist/file-store.d.ts +0 -1
  123. package/dist/file-store.js +3 -4
  124. package/dist/file-sync.d.ts +0 -1
  125. package/dist/filename.d.ts +0 -1
  126. package/dist/filename.js +1 -7
  127. package/dist/fs.d.ts +0 -1
  128. package/dist/guarded-mkdir.d.ts +0 -1
  129. package/dist/guarded-mutation.d.ts +0 -7
  130. package/dist/guarded-mutation.js +6 -11
  131. package/dist/guest-dispatch-python.d.ts +0 -1
  132. package/dist/guest-dispatch-python.js +41 -90
  133. package/dist/guest-native-python.d.ts +0 -1
  134. package/dist/guest.d.ts +0 -1
  135. package/dist/home-dir.d.ts +0 -1
  136. package/dist/index.d.ts +0 -1
  137. package/dist/install-path.d.ts +0 -1
  138. package/dist/json-document-store.d.ts +0 -1
  139. package/dist/json-durable-queue-directory.d.ts +13 -1
  140. package/dist/json-durable-queue-directory.js +134 -0
  141. package/dist/json-durable-queue-ownership.d.ts +0 -1
  142. package/dist/json-durable-queue-ownership.js +42 -61
  143. package/dist/json-durable-queue-read.d.ts +0 -1
  144. package/dist/json-durable-queue-read.js +6 -6
  145. package/dist/json-durable-queue.d.ts +0 -1
  146. package/dist/json-durable-queue.js +7 -130
  147. package/dist/json-store.d.ts +0 -1
  148. package/dist/json-stringify.d.ts +0 -1
  149. package/dist/json.d.ts +0 -1
  150. package/dist/json.js +6 -15
  151. package/dist/local-file-access.d.ts +0 -1
  152. package/dist/local-file-access.js +3 -10
  153. package/dist/local-file-descriptor.d.ts +0 -1
  154. package/dist/local-roots.d.ts +0 -1
  155. package/dist/lock-config.d.ts +0 -1
  156. package/dist/move-path-cleanup.d.ts +0 -1
  157. package/dist/move-path-stage.d.ts +0 -1
  158. package/dist/move-path.d.ts +0 -1
  159. package/dist/mutation-authority.d.ts +0 -1
  160. package/dist/native-binding.d.ts +0 -1
  161. package/dist/native-config.d.ts +0 -1
  162. package/dist/native-directory-observation.d.ts +0 -1
  163. package/dist/native-fallback-warning.d.ts +0 -1
  164. package/dist/native-operations.d.ts +1 -5
  165. package/dist/native-operations.js +2 -6
  166. package/dist/native-parent-admission.d.ts +0 -1
  167. package/dist/native-pinned-write-windows.d.ts +0 -1
  168. package/dist/native-pinned-write.d.ts +0 -1
  169. package/dist/native-pinned-write.js +4 -10
  170. package/dist/native-policy-directory-observation.d.ts +0 -1
  171. package/dist/native-policy-parent-windows.d.ts +0 -1
  172. package/dist/native-rename-outcome.d.ts +0 -1
  173. package/dist/native-staged-file.d.ts +15 -3
  174. package/dist/native-staged-file.js +55 -63
  175. package/dist/native.d.ts +0 -1
  176. package/dist/opened-file-failure.d.ts +0 -1
  177. package/dist/opened-realpath.d.ts +0 -1
  178. package/dist/output.d.ts +0 -1
  179. package/dist/overwrite-file-handle.d.ts +0 -1
  180. package/dist/owner-dacl.d.ts +0 -1
  181. package/dist/path-case.d.ts +0 -1
  182. package/dist/path-policy.d.ts +0 -1
  183. package/dist/path-prefix.d.ts +0 -1
  184. package/dist/path-scope-lexical.d.ts +0 -1
  185. package/dist/path-segment-route.d.ts +0 -1
  186. package/dist/path-suffix-aliases.d.ts +0 -1
  187. package/dist/path.d.ts +0 -1
  188. package/dist/permission-exec.d.ts +0 -1
  189. package/dist/permission-exec.js +19 -25
  190. package/dist/permissions-public.d.ts +0 -1
  191. package/dist/permissions-windows.d.ts +2 -10
  192. package/dist/permissions-windows.js +10 -30
  193. package/dist/permissions.d.ts +0 -1
  194. package/dist/permissions.js +8 -16
  195. package/dist/pinned-mutation-admission.d.ts +0 -1
  196. package/dist/pinned-mutation-observation.d.ts +0 -1
  197. package/dist/pinned-mutation-shared-route.d.ts +0 -1
  198. package/dist/pinned-open.d.ts +1 -1
  199. package/dist/pinned-open.js +1 -1
  200. package/dist/pinned-operation.d.ts +0 -1
  201. package/dist/pinned-write-input.d.ts +0 -1
  202. package/dist/pinned-write-mode.d.ts +0 -1
  203. package/dist/pinned-write-staged.d.ts +0 -1
  204. package/dist/pinned-write-types.d.ts +9 -21
  205. package/dist/pinned-write.d.ts +0 -1
  206. package/dist/positional-read.d.ts +0 -1
  207. package/dist/private-directory.d.ts +0 -1
  208. package/dist/private-producer-handoff-sync.d.ts +0 -1
  209. package/dist/private-producer-handoff-sync.js +9 -51
  210. package/dist/private-producer-handoff.d.ts +20 -1
  211. package/dist/private-producer-handoff.js +69 -46
  212. package/dist/private-temp-workspace.d.ts +0 -1
  213. package/dist/private-temp-workspace.js +11 -36
  214. package/dist/publish-copy-stage.d.ts +0 -1
  215. package/dist/publish-file-failure.d.ts +0 -1
  216. package/dist/publish-file.d.ts +0 -1
  217. package/dist/read-open-flags.d.ts +0 -1
  218. package/dist/read-opened-file.d.ts +0 -1
  219. package/dist/realpath.d.ts +0 -1
  220. package/dist/recursive-mkdir-path.d.ts +0 -1
  221. package/dist/regular-file.d.ts +0 -1
  222. package/dist/regular-file.js +77 -139
  223. package/dist/replace-directory.d.ts +0 -1
  224. package/dist/replace-file-copy-fallback.d.ts +0 -1
  225. package/dist/replace-file-copy-fallback.js +14 -3
  226. package/dist/replace-file-copy-source.d.ts +0 -1
  227. package/dist/replace-file-copy-source.js +6 -1
  228. package/dist/replace-file-descriptor.d.ts +0 -1
  229. package/dist/replace-file-descriptor.js +6 -1
  230. package/dist/replace-file-mode.d.ts +0 -1
  231. package/dist/replace-file-rename-policy.d.ts +0 -1
  232. package/dist/replace-file-temp-owner.d.ts +12 -13
  233. package/dist/replace-file-temp-owner.js +66 -85
  234. package/dist/replace-file.d.ts +0 -1
  235. package/dist/retained-directory-replacement.d.ts +0 -1
  236. package/dist/root-boundary.d.ts +0 -1
  237. package/dist/root-context.d.ts +0 -1
  238. package/dist/root-create-input.d.ts +0 -1
  239. package/dist/root-directory-creation.d.ts +0 -1
  240. package/dist/root-directory-list.d.ts +0 -1
  241. package/dist/root-directory.d.ts +0 -1
  242. package/dist/root-entries.d.ts +0 -1
  243. package/dist/root-errors.d.ts +0 -1
  244. package/dist/root-file-final-admission.d.ts +0 -1
  245. package/dist/root-file.d.ts +0 -1
  246. package/dist/root-impl.d.ts +2 -10
  247. package/dist/root-impl.js +114 -91
  248. package/dist/root-move-noreplace.d.ts +0 -1
  249. package/dist/root-move-preflight.d.ts +0 -1
  250. package/dist/root-observed-path.d.ts +0 -1
  251. package/dist/root-options.d.ts +0 -1
  252. package/dist/root-path-errors.d.ts +0 -1
  253. package/dist/root-path-existing.d.ts +3 -1
  254. package/dist/root-path-existing.js +39 -18
  255. package/dist/root-path-observation.d.ts +0 -1
  256. package/dist/root-path-stat.d.ts +0 -1
  257. package/dist/root-path.d.ts +0 -1
  258. package/dist/root-path.js +60 -188
  259. package/dist/root-paths-lexical.d.ts +0 -1
  260. package/dist/root-paths.d.ts +0 -1
  261. package/dist/root-read-admission.d.ts +0 -1
  262. package/dist/root-read-admission.js +31 -44
  263. package/dist/root-remove-identity.d.ts +0 -1
  264. package/dist/root-remove-receipt.d.ts +0 -1
  265. package/dist/root-remove.d.ts +0 -1
  266. package/dist/root-symlink-policy.d.ts +0 -1
  267. package/dist/root-walk.d.ts +0 -1
  268. package/dist/root-write-admission.d.ts +0 -1
  269. package/dist/root-write-compatibility.d.ts +0 -1
  270. package/dist/root-write-complete-parent.d.ts +0 -1
  271. package/dist/root-write-lock-binding.d.ts +0 -1
  272. package/dist/root-write-mode.d.ts +0 -1
  273. package/dist/root-write-publication.d.ts +0 -1
  274. package/dist/root-write-verification.d.ts +0 -1
  275. package/dist/root.d.ts +0 -1
  276. package/dist/safe-path-segment.d.ts +1 -2
  277. package/dist/safe-path-segment.js +2 -5
  278. package/dist/secret-file.d.ts +0 -1
  279. package/dist/secret-file.js +7 -17
  280. package/dist/secret-read-async.d.ts +0 -1
  281. package/dist/secret-read-async.js +5 -5
  282. package/dist/secret-read-policy.d.ts +0 -1
  283. package/dist/secret.d.ts +0 -1
  284. package/dist/secure-file-windows.d.ts +0 -6
  285. package/dist/secure-file-windows.js +13 -28
  286. package/dist/secure-file.d.ts +0 -1
  287. package/dist/secure-file.js +9 -9
  288. package/dist/secure-temp-dir.d.ts +0 -1
  289. package/dist/secure-temp-repair.d.ts +0 -1
  290. package/dist/sibling-staged-file.d.ts +0 -1
  291. package/dist/sibling-staged-file.js +32 -39
  292. package/dist/sibling-temp.d.ts +0 -1
  293. package/dist/sidecar-lock-acquire.d.ts +1 -2
  294. package/dist/sidecar-lock-acquire.js +31 -52
  295. package/dist/sidecar-lock-admission-context.d.ts +0 -1
  296. package/dist/sidecar-lock-admission-parser.d.ts +0 -1
  297. package/dist/sidecar-lock-admission.d.ts +1 -5
  298. package/dist/sidecar-lock-admission.js +1 -7
  299. package/dist/sidecar-lock-handle.d.ts +0 -1
  300. package/dist/sidecar-lock-policy.d.ts +3 -1
  301. package/dist/sidecar-lock-policy.js +16 -0
  302. package/dist/sidecar-lock-reclaim.d.ts +0 -1
  303. package/dist/sidecar-lock-registration.d.ts +13 -0
  304. package/dist/sidecar-lock-registration.js +47 -0
  305. package/dist/sidecar-lock-root.d.ts +0 -1
  306. package/dist/sidecar-lock-stale-admission.d.ts +0 -1
  307. package/dist/sidecar-lock-target.d.ts +0 -1
  308. package/dist/sidecar-lock-types.d.ts +0 -1
  309. package/dist/sidecar-lock.d.ts +0 -1
  310. package/dist/sidecar-lock.js +16 -83
  311. package/dist/staged-directory.d.ts +0 -1
  312. package/dist/staged-file-settlement.d.ts +0 -1
  313. package/dist/staged-file-types.d.ts +0 -1
  314. package/dist/standalone-publication-path.d.ts +0 -1
  315. package/dist/stat-observation.d.ts +0 -1
  316. package/dist/store.d.ts +0 -1
  317. package/dist/strict-file-identity.d.ts +0 -1
  318. package/dist/string-coerce.d.ts +0 -1
  319. package/dist/suppressed-error.d.ts +0 -1
  320. package/dist/symlink-parents.d.ts +0 -1
  321. package/dist/temp-cleanup.d.ts +0 -1
  322. package/dist/temp-target.d.ts +0 -1
  323. package/dist/temp-target.js +7 -46
  324. package/dist/temp-workspace-admission.d.ts +0 -8
  325. package/dist/temp-workspace-admission.js +0 -4
  326. package/dist/temp-workspace-child-admission.d.ts +0 -4
  327. package/dist/temp-workspace-child-admission.js +0 -12
  328. package/dist/temp-workspace-descriptor.d.ts +0 -6
  329. package/dist/temp-workspace-descriptor.js +0 -2
  330. package/dist/temp-workspace-identity.d.ts +0 -1
  331. package/dist/temp-workspace-owner.d.ts +1 -1
  332. package/dist/temp-workspace-owner.js +45 -22
  333. package/dist/temp-workspace-permissions.d.ts +0 -1
  334. package/dist/temp-workspace-types.d.ts +0 -1
  335. package/dist/temp.d.ts +0 -1
  336. package/dist/test-hooks.d.ts +0 -1
  337. package/dist/text-atomic.d.ts +0 -1
  338. package/dist/timing.d.ts +0 -1
  339. package/dist/trash.d.ts +0 -1
  340. package/dist/types.d.ts +0 -1
  341. package/dist/unicode-path.d.ts +0 -1
  342. package/dist/walk.d.ts +0 -1
  343. package/dist/windows-command.d.ts +0 -1
  344. package/dist/windows-owner.d.ts +0 -1
  345. package/dist/windows-owner.js +4 -1
  346. package/dist/windows-path-alias.d.ts +0 -1
  347. package/dist/windows-path-alias.js +7 -43
  348. package/dist/windows-path-syntax.d.ts +5 -0
  349. package/dist/windows-path-syntax.js +21 -0
  350. package/dist/windows-security-command.d.ts +0 -1
  351. package/dist/windows-security-facts.d.ts +0 -1
  352. package/dist/write-file-handle.d.ts +0 -1
  353. package/dist/write-open-flags.d.ts +0 -1
  354. package/dist/write-queue.d.ts +0 -1
  355. package/docs/atomic.md +14 -0
  356. package/docs/copy.md +2 -0
  357. package/docs/mutation-policy-proof.md +6 -4
  358. package/docs/permissions.md +6 -0
  359. package/docs/root.md +10 -0
  360. package/docs/secret-file.md +4 -0
  361. package/docs/writing.md +9 -3
  362. package/package.json +8 -9
  363. package/dist/absolute-path.d.ts.map +0 -1
  364. package/dist/advanced.d.ts.map +0 -1
  365. package/dist/archive-crc32.d.ts.map +0 -1
  366. package/dist/archive-deadline.d.ts.map +0 -1
  367. package/dist/archive-durability.d.ts.map +0 -1
  368. package/dist/archive-entry.d.ts.map +0 -1
  369. package/dist/archive-errors.d.ts.map +0 -1
  370. package/dist/archive-gzip-tail.d.ts.map +0 -1
  371. package/dist/archive-input.d.ts.map +0 -1
  372. package/dist/archive-kind.d.ts.map +0 -1
  373. package/dist/archive-limits.d.ts.map +0 -1
  374. package/dist/archive-merge.d.ts.map +0 -1
  375. package/dist/archive-native.d.ts.map +0 -1
  376. package/dist/archive-options.d.ts.map +0 -1
  377. package/dist/archive-parser-errors.d.ts.map +0 -1
  378. package/dist/archive-plan.d.ts.map +0 -1
  379. package/dist/archive-policy.d.ts.map +0 -1
  380. package/dist/archive-read.d.ts.map +0 -1
  381. package/dist/archive-staging.d.ts.map +0 -1
  382. package/dist/archive-tar-inspect.d.ts.map +0 -1
  383. package/dist/archive-tar-stream.d.ts.map +0 -1
  384. package/dist/archive-tar-wasm.d.ts.map +0 -1
  385. package/dist/archive-tar.d.ts.map +0 -1
  386. package/dist/archive-zip-admission.d.ts.map +0 -1
  387. package/dist/archive-zip-count.d.ts.map +0 -1
  388. package/dist/archive-zip-directory.d.ts.map +0 -1
  389. package/dist/archive-zip-entry.d.ts.map +0 -1
  390. package/dist/archive-zip-integrity.d.ts.map +0 -1
  391. package/dist/archive-zip-loader.d.ts.map +0 -1
  392. package/dist/archive-zip-manifest.d.ts.map +0 -1
  393. package/dist/archive-zip-names.d.ts.map +0 -1
  394. package/dist/archive-zip-preflight.d.ts.map +0 -1
  395. package/dist/archive.d.ts.map +0 -1
  396. package/dist/async-lock.d.ts.map +0 -1
  397. package/dist/atomic.d.ts.map +0 -1
  398. package/dist/bounded-read-stream.d.ts.map +0 -1
  399. package/dist/bounded-read.d.ts.map +0 -1
  400. package/dist/byte-budget.d.ts.map +0 -1
  401. package/dist/byte-view.d.ts.map +0 -1
  402. package/dist/clone-metadata.d.ts.map +0 -1
  403. package/dist/config.d.ts.map +0 -1
  404. package/dist/containment.d.ts.map +0 -1
  405. package/dist/copy-file-input.d.ts.map +0 -1
  406. package/dist/copy-policy.d.ts.map +0 -1
  407. package/dist/copy-publication.d.ts.map +0 -1
  408. package/dist/copy-tree-portable.d.ts.map +0 -1
  409. package/dist/copy.d.ts.map +0 -1
  410. package/dist/create-directory.d.ts.map +0 -1
  411. package/dist/create-file-async.d.ts.map +0 -1
  412. package/dist/create-file.d.ts.map +0 -1
  413. package/dist/create-owned-file.d.ts.map +0 -1
  414. package/dist/create.d.ts.map +0 -1
  415. package/dist/creation-darwin.d.ts.map +0 -1
  416. package/dist/creation-file-state.d.ts.map +0 -1
  417. package/dist/creation-path.d.ts.map +0 -1
  418. package/dist/creation-permissions.d.ts.map +0 -1
  419. package/dist/deny-mutations.d.ts.map +0 -1
  420. package/dist/device-path.d.ts.map +0 -1
  421. package/dist/directory-durability.d.ts.map +0 -1
  422. package/dist/directory-entry-path.d.ts.map +0 -1
  423. package/dist/directory-guard.d.ts.map +0 -1
  424. package/dist/directory-mode-node.d.ts.map +0 -1
  425. package/dist/directory-mode-owner.d.ts.map +0 -1
  426. package/dist/directory-receipt.d.ts.map +0 -1
  427. package/dist/durability.d.ts.map +0 -1
  428. package/dist/effective-uid.d.ts.map +0 -1
  429. package/dist/error-detail.d.ts.map +0 -1
  430. package/dist/errors.d.ts.map +0 -1
  431. package/dist/file-cleanup.d.ts.map +0 -1
  432. package/dist/file-contents.d.ts.map +0 -1
  433. package/dist/file-handle-transfer.d.ts.map +0 -1
  434. package/dist/file-hash.d.ts.map +0 -1
  435. package/dist/file-identity.d.ts.map +0 -1
  436. package/dist/file-lock-sync-admission.d.ts.map +0 -1
  437. package/dist/file-lock-sync-root-acquire.d.ts.map +0 -1
  438. package/dist/file-lock-sync-root-arbitration.d.ts.map +0 -1
  439. package/dist/file-lock-sync-root-held.d.ts.map +0 -1
  440. package/dist/file-lock-sync-root-io.d.ts.map +0 -1
  441. package/dist/file-lock-sync-root-mutation.d.ts.map +0 -1
  442. package/dist/file-lock-sync-root-options.d.ts.map +0 -1
  443. package/dist/file-lock-sync-root-registration.d.ts.map +0 -1
  444. package/dist/file-lock-sync-root.d.ts.map +0 -1
  445. package/dist/file-lock-sync-stale-admission.d.ts.map +0 -1
  446. package/dist/file-lock-sync.d.ts.map +0 -1
  447. package/dist/file-lock.d.ts.map +0 -1
  448. package/dist/file-observation.d.ts.map +0 -1
  449. package/dist/file-store-boundary.d.ts.map +0 -1
  450. package/dist/file-store-copy-source.d.ts.map +0 -1
  451. package/dist/file-store-limit.d.ts.map +0 -1
  452. package/dist/file-store-path.d.ts.map +0 -1
  453. package/dist/file-store-prune.d.ts.map +0 -1
  454. package/dist/file-store-sync-directory.d.ts.map +0 -1
  455. package/dist/file-store-sync-write.d.ts.map +0 -1
  456. package/dist/file-store.d.ts.map +0 -1
  457. package/dist/file-sync.d.ts.map +0 -1
  458. package/dist/filename.d.ts.map +0 -1
  459. package/dist/fs.d.ts.map +0 -1
  460. package/dist/guarded-mkdir.d.ts.map +0 -1
  461. package/dist/guarded-mutation.d.ts.map +0 -1
  462. package/dist/guest-dispatch-python.d.ts.map +0 -1
  463. package/dist/guest-native-python.d.ts.map +0 -1
  464. package/dist/guest.d.ts.map +0 -1
  465. package/dist/home-dir.d.ts.map +0 -1
  466. package/dist/index.d.ts.map +0 -1
  467. package/dist/install-path.d.ts.map +0 -1
  468. package/dist/json-document-store.d.ts.map +0 -1
  469. package/dist/json-durable-queue-directory.d.ts.map +0 -1
  470. package/dist/json-durable-queue-ownership.d.ts.map +0 -1
  471. package/dist/json-durable-queue-paths.d.ts +0 -11
  472. package/dist/json-durable-queue-paths.d.ts.map +0 -1
  473. package/dist/json-durable-queue-paths.js +0 -20
  474. package/dist/json-durable-queue-read.d.ts.map +0 -1
  475. package/dist/json-durable-queue.d.ts.map +0 -1
  476. package/dist/json-store.d.ts.map +0 -1
  477. package/dist/json-stringify.d.ts.map +0 -1
  478. package/dist/json.d.ts.map +0 -1
  479. package/dist/local-file-access.d.ts.map +0 -1
  480. package/dist/local-file-descriptor.d.ts.map +0 -1
  481. package/dist/local-roots.d.ts.map +0 -1
  482. package/dist/lock-config.d.ts.map +0 -1
  483. package/dist/move-path-cleanup.d.ts.map +0 -1
  484. package/dist/move-path-stage.d.ts.map +0 -1
  485. package/dist/move-path.d.ts.map +0 -1
  486. package/dist/mutation-authority.d.ts.map +0 -1
  487. package/dist/native-binding.d.ts.map +0 -1
  488. package/dist/native-config.d.ts.map +0 -1
  489. package/dist/native-directory-observation.d.ts.map +0 -1
  490. package/dist/native-fallback-warning.d.ts.map +0 -1
  491. package/dist/native-operations.d.ts.map +0 -1
  492. package/dist/native-parent-admission.d.ts.map +0 -1
  493. package/dist/native-pinned-write-windows.d.ts.map +0 -1
  494. package/dist/native-pinned-write.d.ts.map +0 -1
  495. package/dist/native-policy-directory-observation.d.ts.map +0 -1
  496. package/dist/native-policy-parent-windows.d.ts.map +0 -1
  497. package/dist/native-rename-outcome.d.ts.map +0 -1
  498. package/dist/native-staged-file.d.ts.map +0 -1
  499. package/dist/native.d.ts.map +0 -1
  500. package/dist/opened-file-failure.d.ts.map +0 -1
  501. package/dist/opened-realpath.d.ts.map +0 -1
  502. package/dist/output.d.ts.map +0 -1
  503. package/dist/overwrite-file-handle.d.ts.map +0 -1
  504. package/dist/owner-dacl.d.ts.map +0 -1
  505. package/dist/path-case.d.ts.map +0 -1
  506. package/dist/path-policy.d.ts.map +0 -1
  507. package/dist/path-prefix.d.ts.map +0 -1
  508. package/dist/path-scope-lexical.d.ts.map +0 -1
  509. package/dist/path-segment-route.d.ts.map +0 -1
  510. package/dist/path-suffix-aliases.d.ts.map +0 -1
  511. package/dist/path.d.ts.map +0 -1
  512. package/dist/permission-exec.d.ts.map +0 -1
  513. package/dist/permissions-public.d.ts.map +0 -1
  514. package/dist/permissions-windows.d.ts.map +0 -1
  515. package/dist/permissions.d.ts.map +0 -1
  516. package/dist/pinned-mutation-admission.d.ts.map +0 -1
  517. package/dist/pinned-mutation-observation.d.ts.map +0 -1
  518. package/dist/pinned-mutation-shared-route.d.ts.map +0 -1
  519. package/dist/pinned-open.d.ts.map +0 -1
  520. package/dist/pinned-operation.d.ts.map +0 -1
  521. package/dist/pinned-write-input.d.ts.map +0 -1
  522. package/dist/pinned-write-mode.d.ts.map +0 -1
  523. package/dist/pinned-write-staged.d.ts.map +0 -1
  524. package/dist/pinned-write-types.d.ts.map +0 -1
  525. package/dist/pinned-write.d.ts.map +0 -1
  526. package/dist/positional-read.d.ts.map +0 -1
  527. package/dist/private-directory.d.ts.map +0 -1
  528. package/dist/private-producer-handoff-sync.d.ts.map +0 -1
  529. package/dist/private-producer-handoff.d.ts.map +0 -1
  530. package/dist/private-temp-workspace.d.ts.map +0 -1
  531. package/dist/publish-copy-stage.d.ts.map +0 -1
  532. package/dist/publish-file-failure.d.ts.map +0 -1
  533. package/dist/publish-file.d.ts.map +0 -1
  534. package/dist/read-open-flags.d.ts.map +0 -1
  535. package/dist/read-opened-file.d.ts.map +0 -1
  536. package/dist/realpath.d.ts.map +0 -1
  537. package/dist/recursive-mkdir-path.d.ts.map +0 -1
  538. package/dist/regular-file.d.ts.map +0 -1
  539. package/dist/replace-directory.d.ts.map +0 -1
  540. package/dist/replace-file-copy-fallback.d.ts.map +0 -1
  541. package/dist/replace-file-copy-source.d.ts.map +0 -1
  542. package/dist/replace-file-descriptor.d.ts.map +0 -1
  543. package/dist/replace-file-mode.d.ts.map +0 -1
  544. package/dist/replace-file-rename-policy.d.ts.map +0 -1
  545. package/dist/replace-file-temp-owner.d.ts.map +0 -1
  546. package/dist/replace-file.d.ts.map +0 -1
  547. package/dist/retained-directory-replacement.d.ts.map +0 -1
  548. package/dist/root-boundary.d.ts.map +0 -1
  549. package/dist/root-context.d.ts.map +0 -1
  550. package/dist/root-create-input.d.ts.map +0 -1
  551. package/dist/root-directory-creation.d.ts.map +0 -1
  552. package/dist/root-directory-list.d.ts.map +0 -1
  553. package/dist/root-directory.d.ts.map +0 -1
  554. package/dist/root-entries.d.ts.map +0 -1
  555. package/dist/root-errors.d.ts.map +0 -1
  556. package/dist/root-file-final-admission.d.ts.map +0 -1
  557. package/dist/root-file.d.ts.map +0 -1
  558. package/dist/root-impl.d.ts.map +0 -1
  559. package/dist/root-move-noreplace.d.ts.map +0 -1
  560. package/dist/root-move-preflight.d.ts.map +0 -1
  561. package/dist/root-observed-path.d.ts.map +0 -1
  562. package/dist/root-options.d.ts.map +0 -1
  563. package/dist/root-path-errors.d.ts.map +0 -1
  564. package/dist/root-path-existing.d.ts.map +0 -1
  565. package/dist/root-path-observation.d.ts.map +0 -1
  566. package/dist/root-path-stat.d.ts.map +0 -1
  567. package/dist/root-path-symlink.d.ts +0 -7
  568. package/dist/root-path-symlink.d.ts.map +0 -1
  569. package/dist/root-path-symlink.js +0 -55
  570. package/dist/root-path.d.ts.map +0 -1
  571. package/dist/root-paths-lexical.d.ts.map +0 -1
  572. package/dist/root-paths.d.ts.map +0 -1
  573. package/dist/root-read-admission.d.ts.map +0 -1
  574. package/dist/root-remove-identity.d.ts.map +0 -1
  575. package/dist/root-remove-receipt.d.ts.map +0 -1
  576. package/dist/root-remove.d.ts.map +0 -1
  577. package/dist/root-symlink-policy.d.ts.map +0 -1
  578. package/dist/root-walk.d.ts.map +0 -1
  579. package/dist/root-write-admission.d.ts.map +0 -1
  580. package/dist/root-write-compatibility.d.ts.map +0 -1
  581. package/dist/root-write-complete-parent.d.ts.map +0 -1
  582. package/dist/root-write-lock-binding.d.ts.map +0 -1
  583. package/dist/root-write-mode.d.ts.map +0 -1
  584. package/dist/root-write-publication.d.ts.map +0 -1
  585. package/dist/root-write-verification.d.ts.map +0 -1
  586. package/dist/root.d.ts.map +0 -1
  587. package/dist/safe-path-segment.d.ts.map +0 -1
  588. package/dist/secret-file.d.ts.map +0 -1
  589. package/dist/secret-read-async.d.ts.map +0 -1
  590. package/dist/secret-read-policy.d.ts.map +0 -1
  591. package/dist/secret.d.ts.map +0 -1
  592. package/dist/secure-file-windows.d.ts.map +0 -1
  593. package/dist/secure-file.d.ts.map +0 -1
  594. package/dist/secure-temp-dir.d.ts.map +0 -1
  595. package/dist/secure-temp-repair.d.ts.map +0 -1
  596. package/dist/sibling-staged-file.d.ts.map +0 -1
  597. package/dist/sibling-temp.d.ts.map +0 -1
  598. package/dist/sidecar-lock-acquire.d.ts.map +0 -1
  599. package/dist/sidecar-lock-admission-context.d.ts.map +0 -1
  600. package/dist/sidecar-lock-admission-parser.d.ts.map +0 -1
  601. package/dist/sidecar-lock-admission.d.ts.map +0 -1
  602. package/dist/sidecar-lock-handle.d.ts.map +0 -1
  603. package/dist/sidecar-lock-policy.d.ts.map +0 -1
  604. package/dist/sidecar-lock-reclaim.d.ts.map +0 -1
  605. package/dist/sidecar-lock-root.d.ts.map +0 -1
  606. package/dist/sidecar-lock-stale-admission.d.ts.map +0 -1
  607. package/dist/sidecar-lock-target.d.ts.map +0 -1
  608. package/dist/sidecar-lock-types.d.ts.map +0 -1
  609. package/dist/sidecar-lock.d.ts.map +0 -1
  610. package/dist/staged-directory.d.ts.map +0 -1
  611. package/dist/staged-file-settlement.d.ts.map +0 -1
  612. package/dist/staged-file-types.d.ts.map +0 -1
  613. package/dist/standalone-publication-path.d.ts.map +0 -1
  614. package/dist/stat-observation.d.ts.map +0 -1
  615. package/dist/store.d.ts.map +0 -1
  616. package/dist/strict-file-identity.d.ts.map +0 -1
  617. package/dist/string-coerce.d.ts.map +0 -1
  618. package/dist/suppressed-error.d.ts.map +0 -1
  619. package/dist/symlink-parents.d.ts.map +0 -1
  620. package/dist/temp-cleanup.d.ts.map +0 -1
  621. package/dist/temp-target.d.ts.map +0 -1
  622. package/dist/temp-workspace-admission.d.ts.map +0 -1
  623. package/dist/temp-workspace-child-admission.d.ts.map +0 -1
  624. package/dist/temp-workspace-descriptor.d.ts.map +0 -1
  625. package/dist/temp-workspace-identity.d.ts.map +0 -1
  626. package/dist/temp-workspace-owner.d.ts.map +0 -1
  627. package/dist/temp-workspace-permissions.d.ts.map +0 -1
  628. package/dist/temp-workspace-types.d.ts.map +0 -1
  629. package/dist/temp.d.ts.map +0 -1
  630. package/dist/test-hooks.d.ts.map +0 -1
  631. package/dist/text-atomic.d.ts.map +0 -1
  632. package/dist/timing.d.ts.map +0 -1
  633. package/dist/trash.d.ts.map +0 -1
  634. package/dist/types.d.ts.map +0 -1
  635. package/dist/unicode-path.d.ts.map +0 -1
  636. package/dist/walk.d.ts.map +0 -1
  637. package/dist/windows-command.d.ts.map +0 -1
  638. package/dist/windows-owner.d.ts.map +0 -1
  639. package/dist/windows-path-alias.d.ts.map +0 -1
  640. package/dist/windows-security-command.d.ts.map +0 -1
  641. package/dist/windows-security-facts.d.ts.map +0 -1
  642. package/dist/write-file-handle.d.ts.map +0 -1
  643. package/dist/write-open-flags.d.ts.map +0 -1
  644. package/dist/write-queue.d.ts.map +0 -1
@@ -0,0 +1,47 @@
1
+ /** Preserve the legacy, first-registration-wins protocol across package copies. */
2
+ export function ensureSidecarLockCleanupRegistered(keys, cleanup, marker) {
3
+ const state = globalThis;
4
+ if (state[keys.registered])
5
+ return state[keys.registered];
6
+ // process.on emits newListener synchronously; reentry cannot wait for it.
7
+ if (state[keys.registering])
8
+ throw keys.reentryError();
9
+ const registration = {};
10
+ const commit = () => {
11
+ state[keys.handler] = cleanup;
12
+ if (keys.retainAware)
13
+ state[keys.retainAware] = true;
14
+ state[keys.registered] = marker;
15
+ };
16
+ state[keys.registering] = registration;
17
+ try {
18
+ process.on(keys.event, cleanup);
19
+ commit();
20
+ return marker;
21
+ }
22
+ catch (error) {
23
+ if (process.listeners(keys.event).includes(cleanup)) {
24
+ try {
25
+ process.off(keys.event, cleanup);
26
+ }
27
+ catch {
28
+ // Reconcile the marker with the actual listener below.
29
+ }
30
+ }
31
+ if (process.listeners(keys.event).includes(cleanup)) {
32
+ commit();
33
+ }
34
+ else {
35
+ if (state[keys.handler] === cleanup)
36
+ delete state[keys.handler];
37
+ // Only the before-exit lifecycle has an individually owned marker.
38
+ if (marker !== true && state[keys.registered] === marker)
39
+ delete state[keys.registered];
40
+ }
41
+ throw error;
42
+ }
43
+ finally {
44
+ if (state[keys.registering] === registration)
45
+ delete state[keys.registering];
46
+ }
47
+ }
@@ -1,3 +1,2 @@
1
1
  import type { OpenResult, Root } from "./root-impl.js";
2
2
  export declare function openSidecarRoot(lockRoot: Root, relative: string, discardObservation?: "unlinked" | "changed", onOpenFailure?: (error: unknown) => void): Promise<OpenResult | null>;
3
- //# sourceMappingURL=sidecar-lock-root.d.ts.map
@@ -36,4 +36,3 @@ export declare function handleStaleSidecarAdmission<TPayload extends Record<stri
36
36
  waitForRetry(): Promise<void>;
37
37
  }): Promise<void>;
38
38
  export {};
39
- //# sourceMappingURL=sidecar-lock-stale-admission.d.ts.map
@@ -5,4 +5,3 @@ export declare function resolveSidecarLockPaths(targetPath: string, explicitLock
5
5
  lockPath: string;
6
6
  normalizedTargetPath: string;
7
7
  }>;
8
- //# sourceMappingURL=sidecar-lock-target.d.ts.map
@@ -60,4 +60,3 @@ export type SidecarLockHeldEntry = {
60
60
  export type WithSidecarLockOptions<TPayload extends Record<string, unknown>> = Omit<SidecarLockAcquireOptions<TPayload>, "targetPath"> & {
61
61
  managerKey?: string;
62
62
  };
63
- //# sourceMappingURL=sidecar-lock-types.d.ts.map
@@ -11,4 +11,3 @@ export declare function createSidecarLockManager(key: string): {
11
11
  heldEntries: () => SidecarLockHeldEntry[];
12
12
  };
13
13
  export declare function withSidecarLock<T, TPayload extends Record<string, unknown>>(targetPath: string, options: WithSidecarLockOptions<TPayload>, fn: () => Promise<T>): Promise<T>;
14
- //# sourceMappingURL=sidecar-lock.d.ts.map
@@ -5,6 +5,7 @@ import { removeSidecarLockIfUnchanged, sidecarLockSnapshotMatches, } from "./sid
5
5
  import { acquireSidecarLock } from "./sidecar-lock-acquire.js";
6
6
  import { createHeldSidecarLockHandle, stopSidecarLockMonitoring } from "./sidecar-lock-handle.js";
7
7
  import { createSuppressedError } from "./suppressed-error.js";
8
+ import { ensureSidecarLockCleanupRegistered } from "./sidecar-lock-registration.js";
8
9
  const GLOBAL_STATE_KEY = Symbol.for("fsSafe.sidecarLockManagers");
9
10
  const GLOBAL_CLEANUP_KEY = Symbol.for("fsSafe.sidecarLockCleanupRegistered");
10
11
  const GLOBAL_CLEANUP_HANDLER_KEY = Symbol.for("fsSafe.sidecarLockCleanupHandler");
@@ -118,51 +119,19 @@ function releaseAllLocksSync(state, options) {
118
119
  releaseAllReclaimGuardsSync(state);
119
120
  }
120
121
  function ensureGlobalExitCleanupRegistered() {
121
- const globalWithCleanup = globalThis;
122
- if (globalWithCleanup[GLOBAL_CLEANUP_KEY])
123
- return;
124
- if (globalWithCleanup[GLOBAL_CLEANUP_REGISTRATION_KEY]) {
125
- throw new FsSafeError("helper-unavailable", "sidecar lock exit cleanup registration is already in progress");
126
- }
127
- const registration = {};
128
122
  const cleanup = () => {
129
123
  for (const state of getGlobalManagers().values()) {
130
124
  releaseAllLocksSync(state, { preserveRetained: true });
131
125
  }
132
126
  };
133
- globalWithCleanup[GLOBAL_CLEANUP_REGISTRATION_KEY] = registration;
134
- try {
135
- process.on("exit", cleanup);
136
- globalWithCleanup[GLOBAL_CLEANUP_HANDLER_KEY] = cleanup;
137
- globalWithCleanup[GLOBAL_RETAIN_AWARE_KEY] = true;
138
- globalWithCleanup[GLOBAL_CLEANUP_KEY] = true;
139
- }
140
- catch (error) {
141
- if (process.listeners("exit").includes(cleanup)) {
142
- try {
143
- process.off("exit", cleanup);
144
- }
145
- catch {
146
- // Reconcile the marker with the actual listener below.
147
- }
148
- }
149
- if (process.listeners("exit").includes(cleanup)) {
150
- globalWithCleanup[GLOBAL_CLEANUP_HANDLER_KEY] = cleanup;
151
- globalWithCleanup[GLOBAL_RETAIN_AWARE_KEY] = true;
152
- globalWithCleanup[GLOBAL_CLEANUP_KEY] = true;
153
- }
154
- else {
155
- if (globalWithCleanup[GLOBAL_CLEANUP_HANDLER_KEY] === cleanup) {
156
- delete globalWithCleanup[GLOBAL_CLEANUP_HANDLER_KEY];
157
- }
158
- }
159
- throw error;
160
- }
161
- finally {
162
- if (globalWithCleanup[GLOBAL_CLEANUP_REGISTRATION_KEY] === registration) {
163
- delete globalWithCleanup[GLOBAL_CLEANUP_REGISTRATION_KEY];
164
- }
165
- }
127
+ ensureSidecarLockCleanupRegistered({
128
+ event: "exit",
129
+ registered: GLOBAL_CLEANUP_KEY,
130
+ registering: GLOBAL_CLEANUP_REGISTRATION_KEY,
131
+ handler: GLOBAL_CLEANUP_HANDLER_KEY,
132
+ retainAware: GLOBAL_RETAIN_AWARE_KEY,
133
+ reentryError: () => new FsSafeError("helper-unavailable", "sidecar lock exit cleanup registration is already in progress"),
134
+ }, cleanup, true);
166
135
  }
167
136
  /** True when a retain-unaware package copy registered the process-exit handlers first. */
168
137
  export function exitCleanupCannotRetain() {
@@ -170,16 +139,8 @@ export function exitCleanupCannotRetain() {
170
139
  return globalWithCleanup[GLOBAL_CLEANUP_KEY] === true && globalWithCleanup[GLOBAL_RETAIN_AWARE_KEY] !== true;
171
140
  }
172
141
  function ensureGlobalBeforeExitCleanupRegistered() {
173
- const globalWithCleanup = globalThis;
174
- if (globalWithCleanup[GLOBAL_BEFORE_EXIT_KEY]) {
175
- return globalWithCleanup[GLOBAL_BEFORE_EXIT_KEY];
176
- }
177
- if (globalWithCleanup[GLOBAL_BEFORE_EXIT_REGISTRATION_KEY]) {
178
- throw new FsSafeError("helper-unavailable", "sidecar lock before-exit cleanup registration is already in progress");
179
- }
180
142
  // Independent of the exit registration, which an older package copy may own.
181
143
  const lifecycle = { armed: false };
182
- const registration = {};
183
144
  const cleanup = () => {
184
145
  if (!lifecycle.armed)
185
146
  return;
@@ -193,41 +154,13 @@ function ensureGlobalBeforeExitCleanupRegistered() {
193
154
  }
194
155
  }
195
156
  };
196
- globalWithCleanup[GLOBAL_BEFORE_EXIT_REGISTRATION_KEY] = registration;
197
- try {
198
- process.on("beforeExit", cleanup);
199
- globalWithCleanup[GLOBAL_BEFORE_EXIT_HANDLER_KEY] = cleanup;
200
- globalWithCleanup[GLOBAL_BEFORE_EXIT_KEY] = lifecycle;
201
- return lifecycle;
202
- }
203
- catch (error) {
204
- if (process.listeners("beforeExit").includes(cleanup)) {
205
- try {
206
- process.off("beforeExit", cleanup);
207
- }
208
- catch {
209
- // Reconcile the marker with the actual listener below.
210
- }
211
- }
212
- if (process.listeners("beforeExit").includes(cleanup)) {
213
- globalWithCleanup[GLOBAL_BEFORE_EXIT_HANDLER_KEY] = cleanup;
214
- globalWithCleanup[GLOBAL_BEFORE_EXIT_KEY] = lifecycle;
215
- }
216
- else {
217
- if (globalWithCleanup[GLOBAL_BEFORE_EXIT_HANDLER_KEY] === cleanup) {
218
- delete globalWithCleanup[GLOBAL_BEFORE_EXIT_HANDLER_KEY];
219
- }
220
- if (globalWithCleanup[GLOBAL_BEFORE_EXIT_KEY] === lifecycle) {
221
- delete globalWithCleanup[GLOBAL_BEFORE_EXIT_KEY];
222
- }
223
- }
224
- throw error;
225
- }
226
- finally {
227
- if (globalWithCleanup[GLOBAL_BEFORE_EXIT_REGISTRATION_KEY] === registration) {
228
- delete globalWithCleanup[GLOBAL_BEFORE_EXIT_REGISTRATION_KEY];
229
- }
230
- }
157
+ return ensureSidecarLockCleanupRegistered({
158
+ event: "beforeExit",
159
+ registered: GLOBAL_BEFORE_EXIT_KEY,
160
+ registering: GLOBAL_BEFORE_EXIT_REGISTRATION_KEY,
161
+ handler: GLOBAL_BEFORE_EXIT_HANDLER_KEY,
162
+ reentryError: () => new FsSafeError("helper-unavailable", "sidecar lock before-exit cleanup registration is already in progress"),
163
+ }, cleanup, lifecycle);
231
164
  }
232
165
  async function releaseHeldLock(state, normalizedTargetPath, held, options = {}) {
233
166
  const current = state.held.get(normalizedTargetPath);
@@ -25,4 +25,3 @@ export declare function openStagedDirectory(directory: string | DirectoryReceipt
25
25
  fd: number;
26
26
  receipt: StagedDirectorySnapshot;
27
27
  };
28
- //# sourceMappingURL=staged-directory.d.ts.map
@@ -14,4 +14,3 @@ export declare function settleStagedFile(params: {
14
14
  cleanup: () => Promise<StagedFileCleanupReceipt["status"]>;
15
15
  close: readonly (() => Promise<void> | void)[];
16
16
  }): Promise<void>;
17
- //# sourceMappingURL=staged-file-settlement.d.ts.map
@@ -53,4 +53,3 @@ export interface StagedFile extends AsyncDisposable {
53
53
  }): Promise<PublishedFileReceipt>;
54
54
  cleanup(): Promise<StagedFileCleanupReceipt>;
55
55
  }
56
- //# sourceMappingURL=staged-file-types.d.ts.map
@@ -1,2 +1 @@
1
1
  export declare function admitStandalonePublicationPath(value: string, message?: string): string;
2
- //# sourceMappingURL=standalone-publication-path.d.ts.map
@@ -8,4 +8,3 @@ export type StatObservationReceipt = {
8
8
  export declare function inspectStatObservationSync(inspect: (bigint: boolean) => Stats | BigIntStats, expected?: ExactStatIdentity, initial?: Stats | BigIntStats, platform?: NodeJS.Platform): StatObservationReceipt;
9
9
  /** Revalidate an exact identity without allocating a receipt that the caller will discard. */
10
10
  export declare function assertStatObservationSync(inspect: (bigint: boolean) => Stats | BigIntStats, expected: ExactStatIdentity, initial?: Stats | BigIntStats, platform?: NodeJS.Platform): Stats | BigIntStats;
11
- //# sourceMappingURL=stat-observation.d.ts.map
package/dist/store.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export { fileStore, fileStoreSync, type FileStore, type FileStoreOptions, type FileStorePruneOptions, type FileStoreReadOptions, type FileStoreSync, type FileStoreWriteOptions, } from "./file-store.js";
2
2
  export { jsonStore, type JsonStore, type JsonFileStoreOptions, type JsonStoreLockOptions, type JsonStoreOptions, } from "./json-store.js";
3
3
  export { ackJsonDurableQueueEntry, ensureJsonDurableQueueDirs, jsonDurableQueueEntryExists, loadJsonDurableQueueEntry, loadPendingJsonDurableQueueEntries, moveJsonDurableQueueEntryToFailed, readJsonDurableQueueEntry, resolveJsonDurableQueueEntryPaths, unlinkBestEffort, writeJsonDurableQueueEntry, type JsonDurableQueueEntryPaths, type JsonDurableQueueLoadOptions, type JsonDurableQueueReadResult, } from "./json-durable-queue.js";
4
- //# sourceMappingURL=store.d.ts.map
@@ -3,4 +3,3 @@ type ExactFileIdentity = Pick<BigIntStats, "dev" | "ino">;
3
3
  export declare function inspectFileIdentity<T extends ExactFileIdentity>(inspect: () => T | Promise<T>, expected?: ExactFileIdentity, platform?: NodeJS.Platform): Promise<T>;
4
4
  export declare function inspectFileIdentitySync<T extends ExactFileIdentity>(inspect: () => T, expected?: ExactFileIdentity, platform?: NodeJS.Platform, mismatch?: () => Error): T;
5
5
  export {};
6
- //# sourceMappingURL=strict-file-identity.d.ts.map
@@ -2,4 +2,3 @@ export declare function normalizeNullableString(value: unknown): string | null;
2
2
  export declare function normalizeOptionalString(value: unknown): string | undefined;
3
3
  export declare function normalizeOptionalLowercaseString(value: unknown): string | undefined;
4
4
  export declare function normalizeLowercaseStringOrEmpty(value: unknown): string;
5
- //# sourceMappingURL=string-coerce.d.ts.map
@@ -3,4 +3,3 @@ export type SuppressedErrorLike = Error & {
3
3
  suppressed: unknown;
4
4
  };
5
5
  export declare function createSuppressedError(error: unknown, suppressed: unknown, message: string): SuppressedErrorLike;
6
- //# sourceMappingURL=suppressed-error.d.ts.map
@@ -9,4 +9,3 @@ export type AssertNoSymlinkParentsOptions = {
9
9
  };
10
10
  export declare function assertNoSymlinkParents(params: AssertNoSymlinkParentsOptions): Promise<void>;
11
11
  export declare function assertNoSymlinkParentsSync(params: AssertNoSymlinkParentsOptions): void;
12
- //# sourceMappingURL=symlink-parents.d.ts.map
@@ -11,4 +11,3 @@ export declare function registerTempPathForExit(tempPath: string, options?: {
11
11
  }): TempPathRegistration;
12
12
  export declare function __cleanupRegisteredTempPathsForTest(): void;
13
13
  export declare function __cleanupRegisteredTempPathForTest(tempPath: string): void;
14
- //# sourceMappingURL=temp-cleanup.d.ts.map
@@ -29,4 +29,3 @@ export declare function createOwnedTempFile(params: TempFileOptions): Promise<{
29
29
  export declare function tempFile(params: TempFileOptions): Promise<TempFile>;
30
30
  export declare function withTempFile<T>(params: TempFileOptions, fn: (tmpPath: string) => Promise<T>): Promise<T>;
31
31
  export {};
32
- //# sourceMappingURL=temp-target.d.ts.map
@@ -59,10 +59,7 @@ function sanitizeExtension(extension) {
59
59
  return token ? `.${token}` : "";
60
60
  }
61
61
  export function sanitizeTempFileName(fileName) {
62
- const sanitized = sanitizeSafePathSegment(path.basename(fileName), "download.bin", {
63
- allowDotPrefix: true,
64
- });
65
- return suffixWindowsReservedDeviceName(sanitized);
62
+ return suffixWindowsReservedDeviceName(sanitizeSafePathSegment(path.basename(fileName)) ?? "download.bin");
66
63
  }
67
64
  export function buildRandomTempFilePath(params) {
68
65
  const rootDir = resolveTempRoot(params.rootDir);
@@ -87,16 +84,7 @@ function isNodeErrorWithCode(err, code) {
87
84
  }
88
85
  async function cleanupTempDir(dir, identity, onCleanupError) {
89
86
  try {
90
- let current;
91
- try {
92
- current = fsSync.lstatSync(dir, { bigint: true });
93
- }
94
- catch (error) {
95
- if (isNodeErrorWithCode(error, "ENOENT")) {
96
- return;
97
- }
98
- throw error;
99
- }
87
+ const current = fsSync.lstatSync(dir, { bigint: true });
100
88
  if (!current || !sameFileIdentityForCleanup(current, identity)) {
101
89
  return;
102
90
  }
@@ -131,7 +119,7 @@ export async function createOwnedTempFile(params) {
131
119
  const prefix = `${sanitizePrefix(params.prefix)}-`;
132
120
  if (cleanupSafety === "require-bounded") {
133
121
  const initialFileName = sanitizeTempFileName(params.fileName ?? "download.bin");
134
- const [{ TempWorkspaceCleanupCapability, TempWorkspaceCleanupOwner }, { admitExistingTempWorkspaceRoot }, { TempWorkspaceRetainedChild }, { validateInitialTempWorkspaceChild, admitRetainedTempWorkspaceChild }, { inspectDirectoryIdentitySync },] = await Promise.all([
122
+ const [{ TempWorkspaceCleanupCapability, TempWorkspaceCleanupOwner, throwTempWorkspaceCreationFailure }, { admitExistingTempWorkspaceRoot }, { TempWorkspaceRetainedChild }, { validateInitialTempWorkspaceChild }, { inspectDirectoryIdentitySync },] = await Promise.all([
135
123
  import("./temp-workspace-owner.js"),
136
124
  import("./temp-workspace-admission.js"),
137
125
  import("./temp-workspace-descriptor.js"),
@@ -159,9 +147,9 @@ export async function createOwnedTempFile(params) {
159
147
  identity = Object.freeze({ dev: initial.dev, ino: initial.ino });
160
148
  const needsModeInitialization = validateInitialTempWorkspaceChild(initial, admission.ownerUid, 0o700);
161
149
  retainedChild = TempWorkspaceRetainedChild.retain(dir, identity);
162
- const modeInitialization = admitRetainedTempWorkspaceChild(retainedChild, needsModeInitialization, admission, 0o700);
163
- if (modeInitialization)
164
- await modeInitialization;
150
+ if (needsModeInitialization) {
151
+ await retainedChild.initializeMode(0o700, admission.ownerUid, admission.assertCurrent);
152
+ }
165
153
  const retainDescriptor = capability.admitChildDescriptor(retainedChild.ensureReadable());
166
154
  capability.assertAncestryCurrent();
167
155
  retainedChild.finalizeAdmission(admission.ownerUid, 0o700);
@@ -172,34 +160,7 @@ export async function createOwnedTempFile(params) {
172
160
  });
173
161
  }
174
162
  catch (error) {
175
- try {
176
- if (cleanupOwner)
177
- cleanupOwner.cleanupSync();
178
- else {
179
- const closeErrors = [];
180
- try {
181
- retainedChild?.close();
182
- }
183
- catch (closeError) {
184
- closeErrors.push(closeError);
185
- }
186
- try {
187
- capability.close();
188
- }
189
- catch (closeError) {
190
- closeErrors.push(closeError);
191
- }
192
- if (closeErrors.length === 1)
193
- throw closeErrors[0];
194
- if (closeErrors.length > 1) {
195
- throw new AggregateError(closeErrors, "temp file admission descriptor close failed");
196
- }
197
- }
198
- }
199
- catch (cleanupError) {
200
- throw new AggregateError([error, cleanupError], "temp file creation and cleanup both failed");
201
- }
202
- throw error;
163
+ return throwTempWorkspaceCreationFailure(error, retainedChild, capability, cleanupOwner, "temp file");
203
164
  }
204
165
  const owner = cleanupOwner;
205
166
  const file = (fileName) => {
@@ -1,12 +1,6 @@
1
- type ExactIdentity = Readonly<{
2
- dev: bigint;
3
- ino: bigint;
4
- }>;
5
1
  export type TempWorkspaceRootAdmission = {
6
2
  dir: string;
7
- identity: ExactIdentity;
8
3
  ownerUid: number | undefined;
9
- realPath: string;
10
4
  retainCleanupParent(descriptorFd: number): void;
11
5
  prepareCleanupProbe(descriptorFd: number): void;
12
6
  prepareChildCreation(descriptorFd?: number): void;
@@ -18,5 +12,3 @@ export type TempWorkspaceRootAdmission = {
18
12
  export declare function admitExistingTempWorkspaceRoot(rootDir: string): TempWorkspaceRootAdmission;
19
13
  export declare function admitTempWorkspaceRoot(rootDir: string): Promise<TempWorkspaceRootAdmission>;
20
14
  export declare function admitTempWorkspaceRootSync(rootDir: string): TempWorkspaceRootAdmission;
21
- export {};
22
- //# sourceMappingURL=temp-workspace-admission.d.ts.map
@@ -247,9 +247,7 @@ function rootAdmission(chain, ownerUid) {
247
247
  const current = chain[chain.length - 1];
248
248
  return {
249
249
  dir: current.dir,
250
- identity: current.identity,
251
250
  ownerUid,
252
- realPath: current.realPath,
253
251
  retainCleanupParent: (descriptorFd) => {
254
252
  assertSnapshot(current, ownerUid);
255
253
  associateTempWorkspaceRoot(current, ownerUid, descriptorFd);
@@ -280,9 +278,7 @@ function canonicalRootAdmission(discovery, ownerUid) {
280
278
  };
281
279
  return {
282
280
  dir: discovery.dir,
283
- identity: discovery.identity,
284
281
  ownerUid,
285
- realPath: discovery.realPath,
286
282
  // Merely opening the cleanup-parent descriptor grants no authority. The
287
283
  // exact association is completed only at a bounded probe or the mutation
288
284
  // boundary below.
@@ -1,13 +1,9 @@
1
1
  import type { BigIntStats, Stats } from "node:fs";
2
2
  import type { TempWorkspaceRootAdmission } from "./temp-workspace-admission.js";
3
- import type { TempWorkspaceRetainedChild } from "./temp-workspace-descriptor.js";
4
3
  import { type TempWorkspaceIdentityStat } from "./temp-workspace-identity.js";
5
4
  export declare function assertTempWorkspaceChildState(stat: BigIntStats | Stats, ownerUid: number | undefined): void;
6
5
  export declare function validateInitialTempWorkspaceChild(stat: BigIntStats, ownerUid: number | undefined, mode: number): boolean;
7
6
  export declare function childHasRequestedMode(stat: BigIntStats | Stats, mode: number): boolean;
8
7
  export declare function admitTempWorkspaceChild(dir: string, expected: BigIntStats, parent: TempWorkspaceRootAdmission, mode: number): Promise<void> | undefined;
9
8
  export declare function admitTempWorkspaceChildSync(dir: string, expected: BigIntStats, parent: TempWorkspaceRootAdmission, mode: number): void;
10
- export declare function admitRetainedTempWorkspaceChild(retained: TempWorkspaceRetainedChild, needsModeInitialization: boolean, parent: TempWorkspaceRootAdmission, mode: number): Promise<void> | undefined;
11
- export declare function admitRetainedTempWorkspaceChildSync(retained: TempWorkspaceRetainedChild, needsModeInitialization: boolean, parent: TempWorkspaceRootAdmission, mode: number): void;
12
9
  export declare function validateAdmittedTempWorkspaceChild(current: TempWorkspaceIdentityStat, ownerUid: number | undefined, mode: number): TempWorkspaceIdentityStat;
13
- //# sourceMappingURL=temp-workspace-child-admission.d.ts.map
@@ -74,18 +74,6 @@ export function admitTempWorkspaceChildSync(dir, expected, parent, mode) {
74
74
  owner.close();
75
75
  }
76
76
  }
77
- export function admitRetainedTempWorkspaceChild(retained, needsModeInitialization, parent, mode) {
78
- if (!needsModeInitialization)
79
- return undefined;
80
- return retained.initializeMode(mode, parent.ownerUid, parent.assertCurrent);
81
- }
82
- export function admitRetainedTempWorkspaceChildSync(retained, needsModeInitialization, parent, mode) {
83
- if (!needsModeInitialization) {
84
- retained.discardInitialReceipt();
85
- return;
86
- }
87
- retained.initializeModeSync(mode, parent.ownerUid, parent.assertCurrent);
88
- }
89
77
  export function validateAdmittedTempWorkspaceChild(current, ownerUid, mode) {
90
78
  assertTempWorkspaceChildState(current, ownerUid);
91
79
  if (!childHasRequestedMode(current, mode)) {
@@ -8,11 +8,6 @@ export type RetainedDirectory = {
8
8
  access: DirectoryDescriptorAccess;
9
9
  receipt: Readonly<{
10
10
  path: string;
11
- realPath: string;
12
- identity: Readonly<{
13
- dev: bigint;
14
- ino: bigint;
15
- }>;
16
11
  }>;
17
12
  };
18
13
  export type RetainedChildDirectory = {
@@ -45,4 +40,3 @@ export declare class TempWorkspaceRetainedChild {
45
40
  close(): void;
46
41
  }
47
42
  export {};
48
- //# sourceMappingURL=temp-workspace-descriptor.d.ts.map
@@ -80,8 +80,6 @@ export function openTempWorkspaceCleanupParent(root, admission) {
80
80
  access: opened.access,
81
81
  receipt: Object.freeze({
82
82
  path: pathname,
83
- realPath: admission.realPath,
84
- identity: admission.identity,
85
83
  }),
86
84
  };
87
85
  }
@@ -12,4 +12,3 @@ export declare const TEMP_WORKSPACE_NUMERIC_IDENTITY_REPLAY: boolean;
12
12
  export declare function projectTempWorkspaceNumericIdentity(identity: TempWorkspaceIdentity): TempWorkspaceNumericIdentity | undefined;
13
13
  export declare function inspectTempWorkspaceDescriptorIdentitySync(fd: number, expected: TempWorkspaceIdentity, numeric: TempWorkspaceNumericIdentity | undefined): TempWorkspaceIdentityStat;
14
14
  export declare function inspectTempWorkspaceDirectoryIdentitySync(dir: string, expected: TempWorkspaceIdentity, numeric: TempWorkspaceNumericIdentity | undefined): TempWorkspaceIdentityStat;
15
- //# sourceMappingURL=temp-workspace-identity.d.ts.map
@@ -15,10 +15,10 @@ export declare class TempWorkspaceCleanupCapability {
15
15
  assertAncestryCurrent(): void;
16
16
  close(): void;
17
17
  }
18
+ export declare function throwTempWorkspaceCreationFailure(error: unknown, retainedChild: TempWorkspaceRetainedChild | undefined, capability: TempWorkspaceCleanupCapability, owner?: TempWorkspaceCleanupOwner, label?: string): never;
18
19
  export declare class TempWorkspaceCleanupOwner {
19
20
  #private;
20
21
  constructor(retained: TempWorkspaceRetainedChild, capability: TempWorkspaceCleanupCapability, retainDescriptor: boolean);
21
22
  cleanup(): Promise<TempWorkspaceCleanupResult>;
22
23
  cleanupSync(): TempWorkspaceCleanupResult;
23
24
  }
24
- //# sourceMappingURL=temp-workspace-owner.d.ts.map
@@ -158,6 +158,36 @@ export class TempWorkspaceCleanupCapability {
158
158
  fsSync.closeSync(this.parent.fd);
159
159
  }
160
160
  }
161
+ export function throwTempWorkspaceCreationFailure(error, retainedChild, capability, owner, label = "temp workspace") {
162
+ try {
163
+ if (owner)
164
+ owner.cleanupSync();
165
+ else {
166
+ const closeErrors = [];
167
+ try {
168
+ retainedChild?.close();
169
+ }
170
+ catch (closeError) {
171
+ closeErrors.push(closeError);
172
+ }
173
+ try {
174
+ capability.close();
175
+ }
176
+ catch (closeError) {
177
+ closeErrors.push(closeError);
178
+ }
179
+ if (closeErrors.length === 1)
180
+ throw closeErrors[0];
181
+ if (closeErrors.length > 1) {
182
+ throw new AggregateError(closeErrors, `${label} admission descriptor close failed`);
183
+ }
184
+ }
185
+ }
186
+ catch (cleanupError) {
187
+ throw new AggregateError([error, cleanupError], `${label} creation and cleanup both failed`);
188
+ }
189
+ throw error;
190
+ }
161
191
  export class TempWorkspaceCleanupOwner {
162
192
  #dir;
163
193
  #identity;
@@ -294,22 +324,19 @@ export class TempWorkspaceCleanupOwner {
294
324
  await beforeNativeRemoval(quarantine.path);
295
325
  return this.#mapRemoval(await this.#capability.binding.removeOwnedTree(this.#capability.parent.fd, quarantine.name, this.#directory.fd));
296
326
  }
297
- let removalFailure;
298
327
  try {
299
328
  this.#assertQuarantine(quarantine);
300
- try {
301
- await fs.rm(quarantine.path, { recursive: true, force: true });
302
- }
303
- catch (error) {
304
- removalFailure = { error };
305
- throw error;
306
- }
329
+ }
330
+ catch {
331
+ return "indeterminate";
332
+ }
333
+ // Removal failures propagate unchanged; only authority uncertainty becomes a receipt.
334
+ await fs.rm(quarantine.path, { recursive: true, force: true });
335
+ try {
307
336
  this.#capability.assertCurrent();
308
337
  return "removed";
309
338
  }
310
- catch (error) {
311
- if (removalFailure !== undefined)
312
- throw removalFailure.error;
339
+ catch {
313
340
  return "indeterminate";
314
341
  }
315
342
  }
@@ -318,22 +345,18 @@ export class TempWorkspaceCleanupOwner {
318
345
  getFsSafeTestHooks()?.beforeTempWorkspaceNativeRemovalSync?.(quarantine.path);
319
346
  return this.#mapRemoval(this.#capability.binding.removeOwnedTreeSync(this.#capability.parent.fd, quarantine.name, this.#directory.fd));
320
347
  }
321
- let removalFailure;
322
348
  try {
323
349
  this.#assertQuarantine(quarantine);
324
- try {
325
- fsSync.rmSync(quarantine.path, { recursive: true, force: true });
326
- }
327
- catch (error) {
328
- removalFailure = { error };
329
- throw error;
330
- }
350
+ }
351
+ catch {
352
+ return "indeterminate";
353
+ }
354
+ fsSync.rmSync(quarantine.path, { recursive: true, force: true });
355
+ try {
331
356
  this.#capability.assertCurrent();
332
357
  return "removed";
333
358
  }
334
- catch (error) {
335
- if (removalFailure !== undefined)
336
- throw removalFailure.error;
359
+ catch {
337
360
  return "indeterminate";
338
361
  }
339
362
  }
@@ -1,4 +1,3 @@
1
1
  import type { BigIntStats, Stats } from "node:fs";
2
2
  export declare function validateTempWorkspaceDirMode(mode: number): void;
3
3
  export declare function assertTrustedTempWorkspaceDirectory(stat: Pick<BigIntStats, "uid" | "mode"> | Pick<Stats, "uid" | "mode">, uid: number | undefined, child?: boolean): void;
4
- //# sourceMappingURL=temp-workspace-permissions.d.ts.map
@@ -37,4 +37,3 @@ export type TempWorkspaceSync = {
37
37
  cleanup(): TempWorkspaceCleanupResult;
38
38
  [Symbol.dispose](): void;
39
39
  };
40
- //# sourceMappingURL=temp-workspace-types.d.ts.map
package/dist/temp.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export { tempWorkspace, type TempWorkspace, type TempWorkspaceOptions, type TempWorkspaceCleanupResult, type TempWorkspaceCleanupSafety, tempWorkspaceSync, type TempWorkspaceSync, withTempWorkspace, withTempWorkspaceSync, } from "./private-temp-workspace.js";
2
2
  export type { TempPathIdentityReceipt } from "./temp-cleanup.js";
3
3
  export { resolveSecureTempRoot, type ResolveSecureTempRootOptions, type SecureTempRootDescriptorAdapter, } from "./secure-temp-dir.js";
4
- //# sourceMappingURL=temp.d.ts.map
@@ -29,4 +29,3 @@ export type FsSafeTestHooks = {
29
29
  };
30
30
  export declare function getFsSafeTestHooks(): FsSafeTestHooks | undefined;
31
31
  export declare function __setFsSafeTestHooksForTest(hooks?: FsSafeTestHooks): void;
32
- //# sourceMappingURL=test-hooks.d.ts.map
@@ -11,4 +11,3 @@ export type WriteTextAtomicOptions = {
11
11
  durable?: boolean;
12
12
  };
13
13
  export declare function writeTextAtomic(filePath: string, content: string, options?: WriteTextAtomicOptions): Promise<void>;
14
- //# sourceMappingURL=text-atomic.d.ts.map
package/dist/timing.d.ts CHANGED
@@ -6,4 +6,3 @@ export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, l
6
6
  message?: string;
7
7
  createError?: () => Error;
8
8
  }): Promise<T>;
9
- //# sourceMappingURL=timing.d.ts.map
package/dist/trash.d.ts CHANGED
@@ -2,4 +2,3 @@ export type MovePathToTrashOptions = {
2
2
  allowedRoots?: Iterable<string>;
3
3
  };
4
4
  export declare function movePathToTrash(targetPath: string, options?: MovePathToTrashOptions): Promise<string>;
5
- //# sourceMappingURL=trash.d.ts.map
package/dist/types.d.ts CHANGED
@@ -20,4 +20,3 @@ export type BasePathOptions = {
20
20
  rootDir: string;
21
21
  relativePath: string;
22
22
  };
23
- //# sourceMappingURL=types.d.ts.map