agent-passport-system 4.3.0 → 4.4.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 (323) hide show
  1. package/README.md +6 -6
  2. package/dist/src/adapters/crewai.js +2 -2
  3. package/dist/src/adapters/crewai.js.map +1 -1
  4. package/dist/src/adapters/gonka.js +5 -5
  5. package/dist/src/adapters/gonka.js.map +1 -1
  6. package/dist/src/adapters/ibac.js +2 -2
  7. package/dist/src/adapters/ibac.js.map +1 -1
  8. package/dist/src/adapters/langchain.js +2 -2
  9. package/dist/src/adapters/langchain.js.map +1 -1
  10. package/dist/src/adapters/mcp.js +2 -2
  11. package/dist/src/adapters/mcp.js.map +1 -1
  12. package/dist/src/adapters/oauth-id-jag/import-v1.js +4 -4
  13. package/dist/src/adapters/oauth-id-jag/import-v1.js.map +1 -1
  14. package/dist/src/adapters/oauth-id-jag/index.js +4 -4
  15. package/dist/src/adapters/oauth-id-jag/index.js.map +1 -1
  16. package/dist/src/cli/index.js +50 -5
  17. package/dist/src/cli/index.js.map +1 -1
  18. package/dist/src/core/a2a.js +2 -2
  19. package/dist/src/core/a2a.js.map +1 -1
  20. package/dist/src/core/action-ref.d.ts +7 -28
  21. package/dist/src/core/action-ref.d.ts.map +1 -1
  22. package/dist/src/core/action-ref.js +20 -6
  23. package/dist/src/core/action-ref.js.map +1 -1
  24. package/dist/src/core/agora.js +2 -2
  25. package/dist/src/core/agora.js.map +1 -1
  26. package/dist/src/core/aps-txt.d.ts.map +1 -1
  27. package/dist/src/core/aps-txt.js +4 -3
  28. package/dist/src/core/aps-txt.js.map +1 -1
  29. package/dist/src/core/attestation.d.ts +8 -0
  30. package/dist/src/core/attestation.d.ts.map +1 -1
  31. package/dist/src/core/attestation.js +13 -3
  32. package/dist/src/core/attestation.js.map +1 -1
  33. package/dist/src/core/behavioral-fingerprint.js +2 -2
  34. package/dist/src/core/behavioral-fingerprint.js.map +1 -1
  35. package/dist/src/core/behavioral-memory-receipt.js +2 -2
  36. package/dist/src/core/behavioral-memory-receipt.js.map +1 -1
  37. package/dist/src/core/behavioral-memory.js +3 -3
  38. package/dist/src/core/behavioral-memory.js.map +1 -1
  39. package/dist/src/core/bilateral-receipt.d.ts.map +1 -1
  40. package/dist/src/core/bilateral-receipt.js +34 -8
  41. package/dist/src/core/bilateral-receipt.js.map +1 -1
  42. package/dist/src/core/canonical-jcs.d.ts +36 -2
  43. package/dist/src/core/canonical-jcs.d.ts.map +1 -1
  44. package/dist/src/core/canonical-jcs.js +96 -7
  45. package/dist/src/core/canonical-jcs.js.map +1 -1
  46. package/dist/src/core/canonical.d.ts +26 -0
  47. package/dist/src/core/canonical.d.ts.map +1 -1
  48. package/dist/src/core/canonical.js +64 -0
  49. package/dist/src/core/canonical.js.map +1 -1
  50. package/dist/src/core/charter.d.ts.map +1 -1
  51. package/dist/src/core/charter.js +25 -17
  52. package/dist/src/core/charter.js.map +1 -1
  53. package/dist/src/core/commerce.js +2 -2
  54. package/dist/src/core/commerce.js.map +1 -1
  55. package/dist/src/core/completion.js +2 -2
  56. package/dist/src/core/completion.js.map +1 -1
  57. package/dist/src/core/coordination.js +10 -10
  58. package/dist/src/core/coordination.js.map +1 -1
  59. package/dist/src/core/credential-request.js +2 -2
  60. package/dist/src/core/credential-request.js.map +1 -1
  61. package/dist/src/core/cross-chain.d.ts +8 -0
  62. package/dist/src/core/cross-chain.d.ts.map +1 -1
  63. package/dist/src/core/cross-chain.js +23 -9
  64. package/dist/src/core/cross-chain.js.map +1 -1
  65. package/dist/src/core/data-lifecycle.js +7 -7
  66. package/dist/src/core/data-lifecycle.js.map +1 -1
  67. package/dist/src/core/data-source-attribution.js +3 -3
  68. package/dist/src/core/data-source-attribution.js.map +1 -1
  69. package/dist/src/core/data-source.js +5 -5
  70. package/dist/src/core/data-source.js.map +1 -1
  71. package/dist/src/core/decision-semantics.d.ts +9 -9
  72. package/dist/src/core/decision-semantics.d.ts.map +1 -1
  73. package/dist/src/core/decision-semantics.js +20 -6
  74. package/dist/src/core/decision-semantics.js.map +1 -1
  75. package/dist/src/core/delegation.d.ts.map +1 -1
  76. package/dist/src/core/delegation.js +3 -2
  77. package/dist/src/core/delegation.js.map +1 -1
  78. package/dist/src/core/did.js +2 -2
  79. package/dist/src/core/did.js.map +1 -1
  80. package/dist/src/core/encrypted-messaging.js +5 -5
  81. package/dist/src/core/encrypted-messaging.js.map +1 -1
  82. package/dist/src/core/escalation.js +4 -4
  83. package/dist/src/core/escalation.js.map +1 -1
  84. package/dist/src/core/evaluation-context.js +3 -3
  85. package/dist/src/core/evaluation-context.js.map +1 -1
  86. package/dist/src/core/evidence-bundle.d.ts +8 -0
  87. package/dist/src/core/evidence-bundle.d.ts.map +1 -1
  88. package/dist/src/core/evidence-bundle.js +13 -3
  89. package/dist/src/core/evidence-bundle.js.map +1 -1
  90. package/dist/src/core/execution-attestation.js +7 -7
  91. package/dist/src/core/execution-attestation.js.map +1 -1
  92. package/dist/src/core/execution-envelope.js +7 -7
  93. package/dist/src/core/execution-envelope.js.map +1 -1
  94. package/dist/src/core/federation.js +3 -3
  95. package/dist/src/core/federation.js.map +1 -1
  96. package/dist/src/core/fidelity-probe.js +2 -2
  97. package/dist/src/core/fidelity-probe.js.map +1 -1
  98. package/dist/src/core/governance-block.d.ts.map +1 -1
  99. package/dist/src/core/governance-block.js +8 -5
  100. package/dist/src/core/governance-block.js.map +1 -1
  101. package/dist/src/core/governance-consumer.d.ts.map +1 -1
  102. package/dist/src/core/governance-consumer.js +4 -1
  103. package/dist/src/core/governance-consumer.js.map +1 -1
  104. package/dist/src/core/governance.js +3 -3
  105. package/dist/src/core/governance.js.map +1 -1
  106. package/dist/src/core/identity.js +5 -5
  107. package/dist/src/core/identity.js.map +1 -1
  108. package/dist/src/core/intent.js +5 -5
  109. package/dist/src/core/intent.js.map +1 -1
  110. package/dist/src/core/key-rotation.d.ts.map +1 -1
  111. package/dist/src/core/key-rotation.js +12 -2
  112. package/dist/src/core/key-rotation.js.map +1 -1
  113. package/dist/src/core/messaging-audit.js +2 -2
  114. package/dist/src/core/messaging-audit.js.map +1 -1
  115. package/dist/src/core/obligations.js +6 -6
  116. package/dist/src/core/obligations.js.map +1 -1
  117. package/dist/src/core/oracle-witness.js +2 -2
  118. package/dist/src/core/oracle-witness.js.map +1 -1
  119. package/dist/src/core/passport.js +3 -3
  120. package/dist/src/core/passport.js.map +1 -1
  121. package/dist/src/core/policy.d.ts.map +1 -1
  122. package/dist/src/core/policy.js +12 -11
  123. package/dist/src/core/policy.js.map +1 -1
  124. package/dist/src/core/precedent.js +2 -2
  125. package/dist/src/core/precedent.js.map +1 -1
  126. package/dist/src/core/principal.js +3 -3
  127. package/dist/src/core/principal.js.map +1 -1
  128. package/dist/src/core/probe-identity.js +2 -2
  129. package/dist/src/core/probe-identity.js.map +1 -1
  130. package/dist/src/core/reserve.js +2 -2
  131. package/dist/src/core/reserve.js.map +1 -1
  132. package/dist/src/core/reversibility-fold.d.ts +8 -0
  133. package/dist/src/core/reversibility-fold.d.ts.map +1 -1
  134. package/dist/src/core/reversibility-fold.js +13 -3
  135. package/dist/src/core/reversibility-fold.js.map +1 -1
  136. package/dist/src/core/routing.js +6 -6
  137. package/dist/src/core/routing.js.map +1 -1
  138. package/dist/src/core/tool-integrity.d.ts.map +1 -1
  139. package/dist/src/core/tool-integrity.js +18 -8
  140. package/dist/src/core/tool-integrity.js.map +1 -1
  141. package/dist/src/core/transactional.js +4 -4
  142. package/dist/src/core/transactional.js.map +1 -1
  143. package/dist/src/core/values.js +3 -3
  144. package/dist/src/core/values.js.map +1 -1
  145. package/dist/src/core/vc-wrapper.js +2 -2
  146. package/dist/src/core/vc-wrapper.js.map +1 -1
  147. package/dist/src/core/vc.js +2 -2
  148. package/dist/src/core/vc.js.map +1 -1
  149. package/dist/src/core/write-policy.d.ts +37 -0
  150. package/dist/src/core/write-policy.d.ts.map +1 -0
  151. package/dist/src/core/write-policy.js +100 -0
  152. package/dist/src/core/write-policy.js.map +1 -0
  153. package/dist/src/decisionReceipt.d.ts +9 -1
  154. package/dist/src/decisionReceipt.d.ts.map +1 -1
  155. package/dist/src/decisionReceipt.js +40 -6
  156. package/dist/src/decisionReceipt.js.map +1 -1
  157. package/dist/src/interop/agent-json-bridge.js +2 -2
  158. package/dist/src/interop/agent-json-bridge.js.map +1 -1
  159. package/dist/src/profiles/a2a/identity-v1.js +2 -2
  160. package/dist/src/profiles/a2a/identity-v1.js.map +1 -1
  161. package/dist/src/storage/receipt-bundle.d.ts.map +1 -1
  162. package/dist/src/storage/receipt-bundle.js +12 -4
  163. package/dist/src/storage/receipt-bundle.js.map +1 -1
  164. package/dist/src/storage/volatile-backend.js +4 -4
  165. package/dist/src/storage/volatile-backend.js.map +1 -1
  166. package/dist/src/types/policy.d.ts +1 -1
  167. package/dist/src/types/policy.d.ts.map +1 -1
  168. package/dist/src/v2/accountability/construct/action.js +3 -3
  169. package/dist/src/v2/accountability/construct/action.js.map +1 -1
  170. package/dist/src/v2/accountability/construct/authority-boundary.js +3 -3
  171. package/dist/src/v2/accountability/construct/authority-boundary.js.map +1 -1
  172. package/dist/src/v2/accountability/construct/bundle.d.ts.map +1 -1
  173. package/dist/src/v2/accountability/construct/bundle.js +5 -3
  174. package/dist/src/v2/accountability/construct/bundle.js.map +1 -1
  175. package/dist/src/v2/accountability/construct/contestability.js +4 -4
  176. package/dist/src/v2/accountability/construct/contestability.js.map +1 -1
  177. package/dist/src/v2/accountability/construct/custody.js +3 -3
  178. package/dist/src/v2/accountability/construct/custody.js.map +1 -1
  179. package/dist/src/v2/accountability/verify/bundle.d.ts.map +1 -1
  180. package/dist/src/v2/accountability/verify/bundle.js +4 -2
  181. package/dist/src/v2/accountability/verify/bundle.js.map +1 -1
  182. package/dist/src/v2/attribution-consent/create.d.ts +12 -1
  183. package/dist/src/v2/attribution-consent/create.d.ts.map +1 -1
  184. package/dist/src/v2/attribution-consent/create.js +18 -6
  185. package/dist/src/v2/attribution-consent/create.js.map +1 -1
  186. package/dist/src/v2/attribution-consent/sign.js +2 -2
  187. package/dist/src/v2/attribution-consent/sign.js.map +1 -1
  188. package/dist/src/v2/attribution-primitive/canonical.d.ts +17 -2
  189. package/dist/src/v2/attribution-primitive/canonical.d.ts.map +1 -1
  190. package/dist/src/v2/attribution-primitive/canonical.js +27 -3
  191. package/dist/src/v2/attribution-primitive/canonical.js.map +1 -1
  192. package/dist/src/v2/attribution-primitive/construct.d.ts +0 -15
  193. package/dist/src/v2/attribution-primitive/construct.d.ts.map +1 -1
  194. package/dist/src/v2/attribution-primitive/construct.js +24 -11
  195. package/dist/src/v2/attribution-primitive/construct.js.map +1 -1
  196. package/dist/src/v2/attribution-primitive/merkle.d.ts +7 -3
  197. package/dist/src/v2/attribution-primitive/merkle.d.ts.map +1 -1
  198. package/dist/src/v2/attribution-primitive/merkle.js +18 -6
  199. package/dist/src/v2/attribution-primitive/merkle.js.map +1 -1
  200. package/dist/src/v2/attribution-primitive/residual.js +2 -2
  201. package/dist/src/v2/attribution-primitive/residual.js.map +1 -1
  202. package/dist/src/v2/attribution-settlement/aggregate.d.ts +8 -0
  203. package/dist/src/v2/attribution-settlement/aggregate.d.ts.map +1 -1
  204. package/dist/src/v2/attribution-settlement/aggregate.js +16 -6
  205. package/dist/src/v2/attribution-settlement/aggregate.js.map +1 -1
  206. package/dist/src/v2/attribution-settlement/merkle.d.ts +8 -0
  207. package/dist/src/v2/attribution-settlement/merkle.d.ts.map +1 -1
  208. package/dist/src/v2/attribution-settlement/merkle.js +11 -1
  209. package/dist/src/v2/attribution-settlement/merkle.js.map +1 -1
  210. package/dist/src/v2/attribution-settlement/sign.d.ts +9 -3
  211. package/dist/src/v2/attribution-settlement/sign.d.ts.map +1 -1
  212. package/dist/src/v2/attribution-settlement/sign.js +18 -4
  213. package/dist/src/v2/attribution-settlement/sign.js.map +1 -1
  214. package/dist/src/v2/authority-delegation/canonical.d.ts +14 -0
  215. package/dist/src/v2/authority-delegation/canonical.d.ts.map +1 -1
  216. package/dist/src/v2/authority-delegation/canonical.js +28 -2
  217. package/dist/src/v2/authority-delegation/canonical.js.map +1 -1
  218. package/dist/src/v2/authority-delegation/issue.js +2 -2
  219. package/dist/src/v2/authority-delegation/issue.js.map +1 -1
  220. package/dist/src/v2/behavioral_drift_window/envelope.d.ts +8 -0
  221. package/dist/src/v2/behavioral_drift_window/envelope.d.ts.map +1 -1
  222. package/dist/src/v2/behavioral_drift_window/envelope.js +13 -2
  223. package/dist/src/v2/behavioral_drift_window/envelope.js.map +1 -1
  224. package/dist/src/v2/bridge.d.ts +8 -0
  225. package/dist/src/v2/bridge.d.ts.map +1 -1
  226. package/dist/src/v2/bridge.js +13 -2
  227. package/dist/src/v2/bridge.js.map +1 -1
  228. package/dist/src/v2/cognitive-attestation/envelope.d.ts +9 -7
  229. package/dist/src/v2/cognitive-attestation/envelope.d.ts.map +1 -1
  230. package/dist/src/v2/cognitive-attestation/envelope.js +18 -4
  231. package/dist/src/v2/cognitive-attestation/envelope.js.map +1 -1
  232. package/dist/src/v2/cognitive_attestation/envelope.d.ts +8 -0
  233. package/dist/src/v2/cognitive_attestation/envelope.d.ts.map +1 -1
  234. package/dist/src/v2/cognitive_attestation/envelope.js +13 -2
  235. package/dist/src/v2/cognitive_attestation/envelope.js.map +1 -1
  236. package/dist/src/v2/context-provenance/cpa.d.ts +8 -0
  237. package/dist/src/v2/context-provenance/cpa.d.ts.map +1 -1
  238. package/dist/src/v2/context-provenance/cpa.js +22 -8
  239. package/dist/src/v2/context-provenance/cpa.js.map +1 -1
  240. package/dist/src/v2/context-provenance/merkle.d.ts +21 -18
  241. package/dist/src/v2/context-provenance/merkle.d.ts.map +1 -1
  242. package/dist/src/v2/context-provenance/merkle.js +38 -5
  243. package/dist/src/v2/context-provenance/merkle.js.map +1 -1
  244. package/dist/src/v2/context-provenance/types.d.ts +1 -1
  245. package/dist/src/v2/cross_issuer_attestation/envelope.d.ts +8 -0
  246. package/dist/src/v2/cross_issuer_attestation/envelope.d.ts.map +1 -1
  247. package/dist/src/v2/cross_issuer_attestation/envelope.js +13 -2
  248. package/dist/src/v2/cross_issuer_attestation/envelope.js.map +1 -1
  249. package/dist/src/v2/hash-pointer/profile.d.ts.map +1 -1
  250. package/dist/src/v2/hash-pointer/profile.js +11 -3
  251. package/dist/src/v2/hash-pointer/profile.js.map +1 -1
  252. package/dist/src/v2/human-escalation.d.ts +10 -0
  253. package/dist/src/v2/human-escalation.d.ts.map +1 -1
  254. package/dist/src/v2/human-escalation.js +15 -1
  255. package/dist/src/v2/human-escalation.js.map +1 -1
  256. package/dist/src/v2/human-oversight/index.d.ts +9 -9
  257. package/dist/src/v2/human-oversight/index.d.ts.map +1 -1
  258. package/dist/src/v2/human-oversight/index.js +18 -4
  259. package/dist/src/v2/human-oversight/index.js.map +1 -1
  260. package/dist/src/v2/instruction-provenance/canonicalize.d.ts +17 -5
  261. package/dist/src/v2/instruction-provenance/canonicalize.d.ts.map +1 -1
  262. package/dist/src/v2/instruction-provenance/canonicalize.js +28 -3
  263. package/dist/src/v2/instruction-provenance/canonicalize.js.map +1 -1
  264. package/dist/src/v2/instruction-provenance/envelope.js +3 -3
  265. package/dist/src/v2/instruction-provenance/envelope.js.map +1 -1
  266. package/dist/src/v2/memory_provenance/envelope.d.ts +8 -0
  267. package/dist/src/v2/memory_provenance/envelope.d.ts.map +1 -1
  268. package/dist/src/v2/memory_provenance/envelope.js +13 -2
  269. package/dist/src/v2/memory_provenance/envelope.js.map +1 -1
  270. package/dist/src/v2/mutual-auth/certificate.d.ts.map +1 -1
  271. package/dist/src/v2/mutual-auth/certificate.js +6 -4
  272. package/dist/src/v2/mutual-auth/certificate.js.map +1 -1
  273. package/dist/src/v2/mutual-auth/handshake.js +3 -3
  274. package/dist/src/v2/mutual-auth/handshake.js.map +1 -1
  275. package/dist/src/v2/mutual-auth/trust-bundle.d.ts.map +1 -1
  276. package/dist/src/v2/mutual-auth/trust-bundle.js +4 -3
  277. package/dist/src/v2/mutual-auth/trust-bundle.js.map +1 -1
  278. package/dist/src/v2/mutual-auth/types.d.ts +3 -3
  279. package/dist/src/v2/mutual-auth/types.d.ts.map +1 -1
  280. package/dist/src/v2/payment-rails/acp/index.d.ts.map +1 -1
  281. package/dist/src/v2/payment-rails/acp/index.js +52 -11
  282. package/dist/src/v2/payment-rails/acp/index.js.map +1 -1
  283. package/dist/src/v2/payment-rails/acp/types.d.ts +4 -4
  284. package/dist/src/v2/payment-rails/acp/types.d.ts.map +1 -1
  285. package/dist/src/v2/payment-rails/ap2/index.js +2 -2
  286. package/dist/src/v2/payment-rails/ap2/index.js.map +1 -1
  287. package/dist/src/v2/payment-rails/canonicalize.d.ts +32 -0
  288. package/dist/src/v2/payment-rails/canonicalize.d.ts.map +1 -1
  289. package/dist/src/v2/payment-rails/canonicalize.js +41 -1
  290. package/dist/src/v2/payment-rails/canonicalize.js.map +1 -1
  291. package/dist/src/v2/payment-rails/cycles/index.d.ts.map +1 -1
  292. package/dist/src/v2/payment-rails/cycles/index.js +10 -7
  293. package/dist/src/v2/payment-rails/cycles/index.js.map +1 -1
  294. package/dist/src/v2/payment-rails/cycles/types.d.ts +1 -1
  295. package/dist/src/v2/payment-rails/cycles/types.d.ts.map +1 -1
  296. package/dist/src/v2/payment-rails/hooks.d.ts.map +1 -1
  297. package/dist/src/v2/payment-rails/hooks.js +5 -5
  298. package/dist/src/v2/payment-rails/hooks.js.map +1 -1
  299. package/dist/src/v2/payment-rails/mpp/index.d.ts.map +1 -1
  300. package/dist/src/v2/payment-rails/mpp/index.js +11 -7
  301. package/dist/src/v2/payment-rails/mpp/index.js.map +1 -1
  302. package/dist/src/v2/payment-rails/mpp/types.d.ts +4 -4
  303. package/dist/src/v2/payment-rails/mpp/types.d.ts.map +1 -1
  304. package/dist/src/v2/policy-bundle/bundle.d.ts.map +1 -1
  305. package/dist/src/v2/policy-bundle/bundle.js +5 -3
  306. package/dist/src/v2/policy-bundle/bundle.js.map +1 -1
  307. package/dist/src/v2/provisional-statement/create.d.ts +13 -2
  308. package/dist/src/v2/provisional-statement/create.d.ts.map +1 -1
  309. package/dist/src/v2/provisional-statement/create.js +18 -6
  310. package/dist/src/v2/provisional-statement/create.js.map +1 -1
  311. package/dist/src/v2/read_fidelity_receipt/receipt.d.ts +8 -0
  312. package/dist/src/v2/read_fidelity_receipt/receipt.d.ts.map +1 -1
  313. package/dist/src/v2/read_fidelity_receipt/receipt.js +13 -2
  314. package/dist/src/v2/read_fidelity_receipt/receipt.js.map +1 -1
  315. package/dist/src/v2/revocation-enforcement/observation.js +2 -2
  316. package/dist/src/v2/revocation-enforcement/observation.js.map +1 -1
  317. package/dist/src/v2/trust-policy/policy.d.ts.map +1 -1
  318. package/dist/src/v2/trust-policy/policy.js +51 -3
  319. package/dist/src/v2/trust-policy/policy.js.map +1 -1
  320. package/dist/src/v2/wallet-binding/bind.d.ts.map +1 -1
  321. package/dist/src/v2/wallet-binding/bind.js +29 -9
  322. package/dist/src/v2/wallet-binding/bind.js.map +1 -1
  323. package/package.json +7 -6
