universal-physics-tensor 0.22.0 → 0.24.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 (81) hide show
  1. package/README.md +30 -15
  2. package/bin/upt.mjs +127 -21
  3. package/dist/bridges/equations/_be-helpers.d.ts +1 -66
  4. package/dist/bridges/equations/_be-helpers.d.ts.map +1 -1
  5. package/dist/bridges/equations/_be-helpers.js +7 -83
  6. package/dist/bridges/equations/_be-helpers.js.map +1 -1
  7. package/dist/canonical/entries/l1-gravity-thermo.d.ts.map +1 -1
  8. package/dist/canonical/entries/l1-gravity-thermo.js +42 -5
  9. package/dist/canonical/entries/l1-gravity-thermo.js.map +1 -1
  10. package/dist/canonical/entries/l1-quantum-em.js +1 -1
  11. package/dist/canonical/entries/l1-quantum-em.js.map +1 -1
  12. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  13. package/dist/canonical/entries/relativity.js +76 -2
  14. package/dist/canonical/entries/relativity.js.map +1 -1
  15. package/dist/canonical/normal-form.d.ts +10 -4
  16. package/dist/canonical/normal-form.d.ts.map +1 -1
  17. package/dist/canonical/normal-form.js +32 -2
  18. package/dist/canonical/normal-form.js.map +1 -1
  19. package/dist/canonical/registry.d.ts +7 -0
  20. package/dist/canonical/registry.d.ts.map +1 -1
  21. package/dist/canonical/registry.js +9 -0
  22. package/dist/canonical/registry.js.map +1 -1
  23. package/dist/composition/canonical-graph.d.ts +77 -0
  24. package/dist/composition/canonical-graph.d.ts.map +1 -0
  25. package/dist/composition/canonical-graph.js +155 -0
  26. package/dist/composition/canonical-graph.js.map +1 -0
  27. package/dist/composition/compose.d.ts.map +1 -1
  28. package/dist/composition/compose.js +14 -0
  29. package/dist/composition/compose.js.map +1 -1
  30. package/dist/composition/discovery.d.ts +10 -0
  31. package/dist/composition/discovery.d.ts.map +1 -1
  32. package/dist/composition/discovery.js +50 -7
  33. package/dist/composition/discovery.js.map +1 -1
  34. package/dist/composition/edges/calibration.d.ts.map +1 -1
  35. package/dist/composition/edges/calibration.js +53 -0
  36. package/dist/composition/edges/calibration.js.map +1 -1
  37. package/dist/composition/edges/catalog-full.d.ts.map +1 -1
  38. package/dist/composition/edges/catalog-full.js +33 -1
  39. package/dist/composition/edges/catalog-full.js.map +1 -1
  40. package/dist/composition/index.d.ts +1 -0
  41. package/dist/composition/index.d.ts.map +1 -1
  42. package/dist/composition/index.js +1 -0
  43. package/dist/composition/index.js.map +1 -1
  44. package/dist/composition/proposed-bridges.d.ts +218 -0
  45. package/dist/composition/proposed-bridges.d.ts.map +1 -0
  46. package/dist/composition/proposed-bridges.js +499 -0
  47. package/dist/composition/proposed-bridges.js.map +1 -0
  48. package/dist/composition/representative-values.d.ts +9 -3
  49. package/dist/composition/representative-values.d.ts.map +1 -1
  50. package/dist/composition/representative-values.js +34 -3
  51. package/dist/composition/representative-values.js.map +1 -1
  52. package/dist/composition/retrodiction.d.ts +13 -0
  53. package/dist/composition/retrodiction.d.ts.map +1 -1
  54. package/dist/composition/retrodiction.js +7 -1
  55. package/dist/composition/retrodiction.js.map +1 -1
  56. package/dist/composition/symbolic-constants.d.ts.map +1 -1
  57. package/dist/composition/symbolic-constants.js +1 -0
  58. package/dist/composition/symbolic-constants.js.map +1 -1
  59. package/dist/core/cell.d.ts +1 -23
  60. package/dist/core/cell.d.ts.map +1 -1
  61. package/dist/core/cell.js +0 -31
  62. package/dist/core/cell.js.map +1 -1
  63. package/dist/core/tensor.d.ts +27 -1
  64. package/dist/core/tensor.d.ts.map +1 -1
  65. package/dist/core/tensor.js +35 -0
  66. package/dist/core/tensor.js.map +1 -1
  67. package/dist/index.d.ts +2 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +5 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/numerical/grid-field.d.ts +7 -17
  72. package/dist/numerical/grid-field.d.ts.map +1 -1
  73. package/dist/numerical/input-validation.d.ts +56 -0
  74. package/dist/numerical/input-validation.d.ts.map +1 -0
  75. package/dist/numerical/input-validation.js +75 -0
  76. package/dist/numerical/input-validation.js.map +1 -0
  77. package/dist/numerical/klein-gordon.js +1 -1
  78. package/dist/numerical/klein-gordon.js.map +1 -1
  79. package/dist/numerical/types.d.ts +18 -1
  80. package/dist/numerical/types.d.ts.map +1 -1
  81. package/package.json +2 -2
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Runtime input validation for numeric evaluators — `validateFiniteInputs`.
3
+ *
4
+ * A generic, dependency-free finite-and-in-range check shared by the numerical
5
+ * evaluators (`klein-gordon.ts`) and the 42 bridge-equation evaluators
6
+ * (`bridges/equations/be-*.ts`). It lived in `bridges/equations/_be-helpers.ts`,
7
+ * which forced the lower numerical layer to import upward from `bridges`; moving
8
+ * it here (a leaf module with no imports) removes that dependency while
9
+ * `_be-helpers.ts` re-exports it so every bridge evaluator is unchanged.
10
+ *
11
+ * @module numerical/input-validation
12
+ */
13
+ /**
14
+ * Compose the adjective phrase that appears in the error message, picked to
15
+ * match the per-evaluator prose conventions:
16
+ * - `min=0, excludeMin=true` → "positive" (i.e., `> 0`)
17
+ * - `min=0` → "non-negative" (i.e., `≥ 0`)
18
+ * - bounded but not a 0-pin → "in range [a, b]" (closed/open as set)
19
+ * - unbounded → "" (just "finite")
20
+ */
21
+ function describeRange(spec) {
22
+ if (spec.description !== undefined)
23
+ return `${spec.description} `;
24
+ const hasMin = spec.min !== undefined;
25
+ const hasMax = spec.max !== undefined;
26
+ const lowOpen = !!spec.excludeMin;
27
+ const highOpen = !!spec.excludeMax;
28
+ if (hasMin && !hasMax && spec.min === 0 && !spec.allowZero) {
29
+ if (lowOpen)
30
+ return 'positive ';
31
+ return 'non-negative ';
32
+ }
33
+ if (!hasMin && !hasMax)
34
+ return '';
35
+ const lo = hasMin ? spec.min : -Infinity;
36
+ const hi = hasMax ? spec.max : Infinity;
37
+ const lb = lowOpen ? '(' : '[';
38
+ const rb = highOpen ? ')' : ']';
39
+ return `in range ${lb}${lo}, ${hi}${rb} `;
40
+ }
41
+ /**
42
+ * Validate every field of `input` named by `fieldSpecs`. Throws a `RangeError`
43
+ * on the first violation with a message containing the keywords (`"finite"`,
44
+ * plus `"positive"` / `"non-negative"` / `"in range"`) the per-evaluator tests
45
+ * pattern-match against. Format:
46
+ *
47
+ * `<evaluatorName>: <fieldName> must be a finite <range> number, got <value>`
48
+ *
49
+ * @internal
50
+ */
51
+ export function validateFiniteInputs(input, fieldSpecs, evaluatorName) {
52
+ for (const spec of fieldSpecs) {
53
+ const raw = input[spec.name];
54
+ const value = raw;
55
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
56
+ const range = describeRange(spec);
57
+ throw new RangeError(`${evaluatorName}: ${spec.name} must be a finite ${range}number, got ${String(value)}`);
58
+ }
59
+ if (spec.min !== undefined) {
60
+ const violatesMin = spec.excludeMin ? value <= spec.min : value < spec.min;
61
+ if (violatesMin) {
62
+ const range = describeRange(spec);
63
+ throw new RangeError(`${evaluatorName}: ${spec.name} must be a finite ${range}number, got ${value}`);
64
+ }
65
+ }
66
+ if (spec.max !== undefined) {
67
+ const violatesMax = spec.excludeMax ? value >= spec.max : value > spec.max;
68
+ if (violatesMax) {
69
+ const range = describeRange(spec);
70
+ throw new RangeError(`${evaluatorName}: ${spec.name} must be a finite ${range}number, got ${value}`);
71
+ }
72
+ }
73
+ }
74
+ }
75
+ //# sourceMappingURL=input-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-validation.js","sourceRoot":"","sources":["../../src/numerical/input-validation.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@
31
31
  * @module numerical/klein-gordon
