@sourcey/catalog-verifier 1.0.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 (402) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +21 -0
  3. package/README.md +64 -0
  4. package/SBOM.cdx.json +177 -0
  5. package/SECURITY.md +8 -0
  6. package/SOURCEY-CLOSURE.json +1559 -0
  7. package/SOURCEY-DISTRIBUTION.json +24 -0
  8. package/SOURCEY-LICENSE-POLICY.json +5 -0
  9. package/SOURCEY-TOOLCHAIN.json +8 -0
  10. package/SUPPORT.md +5 -0
  11. package/THIRD_PARTY_NOTICES.json +69 -0
  12. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts +548 -0
  13. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts.map +1 -0
  14. package/dist/contracts/agent-readiness/src/declaration-acquisition.js +159 -0
  15. package/dist/contracts/agent-readiness/src/declaration-acquisition.js.map +1 -0
  16. package/dist/contracts/agent-readiness/src/declaration-reference.d.ts +48 -0
  17. package/dist/contracts/agent-readiness/src/declaration-reference.d.ts.map +1 -0
  18. package/dist/contracts/agent-readiness/src/declaration-reference.js +42 -0
  19. package/dist/contracts/agent-readiness/src/declaration-reference.js.map +1 -0
  20. package/dist/contracts/agent-readiness/src/declaration.d.ts +1357 -0
  21. package/dist/contracts/agent-readiness/src/declaration.d.ts.map +1 -0
  22. package/dist/contracts/agent-readiness/src/declaration.js +659 -0
  23. package/dist/contracts/agent-readiness/src/declaration.js.map +1 -0
  24. package/dist/contracts/agent-readiness/src/evidence.d.ts +146 -0
  25. package/dist/contracts/agent-readiness/src/evidence.d.ts.map +1 -0
  26. package/dist/contracts/agent-readiness/src/evidence.js +154 -0
  27. package/dist/contracts/agent-readiness/src/evidence.js.map +1 -0
  28. package/dist/contracts/agent-readiness/src/index.d.ts +6487 -0
  29. package/dist/contracts/agent-readiness/src/index.d.ts.map +1 -0
  30. package/dist/contracts/agent-readiness/src/index.js +1487 -0
  31. package/dist/contracts/agent-readiness/src/index.js.map +1 -0
  32. package/dist/contracts/agent-readiness/src/interaction.d.ts +26 -0
  33. package/dist/contracts/agent-readiness/src/interaction.d.ts.map +1 -0
  34. package/dist/contracts/agent-readiness/src/interaction.js +24 -0
  35. package/dist/contracts/agent-readiness/src/interaction.js.map +1 -0
  36. package/dist/contracts/agent-readiness/src/method-pack.d.ts +391 -0
  37. package/dist/contracts/agent-readiness/src/method-pack.d.ts.map +1 -0
  38. package/dist/contracts/agent-readiness/src/method-pack.js +181 -0
  39. package/dist/contracts/agent-readiness/src/method-pack.js.map +1 -0
  40. package/dist/contracts/agent-readiness/src/shared.d.ts +119 -0
  41. package/dist/contracts/agent-readiness/src/shared.d.ts.map +1 -0
  42. package/dist/contracts/agent-readiness/src/shared.js +144 -0
  43. package/dist/contracts/agent-readiness/src/shared.js.map +1 -0
  44. package/dist/contracts/api/src/index.d.ts +48463 -0
  45. package/dist/contracts/api/src/index.d.ts.map +1 -0
  46. package/dist/contracts/api/src/index.js +1150 -0
  47. package/dist/contracts/api/src/index.js.map +1 -0
  48. package/dist/contracts/artifact/src/index.d.ts +1467 -0
  49. package/dist/contracts/artifact/src/index.d.ts.map +1 -0
  50. package/dist/contracts/artifact/src/index.js +325 -0
  51. package/dist/contracts/artifact/src/index.js.map +1 -0
  52. package/dist/contracts/assets/src/index.d.ts +1397 -0
  53. package/dist/contracts/assets/src/index.d.ts.map +1 -0
  54. package/dist/contracts/assets/src/index.js +560 -0
  55. package/dist/contracts/assets/src/index.js.map +1 -0
  56. package/dist/contracts/authoring/src/index.d.ts +1084 -0
  57. package/dist/contracts/authoring/src/index.d.ts.map +1 -0
  58. package/dist/contracts/authoring/src/index.js +211 -0
  59. package/dist/contracts/authoring/src/index.js.map +1 -0
  60. package/dist/contracts/authority/src/index.d.ts +135 -0
  61. package/dist/contracts/authority/src/index.d.ts.map +1 -0
  62. package/dist/contracts/authority/src/index.js +130 -0
  63. package/dist/contracts/authority/src/index.js.map +1 -0
  64. package/dist/contracts/billing/src/index.d.ts +587 -0
  65. package/dist/contracts/billing/src/index.d.ts.map +1 -0
  66. package/dist/contracts/billing/src/index.js +322 -0
  67. package/dist/contracts/billing/src/index.js.map +1 -0
  68. package/dist/contracts/catalog-verifier/src/index.d.ts +390 -0
  69. package/dist/contracts/catalog-verifier/src/index.d.ts.map +1 -0
  70. package/dist/contracts/catalog-verifier/src/index.js +222 -0
  71. package/dist/contracts/catalog-verifier/src/index.js.map +1 -0
  72. package/dist/contracts/commercial-work/src/index.d.ts +835 -0
  73. package/dist/contracts/commercial-work/src/index.d.ts.map +1 -0
  74. package/dist/contracts/commercial-work/src/index.js +510 -0
  75. package/dist/contracts/commercial-work/src/index.js.map +1 -0
  76. package/dist/contracts/events/src/index.d.ts +700 -0
  77. package/dist/contracts/events/src/index.d.ts.map +1 -0
  78. package/dist/contracts/events/src/index.js +553 -0
  79. package/dist/contracts/events/src/index.js.map +1 -0
  80. package/dist/contracts/evidence/src/index.d.ts +487 -0
  81. package/dist/contracts/evidence/src/index.d.ts.map +1 -0
  82. package/dist/contracts/evidence/src/index.js +342 -0
  83. package/dist/contracts/evidence/src/index.js.map +1 -0
  84. package/dist/contracts/feed/src/index.d.ts +159 -0
  85. package/dist/contracts/feed/src/index.d.ts.map +1 -0
  86. package/dist/contracts/feed/src/index.js +79 -0
  87. package/dist/contracts/feed/src/index.js.map +1 -0
  88. package/dist/contracts/funded-work/src/index.d.ts +64 -0
  89. package/dist/contracts/funded-work/src/index.d.ts.map +1 -0
  90. package/dist/contracts/funded-work/src/index.js +67 -0
  91. package/dist/contracts/funded-work/src/index.js.map +1 -0
  92. package/dist/contracts/observations/src/index.d.ts +134 -0
  93. package/dist/contracts/observations/src/index.d.ts.map +1 -0
  94. package/dist/contracts/observations/src/index.js +112 -0
  95. package/dist/contracts/observations/src/index.js.map +1 -0
  96. package/dist/contracts/policies/src/index.d.ts +151 -0
  97. package/dist/contracts/policies/src/index.d.ts.map +1 -0
  98. package/dist/contracts/policies/src/index.js +121 -0
  99. package/dist/contracts/policies/src/index.js.map +1 -0
  100. package/dist/contracts/publication/src/index.d.ts +4066 -0
  101. package/dist/contracts/publication/src/index.d.ts.map +1 -0
  102. package/dist/contracts/publication/src/index.js +535 -0
  103. package/dist/contracts/publication/src/index.js.map +1 -0
  104. package/dist/contracts/release/src/index.d.ts +2032 -0
  105. package/dist/contracts/release/src/index.d.ts.map +1 -0
  106. package/dist/contracts/release/src/index.js +252 -0
  107. package/dist/contracts/release/src/index.js.map +1 -0
  108. package/dist/contracts/revisions/src/index.d.ts +1405 -0
  109. package/dist/contracts/revisions/src/index.d.ts.map +1 -0
  110. package/dist/contracts/revisions/src/index.js +493 -0
  111. package/dist/contracts/revisions/src/index.js.map +1 -0
  112. package/dist/contracts/routes/src/index.d.ts +103 -0
  113. package/dist/contracts/routes/src/index.d.ts.map +1 -0
  114. package/dist/contracts/routes/src/index.js +163 -0
  115. package/dist/contracts/routes/src/index.js.map +1 -0
  116. package/dist/contracts/routes/src/public-route-allocations.generated.d.ts +2 -0
  117. package/dist/contracts/routes/src/public-route-allocations.generated.d.ts.map +1 -0
  118. package/dist/contracts/routes/src/public-route-allocations.generated.js +56 -0
  119. package/dist/contracts/routes/src/public-route-allocations.generated.js.map +1 -0
  120. package/dist/contracts/standards/src/index.d.ts +1482 -0
  121. package/dist/contracts/standards/src/index.d.ts.map +1 -0
  122. package/dist/contracts/standards/src/index.js +626 -0
  123. package/dist/contracts/standards/src/index.js.map +1 -0
  124. package/dist/contracts/taxonomy/src/index.d.ts +7 -0
  125. package/dist/contracts/taxonomy/src/index.d.ts.map +1 -0
  126. package/dist/contracts/taxonomy/src/index.js +25 -0
  127. package/dist/contracts/taxonomy/src/index.js.map +1 -0
  128. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts +20 -0
  129. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts.map +1 -0
  130. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js +604 -0
  131. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js.map +1 -0
  132. package/dist/modules/agent-readiness-policy/src/current-policy.d.ts +249 -0
  133. package/dist/modules/agent-readiness-policy/src/current-policy.d.ts.map +1 -0
  134. package/dist/modules/agent-readiness-policy/src/current-policy.js +470 -0
  135. package/dist/modules/agent-readiness-policy/src/current-policy.js.map +1 -0
  136. package/dist/modules/agent-readiness-policy/src/grading.d.ts +39 -0
  137. package/dist/modules/agent-readiness-policy/src/grading.d.ts.map +1 -0
  138. package/dist/modules/agent-readiness-policy/src/grading.js +40 -0
  139. package/dist/modules/agent-readiness-policy/src/grading.js.map +1 -0
  140. package/dist/modules/agent-readiness-policy/src/impact.d.ts +103 -0
  141. package/dist/modules/agent-readiness-policy/src/impact.d.ts.map +1 -0
  142. package/dist/modules/agent-readiness-policy/src/impact.js +249 -0
  143. package/dist/modules/agent-readiness-policy/src/impact.js.map +1 -0
  144. package/dist/modules/agent-readiness-policy/src/index.d.ts +811 -0
  145. package/dist/modules/agent-readiness-policy/src/index.d.ts.map +1 -0
  146. package/dist/modules/agent-readiness-policy/src/index.js +499 -0
  147. package/dist/modules/agent-readiness-policy/src/index.js.map +1 -0
  148. package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts +12 -0
  149. package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts.map +1 -0
  150. package/dist/modules/agent-readiness-policy/src/offer-relations.js +65 -0
  151. package/dist/modules/agent-readiness-policy/src/offer-relations.js.map +1 -0
  152. package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts +4 -0
  153. package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts.map +1 -0
  154. package/dist/modules/agent-readiness-policy/src/policy-validation.js +59 -0
  155. package/dist/modules/agent-readiness-policy/src/policy-validation.js.map +1 -0
  156. package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts +3 -0
  157. package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts.map +1 -0
  158. package/dist/modules/agent-readiness-policy/src/projection-lineage.js +12 -0
  159. package/dist/modules/agent-readiness-policy/src/projection-lineage.js.map +1 -0
  160. package/dist/modules/agent-readiness-policy/src/revision.d.ts +4 -0
  161. package/dist/modules/agent-readiness-policy/src/revision.d.ts.map +1 -0
  162. package/dist/modules/agent-readiness-policy/src/revision.js +46 -0
  163. package/dist/modules/agent-readiness-policy/src/revision.js.map +1 -0
  164. package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts +7 -0
  165. package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts.map +1 -0
  166. package/dist/modules/agent-readiness-policy/src/standard-mapping.js +13 -0
  167. package/dist/modules/agent-readiness-policy/src/standard-mapping.js.map +1 -0
  168. package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts +36 -0
  169. package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts.map +1 -0
  170. package/dist/modules/agent-readiness-policy/src/surface-selection.js +214 -0
  171. package/dist/modules/agent-readiness-policy/src/surface-selection.js.map +1 -0
  172. package/dist/modules/agent-readiness-repository/src/admission.d.ts +35 -0
  173. package/dist/modules/agent-readiness-repository/src/admission.d.ts.map +1 -0
  174. package/dist/modules/agent-readiness-repository/src/admission.js +56 -0
  175. package/dist/modules/agent-readiness-repository/src/admission.js.map +1 -0
  176. package/dist/modules/agent-readiness-repository/src/change.d.ts +62 -0
  177. package/dist/modules/agent-readiness-repository/src/change.d.ts.map +1 -0
  178. package/dist/modules/agent-readiness-repository/src/change.js +218 -0
  179. package/dist/modules/agent-readiness-repository/src/change.js.map +1 -0
  180. package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts +29 -0
  181. package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts.map +1 -0
  182. package/dist/modules/agent-readiness-repository/src/declaration-blob.js +126 -0
  183. package/dist/modules/agent-readiness-repository/src/declaration-blob.js.map +1 -0
  184. package/dist/modules/agent-readiness-repository/src/index.d.ts +102 -0
  185. package/dist/modules/agent-readiness-repository/src/index.d.ts.map +1 -0
  186. package/dist/modules/agent-readiness-repository/src/index.js +208 -0
  187. package/dist/modules/agent-readiness-repository/src/index.js.map +1 -0
  188. package/dist/modules/artifact/src/agent-readiness-closure.d.ts +24 -0
  189. package/dist/modules/artifact/src/agent-readiness-closure.d.ts.map +1 -0
  190. package/dist/modules/artifact/src/agent-readiness-closure.js +98 -0
  191. package/dist/modules/artifact/src/agent-readiness-closure.js.map +1 -0
  192. package/dist/modules/artifact/src/asset-closure.d.ts +12 -0
  193. package/dist/modules/artifact/src/asset-closure.d.ts.map +1 -0
  194. package/dist/modules/artifact/src/asset-closure.js +40 -0
  195. package/dist/modules/artifact/src/asset-closure.js.map +1 -0
  196. package/dist/modules/artifact/src/authoring-closure.d.ts +4 -0
  197. package/dist/modules/artifact/src/authoring-closure.d.ts.map +1 -0
  198. package/dist/modules/artifact/src/authoring-closure.js +19 -0
  199. package/dist/modules/artifact/src/authoring-closure.js.map +1 -0
  200. package/dist/modules/artifact/src/index.d.ts +46 -0
  201. package/dist/modules/artifact/src/index.d.ts.map +1 -0
  202. package/dist/modules/artifact/src/index.js +563 -0
  203. package/dist/modules/artifact/src/index.js.map +1 -0
  204. package/dist/modules/artifact/src/trust-history.d.ts +3 -0
  205. package/dist/modules/artifact/src/trust-history.d.ts.map +1 -0
  206. package/dist/modules/artifact/src/trust-history.js +134 -0
  207. package/dist/modules/artifact/src/trust-history.js.map +1 -0
  208. package/dist/modules/assets/src/authority-bundle.d.ts +36 -0
  209. package/dist/modules/assets/src/authority-bundle.d.ts.map +1 -0
  210. package/dist/modules/assets/src/authority-bundle.js +206 -0
  211. package/dist/modules/assets/src/authority-bundle.js.map +1 -0
  212. package/dist/modules/assets/src/delta.d.ts +18 -0
  213. package/dist/modules/assets/src/delta.d.ts.map +1 -0
  214. package/dist/modules/assets/src/delta.js +183 -0
  215. package/dist/modules/assets/src/delta.js.map +1 -0
  216. package/dist/modules/assets/src/disposition.d.ts +3 -0
  217. package/dist/modules/assets/src/disposition.d.ts.map +1 -0
  218. package/dist/modules/assets/src/disposition.js +30 -0
  219. package/dist/modules/assets/src/disposition.js.map +1 -0
  220. package/dist/modules/assets/src/index.d.ts +25 -0
  221. package/dist/modules/assets/src/index.d.ts.map +1 -0
  222. package/dist/modules/assets/src/index.js +234 -0
  223. package/dist/modules/assets/src/index.js.map +1 -0
  224. package/dist/modules/assets/src/ingestion.d.ts +69 -0
  225. package/dist/modules/assets/src/ingestion.d.ts.map +1 -0
  226. package/dist/modules/assets/src/ingestion.js +169 -0
  227. package/dist/modules/assets/src/ingestion.js.map +1 -0
  228. package/dist/modules/authority/src/index.d.ts +47 -0
  229. package/dist/modules/authority/src/index.d.ts.map +1 -0
  230. package/dist/modules/authority/src/index.js +349 -0
  231. package/dist/modules/authority/src/index.js.map +1 -0
  232. package/dist/modules/authority-state/src/index.d.ts +43 -0
  233. package/dist/modules/authority-state/src/index.d.ts.map +1 -0
  234. package/dist/modules/authority-state/src/index.js +194 -0
  235. package/dist/modules/authority-state/src/index.js.map +1 -0
  236. package/dist/modules/catalog-admission/src/admission-conflicts.d.ts +424 -0
  237. package/dist/modules/catalog-admission/src/admission-conflicts.d.ts.map +1 -0
  238. package/dist/modules/catalog-admission/src/admission-conflicts.js +369 -0
  239. package/dist/modules/catalog-admission/src/admission-conflicts.js.map +1 -0
  240. package/dist/modules/catalog-admission/src/index.d.ts +248 -0
  241. package/dist/modules/catalog-admission/src/index.d.ts.map +1 -0
  242. package/dist/modules/catalog-admission/src/index.js +601 -0
  243. package/dist/modules/catalog-admission/src/index.js.map +1 -0
  244. package/dist/modules/catalog-admission/src/machine-admission.d.ts +1273 -0
  245. package/dist/modules/catalog-admission/src/machine-admission.d.ts.map +1 -0
  246. package/dist/modules/catalog-admission/src/machine-admission.js +529 -0
  247. package/dist/modules/catalog-admission/src/machine-admission.js.map +1 -0
  248. package/dist/modules/catalog-admission/src/publication-assets.d.ts +5 -0
  249. package/dist/modules/catalog-admission/src/publication-assets.d.ts.map +1 -0
  250. package/dist/modules/catalog-admission/src/publication-assets.js +26 -0
  251. package/dist/modules/catalog-admission/src/publication-assets.js.map +1 -0
  252. package/dist/modules/catalog-admission/src/publication-dependencies.d.ts +96 -0
  253. package/dist/modules/catalog-admission/src/publication-dependencies.d.ts.map +1 -0
  254. package/dist/modules/catalog-admission/src/publication-dependencies.js +177 -0
  255. package/dist/modules/catalog-admission/src/publication-dependencies.js.map +1 -0
  256. package/dist/modules/catalog-admission/src/publication-entities.d.ts +9 -0
  257. package/dist/modules/catalog-admission/src/publication-entities.d.ts.map +1 -0
  258. package/dist/modules/catalog-admission/src/publication-entities.js +48 -0
  259. package/dist/modules/catalog-admission/src/publication-entities.js.map +1 -0
  260. package/dist/modules/catalog-admission/src/publication-recomposition.d.ts +42 -0
  261. package/dist/modules/catalog-admission/src/publication-recomposition.d.ts.map +1 -0
  262. package/dist/modules/catalog-admission/src/publication-recomposition.js +163 -0
  263. package/dist/modules/catalog-admission/src/publication-recomposition.js.map +1 -0
  264. package/dist/modules/catalog-admission/src/publication.d.ts +92 -0
  265. package/dist/modules/catalog-admission/src/publication.d.ts.map +1 -0
  266. package/dist/modules/catalog-admission/src/publication.js +605 -0
  267. package/dist/modules/catalog-admission/src/publication.js.map +1 -0
  268. package/dist/modules/catalog-admission/src/submission.d.ts +47 -0
  269. package/dist/modules/catalog-admission/src/submission.d.ts.map +1 -0
  270. package/dist/modules/catalog-admission/src/submission.js +289 -0
  271. package/dist/modules/catalog-admission/src/submission.js.map +1 -0
  272. package/dist/modules/catalog-authoring-validation/src/index.d.ts +46 -0
  273. package/dist/modules/catalog-authoring-validation/src/index.d.ts.map +1 -0
  274. package/dist/modules/catalog-authoring-validation/src/index.js +98 -0
  275. package/dist/modules/catalog-authoring-validation/src/index.js.map +1 -0
  276. package/dist/modules/catalog-model/src/index.d.ts +26 -0
  277. package/dist/modules/catalog-model/src/index.d.ts.map +1 -0
  278. package/dist/modules/catalog-model/src/index.js +80 -0
  279. package/dist/modules/catalog-model/src/index.js.map +1 -0
  280. package/dist/modules/cli/src/index.d.ts +10 -0
  281. package/dist/modules/cli/src/index.d.ts.map +1 -0
  282. package/dist/modules/cli/src/index.js +31 -0
  283. package/dist/modules/cli/src/index.js.map +1 -0
  284. package/dist/modules/compiler/src/index.d.ts +23 -0
  285. package/dist/modules/compiler/src/index.d.ts.map +1 -0
  286. package/dist/modules/compiler/src/index.js +75 -0
  287. package/dist/modules/compiler/src/index.js.map +1 -0
  288. package/dist/modules/evidence-operations/src/dependency-versions.d.ts +2 -0
  289. package/dist/modules/evidence-operations/src/dependency-versions.d.ts.map +1 -0
  290. package/dist/modules/evidence-operations/src/dependency-versions.js +17 -0
  291. package/dist/modules/evidence-operations/src/dependency-versions.js.map +1 -0
  292. package/dist/modules/evidence-operations/src/evidence-normalization.d.ts +111 -0
  293. package/dist/modules/evidence-operations/src/evidence-normalization.d.ts.map +1 -0
  294. package/dist/modules/evidence-operations/src/evidence-normalization.js +309 -0
  295. package/dist/modules/evidence-operations/src/evidence-normalization.js.map +1 -0
  296. package/dist/modules/evidence-operations/src/proof-graph.d.ts +22 -0
  297. package/dist/modules/evidence-operations/src/proof-graph.d.ts.map +1 -0
  298. package/dist/modules/evidence-operations/src/proof-graph.js +188 -0
  299. package/dist/modules/evidence-operations/src/proof-graph.js.map +1 -0
  300. package/dist/modules/evidence-operations/src/source-authority.d.ts +31 -0
  301. package/dist/modules/evidence-operations/src/source-authority.d.ts.map +1 -0
  302. package/dist/modules/evidence-operations/src/source-authority.js +60 -0
  303. package/dist/modules/evidence-operations/src/source-authority.js.map +1 -0
  304. package/dist/modules/evidence-operations/src/submission-verifier.d.ts +318 -0
  305. package/dist/modules/evidence-operations/src/submission-verifier.d.ts.map +1 -0
  306. package/dist/modules/evidence-operations/src/submission-verifier.js +392 -0
  307. package/dist/modules/evidence-operations/src/submission-verifier.js.map +1 -0
  308. package/dist/modules/evidence-operations/src/url-canonicalization.d.ts +3 -0
  309. package/dist/modules/evidence-operations/src/url-canonicalization.d.ts.map +1 -0
  310. package/dist/modules/evidence-operations/src/url-canonicalization.js +7 -0
  311. package/dist/modules/evidence-operations/src/url-canonicalization.js.map +1 -0
  312. package/dist/modules/primitives/src/index.d.ts +40 -0
  313. package/dist/modules/primitives/src/index.d.ts.map +1 -0
  314. package/dist/modules/primitives/src/index.js +154 -0
  315. package/dist/modules/primitives/src/index.js.map +1 -0
  316. package/dist/modules/provenance/src/evidence-bindings.d.ts +10 -0
  317. package/dist/modules/provenance/src/evidence-bindings.d.ts.map +1 -0
  318. package/dist/modules/provenance/src/evidence-bindings.js +49 -0
  319. package/dist/modules/provenance/src/evidence-bindings.js.map +1 -0
  320. package/dist/modules/provenance/src/evidence-coverage.d.ts +35 -0
  321. package/dist/modules/provenance/src/evidence-coverage.d.ts.map +1 -0
  322. package/dist/modules/provenance/src/evidence-coverage.js +131 -0
  323. package/dist/modules/provenance/src/evidence-coverage.js.map +1 -0
  324. package/dist/modules/provenance/src/index.d.ts +68 -0
  325. package/dist/modules/provenance/src/index.d.ts.map +1 -0
  326. package/dist/modules/provenance/src/index.js +536 -0
  327. package/dist/modules/provenance/src/index.js.map +1 -0
  328. package/dist/modules/provenance/src/material-claims.d.ts +381 -0
  329. package/dist/modules/provenance/src/material-claims.d.ts.map +1 -0
  330. package/dist/modules/provenance/src/material-claims.js +375 -0
  331. package/dist/modules/provenance/src/material-claims.js.map +1 -0
  332. package/dist/modules/provenance/src/prospective-evidence.d.ts +6 -0
  333. package/dist/modules/provenance/src/prospective-evidence.d.ts.map +1 -0
  334. package/dist/modules/provenance/src/prospective-evidence.js +61 -0
  335. package/dist/modules/provenance/src/prospective-evidence.js.map +1 -0
  336. package/dist/modules/release/src/asset-delta-verifier.d.ts +12 -0
  337. package/dist/modules/release/src/asset-delta-verifier.d.ts.map +1 -0
  338. package/dist/modules/release/src/asset-delta-verifier.js +82 -0
  339. package/dist/modules/release/src/asset-delta-verifier.js.map +1 -0
  340. package/dist/modules/release/src/changes.d.ts +23 -0
  341. package/dist/modules/release/src/changes.d.ts.map +1 -0
  342. package/dist/modules/release/src/changes.js +389 -0
  343. package/dist/modules/release/src/changes.js.map +1 -0
  344. package/dist/modules/release/src/identity.d.ts +17 -0
  345. package/dist/modules/release/src/identity.d.ts.map +1 -0
  346. package/dist/modules/release/src/identity.js +433 -0
  347. package/dist/modules/release/src/identity.js.map +1 -0
  348. package/dist/modules/release/src/inputs.d.ts +89 -0
  349. package/dist/modules/release/src/inputs.d.ts.map +1 -0
  350. package/dist/modules/release/src/inputs.js +514 -0
  351. package/dist/modules/release/src/inputs.js.map +1 -0
  352. package/dist/modules/release/src/publication-inputs.d.ts +9 -0
  353. package/dist/modules/release/src/publication-inputs.d.ts.map +1 -0
  354. package/dist/modules/release/src/publication-inputs.js +67 -0
  355. package/dist/modules/release/src/publication-inputs.js.map +1 -0
  356. package/dist/modules/release/src/release-directory-files.d.ts +7 -0
  357. package/dist/modules/release/src/release-directory-files.d.ts.map +1 -0
  358. package/dist/modules/release/src/release-directory-files.js +49 -0
  359. package/dist/modules/release/src/release-directory-files.js.map +1 -0
  360. package/dist/modules/release/src/release-revision-parser.d.ts +5 -0
  361. package/dist/modules/release/src/release-revision-parser.d.ts.map +1 -0
  362. package/dist/modules/release/src/release-revision-parser.js +19 -0
  363. package/dist/modules/release/src/release-revision-parser.js.map +1 -0
  364. package/dist/modules/release/src/transition.d.ts +36 -0
  365. package/dist/modules/release/src/transition.d.ts.map +1 -0
  366. package/dist/modules/release/src/transition.js +263 -0
  367. package/dist/modules/release/src/transition.js.map +1 -0
  368. package/dist/modules/release/src/verification-policies.d.ts +278 -0
  369. package/dist/modules/release/src/verification-policies.d.ts.map +1 -0
  370. package/dist/modules/release/src/verification-policies.js +38 -0
  371. package/dist/modules/release/src/verification-policies.js.map +1 -0
  372. package/dist/modules/release/src/verification-transitions.d.ts +14 -0
  373. package/dist/modules/release/src/verification-transitions.d.ts.map +1 -0
  374. package/dist/modules/release/src/verification-transitions.js +26 -0
  375. package/dist/modules/release/src/verification-transitions.js.map +1 -0
  376. package/dist/modules/release/src/verifier.d.ts +41 -0
  377. package/dist/modules/release/src/verifier.d.ts.map +1 -0
  378. package/dist/modules/release/src/verifier.js +577 -0
  379. package/dist/modules/release/src/verifier.js.map +1 -0
  380. package/dist/modules/standard-adapter-runtime/src/index.d.ts +16 -0
  381. package/dist/modules/standard-adapter-runtime/src/index.d.ts.map +1 -0
  382. package/dist/modules/standard-adapter-runtime/src/index.js +43 -0
  383. package/dist/modules/standard-adapter-runtime/src/index.js.map +1 -0
  384. package/dist/modules/standard-evidence/src/index.d.ts +33 -0
  385. package/dist/modules/standard-evidence/src/index.d.ts.map +1 -0
  386. package/dist/modules/standard-evidence/src/index.js +149 -0
  387. package/dist/modules/standard-evidence/src/index.js.map +1 -0
  388. package/dist/packages/catalog-verifier/src/application.d.ts +89 -0
  389. package/dist/packages/catalog-verifier/src/application.d.ts.map +1 -0
  390. package/dist/packages/catalog-verifier/src/application.js +363 -0
  391. package/dist/packages/catalog-verifier/src/application.js.map +1 -0
  392. package/dist/packages/catalog-verifier/src/index.d.ts +7 -0
  393. package/dist/packages/catalog-verifier/src/index.d.ts.map +1 -0
  394. package/dist/packages/catalog-verifier/src/index.js +7 -0
  395. package/dist/packages/catalog-verifier/src/index.js.map +1 -0
  396. package/dist/packages/catalog-verifier/src/program.d.ts +4 -0
  397. package/dist/packages/catalog-verifier/src/program.d.ts.map +1 -0
  398. package/dist/packages/catalog-verifier/src/program.js +203 -0
  399. package/dist/packages/catalog-verifier/src/program.js.map +1 -0
  400. package/package.json +63 -0
  401. package/sourcey-catalog-verify.js +7 -0
  402. package/taxonomy.json +29 -0
