solve-engine 1.0.0-beta.3 → 1.0.0-beta.5

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 (161) hide show
  1. package/dist/{Lexer-y8uY6n6t.d.cts → Lexer-Cfm79Dak.d.cts} +1 -1
  2. package/dist/{Lexer-Dkt7KGaU.d.ts → Lexer-W9MBOP0V.d.ts} +1 -1
  3. package/dist/{PackageRegistry-wUQyVEyw.d.ts → PackageRegistry-CjDt-Jy_.d.ts} +4 -4
  4. package/dist/{PackageRegistry-CblRmrHc.d.cts → PackageRegistry-pHtKythi.d.cts} +4 -4
  5. package/dist/{Parselet-C974vhZG.d.cts → Parselet-Cu0bLSis.d.cts} +1 -1
  6. package/dist/{Parselet-CsmtM3It.d.ts → Parselet-DEdF9I7n.d.ts} +1 -1
  7. package/dist/{Token-DnU2hwFY.d.cts → Token-BzG5G4ja.d.cts} +30 -0
  8. package/dist/{Token-DnU2hwFY.d.ts → Token-BzG5G4ja.d.ts} +30 -0
  9. package/dist/{TokenNormalizer-CqBCrYkR.d.cts → TokenNormalizer-DGVa24Q-.d.cts} +1 -1
  10. package/dist/{TokenNormalizer-B8zmhO5X.d.ts → TokenNormalizer-t_GotBxr.d.ts} +1 -1
  11. package/dist/{chunk-AF5AE52C.js → chunk-2CS6OMZK.js} +7 -6
  12. package/dist/chunk-2CS6OMZK.js.map +1 -0
  13. package/dist/{chunk-XJCMXB2E.cjs → chunk-2MV4HBKC.cjs} +187 -61
  14. package/dist/chunk-2MV4HBKC.cjs.map +1 -0
  15. package/dist/{chunk-WQTTOGXC.cjs → chunk-4AVD7NZW.cjs} +4 -4
  16. package/dist/{chunk-WQTTOGXC.cjs.map → chunk-4AVD7NZW.cjs.map} +1 -1
  17. package/dist/{chunk-HTXVVJRA.cjs → chunk-4CVLFLOB.cjs} +112 -2
  18. package/dist/chunk-4CVLFLOB.cjs.map +1 -0
  19. package/dist/{chunk-ZS6CRJZP.js → chunk-6GCKCWLB.js} +9 -3
  20. package/dist/chunk-6GCKCWLB.js.map +1 -0
  21. package/dist/{chunk-PG2K5BL6.cjs → chunk-73GSBGUU.cjs} +53 -53
  22. package/dist/{chunk-PG2K5BL6.cjs.map → chunk-73GSBGUU.cjs.map} +1 -1
  23. package/dist/{chunk-CGIDYRAX.cjs → chunk-AHCLWAM5.cjs} +18 -10
  24. package/dist/chunk-AHCLWAM5.cjs.map +1 -0
  25. package/dist/{chunk-KVILKGMS.js → chunk-AJA6LUI7.js} +36 -2
  26. package/dist/chunk-AJA6LUI7.js.map +1 -0
  27. package/dist/{chunk-F7G7ZFIZ.cjs → chunk-AZUA3F4I.cjs} +3 -3
  28. package/dist/{chunk-F7G7ZFIZ.cjs.map → chunk-AZUA3F4I.cjs.map} +1 -1
  29. package/dist/{chunk-QWY3VEZN.js → chunk-BAMZT3GL.js} +65 -12
  30. package/dist/chunk-BAMZT3GL.js.map +1 -0
  31. package/dist/{chunk-J73SJHR3.cjs → chunk-BXKJLM5R.cjs} +569 -344
  32. package/dist/chunk-BXKJLM5R.cjs.map +1 -0
  33. package/dist/{chunk-EHAHVROS.cjs → chunk-CLVQBF5C.cjs} +5 -5
  34. package/dist/{chunk-EHAHVROS.cjs.map → chunk-CLVQBF5C.cjs.map} +1 -1
  35. package/dist/{chunk-BOAVE4FC.cjs → chunk-CSG5XVNJ.cjs} +1491 -218
  36. package/dist/chunk-CSG5XVNJ.cjs.map +1 -0
  37. package/dist/{chunk-34RRD7PC.js → chunk-CYFK5SY2.js} +111 -3
  38. package/dist/chunk-CYFK5SY2.js.map +1 -0
  39. package/dist/{chunk-626UW5RU.js → chunk-GPPLSM2Z.js} +61 -2
  40. package/dist/chunk-GPPLSM2Z.js.map +1 -0
  41. package/dist/{chunk-OWXIOHQB.js → chunk-GVWHCL2N.js} +1417 -144
  42. package/dist/chunk-GVWHCL2N.js.map +1 -0
  43. package/dist/{chunk-2R7SVDDB.cjs → chunk-M4F66R4O.cjs} +72 -72
  44. package/dist/{chunk-2R7SVDDB.cjs.map → chunk-M4F66R4O.cjs.map} +1 -1
  45. package/dist/{chunk-LIPPNDBE.js → chunk-M5E34VG5.js} +3 -3
  46. package/dist/{chunk-LIPPNDBE.js.map → chunk-M5E34VG5.js.map} +1 -1
  47. package/dist/{chunk-53B6KDDJ.cjs → chunk-MBNQVDVC.cjs} +38 -3
  48. package/dist/{chunk-53B6KDDJ.cjs.map → chunk-MBNQVDVC.cjs.map} +1 -1
  49. package/dist/{chunk-2A3VOGVG.js → chunk-MEOHSQEH.js} +6 -5
  50. package/dist/chunk-MEOHSQEH.js.map +1 -0
  51. package/dist/{chunk-ZH2PCJ4V.cjs → chunk-MTX2KVU7.cjs} +71 -70
  52. package/dist/chunk-MTX2KVU7.cjs.map +1 -0
  53. package/dist/{chunk-4QADQTWS.js → chunk-MVBEL57Q.js} +242 -17
  54. package/dist/chunk-MVBEL57Q.js.map +1 -0
  55. package/dist/{chunk-QNJ4ACRT.cjs → chunk-NJTXJ5AG.cjs} +37 -15
  56. package/dist/chunk-NJTXJ5AG.cjs.map +1 -0
  57. package/dist/{chunk-EEJSQEHC.cjs → chunk-NZFKROS7.cjs} +26 -20
  58. package/dist/chunk-NZFKROS7.cjs.map +1 -0
  59. package/dist/{chunk-OJ6LW7VQ.js → chunk-OFXOTECC.js} +13 -5
  60. package/dist/chunk-OFXOTECC.js.map +1 -0
  61. package/dist/{chunk-3YNVWKR2.cjs → chunk-OUHT5Z36.cjs} +28 -5
  62. package/dist/chunk-OUHT5Z36.cjs.map +1 -0
  63. package/dist/{chunk-4MG4XKO2.js → chunk-PCPX42KL.js} +38 -3
  64. package/dist/{chunk-4MG4XKO2.js.map → chunk-PCPX42KL.js.map} +1 -1
  65. package/dist/{chunk-6NTVRDQV.cjs → chunk-QDMPOAI7.cjs} +126 -73
  66. package/dist/chunk-QDMPOAI7.cjs.map +1 -0
  67. package/dist/{chunk-FI4WDYSL.cjs → chunk-R24DI24X.cjs} +61 -2
  68. package/dist/chunk-R24DI24X.cjs.map +1 -0
  69. package/dist/{chunk-VM5ZKDLH.js → chunk-SFQWJMKT.js} +5 -5
  70. package/dist/{chunk-VM5ZKDLH.js.map → chunk-SFQWJMKT.js.map} +1 -1
  71. package/dist/{chunk-6BKTCEUP.cjs → chunk-TY3TLZAW.cjs} +36 -2
  72. package/dist/chunk-TY3TLZAW.cjs.map +1 -0
  73. package/dist/{chunk-23MFG6GG.js → chunk-TZLCIJWP.js} +12 -12
  74. package/dist/{chunk-23MFG6GG.js.map → chunk-TZLCIJWP.js.map} +1 -1
  75. package/dist/{chunk-DM3LMRBC.js → chunk-UKPGSAZW.js} +187 -61
  76. package/dist/chunk-UKPGSAZW.js.map +1 -0
  77. package/dist/{chunk-KFRBAXKW.js → chunk-VZH3NOLP.js} +3 -3
  78. package/dist/{chunk-KFRBAXKW.js.map → chunk-VZH3NOLP.js.map} +1 -1
  79. package/dist/{chunk-NH2O2AUR.js → chunk-WC5FFSHB.js} +26 -4
  80. package/dist/chunk-WC5FFSHB.js.map +1 -0
  81. package/dist/{chunk-7J2Q77OH.cjs → chunk-WWOLFXTX.cjs} +11 -10
  82. package/dist/chunk-WWOLFXTX.cjs.map +1 -0
  83. package/dist/{chunk-GOLDJNMZ.js → chunk-XBTEO4OB.js} +28 -5
  84. package/dist/chunk-XBTEO4OB.js.map +1 -0
  85. package/dist/{chunk-EPOXXJBK.js → chunk-YU2CUNFO.js} +3 -3
  86. package/dist/{chunk-EPOXXJBK.js.map → chunk-YU2CUNFO.js.map} +1 -1
  87. package/dist/constants.cjs +4 -4
  88. package/dist/constants.js +1 -1
  89. package/dist/engine.cjs +29 -30
  90. package/dist/engine.d.cts +6 -6
  91. package/dist/engine.d.ts +6 -6
  92. package/dist/engine.js +19 -20
  93. package/dist/format.cjs +7 -8
  94. package/dist/format.cjs.map +1 -1
  95. package/dist/format.js +2 -3
  96. package/dist/format.js.map +1 -1
  97. package/dist/index.cjs +28 -29
  98. package/dist/index.cjs.map +1 -1
  99. package/dist/index.d.cts +6 -6
  100. package/dist/index.d.ts +6 -6
  101. package/dist/index.js +20 -21
  102. package/dist/index.js.map +1 -1
  103. package/dist/language.cjs +12 -12
  104. package/dist/language.d.cts +6 -6
  105. package/dist/language.d.ts +6 -6
  106. package/dist/language.js +5 -5
  107. package/dist/lexer.cjs +19 -19
  108. package/dist/lexer.d.cts +3 -3
  109. package/dist/lexer.d.ts +3 -3
  110. package/dist/lexer.js +7 -7
  111. package/dist/normalizer.cjs +12 -12
  112. package/dist/normalizer.d.cts +3 -3
  113. package/dist/normalizer.d.ts +3 -3
  114. package/dist/normalizer.js +6 -6
  115. package/dist/packages.cjs +36 -37
  116. package/dist/packages.d.cts +5 -5
  117. package/dist/packages.d.ts +5 -5
  118. package/dist/packages.js +13 -14
  119. package/dist/parser.cjs +12 -12
  120. package/dist/parser.d.cts +3 -2
  121. package/dist/parser.d.ts +3 -2
  122. package/dist/parser.js +4 -4
  123. package/dist/resolvers.d.cts +1 -1
  124. package/dist/resolvers.d.ts +1 -1
  125. package/dist/uom.cjs +14 -14
  126. package/dist/uom.d.cts +12 -4
  127. package/dist/uom.d.ts +12 -4
  128. package/dist/uom.js +4 -4
  129. package/dist/vm.cjs +17 -17
  130. package/dist/vm.js +6 -6
  131. package/package.json +1 -1
  132. package/dist/chunk-2A3VOGVG.js.map +0 -1
  133. package/dist/chunk-34RRD7PC.js.map +0 -1
  134. package/dist/chunk-3YNVWKR2.cjs.map +0 -1
  135. package/dist/chunk-4QADQTWS.js.map +0 -1
  136. package/dist/chunk-626UW5RU.js.map +0 -1
  137. package/dist/chunk-6BKTCEUP.cjs.map +0 -1
  138. package/dist/chunk-6NTVRDQV.cjs.map +0 -1
  139. package/dist/chunk-7J2Q77OH.cjs.map +0 -1
  140. package/dist/chunk-AF5AE52C.js.map +0 -1
  141. package/dist/chunk-BOAVE4FC.cjs.map +0 -1
  142. package/dist/chunk-CGIDYRAX.cjs.map +0 -1
  143. package/dist/chunk-DM3LMRBC.js.map +0 -1
  144. package/dist/chunk-EEJSQEHC.cjs.map +0 -1
  145. package/dist/chunk-FI4WDYSL.cjs.map +0 -1
  146. package/dist/chunk-GOLDJNMZ.js.map +0 -1
  147. package/dist/chunk-HTXVVJRA.cjs.map +0 -1
  148. package/dist/chunk-J73SJHR3.cjs.map +0 -1
  149. package/dist/chunk-KVILKGMS.js.map +0 -1
  150. package/dist/chunk-NH2O2AUR.js.map +0 -1
  151. package/dist/chunk-OJ6LW7VQ.js.map +0 -1
  152. package/dist/chunk-OT6OJY7C.cjs +0 -114
  153. package/dist/chunk-OT6OJY7C.cjs.map +0 -1
  154. package/dist/chunk-OWXIOHQB.js.map +0 -1
  155. package/dist/chunk-QNJ4ACRT.cjs.map +0 -1
  156. package/dist/chunk-QWY3VEZN.js.map +0 -1
  157. package/dist/chunk-RFYD5TJE.js +0 -111
  158. package/dist/chunk-RFYD5TJE.js.map +0 -1
  159. package/dist/chunk-XJCMXB2E.cjs.map +0 -1
  160. package/dist/chunk-ZH2PCJ4V.cjs.map +0 -1
  161. package/dist/chunk-ZS6CRJZP.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/parser/BytecodeBuilder.ts","../src/parser/BindingPower.ts"],"names":[],"mappings":"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","file":"chunk-6GCKCWLB.js","sourcesContent":["import { OpCode } from \"@solve-js/parser/OpCode\";\nimport { ErrorFactory } from \"@solve-js/errors/UnifiedErrorFramework\";\n\n/**\n * `BytecodeProgram.opcodes` is a `Uint8Array`, every operand written into\n * it (including constant-pool indices from {@link BytecodeBuilder.emitNumber}/\n * {@link BytecodeBuilder.emitString}) is truncated to a single byte on\n * `build()`. Exceeding this silently wraps the index (e.g. entry 300 reads\n * back as entry 44), producing a wrong result with no error. See\n * {@link BytecodeBuilder.emitNumber} for the guard that turns this into a\n * thrown error instead.\n */\nconst MAX_CONSTANT_POOL_INDEX = 255;\n\n/**\n * Compiled bytecode program produced by {@link BytecodeBuilder}.\n * Ready for consumption by {@link executeBytecode} without further processing.\n */\nexport interface BytecodeProgram {\n\topcodes: Uint8Array;\n\tnumbers: Float64Array;\n\tstrings: string[];\n\tconstants?: Map<number, number>;\n\t/**\n\t * Whether the program contains any async opcodes (CALL_PLUGIN, etc.).\n\t * Set during compilation by the BytecodeBuilder. Allows the engine\n\t * to skip the O(n) resolver preflight check in O(1) for purely\n\t * synchronous expressions like `2 + 2`.\n\t */\n\thasAsync: boolean;\n\t/**\n\t * User-defined-function bodies compiled alongside this program (one\n\t * entry per `name(params) = body` definition on this line). See\n\t * {@link BytecodeBuilder.emitUserFunctionBody}. `OpCode.DEFINE_USER_FUNCTION`'s\n\t * operand is an index into this array, resolved at VM-execution time\n\t * (not parse time) so a diagnostic/lookahead parse that never actually\n\t * executes the definition line has no side effect on `vm.userFunctions`.\n\t */\n\tuserFunctionBodies?: UserFunctionDef[];\n\t/**\n\t * Anonymous function bodies compiled alongside this program, one entry\n\t * per `map`/`reduce` inline transform expression (e.g. the `10*x` in\n\t * `map(10*x, [0,1,500])`). See {@link BytecodeBuilder.emitAnonymousBody}.\n\t * Deliberately a SEPARATE side-table from `userFunctionBodies`, not\n\t * routed through `vm.userFunctions` at all: an inline body has no name\n\t * and must never leak into the persistent name-keyed registry the way\n\t * a real `f(x) = ...` definition does.\n\t */\n\tanonymousBodies?: AnonymousBodyDef[];\n}\n\n/**\n * An anonymous transform body for `map`/`reduce`'s inline-expression form\n * (e.g. `10*x` in `map(10*x, [0,1,500])`, or `acc+x` in `reduce(acc+x,\n * [1,2,3])`). Structurally identical to {@link UserFunctionDef} minus the\n * `name`. See `OpCode.MAP_INVOKE`/`REDUCE_INVOKE` and\n * `vm/VM.ts`'s handlers, which build a call frame from `params`/`args`\n * exactly like `CALL_USER_FUNCTION` does, just without ever registering\n * the body in `vm.userFunctions`.\n */\nexport interface AnonymousBodyDef {\n\tparams: string[];\n\tprogram: BytecodeProgram;\n}\n\n/**\n * A user-defined, parameterized, reusable function's compiled form\n * (`f(x) = 2*x + 1`). See `OpCode.DEFINE_USER_FUNCTION`/`CALL_USER_FUNCTION`\n * and `vm/VM.ts`'s `VM.defineUserFunction`/`getUserFunction`.\n *\n * `program` is the body compiled to its OWN independent `BytecodeProgram`,\n * not a fragment of the definition line's own bytecode. Parameter names\n * inside the body compile to ORDINARY `LOAD_VAR <name>` opcodes, no\n * parse-time rewriting, because parameter resolution happens dynamically\n * at the VM level: `CALL_USER_FUNCTION` pushes a name-keyed call frame\n * (`Map<string, Value>`) before re-executing `program`, and `VM.getVar()`\n * checks the innermost call frame before falling back to the flat\n * document-variable store. This is why a `UNIT`-collision parameter name\n * (e.g. `h` in `area(w, h) = w * h`, which lexes as the \"hour\" unit) needs\n * no special handling anywhere, it's just another `LOAD_VAR \"h\"`, resolved\n * the same way as any other name.\n */\nexport interface UserFunctionDef {\n\tname: string;\n\tparams: string[];\n\tprogram: BytecodeProgram;\n}\n\n/**\n * Direct-to-bytecode compiler for the Pratt parser.\n *\n * Accumulates opcodes, numeric constants, and string references during parsing,\n * then produces a {@link BytecodeProgram} for VM execution. Supports:\n * - Standard build via {@link build}\n * - Zero-copy build into pre-allocated buffers via {@link buildInto}\n * - In-place reset for reuse without reallocation\n */\nexport class BytecodeBuilder {\n\tprivate opcodes: number[] = [];\n\tprivate numbers: number[] = [];\n\tprivate strings: string[] = [];\n\tprivate stringIndex = new Map<string, number>();\n\tprivate _hasAsync = false;\n\tprivate userFunctionBodies: UserFunctionDef[] = [];\n\tprivate anonymousBodies: AnonymousBodyDef[] = [];\n\n\t/** Emit an {@link OpCode} instruction. */\n\temitOpcode(op: OpCode): void {\n\t\tthis.opcodes.push(op);\n\t\tif (op === OpCode.CALL_PLUGIN) {\n\t\t\tthis._hasAsync = true;\n\t\t}\n\t}\n\n\t/**\n\t * Emit a numeric literal: appends `n` to the program's constant pool and\n\t * writes its index into the opcode stream (read back by the VM as e.g.\n\t * `PUSH_NUMBER <idx>`).\n\t *\n\t * Numeric constants are NOT deduplicated (unlike {@link emitString})\n\t * every call appends a new entry, so an expression with more than\n\t * {@link MAX_CONSTANT_POOL_INDEX}+1 distinct numeric-literal occurrences\n\t * throws rather than silently wrapping the index (see\n\t * `MAX_CONSTANT_POOL_INDEX`'s doc for what that would otherwise do).\n\t *\n\t * @throws If the constant pool would exceed 256 entries.\n\t */\n\temitNumber(n: number): void {\n\t\tconst idx = this.numbers.length;\n\t\tif (idx > MAX_CONSTANT_POOL_INDEX) {\n\t\t\tthrow ErrorFactory.parsing(\n\t\t\t\t\"TOO_MANY_NUMERIC_CONSTANTS\",\n\t\t\t\t`Expression has more than ${MAX_CONSTANT_POOL_INDEX + 1} numeric literals, exceeding the bytecode constant pool's limit.`,\n\t\t\t\t{ limit: MAX_CONSTANT_POOL_INDEX + 1 }\n\t\t\t);\n\t\t}\n\t\tthis.numbers.push(n);\n\t\tthis.opcodes.push(idx);\n\t}\n\n\t/**\n\t * Emit a string literal: interns `s` into the program's string pool\n\t * (deduplicated via `stringIndex`) and writes its index into the opcode\n\t * stream. Subject to the same constant-pool bound as {@link emitNumber},\n\t * but since strings ARE deduplicated, only distinct string values count\n\t * against the limit.\n\t *\n\t * @throws If the string pool would exceed 256 distinct entries.\n\t */\n\temitString(s: string): void {\n\t\tlet idx = this.stringIndex.get(s);\n\t\tif (idx === undefined) {\n\t\t\tidx = this.strings.length;\n\t\t\tif (idx > MAX_CONSTANT_POOL_INDEX) {\n\t\t\t\tthrow ErrorFactory.parsing(\n\t\t\t\t\t\"TOO_MANY_STRING_CONSTANTS\",\n\t\t\t\t\t`Expression has more than ${MAX_CONSTANT_POOL_INDEX + 1} distinct string literals, exceeding the bytecode constant pool's limit.`,\n\t\t\t\t\t{ limit: MAX_CONSTANT_POOL_INDEX + 1 }\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.strings.push(s);\n\t\t\tthis.stringIndex.set(s, idx);\n\t\t}\n\t\tthis.opcodes.push(idx);\n\t}\n\n\t/**\n\t * Emit a raw numeric operand (0-255) following an opcode, e.g. a\n\t * plugin-function index for `CALL_PLUGIN`, or an argument count. Unlike\n\t * {@link emitOpcode}, this does not go through the `OpCode` enum, so\n\t * package authors use this (not an unsafe cast to `OpCode`) to push\n\t * operands their own opcode handler expects to read positionally.\n\t */\n\temitIndex(idx: number): void {\n\t\tthis.opcodes.push(idx);\n\t}\n\n\t/** Emit a raw byte (0-255), used for fixed small operands like argument counts. */\n\temitByte(b: number): void {\n\t\tthis.opcodes.push(b);\n\t}\n\n\t/** Number of opcodes/operands emitted so far, used to compute jump targets before {@link patchJump}. */\n\tget currentLength(): number {\n\t\treturn this.opcodes.length;\n\t}\n\n\t/**\n\t * Register a compiled user-defined-function body, returning its index\n\t * into this program's `userFunctionBodies` side-table, the caller emits\n\t * that index as `DEFINE_USER_FUNCTION`'s operand via {@link emitIndex}.\n\t * Subject to the same {@link MAX_CONSTANT_POOL_INDEX} bound as\n\t * {@link emitNumber}/{@link emitString} (the index itself is a single\n\t * opcode-stream byte), in practice a single line defines at most a\n\t * handful of functions, so this limit is never realistically reached.\n\t *\n\t * @throws If more than 256 function bodies are registered on one program.\n\t */\n\temitUserFunctionBody(name: string, params: string[], program: BytecodeProgram): number {\n\t\tconst idx = this.userFunctionBodies.length;\n\t\tif (idx > MAX_CONSTANT_POOL_INDEX) {\n\t\t\tthrow ErrorFactory.parsing(\n\t\t\t\t\"TOO_MANY_FUNCTION_DEFINITIONS\",\n\t\t\t\t`More than ${MAX_CONSTANT_POOL_INDEX + 1} function definitions on one line, exceeding the bytecode constant pool's limit.`,\n\t\t\t\t{ limit: MAX_CONSTANT_POOL_INDEX + 1 }\n\t\t\t);\n\t\t}\n\t\tthis.userFunctionBodies.push({ name, params, program });\n\t\treturn idx;\n\t}\n\n\t/**\n\t * Register a compiled `map`/`reduce` anonymous transform body, returning\n\t * its index into this program's `anonymousBodies` side-table, the\n\t * caller emits that index as `MAP_INVOKE`/`REDUCE_INVOKE`'s operand via\n\t * {@link emitIndex}. Same {@link MAX_CONSTANT_POOL_INDEX} bound as\n\t * {@link emitUserFunctionBody}.\n\t *\n\t * @throws If more than 256 anonymous bodies are registered on one program.\n\t */\n\temitAnonymousBody(params: string[], program: BytecodeProgram): number {\n\t\tconst idx = this.anonymousBodies.length;\n\t\tif (idx > MAX_CONSTANT_POOL_INDEX) {\n\t\t\tthrow ErrorFactory.parsing(\n\t\t\t\t\"TOO_MANY_ANONYMOUS_BODIES\",\n\t\t\t\t`More than ${MAX_CONSTANT_POOL_INDEX + 1} map/reduce transform expressions on one line, exceeding the bytecode constant pool's limit.`,\n\t\t\t\t{ limit: MAX_CONSTANT_POOL_INDEX + 1 }\n\t\t\t);\n\t\t}\n\t\tthis.anonymousBodies.push({ params, program });\n\t\treturn idx;\n\t}\n\n\t/** Overwrite a previously-emitted placeholder operand at `position` with the real jump `target`, once known. */\n\tpatchJump(position: number, target: number): void {\n\t\tthis.opcodes[position] = target;\n\t}\n\n\t/**\n\t * Build the accumulated opcodes/numbers/strings into a BytecodeProgram.\n\t * Creates new TypedArrays, the builder can be reused after this call.\n\t */\n\tbuild(): BytecodeProgram {\n\t\treturn {\n\t\t\topcodes: new Uint8Array(this.opcodes),\n\t\t\tnumbers: new Float64Array(this.numbers),\n\t\t\t// Defensive copy: .length = 0 in reset() would clear a shared reference.\n\t\t\t// Strings are rare (only UoM/datetime parselets emit them), so the copy\n\t\t\t// cost is negligible.\n\t\t\tstrings: [...this.strings],\n\t\t\tconstants: new Map(),\n\t\t\thasAsync: this._hasAsync,\n\t\t\tuserFunctionBodies: this.userFunctionBodies.length > 0 ? [...this.userFunctionBodies] : undefined,\n\t\t\tanonymousBodies: this.anonymousBodies.length > 0 ? [...this.anonymousBodies] : undefined,\n\t\t};\n\t}\n\n\t/**\n\t * Build directly into a pre-allocated buffer for zero-copy VM consumption.\n\t *\n\t * When `buf` is provided and large enough, writes into it and returns\n\t * subarray **views** (not copies), the returned TypedArrays share the\n\t * buffer's underlying ArrayBuffer. The caller MUST NOT mutate the buffer\n\t * until the returned BytecodeProgram is no longer needed.\n\t *\n\t * If the caller intends to cache the result, they must copy the TypedArrays\n\t * (e.g. `new Uint8Array(program.opcodes)`) before reusing the buffer pool.\n\t *\n\t * When `buf` is omitted or too small, allocates fresh TypedArrays.\n\t */\n\tbuildInto(buf?: { opcodes: Uint8Array; numbers: Float64Array }): BytecodeProgram {\n\t\tconst opLen = this.opcodes.length;\n\t\tconst numLen = this.numbers.length;\n\n\t\tconst reuseOpcodes = buf && buf.opcodes.length >= opLen;\n\t\tconst reuseNumbers = buf && buf.numbers.length >= numLen;\n\n\t\t// Subarray views that share the buffer's ArrayBuffer (zero-copy)\n\t\tconst opcodes = reuseOpcodes\n\t\t\t? new Uint8Array(buf!.opcodes.buffer, buf!.opcodes.byteOffset, opLen)\n\t\t\t: new Uint8Array(opLen);\n\t\tconst numbers = reuseNumbers\n\t\t\t? new Float64Array(buf!.numbers.buffer, buf!.numbers.byteOffset, numLen)\n\t\t\t: new Float64Array(numLen);\n\n\t\t// Write data into the views\n\t\tfor (let i = 0; i < opLen; i++) opcodes[i] = this.opcodes[i];\n\t\tfor (let i = 0; i < numLen; i++) numbers[i] = this.numbers[i];\n\n\t\treturn {\n\t\t\topcodes,\n\t\t\tnumbers,\n\t\t\tstrings: [...this.strings],\n\t\t\tconstants: new Map(),\n\t\t\thasAsync: this._hasAsync,\n\t\t\tuserFunctionBodies: this.userFunctionBodies.length > 0 ? [...this.userFunctionBodies] : undefined,\n\t\t\tanonymousBodies: this.anonymousBodies.length > 0 ? [...this.anonymousBodies] : undefined,\n\t\t};\n\t}\n\n\treset(): void {\n\t\t// Retain backing stores with .length = 0 to avoid reallocation on growth.\n\t\t// = [] discards the ArrayBuffer, forcing V8 to reallocate on every push()\n\t\t// threshold (4→8→16→32...). For a 50-opcode expression, that's 3-4 copies.\n\t\tthis.opcodes.length = 0;\n\t\tthis.numbers.length = 0;\n\t\tthis.strings.length = 0;\n\t\tthis.stringIndex.clear();\n\t\tthis._hasAsync = false;\n\t\tthis.userFunctionBodies.length = 0;\n\t\tthis.anonymousBodies.length = 0;\n\t}\n}\n","/**\n * Named precedence levels for the Pratt parser, from loosest (`Lowest`) to\n * tightest (`Call`) binding. A custom infix parselet compares its own\n * binding power against the current expression's to decide whether to\n * consume the next operator (higher power binds tighter, e.g. `*` over `+`).\n *\n * Package authors reference these when registering an infix parselet via\n * `IPackageRegistry.registerInfixParselet`. See the built-in packages for\n * examples of picking an appropriate level (e.g. arithmetic `+`/`-` use\n * `Sum`, `*`/`/` use `Product`).\n */\nexport const BindingPower = {\n Lowest: 0,\n Assignment: 10,\n LogicalOr: 12, // `or`, `||` — loosest of the boolean-logic operators\n LogicalAnd: 14, // `&&` — binds tighter than `or` (\"a or b and c\" = \"a or (b and c)\")\n Conditional: 20, // comparisons (`==`, `<`, `>=`, ...) — tighter than and/or, looser than arithmetic\n // The word \"and\" as addition (`AND_CONJ`). One step looser than `Sum` on\n // purpose: a phrase parselet collecting a list (\"average of X, Y and Z\")\n // parses each argument at this level, which stops at \"and\" while still\n // letting a genuine \"+\" inside an argument bind. Level 28 rather than 29 to\n // leave room, and below Sum rather than above so \"1 and 2 * 3\" stays 7.\n Conjunction: 28,\n Sum: 30,\n BitwiseXor: 35,\n Product: 40,\n Exponent: 50,\n Prefix: 60,\n Postfix: 70,\n Call: 80,\n} as const;\n\n/**\n * Set the binding power of a named operator.\n *\n * Binding power is what decides precedence in the Pratt parser: a higher number\n * binds tighter, so `*` outranks `+`. Changing one changes how every existing\n * expression using that operator parses, which is why packages should allocate\n * a new name rather than adjust a built-in.\n *\n * @param name - Operator name.\n * @param power - Higher binds tighter.\n */\nexport function setBindingPower(name: string, power: number): void {\n (BindingPower as Record<string, number>)[name] = power;\n}\n\n/**\n * Read the binding power of a named operator.\n *\n * @param name - Operator name.\n * @returns Its binding power, or 0 when the name is unknown, which makes an\n * unregistered operator terminate an expression rather than swallow the rest\n * of it.\n */\nexport function getBindingPower(name: string): number {\n return (BindingPower as Record<string, number>)[name] ?? 0;\n}\n\n// ── Built-in Infix Operator Binding Power Table ──────────────────────────────\n// Pre-computed Uint8Array lookup indexed by token typeId.\n// value > 0 → built-in infix operator with that binding power\n// value = 0 → not a built-in infix, fall through to Tier 2 parselet registry\n//\n// Built at module load via buildBindingPowerTable(). The table is sparse\n// most entries are 0 since only ~15 of 80+ token types are infix operators.\n//\n// Performance: Uint8Array[typeId] is a single typed array load, no Map.get()\n// no string hashing, no property chain. V8 eliminates bounds checks when typeId\n// is known to be within array length.\n\nimport { TokenTypes } from \"@solve-js/lexer/Token\";\nimport { tokenTypeId } from \"@solve-js/lexer/Token\";\n\n/**\n * Mapping of token type names → binding powers for built-in infix operators.\n * Only operators listed here get the Tier 1 fast path in PrecedenceParser.\n * All other infix tokens use the Tier 2 parselet registry fallback.\n */\nconst BUILTIN_INFIX_BP: Record<string, number> = {\n // Arithmetic (infix, left-associative)\n [TokenTypes.PLUS]: BindingPower.Sum,\n [TokenTypes.MINUS]: BindingPower.Sum,\n [TokenTypes.STAR]: BindingPower.Product,\n [TokenTypes.SLASH]: BindingPower.Product,\n [TokenTypes.MOD]: BindingPower.Product,\n\n // Arithmetic (infix, RIGHT-associative, PrecedenceParser handles this specially)\n [TokenTypes.CARET]: BindingPower.Exponent,\n\n // Bitwise (infix, left-associative)\n [TokenTypes.LSHIFT]: BindingPower.BitwiseXor,\n [TokenTypes.RSHIFT]: BindingPower.BitwiseXor,\n [TokenTypes.BIT_AND]: BindingPower.BitwiseXor,\n [TokenTypes.BIT_OR]: BindingPower.BitwiseXor,\n [TokenTypes.BIT_XOR]: BindingPower.BitwiseXor,\n\n // Postfix (no right operand, PrecedenceParser handles this specially)\n [TokenTypes.PERCENT]: BindingPower.Postfix,\n\n // Percentage keyword (infix, left-associative: \"50% of 200\" → MUL)\n [TokenTypes.OF]: BindingPower.Product,\n};\n\n// Note: These token types are intentionally NOT in the BP_TABLE, they stay in\n// the Tier 2 parselet registry because they require complex handling:\n// IN, TO → UoM conversion parselets (peek at target unit token, complex logic)\n// DOT → Property access (chained OBJ_GET, needs left-token tracking)\n// EQUALS → Assignment (VariableParselet handles :var = expr pattern)\n// EQUALITY, NEQ, GTE, LTE → Comparison ops (need dedicated VM opcodes, task 2.15a)\n// COMMA → Argument separator (function calls, array/object literals)\n\n/** Cached BP_TABLE, built once at module load, immutable thereafter. */\nlet _bpTable: Uint8Array | null = null;\n\n/**\n * Build the Uint8Array binding power table indexed by token typeId.\n * Idempotent, returns cached table on subsequent calls.\n *\n * Must be called after all token types are registered (via registerAllTokenTypes())\n * and after plugin providers have registered their token types.\n */\nexport function buildBindingPowerTable(): Uint8Array {\n if (_bpTable) return _bpTable;\n\n // Size to the largest registered typeId + 1\n let maxId = 0;\n for (const name of Object.keys(BUILTIN_INFIX_BP)) {\n const id = tokenTypeId(name);\n if (id > maxId) maxId = id;\n }\n // Also scan all TokenTypes to ensure table covers all registered IDs\n for (const name of Object.values(TokenTypes)) {\n const id = tokenTypeId(name);\n if (id > maxId) maxId = id;\n }\n\n const table = new Uint8Array(maxId + 1);\n for (const [name, bp] of Object.entries(BUILTIN_INFIX_BP)) {\n const id = tokenTypeId(name);\n table[id] = bp;\n }\n\n _bpTable = table;\n return table;\n}\n\n/**\n * Invalidate the cached BP table, call when plugins register new token types\n * that should participate in the built-in fast path.\n */\nexport function invalidateBindingPowerTable(): void {\n _bpTable = null;\n}\n"]}
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunkZH2PCJ4V_cjs = require('./chunk-ZH2PCJ4V.cjs');
3
+ var chunkMTX2KVU7_cjs = require('./chunk-MTX2KVU7.cjs');
4
4
  var chunkX6K3HUOY_cjs = require('./chunk-X6K3HUOY.cjs');