@@ -13,7 +13,7 @@
13
13
  // - feature_activations sorted by (feature_id, activation_statistic)
14
14
  // ══════════════════════════════════════════════════════════════════
15
15
  import { createHash } from 'node:crypto';
16
- import { canonicalizeJCS } from '../../core/canonical-jcs.js';
16
+ import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
17
17
  import { sign as edSignHex } from '../../crypto/keys.js';
18
18
  const SPEC_VERSION = '1.0';
19
19
  function bytesToHex(bytes) {
@@ -93,15 +93,29 @@ export function buildAttestation(input) {
93
93
  *
94
94
  * Returns UTF-8 bytes. To obtain the canonical string, decode with TextDecoder.
95
95
  */
96
- export function canonicalizeAttestation(att) {
96
+ function canonicalizeAttestationImpl(att, canon) {
97
97
  const view = {
98
98
  ...att,
99
99
  feature_activations: sortFeatureActivations(att.feature_activations),
100
100
  signatures: [],
101
101
  };
102
- const s = canonicalizeJCS(view);
102
+ const s = canon(view);
103
103
  return new TextEncoder().encode(s);
104
104
  }
105
+ export function canonicalizeAttestation(att) {
106
+ return canonicalizeAttestationImpl(att, canonicalizeJCS);
107
+ }
108
+ /** Write-boundary twin of canonicalizeAttestation().
109
+ *
110
+ * Shares one implementation body with canonicalizeAttestation() so the two can never drift apart
111
+ * on the field list. Emits the same bytes for every value it accepts; the only
112
+ * difference is that an integer-valued number outside the interoperable IEEE 754
113
+ * range is refused instead of serialized. Use at signing and new-write boundaries
114
+ * ONLY: canonicalizeAttestation() stays unrestricted so an artifact signed before this rule keeps
115
+ * verifying. */
116
+ export function canonicalizeAttestationForWrite(att) {
117
+ return canonicalizeAttestationImpl(att, canonicalizeJCSForWrite);
118
+ }
105
119
  /**
106
120
  * Sign an attestation with a 32-byte Ed25519 seed. Appends a new entry to
107
121
  * `signatures`. Returns a new object; never mutates input.
@@ -117,7 +131,7 @@ export function signAttestation(att, privateKey, signerDid, signerRole) {
117
131
  if (typeof signerDid !== 'string' || signerDid.length === 0) {
118
132
  throw new Error('signAttestation: signerDid must be a non-empty string');
119
133
  }
120
- const canonicalBytes = canonicalizeAttestation(att);
134
+ const canonicalBytes = canonicalizeAttestationForWrite(att);
121
135
  const canonicalString = new TextDecoder().decode(canonicalBytes);
122
136
  const privateKeyHex = bytesToHex(privateKey);
123
137
  const sigHex = edSignHex(canonicalString, privateKeyHex);
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive-attestation/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive-attestation/envelope.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,14 @@ import type { CognitiveAttestationEnvelope, UnsignedCognitiveAttestationEnvelope
6
6
  * envelope from a partial shape.
7
7
  */
8
8
  export declare function canonicalizeForSignature(envelope: UnsignedCognitiveAttestationEnvelope | CognitiveAttestationEnvelope): string;
9
+ /** Write-boundary twin of canonicalizeForSignature().
10
+ *
11
+ * Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
12
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
13
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
14
+ * canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
15
+ * verifying. */
16
+ export declare function canonicalizeForSignatureForWrite(envelope: UnsignedCognitiveAttestationEnvelope | CognitiveAttestationEnvelope): string;
9
17
  /**
10
18
  * Sign an unsigned envelope with an Ed25519 private key (hex). Derives
11
19
  * the public key from the private key and writes it into `agent_id` on
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,4BAA4B,EAC5B,oCAAoC,EACrC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oCAAoC,GAAG,4BAA4B,GAC5E,MAAM,CAGR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,oCAAoC,EACrF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAM/D"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,4BAA4B,EAC5B,oCAAoC,EACrC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oCAAoC,GAAG,4BAA4B,GAC5E,MAAM,CAGR;AAED;;;;;;iBAMiB;AACjB,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,oCAAoC,GAAG,4BAA4B,GAC5E,MAAM,CAGR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,oCAAoC,EACrF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAM/D"}
@@ -9,7 +9,7 @@
9
9
  // is the source of truth, the wire object is the canonical bytes plus
10
10
  // signature.
11
11
  // ══════════════════════════════════════════════════════════════════
12
- import { canonicalizeJCS } from '../../core/canonical-jcs.js';
12
+ import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
13
13
  import { sign, publicKeyFromPrivate } from '../../crypto/keys.js';
14
14
  /**
15
15
  * Canonicalize an envelope for signing. The signature field is set to the
@@ -21,6 +21,17 @@ export function canonicalizeForSignature(envelope) {
21
21
  const draft = { ...envelope, signature: '' };
22
22
  return canonicalizeJCS(draft);
23
23
  }
24
+ /** Write-boundary twin of canonicalizeForSignature().
25
+ *
26
+ * Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
27
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
28
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
29
+ * canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
30
+ * verifying. */
31
+ export function canonicalizeForSignatureForWrite(envelope) {
32
+ const draft = { ...envelope, signature: '' };
33
+ return canonicalizeJCSForWrite(draft);
34
+ }
24
35
  /**
25
36
  * Sign an unsigned envelope with an Ed25519 private key (hex). Derives
26
37
  * the public key from the private key and writes it into `agent_id` on
@@ -36,7 +47,7 @@ export function canonicalizeForSignature(envelope) {
36
47
  export function signCognitiveAttestation(privateKeyHex, unsigned) {
37
48
  const agent_id = publicKeyFromPrivate(privateKeyHex);
38
49
  const withDerivedKey = { ...unsigned, agent_id };
39
- const bytes = canonicalizeForSignature(withDerivedKey);
50
+ const bytes = canonicalizeForSignatureForWrite(withDerivedKey);
40
51
  const signature = sign(bytes, privateKeyHex);
41
52
  return { ...withDerivedKey, signature };
42
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,6DAA6D;AAC7D,qEAAqE;AACrE,wEAAwE;AACxE,sEAAsE;AACtE,yEAAyE;AACzE,sEAAsE;AACtE,aAAa;AACb,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAOjE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAA6E;IAE7E,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAqB,EACrB,QAAW;IAEX,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,wBAAwB,CAAC,cAAsD,CAAC,CAAA;IAC9F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC5C,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAmE,CAAA;AAC1G,CAAC"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,6DAA6D;AAC7D,qEAAqE;AACrE,wEAAwE;AACxE,sEAAsE;AACtE,yEAAyE;AACzE,sEAAsE;AACtE,aAAa;AACb,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACtF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAOjE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAA6E;IAE7E,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;iBAMiB;AACjB,MAAM,UAAU,gCAAgC,CAC9C,QAA6E;IAE7E,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAqB,EACrB,QAAW;IAEX,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,gCAAgC,CAAC,cAAsD,CAAC,CAAA;IACtG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC5C,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAmE,CAAA;AAC1G,CAAC"}
@@ -52,6 +52,14 @@ export declare function buildCPA(input: BuildCpaInput): ContextProvenanceAttesta
52
52
  * Returns 64-hex lowercase.
53
53
  */
54
54
  export declare function computeCpaRef(signedCpa: ContextProvenanceAttestation): string;
55
+ /** Write-boundary twin of computeCpaRef().
56
+ *
57
+ * Emits the same bytes as computeCpaRef() for every value it accepts. The only difference
58
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
59
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
60
+ * computeCpaRef() stays unrestricted so an artifact signed before this rule keeps
61
+ * verifying. */
62
+ export declare function computeCpaRefForWrite(signedCpa: ContextProvenanceAttestation): string;
55
63
  /**
56
64
  * Carry the content address of a signed CPA as a one-field object, ready
57
65
  * to spread onto a receipt body BEFORE the receipt is signed. The verifier
@@ -1 +1 @@
1
- {"version":3,"file":"cpa.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EAElC,MAAM,YAAY,CAAA;AAYnB;4CAC4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;IACjC;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,kCAAkC,EAAE,yBAAyB,CAAA;CAC5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,4BAA4B,CAgG3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,4BAA4B,GAAG,MAAM,CAK7E;AAWD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,4BAA4B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,MAAM,GACd,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAEzB"}
1
+ {"version":3,"file":"cpa.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EAElC,MAAM,YAAY,CAAA;AAYnB;4CAC4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;IACjC;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,kCAAkC,EAAE,yBAAyB,CAAA;CAC5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,4BAA4B,CAiG3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,4BAA4B,GAAG,MAAM,CAK7E;AACD;;;;;;iBAMiB;AACjB,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,4BAA4B,GAAG,MAAM,CAKrF;AAWD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,4BAA4B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,MAAM,GACd,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAEzB"}
@@ -13,10 +13,10 @@
13
13
  // computeCpaRef content-addresses the FULLY SIGNED object under SIGN_TAG.
14
14
  // ══════════════════════════════════════════════════════════════════
15
15
  import { createHash } from 'node:crypto';
16
- import { canonicalizeJCS } from '../../core/canonical-jcs.js';
16
+ import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
17
17
  import { sign, publicKeyFromPrivate } from '../../crypto/keys.js';
18
18
  import { CHANNEL_ORDER, } from './types.js';
19
- import { SIGN_TAG, buildPartitionRootBytes, buildInclusionProof, buildTopRootBytes, bytesToHex, utf8Bytes, } from './merkle.js';
19
+ import { SIGN_TAG, buildPartitionRootBytesForWrite, buildInclusionProofForWrite, buildTopRootBytes, bytesToHex, utf8Bytes, } from './merkle.js';
20
20
  /**
21
21
  * Build and sign a CPA from a flat list of context items.
22
22
  *
@@ -56,7 +56,7 @@ export function buildCPA(input) {
56
56
  if (!leaves || leaves.length === 0)
57
57
  continue; // empty partitions omitted
58
58
  // partition_root is over ALL leaves, unchanged in either mode.
59
- const rootBytes = buildPartitionRootBytes(leaves);
59
+ const rootBytes = buildPartitionRootBytesForWrite(leaves);
60
60
  partitionRootBytes.push(rootBytes);
61
61
  const partition_root = bytesToHex(rootBytes);
62
62
  const leaf_count = leaves.length;
@@ -73,7 +73,7 @@ export function buildCPA(input) {
73
73
  for (const leaf of leaves) {
74
74
  if (disclose.has(leaf.ctx_id)) {
75
75
  disclosedLeaves.push({ ...leaf });
76
- inclusion_proofs.push(buildInclusionProof(leaves, leaf.ctx_id));
76
+ inclusion_proofs.push(buildInclusionProofForWrite(leaves, leaf.ctx_id));
77
77
  }
78
78
  }
79
79
  const disclosedCount = disclosedLeaves.length;
@@ -105,14 +105,15 @@ export function buildCPA(input) {
105
105
  mode,
106
106
  partitions,
107
107
  root,
108
- // Conditional spread, not an undefined-valued key: strict JCS renders
109
- // an explicitly-set undefined as null, which would change the bytes.
108
+ // Conditional spread, not an undefined-valued key. An explicitly-set
109
+ // undefined is rejected by the canonicalizer as of #101, and before that it
110
+ // was rendered as null; either way it would not be the intended bytes.
110
111
  ...(input.producer_attestation !== undefined
111
112
  ? { producer_attestation: input.producer_attestation }
112
113
  : {}),
113
114
  signature: '',
114
115
  };
115
- const bytes = canonicalizeJCS(unsigned);
116
+ const bytes = canonicalizeJCSForWrite(unsigned);
116
117
  const signature = sign(bytes, privateKey);
117
118
  return { ...unsigned, signature };
118
119
  }
@@ -127,6 +128,19 @@ export function computeCpaRef(signedCpa) {
127
128
  h.update(utf8Bytes(canonicalizeJCS(signedCpa)));
128
129
  return h.digest('hex');
129
130
  }
131
+ /** Write-boundary twin of computeCpaRef().
132
+ *
133
+ * Emits the same bytes as computeCpaRef() for every value it accepts. The only difference
134
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
135
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
136
+ * computeCpaRef() stays unrestricted so an artifact signed before this rule keeps
137
+ * verifying. */
138
+ export function computeCpaRefForWrite(signedCpa) {
139
+ const h = createHash('sha256');
140
+ h.update(utf8Bytes(SIGN_TAG));
141
+ h.update(utf8Bytes(canonicalizeJCSForWrite(signedCpa)));
142
+ return h.digest('hex');
143
+ }
130
144
  // ══════════════════════════════════════════════════════════════════
131
145
  // Mutual binding helpers (lean, module-local; see BINDING.md)
132
146
  // ══════════════════════════════════════════════════════════════════
@@ -142,7 +156,7 @@ export function computeCpaRef(signedCpa) {
142
156
  * receipt's cpa_ref (the receipt -> CPA binding direction).
143
157
  */
144
158
  export function carryCpaRef(cpa) {
145
- return { cpa_ref: computeCpaRef(cpa) };
159
+ return { cpa_ref: computeCpaRefForWrite(cpa) };
146
160
  }
147
161
  /**
148
162
  * Pure binder: return a NEW object equal to `receipt` plus a `cpa_ref`
@@ -1 +1 @@
1
- {"version":3,"file":"cpa.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpa.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"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"}
@@ -22,17 +22,25 @@ export declare function leafPreimage(leaf: ContextItem): LeafPreimage;
22
22
  /** leaf_hash = sha256( utf8(LEAF_TAG) || utf8(canonicalizeJCS(preimage)) )
23
23
  * Returns the raw 32-byte digest. */
24
24
  export declare function leafHash(leaf: ContextItem): Uint8Array;
25
+ /** Write-boundary twin of leafHash().
26
+ *
27
+ * Emits the same bytes as leafHash() for every value it accepts. The only difference
28
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
29
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
30
+ * leafHash() stays unrestricted so an artifact signed before this rule keeps
31
+ * verifying. */
32
+ export declare function leafHashForWrite(leaf: ContextItem): Uint8Array;
25
33
  /** node_hash = sha256( utf8(NODE_TAG) || left32 || right32 ) over RAW
26
34
  * 32-byte digests. Returns the raw 32-byte digest. */
27
35
  export declare function nodeHash(left: Uint8Array, right: Uint8Array): Uint8Array;
28
- /**
29
- * Build the partition_root (raw 32-byte digest) for one partition's
30
- * leaves. Leaves are sorted ascending by ctx_id (JS string / code-point
31
- * order). ctx_id MUST be unique within the partition; a duplicate throws.
32
- * Single leaf => partition_root = that leaf digest (no node hashing).
33
- * Throws on an empty leaf list (empty partitions are omitted upstream).
34
- */
35
36
  export declare function buildPartitionRootBytes(leaves: ContextItem[]): Uint8Array;
37
+ /** Write-boundary twin of buildPartitionRootBytes().
38
+ *
39
+ * Reaches a canonicalizer only indirectly, through leafHash, so a call-site census
40
+ * over canonicalizer usage cannot see it. Use when BUILDING a CPA; the recompute path
41
+ * in verify.ts keeps calling buildPartitionRootBytes() so a CPA signed before this
42
+ * rule still verifies. */
43
+ export declare function buildPartitionRootBytesForWrite(leaves: ContextItem[]): Uint8Array;
36
44
  /** Hex convenience wrapper around buildPartitionRootBytes. */
37
45
  export declare function buildPartitionRoot(leaves: ContextItem[]): string;
38
46
  /**
@@ -64,18 +72,13 @@ export interface InclusionProof {
64
72
  ctx_id: string;
65
73
  path: InclusionStep[];
66
74
  }
67
- /**
68
- * Build an inclusion proof for the leaf whose ctx_id === ctx_id, against
69
- * the partition formed by `leaves`. Leaves are sorted by ctx_id exactly as
70
- * buildPartitionRootBytes does. Walks bottom-up, recording the sibling
71
- * digest (hex) and side at each level, and recording NO step when the
72
- * target/ancestor is the promoted odd node at a level (it carries straight
73
- * up, mirroring `reduce`).
74
- *
75
- * Throws on an empty partition, a duplicate ctx_id, or a ctx_id not found
76
- * (these are producer-side invariants; the verifier never calls this).
77
- */
78
75
  export declare function buildInclusionProof(leaves: ContextItem[], ctx_id: string): InclusionProof;
76
+ /** Write-boundary twin of buildInclusionProof().
77
+ *
78
+ * Reaches a canonicalizer only indirectly, through leafHash, so a call-site census over
79
+ * canonicalizer usage cannot see it. Use when BUILDING a CPA; verifyInclusionProof keeps
80
+ * calling leafHash() unrestricted so a proof emitted before this rule still checks. */
81
+ export declare function buildInclusionProofForWrite(leaves: ContextItem[], ctx_id: string): InclusionProof;
79
82
  /**
80
83
  * Verify an inclusion proof: recompute leaf_hash(leaf), fold the path with
81
84
  * node_hash respecting each step's side, and compare the hex result to
@@ -1 +1 @@
1
- {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI7D,iCAAiC;AACjC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,gCAAgC;AAChC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AAczC,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAEnC;AAQD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAO5D;AAED;sCACsC;AACtC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAEtD;AAED;uDACuD;AACvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAExE;AA8BD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAczE;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,4BAA4B,EAAE,UAAU,EAAE,GAAG,UAAU,CAKxF;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,GAAG,MAAM,CAG3E;AAED,oEAAoE;AACpE,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAMlD;AAED,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,CAAA;AAkB5B;;0DAE0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;4CAC4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CA+CzF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAoBT"}
1
+ {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI7D,iCAAiC;AACjC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,gCAAgC;AAChC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AAczC,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAEnC;AAQD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAO5D;AAED;sCACsC;AACtC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAEtD;AACD;;;;;;iBAMiB;AACjB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAE9D;AAED;uDACuD;AACvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAExE;AAwDD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAEzE;AAED;;;;;2BAK2B;AAC3B,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAEjF;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,4BAA4B,EAAE,UAAU,EAAE,GAAG,UAAU,CAKxF;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,GAAG,MAAM,CAG3E;AAED,oEAAoE;AACpE,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAMlD;AAED,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,CAAA;AAkB5B;;0DAE0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;4CAC4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB;AAkED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAEzF;AAED;;;;wFAIwF;AACxF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAEjG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAoBT"}
@@ -18,7 +18,7 @@
18
18
  // See TREE-SHAPE.md for the frozen-shape narrative.
19
19
  // ══════════════════════════════════════════════════════════════════
20
20
  import { createHash } from 'node:crypto';
21
- import { canonicalizeJCS } from '../../core/canonical-jcs.js';
21
+ import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
22
22
  // ── Domain tags (frozen byte values; trailing newline is intentional) ──
23
23
  /** Leaf pre-image domain tag. */
24
24
  export const LEAF_TAG = 'CPA:v0.1:leaf\n';
@@ -56,6 +56,16 @@ export function leafPreimage(leaf) {
56
56
  export function leafHash(leaf) {
57
57
  return sha256(utf8(LEAF_TAG), utf8(canonicalizeJCS(leafPreimage(leaf))));
58
58
  }
59
+ /** Write-boundary twin of leafHash().
60
+ *
61
+ * Emits the same bytes as leafHash() for every value it accepts. The only difference
62
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
63
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
64
+ * leafHash() stays unrestricted so an artifact signed before this rule keeps
65
+ * verifying. */
66
+ export function leafHashForWrite(leaf) {
67
+ return sha256(utf8(LEAF_TAG), utf8(canonicalizeJCSForWrite(leafPreimage(leaf))));
68
+ }
59
69
  /** node_hash = sha256( utf8(NODE_TAG) || left32 || right32 ) over RAW
60
70
  * 32-byte digests. Returns the raw 32-byte digest. */
61
71
  export function nodeHash(left, right) {
@@ -95,7 +105,7 @@ function reduce(level) {
95
105
  * Single leaf => partition_root = that leaf digest (no node hashing).
96
106
  * Throws on an empty leaf list (empty partitions are omitted upstream).
97
107
  */
98
- export function buildPartitionRootBytes(leaves) {
108
+ function buildPartitionRootBytesImpl(leaves, leaf) {
99
109
  if (leaves.length === 0) {
100
110
  throw new Error('CPA merkle: a present partition must have at least one leaf');
101
111
  }
@@ -105,9 +115,21 @@ export function buildPartitionRootBytes(leaves) {
105
115
  throw new Error(`CPA merkle: duplicate ctx_id "${sorted[i].ctx_id}" within partition`);
106
116
  }
107
117
  }
108
- const digests = sorted.map(leafHash);
118
+ const digests = sorted.map(leaf);
109
119
  return reduce(digests);
110
120
  }
121
+ export function buildPartitionRootBytes(leaves) {
122
+ return buildPartitionRootBytesImpl(leaves, leafHash);
123
+ }
124
+ /** Write-boundary twin of buildPartitionRootBytes().
125
+ *
126
+ * Reaches a canonicalizer only indirectly, through leafHash, so a call-site census
127
+ * over canonicalizer usage cannot see it. Use when BUILDING a CPA; the recompute path
128
+ * in verify.ts keeps calling buildPartitionRootBytes() so a CPA signed before this
129
+ * rule still verifies. */
130
+ export function buildPartitionRootBytesForWrite(leaves) {
131
+ return buildPartitionRootBytesImpl(leaves, leafHashForWrite);
132
+ }
111
133
  /** Hex convenience wrapper around buildPartitionRootBytes. */
112
134
  export function buildPartitionRoot(leaves) {
113
135
  return toHex(buildPartitionRootBytes(leaves));
@@ -158,7 +180,7 @@ export { utf8 as utf8Bytes };
158
180
  * Throws on an empty partition, a duplicate ctx_id, or a ctx_id not found
159
181
  * (these are producer-side invariants; the verifier never calls this).
160
182
  */
161
- export function buildInclusionProof(leaves, ctx_id) {
183
+ function buildInclusionProofImpl(leaves, ctx_id, leaf) {
162
184
  if (leaves.length === 0) {
163
185
  throw new Error('CPA merkle: cannot build an inclusion proof over an empty partition');
164
186
  }
@@ -172,7 +194,7 @@ export function buildInclusionProof(leaves, ctx_id) {
172
194
  if (index < 0) {
173
195
  throw new Error(`CPA merkle: ctx_id "${ctx_id}" not found in partition`);
174
196
  }
175
- let current = sorted.map(leafHash);
197
+ let current = sorted.map(leaf);
176
198
  const path = [];
177
199
  while (current.length > 1) {
178
200
  const isRightChild = index % 2 === 1;
@@ -203,6 +225,17 @@ export function buildInclusionProof(leaves, ctx_id) {
203
225
  }
204
226
  return { ctx_id, path };
205
227
  }
228
+ export function buildInclusionProof(leaves, ctx_id) {
229
+ return buildInclusionProofImpl(leaves, ctx_id, leafHash);
230
+ }
231
+ /** Write-boundary twin of buildInclusionProof().
232
+ *
233
+ * Reaches a canonicalizer only indirectly, through leafHash, so a call-site census over
234
+ * canonicalizer usage cannot see it. Use when BUILDING a CPA; verifyInclusionProof keeps
235
+ * calling leafHash() unrestricted so a proof emitted before this rule still checks. */
236
+ export function buildInclusionProofForWrite(leaves, ctx_id) {
237
+ return buildInclusionProofImpl(leaves, ctx_id, leafHashForWrite);
238
+ }
206
239
  /**
207
240
  * Verify an inclusion proof: recompute leaf_hash(leaf), fold the path with
208
241
  * node_hash respecting each step's side, and compare the hex result to
@@ -1 +1 @@
1
- {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"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"}
@@ -95,7 +95,7 @@ export interface CpaPartition {
95
95
  * to an external producer attestation; absent on a CPA that does not
96
96
  * carry one, and the absent form is byte-identical to the pre-slot
97
97
  * shape (the builder adds the key by conditional spread, never as an
98
- * explicitly-undefined key, which strict JCS would render as null).
98
+ * explicitly-undefined key, which the canonicalizer rejects as of #101).
99
99
  * - signature: 128-hex Ed25519; '' in the unsigned/canonical shape.
100
100
  */
101
101
  export interface ContextProvenanceAttestation {
@@ -6,6 +6,14 @@ import type { CrossIssuerAttestationEnvelope, UnsignedCrossIssuerAttestationEnve
6
6
  * having to reconstruct the envelope from a partial shape.
7
7
  */
8
8
  export declare function canonicalizeForSignature(envelope: UnsignedCrossIssuerAttestationEnvelope | CrossIssuerAttestationEnvelope): string;
9
+ /** Write-boundary twin of canonicalizeForSignature().
10
+ *
11
+ * Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
12
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
13
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
14
+ * canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
15
+ * verifying. */
16
+ export declare function canonicalizeForSignatureForWrite(envelope: UnsignedCrossIssuerAttestationEnvelope | CrossIssuerAttestationEnvelope): string;
9
17
  /**
10
18
  * Sign an unsigned envelope with the composer's Ed25519 private key
11
19
  * (hex). Derives the public key from the private key and writes it
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,8BAA8B,EAC9B,sCAAsC,EACvC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,sCAAsC,GAAG,8BAA8B,GAChF,MAAM,CAGR;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,sCAAsC,EACzF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAMlE"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,8BAA8B,EAC9B,sCAAsC,EACvC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,sCAAsC,GAAG,8BAA8B,GAChF,MAAM,CAGR;AAED;;;;;;iBAMiB;AACjB,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,sCAAsC,GAAG,8BAA8B,GAChF,MAAM,CAGR;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,sCAAsC,EACzF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAMlE"}
@@ -9,7 +9,7 @@
9
9
  // canonical bytes are the source of truth, the wire object is those
10
10
  // bytes plus the composer signature.
11
11
  // ══════════════════════════════════════════════════════════════════
12
- import { canonicalizeJCS } from '../../core/canonical-jcs.js';
12
+ import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
13
13
  import { sign, publicKeyFromPrivate } from '../../crypto/keys.js';
14
14
  /**
15
15
  * Canonicalize an envelope for signing. The signature field is set to
@@ -21,6 +21,17 @@ export function canonicalizeForSignature(envelope) {
21
21
  const draft = { ...envelope, signature: '' };
22
22
  return canonicalizeJCS(draft);
23
23
  }
24
+ /** Write-boundary twin of canonicalizeForSignature().
25
+ *
26
+ * Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
27
+ * is that an integer-valued number outside the interoperable IEEE 754 range is
28
+ * refused instead of serialized. Use at signing and new-write boundaries ONLY:
29
+ * canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
30
+ * verifying. */
31
+ export function canonicalizeForSignatureForWrite(envelope) {
32
+ const draft = { ...envelope, signature: '' };
33
+ return canonicalizeJCSForWrite(draft);
34
+ }
24
35
  /**
25
36
  * Sign an unsigned envelope with the composer's Ed25519 private key
26
37
  * (hex). Derives the public key from the private key and writes it
@@ -33,7 +44,7 @@ export function canonicalizeForSignature(envelope) {
33
44
  export function signCrossIssuerAttestation(privateKeyHex, unsigned) {
34
45
  const composer_id = publicKeyFromPrivate(privateKeyHex);
35
46
  const withDerivedKey = { ...unsigned, composer_id };
36
- const bytes = canonicalizeForSignature(withDerivedKey);
47
+ const bytes = canonicalizeForSignatureForWrite(withDerivedKey);
37
48
  const signature = sign(bytes, privateKeyHex);
38
49
  return { ...withDerivedKey, signature };
39
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,oEAAoE;AACpE,qCAAqC;AACrC,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAOjE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAiF;IAEjF,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,aAAqB,EACrB,QAAW;IAEX,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;IACvD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAA;IACnD,MAAM,KAAK,GAAG,wBAAwB,CAAC,cAAwD,CAAC,CAAA;IAChG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC5C,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAsE,CAAA;AAC7G,CAAC"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,oEAAoE;AACpE,qCAAqC;AACrC,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACtF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAOjE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAiF;IAEjF,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;iBAMiB;AACjB,MAAM,UAAU,gCAAgC,CAC9C,QAAiF;IAEjF,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,aAAqB,EACrB,QAAW;IAEX,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;IACvD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAA;IACnD,MAAM,KAAK,GAAG,gCAAgC,CAAC,cAAwD,CAAC,CAAA;IACxG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC5C,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAsE,CAAA;AAC7G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/v2/hash-pointer/profile.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EACV,gCAAgC,EAGhC,sBAAsB,EACtB,2BAA2B,EAE5B,MAAM,YAAY,CAAA;AAkBnB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gCAAgC,GACtC,sBAAsB,CA8ExB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,IAAI,CAAC,EAAE;IACL,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,GACA,2BAA2B,CA6E7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAE7E"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/v2/hash-pointer/profile.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EACV,gCAAgC,EAGhC,sBAAsB,EACtB,2BAA2B,EAE5B,MAAM,YAAY,CAAA;AA2BnB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gCAAgC,GACtC,sBAAsB,CA8ExB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,IAAI,CAAC,EAAE;IACL,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,GACA,2BAA2B,CA6E7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAE7E"}