32
32
  */
33
33
  import { C_SI, HBAR_SI } from '../core/constants.js';
34
- import { validateFiniteInputs } from '../bridges/equations/_be-helpers.js';
34
+ import { validateFiniteInputs } from './input-validation.js';
35
35
  /**
36
36
  * Evaluate the dimensionless free-field Klein-Gordon dispersion residual
37
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"klein-gordon.js","sourceRoot":"","sources":["../../src/numerical/klein-gordon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAiD3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAAgC;IAEhC,oBAAoB,CAClB,KAAK,EACL;QACE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;QACjD,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;KAC5B,EACD,8BAA8B,CAC/B,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhD,MAAM,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;IAC1B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;IACpB,oDAAoD;IACpD,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAEhC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA6B;IAE7B,oBAAoB,CAClB,KAAK,EACL;QACE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;KAC5B,EACD,4BAA4B,CAC7B,CAAC;IACF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,oBAAoB,CAClB,KAAK,EACL,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACjD,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACnC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,UAAU,CAClB,qHAAqH,CACtH,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC;IAE3C,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC5C,WAAW;QACX,OAAO;QACP,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,WAAW;QACX,QAAQ;QACR,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"klein-gordon.js","sourceRoot":"","sources":["../../src/numerical/klein-gordon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAiD7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAAgC;IAEhC,oBAAoB,CAClB,KAAK,EACL;QACE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;QACjD,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;KAC5B,EACD,8BAA8B,CAC/B,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhD,MAAM,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;IAC1B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;IACpB,oDAAoD;IACpD,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAEhC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA6B;IAE7B,oBAAoB,CAClB,KAAK,EACL;QACE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;KAC5B,EACD,4BAA4B,CAC7B,CAAC;IACF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,oBAAoB,CAClB,KAAK,EACL,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACjD,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACnC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,UAAU,CAClB,qHAAqH,CACtH,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC;IAE3C,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC5C,WAAW;QACX,OAAO;QACP,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,WAAW;QACX,QAAQ;QACR,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS;KACjD,CAAC;AACJ,CAAC"}
@@ -11,7 +11,24 @@
11
11
  * shape that crosses the public boundary of the numerical module.
12
12
  * @public */
