@agent-teams/engineering-foundation 0.16.1 → 0.17.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/README.md +11 -0
  2. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/changesets-prerelease-state.d.ts +10 -0
  3. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/changesets-prerelease-state.d.ts.map +1 -0
  4. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/changesets-prerelease-state.js +69 -0
  5. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/changesets-prerelease-state.js.map +1 -0
  6. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts +3 -2
  7. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts.map +1 -1
  8. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js +66 -13
  9. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js.map +1 -1
  10. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts +1 -1
  11. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts.map +1 -1
  12. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js +5 -2
  13. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js.map +1 -1
  14. package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts +2 -0
  15. package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts.map +1 -1
  16. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts +3 -2
  17. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts.map +1 -1
  18. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.d.ts.map +1 -1
  19. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js +40 -5
  20. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js.map +1 -1
  21. package/dist/document-authoring/adapters/node/load-validated-document-authoring-profile-v2.d.ts +26 -0
  22. package/dist/document-authoring/adapters/node/load-validated-document-authoring-profile-v2.d.ts.map +1 -0
  23. package/dist/document-authoring/adapters/node/load-validated-document-authoring-profile-v2.js +74 -0
  24. package/dist/document-authoring/adapters/node/load-validated-document-authoring-profile-v2.js.map +1 -0
  25. package/dist/document-authoring/adapters/node/node-authoring-profile-reader-v2.d.ts +9 -0
  26. package/dist/document-authoring/adapters/node/node-authoring-profile-reader-v2.d.ts.map +1 -0
  27. package/dist/document-authoring/adapters/node/node-authoring-profile-reader-v2.js +41 -0
  28. package/dist/document-authoring/adapters/node/node-authoring-profile-reader-v2.js.map +1 -0
  29. package/dist/document-authoring/adapters/node/node-document-contract-validator.d.ts +1 -1
  30. package/dist/document-authoring/adapters/node/node-document-contract-validator.d.ts.map +1 -1
  31. package/dist/document-authoring/adapters/node/node-document-contract-validator.js +1 -1
  32. package/dist/document-authoring/adapters/node/node-document-contract-validator.js.map +1 -1
  33. package/dist/document-authoring/adapters/node/node-document-file-state.d.ts +1 -1
  34. package/dist/document-authoring/adapters/node/node-document-file-state.d.ts.map +1 -1
  35. package/dist/document-authoring/adapters/node/node-document-file-state.js +17 -1
  36. package/dist/document-authoring/adapters/node/node-document-file-state.js.map +1 -1
  37. package/dist/document-authoring/adapters/node/node-document-metadata-sidecar-reader.d.ts +9 -0
  38. package/dist/document-authoring/adapters/node/node-document-metadata-sidecar-reader.d.ts.map +1 -0
  39. package/dist/document-authoring/adapters/node/node-document-metadata-sidecar-reader.js +87 -0
  40. package/dist/document-authoring/adapters/node/node-document-metadata-sidecar-reader.js.map +1 -0
  41. package/dist/document-authoring/adapters/node/node-document-parent-materializer.d.ts +39 -0
  42. package/dist/document-authoring/adapters/node/node-document-parent-materializer.d.ts.map +1 -0
  43. package/dist/document-authoring/adapters/node/node-document-parent-materializer.js +270 -0
  44. package/dist/document-authoring/adapters/node/node-document-parent-materializer.js.map +1 -0
  45. package/dist/document-authoring/adapters/node/node-document-planning-profile-reader.d.ts.map +1 -1
  46. package/dist/document-authoring/adapters/node/node-document-planning-profile-reader.js +11 -3
  47. package/dist/document-authoring/adapters/node/node-document-planning-profile-reader.js.map +1 -1
  48. package/dist/document-authoring/adapters/node/node-document-planning-state-reader.d.ts +1 -0
  49. package/dist/document-authoring/adapters/node/node-document-planning-state-reader.d.ts.map +1 -1
  50. package/dist/document-authoring/adapters/node/node-document-planning-state-reader.js +18 -1
  51. package/dist/document-authoring/adapters/node/node-document-planning-state-reader.js.map +1 -1
  52. package/dist/document-authoring/adapters/node/node-document-publisher.d.ts +1 -1
  53. package/dist/document-authoring/adapters/node/node-document-publisher.d.ts.map +1 -1
  54. package/dist/document-authoring/adapters/node/node-document-publisher.js +102 -11
  55. package/dist/document-authoring/adapters/node/node-document-publisher.js.map +1 -1
  56. package/dist/document-authoring/adapters/node/node-document-reachability-projector.d.ts +1 -1
  57. package/dist/document-authoring/adapters/node/node-document-reachability-projector.d.ts.map +1 -1
  58. package/dist/document-authoring/adapters/node/node-document-structure-verifier.d.ts +1 -1
  59. package/dist/document-authoring/adapters/node/node-document-structure-verifier.d.ts.map +1 -1
  60. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.d.ts.map +1 -1
  61. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.js +1 -1
  62. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.js.map +1 -1
  63. package/dist/document-authoring/adapters/node/node-metadata-instance-validator.d.ts.map +1 -1
  64. package/dist/document-authoring/adapters/node/node-metadata-instance-validator.js +6 -0
  65. package/dist/document-authoring/adapters/node/node-metadata-instance-validator.js.map +1 -1
  66. package/dist/document-authoring/adapters/node/node-path-authority.d.ts +53 -0
  67. package/dist/document-authoring/adapters/node/node-path-authority.d.ts.map +1 -0
  68. package/dist/document-authoring/adapters/node/node-path-authority.js +186 -0
  69. package/dist/document-authoring/adapters/node/node-path-authority.js.map +1 -0
  70. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.d.ts +2 -1
  71. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.d.ts.map +1 -1
  72. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.js +21 -77
  73. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.js.map +1 -1
  74. package/dist/document-authoring/application/model/document-authoring-profile-description.d.ts +53 -0
  75. package/dist/document-authoring/application/model/document-authoring-profile-description.d.ts.map +1 -0
  76. package/dist/document-authoring/application/model/document-authoring-profile-description.js +2 -0
  77. package/dist/document-authoring/application/model/document-authoring-profile-description.js.map +1 -0
  78. package/dist/document-authoring/application/model/document-catalog.d.ts +29 -0
  79. package/dist/document-authoring/application/model/document-catalog.d.ts.map +1 -1
  80. package/dist/document-authoring/application/model/document-find.d.ts +5 -1
  81. package/dist/document-authoring/application/model/document-find.d.ts.map +1 -1
  82. package/dist/document-authoring/application/model/document-parent-materialization.d.ts +26 -0
  83. package/dist/document-authoring/application/model/document-parent-materialization.d.ts.map +1 -0
  84. package/dist/document-authoring/application/model/document-parent-materialization.js +2 -0
  85. package/dist/document-authoring/application/model/document-parent-materialization.js.map +1 -0
  86. package/dist/document-authoring/application/model/document-planning.d.ts +29 -2
  87. package/dist/document-authoring/application/model/document-planning.d.ts.map +1 -1
  88. package/dist/document-authoring/application/model/document-receipt.d.ts +28 -1
  89. package/dist/document-authoring/application/model/document-receipt.d.ts.map +1 -1
  90. package/dist/document-authoring/application/model/document-transaction-inspection.d.ts +23 -0
  91. package/dist/document-authoring/application/model/document-transaction-inspection.d.ts.map +1 -1
  92. package/dist/document-authoring/application/model/document-transaction.d.ts +91 -3
  93. package/dist/document-authoring/application/model/document-transaction.d.ts.map +1 -1
  94. package/dist/document-authoring/application/policies/assert-artifact-owner-allowed.d.ts +3 -0
  95. package/dist/document-authoring/application/policies/assert-artifact-owner-allowed.d.ts.map +1 -0
  96. package/dist/document-authoring/application/policies/assert-artifact-owner-allowed.js +8 -0
  97. package/dist/document-authoring/application/policies/assert-artifact-owner-allowed.js.map +1 -0
  98. package/dist/document-authoring/application/policies/assert-v2-planning-profile.d.ts +3 -0
  99. package/dist/document-authoring/application/policies/assert-v2-planning-profile.d.ts.map +1 -0
  100. package/dist/document-authoring/application/policies/assert-v2-planning-profile.js +7 -0
  101. package/dist/document-authoring/application/policies/assert-v2-planning-profile.js.map +1 -0
  102. package/dist/document-authoring/application/policies/document-authoring-semantic-digests.d.ts +30 -0
  103. package/dist/document-authoring/application/policies/document-authoring-semantic-digests.d.ts.map +1 -0
  104. package/dist/document-authoring/application/policies/document-authoring-semantic-digests.js +157 -0
  105. package/dist/document-authoring/application/policies/document-authoring-semantic-digests.js.map +1 -0
  106. package/dist/document-authoring/application/policies/document-catalog-authority-stability.d.ts +12 -0
  107. package/dist/document-authoring/application/policies/document-catalog-authority-stability.d.ts.map +1 -0
  108. package/dist/document-authoring/application/policies/document-catalog-authority-stability.js +16 -0
  109. package/dist/document-authoring/application/policies/document-catalog-authority-stability.js.map +1 -0
  110. package/dist/document-authoring/application/policies/document-catalog-sidecar.d.ts +10 -0
  111. package/dist/document-authoring/application/policies/document-catalog-sidecar.d.ts.map +1 -0
  112. package/dist/document-authoring/application/policies/document-catalog-sidecar.js +66 -0
  113. package/dist/document-authoring/application/policies/document-catalog-sidecar.js.map +1 -0
  114. package/dist/document-authoring/application/policies/document-command-projection.d.ts +1 -1
  115. package/dist/document-authoring/application/policies/document-command-projection.d.ts.map +1 -1
  116. package/dist/document-authoring/application/policies/document-contract-digests.d.ts.map +1 -1
  117. package/dist/document-authoring/application/policies/document-contract-digests.js +61 -7
  118. package/dist/document-authoring/application/policies/document-contract-digests.js.map +1 -1
  119. package/dist/document-authoring/application/policies/document-receipt-policy.d.ts +3 -3
  120. package/dist/document-authoring/application/policies/document-receipt-policy.d.ts.map +1 -1
  121. package/dist/document-authoring/application/policies/document-receipt-policy.js +43 -4
  122. package/dist/document-authoring/application/policies/document-receipt-policy.js.map +1 -1
  123. package/dist/document-authoring/application/policies/document-transaction-digests.d.ts +2 -2
  124. package/dist/document-authoring/application/policies/document-transaction-digests.d.ts.map +1 -1
  125. package/dist/document-authoring/application/policies/document-transaction-digests.js.map +1 -1
  126. package/dist/document-authoring/application/policies/document-transaction-envelope-body.d.ts +28 -0
  127. package/dist/document-authoring/application/policies/document-transaction-envelope-body.d.ts.map +1 -0
  128. package/dist/document-authoring/application/policies/document-transaction-envelope-body.js +140 -0
  129. package/dist/document-authoring/application/policies/document-transaction-envelope-body.js.map +1 -0
  130. package/dist/document-authoring/application/policies/document-transaction-envelope-policy.d.ts.map +1 -1
  131. package/dist/document-authoring/application/policies/document-transaction-envelope-policy.js +47 -6
  132. package/dist/document-authoring/application/policies/document-transaction-envelope-policy.js.map +1 -1
  133. package/dist/document-authoring/application/policies/inspect-catalog-document.d.ts +8 -1
  134. package/dist/document-authoring/application/policies/inspect-catalog-document.d.ts.map +1 -1
  135. package/dist/document-authoring/application/policies/inspect-catalog-document.js +48 -0
  136. package/dist/document-authoring/application/policies/inspect-catalog-document.js.map +1 -1
  137. package/dist/document-authoring/application/policies/project-catalog-metadata.d.ts +7 -0
  138. package/dist/document-authoring/application/policies/project-catalog-metadata.d.ts.map +1 -0
  139. package/dist/document-authoring/application/policies/project-catalog-metadata.js +165 -0
  140. package/dist/document-authoring/application/policies/project-catalog-metadata.js.map +1 -0
  141. package/dist/document-authoring/application/policies/same-document-catalog-snapshot.d.ts +3 -0
  142. package/dist/document-authoring/application/policies/same-document-catalog-snapshot.d.ts.map +1 -0
  143. package/dist/document-authoring/application/policies/same-document-catalog-snapshot.js +24 -0
  144. package/dist/document-authoring/application/policies/same-document-catalog-snapshot.js.map +1 -0
  145. package/dist/document-authoring/application/ports/authoring-profile-reader.d.ts +10 -0
  146. package/dist/document-authoring/application/ports/authoring-profile-reader.d.ts.map +1 -1
  147. package/dist/document-authoring/application/ports/document-authority-recompiler.d.ts +1 -1
  148. package/dist/document-authoring/application/ports/document-authority-recompiler.d.ts.map +1 -1
  149. package/dist/document-authoring/application/ports/document-contract-validator.d.ts +1 -1
  150. package/dist/document-authoring/application/ports/document-contract-validator.d.ts.map +1 -1
  151. package/dist/document-authoring/application/ports/document-file-state.d.ts +1 -1
  152. package/dist/document-authoring/application/ports/document-file-state.d.ts.map +1 -1
  153. package/dist/document-authoring/application/ports/document-metadata-sidecar-reader.d.ts +13 -0
  154. package/dist/document-authoring/application/ports/document-metadata-sidecar-reader.d.ts.map +1 -0
  155. package/dist/document-authoring/application/ports/document-metadata-sidecar-reader.js +2 -0
  156. package/dist/document-authoring/application/ports/document-metadata-sidecar-reader.js.map +1 -0
  157. package/dist/document-authoring/application/ports/document-parent-materializer.d.ts +24 -0
  158. package/dist/document-authoring/application/ports/document-parent-materializer.d.ts.map +1 -0
  159. package/dist/document-authoring/application/ports/document-parent-materializer.js +2 -0
  160. package/dist/document-authoring/application/ports/document-parent-materializer.js.map +1 -0
  161. package/dist/document-authoring/application/ports/document-planning-state-reader.d.ts +1 -0
  162. package/dist/document-authoring/application/ports/document-planning-state-reader.d.ts.map +1 -1
  163. package/dist/document-authoring/application/ports/document-publisher.d.ts +1 -1
  164. package/dist/document-authoring/application/ports/document-publisher.d.ts.map +1 -1
  165. package/dist/document-authoring/application/ports/document-reachability-projector.d.ts +1 -1
  166. package/dist/document-authoring/application/ports/document-reachability-projector.d.ts.map +1 -1
  167. package/dist/document-authoring/application/ports/document-structure-verifier.d.ts +1 -1
  168. package/dist/document-authoring/application/ports/document-structure-verifier.d.ts.map +1 -1
  169. package/dist/document-authoring/application/ports/documentation-catalog-reader-v2.d.ts +11 -0
  170. package/dist/document-authoring/application/ports/documentation-catalog-reader-v2.d.ts.map +1 -0
  171. package/dist/document-authoring/application/ports/documentation-catalog-reader-v2.js +2 -0
  172. package/dist/document-authoring/application/ports/documentation-catalog-reader-v2.js.map +1 -0
  173. package/dist/document-authoring/application/ports/documentation-catalog-reader.d.ts +2 -2
  174. package/dist/document-authoring/application/ports/documentation-catalog-reader.d.ts.map +1 -1
  175. package/dist/document-authoring/application/ports/documentation-search-catalog-reader-v2.d.ts +9 -0
  176. package/dist/document-authoring/application/ports/documentation-search-catalog-reader-v2.d.ts.map +1 -0
  177. package/dist/document-authoring/application/ports/documentation-search-catalog-reader-v2.js +2 -0
  178. package/dist/document-authoring/application/ports/documentation-search-catalog-reader-v2.js.map +1 -0
  179. package/dist/document-authoring/application/ports/metadata-instance-validator.d.ts +1 -0
  180. package/dist/document-authoring/application/ports/metadata-instance-validator.d.ts.map +1 -1
  181. package/dist/document-authoring/application/use-cases/apply-document-plan.d.ts +1 -1
  182. package/dist/document-authoring/application/use-cases/apply-document-plan.d.ts.map +1 -1
  183. package/dist/document-authoring/application/use-cases/apply-document-plan.js +150 -54
  184. package/dist/document-authoring/application/use-cases/apply-document-plan.js.map +1 -1
  185. package/dist/document-authoring/application/use-cases/apply-document-recovery-receipt.d.ts +14 -0
  186. package/dist/document-authoring/application/use-cases/apply-document-recovery-receipt.d.ts.map +1 -0
  187. package/dist/document-authoring/application/use-cases/apply-document-recovery-receipt.js +17 -0
  188. package/dist/document-authoring/application/use-cases/apply-document-recovery-receipt.js.map +1 -0
  189. package/dist/document-authoring/application/use-cases/build-documentation-catalog.d.ts +18 -1
  190. package/dist/document-authoring/application/use-cases/build-documentation-catalog.d.ts.map +1 -1
  191. package/dist/document-authoring/application/use-cases/build-documentation-catalog.js +81 -26
  192. package/dist/document-authoring/application/use-cases/build-documentation-catalog.js.map +1 -1
  193. package/dist/document-authoring/application/use-cases/compile-document-plan.d.ts +1 -1
  194. package/dist/document-authoring/application/use-cases/compile-document-plan.d.ts.map +1 -1
  195. package/dist/document-authoring/application/use-cases/compile-document-plan.js +50 -6
  196. package/dist/document-authoring/application/use-cases/compile-document-plan.js.map +1 -1
  197. package/dist/document-authoring/application/use-cases/document-parent-materialization-continuation.d.ts +3 -0
  198. package/dist/document-authoring/application/use-cases/document-parent-materialization-continuation.d.ts.map +1 -0
  199. package/dist/document-authoring/application/use-cases/document-parent-materialization-continuation.js +79 -0
  200. package/dist/document-authoring/application/use-cases/document-parent-materialization-continuation.js.map +1 -0
  201. package/dist/document-authoring/application/use-cases/document-transaction-continuation.d.ts +18 -13
  202. package/dist/document-authoring/application/use-cases/document-transaction-continuation.d.ts.map +1 -1
  203. package/dist/document-authoring/application/use-cases/document-transaction-continuation.js +88 -165
  204. package/dist/document-authoring/application/use-cases/document-transaction-continuation.js.map +1 -1
  205. package/dist/document-authoring/application/use-cases/document-transaction-receipts.d.ts +21 -0
  206. package/dist/document-authoring/application/use-cases/document-transaction-receipts.d.ts.map +1 -0
  207. package/dist/document-authoring/application/use-cases/document-transaction-receipts.js +180 -0
  208. package/dist/document-authoring/application/use-cases/document-transaction-receipts.js.map +1 -0
  209. package/dist/document-authoring/application/use-cases/find-documents.d.ts +7 -1
  210. package/dist/document-authoring/application/use-cases/find-documents.d.ts.map +1 -1
  211. package/dist/document-authoring/application/use-cases/find-documents.js +19 -0
  212. package/dist/document-authoring/application/use-cases/find-documents.js.map +1 -1
  213. package/dist/document-authoring/application/use-cases/load-v2-profile-description.d.ts +15 -0
  214. package/dist/document-authoring/application/use-cases/load-v2-profile-description.d.ts.map +1 -0
  215. package/dist/document-authoring/application/use-cases/load-v2-profile-description.js +12 -0
  216. package/dist/document-authoring/application/use-cases/load-v2-profile-description.js.map +1 -0
  217. package/dist/document-authoring/application/use-cases/plan-documentation-document.d.ts +12 -4
  218. package/dist/document-authoring/application/use-cases/plan-documentation-document.d.ts.map +1 -1
  219. package/dist/document-authoring/application/use-cases/plan-documentation-document.js +25 -28
  220. package/dist/document-authoring/application/use-cases/plan-documentation-document.js.map +1 -1
  221. package/dist/document-authoring/application/use-cases/recapture-directory-receipt-evidence.d.ts +8 -0
  222. package/dist/document-authoring/application/use-cases/recapture-directory-receipt-evidence.d.ts.map +1 -0
  223. package/dist/document-authoring/application/use-cases/recapture-directory-receipt-evidence.js +32 -0
  224. package/dist/document-authoring/application/use-cases/recapture-directory-receipt-evidence.js.map +1 -0
  225. package/dist/document-authoring/application/use-cases/recover-document-transaction.d.ts +1 -1
  226. package/dist/document-authoring/application/use-cases/recover-document-transaction.d.ts.map +1 -1
  227. package/dist/document-authoring/application/use-cases/recover-document-transaction.js +148 -20
  228. package/dist/document-authoring/application/use-cases/recover-document-transaction.js.map +1 -1
  229. package/dist/document-authoring/application/use-cases/run-document-doctor.d.ts +2 -2
  230. package/dist/document-authoring/application/use-cases/run-document-doctor.d.ts.map +1 -1
  231. package/dist/document-authoring/application/use-cases/run-document-doctor.js.map +1 -1
  232. package/dist/document-authoring/application/use-cases/run-document-new.d.ts +4 -4
  233. package/dist/document-authoring/application/use-cases/run-document-new.d.ts.map +1 -1
  234. package/dist/document-authoring/application/use-cases/run-document-new.js.map +1 -1
  235. package/dist/document-authoring/application/use-cases/run-document-recover.d.ts +3 -3
  236. package/dist/document-authoring/application/use-cases/run-document-recover.d.ts.map +1 -1
  237. package/dist/document-authoring/composition/describe-document-authoring-profile-v2.d.ts +8 -0
  238. package/dist/document-authoring/composition/describe-document-authoring-profile-v2.d.ts.map +1 -0
  239. package/dist/document-authoring/composition/describe-document-authoring-profile-v2.js +183 -0
  240. package/dist/document-authoring/composition/describe-document-authoring-profile-v2.js.map +1 -0
  241. package/dist/document-authoring/composition/inspect-document-authoring-environment-v1.d.ts +7 -0
  242. package/dist/document-authoring/composition/inspect-document-authoring-environment-v1.d.ts.map +1 -0
  243. package/dist/document-authoring/composition/inspect-document-authoring-environment-v1.js +10 -0
  244. package/dist/document-authoring/composition/inspect-document-authoring-environment-v1.js.map +1 -0
  245. package/dist/document-authoring/composition/inspect-document-transaction.d.ts +3 -1
  246. package/dist/document-authoring/composition/inspect-document-transaction.d.ts.map +1 -1
  247. package/dist/document-authoring/composition/inspect-document-transaction.js +50 -13
  248. package/dist/document-authoring/composition/inspect-document-transaction.js.map +1 -1
  249. package/dist/document-authoring/composition/node-document-authority-recompiler.d.ts +1 -1
  250. package/dist/document-authoring/composition/node-document-authority-recompiler.d.ts.map +1 -1
  251. package/dist/document-authoring/composition/node-document-authority-recompiler.js +22 -3
  252. package/dist/document-authoring/composition/node-document-authority-recompiler.js.map +1 -1
  253. package/dist/document-authoring/composition/node-document-commands.js +2 -2
  254. package/dist/document-authoring/composition/node-document-planning.d.ts +2 -2
  255. package/dist/document-authoring/composition/node-document-planning.d.ts.map +1 -1
  256. package/dist/document-authoring/composition/node-document-planning.js +28 -7
  257. package/dist/document-authoring/composition/node-document-planning.js.map +1 -1
  258. package/dist/document-authoring/composition/node-document-writing-private.d.ts +1 -1
  259. package/dist/document-authoring/composition/node-document-writing-private.d.ts.map +1 -1
  260. package/dist/document-authoring/composition/node-document-writing-private.js +5 -3
  261. package/dist/document-authoring/composition/node-document-writing-private.js.map +1 -1
  262. package/dist/document-authoring/composition/node-document-writing.d.ts +1 -1
  263. package/dist/document-authoring/composition/node-document-writing.d.ts.map +1 -1
  264. package/dist/document-authoring/index.d.ts +29 -8
  265. package/dist/document-authoring/index.d.ts.map +1 -1
  266. package/dist/document-authoring/index.js +50 -3
  267. package/dist/document-authoring/index.js.map +1 -1
  268. package/dist/document-authoring/qualification/index.d.ts +22 -0
  269. package/dist/document-authoring/qualification/index.d.ts.map +1 -0
  270. package/dist/document-authoring/qualification/index.js +131 -0
  271. package/dist/document-authoring/qualification/index.js.map +1 -0
  272. package/dist/foundation-state-contract.d.ts +1 -0
  273. package/dist/foundation-state-contract.d.ts.map +1 -1
  274. package/dist/foundation-state-contract.js +1 -0
  275. package/dist/foundation-state-contract.js.map +1 -1
  276. package/dist/index.d.ts +1 -0
  277. package/dist/index.d.ts.map +1 -1
  278. package/dist/index.js +1 -0
  279. package/dist/index.js.map +1 -1
  280. package/dist/local-mode/inspection.d.ts.map +1 -1
  281. package/dist/local-mode/inspection.js +12 -1
  282. package/dist/local-mode/inspection.js.map +1 -1
  283. package/dist/mutation/index.d.ts +11 -0
  284. package/dist/mutation/index.d.ts.map +1 -0
  285. package/dist/mutation/index.js +5 -0
  286. package/dist/mutation/index.js.map +1 -0
  287. package/dist/package-self-check.d.ts +1 -1
  288. package/dist/package-self-check.d.ts.map +1 -1
  289. package/dist/package-self-check.js +12 -0
  290. package/dist/package-self-check.js.map +1 -1
  291. package/dist/public-api-surface.d.ts +1 -0
  292. package/dist/public-api-surface.d.ts.map +1 -1
  293. package/dist/public-api-surface.js +1 -0
  294. package/dist/public-api-surface.js.map +1 -1
  295. package/dist/repository-mutation/adapters/node/node-bounded-regular-file.d.ts +2 -0
  296. package/dist/repository-mutation/adapters/node/node-bounded-regular-file.d.ts.map +1 -1
  297. package/dist/repository-mutation/adapters/node/node-bounded-regular-file.js +31 -23
  298. package/dist/repository-mutation/adapters/node/node-bounded-regular-file.js.map +1 -1
  299. package/dist/repository-mutation/adapters/node/node-cleanup-owned-temporary.d.ts.map +1 -1
  300. package/dist/repository-mutation/adapters/node/node-cleanup-owned-temporary.js +21 -0
  301. package/dist/repository-mutation/adapters/node/node-cleanup-owned-temporary.js.map +1 -1
  302. package/dist/repository-mutation/adapters/node/node-create-and-bind-directory.d.ts +15 -0
  303. package/dist/repository-mutation/adapters/node/node-create-and-bind-directory.d.ts.map +1 -0
  304. package/dist/repository-mutation/adapters/node/node-create-and-bind-directory.js +23 -0
  305. package/dist/repository-mutation/adapters/node/node-create-and-bind-directory.js.map +1 -0
  306. package/dist/repository-mutation/adapters/node/node-directory-materialization.d.ts +37 -0
  307. package/dist/repository-mutation/adapters/node/node-directory-materialization.d.ts.map +1 -0
  308. package/dist/repository-mutation/adapters/node/node-directory-materialization.js +224 -0
  309. package/dist/repository-mutation/adapters/node/node-directory-materialization.js.map +1 -0
  310. package/dist/repository-mutation/adapters/node/node-known-file-recovery-filesystem.d.ts +28 -0
  311. package/dist/repository-mutation/adapters/node/node-known-file-recovery-filesystem.d.ts.map +1 -0
  312. package/dist/repository-mutation/adapters/node/node-known-file-recovery-filesystem.js +194 -0
  313. package/dist/repository-mutation/adapters/node/node-known-file-recovery-filesystem.js.map +1 -0
  314. package/dist/repository-mutation/adapters/node/node-known-file-transaction-filesystem.d.ts +25 -0
  315. package/dist/repository-mutation/adapters/node/node-known-file-transaction-filesystem.d.ts.map +1 -0
  316. package/dist/repository-mutation/adapters/node/node-known-file-transaction-filesystem.js +129 -0
  317. package/dist/repository-mutation/adapters/node/node-known-file-transaction-filesystem.js.map +1 -0
  318. package/dist/repository-mutation/adapters/node/node-known-file-transaction-inspection.d.ts +12 -0
  319. package/dist/repository-mutation/adapters/node/node-known-file-transaction-inspection.d.ts.map +1 -0
  320. package/dist/repository-mutation/adapters/node/node-known-file-transaction-inspection.js +46 -0
  321. package/dist/repository-mutation/adapters/node/node-known-file-transaction-inspection.js.map +1 -0
  322. package/dist/repository-mutation/adapters/node/node-known-file-transaction-journal-store.d.ts +21 -0
  323. package/dist/repository-mutation/adapters/node/node-known-file-transaction-journal-store.d.ts.map +1 -0
  324. package/dist/repository-mutation/adapters/node/node-known-file-transaction-journal-store.js +178 -0
  325. package/dist/repository-mutation/adapters/node/node-known-file-transaction-journal-store.js.map +1 -0
  326. package/dist/repository-mutation/adapters/node/node-known-file-transaction-receipt.d.ts +4 -0
  327. package/dist/repository-mutation/adapters/node/node-known-file-transaction-receipt.d.ts.map +1 -0
  328. package/dist/repository-mutation/adapters/node/node-known-file-transaction-receipt.js +43 -0
  329. package/dist/repository-mutation/adapters/node/node-known-file-transaction-receipt.js.map +1 -0
  330. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.d.ts +11 -0
  331. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.d.ts.map +1 -0
  332. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.js +888 -0
  333. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.js.map +1 -0
  334. package/dist/repository-mutation/adapters/node/node-known-file-transaction.d.ts +20 -0
  335. package/dist/repository-mutation/adapters/node/node-known-file-transaction.d.ts.map +1 -0
  336. package/dist/repository-mutation/adapters/node/node-known-file-transaction.js +546 -0
  337. package/dist/repository-mutation/adapters/node/node-known-file-transaction.js.map +1 -0
  338. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.d.ts +1 -0
  339. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.d.ts.map +1 -1
  340. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.js +1 -0
  341. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.js.map +1 -1
  342. package/dist/repository-mutation/application/model/directory-materialization.d.ts +35 -0
  343. package/dist/repository-mutation/application/model/directory-materialization.d.ts.map +1 -0
  344. package/dist/repository-mutation/application/model/directory-materialization.js +11 -0
  345. package/dist/repository-mutation/application/model/directory-materialization.js.map +1 -0
  346. package/dist/repository-mutation/application/model/known-file-transaction-journal.d.ts +63 -0
  347. package/dist/repository-mutation/application/model/known-file-transaction-journal.d.ts.map +1 -0
  348. package/dist/repository-mutation/application/model/known-file-transaction-journal.js +15 -0
  349. package/dist/repository-mutation/application/model/known-file-transaction-journal.js.map +1 -0
  350. package/dist/repository-mutation/application/model/known-file-transaction.d.ts +64 -0
  351. package/dist/repository-mutation/application/model/known-file-transaction.d.ts.map +1 -0
  352. package/dist/repository-mutation/application/model/known-file-transaction.js +2 -0
  353. package/dist/repository-mutation/application/model/known-file-transaction.js.map +1 -0
  354. package/dist/repository-mutation/application/policies/known-file-transaction-envelope.d.ts +8 -0
  355. package/dist/repository-mutation/application/policies/known-file-transaction-envelope.d.ts.map +1 -0
  356. package/dist/repository-mutation/application/policies/known-file-transaction-envelope.js +241 -0
  357. package/dist/repository-mutation/application/policies/known-file-transaction-envelope.js.map +1 -0
  358. package/dist/repository-mutation/application/policies/known-file-transaction-plan.d.ts +7 -0
  359. package/dist/repository-mutation/application/policies/known-file-transaction-plan.d.ts.map +1 -0
  360. package/dist/repository-mutation/application/policies/known-file-transaction-plan.js +215 -0
  361. package/dist/repository-mutation/application/policies/known-file-transaction-plan.js.map +1 -0
  362. package/dist/schema-catalog.d.ts.map +1 -1
  363. package/dist/schema-catalog.js +12 -0
  364. package/dist/schema-catalog.js.map +1 -1
  365. package/dist/schema-ids.d.ts +1 -1
  366. package/dist/schema-ids.d.ts.map +1 -1
  367. package/dist/schema-ids.js +8 -0
  368. package/dist/schema-ids.js.map +1 -1
  369. package/dist/semantic-version.d.ts +1 -0
  370. package/dist/semantic-version.d.ts.map +1 -1
  371. package/dist/semantic-version.js +11 -0
  372. package/dist/semantic-version.js.map +1 -1
  373. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.d.ts +2 -2
  374. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.d.ts.map +1 -1
  375. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.js +33 -19
  376. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.js.map +1 -1
  377. package/dist/transaction-coordination/adapters/node/document-temporary-identity.d.ts +1 -1
  378. package/dist/transaction-coordination/adapters/node/document-temporary-identity.d.ts.map +1 -1
  379. package/dist/transaction-coordination/adapters/node/document-temporary-identity.js.map +1 -1
  380. package/dist/transaction-coordination/adapters/node/document-transaction-status.d.ts +9 -0
  381. package/dist/transaction-coordination/adapters/node/document-transaction-status.d.ts.map +1 -0
  382. package/dist/transaction-coordination/adapters/node/document-transaction-status.js +26 -0
  383. package/dist/transaction-coordination/adapters/node/document-transaction-status.js.map +1 -0
  384. package/dist/transaction-coordination/adapters/node/known-file-transaction-status.d.ts +8 -0
  385. package/dist/transaction-coordination/adapters/node/known-file-transaction-status.d.ts.map +1 -0
  386. package/dist/transaction-coordination/adapters/node/known-file-transaction-status.js +50 -0
  387. package/dist/transaction-coordination/adapters/node/known-file-transaction-status.js.map +1 -0
  388. package/dist/transaction-coordination/adapters/node/node-foundation-transaction-slot.d.ts.map +1 -1
  389. package/dist/transaction-coordination/adapters/node/node-foundation-transaction-slot.js +42 -36
  390. package/dist/transaction-coordination/adapters/node/node-foundation-transaction-slot.js.map +1 -1
  391. package/dist/transaction-coordination/application/foundation-transaction-coordinator.d.ts +1 -1
  392. package/dist/transaction-coordination/application/foundation-transaction-coordinator.d.ts.map +1 -1
  393. package/dist/transaction-coordination/application/foundation-transaction-coordinator.js +13 -2
  394. package/dist/transaction-coordination/application/foundation-transaction-coordinator.js.map +1 -1
  395. package/dist/transaction-coordination/application/model/internal-transaction-status.d.ts +15 -3
  396. package/dist/transaction-coordination/application/model/internal-transaction-status.d.ts.map +1 -1
  397. package/dist/transaction-coordination/application/model/transaction-status.d.ts +6 -2
  398. package/dist/transaction-coordination/application/model/transaction-status.d.ts.map +1 -1
  399. package/package.json +17 -1
  400. package/schemas/document-authoring-profile/v2.schema.json +168 -0
  401. package/schemas/document-parent-materialization/v2.schema.json +65 -0
  402. package/schemas/document-plan/v2.schema.json +85 -0
  403. package/schemas/document-receipt/v2.schema.json +108 -0
  404. package/schemas/foundation-transaction-envelope/v4.schema.json +164 -0
  405. package/schemas/foundation-transaction-envelope/v5.schema.json +94 -0
  406. package/schemas/known-file-transaction-plan/v1.schema.json +65 -0
  407. package/schemas/known-file-transaction-receipt/v1.schema.json +36 -0
