universal-physics-tensor 9.0.0 → 11.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 (1109) hide show
  1. package/README.md +21 -17
  2. package/bin/upt.mjs +13 -1
  3. package/data/atlas/atlas.json +79 -68
  4. package/data/atlas/atlas.jsonld +1 -1
  5. package/data/atlas/diffusion.json +24 -23
  6. package/data/atlas/oscillators.json +21 -16
  7. package/data/atlas/waves.json +36 -31
  8. package/data/atlas/witness-results.json +11 -11
  9. package/data/bridge-catalog.json +1192 -1636
  10. package/data/bridge-catalog.schema.json +390 -135
  11. package/data/quantities.json +53 -19
  12. package/data/schemas/atlas-record.v0.json +184 -46
  13. package/data/units.json +33 -4
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +35 -18
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.js.map +1 -1
  18. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  20. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  21. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  22. package/dist/atlas/benchmark/baselines.js +8 -0
  23. package/dist/atlas/benchmark/baselines.js.map +1 -1
  24. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +12 -3
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  26. package/dist/atlas/benchmark/hybrid-retrieval.js +30 -21
  27. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  28. package/dist/atlas/benchmark/leakage.js.map +1 -1
  29. package/dist/atlas/benchmark/loader.js +2 -2
  30. package/dist/atlas/benchmark/loader.js.map +1 -1
  31. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  32. package/dist/atlas/benchmark/run-atlas.js +14 -2
  33. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  34. package/dist/atlas/benchmark/stats.d.ts +3 -3
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +16 -8
  37. package/dist/atlas/benchmark/stats.js.map +1 -1
  38. package/dist/atlas/benchmark/study.js.map +1 -1
  39. package/dist/atlas/benchmark/types.js.map +1 -1
  40. package/dist/atlas/bridge-record.d.ts +4 -4
  41. package/dist/atlas/bridge-record.d.ts.map +1 -1
  42. package/dist/atlas/bridge-record.js +6 -6
  43. package/dist/atlas/bridge-record.js.map +1 -1
  44. package/dist/atlas/catalog-formal-ref.d.ts +26 -3
  45. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  46. package/dist/atlas/catalog-formal-ref.js +52 -5
  47. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  48. package/dist/atlas/chain-pipeline.d.ts +0 -11
  49. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  50. package/dist/atlas/chain-pipeline.js +12 -24
  51. package/dist/atlas/chain-pipeline.js.map +1 -1
  52. package/dist/atlas/composition-table.js.map +1 -1
  53. package/dist/atlas/conventions.js.map +1 -1
  54. package/dist/atlas/coverage.d.ts +2 -2
  55. package/dist/atlas/coverage.js.map +1 -1
  56. package/dist/atlas/derivation.js.map +1 -1
  57. package/dist/atlas/derive-evidence.d.ts +6 -4
  58. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  59. package/dist/atlas/derive-evidence.js +7 -2
  60. package/dist/atlas/derive-evidence.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
  62. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  63. package/dist/atlas/diffusion/bridges-closure.js +8 -17
  64. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  65. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  66. package/dist/atlas/diffusion/bridges.js +27 -42
  67. package/dist/atlas/diffusion/bridges.js.map +1 -1
  68. package/dist/atlas/diffusion/dimensions.d.ts +6 -14
  69. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
  70. package/dist/atlas/diffusion/dimensions.js +8 -16
  71. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  72. package/dist/atlas/diffusion/index.d.ts +1 -1
  73. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  74. package/dist/atlas/diffusion/index.js.map +1 -1
  75. package/dist/atlas/diffusion/models.d.ts +3 -3
  76. package/dist/atlas/diffusion/models.d.ts.map +1 -1
  77. package/dist/atlas/diffusion/models.js +5 -10
  78. package/dist/atlas/diffusion/models.js.map +1 -1
  79. package/dist/atlas/diffusion/numerics.d.ts +16 -4
  80. package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
  81. package/dist/atlas/diffusion/numerics.js +38 -24
  82. package/dist/atlas/diffusion/numerics.js.map +1 -1
  83. package/dist/atlas/error-algebra.d.ts +6 -0
  84. package/dist/atlas/error-algebra.d.ts.map +1 -1
  85. package/dist/atlas/error-algebra.js +26 -0
  86. package/dist/atlas/error-algebra.js.map +1 -1
  87. package/dist/atlas/export.d.ts +18 -2
  88. package/dist/atlas/export.d.ts.map +1 -1
  89. package/dist/atlas/export.js +9 -3
  90. package/dist/atlas/export.js.map +1 -1
  91. package/dist/atlas/families.d.ts +19 -2
  92. package/dist/atlas/families.d.ts.map +1 -1
  93. package/dist/atlas/families.js +26 -3
  94. package/dist/atlas/families.js.map +1 -1
  95. package/dist/atlas/family.d.ts +27 -0
  96. package/dist/atlas/family.d.ts.map +1 -0
  97. package/dist/atlas/family.js +12 -0
  98. package/dist/atlas/family.js.map +1 -0
  99. package/dist/atlas/index.d.ts +3 -2
  100. package/dist/atlas/index.d.ts.map +1 -1
  101. package/dist/atlas/index.js +2 -1
  102. package/dist/atlas/index.js.map +1 -1
  103. package/dist/atlas/link-prediction.d.ts +107 -4
  104. package/dist/atlas/link-prediction.d.ts.map +1 -1
  105. package/dist/atlas/link-prediction.js +212 -66
  106. package/dist/atlas/link-prediction.js.map +1 -1
  107. package/dist/atlas/model.js.map +1 -1
  108. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  109. package/dist/atlas/oscillators/bridges-coarse.js +7 -12
  110. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  111. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  112. package/dist/atlas/oscillators/bridges-exact.js +6 -10
  113. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  114. package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
  115. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  116. package/dist/atlas/oscillators/bridges-limits.js +23 -36
  117. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  118. package/dist/atlas/oscillators/dimensions.d.ts +9 -21
  119. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
  120. package/dist/atlas/oscillators/dimensions.js +9 -21
  121. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  122. package/dist/atlas/oscillators/index.d.ts +1 -16
  123. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  124. package/dist/atlas/oscillators/index.js.map +1 -1
  125. package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
  126. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
  127. package/dist/atlas/oscillators/limit-witnesses.js +17 -15
  128. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  129. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  130. package/dist/atlas/oscillators/models.js +2 -6
  131. package/dist/atlas/oscillators/models.js.map +1 -1
  132. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  133. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  134. package/dist/atlas/oscillators/norms.js.map +1 -1
  135. package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
  136. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
  137. package/dist/atlas/oscillators/pendulum-motion.js +60 -40
  138. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  139. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  140. package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
  141. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
  142. package/dist/atlas/oscillators/phase-translation.js +3 -4
  143. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  144. package/dist/atlas/oscillators/position-translation.d.ts +68 -7
  145. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
  146. package/dist/atlas/oscillators/position-translation.js +123 -12
  147. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  148. package/dist/atlas/oscillators/rejections.d.ts +0 -2
  149. package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
  150. package/dist/atlas/oscillators/rejections.js +0 -7
  151. package/dist/atlas/oscillators/rejections.js.map +1 -1
  152. package/dist/atlas/path-bound.js.map +1 -1
  153. package/dist/atlas/physjs-entries.generated.d.ts +25 -24
  154. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  155. package/dist/atlas/physjs-entries.generated.js +25 -24
  156. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  157. package/dist/atlas/physjs-ref.d.ts +107 -70
  158. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  159. package/dist/atlas/physjs-ref.js +184 -101
  160. package/dist/atlas/physjs-ref.js.map +1 -1
  161. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  162. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  163. package/dist/atlas/physjs-reviewed.js +194 -0
  164. package/dist/atlas/physjs-reviewed.js.map +1 -0
  165. package/dist/atlas/poster/associations.js.map +1 -1
  166. package/dist/atlas/poster/derivations.js.map +1 -1
  167. package/dist/atlas/poster/statements.d.ts +0 -19
  168. package/dist/atlas/poster/statements.d.ts.map +1 -1
  169. package/dist/atlas/poster/statements.js +1 -1
  170. package/dist/atlas/poster/statements.js.map +1 -1
  171. package/dist/atlas/proof-target.d.ts +1 -1
  172. package/dist/atlas/proof-target.js +1 -1
  173. package/dist/atlas/proof-target.js.map +1 -1
  174. package/dist/atlas/public.d.ts +2 -1
  175. package/dist/atlas/public.d.ts.map +1 -1
  176. package/dist/atlas/public.js +2 -1
  177. package/dist/atlas/public.js.map +1 -1
  178. package/dist/atlas/regime.d.ts +1 -1
  179. package/dist/atlas/regime.d.ts.map +1 -1
  180. package/dist/atlas/regime.js +1 -1
  181. package/dist/atlas/regime.js.map +1 -1
  182. package/dist/atlas/serialize.d.ts +18 -12
  183. package/dist/atlas/serialize.d.ts.map +1 -1
  184. package/dist/atlas/serialize.js +28 -18
  185. package/dist/atlas/serialize.js.map +1 -1
  186. package/dist/atlas/statement.js.map +1 -1
  187. package/dist/atlas/text-overlap.d.ts +23 -0
  188. package/dist/atlas/text-overlap.d.ts.map +1 -0
  189. package/dist/atlas/text-overlap.js +41 -0
  190. package/dist/atlas/text-overlap.js.map +1 -0
  191. package/dist/atlas/translation-registry.js.map +1 -1
  192. package/dist/atlas/translation.js.map +1 -1
  193. package/dist/atlas/types.d.ts +9 -2
  194. package/dist/atlas/types.d.ts.map +1 -1
  195. package/dist/atlas/types.js +1 -1
  196. package/dist/atlas/types.js.map +1 -1
  197. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  198. package/dist/atlas/waves/bridges-closure.js +2 -9
  199. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  200. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  201. package/dist/atlas/waves/bridges.js +32 -52
  202. package/dist/atlas/waves/bridges.js.map +1 -1
  203. package/dist/atlas/waves/index.d.ts +1 -1
  204. package/dist/atlas/waves/index.d.ts.map +1 -1
  205. package/dist/atlas/waves/index.js.map +1 -1
  206. package/dist/atlas/waves/models.d.ts +5 -6
  207. package/dist/atlas/waves/models.d.ts.map +1 -1
  208. package/dist/atlas/waves/models.js +7 -13
  209. package/dist/atlas/waves/models.js.map +1 -1
  210. package/dist/atlas/waves/numerics.d.ts.map +1 -1
  211. package/dist/atlas/waves/numerics.js +10 -3
  212. package/dist/atlas/waves/numerics.js.map +1 -1
  213. package/dist/atlas/witness-artifact.js.map +1 -1
  214. package/dist/atlas/witness-dominance.d.ts +4 -3
  215. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  216. package/dist/atlas/witness-dominance.js +15 -5
  217. package/dist/atlas/witness-dominance.js.map +1 -1
  218. package/dist/atlas/witness-numeric.d.ts +38 -4
  219. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  220. package/dist/atlas/witness-numeric.js +80 -2
  221. package/dist/atlas/witness-numeric.js.map +1 -1
  222. package/dist/atlas/witness-result.d.ts +7 -1
  223. package/dist/atlas/witness-result.d.ts.map +1 -1
  224. package/dist/atlas/witness-result.js.map +1 -1
  225. package/dist/atlas/witness-specs.d.ts.map +1 -1
  226. package/dist/atlas/witness-specs.js +19 -0
  227. package/dist/atlas/witness-specs.js.map +1 -1
  228. package/dist/atlas/witness-symbolic.d.ts +75 -3
  229. package/dist/atlas/witness-symbolic.d.ts.map +1 -1
  230. package/dist/atlas/witness-symbolic.js +116 -10
  231. package/dist/atlas/witness-symbolic.js.map +1 -1
  232. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  233. package/dist/bridges/caller-table.d.ts +1 -1
  234. package/dist/bridges/caller-table.d.ts.map +1 -1
  235. package/dist/bridges/caller-table.js.map +1 -1
  236. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  237. package/dist/bridges/carrier-sign.js +8 -3
  238. package/dist/bridges/carrier-sign.js.map +1 -1
  239. package/dist/bridges/catalog-adapter.d.ts +12 -3
  240. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  241. package/dist/bridges/catalog-adapter.js +17 -9
  242. package/dist/bridges/catalog-adapter.js.map +1 -1
  243. package/dist/bridges/catalog-load.d.ts +12 -2
  244. package/dist/bridges/catalog-load.d.ts.map +1 -1
  245. package/dist/bridges/catalog-load.js +181 -13
  246. package/dist/bridges/catalog-load.js.map +1 -1
  247. package/dist/bridges/catalog-types.d.ts +74 -26
  248. package/dist/bridges/catalog-types.d.ts.map +1 -1
  249. package/dist/bridges/catalog-types.js +11 -1
  250. package/dist/bridges/catalog-types.js.map +1 -1
  251. package/dist/bridges/coefficient-statement.js +1 -5
  252. package/dist/bridges/coefficient-statement.js.map +1 -1
  253. package/dist/bridges/confrontation-coverage.js.map +1 -1
  254. package/dist/bridges/confrontations.d.ts +1 -1
  255. package/dist/bridges/confrontations.d.ts.map +1 -1
  256. package/dist/bridges/confrontations.js +1 -1
  257. package/dist/bridges/confrontations.js.map +1 -1
  258. package/dist/bridges/evaluation-errors.d.ts +46 -3
  259. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  260. package/dist/bridges/evaluation-errors.js +40 -4
  261. package/dist/bridges/evaluation-errors.js.map +1 -1
  262. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  263. package/dist/bridges/evaluator-inputs.js +7 -5
  264. package/dist/bridges/evaluator-inputs.js.map +1 -1
  265. package/dist/bridges/evaluators.d.ts +17 -2
  266. package/dist/bridges/evaluators.d.ts.map +1 -1
  267. package/dist/bridges/evaluators.js +76 -28
  268. package/dist/bridges/evaluators.js.map +1 -1
  269. package/dist/bridges/expr-parse.d.ts +38 -4
  270. package/dist/bridges/expr-parse.d.ts.map +1 -1
  271. package/dist/bridges/expr-parse.js +101 -12
  272. package/dist/bridges/expr-parse.js.map +1 -1
  273. package/dist/bridges/holds.d.ts +40 -4
  274. package/dist/bridges/holds.d.ts.map +1 -1
  275. package/dist/bridges/holds.js +128 -19
  276. package/dist/bridges/holds.js.map +1 -1
  277. package/dist/bridges/index.d.ts +15 -14
  278. package/dist/bridges/index.d.ts.map +1 -1
  279. package/dist/bridges/index.js +14 -15
  280. package/dist/bridges/index.js.map +1 -1
  281. package/dist/bridges/input-contract.js.map +1 -1
  282. package/dist/bridges/membership.d.ts +5 -3
  283. package/dist/bridges/membership.d.ts.map +1 -1
  284. package/dist/bridges/membership.js +5 -6
  285. package/dist/bridges/membership.js.map +1 -1
  286. package/dist/bridges/notices.d.ts.map +1 -1
  287. package/dist/bridges/notices.js +5 -5
  288. package/dist/bridges/notices.js.map +1 -1
  289. package/dist/bridges/observations/types.js.map +1 -1
  290. package/dist/bridges/rejected.d.ts +11 -17
  291. package/dist/bridges/rejected.d.ts.map +1 -1
  292. package/dist/bridges/rejected.js +13 -68
  293. package/dist/bridges/rejected.js.map +1 -1
  294. package/dist/bridges/relation-eval.d.ts +6 -7
  295. package/dist/bridges/relation-eval.d.ts.map +1 -1
  296. package/dist/bridges/relation-eval.js +20 -50
  297. package/dist/bridges/relation-eval.js.map +1 -1
  298. package/dist/bridges/rhs-registry.js.map +1 -1
  299. package/dist/bridges/sensitivity.d.ts +11 -3
  300. package/dist/bridges/sensitivity.d.ts.map +1 -1
  301. package/dist/bridges/sensitivity.js +27 -13
  302. package/dist/bridges/sensitivity.js.map +1 -1
  303. package/dist/bridges/tensor-index.js.map +1 -1
  304. package/dist/bridges/types.d.ts +1 -7
  305. package/dist/bridges/types.d.ts.map +1 -1
  306. package/dist/bridges/types.js +1 -4
  307. package/dist/bridges/types.js.map +1 -1
  308. package/dist/bridges/validity.d.ts +33 -0
  309. package/dist/bridges/validity.d.ts.map +1 -0
  310. package/dist/bridges/validity.js +67 -0
  311. package/dist/bridges/validity.js.map +1 -0
  312. package/dist/canonical/canonical-equation.js.map +1 -1
  313. package/dist/canonical/dimensional-fields.js.map +1 -1
  314. package/dist/canonical/entries/_l1-build.js.map +1 -1
  315. package/dist/canonical/entries/atomic.js +1 -3
  316. package/dist/canonical/entries/atomic.js.map +1 -1
  317. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  318. package/dist/canonical/entries/condensed-matter.js +8 -9
  319. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  320. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  321. package/dist/canonical/entries/dimensional-classics.js +5 -6
  322. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  323. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  324. package/dist/canonical/entries/electromagnetism.js +6 -12
  325. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  326. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  327. package/dist/canonical/entries/fluids-waves.js +3 -7
  328. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  329. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  330. package/dist/canonical/entries/mechanics.js +4 -6
  331. package/dist/canonical/entries/mechanics.js.map +1 -1
  332. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  333. package/dist/canonical/entries/nonmonomial.js +38 -39
  334. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  335. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  336. package/dist/canonical/entries/relativity.js +6 -6
  337. package/dist/canonical/entries/relativity.js.map +1 -1
  338. package/dist/canonical/entries/statistical-mechanics.js +5 -5
  339. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  340. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  341. package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
  342. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  343. package/dist/canonical/fixed-points.d.ts +94 -0
  344. package/dist/canonical/fixed-points.d.ts.map +1 -0
  345. package/dist/canonical/fixed-points.js +81 -0
  346. package/dist/canonical/fixed-points.js.map +1 -0
  347. package/dist/canonical/linkage.d.ts +29 -4
  348. package/dist/canonical/linkage.d.ts.map +1 -1
  349. package/dist/canonical/linkage.js +47 -64
  350. package/dist/canonical/linkage.js.map +1 -1
  351. package/dist/canonical/normal-form.d.ts +0 -8
  352. package/dist/canonical/normal-form.d.ts.map +1 -1
  353. package/dist/canonical/normal-form.js +22 -23
  354. package/dist/canonical/normal-form.js.map +1 -1
  355. package/dist/canonical/registry.js.map +1 -1
  356. package/dist/canonical/residual.js.map +1 -1
  357. package/dist/canonical/seed-l-layer.d.ts +7 -1
  358. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  359. package/dist/canonical/seed-l-layer.js +7 -1
  360. package/dist/canonical/seed-l-layer.js.map +1 -1
  361. package/dist/canonical/structural.d.ts +42 -21
  362. package/dist/canonical/structural.d.ts.map +1 -1
  363. package/dist/canonical/structural.js +64 -23
  364. package/dist/canonical/structural.js.map +1 -1
  365. package/dist/cases/brownian-sphere.d.ts +3 -3
  366. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  367. package/dist/cases/brownian-sphere.js +10 -9
  368. package/dist/cases/brownian-sphere.js.map +1 -1
  369. package/dist/cases/damped-resonator.d.ts.map +1 -1
  370. package/dist/cases/damped-resonator.js +8 -11
  371. package/dist/cases/damped-resonator.js.map +1 -1
  372. package/dist/cases/index.js.map +1 -1
  373. package/dist/cases/kepler-rv.d.ts +1 -1
  374. package/dist/cases/kepler-rv.d.ts.map +1 -1
  375. package/dist/cases/kepler-rv.js +3 -2
  376. package/dist/cases/kepler-rv.js.map +1 -1
  377. package/dist/cases/lumped-cooling.d.ts +8 -3
  378. package/dist/cases/lumped-cooling.d.ts.map +1 -1
  379. package/dist/cases/lumped-cooling.js +22 -24
  380. package/dist/cases/lumped-cooling.js.map +1 -1
  381. package/dist/cases/quadrature.d.ts +7 -9
  382. package/dist/cases/quadrature.d.ts.map +1 -1
  383. package/dist/cases/quadrature.js +28 -32
  384. package/dist/cases/quadrature.js.map +1 -1
  385. package/dist/cases/resistor-noise.js +7 -7
  386. package/dist/cases/resistor-noise.js.map +1 -1
  387. package/dist/cases/skin-depth.d.ts +0 -4
  388. package/dist/cases/skin-depth.d.ts.map +1 -1
  389. package/dist/cases/skin-depth.js +3 -7
  390. package/dist/cases/skin-depth.js.map +1 -1
  391. package/dist/cases/types.js.map +1 -1
  392. package/dist/cli/args.d.ts +30 -3
  393. package/dist/cli/args.d.ts.map +1 -1
  394. package/dist/cli/args.js +47 -9
  395. package/dist/cli/args.js.map +1 -1
  396. package/dist/cli/bindings.d.ts +13 -0
  397. package/dist/cli/bindings.d.ts.map +1 -0
  398. package/dist/cli/bindings.js +33 -0
  399. package/dist/cli/bindings.js.map +1 -0
  400. package/dist/cli/closed-form-range.js.map +1 -1
  401. package/dist/cli/command.d.ts +8 -1
  402. package/dist/cli/command.d.ts.map +1 -1
  403. package/dist/cli/command.js.map +1 -1
  404. package/dist/cli/commands/_atlas-map.d.ts +2 -11
  405. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  406. package/dist/cli/commands/_atlas-map.js +50 -35
  407. package/dist/cli/commands/_atlas-map.js.map +1 -1
  408. package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
  409. package/dist/cli/commands/_atlas-route.js +6 -2
  410. package/dist/cli/commands/_atlas-route.js.map +1 -1
  411. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  412. package/dist/cli/commands/_discovery-opts.js +48 -14
  413. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  414. package/dist/cli/commands/atlas.d.ts.map +1 -1
  415. package/dist/cli/commands/atlas.js +9 -8
  416. package/dist/cli/commands/atlas.js.map +1 -1
  417. package/dist/cli/commands/audit.d.ts.map +1 -1
  418. package/dist/cli/commands/audit.js +20 -20
  419. package/dist/cli/commands/audit.js.map +1 -1
  420. package/dist/cli/commands/axes.d.ts.map +1 -1
  421. package/dist/cli/commands/axes.js +20 -1
  422. package/dist/cli/commands/axes.js.map +1 -1
  423. package/dist/cli/commands/candidates.d.ts.map +1 -1
  424. package/dist/cli/commands/candidates.js +16 -8
  425. package/dist/cli/commands/candidates.js.map +1 -1
  426. package/dist/cli/commands/canonical.js.map +1 -1
  427. package/dist/cli/commands/chain.js +1 -1
  428. package/dist/cli/commands/chain.js.map +1 -1
  429. package/dist/cli/commands/confront.d.ts.map +1 -1
  430. package/dist/cli/commands/confront.js +22 -20
  431. package/dist/cli/commands/confront.js.map +1 -1
  432. package/dist/cli/commands/connectors.js.map +1 -1
  433. package/dist/cli/commands/coverage.js.map +1 -1
  434. package/dist/cli/commands/derive.d.ts.map +1 -1
  435. package/dist/cli/commands/derive.js +60 -35
  436. package/dist/cli/commands/derive.js.map +1 -1
  437. package/dist/cli/commands/discover.d.ts.map +1 -1
  438. package/dist/cli/commands/discover.js +20 -10
  439. package/dist/cli/commands/discover.js.map +1 -1
  440. package/dist/cli/commands/eval.d.ts.map +1 -1
  441. package/dist/cli/commands/eval.js +14 -10
  442. package/dist/cli/commands/eval.js.map +1 -1
  443. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  444. package/dist/cli/commands/evaluate.js +108 -58
  445. package/dist/cli/commands/evaluate.js.map +1 -1
  446. package/dist/cli/commands/explain.d.ts.map +1 -1
  447. package/dist/cli/commands/explain.js +16 -8
  448. package/dist/cli/commands/explain.js.map +1 -1
  449. package/dist/cli/commands/frontier.js.map +1 -1
  450. package/dist/cli/commands/ground.d.ts.map +1 -1
  451. package/dist/cli/commands/ground.js +41 -10
  452. package/dist/cli/commands/ground.js.map +1 -1
  453. package/dist/cli/commands/index.js.map +1 -1
  454. package/dist/cli/commands/map.d.ts.map +1 -1
  455. package/dist/cli/commands/map.js +155 -92
  456. package/dist/cli/commands/map.js.map +1 -1
  457. package/dist/cli/commands/metric.d.ts.map +1 -1
  458. package/dist/cli/commands/metric.js +58 -20
  459. package/dist/cli/commands/metric.js.map +1 -1
  460. package/dist/cli/commands/path.d.ts +10 -0
  461. package/dist/cli/commands/path.d.ts.map +1 -1
  462. package/dist/cli/commands/path.js +29 -7
  463. package/dist/cli/commands/path.js.map +1 -1
  464. package/dist/cli/commands/predict.js.map +1 -1
  465. package/dist/cli/commands/priority.js.map +1 -1
  466. package/dist/cli/commands/probe.d.ts.map +1 -1
  467. package/dist/cli/commands/probe.js +105 -38
  468. package/dist/cli/commands/probe.js.map +1 -1
  469. package/dist/cli/commands/recover.js +1 -1
  470. package/dist/cli/commands/recover.js.map +1 -1
  471. package/dist/cli/commands/regime.d.ts +5 -4
  472. package/dist/cli/commands/regime.d.ts.map +1 -1
  473. package/dist/cli/commands/regime.js +25 -26
  474. package/dist/cli/commands/regime.js.map +1 -1
  475. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  476. package/dist/cli/commands/retrieve.js +23 -14
  477. package/dist/cli/commands/retrieve.js.map +1 -1
  478. package/dist/cli/commands/search.d.ts.map +1 -1
  479. package/dist/cli/commands/search.js +9 -4
  480. package/dist/cli/commands/search.js.map +1 -1
  481. package/dist/cli/commands/symbolic.js +31 -36
  482. package/dist/cli/commands/symbolic.js.map +1 -1
  483. package/dist/cli/commands/testplan.d.ts.map +1 -1
  484. package/dist/cli/commands/testplan.js +5 -3
  485. package/dist/cli/commands/testplan.js.map +1 -1
  486. package/dist/cli/conventions.js.map +1 -1
  487. package/dist/cli/determination.js.map +1 -1
  488. package/dist/cli/errors.js.map +1 -1
  489. package/dist/cli/euler-guard.js.map +1 -1
  490. package/dist/cli/eval-numbers.js.map +1 -1
  491. package/dist/cli/expr-print.d.ts +28 -3
  492. package/dist/cli/expr-print.d.ts.map +1 -1
  493. package/dist/cli/expr-print.js +42 -22
  494. package/dist/cli/expr-print.js.map +1 -1
  495. package/dist/cli/flag-help.js.map +1 -1
  496. package/dist/cli/graphs.js.map +1 -1
  497. package/dist/cli/library-defaults.d.ts +19 -0
  498. package/dist/cli/library-defaults.d.ts.map +1 -0
  499. package/dist/cli/library-defaults.js +22 -0
  500. package/dist/cli/library-defaults.js.map +1 -0
  501. package/dist/cli/main.d.ts +7 -0
  502. package/dist/cli/main.d.ts.map +1 -1
  503. package/dist/cli/main.js +25 -6
  504. package/dist/cli/main.js.map +1 -1
  505. package/dist/cli/map-evidence.js.map +1 -1
  506. package/dist/cli/numeric-flag.d.ts +12 -0
  507. package/dist/cli/numeric-flag.d.ts.map +1 -0
  508. package/dist/cli/numeric-flag.js +44 -0
  509. package/dist/cli/numeric-flag.js.map +1 -0
  510. package/dist/cli/output.d.ts +23 -6
  511. package/dist/cli/output.d.ts.map +1 -1
  512. package/dist/cli/output.js +15 -0
  513. package/dist/cli/output.js.map +1 -1
  514. package/dist/cli/published-url.js.map +1 -1
  515. package/dist/cli/record-reach.d.ts +6 -0
  516. package/dist/cli/record-reach.d.ts.map +1 -1
  517. package/dist/cli/record-reach.js +17 -11
  518. package/dist/cli/record-reach.js.map +1 -1
  519. package/dist/cli/record-tables.d.ts.map +1 -1
  520. package/dist/cli/record-tables.js +7 -6
  521. package/dist/cli/record-tables.js.map +1 -1
  522. package/dist/cli/record.d.ts +1 -5
  523. package/dist/cli/record.d.ts.map +1 -1
  524. package/dist/cli/record.js +40 -20
  525. package/dist/cli/record.js.map +1 -1
  526. package/dist/cli/search-index.d.ts +5 -0
  527. package/dist/cli/search-index.d.ts.map +1 -1
  528. package/dist/cli/search-index.js +19 -7
  529. package/dist/cli/search-index.js.map +1 -1
  530. package/dist/cli/statuses.d.ts +0 -2
  531. package/dist/cli/statuses.d.ts.map +1 -1
  532. package/dist/cli/statuses.js +0 -7
  533. package/dist/cli/statuses.js.map +1 -1
  534. package/dist/cli/stored-results.d.ts +7 -0
  535. package/dist/cli/stored-results.d.ts.map +1 -0
  536. package/dist/cli/stored-results.js +23 -0
  537. package/dist/cli/stored-results.js.map +1 -0
  538. package/dist/cli/top-level-help.js.map +1 -1
  539. package/dist/cli/version.d.ts.map +1 -1
  540. package/dist/cli/version.js +7 -5
  541. package/dist/cli/version.js.map +1 -1
  542. package/dist/cli-api.d.ts +49 -14
  543. package/dist/cli-api.d.ts.map +1 -1
  544. package/dist/cli-api.js +42 -17
  545. package/dist/cli-api.js.map +1 -1
  546. package/dist/composition/adjudication.js.map +1 -1
  547. package/dist/composition/algebraic-equivalence.d.ts +43 -0
  548. package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
  549. package/dist/composition/algebraic-equivalence.js +115 -0
  550. package/dist/composition/algebraic-equivalence.js.map +1 -0
  551. package/dist/composition/aliases.js.map +1 -1
  552. package/dist/composition/audit-coverage.d.ts +2 -0
  553. package/dist/composition/audit-coverage.d.ts.map +1 -1
  554. package/dist/composition/audit-coverage.js.map +1 -1
  555. package/dist/composition/axes.d.ts +6 -0
  556. package/dist/composition/axes.d.ts.map +1 -1
  557. package/dist/composition/axes.js +18 -6
  558. package/dist/composition/axes.js.map +1 -1
  559. package/dist/composition/axis-audit.d.ts +47 -20
  560. package/dist/composition/axis-audit.d.ts.map +1 -1
  561. package/dist/composition/axis-audit.js +82 -9
  562. package/dist/composition/axis-audit.js.map +1 -1
  563. package/dist/composition/bridge-analysis.d.ts +14 -15
  564. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  565. package/dist/composition/bridge-analysis.js +148 -91
  566. package/dist/composition/bridge-analysis.js.map +1 -1
  567. package/dist/composition/bridge-prediction.d.ts +5 -1
  568. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  569. package/dist/composition/bridge-prediction.js +12 -16
  570. package/dist/composition/bridge-prediction.js.map +1 -1
  571. package/dist/composition/buckingham-filter.js.map +1 -1
  572. package/dist/composition/canonical-compare.d.ts +40 -0
  573. package/dist/composition/canonical-compare.d.ts.map +1 -1
  574. package/dist/composition/canonical-compare.js +134 -26
  575. package/dist/composition/canonical-compare.js.map +1 -1
  576. package/dist/composition/canonical-graph.d.ts +9 -10
  577. package/dist/composition/canonical-graph.d.ts.map +1 -1
  578. package/dist/composition/canonical-graph.js +33 -102
  579. package/dist/composition/canonical-graph.js.map +1 -1
  580. package/dist/composition/canonical-json.js +2 -2
  581. package/dist/composition/canonical-json.js.map +1 -1
  582. package/dist/composition/canonical-prefactors.js.map +1 -1
  583. package/dist/composition/catalog-graph.d.ts.map +1 -1
  584. package/dist/composition/catalog-graph.js +8 -25
  585. package/dist/composition/catalog-graph.js.map +1 -1
  586. package/dist/composition/chain-candidate.d.ts +10 -0
  587. package/dist/composition/chain-candidate.d.ts.map +1 -1
  588. package/dist/composition/chain-candidate.js +11 -2
  589. package/dist/composition/chain-candidate.js.map +1 -1
  590. package/dist/composition/chain-match.d.ts +6 -3
  591. package/dist/composition/chain-match.d.ts.map +1 -1
  592. package/dist/composition/chain-match.js +4 -1
  593. package/dist/composition/chain-match.js.map +1 -1
  594. package/dist/composition/chain-regime.js.map +1 -1
  595. package/dist/composition/chain-result.d.ts.map +1 -1
  596. package/dist/composition/chain-result.js +2 -14
  597. package/dist/composition/chain-result.js.map +1 -1
  598. package/dist/composition/compose-surface.js.map +1 -1
  599. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  600. package/dist/composition/compose-symbolic.js +3 -2
  601. package/dist/composition/compose-symbolic.js.map +1 -1
  602. package/dist/composition/compose.d.ts.map +1 -1
  603. package/dist/composition/compose.js +166 -41
  604. package/dist/composition/compose.js.map +1 -1
  605. package/dist/composition/composition-recovery.d.ts.map +1 -1
  606. package/dist/composition/composition-recovery.js +4 -7
  607. package/dist/composition/composition-recovery.js.map +1 -1
  608. package/dist/composition/consequence.d.ts.map +1 -1
  609. package/dist/composition/consequence.js +15 -6
  610. package/dist/composition/consequence.js.map +1 -1
  611. package/dist/composition/consistency.js.map +1 -1
  612. package/dist/composition/descriptor.d.ts +1 -1
  613. package/dist/composition/descriptor.d.ts.map +1 -1
  614. package/dist/composition/descriptor.js.map +1 -1
  615. package/dist/composition/dimension-adjacency.js.map +1 -1
  616. package/dist/composition/discovery.d.ts +77 -11
  617. package/dist/composition/discovery.d.ts.map +1 -1
  618. package/dist/composition/discovery.js +194 -80
  619. package/dist/composition/discovery.js.map +1 -1
  620. package/dist/composition/edge.d.ts +40 -10
  621. package/dist/composition/edge.d.ts.map +1 -1
  622. package/dist/composition/edge.js +47 -12
  623. package/dist/composition/edge.js.map +1 -1
  624. package/dist/composition/enumerate.d.ts +2 -2
  625. package/dist/composition/enumerate.d.ts.map +1 -1
  626. package/dist/composition/enumerate.js +18 -3
  627. package/dist/composition/enumerate.js.map +1 -1
  628. package/dist/composition/evaluate-relation.d.ts +35 -11
  629. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  630. package/dist/composition/evaluate-relation.js +60 -39
  631. package/dist/composition/evaluate-relation.js.map +1 -1
  632. package/dist/composition/explain.d.ts +5 -9
  633. package/dist/composition/explain.d.ts.map +1 -1
  634. package/dist/composition/explain.js +38 -18
  635. package/dist/composition/explain.js.map +1 -1
  636. package/dist/composition/expr-eval.d.ts.map +1 -1
  637. package/dist/composition/expr-eval.js +2 -11
  638. package/dist/composition/expr-eval.js.map +1 -1
  639. package/dist/composition/expr-simplify.d.ts +16 -0
  640. package/dist/composition/expr-simplify.d.ts.map +1 -1
  641. package/dist/composition/expr-simplify.js +24 -59
  642. package/dist/composition/expr-simplify.js.map +1 -1
  643. package/dist/composition/expr-subst.js.map +1 -1
  644. package/dist/composition/formula-shape.d.ts +28 -0
  645. package/dist/composition/formula-shape.d.ts.map +1 -1
  646. package/dist/composition/formula-shape.js +96 -2
  647. package/dist/composition/formula-shape.js.map +1 -1
  648. package/dist/composition/frontier-account.d.ts +3 -2
  649. package/dist/composition/frontier-account.d.ts.map +1 -1
  650. package/dist/composition/frontier-account.js +7 -3
  651. package/dist/composition/frontier-account.js.map +1 -1
  652. package/dist/composition/graph-structure.d.ts +98 -0
  653. package/dist/composition/graph-structure.d.ts.map +1 -0
  654. package/dist/composition/graph-structure.js +167 -0
  655. package/dist/composition/graph-structure.js.map +1 -0
  656. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  657. package/dist/composition/graph-viz-svg.js +1 -1
  658. package/dist/composition/graph-viz-svg.js.map +1 -1
  659. package/dist/composition/graph-viz.d.ts.map +1 -1
  660. package/dist/composition/graph-viz.js +8 -37
  661. package/dist/composition/graph-viz.js.map +1 -1
  662. package/dist/composition/grounding.js.map +1 -1
  663. package/dist/composition/identifiability.d.ts +91 -4
  664. package/dist/composition/identifiability.d.ts.map +1 -1
  665. package/dist/composition/identifiability.js +363 -6
  666. package/dist/composition/identifiability.js.map +1 -1
  667. package/dist/composition/index.d.ts +14 -8
  668. package/dist/composition/index.d.ts.map +1 -1
  669. package/dist/composition/index.js +7 -5
  670. package/dist/composition/index.js.map +1 -1
  671. package/dist/composition/mathts-quiet.d.ts +29 -0
  672. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  673. package/dist/composition/mathts-quiet.js +57 -0
  674. package/dist/composition/mathts-quiet.js.map +1 -0
  675. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  676. package/dist/composition/mathts-scalar-symbols.js +20 -35
  677. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  678. package/dist/composition/not-composable-seeds.d.ts +3 -1
  679. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  680. package/dist/composition/not-composable-seeds.js +2 -0
  681. package/dist/composition/not-composable-seeds.js.map +1 -1
  682. package/dist/composition/probe/backend-protocol.js.map +1 -1
  683. package/dist/composition/probe/candidate-store.js.map +1 -1
  684. package/dist/composition/probe/corpus.d.ts +4 -2
  685. package/dist/composition/probe/corpus.d.ts.map +1 -1
  686. package/dist/composition/probe/corpus.js +20 -9
  687. package/dist/composition/probe/corpus.js.map +1 -1
  688. package/dist/composition/probe/dataset.d.ts +17 -0
  689. package/dist/composition/probe/dataset.d.ts.map +1 -1
  690. package/dist/composition/probe/dataset.js +95 -50
  691. package/dist/composition/probe/dataset.js.map +1 -1
  692. package/dist/composition/probe/experiment-design.d.ts +5 -1
  693. package/dist/composition/probe/experiment-design.d.ts.map +1 -1
  694. package/dist/composition/probe/experiment-design.js +44 -24
  695. package/dist/composition/probe/experiment-design.js.map +1 -1
  696. package/dist/composition/probe/expression-gaps.js.map +1 -1
  697. package/dist/composition/probe/falsify.d.ts +14 -3
  698. package/dist/composition/probe/falsify.d.ts.map +1 -1
  699. package/dist/composition/probe/falsify.js +16 -27
  700. package/dist/composition/probe/falsify.js.map +1 -1
  701. package/dist/composition/probe/fingerprint.js.map +1 -1
  702. package/dist/composition/probe/fit.d.ts +7 -1
  703. package/dist/composition/probe/fit.d.ts.map +1 -1
  704. package/dist/composition/probe/fit.js +48 -23
  705. package/dist/composition/probe/fit.js.map +1 -1
  706. package/dist/composition/probe/frontier.d.ts.map +1 -1
  707. package/dist/composition/probe/frontier.js +33 -15
  708. package/dist/composition/probe/frontier.js.map +1 -1
  709. package/dist/composition/probe/generator.d.ts +27 -1
  710. package/dist/composition/probe/generator.d.ts.map +1 -1
  711. package/dist/composition/probe/generator.js +53 -30
  712. package/dist/composition/probe/generator.js.map +1 -1
  713. package/dist/composition/probe/index.d.ts +18 -2
  714. package/dist/composition/probe/index.d.ts.map +1 -1
  715. package/dist/composition/probe/index.js +10 -2
  716. package/dist/composition/probe/index.js.map +1 -1
  717. package/dist/composition/probe/limits.d.ts +24 -1
  718. package/dist/composition/probe/limits.d.ts.map +1 -1
  719. package/dist/composition/probe/limits.js +53 -11
  720. package/dist/composition/probe/limits.js.map +1 -1
  721. package/dist/composition/probe/metadata.js.map +1 -1
  722. package/dist/composition/probe/pipeline.d.ts +5 -0
  723. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  724. package/dist/composition/probe/pipeline.js +22 -9
  725. package/dist/composition/probe/pipeline.js.map +1 -1
  726. package/dist/composition/probe/power-law.d.ts +121 -0
  727. package/dist/composition/probe/power-law.d.ts.map +1 -0
  728. package/dist/composition/probe/power-law.js +255 -0
  729. package/dist/composition/probe/power-law.js.map +1 -0
  730. package/dist/composition/probe/problem.d.ts +12 -1
  731. package/dist/composition/probe/problem.d.ts.map +1 -1
  732. package/dist/composition/probe/problem.js +242 -48
  733. package/dist/composition/probe/problem.js.map +1 -1
  734. package/dist/composition/probe/report.js +1 -1
  735. package/dist/composition/probe/report.js.map +1 -1
  736. package/dist/composition/probe/residual.d.ts +6 -1
  737. package/dist/composition/probe/residual.d.ts.map +1 -1
  738. package/dist/composition/probe/residual.js +9 -7
  739. package/dist/composition/probe/residual.js.map +1 -1
  740. package/dist/composition/probe/run-manifest.js +2 -2
  741. package/dist/composition/probe/run-manifest.js.map +1 -1
  742. package/dist/composition/probe/scoring.d.ts +2 -1
  743. package/dist/composition/probe/scoring.d.ts.map +1 -1
  744. package/dist/composition/probe/scoring.js +21 -7
  745. package/dist/composition/probe/scoring.js.map +1 -1
  746. package/dist/composition/probe/search-budget.js.map +1 -1
  747. package/dist/composition/probe/serialize.js.map +1 -1
  748. package/dist/composition/probe/structure.d.ts +82 -17
  749. package/dist/composition/probe/structure.d.ts.map +1 -1
  750. package/dist/composition/probe/structure.js +129 -55
  751. package/dist/composition/probe/structure.js.map +1 -1
  752. package/dist/composition/probe/study.d.ts +35 -12
  753. package/dist/composition/probe/study.d.ts.map +1 -1
  754. package/dist/composition/probe/study.js +241 -184
  755. package/dist/composition/probe/study.js.map +1 -1
  756. package/dist/composition/probe/t-tail.d.ts +17 -0
  757. package/dist/composition/probe/t-tail.d.ts.map +1 -0
  758. package/dist/composition/probe/t-tail.js +32 -0
  759. package/dist/composition/probe/t-tail.js.map +1 -0
  760. package/dist/composition/probe/types.d.ts +6 -1
  761. package/dist/composition/probe/types.d.ts.map +1 -1
  762. package/dist/composition/probe/types.js +2 -0
  763. package/dist/composition/probe/types.js.map +1 -1
  764. package/dist/composition/proposed-bridges.d.ts +51 -13
  765. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  766. package/dist/composition/proposed-bridges.js +110 -58
  767. package/dist/composition/proposed-bridges.js.map +1 -1
  768. package/dist/composition/quantities.d.ts +0 -4
  769. package/dist/composition/quantities.d.ts.map +1 -1
  770. package/dist/composition/quantities.js +5 -5
  771. package/dist/composition/quantities.js.map +1 -1
  772. package/dist/composition/quantity-clusters.d.ts +48 -0
  773. package/dist/composition/quantity-clusters.d.ts.map +1 -0
  774. package/dist/composition/quantity-clusters.js +98 -0
  775. package/dist/composition/quantity-clusters.js.map +1 -0
  776. package/dist/composition/quantity.d.ts +18 -2
  777. package/dist/composition/quantity.d.ts.map +1 -1
  778. package/dist/composition/quantity.js +35 -6
  779. package/dist/composition/quantity.js.map +1 -1
  780. package/dist/composition/rational-exponent.d.ts +40 -0
  781. package/dist/composition/rational-exponent.d.ts.map +1 -0
  782. package/dist/composition/rational-exponent.js +65 -0
  783. package/dist/composition/rational-exponent.js.map +1 -0
  784. package/dist/composition/representative-values.d.ts +22 -0
  785. package/dist/composition/representative-values.d.ts.map +1 -1
  786. package/dist/composition/representative-values.js +23 -0
  787. package/dist/composition/representative-values.js.map +1 -1
  788. package/dist/composition/retrodiction.d.ts +16 -6
  789. package/dist/composition/retrodiction.d.ts.map +1 -1
  790. package/dist/composition/retrodiction.js +36 -10
  791. package/dist/composition/retrodiction.js.map +1 -1
  792. package/dist/composition/uncertainty.js.map +1 -1
  793. package/dist/composition/user-equation.d.ts.map +1 -1
  794. package/dist/composition/user-equation.js +2 -2
  795. package/dist/composition/user-equation.js.map +1 -1
  796. package/dist/core/assignment.d.ts +19 -0
  797. package/dist/core/assignment.d.ts.map +1 -0
  798. package/dist/core/assignment.js +19 -0
  799. package/dist/core/assignment.js.map +1 -0
  800. package/dist/core/axes-registry.d.ts +8 -5
  801. package/dist/core/axes-registry.d.ts.map +1 -1
  802. package/dist/core/axes-registry.js.map +1 -1
  803. package/dist/core/cell.js.map +1 -1
  804. package/dist/core/compare.d.ts +32 -0
  805. package/dist/core/compare.d.ts.map +1 -0
  806. package/dist/core/compare.js +46 -0
  807. package/dist/core/compare.js.map +1 -0
  808. package/dist/core/constants.d.ts +35 -35
  809. package/dist/core/constants.d.ts.map +1 -1
  810. package/dist/core/constants.js +52 -37
  811. package/dist/core/constants.js.map +1 -1
  812. package/dist/core/data-file.d.ts +7 -0
  813. package/dist/core/data-file.d.ts.map +1 -1
  814. package/dist/core/data-file.js +17 -0
  815. package/dist/core/data-file.js.map +1 -1
  816. package/dist/core/flux-rules.js +1 -1
  817. package/dist/core/flux-rules.js.map +1 -1
  818. package/dist/core/format.d.ts +36 -0
  819. package/dist/core/format.d.ts.map +1 -0
  820. package/dist/core/format.js +39 -0
  821. package/dist/core/format.js.map +1 -0
  822. package/dist/core/hash.d.ts +14 -0
  823. package/dist/core/hash.d.ts.map +1 -0
  824. package/dist/core/hash.js +17 -0
  825. package/dist/core/hash.js.map +1 -0
  826. package/dist/core/json-schema.d.ts +3 -1
  827. package/dist/core/json-schema.d.ts.map +1 -1
  828. package/dist/core/json-schema.js +41 -16
  829. package/dist/core/json-schema.js.map +1 -1
  830. package/dist/core/labeled-tensor.d.ts +6 -1
  831. package/dist/core/labeled-tensor.d.ts.map +1 -1
  832. package/dist/core/labeled-tensor.js +18 -16
  833. package/dist/core/labeled-tensor.js.map +1 -1
  834. package/dist/core/mathts-read.d.ts +25 -0
  835. package/dist/core/mathts-read.d.ts.map +1 -0
  836. package/dist/core/mathts-read.js +51 -0
  837. package/dist/core/mathts-read.js.map +1 -0
  838. package/dist/core/regime-registry.d.ts +6 -2
  839. package/dist/core/regime-registry.d.ts.map +1 -1
  840. package/dist/core/regime-registry.js.map +1 -1
  841. package/dist/core/regime-rule-install.js.map +1 -1
  842. package/dist/core/regimes-builtins.js.map +1 -1
  843. package/dist/core/tensor.d.ts +7 -4
  844. package/dist/core/tensor.d.ts.map +1 -1
  845. package/dist/core/tensor.js +64 -8
  846. package/dist/core/tensor.js.map +1 -1
  847. package/dist/core/types.d.ts +5 -5
  848. package/dist/core/types.js.map +1 -1
  849. package/dist/core/universal-index.js.map +1 -1
  850. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  851. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  852. package/dist/diff/bridge-ast-gradient.js +10 -6
  853. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  854. package/dist/diff/bridge-gradient.d.ts +43 -86
  855. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  856. package/dist/diff/bridge-gradient.js +40 -109
  857. package/dist/diff/bridge-gradient.js.map +1 -1
  858. package/dist/diff/bridge-specs.d.ts +16 -5
  859. package/dist/diff/bridge-specs.d.ts.map +1 -1
  860. package/dist/diff/bridge-specs.js +19 -4
  861. package/dist/diff/bridge-specs.js.map +1 -1
  862. package/dist/dimensional/algebra.d.ts +18 -0
  863. package/dist/dimensional/algebra.d.ts.map +1 -1
  864. package/dist/dimensional/algebra.js +41 -1
  865. package/dist/dimensional/algebra.js.map +1 -1
  866. package/dist/dimensional/ast-builders.d.ts +12 -4
  867. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  868. package/dist/dimensional/ast-builders.js +17 -5
  869. package/dist/dimensional/ast-builders.js.map +1 -1
  870. package/dist/dimensional/ast-leaves.d.ts +81 -0
  871. package/dist/dimensional/ast-leaves.d.ts.map +1 -0
  872. package/dist/dimensional/ast-leaves.js +146 -0
  873. package/dist/dimensional/ast-leaves.js.map +1 -0
  874. package/dist/dimensional/ast-types.js.map +1 -1
  875. package/dist/dimensional/bridge-check.js.map +1 -1
  876. package/dist/dimensional/buckingham.d.ts.map +1 -1
  877. package/dist/dimensional/buckingham.js +15 -27
  878. package/dist/dimensional/buckingham.js.map +1 -1
  879. package/dist/dimensional/connection-validators.d.ts +2 -1
  880. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  881. package/dist/dimensional/connection-validators.js.map +1 -1
  882. package/dist/dimensional/connection.js.map +1 -1
  883. package/dist/dimensional/constant-rows.d.ts.map +1 -1
  884. package/dist/dimensional/constant-rows.js +17 -13
  885. package/dist/dimensional/constant-rows.js.map +1 -1
  886. package/dist/dimensional/constants.d.ts +5 -6
  887. package/dist/dimensional/constants.d.ts.map +1 -1
  888. package/dist/dimensional/constants.js +5 -6
  889. package/dist/dimensional/constants.js.map +1 -1
  890. package/dist/dimensional/curvature-composite.js.map +1 -1
  891. package/dist/dimensional/curvature-invariants.js.map +1 -1
  892. package/dist/dimensional/curvature.js.map +1 -1
  893. package/dist/dimensional/dimension-inference.d.ts.map +1 -1
  894. package/dist/dimensional/dimension-inference.js +1 -2
  895. package/dist/dimensional/dimension-inference.js.map +1 -1
  896. package/dist/dimensional/dimension-spec.d.ts +13 -7
  897. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  898. package/dist/dimensional/dimension-spec.js +49 -23
  899. package/dist/dimensional/dimension-spec.js.map +1 -1
  900. package/dist/dimensional/einstein-equation.js.map +1 -1
  901. package/dist/dimensional/errors.d.ts +4 -2
  902. package/dist/dimensional/errors.d.ts.map +1 -1
  903. package/dist/dimensional/errors.js +3 -17
  904. package/dist/dimensional/errors.js.map +1 -1
  905. package/dist/dimensional/exact-scale.d.ts +0 -17
  906. package/dist/dimensional/exact-scale.d.ts.map +1 -1
  907. package/dist/dimensional/exact-scale.js +8 -8
  908. package/dist/dimensional/exact-scale.js.map +1 -1
  909. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  910. package/dist/dimensional/formula-names.js.map +1 -1
  911. package/dist/dimensional/fresh-label.js.map +1 -1
  912. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  913. package/dist/dimensional/friedmann-equation.js +3 -3
  914. package/dist/dimensional/friedmann-equation.js.map +1 -1
  915. package/dist/dimensional/gauge-field.d.ts +2 -3
  916. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  917. package/dist/dimensional/gauge-field.js +2 -3
  918. package/dist/dimensional/gauge-field.js.map +1 -1
  919. package/dist/dimensional/hyphen-names.d.ts +12 -2
  920. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  921. package/dist/dimensional/hyphen-names.js +45 -12
  922. package/dist/dimensional/hyphen-names.js.map +1 -1
  923. package/dist/dimensional/killing-validators.js.map +1 -1
  924. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  925. package/dist/dimensional/metric-validators.d.ts +2 -1
  926. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  927. package/dist/dimensional/metric-validators.js.map +1 -1
  928. package/dist/dimensional/metric.d.ts.map +1 -1
  929. package/dist/dimensional/metric.js +0 -1
  930. package/dist/dimensional/metric.js.map +1 -1
  931. package/dist/dimensional/natural-units.js.map +1 -1
  932. package/dist/dimensional/quantity-registry.d.ts +13 -0
  933. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  934. package/dist/dimensional/quantity-registry.js +14 -6
  935. package/dist/dimensional/quantity-registry.js.map +1 -1
  936. package/dist/dimensional/rg-flow.js.map +1 -1
  937. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  938. package/dist/dimensional/symbolic-constants.d.ts +9 -0
  939. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  940. package/dist/dimensional/symbolic-constants.js +20 -3
  941. package/dist/dimensional/symbolic-constants.js.map +1 -1
  942. package/dist/dimensional/tensor-trace.js.map +1 -1
  943. package/dist/dimensional/tensor.js.map +1 -1
  944. package/dist/dimensional/types.d.ts +36 -0
  945. package/dist/dimensional/types.d.ts.map +1 -1
  946. package/dist/dimensional/types.js +45 -7
  947. package/dist/dimensional/types.js.map +1 -1
  948. package/dist/dimensional/unit-convention.d.ts +0 -2
  949. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  950. package/dist/dimensional/unit-convention.js +2 -2
  951. package/dist/dimensional/unit-convention.js.map +1 -1
  952. package/dist/dimensional/unit-data.d.ts.map +1 -1
  953. package/dist/dimensional/unit-data.js +11 -7
  954. package/dist/dimensional/unit-data.js.map +1 -1
  955. package/dist/dimensional/units.d.ts.map +1 -1
  956. package/dist/dimensional/units.js +38 -20
  957. package/dist/dimensional/units.js.map +1 -1
  958. package/dist/dimensional/validator-registry.js.map +1 -1
  959. package/dist/dimensional/validator.d.ts +0 -16
  960. package/dist/dimensional/validator.d.ts.map +1 -1
  961. package/dist/dimensional/validator.js +65 -29
  962. package/dist/dimensional/validator.js.map +1 -1
  963. package/dist/dimensional/weyl-validators.js.map +1 -1
  964. package/dist/index.d.ts +59 -8
  965. package/dist/index.d.ts.map +1 -1
  966. package/dist/index.js +22 -24
  967. package/dist/index.js.map +1 -1
  968. package/dist/numerical/bianchi-residual.js.map +1 -1
  969. package/dist/numerical/binding-value.d.ts +11 -6
  970. package/dist/numerical/binding-value.d.ts.map +1 -1
  971. package/dist/numerical/binding-value.js +126 -122
  972. package/dist/numerical/binding-value.js.map +1 -1
  973. package/dist/numerical/christoffel-flat.d.ts.map +1 -1
  974. package/dist/numerical/christoffel-flat.js +3 -2
  975. package/dist/numerical/christoffel-flat.js.map +1 -1
  976. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  977. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  978. package/dist/numerical/covariant-eikonal.js +36 -13
  979. package/dist/numerical/covariant-eikonal.js.map +1 -1
  980. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  981. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  982. package/dist/numerical/curvature-lowering-helpers.js +9 -5
  983. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  984. package/dist/numerical/derivative-lowering.js.map +1 -1
  985. package/dist/numerical/einstein-equation.js.map +1 -1
  986. package/dist/numerical/engine-registry.js.map +1 -1
  987. package/dist/numerical/errors.d.ts +7 -3
  988. package/dist/numerical/errors.d.ts.map +1 -1
  989. package/dist/numerical/errors.js +5 -8
  990. package/dist/numerical/errors.js.map +1 -1
  991. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
  992. package/dist/numerical/evaluator-uncertainty.js +19 -2
  993. package/dist/numerical/evaluator-uncertainty.js.map +1 -1
  994. package/dist/numerical/finite-difference.d.ts +22 -0
  995. package/dist/numerical/finite-difference.d.ts.map +1 -0
  996. package/dist/numerical/finite-difference.js +27 -0
  997. package/dist/numerical/finite-difference.js.map +1 -0
  998. package/dist/numerical/formula-contract.d.ts +63 -7
  999. package/dist/numerical/formula-contract.d.ts.map +1 -1
  1000. package/dist/numerical/formula-contract.js +61 -42
  1001. package/dist/numerical/formula-contract.js.map +1 -1
  1002. package/dist/numerical/formula-dimension.d.ts +8 -7
  1003. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  1004. package/dist/numerical/formula-dimension.js +58 -36
  1005. package/dist/numerical/formula-dimension.js.map +1 -1
  1006. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  1007. package/dist/numerical/formula-mathts.js +5 -2
  1008. package/dist/numerical/formula-mathts.js.map +1 -1
  1009. package/dist/numerical/formula-registry.d.ts +13 -3
  1010. package/dist/numerical/formula-registry.d.ts.map +1 -1
  1011. package/dist/numerical/formula-registry.js +7 -2
  1012. package/dist/numerical/formula-registry.js.map +1 -1
  1013. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  1014. package/dist/numerical/geodesic-integrator.js +22 -14
  1015. package/dist/numerical/geodesic-integrator.js.map +1 -1
  1016. package/dist/numerical/geometrized.d.ts.map +1 -1
  1017. package/dist/numerical/geometrized.js +0 -1
  1018. package/dist/numerical/geometrized.js.map +1 -1
  1019. package/dist/numerical/gl4-integrator.d.ts +28 -27
  1020. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  1021. package/dist/numerical/gl4-integrator.js +41 -42
  1022. package/dist/numerical/gl4-integrator.js.map +1 -1
  1023. package/dist/numerical/grid-field.js.map +1 -1
  1024. package/dist/numerical/index.js.map +1 -1
  1025. package/dist/numerical/input-validation.d.ts +3 -6
  1026. package/dist/numerical/input-validation.d.ts.map +1 -1
  1027. package/dist/numerical/input-validation.js +4 -8
  1028. package/dist/numerical/input-validation.js.map +1 -1
  1029. package/dist/numerical/killing.d.ts +8 -5
  1030. package/dist/numerical/killing.d.ts.map +1 -1
  1031. package/dist/numerical/killing.js.map +1 -1
  1032. package/dist/numerical/klein-gordon.js.map +1 -1
  1033. package/dist/numerical/kretschmann.js.map +1 -1
  1034. package/dist/numerical/lowering-utils.js.map +1 -1
  1035. package/dist/numerical/lowering.d.ts.map +1 -1
  1036. package/dist/numerical/lowering.js +7 -17
  1037. package/dist/numerical/lowering.js.map +1 -1
  1038. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  1039. package/dist/numerical/mathts-engine.js +16 -25
  1040. package/dist/numerical/mathts-engine.js.map +1 -1
  1041. package/dist/numerical/metric-inverse.d.ts.map +1 -1
  1042. package/dist/numerical/metric-inverse.js +83 -46
  1043. package/dist/numerical/metric-inverse.js.map +1 -1
  1044. package/dist/numerical/null-ic.js.map +1 -1
  1045. package/dist/numerical/null-ray-integrator.d.ts +2 -1
  1046. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  1047. package/dist/numerical/null-ray-integrator.js +12 -12
  1048. package/dist/numerical/null-ray-integrator.js.map +1 -1
  1049. package/dist/numerical/painleve-gullstrand-metric.js +2 -2
  1050. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  1051. package/dist/numerical/pderiv.d.ts.map +1 -1
  1052. package/dist/numerical/pderiv.js +9 -2
  1053. package/dist/numerical/pderiv.js.map +1 -1
  1054. package/dist/numerical/perihelion-finder.d.ts +0 -36
  1055. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  1056. package/dist/numerical/perihelion-finder.js +41 -87
  1057. package/dist/numerical/perihelion-finder.js.map +1 -1
  1058. package/dist/numerical/quadrature.d.ts +5 -2
  1059. package/dist/numerical/quadrature.d.ts.map +1 -1
  1060. package/dist/numerical/quadrature.js +19 -4
  1061. package/dist/numerical/quadrature.js.map +1 -1
  1062. package/dist/numerical/rk4-trajectory.d.ts +10 -0
  1063. package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
  1064. package/dist/numerical/rk4-trajectory.js +37 -0
  1065. package/dist/numerical/rk4-trajectory.js.map +1 -0
  1066. package/dist/numerical/schwarzschild.d.ts +14 -0
  1067. package/dist/numerical/schwarzschild.d.ts.map +1 -0
  1068. package/dist/numerical/schwarzschild.js +17 -0
  1069. package/dist/numerical/schwarzschild.js.map +1 -0
  1070. package/dist/numerical/spacetime-metrics.d.ts +25 -19
  1071. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  1072. package/dist/numerical/spacetime-metrics.js +180 -286
  1073. package/dist/numerical/spacetime-metrics.js.map +1 -1
  1074. package/dist/numerical/statistics.d.ts +24 -0
  1075. package/dist/numerical/statistics.d.ts.map +1 -0
  1076. package/dist/numerical/statistics.js +52 -0
  1077. package/dist/numerical/statistics.js.map +1 -0
  1078. package/dist/numerical/strides.js.map +1 -1
  1079. package/dist/numerical/tensor-engine.d.ts +30 -5
  1080. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  1081. package/dist/numerical/tensor-engine.js +12 -0
  1082. package/dist/numerical/tensor-engine.js.map +1 -1
  1083. package/dist/numerical/types.js.map +1 -1
  1084. package/dist/numerical/weyl-lowering.js.map +1 -1
  1085. package/dist/relations/category.js.map +1 -1
  1086. package/dist/relations/composition-table.d.ts +4 -4
  1087. package/dist/relations/composition-table.js +4 -4
  1088. package/dist/relations/composition-table.js.map +1 -1
  1089. package/dist/relations/conventions.js.map +1 -1
  1090. package/dist/relations/domain-regimes.js.map +1 -1
  1091. package/dist/relations/regime-registration.js.map +1 -1
  1092. package/dist/relations/regime-vocabularies.js.map +1 -1
  1093. package/dist/relations/regime.d.ts +28 -8
  1094. package/dist/relations/regime.d.ts.map +1 -1
  1095. package/dist/relations/regime.js +44 -15
  1096. package/dist/relations/regime.js.map +1 -1
  1097. package/dist/relations/types.d.ts +18 -5
  1098. package/dist/relations/types.d.ts.map +1 -1
  1099. package/dist/relations/types.js +5 -3
  1100. package/dist/relations/types.js.map +1 -1
  1101. package/package.json +16 -20
  1102. package/dist/bridges/registry.d.ts +0 -60
  1103. package/dist/bridges/registry.d.ts.map +0 -1
  1104. package/dist/bridges/registry.js +0 -87
  1105. package/dist/bridges/registry.js.map +0 -1
  1106. package/dist/cli/poster-source.d.ts +0 -154
  1107. package/dist/cli/poster-source.d.ts.map +0 -1
  1108. package/dist/cli/poster-source.js +0 -184
  1109. package/dist/cli/poster-source.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"flux-rules.js","sourceRoot":"","sources":["../../src/core/flux-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA0CH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3B,QAAQ,CAAe;IACvB,MAAM,CAAS;IAE/B,YAAY,QAAsB,EAAE,MAAc,EAAE,OAAe;QACjE,KAAK,CAAC,aAAa,QAAQ,wBAAwB,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAmDD,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,WAAW,GAAiC;IAChD,SAAS;IACT,YAAY;IACZ,WAAW;IACX,cAAc;CACf,CAAC;AAEF,SAAS,UAAU,CAAC,CAAgB;IAClC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,GAAkB,EAClB,GAAkB;IAElB,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAE1D,8EAA8E;AAC9E,kDAAkD;AAClD,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAU;IAC3C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,WAAW;YACd,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACxC,SAAS,CAAC;YACR,MAAM,WAAW,GAAU,IAAI,CAAC;YAChC,KAAK,WAAW,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,YAAY,IAAI,CAAC,EAAE,4CAA4C;oBAC/D,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;oBAC1E,2DAA2D;aAC9D;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAgB;IAC7C,qEAAqE;IACrE,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,IAAI,GACR,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QACnB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QACnB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QACzB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;QAC3B,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO;YACL,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,eAAe,IAAI,CAAC,EAAE,oCAAoC;oBAC1D,8DAA8D;aACjE;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAmB;IACnD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,kBAAkB,IAAI,CAAC,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;oBAC7D,8DAA8D;oBAC9D,0CAA0C;aAC7C;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU,EAAE;gBACV,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EAAE,iDAAiD;aAC3D;SACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,gEAAgE;YAChE,8DAA8D;YAC9D,iEAAiE;YACjE,iDAAiD;YACjD,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,eAAe,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,oBAAoB;oBAC9D,sDAAsD;oBACtD,6DAA6D;oBAC7D,yCAAyC;aAC5C;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAU,EACV,KAA8B;IAE9B,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,+DAA+D;QAC/D,uDAAuD;QACvD,4DAA4D;QAC5D,+CAA+C;QAC/C,IAAI,MAAsB,CAAC;QAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,gBAAgB;gBACnB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,oBAAoB;gBACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,SAAS,CAAC;gBACR,MAAM,WAAW,GAAU,IAAI,CAAC,IAAI,CAAC;gBACrC,KAAK,WAAW,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,QAAQ,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACnC,KAAK,OAAO;oBAAE,UAAU,EAAE,CAAC;oBAAC,MAAM;gBAClC,KAAK,SAAS;oBAAE,YAAY,EAAE,CAAC;oBAAC,MAAM;gBACtC,KAAK,MAAM;oBAAE,SAAS,EAAE,CAAC;oBAAC,MAAM;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU;QACV,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,sBAAsB,EAAE;CAC9D,CAAC;AAcF,IAAI,oBAAoB,GAA0B,IAAI,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAoB;IAC/D,oBAAoB,GAAG,IAAI,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAU;IACxC,IAAI,oBAAoB;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"flux-rules.js","sourceRoot":"","sources":["../../src/core/flux-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA0CH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3B,QAAQ,CAAe;IACvB,MAAM,CAAS;IAE/B,YAAY,QAAsB,EAAE,MAAc,EAAE,OAAe;QACjE,KAAK,CAAC,aAAa,QAAQ,wBAAwB,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAmDD,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,WAAW,GAAiC;IAChD,SAAS;IACT,YAAY;IACZ,WAAW;IACX,cAAc;CACf,CAAC;AAEF,SAAS,UAAU,CAAC,CAAgB;IAClC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,GAAkB,EAClB,GAAkB;IAElB,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAE1D,8EAA8E;AAC9E,kDAAkD;AAClD,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAU;IAC3C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,WAAW;YACd,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACxC,SAAS,CAAC;YACR,MAAM,WAAW,GAAU,IAAI,CAAC;YAChC,KAAK,WAAW,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,YAAY,IAAI,CAAC,EAAE,4CAA4C;oBAC/D,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;oBAC1E,2DAA2D;aAC9D;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAgB;IAC7C,qEAAqE;IACrE,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,IAAI,GACR,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QACnB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QACnB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QACzB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;QAC3B,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO;YACL,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,eAAe,IAAI,CAAC,EAAE,oCAAoC;oBAC1D,8DAA8D;aACjE;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAmB;IACnD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,kBAAkB,IAAI,CAAC,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;oBAC7D,8DAA8D;oBAC9D,0CAA0C;aAC7C;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU,EAAE;gBACV,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EAAE,iDAAiD;aAC3D;SACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,gEAAgE;YAChE,8DAA8D;YAC9D,iEAAiE;YACjE,iDAAiD;YACjD,EAAE,EAAE,KAAK;YACT,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EACL,eAAe,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,oBAAoB;oBAC9D,sDAAsD;oBACtD,6DAA6D;oBAC7D,yCAAyC;aAC5C;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAU,EACV,KAA8B;IAE9B,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,+DAA+D;QAC/D,uDAAuD;QACvD,4DAA4D;QAC5D,+CAA+C;QAC/C,IAAI,MAAsB,CAAC;QAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,gBAAgB;gBACnB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,oBAAoB;gBACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,SAAS,CAAC;gBACR,MAAM,WAAW,GAAU,IAAI,CAAC,IAAI,CAAC;gBACrC,KAAK,WAAW,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,QAAQ,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACnC,KAAK,OAAO;oBAAE,UAAU,EAAE,CAAC;oBAAC,MAAM;gBAClC,KAAK,SAAS;oBAAE,YAAY,EAAE,CAAC;oBAAC,MAAM;gBACtC,KAAK,MAAM;oBAAE,SAAS,EAAE,CAAC;oBAAC,MAAM;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU;QACV,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,sBAAsB,EAAE;CAC9D,CAAC;AAcF,IAAI,oBAAoB,GAA0B,IAAI,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAoB;IAC/D,oBAAoB,GAAG,IAAI,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAU;IACxC,IAAI,oBAAoB;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC","sourcesContent":["/**\n * Flux-rule scaffolding for v0.7 Proposal 2 — Sparse Semantic Catalog.\n *\n * Defines:\n * - `FluxRuleKind` discriminated tag (@internal)\n * - `FluxRule`, `FluxRuleResult` registry shapes (@internal)\n * - `FluxDiagnostic`, `FluxReport` consumer shapes (@public)\n * - `FluxViolationError` (@public) thrown on ERROR-tier rule failures\n * - Rule 2 (L/B/E coordinate matching) and Rule 3 (Causality) — pure\n * functions over `Cell` / `BridgeCell`\n * - `runRules(cell, rules)` dispatcher with `_exhaustive: never`\n *\n * Rule 1 (Dimensional Consistency) ships in Phase 3 alongside the\n * catalog adapter — it operates on `BridgeEquationEntry`, not `Cell`,\n * per Decision #3 (resolves Adam-V3).\n *\n * Design: docs/planning/v0.7-Proposal-2-Design.md (redraft commit\n * 01632b5). Decisions #5, #6, #8 are load-bearing here.\n *\n * @module core/flux-rules\n */\n\nimport type {\n Cell,\n BridgeCell,\n LawCell,\n EmergenceCell,\n} from './cell.js';\nimport type { PhysicalScale } from './types.js';\n\n// ---------------------------------------------------------------------------\n// Public types (consumer-facing)\n// ---------------------------------------------------------------------------\n\n/**\n * A single rule-evaluation outcome surfaced to consumers via\n * `fluxDiagnostics()` or `FluxViolationError`. Severity follows the\n * info/warning/error tiering pinned in the design.\n *\n * @public\n */\nexport interface FluxDiagnostic {\n readonly severity: 'info' | 'warning' | 'error';\n readonly ruleName: FluxRuleKind;\n readonly cellId: string;\n readonly message: string;\n}\n\n/**\n * Aggregated report returned by `runRules()` / consumer-facing\n * `fluxDiagnostics()`. Per-tier counts are pre-computed for cheap\n * consumer-side branching.\n *\n * @public\n */\nexport interface FluxReport {\n readonly diagnostics: ReadonlyArray<FluxDiagnostic>;\n readonly errorCount: number;\n readonly warningCount: number;\n readonly infoCount: number;\n}\n\n/**\n * Thrown from `UniversalTensor.addCell` (Phase 2) when a Rule 2\n * (L/B/E coordinate-matching) violation fires. Rule 2 is ERROR-tier:\n * a `BridgeCell` with `source === target`, a `LawCell` with empty\n * `scales × forces`, or an `EmergenceCell` with `indices.length < 2`\n * fail-atomic.\n *\n * Rule 3 (Causality) is ERROR-tier as of v0.10.0 (user decision\n * 2026-06-11, promoted from the v0.7 WARNING tier after verifying the\n * live 23-cell submittable catalog has zero reverse arrows): a\n * `BridgeCell` whose source scale is COARSER than its target\n * (reverse of the canonical emergence direction) now fail-atomics.\n * Suppression for a deliberate reverse bridge goes through the\n * `causalityWhitelist` (entries earn their place via design review).\n *\n * @public\n */\nexport class FluxViolationError extends Error {\n public readonly ruleName: FluxRuleKind;\n public readonly cellId: string;\n\n constructor(ruleName: FluxRuleKind, cellId: string, message: string) {\n super(`FluxRule '${ruleName}' violated for cell '${cellId}': ${message}`);\n this.name = 'FluxViolationError';\n this.ruleName = ruleName;\n this.cellId = cellId;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Internal types (registry implementation detail)\n// ---------------------------------------------------------------------------\n\n/**\n * Discriminated tag for the in-tree flux rules. Adding a new rule\n * kind forces a compile-time update to every `switch` over this\n * union via the `_exhaustive: never` discipline.\n *\n * - v0.7 (P2): `'dimensional-consistency' | 'lbe-coordinate' | 'causality'`\n * - v0.8 (P5): adds `'regime-consistency'` — fires from `addCell`\n * when a cell's attached regimes contradict the cell's coordinate\n * axes (e.g., a `LawCell` with `scales: ['classical']` attached\n * to a `quantum` regime via `attachRegimesToCell`).\n *\n * @internal — coupled to the registry's dispatch shape; not part of\n * the v0.7 public-API contract.\n */\nexport type FluxRuleKind =\n | 'dimensional-consistency'\n | 'lbe-coordinate'\n | 'causality'\n | 'regime-consistency';\n\n/**\n * Result returned by a single rule's `check()` body. `ok: true` means\n * the rule passed; `ok: false` means the rule violated. A diagnostic\n * may be attached on either path (`'info'` diagnostics ride with\n * `ok: true`; `'warning'` and `'error'` diagnostics ride with\n * `ok: false`).\n *\n * @internal\n */\nexport interface FluxRuleResult {\n readonly ok: boolean;\n readonly diagnostic?: FluxDiagnostic;\n}\n\n/**\n * A registered rule. The `check()` body is a pure function over\n * `Cell` (or a sub-variant if the rule only fires on one `kind`).\n *\n * @internal\n */\nexport interface FluxRule {\n readonly kind: FluxRuleKind;\n readonly check: (cell: Cell) => FluxRuleResult;\n}\n\n// ---------------------------------------------------------------------------\n// SCALE_ARROW — the partial-order on `PhysicalScale` used by Rule 3\n// ---------------------------------------------------------------------------\n\n/**\n * Ordered list of scales from finest to coarsest. The index encodes\n * the partial-order: lower index = finer (quantum), higher index =\n * coarser (cosmological). Used by Rule 3 (Causality) to classify\n * bridge direction as forward / lateral / reverse.\n */\nconst SCALE_ORDER: ReadonlyArray<PhysicalScale> = [\n 'quantum',\n 'mesoscopic',\n 'classical',\n 'cosmological',\n];\n\nfunction scaleIndex(s: PhysicalScale): number {\n return SCALE_ORDER.indexOf(s);\n}\n\n/**\n * Classify a bridge direction by source/target scale. `'reverse'` =\n * coarser→finer (e.g., classical→quantum), `'forward'` =\n * finer→coarser (the canonical emergent direction), `'lateral'` =\n * same scale. Per Decision #5, `'reverse'` triggers a warning\n * diagnostic.\n */\nfunction classifyArrow(\n src: PhysicalScale,\n dst: PhysicalScale,\n): 'forward' | 'lateral' | 'reverse' {\n const i = scaleIndex(src);\n const j = scaleIndex(dst);\n if (i === j) return 'lateral';\n return i < j ? 'forward' : 'reverse';\n}\n\n/**\n * Private per-cell-ID suppression list for Rule 3 (Causality). Empty\n * in v0.7; entries earn their place via design review (Decision #5\n * — the original \"timeReversalAnnotation: true\" on BridgeCell was\n * rejected as public-type contamination per Eve-R12).\n */\nconst causalityWhitelist: ReadonlySet<string> = new Set();\n\n// ---------------------------------------------------------------------------\n// Rule 2 — L/B/E coordinate matching (ERROR tier)\n// ---------------------------------------------------------------------------\n\n/**\n * Pure dispatcher for Rule 2 over the `Cell` discriminated union.\n * The three arms enforce the cell-shape invariants:\n *\n * - `LawCell` is diagonal: `scales × forces` cross-product must be\n * non-empty.\n * - `BridgeCell` is off-diagonal: `source !== target` by at least\n * one axis (already enforced by the legacy `addBridge` —\n * Rule 2 piggybacks for registry exhaustiveness).\n * - `EmergenceCell` spans multi-coordinate: `indices.length >= 2`.\n *\n * @internal\n */\nexport function checkLBECoordinate(cell: Cell): FluxRuleResult {\n switch (cell.kind) {\n case 'law':\n return checkLawCoordinate(cell);\n case 'bridge':\n return checkBridgeCoordinate(cell);\n case 'emergence':\n return checkEmergenceCoordinate(cell);\n default: {\n const _exhaustive: never = cell;\n void _exhaustive;\n throw new Error(`checkLBECoordinate: unknown cell kind`);\n }\n }\n}\n\nfunction checkLawCoordinate(cell: LawCell): FluxRuleResult {\n if (cell.scales.length === 0 || cell.forces.length === 0) {\n return {\n ok: false,\n diagnostic: {\n severity: 'error',\n ruleName: 'lbe-coordinate',\n cellId: cell.id,\n message:\n `LawCell '${cell.id}' has empty scales × forces cross-product ` +\n `(scales=[${cell.scales.join(',')}], forces=[${cell.forces.join(',')}]). ` +\n `A law must occupy at least one (scale, force) coordinate.`,\n },\n };\n }\n return { ok: true };\n}\n\nfunction checkBridgeCoordinate(cell: BridgeCell): FluxRuleResult {\n // A BridgeCell must differ between source and target on at least one\n // populated axis. The legacy `addBridge` at tensor.ts:217-226 already\n // enforces this; we re-implement here for registry exhaustiveness.\n const s = cell.source;\n const t = cell.target;\n const same =\n s.scale === t.scale &&\n s.force === t.force &&\n s.symmetry === t.symmetry &&\n s.information === t.information &&\n s.dimension === t.dimension &&\n s.topology === t.topology;\n if (same) {\n return {\n ok: false,\n diagnostic: {\n severity: 'error',\n ruleName: 'lbe-coordinate',\n cellId: cell.id,\n message:\n `BridgeCell '${cell.id}' has identical source and target ` +\n `coordinates. A bridge must connect two distinct regime axes.`,\n },\n };\n }\n return { ok: true };\n}\n\nfunction checkEmergenceCoordinate(cell: EmergenceCell): FluxRuleResult {\n if (cell.indices.length < 2) {\n return {\n ok: false,\n diagnostic: {\n severity: 'error',\n ruleName: 'lbe-coordinate',\n cellId: cell.id,\n message:\n `EmergenceCell '${cell.id}' has only ${cell.indices.length} ` +\n `index group(s); emergence requires at least 2 (higher-order ` +\n `correlations span multiple coordinates).`,\n },\n };\n }\n return { ok: true };\n}\n\n// ---------------------------------------------------------------------------\n// Rule 3 — Causality (ERROR tier)\n// ---------------------------------------------------------------------------\n\n/**\n * Pure dispatcher for Rule 3 over the `Cell` discriminated union.\n * Rule 3 only fires on `'bridge'`; the other arms always pass.\n *\n * Body for the bridge arm per Decision #5:\n * 1. Read `src = cell.source.scale`, `dst = cell.target.scale`.\n * 2. If either is `undefined`, emit `'info'` (\"scale-unspecified\n * skip\"); the rule still passes (`ok: true`).\n * 3. If `arrow = classifyArrow(src, dst) === 'reverse'`, FAIL with\n * an `'error'` diagnostic (ERROR tier as of v0.10.0 — promoted\n * from the v0.7 WARNING tier, user decision 2026-06-11).\n * 4. Suppression via the private `causalityWhitelist` (empty in\n * v0.7).\n *\n * @internal\n */\nexport function checkCausality(cell: Cell): FluxRuleResult {\n if (cell.kind !== 'bridge') return { ok: true };\n if (causalityWhitelist.has(cell.id)) return { ok: true };\n\n const src = cell.source.scale;\n const dst = cell.target.scale;\n if (src === undefined || dst === undefined) {\n return {\n ok: true,\n diagnostic: {\n severity: 'info',\n ruleName: 'causality',\n cellId: cell.id,\n message: `scale axis unspecified; causality check skipped`,\n },\n };\n }\n\n const arrow = classifyArrow(src, dst);\n if (arrow === 'reverse') {\n return {\n // ERROR tier as of v0.10.0 (promoted from the v0.7 WARNING tier\n // per user decision 2026-06-11; live catalog verified clean —\n // 23/23 submittable cells pass, zero reverse arrows). Deliberate\n // reverse bridges go through causalityWhitelist.\n ok: false,\n diagnostic: {\n severity: 'error',\n ruleName: 'causality',\n cellId: cell.id,\n message:\n `BridgeCell '${cell.id}' goes ${src}→${dst} (coarser→finer); ` +\n `the canonical emergence direction is finer→coarser. ` +\n `Add the cell id to the causality whitelist (design review) ` +\n `if the reverse direction is deliberate.`,\n },\n };\n }\n return { ok: true };\n}\n\n// ---------------------------------------------------------------------------\n// Registry dispatcher\n// ---------------------------------------------------------------------------\n\n/**\n * Run a set of rules against a single `cell` and aggregate the\n * diagnostics into a `FluxReport`. Pure function — no I/O, no\n * shared-state mutation.\n *\n * The switch over `FluxRuleKind` is exhaustive via the\n * `_exhaustive: never` default arm (Decision #8). Adding a new rule\n * kind forces a compile-time update here AND at every consumer\n * site that branches on `FluxRuleKind`.\n *\n * @internal\n */\nexport function runRules(\n cell: Cell,\n rules: ReadonlyArray<FluxRule>,\n): FluxReport {\n const diagnostics: FluxDiagnostic[] = [];\n let errorCount = 0;\n let warningCount = 0;\n let infoCount = 0;\n\n for (const rule of rules) {\n // Exhaustive dispatch on rule.kind. Even though `check` is the\n // same shape across kinds, branching here gives us the\n // compile-time guarantee that every kind is handled — a new\n // FluxRuleKind variant forces a compile error.\n let result: FluxRuleResult;\n switch (rule.kind) {\n case 'dimensional-consistency':\n result = rule.check(cell);\n break;\n case 'lbe-coordinate':\n result = rule.check(cell);\n break;\n case 'causality':\n result = rule.check(cell);\n break;\n case 'regime-consistency':\n result = rule.check(cell);\n break;\n default: {\n const _exhaustive: never = rule.kind;\n void _exhaustive;\n throw new Error(`runRules: unknown rule kind`);\n }\n }\n\n if (result.diagnostic) {\n diagnostics.push(result.diagnostic);\n switch (result.diagnostic.severity) {\n case 'error': errorCount++; break;\n case 'warning': warningCount++; break;\n case 'info': infoCount++; break;\n }\n }\n }\n\n return {\n diagnostics,\n errorCount,\n warningCount,\n infoCount,\n };\n}\n\n/**\n * The two v0.7 in-tree rules registered for Phase 2 `addCell`\n * dispatch. Rule 1 (Dimensional Consistency) is NOT here — it\n * operates on `BridgeEquationEntry`, not `Cell`, and ships in\n * Phase 3 alongside the catalog adapter.\n *\n * @internal\n */\nexport const V07_CELL_RULES: ReadonlyArray<FluxRule> = [\n { kind: 'lbe-coordinate', check: checkLBECoordinate },\n { kind: 'causality', check: checkCausality },\n { kind: 'regime-consistency', check: checkRegimeConsistency },\n];\n\n// ---------------------------------------------------------------------------\n// Rule 4 — Regime Consistency (v0.8 P5 Phase 4, WARNING tier)\n// ---------------------------------------------------------------------------\n\n// Lazy import dance — regime-registry is in the same dir, so a static\n// import would force regime-registry to load any time flux-rules\n// loads. Phase 4 keeps that decoupled via a registered-callable\n// pattern: P5's regime module registers its rule via\n// `installRegimeConsistencyRule` below at module-load.\n\ntype RegimeRuleBody = (cell: Cell) => FluxRuleResult;\n\nlet registeredRegimeRule: RegimeRuleBody | null = null;\n\n/**\n * Install P5's regime-consistency rule body. Called by\n * `src/core/regime-rule-install.ts` at its module load. If P5's\n * module is never imported, the regime check stays a no-op\n * (returns `ok: true` silently).\n *\n * @internal\n */\nexport function installRegimeConsistencyRule(body: RegimeRuleBody): void {\n registeredRegimeRule = body;\n}\n\n/**\n * Pure dispatcher for Rule 4 over `Cell`. Delegates to the body\n * installed by P5 if present; otherwise a permissive no-op.\n *\n * @internal\n */\nfunction checkRegimeConsistency(cell: Cell): FluxRuleResult {\n if (registeredRegimeRule) return registeredRegimeRule(cell);\n return { ok: true };\n}\n"]}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The printed forms of a number.
3
+ *
4
+ * A recovered or compared quantity prints through {@link formatQuantity}: a
5
+ * fixed count of significant digits, an integer as an integer. A value a
6
+ * reader may need to reproduce bit for bit prints through
7
+ * {@link formatExact}. A fraction reported as a percentage prints through
8
+ * {@link formatPercent}. The number itself is never rounded by these; only
9
+ * its text is.
10
+ *
11
+ * @module core/format
12
+ */
13
+ /**
14
+ * `value` to `digits` significant digits (15 by default, the precision an
15
+ * evaluator input is already passed at; a statistic such as a residual in σ
16
+ * asks for 3), with trailing zeros dropped so an integer stays `1`, not
17
+ * `1.0000e+0`.
18
+ * @internal
19
+ */
20
+ export declare function formatQuantity(value: number, digits?: number): string;
21
+ /** The shortest decimal that round-trips to the same double (`upt evaluate`'s outputs). @internal */
22
+ export declare function formatExact(value: number): string;
23
+ /** How {@link formatPercent} prints a statistic: significant digits, and a `+` on a positive value when `signed`. @internal */
24
+ export interface PercentDigits {
25
+ readonly significant: number;
26
+ readonly signed?: boolean;
27
+ }
28
+ /**
29
+ * The fraction `x` as a percentage. A number of `digits` fixes the decimals
30
+ * (`0.1234` → `12.3%`); `{ significant }` prints that many significant digits
31
+ * through {@link formatQuantity} (`-0.437` → `-43.7%`, `1.5` → `150%`), and
32
+ * `signed` adds `+` to a positive value (`+25.7%`; zero stays `0%`).
33
+ * @internal
34
+ */
35
+ export declare function formatPercent(x: number, digits?: number | PercentDigits): string;
36
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/core/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,CAEjE;AAED,qGAAqG;AACrG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,+HAA+H;AAC/H,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,aAAiB,GAAG,MAAM,CAGnF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The printed forms of a number.
3
+ *
4
+ * A recovered or compared quantity prints through {@link formatQuantity}: a
5
+ * fixed count of significant digits, an integer as an integer. A value a
6
+ * reader may need to reproduce bit for bit prints through
7
+ * {@link formatExact}. A fraction reported as a percentage prints through
8
+ * {@link formatPercent}. The number itself is never rounded by these; only
9
+ * its text is.
10
+ *
11
+ * @module core/format
12
+ */
13
+ /**
14
+ * `value` to `digits` significant digits (15 by default, the precision an
15
+ * evaluator input is already passed at; a statistic such as a residual in σ
16
+ * asks for 3), with trailing zeros dropped so an integer stays `1`, not
17
+ * `1.0000e+0`.
18
+ * @internal
19
+ */
20
+ export function formatQuantity(value, digits = 15) {
21
+ return String(Number(value.toPrecision(digits)));
22
+ }
23
+ /** The shortest decimal that round-trips to the same double (`upt evaluate`'s outputs). @internal */
24
+ export function formatExact(value) {
25
+ return String(value);
26
+ }
27
+ /**
28
+ * The fraction `x` as a percentage. A number of `digits` fixes the decimals
29
+ * (`0.1234` → `12.3%`); `{ significant }` prints that many significant digits
30
+ * through {@link formatQuantity} (`-0.437` → `-43.7%`, `1.5` → `150%`), and
31
+ * `signed` adds `+` to a positive value (`+25.7%`; zero stays `0%`).
32
+ * @internal
33
+ */
34
+ export function formatPercent(x, digits = 1) {
35
+ if (typeof digits === 'number')
36
+ return `${(100 * x).toFixed(digits)}%`;
37
+ return `${digits.signed === true && x > 0 ? '+' : ''}${formatQuantity(x * 100, digits.significant)}%`;
38
+ }
39
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/core/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,MAAM,GAAG,EAAE;IACvD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,MAAM,GAA2B,CAAC;IACzE,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IACvE,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;AACxG,CAAC","sourcesContent":["/**\n * The printed forms of a number.\n *\n * A recovered or compared quantity prints through {@link formatQuantity}: a\n * fixed count of significant digits, an integer as an integer. A value a\n * reader may need to reproduce bit for bit prints through\n * {@link formatExact}. A fraction reported as a percentage prints through\n * {@link formatPercent}. The number itself is never rounded by these; only\n * its text is.\n *\n * @module core/format\n */\n\n/**\n * `value` to `digits` significant digits (15 by default, the precision an\n * evaluator input is already passed at; a statistic such as a residual in σ\n * asks for 3), with trailing zeros dropped so an integer stays `1`, not\n * `1.0000e+0`.\n * @internal\n */\nexport function formatQuantity(value: number, digits = 15): string {\n return String(Number(value.toPrecision(digits)));\n}\n\n/** The shortest decimal that round-trips to the same double (`upt evaluate`'s outputs). @internal */\nexport function formatExact(value: number): string {\n return String(value);\n}\n\n/** How {@link formatPercent} prints a statistic: significant digits, and a `+` on a positive value when `signed`. @internal */\nexport interface PercentDigits {\n readonly significant: number;\n readonly signed?: boolean;\n}\n\n/**\n * The fraction `x` as a percentage. A number of `digits` fixes the decimals\n * (`0.1234` → `12.3%`); `{ significant }` prints that many significant digits\n * through {@link formatQuantity} (`-0.437` → `-43.7%`, `1.5` → `150%`), and\n * `signed` adds `+` to a positive value (`+25.7%`; zero stays `0%`).\n * @internal\n */\nexport function formatPercent(x: number, digits: number | PercentDigits = 1): string {\n if (typeof digits === 'number') return `${(100 * x).toFixed(digits)}%`;\n return `${digits.signed === true && x > 0 ? '+' : ''}${formatQuantity(x * 100, digits.significant)}%`;\n}\n"]}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * One SHA-256 digest.
3
+ *
4
+ * The record fingerprints, the PhysJS reviewed-row hashes, the unit-table
5
+ * hash and the canonical-JSON hash all read the same digest; each site used
6
+ * to build its own `createHash('sha256')`. A string is hashed as UTF-8, a
7
+ * `Buffer` as its bytes. Nothing is normalised here: a caller that folds line
8
+ * endings does so before hashing, and says so.
9
+ *
10
+ * @module core/hash
11
+ */
12
+ /** The SHA-256 of `text` (UTF-8 for a string, raw bytes for a Buffer) as lowercase hex. @internal */
13
+ export declare function sha256Hex(text: string | Buffer): string;
14
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/core/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * One SHA-256 digest.
3
+ *
4
+ * The record fingerprints, the PhysJS reviewed-row hashes, the unit-table
5
+ * hash and the canonical-JSON hash all read the same digest; each site used
6
+ * to build its own `createHash('sha256')`. A string is hashed as UTF-8, a
7
+ * `Buffer` as its bytes. Nothing is normalised here: a caller that folds line
8
+ * endings does so before hashing, and says so.
9
+ *
10
+ * @module core/hash
11
+ */
12
+ import { createHash } from 'node:crypto';
13
+ /** The SHA-256 of `text` (UTF-8 for a string, raw bytes for a Buffer) as lowercase hex. @internal */
14
+ export function sha256Hex(text) {
15
+ return createHash('sha256').update(text).digest('hex');
16
+ }
17
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/core/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qGAAqG;AACrG,MAAM,UAAU,SAAS,CAAC,IAAqB;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC","sourcesContent":["/**\n * One SHA-256 digest.\n *\n * The record fingerprints, the PhysJS reviewed-row hashes, the unit-table\n * hash and the canonical-JSON hash all read the same digest; each site used\n * to build its own `createHash('sha256')`. A string is hashed as UTF-8, a\n * `Buffer` as its bytes. Nothing is normalised here: a caller that folds line\n * endings does so before hashing, and says so.\n *\n * @module core/hash\n */\n\nimport { createHash } from 'node:crypto';\n\n/** The SHA-256 of `text` (UTF-8 for a string, raw bytes for a Buffer) as lowercase hex. @internal */\nexport function sha256Hex(text: string | Buffer): string {\n return createHash('sha256').update(text).digest('hex');\n}\n"]}
@@ -9,7 +9,7 @@
9
9
  * Subset: `type` (a name or an array of names), `required`, `properties`,
10
10
  * `additionalProperties` (boolean or schema), `propertyNames`, `items`,
11
11
  * `minItems`, `maxItems`, `uniqueItems`, `minLength`, `pattern`, `minimum`,
12
- * `enum`, `const`, and `$ref` to `#/$defs/<name>`. `$schema`, `$id`, `$defs`,
12
+ * `enum`, `const`, `if`/`then`/`else`, and `$ref` to `#/$defs/<name>` or `#/definitions/<name>`. `$schema`, `$id`, `$defs`,
13
13
  * `title` and `description` are annotations.
14
14
  *
15
15
  * @module core/json-schema
@@ -18,6 +18,8 @@
18
18
  export type JsonSchema = {
19
19
  readonly [keyword: string]: unknown;
20
20
  };
21
+ /** A JSON object: not an array, not null. The one object guard of the data readers. @internal */
22
+ export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
21
23
  /**
22
24
  * Every place `value` breaks `schema`, as `$.path: reason` lines. Empty when it conforms.
23
25
  * Throws when the schema uses a keyword outside the subset.
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../src/core/json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AA8HjE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI3E"}
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../src/core/json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAwBjE,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9E;AAwHD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI3E"}
@@ -9,12 +9,12 @@
9
9
  * Subset: `type` (a name or an array of names), `required`, `properties`,
10
10
  * `additionalProperties` (boolean or schema), `propertyNames`, `items`,
11
11
  * `minItems`, `maxItems`, `uniqueItems`, `minLength`, `pattern`, `minimum`,
12
- * `enum`, `const`, and `$ref` to `#/$defs/<name>`. `$schema`, `$id`, `$defs`,
12
+ * `enum`, `const`, `if`/`then`/`else`, and `$ref` to `#/$defs/<name>` or `#/definitions/<name>`. `$schema`, `$id`, `$defs`,
13
13
  * `title` and `description` are annotations.
14
14
  *
15
15
  * @module core/json-schema
16
16
  */
17
- const ANNOTATIONS = new Set(['$schema', '$id', '$defs', 'title', 'description']);
17
+ const ANNOTATIONS = new Set(['$schema', '$id', '$defs', 'definitions', 'title', 'description']);
18
18
  const KEYWORDS = new Set([
19
19
  'type',
20
20
  'required',
@@ -31,14 +31,18 @@ const KEYWORDS = new Set([
31
31
  'enum',
32
32
  'const',
33
33
  '$ref',
34
+ 'if',
35
+ 'then',
36
+ 'else',
34
37
  ]);
35
- function isObject(value) {
38
+ /** A JSON object: not an array, not null. The one object guard of the data readers. @internal */
39
+ export function isPlainObject(value) {
36
40
  return typeof value === 'object' && value !== null && !Array.isArray(value);
37
41
  }
38
42
  function typeMatches(type, value) {
39
43
  switch (type) {
40
44
  case 'object':
41
- return isObject(value);
45
+ return isPlainObject(value);
42
46
  case 'array':
43
47
  return Array.isArray(value);
44
48
  case 'string':
@@ -56,10 +60,12 @@ function typeMatches(type, value) {
56
60
  }
57
61
  }
58
62
  function resolveRef(root, ref) {
59
- const m = /^#\/\$defs\/([^/]+)$/.exec(ref);
60
- const defs = root['$defs'];
61
- const target = m === null || !isObject(defs) ? undefined : defs[m[1]];
62
- if (!isObject(target))
63
+ // `#/$defs/<name>` (2019-09 and later) or `#/definitions/<name>` (draft-07): both are a
64
+ // local definition table and nothing else is resolved.
65
+ const m = /^#\/(\$defs|definitions)\/([^/]+)$/.exec(ref);
66
+ const defs = m === null ? undefined : root[m[1]];
67
+ const target = m === null || !isPlainObject(defs) ? undefined : defs[m[2]];
68
+ if (!isPlainObject(target))
63
69
  throw new Error(`json-schema: unresolved $ref '${ref}'`);
64
70
  return target;
65
71
  }
@@ -71,6 +77,15 @@ function check(root, schema, value, path, problems) {
71
77
  }
72
78
  if (typeof schema['$ref'] === 'string')
73
79
  check(root, resolveRef(root, schema['$ref']), value, path, problems);
80
+ // `if`/`then`/`else`: the branch whose condition the value meets is checked; the condition's
81
+ // own problems are not reported.
82
+ if (isPlainObject(schema['if'])) {
83
+ const condition = [];
84
+ check(root, schema['if'], value, path, condition);
85
+ const branch = condition.length === 0 ? schema['then'] : schema['else'];
86
+ if (isPlainObject(branch))
87
+ check(root, branch, value, path, problems);
88
+ }
74
89
  if (schema['type'] !== undefined) {
75
90
  const types = Array.isArray(schema['type']) ? schema['type'] : [schema['type']];
76
91
  if (types.length === 0 || types.some((type) => typeof type !== 'string')) {
@@ -110,31 +125,41 @@ function check(root, schema, value, path, problems) {
110
125
  if (seen.size !== value.length)
111
126
  problems.push(`${path}: items are not unique`);
112
127
  }
113
- if (isObject(schema['items'])) {
128
+ if (isPlainObject(schema['items'])) {
114
129
  const items = schema['items'];
115
130
  value.forEach((item, i) => check(root, items, item, `${path}[${i}]`, problems));
116
131
  }
132
+ else if (Array.isArray(schema['items'])) {
133
+ // A tuple: each position has its own schema; a position past the tuple is unchecked.
134
+ schema['items'].forEach((itemSchema, i) => {
135
+ if (!isPlainObject(itemSchema))
136
+ throw new Error(`json-schema: items[${i}] at ${path} is not a schema`);
137
+ if (i < value.length)
138
+ check(root, itemSchema, value[i], `${path}[${i}]`, problems);
139
+ });
140
+ }
117
141
  }
118
- if (isObject(value)) {
119
- const properties = isObject(schema['properties']) ? schema['properties'] : {};
142
+ if (isPlainObject(value)) {
143
+ const properties = isPlainObject(schema['properties']) ? schema['properties'] : {};
120
144
  if (Array.isArray(schema['required'])) {
121
145
  for (const key of schema['required']) {
122
- if (!(key in value))
146
+ if (!Object.hasOwn(value, key))
123
147
  problems.push(`${path}: missing '${key}'`);
124
148
  }
125
149
  }
126
150
  for (const [key, child] of Object.entries(value)) {
127
151
  const where = `${path}.${key}`;
128
- if (isObject(schema['propertyNames']))
152
+ if (isPlainObject(schema['propertyNames']))
129
153
  check(root, schema['propertyNames'], key, `${where} (name)`, problems);
130
- const declared = properties[key];
131
- if (isObject(declared)) {
154
+ // Own properties only: a `__proto__` key must not resolve to Object.prototype.
155
+ const declared = Object.hasOwn(properties, key) ? properties[key] : undefined;
156
+ if (isPlainObject(declared)) {
132
157
  check(root, declared, child, where, problems);
133
158
  }
134
159
  else if (schema['additionalProperties'] === false) {
135
160
  problems.push(`${where}: unexpected property`);
136
161
  }
137
- else if (isObject(schema['additionalProperties'])) {
162
+ else if (isPlainObject(schema['additionalProperties'])) {
138
163
  check(root, schema['additionalProperties'], child, where, problems);
139
164
  }
140
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../../src/core/json-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../../src/core/json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAChG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,MAAM;IACN,UAAU;IACV,YAAY;IACZ,sBAAsB;IACtB,eAAe;IACf,OAAO;IACP,UAAU;IACV,UAAU;IACV,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAEH,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAc;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;QACnC,KAAK,SAAS;YACZ,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7D,KAAK,SAAS;YACZ,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9D,KAAK,MAAM;YACT,OAAO,KAAK,KAAK,IAAI,CAAC;QACxB;YACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,GAAG,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,GAAW;IAC/C,wFAAwF;IACxF,uDAAuD;IACvD,MAAM,CAAC,GAAG,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAC5E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,GAAG,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,IAAgB,EAAE,MAAkB,EAAE,KAAc,EAAE,IAAY,EAAE,QAAkB;IACnG,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,QAAQ,IAAI,kCAAkC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7G,6FAA6F;IAC7F,iCAAiC;IACjC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAChC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,aAAa,CAAC,MAAM,CAAC;YAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,MAAM,CAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,+CAA+C,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAc,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,cAAc,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACpG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,iBAAiB,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACvF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,kBAAkB,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7F,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,KAAK,oBAAoB,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,eAAe,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC1C,qFAAqF;YACpF,MAAM,CAAC,OAAO,CAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;gBACvD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;gBACvG,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;oBAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,CAAsB,EAAE,CAAC;gBAC1D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,cAAc,GAAG,GAAG,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;YAC/B,IAAI,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnH,+EAA+E;YAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,MAAM,CAAC,sBAAsB,CAAC,KAAK,KAAK,EAAE,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,aAAa,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;gBACzD,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,KAAc;IAC/D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["/**\n * A JSON Schema reader for the keyword subset the repository's data schemas use.\n *\n * The library adds no runtime dependency for this, so the schema a data file\n * names is checked here, at load, and not only by a test. A keyword outside\n * the subset is an error in the schema, not a keyword silently ignored, so a\n * schema cannot state a rule this reader does not enforce.\n *\n * Subset: `type` (a name or an array of names), `required`, `properties`,\n * `additionalProperties` (boolean or schema), `propertyNames`, `items`,\n * `minItems`, `maxItems`, `uniqueItems`, `minLength`, `pattern`, `minimum`,\n * `enum`, `const`, `if`/`then`/`else`, and `$ref` to `#/$defs/<name>` or `#/definitions/<name>`. `$schema`, `$id`, `$defs`,\n * `title` and `description` are annotations.\n *\n * @module core/json-schema\n */\n\n/** A JSON Schema document or subschema, as parsed from JSON. @internal */\nexport type JsonSchema = { readonly [keyword: string]: unknown };\n\nconst ANNOTATIONS = new Set(['$schema', '$id', '$defs', 'definitions', 'title', 'description']);\nconst KEYWORDS = new Set([\n 'type',\n 'required',\n 'properties',\n 'additionalProperties',\n 'propertyNames',\n 'items',\n 'minItems',\n 'maxItems',\n 'uniqueItems',\n 'minLength',\n 'pattern',\n 'minimum',\n 'enum',\n 'const',\n '$ref',\n 'if',\n 'then',\n 'else',\n]);\n\n/** A JSON object: not an array, not null. The one object guard of the data readers. @internal */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction typeMatches(type: string, value: unknown): boolean {\n switch (type) {\n case 'object':\n return isPlainObject(value);\n case 'array':\n return Array.isArray(value);\n case 'string':\n return typeof value === 'string';\n case 'boolean':\n return typeof value === 'boolean';\n case 'number':\n return typeof value === 'number' && Number.isFinite(value);\n case 'integer':\n return typeof value === 'number' && Number.isInteger(value);\n case 'null':\n return value === null;\n default:\n throw new Error(`json-schema: unsupported type '${type}'`);\n }\n}\n\nfunction resolveRef(root: JsonSchema, ref: string): JsonSchema {\n // `#/$defs/<name>` (2019-09 and later) or `#/definitions/<name>` (draft-07): both are a\n // local definition table and nothing else is resolved.\n const m = /^#\\/(\\$defs|definitions)\\/([^/]+)$/.exec(ref);\n const defs = m === null ? undefined : root[m[1]!];\n const target = m === null || !isPlainObject(defs) ? undefined : defs[m[2]!];\n if (!isPlainObject(target)) throw new Error(`json-schema: unresolved $ref '${ref}'`);\n return target;\n}\n\nfunction check(root: JsonSchema, schema: JsonSchema, value: unknown, path: string, problems: string[]): void {\n for (const keyword of Object.keys(schema)) {\n if (!KEYWORDS.has(keyword) && !ANNOTATIONS.has(keyword)) {\n throw new Error(`json-schema: keyword '${keyword}' at ${path} is outside the supported subset`);\n }\n }\n if (typeof schema['$ref'] === 'string') check(root, resolveRef(root, schema['$ref']), value, path, problems);\n // `if`/`then`/`else`: the branch whose condition the value meets is checked; the condition's\n // own problems are not reported.\n if (isPlainObject(schema['if'])) {\n const condition: string[] = [];\n check(root, schema['if'], value, path, condition);\n const branch = condition.length === 0 ? schema['then'] : schema['else'];\n if (isPlainObject(branch)) check(root, branch, value, path, problems);\n }\n if (schema['type'] !== undefined) {\n const types = Array.isArray(schema['type']) ? (schema['type'] as unknown[]) : [schema['type']];\n if (types.length === 0 || types.some((type) => typeof type !== 'string')) {\n throw new Error(`json-schema: 'type' at ${path} is not a type name or an array of type names`);\n }\n if (!types.some((type) => typeMatches(type as string, value))) {\n problems.push(`${path}: expected ${types.join(' or ')}`);\n return;\n }\n }\n if ('const' in schema && JSON.stringify(schema['const']) !== JSON.stringify(value)) {\n problems.push(`${path}: expected ${JSON.stringify(schema['const'])}`);\n }\n if (Array.isArray(schema['enum']) && !schema['enum'].some((option) => JSON.stringify(option) === JSON.stringify(value))) {\n problems.push(`${path}: ${JSON.stringify(value)} is not one of ${JSON.stringify(schema['enum'])}`);\n }\n if (typeof value === 'number' && typeof schema['minimum'] === 'number' && value < schema['minimum']) {\n problems.push(`${path}: ${value} is less than ${schema['minimum']}`);\n }\n if (typeof value === 'string') {\n if (typeof schema['minLength'] === 'number' && [...value].length < schema['minLength']) {\n problems.push(`${path}: shorter than ${schema['minLength']}`);\n }\n if (typeof schema['pattern'] === 'string' && !new RegExp(schema['pattern'], 'u').test(value)) {\n problems.push(`${path}: '${value}' does not match ${schema['pattern']}`);\n }\n }\n if (Array.isArray(value)) {\n if (typeof schema['minItems'] === 'number' && value.length < schema['minItems']) {\n problems.push(`${path}: fewer than ${schema['minItems']} items`);\n }\n if (typeof schema['maxItems'] === 'number' && value.length > schema['maxItems']) {\n problems.push(`${path}: more than ${schema['maxItems']} items`);\n }\n if (schema['uniqueItems'] === true) {\n const seen = new Set(value.map((item) => JSON.stringify(item)));\n if (seen.size !== value.length) problems.push(`${path}: items are not unique`);\n }\n if (isPlainObject(schema['items'])) {\n const items = schema['items'];\n value.forEach((item, i) => check(root, items, item, `${path}[${i}]`, problems));\n } else if (Array.isArray(schema['items'])) {\n // A tuple: each position has its own schema; a position past the tuple is unchecked.\n (schema['items'] as unknown[]).forEach((itemSchema, i) => {\n if (!isPlainObject(itemSchema)) throw new Error(`json-schema: items[${i}] at ${path} is not a schema`);\n if (i < value.length) check(root, itemSchema, value[i], `${path}[${i}]`, problems);\n });\n }\n }\n if (isPlainObject(value)) {\n const properties = isPlainObject(schema['properties']) ? schema['properties'] : {};\n if (Array.isArray(schema['required'])) {\n for (const key of schema['required'] as readonly string[]) {\n if (!Object.hasOwn(value, key)) problems.push(`${path}: missing '${key}'`);\n }\n }\n for (const [key, child] of Object.entries(value)) {\n const where = `${path}.${key}`;\n if (isPlainObject(schema['propertyNames'])) check(root, schema['propertyNames'], key, `${where} (name)`, problems);\n // Own properties only: a `__proto__` key must not resolve to Object.prototype.\n const declared = Object.hasOwn(properties, key) ? properties[key] : undefined;\n if (isPlainObject(declared)) {\n check(root, declared, child, where, problems);\n } else if (schema['additionalProperties'] === false) {\n problems.push(`${where}: unexpected property`);\n } else if (isPlainObject(schema['additionalProperties'])) {\n check(root, schema['additionalProperties'], child, where, problems);\n }\n }\n }\n}\n\n/**\n * Every place `value` breaks `schema`, as `$.path: reason` lines. Empty when it conforms.\n * Throws when the schema uses a keyword outside the subset.\n * @internal\n */\nexport function schemaProblems(schema: JsonSchema, value: unknown): string[] {\n const problems: string[] = [];\n check(schema, schema, value, '$', problems);\n return problems;\n}\n"]}
@@ -68,7 +68,12 @@ export declare class AxisMismatchError extends UPTError {
68
68
  */
69
69
  export declare class IdentityConflictError extends UPTError {
70
70
  readonly indexId: UniversalIndexId;
71
- constructor(indexId: UniversalIndexId);
71
+ /**
72
+ * `where` says which shape was met: the id twice on ONE operand (a
73
+ * self-contraction, which `contract` does not perform), or the id as a
74
+ * free axis on BOTH operands beside a contraction (three occurrences).
75
+ */
76
+ constructor(indexId: UniversalIndexId, where?: 'one-operand' | 'both-operands');
72
77
  }
73
78
  /**
74
79
  * Thrown by `contract` when both operands carry the same index `name`
@@ -1 +1 @@
1
- {"version":3,"file":"labeled-tensor.d.ts","sourceRoot":"","sources":["../../src/core/labeled-tensor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labeled-tensor.d.ts","sourceRoot":"","sources":["../../src/core/labeled-tensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAc,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOvF;;;;;;GAMG;AACH,qBAAa,8BAA+B,SAAQ,QAAQ;IAC1D,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,YAAY,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EASjD;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,YACE,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,QAAQ,EAWpB;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C;;;;OAIG;IACH,YAAY,OAAO,EAAE,gBAAgB,EAAE,KAAK,GAAE,aAAa,GAAG,eAAiC,EAW9F;CACF;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,GAAG,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD,YACE,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,SAAS;QAAE,EAAE,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAAE,EAgBjE;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,YAAY,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAS3C;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,SAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,SAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,YAAY,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EASrE;CACF;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,EACpF,MAAM,EAAE,CAAC,GACR,MAAM,EAAE,CAEV;AAuBD;;;;;;;;;GASG;AACH,qBAAa,aAAa,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7F,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,MAAM,EAAE,CAAC,CAAC;IAC1B;;;;;;OAMG;IACH,SAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAE7C,YACE,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,CAAC,EACT,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,EAgB9B;IAED;;;;;OAKG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMjC;IAED;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,EAChE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GACtB,aAAa,CA4Gf;IAED;;;;;;OAMG;IACI,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAyB/E;IAED;;;;;;;;;OASG;IACI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAO7D;IAED;;;;;;;;;;;;OAYG;IACI,SAAS,CACd,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;KAAE,GACvD,aAAa,CAuDf;IAED;;;;;;;OAOG;IACI,SAAS,CACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAC/E,aAAa,CA4Df;CACF"}
@@ -49,7 +49,6 @@ export class LabeledTensorConstructionError extends UPTError {
49
49
  this.name = 'LabeledTensorConstructionError';
50
50
  this.labelCount = labelCount;
51
51
  this.tensorRank = tensorRank;
52
- Object.setPrototypeOf(this, LabeledTensorConstructionError.prototype);
53
52
  }
54
53
  }
55
54
  /**
@@ -73,7 +72,6 @@ export class AxisMismatchError extends UPTError {
73
72
  this.indexId = indexId;
74
73
  this.leftAxis = leftAxis;
75
74
  this.rightAxis = rightAxis;
76
- Object.setPrototypeOf(this, AxisMismatchError.prototype);
77
75
  }
78
76
  }
79
77
  /**
@@ -87,13 +85,20 @@ export class AxisMismatchError extends UPTError {
87
85
  */
88
86
  export class IdentityConflictError extends UPTError {
89
87
  indexId;
90
- constructor(indexId) {
91
- super(`LabeledTensor.contract: UniversalIndexId '${indexId}' appears as a ` +
92
- `free axis on both operands. Same physical axis on both sides is ` +
93
- `ambiguous — rename or contract one side first.`);
88
+ /**
89
+ * `where` says which shape was met: the id twice on ONE operand (a
90
+ * self-contraction, which `contract` does not perform), or the id as a
91
+ * free axis on BOTH operands beside a contraction (three occurrences).
92
+ */
93
+ constructor(indexId, where = 'both-operands') {
94
+ super(where === 'one-operand'
95
+ ? `LabeledTensor.contract: UniversalIndexId '${indexId}' appears twice on one operand. ` +
96
+ `A self-contraction is not a contract(); rename one axis or trace it first.`
97
+ : `LabeledTensor.contract: UniversalIndexId '${indexId}' appears as a ` +
98
+ `free axis on both operands. Same physical axis on both sides is ` +
99
+ `ambiguous — rename or contract one side first.`);
94
100
  this.name = 'IdentityConflictError';
95
101
  this.indexId = indexId;
96
- Object.setPrototypeOf(this, IdentityConflictError.prototype);
97
102
  }
98
103
  }
99
104
  /**
@@ -123,7 +128,6 @@ export class IndexNameMismatchError extends UPTError {
123
128
  this.name = 'IndexNameMismatchError';
124
129
  this.indexName = indexName;
125
130
  this.ids = ids;
126
- Object.setPrototypeOf(this, IndexNameMismatchError.prototype);
127
131
  }
128
132
  }
129
133
  /**
@@ -144,7 +148,6 @@ export class RankPreservationError extends UPTError {
144
148
  this.name = 'RankPreservationError';
145
149
  this.fromRank = fromRank;
146
150
  this.toRank = toRank;
147
- Object.setPrototypeOf(this, RankPreservationError.prototype);
148
151
  }
149
152
  }
150
153
  /**
@@ -166,7 +169,6 @@ export class AxisOrderError extends UPTError {
166
169
  this.name = 'AxisOrderError';
167
170
  this.axisOrder = axisOrder;
168
171
  this.labelKeys = labelKeys;
169
- Object.setPrototypeOf(this, AxisOrderError.prototype);
170
172
  }
171
173
  }
172
174
  /**
@@ -180,7 +182,6 @@ export class AxisMergeError extends UPTError {
180
182
  constructor(message) {
181
183
  super(`LabeledTensor.mergeAxes: ${message}`);
182
184
  this.name = 'AxisMergeError';
183
- Object.setPrototypeOf(this, AxisMergeError.prototype);
184
185
  }
185
186
  }
186
187
  /**
@@ -194,7 +195,6 @@ export class AxisSplitError extends UPTError {
194
195
  constructor(message) {
195
196
  super(`LabeledTensor.splitAxis: ${message}`);
196
197
  this.name = 'AxisSplitError';
197
- Object.setPrototypeOf(this, AxisSplitError.prototype);
198
198
  }
199
199
  }
200
200
  // ---------------------------------------------------------------------------
@@ -382,9 +382,9 @@ export class LabeledTensor {
382
382
  else if (occurrences.length === 2) {
383
383
  const [a, b] = occurrences;
384
384
  if (a.operand === b.operand) {
385
- // Same id appears twice in one operand: that's a tensor-self-
386
- // contraction situation; flag as free conflict.
387
- throw new IdentityConflictError(id);
385
+ // The same id twice in one operand is a self-contraction, which
386
+ // contract() does not perform.
387
+ throw new IdentityConflictError(id, 'one-operand');
388
388
  }
389
389
  if (a.axisName !== b.axisName) {
390
390
  throw new AxisMismatchError(id, a.axisName, b.axisName);
@@ -475,10 +475,12 @@ export class LabeledTensor {
475
475
  throw new AxisMergeError(`'${k}' is not a label key.`);
476
476
  positions.push(p);
477
477
  }
478
+ // Distinct keys have distinct positions (the duplicate check above), so a
479
+ // contiguous run is exactly `hi − lo === n − 1`.
478
480
  const sorted = [...positions].sort((a, b) => a - b);
479
481
  const lo = sorted[0];
480
482
  const hi = sorted[sorted.length - 1];
481
- if (new Set(sorted).size !== sorted.length || hi - lo !== sorted.length - 1) {
483
+ if (hi - lo !== sorted.length - 1) {
482
484
  throw new AxisMergeError(`keys ${JSON.stringify(keys)} are not a contiguous run of engine axes ` +
483
485
  `(positions ${JSON.stringify(positions)}); transpose them adjacent first.`);
484
486
  }