13
13
  export type NestedArray = number | NestedArray[] | Float64Array;
14
- import type { GridField } from './grid-field.js';
14
+ /**
15
+ * A sampled field on a regular grid — part of the public `NumericalInputs`
16
+ * contract (`NumericalInputs.grids`), consumed by the 'grid' numericalForm
17
+ * finite-difference path. Defined here in the leaf types module (it only needs
18
+ * `NestedArray`); re-exported from `./grid-field.js` for backward compatibility,
19
+ * which keeps this module a dependency leaf (no `types ↔ grid-field` cycle).
20
+ * @public
21
+ */
22
+ export interface GridField {
23
+ /** Per-axis sample count, e.g. [64, 64, 64]. */
24
+ readonly shape: ReadonlyArray<number>;
25
+ /** Per-axis physical spacing Δx for the finite-difference stencil. */
26
+ readonly spacing: ReadonlyArray<number>;
27
+ /** Sampled field values as a nested array of `shape`. */
28
+ readonly data: NestedArray;
29
+ /** Stencil boundary policy. v0.3.5 ships 'clamp' and 'periodic'. */
30
+ readonly boundary: 'clamp' | 'periodic';
31
+ }
15
32
  /** Concrete inputs for a numerical evaluation. See v0.3.5-Design.md §5.
16
33
  * @public */
17
34
  export interface NumericalInputs {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/numerical/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;cAKc;AACd,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;cACc;AACd,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD;6EACyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC;IACtF,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD;iEAC6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC/D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/numerical/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;cAKc;AACd,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,UAAU,CAAC;CACzC;AAED;cACc;AACd,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD;6EACyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC;IACtF,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD;iEAC6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC/D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-physics-tensor",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "Computational framework for exploring unified physics through tensor formalism",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "homepage": "https://github.com/danielsimonjr/universal-physics-tensor#readme",
73
73
  "devDependencies": {
74
- "@types/node": "^25.9.1",
74
+ "@types/node": "^26.0.0",
75
75
  "fast-check": "^4.8.0",
76
76
  "js-yaml": "^4.2.0",
77
77
  "typescript": "^6.0.3",