@@ -0,0 +1,35 @@
1
+ import type { PortablePathIdentity } from "./path-identity.js";
2
+ export type DirectoryCreatePolicy = "allow" | "forbid";
3
+ export interface ProjectedDirectory {
4
+ readonly absolutePath: string;
5
+ readonly repositoryPath: string;
6
+ }
7
+ export interface CapturedDirectory extends ProjectedDirectory {
8
+ readonly identity: PortablePathIdentity;
9
+ }
10
+ export interface DirectoryMaterializationProjection {
11
+ readonly anchor: CapturedDirectory;
12
+ readonly createPolicy: DirectoryCreatePolicy;
13
+ readonly finalParent: ProjectedDirectory;
14
+ readonly missingDirectories: readonly ProjectedDirectory[];
15
+ readonly repositoryRoot: CapturedDirectory;
16
+ }
17
+ export interface BoundDirectoryCreation extends CapturedDirectory {
18
+ readonly outcome: "created-and-bound";
19
+ readonly parentIdentity: PortablePathIdentity;
20
+ }
21
+ export type UnboundDirectoryCreationRecovery = {
22
+ readonly outcome: "not-created";
23
+ } | {
24
+ readonly observedIdentity: PortablePathIdentity;
25
+ readonly outcome: "ambiguous-manual";
26
+ };
27
+ export type DirectoryMutationErrorCode = "ALIAS_COLLISION" | "AMBIGUOUS_CREATION" | "CONCURRENT_CHANGE" | "CREATE_FORBIDDEN" | "IDENTITY_UNAVAILABLE" | "INVALID_PATH" | "NOT_DIRECTORY" | "OUTSIDE_ROOT" | "SYMLINK";
28
+ export declare class DirectoryMutationError extends Error {
29
+ readonly code: DirectoryMutationErrorCode;
30
+ readonly manualRecoveryRequired: boolean;
31
+ constructor(code: DirectoryMutationErrorCode, message: string, options?: ErrorOptions & {
32
+ readonly manualRecoveryRequired?: boolean;
33
+ });
34
+ }
35
+ //# sourceMappingURL=directory-materialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-materialization.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/application/model/directory-materialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;CAC/C;AAED,MAAM,MAAM,gCAAgC,GACxC;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACnC;IACE,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC,CAAC;AAEN,MAAM,MAAM,0BAA0B,GAClC,iBAAiB,GACjB,oBAAoB,GACpB,mBAAmB,GACnB,kBAAkB,GAClB,sBAAsB,GACtB,cAAc,GACd,eAAe,GACf,cAAc,GACd,SAAS,CAAC;AAEd,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IAEzC,YACE,IAAI,EAAE,0BAA0B,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,EAMvE;CACF"}
@@ -0,0 +1,11 @@
1
+ export class DirectoryMutationError extends Error {
2
+ code;
3
+ manualRecoveryRequired;
4
+ constructor(code, message, options) {
5
+ super(message, options);
6
+ this.name = "DirectoryMutationError";
7
+ this.code = code;
8
+ this.manualRecoveryRequired = options?.manualRecoveryRequired ?? false;
9
+ }
10
+ }
11
+ //# sourceMappingURL=directory-materialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-materialization.js","sourceRoot":"","sources":["../../../../src/repository-mutation/application/model/directory-materialization.ts"],"names":[],"mappings":"AA4CA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,CAA6B;IACjC,sBAAsB,CAAU;IAEzC,YACE,IAAgC,EAChC,OAAe,EACf,OAAsE;QAEtE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,sBAAsB,GAAG,OAAO,EAAE,sBAAsB,IAAI,KAAK,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1,63 @@
1
+ import type { PortablePathIdentity } from "./path-identity.js";
2
+ import type { KnownFileDigest, KnownFileTransactionPlanV1 } from "./known-file-transaction.js";
3
+ export interface KnownFileTransactionPortableIdentityV1 {
4
+ readonly birthtimeNs: string;
5
+ readonly dev: string;
6
+ readonly ino: string;
7
+ }
8
+ interface KnownFileTransactionRetirementV1 {
9
+ readonly kind: "destination" | "rollback-temporary" | "temporary";
10
+ readonly state: "ready" | "captured" | "unlink-authorized";
11
+ readonly directoryIdentity: KnownFileTransactionPortableIdentityV1;
12
+ readonly pathIdentity: KnownFileTransactionPortableIdentityV1;
13
+ }
14
+ export type KnownFileTransactionJournalOperationV1 = {
15
+ readonly path: string;
16
+ readonly state: "already-satisfied" | "pending" | "temporary-authorized";
17
+ readonly matchedPreimage?: number;
18
+ readonly rollbackTemporaryIdentity?: never;
19
+ readonly captureDirectoryIdentity?: never;
20
+ readonly capturedPreimageIdentity?: never;
21
+ readonly retirement?: never;
22
+ } | {
23
+ readonly path: string;
24
+ readonly state: "temporary-ready" | "capture-authorized" | "capture-ready" | "preimage-captured" | "destination-retired" | "publishing" | "published" | "rollback-restored";
25
+ readonly matchedPreimage?: number;
26
+ readonly rollbackTemporaryIdentity?: KnownFileTransactionPortableIdentityV1;
27
+ readonly temporaryIdentity: KnownFileTransactionPortableIdentityV1;
28
+ readonly captureDirectoryIdentity?: KnownFileTransactionPortableIdentityV1;
29
+ readonly capturedPreimageIdentity?: KnownFileTransactionPortableIdentityV1;
30
+ readonly retirement?: KnownFileTransactionRetirementV1;
31
+ };
32
+ export interface KnownFileTransactionJournalV1 {
33
+ readonly schemaVersion: 1;
34
+ readonly plan: KnownFileTransactionPlanV1;
35
+ readonly operations: readonly KnownFileTransactionJournalOperationV1[];
36
+ readonly authorizedDirectories: readonly string[];
37
+ readonly createdDirectories: readonly {
38
+ readonly path: string;
39
+ readonly identity: KnownFileTransactionPortableIdentityV1;
40
+ }[];
41
+ }
42
+ export interface KnownFileTransactionEnvelopeV1 {
43
+ readonly schemaVersion: 5;
44
+ readonly operationKind: "known-file-transaction";
45
+ readonly recoveryHandler: {
46
+ readonly id: "foundation.replace-known-file";
47
+ readonly contractVersion: 1;
48
+ };
49
+ readonly foundation: {
50
+ readonly version: string;
51
+ readonly buildIdentity: KnownFileDigest;
52
+ };
53
+ readonly adapterContractVersion: 1;
54
+ readonly payloadKind: "known-file-transaction-journal/v1";
55
+ readonly state: "APPLYING" | "COMMITTED";
56
+ readonly journal: KnownFileTransactionJournalV1;
57
+ readonly payloadDigest: KnownFileDigest;
58
+ readonly envelopeDigest: KnownFileDigest;
59
+ }
60
+ export declare function serializeKnownFileIdentity(identity: PortablePathIdentity): KnownFileTransactionPortableIdentityV1;
61
+ export declare function deserializeKnownFileIdentity(identity: KnownFileTransactionPortableIdentityV1): PortablePathIdentity;
62
+ export {};
63
+ //# sourceMappingURL=known-file-transaction-journal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-file-transaction-journal.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/application/model/known-file-transaction-journal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export function serializeKnownFileIdentity(identity) {
2
+ return Object.freeze({
3
+ birthtimeNs: identity.birthtimeNs.toString(),
4
+ dev: identity.dev.toString(),
5
+ ino: identity.ino.toString()
6
+ });
7
+ }
8
+ export function deserializeKnownFileIdentity(identity) {
9
+ return {
10
+ birthtimeNs: BigInt(identity.birthtimeNs),
11
+ dev: BigInt(identity.dev),
12
+ ino: BigInt(identity.ino)
13
+ };
14
+ }
15
+ //# sourceMappingURL=known-file-transaction-journal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-file-transaction-journal.js","sourceRoot":"","sources":["../../../../src/repository-mutation/application/model/known-file-transaction-journal.ts"],"names":[],"mappings":"AA8EA,MAAM,UAAU,0BAA0B,CACxC,QAA8B;IAE9B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE;QAC5C,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAAgD;IAEhD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,64 @@
1
+ export type KnownFileDigest = `sha256:${string}`;
2
+ export interface KnownFileImageV1 {
3
+ readonly contentBase64: string;
4
+ readonly digest: KnownFileDigest;
5
+ readonly mode: number;
6
+ readonly size: number;
7
+ }
8
+ export type KnownFilePreconditionV1 = {
9
+ readonly state: "absent";
10
+ } | {
11
+ readonly state: "known-file";
12
+ readonly acceptedPreimages: readonly KnownFileImageV1[];
13
+ };
14
+ export interface KnownFileTransactionOperationV1 {
15
+ readonly path: string;
16
+ readonly precondition: KnownFilePreconditionV1;
17
+ readonly postimage: KnownFileImageV1;
18
+ }
19
+ export interface KnownFileTransactionPlanV1 {
20
+ readonly schemaVersion: 1;
21
+ readonly protocol: "foundation.replace-known-file/v1";
22
+ readonly operations: readonly KnownFileTransactionOperationV1[];
23
+ readonly planDigest: KnownFileDigest;
24
+ }
25
+ export type KnownFileTransactionOperationOutcome = "already-satisfied" | "created" | "replaced" | "rolled-back-to-absent" | "rolled-back-to-preimage";
26
+ export interface KnownFileTransactionReceiptV1 {
27
+ readonly schemaVersion: 1;
28
+ readonly protocol: "foundation.replace-known-file/v1";
29
+ readonly planDigest: KnownFileDigest;
30
+ readonly outcome: "already-satisfied" | "applied" | "rolled-back";
31
+ readonly operations: readonly {
32
+ readonly path: string;
33
+ readonly outcome: KnownFileTransactionOperationOutcome;
34
+ readonly resultDigest?: KnownFileDigest;
35
+ }[];
36
+ readonly receiptDigest: KnownFileDigest;
37
+ }
38
+ export type KnownFileTransactionOperationInput = {
39
+ readonly path: string;
40
+ readonly precondition: {
41
+ readonly state: "absent";
42
+ };
43
+ readonly postimage: {
44
+ readonly bytes: Uint8Array;
45
+ readonly mode?: number;
46
+ };
47
+ } | {
48
+ readonly path: string;
49
+ readonly precondition: {
50
+ readonly state: "known-file";
51
+ readonly acceptedPreimages: readonly {
52
+ readonly bytes: Uint8Array;
53
+ readonly mode: number;
54
+ }[];
55
+ };
56
+ readonly postimage: {
57
+ readonly bytes: Uint8Array;
58
+ readonly mode: number;
59
+ };
60
+ };
61
+ export interface CompileKnownFileTransactionPlanInput {
62
+ readonly operations: readonly KnownFileTransactionOperationInput[];
63
+ }
64
+ //# sourceMappingURL=known-file-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-file-transaction.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/application/model/known-file-transaction.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,UAAU,MAAM,EAAE,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GAC5B;IACE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzD,CAAC;AAEN,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,kCAAkC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,SAAS,+BAA+B,EAAE,CAAC;IAChE,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,MAAM,oCAAoC,GAC5C,mBAAmB,GACnB,SAAS,GACT,UAAU,GACV,uBAAuB,GACvB,yBAAyB,CAAC;AAE9B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,kCAAkC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,GAAG,aAAa,CAAC;IAClE,QAAQ,CAAC,UAAU,EAAE,SAAS;QAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,oCAAoC,CAAC;QACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC;KACzC,EAAE,CAAC;IACJ,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;CACzC;AAED,MAAM,MAAM,kCAAkC,GAC1C;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;QAC7B,QAAQ,CAAC,iBAAiB,EAAE,SAAS;YACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;YAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACvB,EAAE,CAAC;KACL,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEN,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,kCAAkC,EAAE,CAAC;CACpE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=known-file-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-file-transaction.js","sourceRoot":"","sources":["../../../../src/repository-mutation/application/model/known-file-transaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { KnownFileTransactionEnvelopeV1, KnownFileTransactionJournalV1 } from "../model/known-file-transaction-journal.js";
2
+ export declare function compileKnownFileTransactionEnvelope(input: {
3
+ readonly foundation: KnownFileTransactionEnvelopeV1["foundation"];
4
+ readonly journal: KnownFileTransactionJournalV1;
5
+ readonly state: KnownFileTransactionEnvelopeV1["state"];
6
+ }): KnownFileTransactionEnvelopeV1;
7
+ export declare function assertKnownFileTransactionEnvelope(value: unknown): asserts value is KnownFileTransactionEnvelopeV1;
8
+ //# sourceMappingURL=known-file-transaction-envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-file-transaction-envelope.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/application/policies/known-file-transaction-envelope.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,4CAA4C,CAAC;AA6OpD,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,QAAQ,CAAC,UAAU,EAAE,8BAA8B,CAAC,YAAY,CAAC,CAAC;IAClE,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAC;CACzD,GAAG,8BAA8B,CAUjC;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,8BAA8B,CAgCjD"}
@@ -0,0 +1,241 @@
1
+ import { canonicalJson, sha256Json } from "../../../canonical-json.js";
2
+ import { deserializeKnownFileIdentity } from "../model/known-file-transaction-journal.js";
3
+ import { portableRepositoryPathProblem } from "../model/repository-path.js";
4
+ import { assertKnownFileTransactionPlan } from "./known-file-transaction-plan.js";
5
+ const SHA256 = /^sha256:[0-9a-f]{64}$/u;
6
+ const POSITIVE_INTEGER = /^[1-9][0-9]*$/u;
7
+ class KnownFileTransactionEnvelopeError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = "KnownFileTransactionEnvelopeError";
11
+ }
12
+ }
13
+ function record(value, subject) {
14
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
15
+ throw new KnownFileTransactionEnvelopeError(`${subject} is invalid.`);
16
+ }
17
+ return value;
18
+ }
19
+ function exactKeys(value, keys, subject) {
20
+ if (Object.keys(value).toSorted().join(",") !== [...keys].toSorted().join(",")) {
21
+ throw new KnownFileTransactionEnvelopeError(`${subject} has unknown or missing fields.`);
22
+ }
23
+ }
24
+ function assertIdentity(value, subject) {
25
+ const identity = record(value, subject);
26
+ exactKeys(identity, ["birthtimeNs", "dev", "ino"], subject);
27
+ for (const field of ["birthtimeNs", "dev", "ino"]) {
28
+ if (!POSITIVE_INTEGER.test(String(identity[field]))) {
29
+ throw new KnownFileTransactionEnvelopeError(`${subject}.${field} is invalid.`);
30
+ }
31
+ }
32
+ deserializeKnownFileIdentity(identity);
33
+ }
34
+ function journalOperationKeys(operation, withTemporary) {
35
+ if (!withTemporary) {
36
+ return operation["matchedPreimage"] === undefined
37
+ ? ["path", "state"]
38
+ : ["matchedPreimage", "path", "state"];
39
+ }
40
+ return [
41
+ ...(operation["matchedPreimage"] === undefined ? [] : ["matchedPreimage"]),
42
+ "path",
43
+ ...(operation["rollbackTemporaryIdentity"] === undefined
44
+ ? []
45
+ : ["rollbackTemporaryIdentity"]),
46
+ ...(operation["captureDirectoryIdentity"] === undefined
47
+ ? []
48
+ : ["captureDirectoryIdentity"]),
49
+ ...(operation["capturedPreimageIdentity"] === undefined
50
+ ? []
51
+ : ["capturedPreimageIdentity"]),
52
+ ...(operation["retirement"] === undefined ? [] : ["retirement"]),
53
+ "state",
54
+ "temporaryIdentity"
55
+ ];
56
+ }
57
+ function assertJournalOperationIdentities(options) {
58
+ const subject = `Known-file journal operation ${options.index}`;
59
+ assertIdentity(options.operation["temporaryIdentity"], `${subject} temporary identity`);
60
+ if (options.operation["rollbackTemporaryIdentity"] !== undefined) {
61
+ if (options.precondition?.state !== "known-file") {
62
+ throw new KnownFileTransactionEnvelopeError(`${subject} rollback identity is invalid.`);
63
+ }
64
+ assertIdentity(options.operation["rollbackTemporaryIdentity"], `${subject} rollback temporary identity`);
65
+ }
66
+ if (options.operation["captureDirectoryIdentity"] !== undefined) {
67
+ if (options.precondition?.state !== "known-file") {
68
+ throw new KnownFileTransactionEnvelopeError(`${subject} capture directory identity is invalid.`);
69
+ }
70
+ assertIdentity(options.operation["captureDirectoryIdentity"], `${subject} capture directory identity`);
71
+ }
72
+ if (options.operation["capturedPreimageIdentity"] !== undefined) {
73
+ if (options.precondition?.state !== "known-file" ||
74
+ options.operation["captureDirectoryIdentity"] === undefined ||
75
+ !["preimage-captured", "destination-retired", "publishing", "published", "rollback-restored"].includes(String(options.state))) {
76
+ throw new KnownFileTransactionEnvelopeError(`${subject} captured preimage identity is invalid.`);
77
+ }
78
+ assertIdentity(options.operation["capturedPreimageIdentity"], `${subject} captured preimage identity`);
79
+ }
80
+ if (options.operation["retirement"] !== undefined) {
81
+ const retirement = record(options.operation["retirement"], `${subject} retirement`);
82
+ exactKeys(retirement, ["directoryIdentity", "kind", "pathIdentity", "state"], `${subject} retirement`);
83
+ if (!["destination", "rollback-temporary", "temporary"].includes(String(retirement["kind"])) ||
84
+ !["ready", "captured", "unlink-authorized"].includes(String(retirement["state"]))) {
85
+ throw new KnownFileTransactionEnvelopeError(`${subject} retirement transition is invalid.`);
86
+ }
87
+ assertIdentity(retirement["directoryIdentity"], `${subject} retirement directory identity`);
88
+ assertIdentity(retirement["pathIdentity"], `${subject} retirement path identity`);
89
+ }
90
+ if (["capture-ready", "preimage-captured", "destination-retired"].includes(String(options.state)) &&
91
+ options.operation["captureDirectoryIdentity"] === undefined) {
92
+ throw new KnownFileTransactionEnvelopeError(`${subject} lacks capture directory identity.`);
93
+ }
94
+ }
95
+ function assertJournalOperation(candidate, index, plan) {
96
+ const operation = record(candidate, `Known-file journal operation ${index}`);
97
+ const state = operation["state"];
98
+ const withTemporary = [
99
+ "temporary-ready", "capture-authorized", "capture-ready", "preimage-captured",
100
+ "destination-retired", "publishing", "published", "rollback-restored"
101
+ ].includes(String(state));
102
+ exactKeys(operation, journalOperationKeys(operation, withTemporary), `Known-file journal operation ${index}`);
103
+ if (operation["path"] !== plan.operations[index]?.path ||
104
+ ![
105
+ "already-satisfied", "pending", "temporary-authorized", "temporary-ready", "capture-authorized", "capture-ready",
106
+ "preimage-captured", "destination-retired", "publishing", "published", "rollback-restored"
107
+ ].includes(String(state))) {
108
+ throw new KnownFileTransactionEnvelopeError(`Known-file journal operation ${index} is invalid.`);
109
+ }
110
+ const matched = operation["matchedPreimage"];
111
+ const precondition = plan.operations[index]?.precondition;
112
+ if (matched !== undefined &&
113
+ (!Number.isSafeInteger(matched) || matched < 0 ||
114
+ precondition?.state !== "known-file" || matched >= precondition.acceptedPreimages.length)) {
115
+ throw new KnownFileTransactionEnvelopeError(`Known-file journal operation ${index} preimage binding is invalid.`);
116
+ }
117
+ if (withTemporary) {
118
+ assertJournalOperationIdentities({ index, operation, precondition, state });
119
+ }
120
+ }
121
+ function permittedParentDirectories(plan) {
122
+ const permitted = new Set();
123
+ for (const operation of plan.operations) {
124
+ const segments = operation.path.split("/");
125
+ segments.pop();
126
+ for (let count = 1; count <= segments.length; count += 1) {
127
+ permitted.add(segments.slice(0, count).join("/"));
128
+ }
129
+ }
130
+ return permitted;
131
+ }
132
+ function assertCreatedDirectories(value, plan) {
133
+ if (!Array.isArray(value) || value.length > 128) {
134
+ throw new KnownFileTransactionEnvelopeError("Known-file created-directory evidence is invalid.");
135
+ }
136
+ const permitted = permittedParentDirectories(plan);
137
+ const paths = [];
138
+ for (const [index, candidate] of value.entries()) {
139
+ const directory = record(candidate, `Known-file created directory ${index}`);
140
+ exactKeys(directory, ["identity", "path"], `Known-file created directory ${index}`);
141
+ if (typeof directory["path"] !== "string" ||
142
+ portableRepositoryPathProblem(directory["path"]) !== undefined ||
143
+ directory["path"].normalize("NFC") !== directory["path"] ||
144
+ !permitted.has(directory["path"])) {
145
+ throw new KnownFileTransactionEnvelopeError(`Known-file created directory ${index} path is invalid.`);
146
+ }
147
+ assertIdentity(directory["identity"], `Known-file created directory ${index} identity`);
148
+ paths.push(directory["path"]);
149
+ }
150
+ if (new Set(paths).size !== paths.length) {
151
+ throw new KnownFileTransactionEnvelopeError("Known-file created-directory evidence contains duplicates.");
152
+ }
153
+ return paths;
154
+ }
155
+ function assertJournal(value) {
156
+ const journal = record(value, "Known-file transaction journal");
157
+ exactKeys(journal, ["authorizedDirectories", "createdDirectories", "operations", "plan", "schemaVersion"], "Known-file transaction journal");
158
+ if (journal["schemaVersion"] !== 1) {
159
+ throw new KnownFileTransactionEnvelopeError("Known-file transaction journal version is unsupported.");
160
+ }
161
+ assertKnownFileTransactionPlan(journal["plan"]);
162
+ const plan = journal["plan"];
163
+ if (!Array.isArray(journal["operations"]) || journal["operations"].length !== plan.operations.length) {
164
+ throw new KnownFileTransactionEnvelopeError("Known-file transaction journal operations do not bind the Plan.");
165
+ }
166
+ journal["operations"].forEach((candidate, index) => {
167
+ assertJournalOperation(candidate, index, plan);
168
+ });
169
+ const createdPaths = assertCreatedDirectories(journal["createdDirectories"], plan);
170
+ const authorizedDirectories = journal["authorizedDirectories"];
171
+ if (!Array.isArray(authorizedDirectories) || authorizedDirectories.length > 128 ||
172
+ authorizedDirectories.some((path) => typeof path !== "string" ||
173
+ portableRepositoryPathProblem(path) !== undefined || path.normalize("NFC") !== path ||
174
+ !permittedParentDirectories(plan).has(path)) ||
175
+ new Set(authorizedDirectories).size !== authorizedDirectories.length ||
176
+ authorizedDirectories.some((path) => createdPaths.includes(path))) {
177
+ throw new KnownFileTransactionEnvelopeError("Known-file authorized-directory evidence is invalid.");
178
+ }
179
+ }
180
+ function body(input) {
181
+ const payloadDigest = sha256Json(input.journal);
182
+ return {
183
+ schemaVersion: 5,
184
+ operationKind: "known-file-transaction",
185
+ recoveryHandler: {
186
+ id: "foundation.replace-known-file",
187
+ contractVersion: 1
188
+ },
189
+ foundation: input.foundation,
190
+ adapterContractVersion: 1,
191
+ payloadKind: "known-file-transaction-journal/v1",
192
+ state: input.state,
193
+ journal: input.journal,
194
+ payloadDigest
195
+ };
196
+ }
197
+ export function compileKnownFileTransactionEnvelope(input) {
198
+ assertJournal(input.journal);
199
+ if (!SHA256.test(input.foundation.buildIdentity) || input.foundation.version.length === 0) {
200
+ throw new KnownFileTransactionEnvelopeError("Known-file transaction Foundation identity is invalid.");
201
+ }
202
+ const envelopeBody = body(input);
203
+ return Object.freeze({
204
+ ...envelopeBody,
205
+ envelopeDigest: sha256Json(envelopeBody)
206
+ });
207
+ }
208
+ export function assertKnownFileTransactionEnvelope(value) {
209
+ const envelope = record(value, "Known-file transaction envelope");
210
+ exactKeys(envelope, [
211
+ "adapterContractVersion", "envelopeDigest", "foundation", "journal",
212
+ "operationKind", "payloadDigest", "payloadKind", "recoveryHandler",
213
+ "schemaVersion", "state"
214
+ ], "Known-file transaction envelope");
215
+ const foundation = record(envelope["foundation"], "Known-file Foundation identity");
216
+ const recovery = record(envelope["recoveryHandler"], "Known-file recovery handler");
217
+ exactKeys(foundation, ["buildIdentity", "version"], "Known-file Foundation identity");
218
+ exactKeys(recovery, ["contractVersion", "id"], "Known-file recovery handler");
219
+ if (envelope["schemaVersion"] !== 5 ||
220
+ envelope["operationKind"] !== "known-file-transaction" ||
221
+ envelope["adapterContractVersion"] !== 1 ||
222
+ envelope["payloadKind"] !== "known-file-transaction-journal/v1" ||
223
+ !["APPLYING", "COMMITTED"].includes(String(envelope["state"])) ||
224
+ recovery["id"] !== "foundation.replace-known-file" ||
225
+ recovery["contractVersion"] !== 1 ||
226
+ typeof foundation["version"] !== "string" ||
227
+ !SHA256.test(String(foundation["buildIdentity"]))) {
228
+ throw new KnownFileTransactionEnvelopeError("Known-file transaction envelope binding is invalid.");
229
+ }
230
+ assertJournal(envelope["journal"]);
231
+ const reconstructed = compileKnownFileTransactionEnvelope({
232
+ foundation: foundation,
233
+ journal: envelope["journal"],
234
+ state: envelope["state"]
235
+ });
236
+ if (canonicalJson(reconstructed) !==
237
+ canonicalJson(value)) {
238
+ throw new KnownFileTransactionEnvelopeError("Known-file transaction envelope is non-canonical or tampered.");
239
+ }
240
+ }
241
+ //# sourceMappingURL=known-file-transaction-envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-file-transaction-envelope.js","sourceRoot":"","sources":["../../../../src/repository-mutation/application/policies/known-file-transaction-envelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CompileKnownFileTransactionPlanInput, KnownFileTransactionPlanV1 } from "../model/known-file-transaction.js";
2
+ export declare class KnownFileTransactionPlanError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export declare function compileKnownFileTransactionPlan(input: CompileKnownFileTransactionPlanInput): KnownFileTransactionPlanV1;
6
+ export declare function assertKnownFileTransactionPlan(value: unknown): asserts value is KnownFileTransactionPlanV1;
7
+ //# sourceMappingURL=known-file-transaction-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-file-transaction-plan.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/application/policies/known-file-transaction-plan.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,oCAAoC,EAIpC,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAa5C,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,YAAmB,OAAO,EAAE,MAAM,EAGjC;CACF;AAuID,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,oCAAoC,GAC1C,0BAA0B,CAmD5B;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAuD7C"}