@@ -0,0 +1,3 @@
1
+ import type { CatalogEvent } from "../../../contracts/events/src/index.js";
2
+ export declare function eventDisposesAssetBinding(event: CatalogEvent, entityId: string, bindingEventId: string): boolean;
3
+ //# sourceMappingURL=disposition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposition.d.ts","sourceRoot":"","sources":["../../../../modules/assets/src/disposition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAE3E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAkBT"}
@@ -0,0 +1,30 @@
1
+ export function eventDisposesAssetBinding(event, entityId, bindingEventId) {
2
+ if (!eventDisposesEntity(event, entityId))
3
+ return false;
4
+ if (typeof event.payload !== "object" || event.payload === null)
5
+ return false;
6
+ const disposition = event.payload.disposition;
7
+ if (typeof disposition !== "object" || disposition === null)
8
+ return false;
9
+ const bindings = disposition.asset_bindings;
10
+ return (Array.isArray(bindings) &&
11
+ bindings.some((binding) => typeof binding === "object" &&
12
+ binding !== null &&
13
+ binding.binding_event_id === bindingEventId &&
14
+ ["end", "rebind"].includes(String(binding.disposition ?? ""))));
15
+ }
16
+ function eventDisposesEntity(event, entityId) {
17
+ if (typeof event.payload !== "object" || event.payload === null)
18
+ return false;
19
+ const payload = event.payload;
20
+ if (event.kind === "entity.merged") {
21
+ return (Array.isArray(payload.retired_entity_ids) && payload.retired_entity_ids.includes(entityId));
22
+ }
23
+ if (event.kind === "entity.split")
24
+ return payload.original_entity_id === entityId;
25
+ if (event.kind === "entity.succeeded") {
26
+ return payload.predecessor_retires === true && payload.predecessor_entity_id === entityId;
27
+ }
28
+ return false;
29
+ }
30
+ //# sourceMappingURL=disposition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposition.js","sourceRoot":"","sources":["../../../../modules/assets/src/disposition.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CACvC,KAAmB,EACnB,QAAgB,EAChB,cAAsB;IAEtB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,WAAW,GAAI,KAAK,CAAC,OAAqC,CAAC,WAAW,CAAC;IAC7E,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1E,MAAM,QAAQ,GAAI,WAA4C,CAAC,cAAc,CAAC;IAC9E,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvB,QAAQ,CAAC,IAAI,CACX,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,KAAK,IAAI;YACf,OAA0C,CAAC,gBAAgB,KAAK,cAAc;YAC/E,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CACxB,MAAM,CAAE,OAAqC,CAAC,WAAW,IAAI,EAAE,CAAC,CACjE,CACJ,CACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAmB,EAAE,QAAgB;IAChE,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkC,CAAC;IACzD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC3F,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ,CAAC;IAClF,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,mBAAmB,KAAK,IAAI,IAAI,OAAO,CAAC,qBAAqB,KAAK,QAAQ,CAAC;IAC5F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type AssetDelta, type AssetIndex, type AssetInputs, type AssetManifest, type AssetNotices, type EntityAssetProposal, type RetainedAssetCapture, type SourceyOwnedEntityIconCandidate } from "../../../contracts/assets/src/index.js";
2
+ import type { CatalogEvent } from "../../../contracts/events/src/index.js";
3
+ export interface MaterializedAssets {
4
+ readonly manifest: AssetManifest;
5
+ readonly inputs: AssetInputs;
6
+ readonly safeBytes: ReadonlyMap<string, Uint8Array>;
7
+ }
8
+ export declare function verifyRetainedAssetCapture(input: unknown): RetainedAssetCapture;
9
+ export declare function verifySourceyOwnedEntityIconCandidate(input: unknown): SourceyOwnedEntityIconCandidate;
10
+ export declare function verifyEntityAssetProposal(input: unknown): EntityAssetProposal;
11
+ export declare function verifyAssetDelta(input: unknown): AssetDelta;
12
+ export declare function validateAssetManifest(input: unknown): AssetManifest;
13
+ export declare function materializeAssetManifest(input: unknown, readBytes: (relativePath: string) => Uint8Array): MaterializedAssets;
14
+ export declare function projectAssets(input: {
15
+ readonly manifest: AssetManifest;
16
+ readonly events: readonly CatalogEvent[];
17
+ readonly policyAsOf: string;
18
+ }): {
19
+ readonly index: AssetIndex;
20
+ readonly notices: AssetNotices;
21
+ };
22
+ export * from "./authority-bundle.js";
23
+ export * from "./delta.js";
24
+ export * from "./ingestion.js";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/assets/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EASjB,KAAK,mBAAmB,EAGxB,KAAK,oBAAoB,EAGzB,KAAK,+BAA+B,EAGrC,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAS3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACrD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAO/E;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,OAAO,GACb,+BAA+B,CAQjC;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAoB7E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAkB3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CA+DnE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,UAAU,GAC9C,kBAAkB,CA6BpB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAiFjE;AAiBD,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,234 @@
1
+ import { assetDeltaCoreSchema, assetDeltaSchema, assetIndexSchema, assetInputsSchema, assetManifestSchema, assetNoticesSchema, assetObjectCoreSchema, assetTransformReceiptCoreSchema, entityAssetProposalCoreSchema, entityAssetProposalSchema, retainedAssetCaptureCoreSchema, retainedAssetCaptureSchema, sourceyOwnedEntityIconCandidateCoreSchema, sourceyOwnedEntityIconCandidateSchema, } from "../../../contracts/assets/src/index.js";
2
+ import { compareCanonicalStrings, digest, digestPathSegment, sha256Bytes, } from "../../primitives/src/index.js";
3
+ export function verifyRetainedAssetCapture(input) {
4
+ const capture = retainedAssetCaptureSchema.parse(input);
5
+ const { capture_digest: captureDigest, ...core } = capture;
6
+ if (digest(retainedAssetCaptureCoreSchema.parse(core)) !== captureDigest) {
7
+ throw new Error("Retained asset capture digest does not match its immutable input.");
8
+ }
9
+ return capture;
10
+ }
11
+ export function verifySourceyOwnedEntityIconCandidate(input) {
12
+ const candidate = sourceyOwnedEntityIconCandidateSchema.parse(input);
13
+ verifyRetainedAssetCapture(candidate.capture);
14
+ const { candidate_digest: candidateDigest, ...core } = candidate;
15
+ if (digest(sourceyOwnedEntityIconCandidateCoreSchema.parse(core)) !== candidateDigest) {
16
+ throw new Error("Sourcey-owned Entity icon candidate digest does not match its input.");
17
+ }
18
+ return candidate;
19
+ }
20
+ export function verifyEntityAssetProposal(input) {
21
+ const proposal = entityAssetProposalSchema.parse(input);
22
+ verifyRetainedAssetCapture(proposal.capture);
23
+ const manifest = validateAssetManifest({
24
+ manifest_contract: "sourcey.asset-manifest/v1alpha1",
25
+ transform_profiles: [proposal.transform_profile],
26
+ objects: [proposal.asset],
27
+ });
28
+ if (manifest.objects[0]?.original.digest !== proposal.capture.original_digest) {
29
+ throw new Error("Entity asset proposal differs from its retained original capture.");
30
+ }
31
+ const { review_artifact_digest: reviewArtifactDigest, ...reviewCore } = proposal.review;
32
+ if (digest(reviewCore) !== reviewArtifactDigest) {
33
+ throw new Error("Entity asset review artifact digest does not match its approved input.");
34
+ }
35
+ const { proposal_digest: proposalDigest, ...core } = proposal;
36
+ if (digest(entityAssetProposalCoreSchema.parse(core)) !== proposalDigest) {
37
+ throw new Error("Entity asset proposal digest does not match its canonical input.");
38
+ }
39
+ return proposal;
40
+ }
41
+ export function verifyAssetDelta(input) {
42
+ const delta = assetDeltaSchema.parse(input);
43
+ const changes = [...delta.changes].sort((left, right) => compareCanonicalStrings(left.entity_id, right.entity_id) ||
44
+ compareCanonicalStrings(left.role, right.role));
45
+ if (changes.some((change, index) => change !== delta.changes[index]) ||
46
+ new Set(changes.map((change) => `${change.entity_id}:${change.role}`)).size !== changes.length) {
47
+ throw new Error("Asset delta changes must be unique and canonically ordered.");
48
+ }
49
+ const { delta_digest: deltaDigest, ...core } = delta;
50
+ if (digest(assetDeltaCoreSchema.parse(core)) !== deltaDigest) {
51
+ throw new Error("Asset delta digest does not match its canonical input.");
52
+ }
53
+ return delta;
54
+ }
55
+ export function validateAssetManifest(input) {
56
+ const manifest = assetManifestSchema.parse(input);
57
+ const profiles = new Map();
58
+ for (const profile of manifest.transform_profiles) {
59
+ const { profile_digest: _, ...profileCore } = profile;
60
+ if (digest(profileCore) !== profile.profile_digest) {
61
+ throw new Error(`Asset transform profile ${profile.profile_digest} is invalid.`);
62
+ }
63
+ if (profiles.has(profile.profile_digest)) {
64
+ throw new Error(`Asset manifest repeats transform profile ${profile.profile_digest}.`);
65
+ }
66
+ profiles.set(profile.profile_digest, profile);
67
+ }
68
+ const objectDigests = new Set();
69
+ const byteDigests = new Map();
70
+ for (const object of manifest.objects) {
71
+ const { asset_object_digest: _, ...coreInput } = object;
72
+ const core = assetObjectCoreSchema.parse(coreInput);
73
+ if (digest(core) !== object.asset_object_digest) {
74
+ throw new Error(`Asset object ${object.asset_object_digest} has a digest mismatch.`);
75
+ }
76
+ if (objectDigests.has(object.asset_object_digest)) {
77
+ throw new Error(`Asset manifest repeats object ${object.asset_object_digest}.`);
78
+ }
79
+ objectDigests.add(object.asset_object_digest);
80
+ const receipts = new Map(object.transform_receipts.map((receipt) => [receipt.receipt_digest, receipt]));
81
+ for (const receipt of object.transform_receipts) {
82
+ const { receipt_digest: _, ...receiptCore } = receipt;
83
+ if (digest(assetTransformReceiptCoreSchema.parse(receiptCore)) !== receipt.receipt_digest) {
84
+ throw new Error(`Asset transform receipt ${receipt.receipt_digest} is invalid.`);
85
+ }
86
+ if (receipt.original_digest !== object.original.digest) {
87
+ throw new Error("Asset transform receipt is bound to another original.");
88
+ }
89
+ }
90
+ for (const variant of object.safe_variants) {
91
+ const receipt = receipts.get(variant.transform_receipt_digest);
92
+ if (!receipt ||
93
+ receipt.safe_digest !== variant.digest ||
94
+ receipt.profile_digest !== variant.transform_profile_digest ||
95
+ !profiles.has(variant.transform_profile_digest) ||
96
+ profiles.get(variant.transform_profile_digest)?.toolchain_digest !==
97
+ receipt.toolchain_digest) {
98
+ throw new Error(`Safe asset ${variant.digest} has no exact transform receipt.`);
99
+ }
100
+ const canonicalPath = `sha256/${digestPathSegment(variant.digest)}`;
101
+ if (variant.served_path !== canonicalPath) {
102
+ throw new Error(`Safe asset ${variant.digest} does not use its immutable served path.`);
103
+ }
104
+ }
105
+ for (const bytes of [object.original, ...object.safe_variants]) {
106
+ const prior = byteDigests.get(bytes.source_path);
107
+ if (prior && prior !== bytes.digest) {
108
+ throw new Error(`Asset path ${bytes.source_path} is rebound to different bytes.`);
109
+ }
110
+ byteDigests.set(bytes.source_path, bytes.digest);
111
+ }
112
+ }
113
+ return manifest;
114
+ }
115
+ export function materializeAssetManifest(input, readBytes) {
116
+ const manifest = validateAssetManifest(input);
117
+ const safeBytes = new Map();
118
+ for (const object of manifest.objects) {
119
+ for (const reference of [object.original, ...object.safe_variants]) {
120
+ const bytes = readBytes(reference.source_path);
121
+ if (bytes.byteLength !== reference.bytes || sha256Bytes(bytes) !== reference.digest) {
122
+ throw new Error(`Asset bytes do not match ${reference.digest}.`);
123
+ }
124
+ if ("served_path" in reference)
125
+ safeBytes.set(reference.digest, bytes);
126
+ }
127
+ }
128
+ const inputs = assetInputsSchema.parse({
129
+ input_contract: "sourcey.asset-inputs/v1alpha1",
130
+ manifest_digest: digest(manifest),
131
+ transform_profile_digests: manifest.transform_profiles
132
+ .map((profile) => profile.profile_digest)
133
+ .sort(compareCanonicalStrings),
134
+ object_digests: manifest.objects
135
+ .map((object) => object.asset_object_digest)
136
+ .sort(compareCanonicalStrings),
137
+ original_digests: manifest.objects
138
+ .map((object) => object.original.digest)
139
+ .sort(compareCanonicalStrings),
140
+ safe_variant_digests: manifest.objects
141
+ .flatMap((object) => object.safe_variants.map((variant) => variant.digest))
142
+ .sort(compareCanonicalStrings),
143
+ });
144
+ return { manifest, inputs, safeBytes };
145
+ }
146
+ export function projectAssets(input) {
147
+ const manifest = validateAssetManifest(input.manifest);
148
+ const asOf = Date.parse(input.policyAsOf);
149
+ if (!Number.isFinite(asOf))
150
+ throw new Error("Asset projection policy time is invalid.");
151
+ const objects = new Map(manifest.objects.map((object) => [object.asset_object_digest, object]));
152
+ const terminations = new Set(input.events.flatMap((event) => ["asset.withdrawn", "asset.takedown-ordered"].includes(event.kind) &&
153
+ Date.parse(stringValue(record(event.payload).effective_at)) <= asOf
154
+ ? [stringValue(record(event.payload).target_binding_event_id)]
155
+ : []));
156
+ const bindings = input.events
157
+ .filter((event) => event.kind === "asset.bound")
158
+ .flatMap((event) => {
159
+ const payload = record(event.payload);
160
+ const effectiveFrom = stringValue(payload.effective_from);
161
+ const effectiveUntil = optionalString(payload.effective_until);
162
+ if (terminations.has(event.event_id) ||
163
+ Date.parse(effectiveFrom) > asOf ||
164
+ (effectiveUntil && Date.parse(effectiveUntil) <= asOf)) {
165
+ return [];
166
+ }
167
+ const objectDigest = stringValue(payload.asset_object_digest);
168
+ const servedDigest = stringValue(payload.served_derivative_digest);
169
+ const object = objects.get(objectDigest);
170
+ const variant = object?.safe_variants.find((candidate) => candidate.digest === servedDigest);
171
+ if (!object || !variant) {
172
+ throw new Error(`Asset binding ${event.event_id} references an unavailable safe asset.`);
173
+ }
174
+ return [
175
+ {
176
+ entity_id: event.subject.entity_id,
177
+ role: payload.role,
178
+ asset_object_digest: objectDigest,
179
+ served_digest: servedDigest,
180
+ served_path: `assets/sha256/${digestPathSegment(servedDigest)}`,
181
+ media_type: variant.media_type,
182
+ bytes: variant.bytes,
183
+ width: variant.width,
184
+ height: variant.height,
185
+ authority_basis: payload.authority_basis,
186
+ ...(payload.authority_claim_id ? { authority_claim_id: payload.authority_claim_id } : {}),
187
+ approval_receipt_digest: payload.approval_receipt_digest,
188
+ source_basis: payload.source_basis,
189
+ license_basis: payload.license_basis,
190
+ effective_from: effectiveFrom,
191
+ ...(effectiveUntil ? { effective_until: effectiveUntil } : {}),
192
+ binding_event_id: event.event_id,
193
+ },
194
+ ];
195
+ })
196
+ .sort((left, right) => compareCanonicalStrings(left.entity_id, right.entity_id) ||
197
+ compareCanonicalStrings(String(left.role), String(right.role)));
198
+ const activeKeys = bindings.map((binding) => `${binding.entity_id}:${binding.role}`);
199
+ if (new Set(activeKeys).size !== activeKeys.length) {
200
+ throw new Error("More than one active asset binding exists for an entity role.");
201
+ }
202
+ const notices = assetNoticesSchema.parse({
203
+ notices_contract: "sourcey.asset-notices/v1alpha1",
204
+ notices: manifest.objects
205
+ .map((object) => ({
206
+ asset_object_digest: object.asset_object_digest,
207
+ ...object.redistribution,
208
+ }))
209
+ .sort((left, right) => compareCanonicalStrings(left.asset_object_digest, right.asset_object_digest)),
210
+ });
211
+ const index = assetIndexSchema.parse({
212
+ asset_index_contract: "sourcey.asset-index/v1alpha1",
213
+ bindings,
214
+ notices_digest: digest(notices),
215
+ });
216
+ return { index, notices };
217
+ }
218
+ function record(value) {
219
+ return typeof value === "object" && value !== null && !Array.isArray(value)
220
+ ? value
221
+ : {};
222
+ }
223
+ function stringValue(value) {
224
+ if (typeof value !== "string" || !value)
225
+ throw new Error("Asset event value is missing.");
226
+ return value;
227
+ }
228
+ function optionalString(value) {
229
+ return value === undefined ? null : stringValue(value);
230
+ }
231
+ export * from "./authority-bundle.js";
232
+ export * from "./delta.js";
233
+ export * from "./ingestion.js";
234
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/assets/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { AssetMediaType, AssetRedistribution, AssetTransformProfile, EntityAssetProposal, EntityAssetReviewArtifact, RetainedAssetCapture } from "../../../contracts/assets/src/index.js";
2
+ import { type Digest } from "../../primitives/src/index.js";
3
+ export declare const ENTITY_ICON_MAX_SOURCE_PIXELS: number;
4
+ export declare const ENTITY_ICON_MAX_SOURCE_ASPECT_RATIO = 1.5;
5
+ export declare const ENTITY_ICON_SIZE = 256;
6
+ export interface AssetObjectStoreReceipt {
7
+ readonly objectDigest: Digest;
8
+ readonly bytes: number;
9
+ readonly mediaType: string;
10
+ readonly classification: "public" | "restricted";
11
+ readonly receiptDigest: Digest;
12
+ }
13
+ export interface AssetObjectStorePort {
14
+ put(input: {
15
+ readonly expectedDigest: Digest;
16
+ readonly bytes: Uint8Array;
17
+ readonly mediaType: string;
18
+ readonly classification: "public" | "restricted";
19
+ }): Promise<AssetObjectStoreReceipt>;
20
+ }
21
+ export interface EntityIconTransformResult {
22
+ readonly bytes: Uint8Array;
23
+ readonly mediaType: AssetMediaType;
24
+ readonly width: number;
25
+ readonly height: number;
26
+ }
27
+ export interface EntityIconTransformerPort {
28
+ readonly profile: AssetTransformProfile;
29
+ transform(input: {
30
+ readonly bytes: Uint8Array;
31
+ readonly declaredMediaType: AssetMediaType;
32
+ }): Promise<EntityIconTransformResult>;
33
+ }
34
+ export declare function retainEntityAssetCapture(input: {
35
+ readonly source: {
36
+ readonly kind: "upload";
37
+ readonly uploadReceiptDigest: Digest;
38
+ } | {
39
+ readonly kind: "official_url";
40
+ readonly requestedUrl: string;
41
+ readonly finalUrl: string;
42
+ readonly redirectCount: number;
43
+ readonly captureReceiptDigest: Digest;
44
+ } | {
45
+ readonly kind: "sourcey_fallback";
46
+ readonly generationRule: "sourcey.entity-monogram-5x7/v1";
47
+ readonly fallbackReasonDigest: Digest;
48
+ };
49
+ readonly bytes: Uint8Array;
50
+ readonly mediaType: AssetMediaType;
51
+ readonly capturedAt: string;
52
+ readonly objects: AssetObjectStorePort;
53
+ }): Promise<RetainedAssetCapture>;
54
+ export declare function prepareEntityAssetProposal(input: {
55
+ readonly baseReleaseId: Digest;
56
+ readonly entityId: string;
57
+ readonly expectedCurrentBindingEventId: Digest | null;
58
+ readonly capture: RetainedAssetCapture;
59
+ readonly originalBytes: Uint8Array;
60
+ readonly redistribution: AssetRedistribution;
61
+ readonly authorityBasis: "vendor-authority" | "editorial-review" | "licensed-source" | "sourcey-owned";
62
+ readonly authorityClaimId?: string;
63
+ readonly sourceBasis: string;
64
+ readonly reviewArtifact: EntityAssetReviewArtifact;
65
+ readonly effectiveFrom: string;
66
+ readonly transformer: EntityIconTransformerPort;
67
+ readonly objects: AssetObjectStorePort;
68
+ }): Promise<EntityAssetProposal>;
69
+ //# sourceMappingURL=ingestion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingestion.d.ts","sourceRoot":"","sources":["../../../../modules/assets/src/ingestion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import { assetObjectCoreSchema, assetTransformProfileCoreSchema, assetTransformProfileSchema, assetTransformReceiptCoreSchema, ENTITY_ICON_MAX_SOURCE_BYTES, ENTITY_ICON_RASTER_PROFILE_VERSION, entityAssetProposalCoreSchema, retainedAssetCaptureCoreSchema, SOURCEY_ENTITY_MONOGRAM_PROFILE_VERSION, } from "../../../contracts/assets/src/index.js";
2
+ import { digest, digestPathSegment, sha256Bytes } from "../../primitives/src/index.js";
3
+ import { verifyEntityAssetProposal, verifyRetainedAssetCapture } from "./index.js";
4
+ export const ENTITY_ICON_MAX_SOURCE_PIXELS = 4096 * 4096;
5
+ export const ENTITY_ICON_MAX_SOURCE_ASPECT_RATIO = 1.5;
6
+ export const ENTITY_ICON_SIZE = 256;
7
+ export async function retainEntityAssetCapture(input) {
8
+ if (input.bytes.byteLength === 0 || input.bytes.byteLength > ENTITY_ICON_MAX_SOURCE_BYTES) {
9
+ throw new Error("Entity icon original bytes violate the encoded byte limit.");
10
+ }
11
+ const originalDigest = sha256Bytes(input.bytes);
12
+ const storage = await input.objects.put({
13
+ expectedDigest: originalDigest,
14
+ bytes: input.bytes,
15
+ mediaType: input.mediaType,
16
+ classification: "restricted",
17
+ });
18
+ verifyStoreReceipt(storage, {
19
+ objectDigest: originalDigest,
20
+ bytes: input.bytes.byteLength,
21
+ mediaType: input.mediaType,
22
+ classification: "restricted",
23
+ });
24
+ const source = input.source.kind === "upload"
25
+ ? {
26
+ kind: "upload",
27
+ upload_receipt_digest: input.source.uploadReceiptDigest,
28
+ }
29
+ : input.source.kind === "official_url"
30
+ ? {
31
+ kind: "official_url",
32
+ requested_url: input.source.requestedUrl,
33
+ final_url: input.source.finalUrl,
34
+ redirect_count: input.source.redirectCount,
35
+ capture_receipt_digest: input.source.captureReceiptDigest,
36
+ }
37
+ : {
38
+ kind: "sourcey_fallback",
39
+ generation_rule: input.source.generationRule,
40
+ fallback_reason_digest: input.source.fallbackReasonDigest,
41
+ };
42
+ const core = retainedAssetCaptureCoreSchema.parse({
43
+ capture_contract: "sourcey.retained-asset-capture/v1alpha1",
44
+ source,
45
+ original_digest: originalDigest,
46
+ bytes: input.bytes.byteLength,
47
+ media_type: input.mediaType,
48
+ captured_at: input.capturedAt,
49
+ storage_receipt_digest: storage.receiptDigest,
50
+ });
51
+ return verifyRetainedAssetCapture({ ...core, capture_digest: digest(core) });
52
+ }
53
+ export async function prepareEntityAssetProposal(input) {
54
+ const capture = verifyRetainedAssetCapture(input.capture);
55
+ if (input.originalBytes.byteLength !== capture.bytes ||
56
+ sha256Bytes(input.originalBytes) !== capture.original_digest) {
57
+ throw new Error("Entity asset original bytes differ from the retained capture.");
58
+ }
59
+ if (input.originalBytes.byteLength > ENTITY_ICON_MAX_SOURCE_BYTES) {
60
+ throw new Error("Entity icon exceeds the maximum encoded byte size.");
61
+ }
62
+ verifyTransformProfile(input.transformer.profile, input.authorityBasis);
63
+ const transformed = await input.transformer.transform({
64
+ bytes: input.originalBytes,
65
+ declaredMediaType: capture.media_type,
66
+ });
67
+ if (transformed.width !== ENTITY_ICON_SIZE ||
68
+ transformed.height !== ENTITY_ICON_SIZE ||
69
+ transformed.mediaType !== input.transformer.profile.output_media_type) {
70
+ throw new Error("Entity icon transformer did not produce the exact canonical canvas.");
71
+ }
72
+ const safeDigest = sha256Bytes(transformed.bytes);
73
+ const safeStorage = await input.objects.put({
74
+ expectedDigest: safeDigest,
75
+ bytes: transformed.bytes,
76
+ mediaType: transformed.mediaType,
77
+ classification: "public",
78
+ });
79
+ verifyStoreReceipt(safeStorage, {
80
+ objectDigest: safeDigest,
81
+ bytes: transformed.bytes.byteLength,
82
+ mediaType: transformed.mediaType,
83
+ classification: "public",
84
+ });
85
+ const receiptCore = assetTransformReceiptCoreSchema.parse({
86
+ receipt_contract: "sourcey.asset-transform-receipt/v1alpha1",
87
+ original_digest: capture.original_digest,
88
+ safe_digest: safeDigest,
89
+ profile_digest: input.transformer.profile.profile_digest,
90
+ toolchain_digest: input.transformer.profile.toolchain_digest,
91
+ });
92
+ const receipt = { ...receiptCore, receipt_digest: digest(receiptCore) };
93
+ const safePath = `safe/sha256/${digestPathSegment(safeDigest)}`;
94
+ const objectCore = assetObjectCoreSchema.parse({
95
+ asset_contract: "sourcey.asset/v1alpha1",
96
+ original: {
97
+ digest: capture.original_digest,
98
+ bytes: capture.bytes,
99
+ media_type: capture.media_type,
100
+ source_path: `originals/sha256/${digestPathSegment(capture.original_digest)}`,
101
+ },
102
+ safe_variants: [
103
+ {
104
+ digest: safeDigest,
105
+ bytes: transformed.bytes.byteLength,
106
+ media_type: transformed.mediaType,
107
+ source_path: safePath,
108
+ served_path: `sha256/${digestPathSegment(safeDigest)}`,
109
+ width: transformed.width,
110
+ height: transformed.height,
111
+ transform_profile_digest: input.transformer.profile.profile_digest,
112
+ transform_receipt_digest: receipt.receipt_digest,
113
+ },
114
+ ],
115
+ transform_receipts: [receipt],
116
+ redistribution: input.redistribution,
117
+ });
118
+ const asset = { ...objectCore, asset_object_digest: digest(objectCore) };
119
+ const core = entityAssetProposalCoreSchema.parse({
120
+ proposal_contract: "sourcey.entity-asset-proposal/v1alpha1",
121
+ base_release_id: input.baseReleaseId,
122
+ entity_id: input.entityId,
123
+ role: "icon",
124
+ expected_current_binding_event_id: input.expectedCurrentBindingEventId,
125
+ capture,
126
+ transform_profile: input.transformer.profile,
127
+ asset,
128
+ served_digest: safeDigest,
129
+ safe_storage_receipt_digest: safeStorage.receiptDigest,
130
+ authority_basis: input.authorityBasis,
131
+ ...(input.authorityClaimId ? { authority_claim_id: input.authorityClaimId } : {}),
132
+ source_basis: input.sourceBasis,
133
+ approval_scope: "entity-icon",
134
+ review: input.reviewArtifact,
135
+ effective_from: input.effectiveFrom,
136
+ });
137
+ return verifyEntityAssetProposal({ ...core, proposal_digest: digest(core) });
138
+ }
139
+ function verifyTransformProfile(profile, authorityBasis) {
140
+ const parsed = assetTransformProfileSchema.parse(profile);
141
+ const { profile_digest: profileDigest, ...core } = parsed;
142
+ if (digest(assetTransformProfileCoreSchema.parse(core)) !== profileDigest) {
143
+ throw new Error("Entity icon transform profile digest is invalid.");
144
+ }
145
+ const canonicalRaster = profile.profile_version === ENTITY_ICON_RASTER_PROFILE_VERSION &&
146
+ profile.output_media_type === "image/png" &&
147
+ profile.maximum_width === ENTITY_ICON_SIZE &&
148
+ profile.maximum_height === ENTITY_ICON_SIZE &&
149
+ profile.maximum_source_aspect_ratio === ENTITY_ICON_MAX_SOURCE_ASPECT_RATIO;
150
+ const canonicalSourceyVector = profile.profile_version === SOURCEY_ENTITY_MONOGRAM_PROFILE_VERSION &&
151
+ profile.output_media_type === "image/svg+xml" &&
152
+ profile.maximum_width === ENTITY_ICON_SIZE &&
153
+ profile.maximum_height === ENTITY_ICON_SIZE &&
154
+ profile.maximum_source_aspect_ratio === 1;
155
+ if ((authorityBasis === "sourcey-owned" && !canonicalSourceyVector) ||
156
+ (authorityBasis !== "sourcey-owned" && !canonicalRaster)) {
157
+ throw new Error("Entity icon transformer does not implement the canonical profile.");
158
+ }
159
+ }
160
+ function verifyStoreReceipt(receipt, expected) {
161
+ if (receipt.objectDigest !== expected.objectDigest ||
162
+ receipt.bytes !== expected.bytes ||
163
+ receipt.mediaType !== expected.mediaType ||
164
+ receipt.classification !== expected.classification ||
165
+ !receipt.receiptDigest.startsWith("sha256:")) {
166
+ throw new Error("Asset object-store receipt does not bind the exact safe object.");
167
+ }
168
+ }
169
+ //# sourceMappingURL=ingestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingestion.js","sourceRoot":"","sources":["../../../../modules/assets/src/ingestion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ProtectedSignature, RootSet, RootSetTransition, RootSetTransitionCore, SignaturePurpose, SignerRegistry, SignerRegistryCore } from "../../../contracts/authority/src/index.js";
2
+ import { type CatalogVerifierIdentityContext, type CatalogVerifierIdentityContextCore } from "../../../contracts/catalog-verifier/src/index.js";
3
+ import { type CatalogEvent, type CatalogEventCore, type CatalogEventKind } from "../../../contracts/events/src/index.js";
4
+ import { type CaptureReceipt, type CaptureReceiptCore } from "../../../contracts/evidence/src/index.js";
5
+ import { type ChangeCursor, type ChangeCursorCore, type SearchCursor, type SearchCursorCore } from "../../../contracts/feed/src/index.js";
6
+ import { type ReleasePublication, type ReleasePublicationCore } from "../../../contracts/release/src/index.js";
7
+ import { type Digest } from "../../primitives/src/index.js";
8
+ export declare function signaturePurposeForKind(kind: CatalogEventKind): SignaturePurpose;
9
+ export declare function signerRegistryPreimage(core: SignerRegistryCore): Buffer;
10
+ export declare function rootSetTransitionPreimage(core: RootSetTransitionCore): Buffer;
11
+ export declare function validateRootSetTransition(input: {
12
+ readonly previousRootSet: RootSet;
13
+ readonly nextRootSet: RootSet;
14
+ readonly transition: unknown;
15
+ readonly releaseSequence: number;
16
+ }): RootSetTransition;
17
+ export declare function eventSignaturePreimage(core: CatalogEventCore, eventId: Digest, protectedHeader: Omit<ProtectedSignature, "signature">): Buffer;
18
+ export declare function captureReceiptSignaturePreimage(core: CaptureReceiptCore, receiptDigest: Digest, protectedHeader: Omit<ProtectedSignature, "signature">): Buffer;
19
+ export declare function releasePublicationSignaturePreimage(core: ReleasePublicationCore, publicationDigest: Digest, protectedHeader: Omit<ProtectedSignature, "signature">): Buffer;
20
+ export declare function changeCursorSignaturePreimage(core: ChangeCursorCore | SearchCursorCore, cursorDigest: Digest, protectedHeader: Omit<ProtectedSignature, "signature">): Buffer;
21
+ export declare function catalogVerifierIdentityContextSignaturePreimage(core: CatalogVerifierIdentityContextCore, contextDigest: Digest, protectedHeader: Omit<ProtectedSignature, "signature">): Buffer;
22
+ export declare function validateCatalogVerifierIdentityContext(input: unknown, registry: SignerRegistry, verifiedAt: string): CatalogVerifierIdentityContext;
23
+ export declare function validateSearchCursor(input: unknown, registry: SignerRegistry, context?: {
24
+ readonly releaseSequence: number;
25
+ }): SearchCursor;
26
+ export declare function validateSignerRegistry(rootSet: RootSet, input: unknown): SignerRegistry;
27
+ /**
28
+ * Resolve the one registry authority that may issue a purpose-bound object at
29
+ * an exact instant and release. This is deliberately independent of private
30
+ * key custody: callers learn only the public issuer/key identity that their
31
+ * immutable object must name.
32
+ */
33
+ export declare function resolveActiveSignerAuthority(registry: SignerRegistry, input: {
34
+ readonly purpose: SignaturePurpose;
35
+ readonly at: string;
36
+ readonly releaseSequence: number;
37
+ }): {
38
+ readonly issuerId: string;
39
+ readonly keyId: string;
40
+ };
41
+ export declare function validateProtectedEvent(input: unknown, registry: SignerRegistry, releaseSequence: number): CatalogEvent;
42
+ export declare function validateProtectedCaptureReceipt(input: unknown, registry: SignerRegistry, releaseSequence: number): CaptureReceipt;
43
+ export declare function validateReleasePublication(input: unknown, registry: SignerRegistry): ReleasePublication;
44
+ export declare function validateChangeCursor(input: unknown, registry: SignerRegistry, context?: {
45
+ readonly releaseSequence: number;
46
+ }): ChangeCursor;
47
+ //# sourceMappingURL=index.d.ts.map