5
5
  var chunk5X2PTP6F_cjs = require('./chunk-5X2PTP6F.cjs');
6
- var chunk6NTVRDQV_cjs = require('./chunk-6NTVRDQV.cjs');
6
+ var chunkQDMPOAI7_cjs = require('./chunk-QDMPOAI7.cjs');
7
7
  var chunk47LRVGOT_cjs = require('./chunk-47LRVGOT.cjs');
8
- var chunkBOAVE4FC_cjs = require('./chunk-BOAVE4FC.cjs');
9
- var chunkEEJSQEHC_cjs = require('./chunk-EEJSQEHC.cjs');
10
- var chunkCGIDYRAX_cjs = require('./chunk-CGIDYRAX.cjs');
8
+ var chunkCSG5XVNJ_cjs = require('./chunk-CSG5XVNJ.cjs');
9
+ var chunkNZFKROS7_cjs = require('./chunk-NZFKROS7.cjs');
10
+ var chunkAHCLWAM5_cjs = require('./chunk-AHCLWAM5.cjs');
11
11
  var chunkZ2XP767T_cjs = require('./chunk-Z2XP767T.cjs');
12
- var chunkJ73SJHR3_cjs = require('./chunk-J73SJHR3.cjs');
13
- var chunkHTXVVJRA_cjs = require('./chunk-HTXVVJRA.cjs');
12
+ var chunkBXKJLM5R_cjs = require('./chunk-BXKJLM5R.cjs');
13
+ var chunk4CVLFLOB_cjs = require('./chunk-4CVLFLOB.cjs');
14
14
  var chunkOC6LTXYS_cjs = require('./chunk-OC6LTXYS.cjs');
15
- var chunkF7G7ZFIZ_cjs = require('./chunk-F7G7ZFIZ.cjs');
16
- var chunk7J2Q77OH_cjs = require('./chunk-7J2Q77OH.cjs');
17
- var chunk6BKTCEUP_cjs = require('./chunk-6BKTCEUP.cjs');
15
+ var chunkAZUA3F4I_cjs = require('./chunk-AZUA3F4I.cjs');
16
+ var chunkWWOLFXTX_cjs = require('./chunk-WWOLFXTX.cjs');
17
+ var chunkTY3TLZAW_cjs = require('./chunk-TY3TLZAW.cjs');
18
18
  var chunkM4N5GA5Z_cjs = require('./chunk-M4N5GA5Z.cjs');
19
19
  var chunkB7LXJ6LC_cjs = require('./chunk-B7LXJ6LC.cjs');
20
20
 
@@ -2203,7 +2203,7 @@ function checkPackageCompatibility(candidate, existing) {
2203
2203
 
2204
2204
  // src/api/EngineVersionCompatibility.ts
2205
2205
  var import_semver = chunkB7LXJ6LC_cjs.__toESM(require_semver2(), 1);
2206
- function checkEngineVersionCompatibility(pkg, engineVersion = chunkF7G7ZFIZ_cjs.ENGINE_VERSION) {
2206
+ function checkEngineVersionCompatibility(pkg, engineVersion = chunkAZUA3F4I_cjs.ENGINE_VERSION) {
2207
2207
  if (!pkg.engineVersion) return { compatible: true };
2208
2208
  if ((0, import_semver.validRange)(pkg.engineVersion) === null) {
2209
2209
  return { compatible: false, reason: "invalid-range", declaredRange: pkg.engineVersion, engineVersion };
@@ -2214,7 +2214,7 @@ function checkEngineVersionCompatibility(pkg, engineVersion = chunkF7G7ZFIZ_cjs.
2214
2214
  }
2215
2215
  return { compatible: true };
2216
2216
  }
2217
- function assertEngineVersionCompatible(pkg, engineVersion = chunkF7G7ZFIZ_cjs.ENGINE_VERSION) {
2217
+ function assertEngineVersionCompatible(pkg, engineVersion = chunkAZUA3F4I_cjs.ENGINE_VERSION) {
2218
2218
  const result = checkEngineVersionCompatibility(pkg, engineVersion);
2219
2219
  if (result.compatible) return;
2220
2220
  if (result.reason === "invalid-range") {
@@ -2251,7 +2251,7 @@ function getCompileEngine() {
2251
2251
  var executeVm = null;
2252
2252
  function getExecuteVm() {
2253
2253
  if (!executeVm) {
2254
- executeVm = chunk6NTVRDQV_cjs.createVM(chunkJ73SJHR3_cjs.sharedOpRegistry, 200, 5e4);
2254
+ executeVm = chunkQDMPOAI7_cjs.createVM(chunkBXKJLM5R_cjs.sharedOpRegistry, 200, 5e4);
2255
2255
  }
2256
2256
  return executeVm;
2257
2257
  }
@@ -2323,7 +2323,7 @@ function executeOne(item) {
2323
2323
  const numbers = new Float64Array(item.numbersBuffer, 0, item.numbersLength);
2324
2324
  const bytecode = { opcodes, numbers, strings: item.strings };
2325
2325
  try {
2326
- const result = chunk6NTVRDQV_cjs.executeBytecode(bytecode, vmm);
2326
+ const result = chunkQDMPOAI7_cjs.executeBytecode(bytecode, vmm);
2327
2327
  if (result.type === "pending") {
2328
2328
  return {
2329
2329
  lineNumber: item.lineNumber,
@@ -2987,7 +2987,7 @@ var _AsyncResolutionBatcher = class _AsyncResolutionBatcher {
2987
2987
  if (!entry || entry.bytecode.opcodes.length === 0) continue;
2988
2988
  const stackBefore = this.vm.getStack().length;
2989
2989
  try {
2990
- const result = chunk6NTVRDQV_cjs.executeBytecode(entry.bytecode, this.vm);
2990
+ const result = chunkQDMPOAI7_cjs.executeBytecode(entry.bytecode, this.vm);
2991
2991
  while (this.vm.getStack().length > stackBefore) {
2992
2992
  this.vm.pop();
2993
2993
  }
@@ -3293,7 +3293,7 @@ function extractReadsAndWrites(tokens) {
3293
3293
  const t = tokens[i];
3294
3294
  if (t.type === "GLOBAL") {
3295
3295
  if (i + 2 < tokens.length && tokens[i + 1].type === "COLON" && isVarName(tokens[i + 2])) {
3296
- const key = chunkJ73SJHR3_cjs.globalDagKey(tokens[i + 2].value);
3296
+ const key = chunkBXKJLM5R_cjs.globalDagKey(tokens[i + 2].value);
3297
3297
  reads.push(key);
3298
3298
  if (i + 3 < tokens.length && tokens[i + 3].type === "EQUALS") {
3299
3299
  writes.push(key);
@@ -3332,11 +3332,11 @@ function extractReadsAndWrites(tokens) {
3332
3332
  return { reads, writes };
3333
3333
  }
3334
3334
  function isEmptyLine(lineText) {
3335
- const classification = chunk7J2Q77OH_cjs.sharedLexer.classifyLine(lineText);
3335
+ const classification = chunkWWOLFXTX_cjs.sharedLexer.classifyLine(lineText);
3336
3336
  return classification.skip;
3337
3337
  }
3338
3338
  function findInlineSolvesInLine(lineText, lineNumber) {
3339
- const spans = chunk7J2Q77OH_cjs.sharedLexer.findInlineSolves(lineText);
3339
+ const spans = chunkWWOLFXTX_cjs.sharedLexer.findInlineSolves(lineText);
3340
3340
  return spans.map((s) => ({
3341
3341
  start: s.start,
3342
3342
  end: s.end,
@@ -3352,9 +3352,9 @@ var ExpressionEngine = class {
3352
3352
  //#region Constructor
3353
3353
  constructor(localeCode = "en", diagnosticMode = false, config, diagnosticPipeline, packages) {
3354
3354
  //#region Private Properties
3355
- this.dag = new chunk6NTVRDQV_cjs.DependencyGraph();
3355
+ this.dag = new chunkQDMPOAI7_cjs.DependencyGraph();
3356
3356
  this.lineCache = new LineCache();
3357
- this.scopeManager = new chunk6NTVRDQV_cjs.ScopeManager();
3357
+ this.scopeManager = new chunkQDMPOAI7_cjs.ScopeManager();
3358
3358
  /** Registry of async resolvers from registered packages. */
3359
3359
  this.resolverRegistry = new chunkX6K3HUOY_cjs.ResolverRegistry();
3360
3360
  /**
@@ -3410,20 +3410,20 @@ var ExpressionEngine = class {
3410
3410
  this.bytecodeCache = /* @__PURE__ */ new Map();
3411
3411
  // Pre-allocated BytecodeBuilder pool
3412
3412
  this.builderPool = [
3413
- new chunkEEJSQEHC_cjs.BytecodeBuilder(),
3414
- new chunkEEJSQEHC_cjs.BytecodeBuilder(),
3415
- new chunkEEJSQEHC_cjs.BytecodeBuilder(),
3416
- new chunkEEJSQEHC_cjs.BytecodeBuilder()
3413
+ new chunkNZFKROS7_cjs.BytecodeBuilder(),
3414
+ new chunkNZFKROS7_cjs.BytecodeBuilder(),
3415
+ new chunkNZFKROS7_cjs.BytecodeBuilder(),
3416
+ new chunkNZFKROS7_cjs.BytecodeBuilder()
3417
3417
  ];
3418
3418
  // Index into the builder pool, incremented modulo pool size.
3419
3419
  this.builderPoolIndex = 0;
3420
3420
  // Most recent pipeline telemetry, populated when AllocationTracker.isEnabled().
3421
3421
  this.lastTelemetry = null;
3422
3422
  this.localeCode = localeCode;
3423
- this.config = chunkF7G7ZFIZ_cjs.mergeEngineConfig(chunkF7G7ZFIZ_cjs.DEFAULT_CONFIG, config ?? {});
3424
- this.lexer = new chunk7J2Q77OH_cjs.Lexer(localeCode, chunk7J2Q77OH_cjs.buildTokenLookup(localeCode));
3425
- this.registry = new chunkZH2PCJ4V_cjs.ParseletRegistry();
3426
- this.context = chunkJ73SJHR3_cjs.createEngineContext();
3423
+ this.config = chunkAZUA3F4I_cjs.mergeEngineConfig(chunkAZUA3F4I_cjs.DEFAULT_CONFIG, config ?? {});
3424
+ this.lexer = new chunkWWOLFXTX_cjs.Lexer(localeCode, chunkWWOLFXTX_cjs.buildTokenLookup(localeCode));
3425
+ this.registry = new chunkMTX2KVU7_cjs.ParseletRegistry();
3426
+ this.context = chunkBXKJLM5R_cjs.createEngineContext();
3427
3427
  if (diagnosticPipeline) {
3428
3428
  this.diagnosticPipeline = diagnosticPipeline;
3429
3429
  } else if (diagnosticMode) {
@@ -3433,15 +3433,15 @@ var ExpressionEngine = class {
3433
3433
  } else {
3434
3434
  this.diagnosticPipeline = new chunk47LRVGOT_cjs.DiagnosticPipeline();
3435
3435
  }
3436
- this.normalizer = new chunkCGIDYRAX_cjs.TokenNormalizer();
3437
- for (const [phrase, tokenType] of Object.entries(chunkCGIDYRAX_cjs.BUILTIN_PHRASES)) {
3436
+ this.normalizer = new chunkAHCLWAM5_cjs.TokenNormalizer();
3437
+ for (const [phrase, tokenType] of Object.entries(chunkAHCLWAM5_cjs.BUILTIN_PHRASES)) {
3438
3438
  this.normalizer.addPhrase(phrase, tokenType);
3439
3439
  }
3440
- this.normalizer.register(chunkCGIDYRAX_cjs.implicitMultiplyRule(
3440
+ this.normalizer.register(chunkAHCLWAM5_cjs.implicitMultiplyRule(
3441
3441
  50,
3442
3442
  (word) => this.normalizer.canStartPhrase(word)
3443
3443
  ));
3444
- const pkgList = packages ?? chunkBOAVE4FC_cjs.BUILTIN_PACKAGES;
3444
+ const pkgList = packages ?? chunkCSG5XVNJ_cjs.BUILTIN_PACKAGES;
3445
3445
  for (const pkg of pkgList) {
3446
3446
  try {
3447
3447
  this.registerPackage(pkg);
@@ -3452,8 +3452,8 @@ var ExpressionEngine = class {
3452
3452
  );
3453
3453
  }
3454
3454
  }
3455
- this.parser = new chunkZH2PCJ4V_cjs.PrecedenceParser(this.registry, this.config.validation.maxNestingDepth, localeCode);
3456
- this.vm = chunk6NTVRDQV_cjs.createVM(
3455
+ this.parser = new chunkMTX2KVU7_cjs.PrecedenceParser(this.registry, this.config.validation.maxNestingDepth, localeCode);
3456
+ this.vm = chunkQDMPOAI7_cjs.createVM(
3457
3457
  this.context.opRegistry,
3458
3458
  this.config.vm.maxStackDepth,
3459
3459
  this.config.vm.maxInstructions,
@@ -3624,7 +3624,7 @@ var ExpressionEngine = class {
3624
3624
  }
3625
3625
  if (pkg.tokenCategories) {
3626
3626
  for (const [tokenType, category] of Object.entries(pkg.tokenCategories)) {
3627
- chunk6BKTCEUP_cjs.registerTokenCategory(tokenType, category);
3627
+ chunkTY3TLZAW_cjs.registerTokenCategory(tokenType, category);
3628
3628
  contribution.tokenCategories.push(tokenType);
3629
3629
  }
3630
3630
  }
@@ -3633,7 +3633,7 @@ var ExpressionEngine = class {
3633
3633
  }
3634
3634
  if (pkg.asConverters) {
3635
3635
  for (const [name, handler] of Object.entries(pkg.asConverters)) {
3636
- chunkJ73SJHR3_cjs.registerAsConverter(name, handler);
3636
+ chunkBXKJLM5R_cjs.registerAsConverter(name, handler);
3637
3637
  contribution.asConverterNames.push(name);
3638
3638
  }
3639
3639
  }
@@ -3677,13 +3677,13 @@ var ExpressionEngine = class {
3677
3677
  this.resolverRegistry.unregister(namespace);
3678
3678
  }
3679
3679
  for (const tokenType of contribution.tokenCategories) {
3680
- chunk6BKTCEUP_cjs.unregisterTokenCategory(tokenType);
3680
+ chunkTY3TLZAW_cjs.unregisterTokenCategory(tokenType);
3681
3681
  }
3682
3682
  if (contribution.lexerVocabulary) {
3683
3683
  this.lexer.unregisterVocabulary(contribution.lexerVocabulary);
3684
3684
  }
3685
3685
  for (const name of contribution.asConverterNames) {
3686
- chunkJ73SJHR3_cjs.unregisterAsConverter(name);
3686
+ chunkBXKJLM5R_cjs.unregisterAsConverter(name);
3687
3687
  }
3688
3688
  this.packageCompletionItems.delete(packageName);
3689
3689
  this.packageContributions.delete(packageName);
@@ -3755,7 +3755,7 @@ var ExpressionEngine = class {
3755
3755
  controller.abort();
3756
3756
  };
3757
3757
  chunkZ2XP767T_cjs.setActiveQueryClient(this.queryClient);
3758
- const result = chunk6NTVRDQV_cjs.executeBytecode(program, this.vm, tracePipeline, traceExpression, this.makeLineContext(lineNumber));
3758
+ const result = chunkQDMPOAI7_cjs.executeBytecode(program, this.vm, tracePipeline, traceExpression, this.makeLineContext(lineNumber));
3759
3759
  while (this.vm.getStack().length > stackBefore) {
3760
3760
  this.vm.pop();
3761
3761
  }
@@ -3806,7 +3806,7 @@ var ExpressionEngine = class {
3806
3806
  controller.abort();
3807
3807
  };
3808
3808
  chunkZ2XP767T_cjs.setActiveQueryClient(this.queryClient);
3809
- const result = chunk6NTVRDQV_cjs.executeBytecode(program, this.vm, void 0, void 0, this.makeLineContext(lineNumber));
3809
+ const result = chunkQDMPOAI7_cjs.executeBytecode(program, this.vm, void 0, void 0, this.makeLineContext(lineNumber));
3810
3810
  while (this.vm.getStack().length > stackBefore) {
3811
3811
  this.vm.pop();
3812
3812
  }
@@ -4048,7 +4048,7 @@ var ExpressionEngine = class {
4048
4048
  * (this grammar is rare, a per-call allocation here is a non-issue).
4049
4049
  */
4050
4050
  compileAdHoc(tokens) {
4051
- const builder = new chunkEEJSQEHC_cjs.BytecodeBuilder();
4051
+ const builder = new chunkNZFKROS7_cjs.BytecodeBuilder();
4052
4052
  this.parseExpression(builder, tokens);
4053
4053
  return builder.build();
4054
4054
  }
@@ -4063,7 +4063,7 @@ var ExpressionEngine = class {
4063
4063
  * names, which ordinary evaluation deliberately never allows.
4064
4064
  */
4065
4065
  executeSymbolicTolerant(program) {
4066
- const result = chunk6NTVRDQV_cjs.executeBytecode(program, this.vm, void 0, void 0, void 0, true);
4066
+ const result = chunkQDMPOAI7_cjs.executeBytecode(program, this.vm, void 0, void 0, void 0, true);
4067
4067
  if (result.type === "error") throw result.error;
4068
4068
  if (result.type === "pending") {
4069
4069
  throw chunkM4N5GA5Z_cjs.ErrorFactory.execution(
@@ -4140,11 +4140,11 @@ var ExpressionEngine = class {
4140
4140
  }
4141
4141
  let combined = factorValues[0].value;
4142
4142
  for (let i = 1; i < factorValues.length; i++) {
4143
- const product = chunkHTXVVJRA_cjs.matrixMultiply(combined, factorValues[i].value);
4143
+ const product = chunk4CVLFLOB_cjs.matrixMultiply(combined, factorValues[i].value);
4144
4144
  if (product.type === 13 /* Error */) return product;
4145
4145
  combined = product.value;
4146
4146
  }
4147
- const inv = chunkHTXVVJRA_cjs.inverse(combined);
4147
+ const inv = chunk4CVLFLOB_cjs.inverse(combined);
4148
4148
  if (inv.type === 13 /* Error */) return inv;
4149
4149
  const rhsValue = this.executeSymbolicTolerant(equation.rhsProgram);
4150
4150
  if (rhsValue.type !== 7 /* Matrix */) {
@@ -4153,7 +4153,7 @@ var ExpressionEngine = class {
4153
4153
  `Cannot solve for "${equation.variable}": the right-hand side must be a Matrix.`
4154
4154
  );
4155
4155
  }
4156
- return chunkHTXVVJRA_cjs.matrixMultiply(inv.value, rhsValue.value);
4156
+ return chunk4CVLFLOB_cjs.matrixMultiply(inv.value, rhsValue.value);
4157
4157
  }
4158
4158
  /**
4159
4159
  * Detects and handles this session's two new symbolic-algebra grammar
@@ -4209,7 +4209,7 @@ var ExpressionEngine = class {
4209
4209
  }
4210
4210
  return this.simplifySymbolically(beforeTokens);
4211
4211
  }
4212
- if (chunkBOAVE4FC_cjs.containsSymbolicCall(normalizedTokens)) {
4212
+ if (chunkCSG5XVNJ_cjs.containsSymbolicCall(normalizedTokens)) {
4213
4213
  return this.simplifySymbolically(normalizedTokens);
4214
4214
  }
4215
4215
  if (normalizedTokens[0].type === "COLON" || normalizedTokens[0].type === "GLOBAL") return null;
@@ -4310,7 +4310,7 @@ var ExpressionEngine = class {
4310
4310
  solveScalarEquation(equation) {
4311
4311
  const lhs = this.executeSymbolicTolerant(equation.lhsProgram);
4312
4312
  const rhs = this.executeSymbolicTolerant(equation.rhsProgram);
4313
- return chunkJ73SJHR3_cjs.solveEquationValues(lhs, rhs, equation.variable);
4313
+ return chunkBXKJLM5R_cjs.solveEquationValues(lhs, rhs, equation.variable);
4314
4314
  }
4315
4315
  //#endregion
4316
4316
  /**
@@ -6692,7 +6692,7 @@ var PageManager = class _PageManager {
6692
6692
  });
6693
6693
  }
6694
6694
  } else {
6695
- const inlineSpans = chunk7J2Q77OH_cjs.sharedLexer.findInlineSolves(state.text);
6695
+ const inlineSpans = chunkWWOLFXTX_cjs.sharedLexer.findInlineSolves(state.text);
6696
6696
  if (inlineSpans.length > 0) {
6697
6697
  for (const span of inlineSpans) {
6698
6698
  if (!span.expression.trim()) continue;
@@ -6798,8 +6798,8 @@ var ThreeTierEvaluator = class {
6798
6798
  this.checkpointer = checkpointer ?? null;
6799
6799
  this.pageManager = new PageManager();
6800
6800
  this.engine.setDocumentModel(this.doc);
6801
- this.globalUnsubscribe = chunkJ73SJHR3_cjs.sharedGlobalVariableStore.subscribe((name) => {
6802
- for (const lineNumber of this.dag.getAffectedLines(chunkJ73SJHR3_cjs.globalDagKey(name))) {
6801
+ this.globalUnsubscribe = chunkBXKJLM5R_cjs.sharedGlobalVariableStore.subscribe((name) => {
6802
+ for (const lineNumber of this.dag.getAffectedLines(chunkBXKJLM5R_cjs.globalDagKey(name))) {
6803
6803
  this.doc.markDirtyByLineNumber(lineNumber);
6804
6804
  }
6805
6805
  });
@@ -7458,7 +7458,7 @@ var ThreeTierEvaluator = class {
7458
7458
  }
7459
7459
  const trimmed = state.text.trim();
7460
7460
  if (trimmed.length === 0) return { expressions: [], inlineSolveCount: 0 };
7461
- const inlineSpans = chunk7J2Q77OH_cjs.sharedLexer.findInlineSolves(state.text);
7461
+ const inlineSpans = chunkWWOLFXTX_cjs.sharedLexer.findInlineSolves(state.text);
7462
7462
  if (inlineSpans.length > 0) {
7463
7463
  return {
7464
7464
  expressions: inlineSpans.map((s) => s.expression),
@@ -7482,5 +7482,5 @@ exports.checkPackageCompatibility = checkPackageCompatibility;
7482
7482
  exports.extractReadsAndWrites = extractReadsAndWrites;
7483
7483
  exports.findInlineSolvesInLine = findInlineSolvesInLine;
7484
7484
  exports.isEmptyLine = isEmptyLine;
7485
- //# sourceMappingURL=chunk-PG2K5BL6.cjs.map
7486
- //# sourceMappingURL=chunk-PG2K5BL6.cjs.map
7485
+ //# sourceMappingURL=chunk-73GSBGUU.cjs.map
7486
+ //# sourceMappingURL=chunk-73GSBGUU.cjs.map