@ricsam/formula-engine 0.0.3 → 0.0.4

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 (377) hide show
  1. package/dist/cjs/core/engine.cjs +12 -8
  2. package/dist/cjs/core/engine.cjs.map +3 -3
  3. package/dist/cjs/core/managers/dependency-manager.cjs +8 -8
  4. package/dist/cjs/core/managers/dependency-manager.cjs.map +3 -3
  5. package/dist/cjs/core/managers/evaluation-manager.cjs +10 -10
  6. package/dist/cjs/core/managers/evaluation-manager.cjs.map +2 -2
  7. package/dist/cjs/core/managers/frontier-dependency-manager.cjs.map +1 -1
  8. package/dist/cjs/core/managers/isDependencyNode.cjs +6 -6
  9. package/dist/cjs/core/managers/isDependencyNode.cjs.map +2 -2
  10. package/dist/cjs/core/managers/named-expression-manager.cjs.map +1 -1
  11. package/dist/cjs/core/managers/range-eval-order-builder.cjs +2 -2
  12. package/dist/cjs/core/managers/range-eval-order-builder.cjs.map +3 -3
  13. package/dist/cjs/core/managers/workbook-manager.cjs +3 -3
  14. package/dist/cjs/core/managers/workbook-manager.cjs.map +2 -2
  15. package/dist/cjs/core/types.cjs.map +2 -2
  16. package/dist/cjs/core/utils.cjs +2 -2
  17. package/dist/cjs/core/utils.cjs.map +2 -2
  18. package/dist/cjs/evaluator/arithmetic/add/add.cjs +2 -2
  19. package/dist/cjs/evaluator/arithmetic/add/add.cjs.map +2 -2
  20. package/dist/cjs/evaluator/arithmetic/divide/divide.cjs +2 -2
  21. package/dist/cjs/evaluator/arithmetic/divide/divide.cjs.map +2 -2
  22. package/dist/cjs/evaluator/arithmetic/multiply/multiply.cjs +2 -2
  23. package/dist/cjs/evaluator/arithmetic/multiply/multiply.cjs.map +2 -2
  24. package/dist/cjs/evaluator/arithmetic/power/power.cjs +2 -2
  25. package/dist/cjs/evaluator/arithmetic/power/power.cjs.map +2 -2
  26. package/dist/cjs/evaluator/arithmetic/subtract/subtract.cjs +2 -2
  27. package/dist/cjs/evaluator/arithmetic/subtract/subtract.cjs.map +2 -2
  28. package/dist/cjs/evaluator/comparison/equals.cjs.map +1 -1
  29. package/dist/cjs/evaluator/comparison/greater-than-or-equal.cjs +2 -2
  30. package/dist/cjs/evaluator/comparison/greater-than-or-equal.cjs.map +2 -2
  31. package/dist/cjs/evaluator/comparison/greater-than.cjs +2 -2
  32. package/dist/cjs/evaluator/comparison/greater-than.cjs.map +2 -2
  33. package/dist/cjs/evaluator/comparison/less-than-or-equal.cjs +2 -2
  34. package/dist/cjs/evaluator/comparison/less-than-or-equal.cjs.map +2 -2
  35. package/dist/cjs/evaluator/comparison/less-than.cjs +2 -2
  36. package/dist/cjs/evaluator/comparison/less-than.cjs.map +2 -2
  37. package/dist/cjs/evaluator/comparison/not-equals.cjs +2 -2
  38. package/dist/cjs/evaluator/comparison/not-equals.cjs.map +2 -2
  39. package/dist/cjs/evaluator/concatenation/concatenate.cjs +2 -2
  40. package/dist/cjs/evaluator/concatenation/concatenate.cjs.map +2 -2
  41. package/dist/cjs/evaluator/dependency-nodes/ast-evaluation-node.cjs +2 -2
  42. package/dist/cjs/evaluator/dependency-nodes/ast-evaluation-node.cjs.map +2 -2
  43. package/dist/cjs/evaluator/dependency-nodes/base-eval-node.cjs.map +2 -2
  44. package/dist/cjs/evaluator/dependency-nodes/cell-value-node.cjs +2 -2
  45. package/dist/cjs/evaluator/dependency-nodes/cell-value-node.cjs.map +2 -2
  46. package/dist/cjs/evaluator/dependency-nodes/empty-cell-evaluation-node.cjs +3 -3
  47. package/dist/cjs/evaluator/dependency-nodes/empty-cell-evaluation-node.cjs.map +2 -2
  48. package/dist/cjs/evaluator/dependency-nodes/spill-meta-node.cjs +2 -2
  49. package/dist/cjs/evaluator/dependency-nodes/spill-meta-node.cjs.map +2 -2
  50. package/dist/cjs/evaluator/evaluate-scalar-operator.cjs.map +1 -1
  51. package/dist/cjs/evaluator/evaluation-context.cjs.map +2 -2
  52. package/dist/cjs/evaluator/evaluation-error.cjs.map +1 -1
  53. package/dist/cjs/evaluator/formula-evaluator.cjs +5 -5
  54. package/dist/cjs/evaluator/formula-evaluator.cjs.map +3 -3
  55. package/dist/cjs/evaluator/range-evaluation-node.cjs +3 -3
  56. package/dist/cjs/evaluator/range-evaluation-node.cjs.map +2 -2
  57. package/dist/cjs/functions/_template/template.cjs.map +1 -1
  58. package/dist/cjs/functions/array/sequence/sequence.cjs +4 -4
  59. package/dist/cjs/functions/array/sequence/sequence.cjs.map +2 -2
  60. package/dist/cjs/functions/criteria-parser.cjs.map +1 -1
  61. package/dist/cjs/functions/criteria-utils.cjs +4 -4
  62. package/dist/cjs/functions/criteria-utils.cjs.map +3 -3
  63. package/dist/cjs/functions/function-utils.cjs.map +1 -1
  64. package/dist/cjs/functions/index.cjs.map +1 -1
  65. package/dist/cjs/functions/information/cell/cell.cjs +3 -3
  66. package/dist/cjs/functions/information/cell/cell.cjs.map +2 -2
  67. package/dist/cjs/functions/information/column/column.cjs +4 -4
  68. package/dist/cjs/functions/information/column/column.cjs.map +2 -2
  69. package/dist/cjs/functions/information/row/row.cjs +4 -4
  70. package/dist/cjs/functions/information/row/row.cjs.map +2 -2
  71. package/dist/cjs/functions/logical/and/and.cjs +2 -2
  72. package/dist/cjs/functions/logical/and/and.cjs.map +2 -2
  73. package/dist/cjs/functions/logical/if/if.cjs +2 -2
  74. package/dist/cjs/functions/logical/if/if.cjs.map +3 -3
  75. package/dist/cjs/functions/logical/iferror/iferror.cjs +3 -3
  76. package/dist/cjs/functions/logical/iferror/iferror.cjs.map +2 -2
  77. package/dist/cjs/functions/logical/or/or.cjs +2 -2
  78. package/dist/cjs/functions/logical/or/or.cjs.map +2 -2
  79. package/dist/cjs/functions/lookup/count/count-utils.cjs.map +1 -1
  80. package/dist/cjs/functions/lookup/count/count.cjs +2 -2
  81. package/dist/cjs/functions/lookup/count/count.cjs.map +2 -2
  82. package/dist/cjs/functions/lookup/count/countif.cjs +2 -2
  83. package/dist/cjs/functions/lookup/count/countif.cjs.map +2 -2
  84. package/dist/cjs/functions/lookup/count/countifs.cjs.map +1 -1
  85. package/dist/cjs/functions/lookup/index-lookup/index-lookup.cjs +2 -2
  86. package/dist/cjs/functions/lookup/index-lookup/index-lookup.cjs.map +2 -2
  87. package/dist/cjs/functions/lookup/match/match.cjs +2 -2
  88. package/dist/cjs/functions/lookup/match/match.cjs.map +2 -2
  89. package/dist/cjs/functions/lookup/xlookup/xlookup.cjs +2 -2
  90. package/dist/cjs/functions/lookup/xlookup/xlookup.cjs.map +2 -2
  91. package/dist/cjs/functions/math/average/average-utils.cjs +2 -2
  92. package/dist/cjs/functions/math/average/average-utils.cjs.map +2 -2
  93. package/dist/cjs/functions/math/average/average.cjs +2 -2
  94. package/dist/cjs/functions/math/average/average.cjs.map +2 -2
  95. package/dist/cjs/functions/math/average/averageif.cjs +3 -3
  96. package/dist/cjs/functions/math/average/averageif.cjs.map +3 -3
  97. package/dist/cjs/functions/math/average/averageifs.cjs.map +2 -2
  98. package/dist/cjs/functions/math/ceiling/ceiling.cjs +2 -2
  99. package/dist/cjs/functions/math/ceiling/ceiling.cjs.map +3 -3
  100. package/dist/cjs/functions/math/max/max-utils.cjs +2 -2
  101. package/dist/cjs/functions/math/max/max-utils.cjs.map +2 -2
  102. package/dist/cjs/functions/math/max/max.cjs +2 -2
  103. package/dist/cjs/functions/math/max/max.cjs.map +2 -2
  104. package/dist/cjs/functions/math/max/maxif.cjs +2 -2
  105. package/dist/cjs/functions/math/max/maxif.cjs.map +2 -2
  106. package/dist/cjs/functions/math/max/maxifs.cjs.map +2 -2
  107. package/dist/cjs/functions/math/min/min-utils.cjs +2 -2
  108. package/dist/cjs/functions/math/min/min-utils.cjs.map +2 -2
  109. package/dist/cjs/functions/math/min/min.cjs +2 -2
  110. package/dist/cjs/functions/math/min/min.cjs.map +3 -3
  111. package/dist/cjs/functions/math/min/minif.cjs +2 -2
  112. package/dist/cjs/functions/math/min/minif.cjs.map +2 -2
  113. package/dist/cjs/functions/math/min/minifs.cjs.map +2 -2
  114. package/dist/cjs/functions/math/sum/sum.cjs +2 -2
  115. package/dist/cjs/functions/math/sum/sum.cjs.map +2 -2
  116. package/dist/cjs/functions/math/sum/sumif.cjs +2 -2
  117. package/dist/cjs/functions/math/sum/sumif.cjs.map +2 -2
  118. package/dist/cjs/functions/math/sum/sumifs.cjs.map +2 -2
  119. package/dist/cjs/functions/math/sum/summation-utils.cjs.map +1 -1
  120. package/dist/cjs/functions/reference/address/address.cjs +2 -2
  121. package/dist/cjs/functions/reference/address/address.cjs.map +2 -2
  122. package/dist/cjs/functions/reference/indirect/indirect.cjs +3 -3
  123. package/dist/cjs/functions/reference/indirect/indirect.cjs.map +3 -3
  124. package/dist/cjs/functions/reference/offset/offset.cjs +3 -3
  125. package/dist/cjs/functions/reference/offset/offset.cjs.map +2 -2
  126. package/dist/cjs/functions/text/concatenate/concatenate.cjs +2 -2
  127. package/dist/cjs/functions/text/concatenate/concatenate.cjs.map +2 -2
  128. package/dist/cjs/functions/text/exact/exact.cjs +2 -2
  129. package/dist/cjs/functions/text/exact/exact.cjs.map +2 -2
  130. package/dist/cjs/functions/text/find/find.cjs +2 -2
  131. package/dist/cjs/functions/text/find/find.cjs.map +3 -3
  132. package/dist/cjs/functions/text/left/left.cjs +2 -2
  133. package/dist/cjs/functions/text/left/left.cjs.map +2 -2
  134. package/dist/cjs/functions/text/len/len.cjs +2 -2
  135. package/dist/cjs/functions/text/len/len.cjs.map +3 -3
  136. package/dist/cjs/functions/text/mid/mid.cjs +2 -2
  137. package/dist/cjs/functions/text/mid/mid.cjs.map +2 -2
  138. package/dist/cjs/functions/text/right/right.cjs +2 -2
  139. package/dist/cjs/functions/text/right/right.cjs.map +3 -3
  140. package/dist/cjs/functions/text/text-helpers.cjs +2 -2
  141. package/dist/cjs/functions/text/text-helpers.cjs.map +2 -2
  142. package/dist/cjs/functions/text/textjoin/textjoin.cjs +2 -2
  143. package/dist/cjs/functions/text/textjoin/textjoin.cjs.map +3 -3
  144. package/dist/cjs/package.json +1 -1
  145. package/dist/cjs/parser/formatter.cjs +2 -2
  146. package/dist/cjs/parser/formatter.cjs.map +2 -2
  147. package/dist/mjs/core/engine.mjs +7 -9
  148. package/dist/mjs/core/engine.mjs.map +3 -3
  149. package/dist/mjs/core/managers/dependency-manager.mjs +8 -8
  150. package/dist/mjs/core/managers/dependency-manager.mjs.map +3 -3
  151. package/dist/mjs/core/managers/evaluation-manager.mjs +10 -10
  152. package/dist/mjs/core/managers/evaluation-manager.mjs.map +2 -2
  153. package/dist/mjs/core/managers/frontier-dependency-manager.mjs.map +1 -1
  154. package/dist/mjs/core/managers/isDependencyNode.mjs +6 -6
  155. package/dist/mjs/core/managers/isDependencyNode.mjs.map +2 -2
  156. package/dist/mjs/core/managers/named-expression-manager.mjs.map +1 -1
  157. package/dist/mjs/core/managers/range-eval-order-builder.mjs +2 -2
  158. package/dist/mjs/core/managers/range-eval-order-builder.mjs.map +3 -3
  159. package/dist/mjs/core/managers/workbook-manager.mjs +3 -3
  160. package/dist/mjs/core/managers/workbook-manager.mjs.map +2 -2
  161. package/dist/mjs/core/types.mjs.map +2 -2
  162. package/dist/mjs/core/utils.mjs +2 -2
  163. package/dist/mjs/core/utils.mjs.map +2 -2
  164. package/dist/mjs/evaluator/arithmetic/add/add.mjs +2 -2
  165. package/dist/mjs/evaluator/arithmetic/add/add.mjs.map +2 -2
  166. package/dist/mjs/evaluator/arithmetic/divide/divide.mjs +2 -2
  167. package/dist/mjs/evaluator/arithmetic/divide/divide.mjs.map +2 -2
  168. package/dist/mjs/evaluator/arithmetic/multiply/multiply.mjs +2 -2
  169. package/dist/mjs/evaluator/arithmetic/multiply/multiply.mjs.map +2 -2
  170. package/dist/mjs/evaluator/arithmetic/power/power.mjs +2 -2
  171. package/dist/mjs/evaluator/arithmetic/power/power.mjs.map +2 -2
  172. package/dist/mjs/evaluator/arithmetic/subtract/subtract.mjs +2 -2
  173. package/dist/mjs/evaluator/arithmetic/subtract/subtract.mjs.map +2 -2
  174. package/dist/mjs/evaluator/comparison/equals.mjs.map +1 -1
  175. package/dist/mjs/evaluator/comparison/greater-than-or-equal.mjs +2 -2
  176. package/dist/mjs/evaluator/comparison/greater-than-or-equal.mjs.map +2 -2
  177. package/dist/mjs/evaluator/comparison/greater-than.mjs +2 -2
  178. package/dist/mjs/evaluator/comparison/greater-than.mjs.map +2 -2
  179. package/dist/mjs/evaluator/comparison/less-than-or-equal.mjs +2 -2
  180. package/dist/mjs/evaluator/comparison/less-than-or-equal.mjs.map +2 -2
  181. package/dist/mjs/evaluator/comparison/less-than.mjs +2 -2
  182. package/dist/mjs/evaluator/comparison/less-than.mjs.map +2 -2
  183. package/dist/mjs/evaluator/comparison/not-equals.mjs +2 -2
  184. package/dist/mjs/evaluator/comparison/not-equals.mjs.map +2 -2
  185. package/dist/mjs/evaluator/concatenation/concatenate.mjs +2 -2
  186. package/dist/mjs/evaluator/concatenation/concatenate.mjs.map +2 -2
  187. package/dist/mjs/evaluator/dependency-nodes/ast-evaluation-node.mjs +2 -2
  188. package/dist/mjs/evaluator/dependency-nodes/ast-evaluation-node.mjs.map +2 -2
  189. package/dist/mjs/evaluator/dependency-nodes/base-eval-node.mjs.map +2 -2
  190. package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs +2 -2
  191. package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs.map +2 -2
  192. package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs +3 -3
  193. package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs.map +2 -2
  194. package/dist/mjs/evaluator/dependency-nodes/spill-meta-node.mjs +2 -2
  195. package/dist/mjs/evaluator/dependency-nodes/spill-meta-node.mjs.map +2 -2
  196. package/dist/mjs/evaluator/evaluate-scalar-operator.mjs.map +1 -1
  197. package/dist/mjs/evaluator/evaluation-context.mjs.map +2 -2
  198. package/dist/mjs/evaluator/evaluation-error.mjs.map +1 -1
  199. package/dist/mjs/evaluator/formula-evaluator.mjs +7 -7
  200. package/dist/mjs/evaluator/formula-evaluator.mjs.map +3 -3
  201. package/dist/mjs/evaluator/range-evaluation-node.mjs +3 -3
  202. package/dist/mjs/evaluator/range-evaluation-node.mjs.map +2 -2
  203. package/dist/mjs/functions/_template/template.mjs.map +1 -1
  204. package/dist/mjs/functions/array/sequence/sequence.mjs +4 -4
  205. package/dist/mjs/functions/array/sequence/sequence.mjs.map +2 -2
  206. package/dist/mjs/functions/criteria-parser.mjs.map +1 -1
  207. package/dist/mjs/functions/criteria-utils.mjs +8 -8
  208. package/dist/mjs/functions/criteria-utils.mjs.map +3 -3
  209. package/dist/mjs/functions/function-utils.mjs.map +1 -1
  210. package/dist/mjs/functions/index.mjs.map +1 -1
  211. package/dist/mjs/functions/information/cell/cell.mjs +3 -3
  212. package/dist/mjs/functions/information/cell/cell.mjs.map +2 -2
  213. package/dist/mjs/functions/information/column/column.mjs +4 -4
  214. package/dist/mjs/functions/information/column/column.mjs.map +2 -2
  215. package/dist/mjs/functions/information/row/row.mjs +4 -4
  216. package/dist/mjs/functions/information/row/row.mjs.map +2 -2
  217. package/dist/mjs/functions/logical/and/and.mjs +2 -2
  218. package/dist/mjs/functions/logical/and/and.mjs.map +2 -2
  219. package/dist/mjs/functions/logical/if/if.mjs +2 -2
  220. package/dist/mjs/functions/logical/if/if.mjs.map +3 -3
  221. package/dist/mjs/functions/logical/iferror/iferror.mjs +3 -3
  222. package/dist/mjs/functions/logical/iferror/iferror.mjs.map +2 -2
  223. package/dist/mjs/functions/logical/or/or.mjs +2 -2
  224. package/dist/mjs/functions/logical/or/or.mjs.map +2 -2
  225. package/dist/mjs/functions/lookup/count/count-utils.mjs.map +1 -1
  226. package/dist/mjs/functions/lookup/count/count.mjs +2 -2
  227. package/dist/mjs/functions/lookup/count/count.mjs.map +2 -2
  228. package/dist/mjs/functions/lookup/count/countif.mjs +2 -2
  229. package/dist/mjs/functions/lookup/count/countif.mjs.map +2 -2
  230. package/dist/mjs/functions/lookup/count/countifs.mjs.map +1 -1
  231. package/dist/mjs/functions/lookup/index-lookup/index-lookup.mjs +2 -2
  232. package/dist/mjs/functions/lookup/index-lookup/index-lookup.mjs.map +2 -2
  233. package/dist/mjs/functions/lookup/match/match.mjs +2 -2
  234. package/dist/mjs/functions/lookup/match/match.mjs.map +2 -2
  235. package/dist/mjs/functions/lookup/xlookup/xlookup.mjs +2 -2
  236. package/dist/mjs/functions/lookup/xlookup/xlookup.mjs.map +2 -2
  237. package/dist/mjs/functions/math/average/average-utils.mjs +2 -2
  238. package/dist/mjs/functions/math/average/average-utils.mjs.map +2 -2
  239. package/dist/mjs/functions/math/average/average.mjs +2 -2
  240. package/dist/mjs/functions/math/average/average.mjs.map +2 -2
  241. package/dist/mjs/functions/math/average/averageif.mjs +3 -3
  242. package/dist/mjs/functions/math/average/averageif.mjs.map +3 -3
  243. package/dist/mjs/functions/math/average/averageifs.mjs.map +2 -2
  244. package/dist/mjs/functions/math/ceiling/ceiling.mjs +2 -2
  245. package/dist/mjs/functions/math/ceiling/ceiling.mjs.map +3 -3
  246. package/dist/mjs/functions/math/max/max-utils.mjs +2 -2
  247. package/dist/mjs/functions/math/max/max-utils.mjs.map +2 -2
  248. package/dist/mjs/functions/math/max/max.mjs +2 -2
  249. package/dist/mjs/functions/math/max/max.mjs.map +2 -2
  250. package/dist/mjs/functions/math/max/maxif.mjs +2 -2
  251. package/dist/mjs/functions/math/max/maxif.mjs.map +2 -2
  252. package/dist/mjs/functions/math/max/maxifs.mjs.map +2 -2
  253. package/dist/mjs/functions/math/min/min-utils.mjs +2 -2
  254. package/dist/mjs/functions/math/min/min-utils.mjs.map +2 -2
  255. package/dist/mjs/functions/math/min/min.mjs +2 -2
  256. package/dist/mjs/functions/math/min/min.mjs.map +2 -2
  257. package/dist/mjs/functions/math/min/minif.mjs +2 -2
  258. package/dist/mjs/functions/math/min/minif.mjs.map +2 -2
  259. package/dist/mjs/functions/math/min/minifs.mjs.map +2 -2
  260. package/dist/mjs/functions/math/sum/sum.mjs +2 -2
  261. package/dist/mjs/functions/math/sum/sum.mjs.map +2 -2
  262. package/dist/mjs/functions/math/sum/sumif.mjs +2 -2
  263. package/dist/mjs/functions/math/sum/sumif.mjs.map +2 -2
  264. package/dist/mjs/functions/math/sum/sumifs.mjs.map +2 -2
  265. package/dist/mjs/functions/math/sum/summation-utils.mjs.map +1 -1
  266. package/dist/mjs/functions/reference/address/address.mjs +2 -2
  267. package/dist/mjs/functions/reference/address/address.mjs.map +2 -2
  268. package/dist/mjs/functions/reference/indirect/indirect.mjs +3 -3
  269. package/dist/mjs/functions/reference/indirect/indirect.mjs.map +3 -3
  270. package/dist/mjs/functions/reference/offset/offset.mjs +3 -3
  271. package/dist/mjs/functions/reference/offset/offset.mjs.map +2 -2
  272. package/dist/mjs/functions/text/concatenate/concatenate.mjs +2 -2
  273. package/dist/mjs/functions/text/concatenate/concatenate.mjs.map +2 -2
  274. package/dist/mjs/functions/text/exact/exact.mjs +2 -2
  275. package/dist/mjs/functions/text/exact/exact.mjs.map +2 -2
  276. package/dist/mjs/functions/text/find/find.mjs +2 -2
  277. package/dist/mjs/functions/text/find/find.mjs.map +3 -3
  278. package/dist/mjs/functions/text/left/left.mjs +3 -3
  279. package/dist/mjs/functions/text/left/left.mjs.map +2 -2
  280. package/dist/mjs/functions/text/len/len.mjs +2 -2
  281. package/dist/mjs/functions/text/len/len.mjs.map +3 -3
  282. package/dist/mjs/functions/text/mid/mid.mjs +3 -3
  283. package/dist/mjs/functions/text/mid/mid.mjs.map +2 -2
  284. package/dist/mjs/functions/text/right/right.mjs +4 -4
  285. package/dist/mjs/functions/text/right/right.mjs.map +3 -3
  286. package/dist/mjs/functions/text/text-helpers.mjs +2 -2
  287. package/dist/mjs/functions/text/text-helpers.mjs.map +2 -2
  288. package/dist/mjs/functions/text/textjoin/textjoin.mjs +2 -2
  289. package/dist/mjs/functions/text/textjoin/textjoin.mjs.map +3 -3
  290. package/dist/mjs/package.json +1 -1
  291. package/dist/mjs/parser/formatter.mjs +2 -2
  292. package/dist/mjs/parser/formatter.mjs.map +2 -2
  293. package/dist/types/core/engine.d.ts +5 -1
  294. package/dist/types/core/managers/dependency-manager.d.ts +7 -7
  295. package/dist/types/core/managers/dependency-node.d.ts +5 -5
  296. package/dist/types/core/managers/evaluation-manager.d.ts +4 -4
  297. package/dist/types/core/managers/frontier-dependency-manager.d.ts +2 -2
  298. package/dist/types/core/managers/named-expression-manager.d.ts +2 -2
  299. package/dist/types/core/managers/workbook-manager.d.ts +1 -1
  300. package/dist/types/core/types.d.ts +3 -3
  301. package/dist/types/evaluator/arithmetic/add/add.d.ts +1 -1
  302. package/dist/types/evaluator/arithmetic/divide/divide.d.ts +1 -1
  303. package/dist/types/evaluator/arithmetic/multiply/multiply.d.ts +1 -1
  304. package/dist/types/evaluator/arithmetic/power/power.d.ts +1 -1
  305. package/dist/types/evaluator/arithmetic/subtract/subtract.d.ts +1 -1
  306. package/dist/types/evaluator/comparison/equals.d.ts +1 -1
  307. package/dist/types/evaluator/comparison/greater-than-or-equal.d.ts +1 -1
  308. package/dist/types/evaluator/comparison/greater-than.d.ts +1 -1
  309. package/dist/types/evaluator/comparison/less-than-or-equal.d.ts +1 -1
  310. package/dist/types/evaluator/comparison/less-than.d.ts +1 -1
  311. package/dist/types/evaluator/comparison/not-equals.d.ts +1 -1
  312. package/dist/types/evaluator/concatenation/concatenate.d.ts +1 -1
  313. package/dist/types/evaluator/dependency-nodes/ast-evaluation-node.d.ts +2 -2
  314. package/dist/types/evaluator/dependency-nodes/base-eval-node.d.ts +1 -1
  315. package/dist/types/evaluator/dependency-nodes/cell-value-node.d.ts +1 -1
  316. package/dist/types/evaluator/dependency-nodes/empty-cell-evaluation-node.d.ts +4 -4
  317. package/dist/types/evaluator/dependency-nodes/spill-meta-node.d.ts +1 -1
  318. package/dist/types/evaluator/evaluate-scalar-operator.d.ts +1 -1
  319. package/dist/types/evaluator/evaluation-context.d.ts +3 -3
  320. package/dist/types/evaluator/evaluation-error.d.ts +2 -2
  321. package/dist/types/evaluator/formula-evaluator.d.ts +5 -5
  322. package/dist/types/evaluator/range-evaluation-node.d.ts +4 -4
  323. package/dist/types/functions/_template/template.d.ts +1 -1
  324. package/dist/types/functions/array/sequence/sequence.d.ts +1 -1
  325. package/dist/types/functions/criteria-parser.d.ts +1 -1
  326. package/dist/types/functions/criteria-utils.d.ts +5 -5
  327. package/dist/types/functions/function-utils.d.ts +5 -5
  328. package/dist/types/functions/index.d.ts +1 -1
  329. package/dist/types/functions/information/cell/cell.d.ts +1 -1
  330. package/dist/types/functions/information/column/column.d.ts +1 -1
  331. package/dist/types/functions/information/row/row.d.ts +1 -1
  332. package/dist/types/functions/logical/and/and.d.ts +1 -1
  333. package/dist/types/functions/logical/if/if.d.ts +1 -1
  334. package/dist/types/functions/logical/iferror/iferror.d.ts +1 -1
  335. package/dist/types/functions/logical/or/or.d.ts +1 -1
  336. package/dist/types/functions/lookup/count/count-utils.d.ts +2 -2
  337. package/dist/types/functions/lookup/count/count.d.ts +1 -1
  338. package/dist/types/functions/lookup/count/countif.d.ts +1 -1
  339. package/dist/types/functions/lookup/count/countifs.d.ts +1 -1
  340. package/dist/types/functions/lookup/index-lookup/index-lookup.d.ts +1 -1
  341. package/dist/types/functions/lookup/match/match.d.ts +1 -1
  342. package/dist/types/functions/lookup/xlookup/xlookup.d.ts +1 -1
  343. package/dist/types/functions/math/average/average-utils.d.ts +2 -2
  344. package/dist/types/functions/math/average/average.d.ts +1 -1
  345. package/dist/types/functions/math/average/averageif.d.ts +1 -1
  346. package/dist/types/functions/math/average/averageifs.d.ts +1 -1
  347. package/dist/types/functions/math/ceiling/ceiling.d.ts +1 -1
  348. package/dist/types/functions/math/max/max-utils.d.ts +2 -2
  349. package/dist/types/functions/math/max/max.d.ts +1 -1
  350. package/dist/types/functions/math/max/maxif.d.ts +1 -1
  351. package/dist/types/functions/math/max/maxifs.d.ts +1 -1
  352. package/dist/types/functions/math/min/min-utils.d.ts +2 -2
  353. package/dist/types/functions/math/min/min.d.ts +1 -1
  354. package/dist/types/functions/math/min/minif.d.ts +1 -1
  355. package/dist/types/functions/math/min/minifs.d.ts +1 -1
  356. package/dist/types/functions/math/sum/sum.d.ts +1 -1
  357. package/dist/types/functions/math/sum/sumif.d.ts +1 -1
  358. package/dist/types/functions/math/sum/sumifs.d.ts +1 -1
  359. package/dist/types/functions/math/sum/summation-utils.d.ts +1 -1
  360. package/dist/types/functions/reference/address/address.d.ts +1 -1
  361. package/dist/types/functions/reference/indirect/indirect.d.ts +1 -1
  362. package/dist/types/functions/reference/offset/offset.d.ts +1 -1
  363. package/dist/types/functions/text/concatenate/concatenate.d.ts +1 -1
  364. package/dist/types/functions/text/exact/exact.d.ts +1 -1
  365. package/dist/types/functions/text/find/find.d.ts +1 -1
  366. package/dist/types/functions/text/left/left.d.ts +1 -1
  367. package/dist/types/functions/text/len/len.d.ts +1 -1
  368. package/dist/types/functions/text/mid/mid.d.ts +1 -1
  369. package/dist/types/functions/text/right/right.d.ts +1 -1
  370. package/dist/types/functions/text/text-helpers.d.ts +3 -3
  371. package/dist/types/functions/text/textjoin/textjoin.d.ts +1 -1
  372. package/package.json +1 -1
  373. package/dist/cjs/core/managers/index.cjs +0 -49
  374. package/dist/cjs/core/managers/index.cjs.map +0 -10
  375. package/dist/mjs/core/managers/index.mjs +0 -21
  376. package/dist/mjs/core/managers/index.mjs.map +0 -10
  377. package/dist/types/core/managers/index.d.ts +0 -7
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/arithmetic/add/add.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../../core/types.mjs";
3
3
  var add = (left, right, context) => {
4
4
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
5
5
  return {
@@ -49,4 +49,4 @@ export {
49
49
  add
50
50
  };
51
51
 
52
- //# debugId=57B591616CA184D264756E2164756E21
52
+ //# debugId=401FA3E8F24F107664756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/evaluator/arithmetic/add/add.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\nexport const add: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if (\n (left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")\n ) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot add ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n // Both infinity\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n if (left.sign === right.sign) {\n // +∞ + +∞ = +∞, -∞ + -∞ = -∞\n return { type: \"infinity\", sign: left.sign };\n } else {\n // +∞ + -∞ = NaN (undefined behavior)\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot add positive and negative infinity\",\n errAddress: context.dependencyNode,\n };\n }\n }\n\n // One infinity, one number: infinity dominates\n if (left.type === \"infinity\" && right.type === \"number\") {\n return { type: \"infinity\", sign: left.sign };\n } else if (right.type === \"infinity\" && left.type === \"number\") {\n return { type: \"infinity\", sign: right.sign };\n }\n }\n\n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n const result = left.value + right.value;\n\n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n\n return { type: \"number\", value: result };\n }\n\n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot add ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../../core/types.mjs\";\nimport { FormulaError } from \"../../../core/types.mjs\";\n\nexport const add: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if (\n (left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")\n ) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot add ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n // Both infinity\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n if (left.sign === right.sign) {\n // +∞ + +∞ = +∞, -∞ + -∞ = -∞\n return { type: \"infinity\", sign: left.sign };\n } else {\n // +∞ + -∞ = NaN (undefined behavior)\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot add positive and negative infinity\",\n errAddress: context.dependencyNode,\n };\n }\n }\n\n // One infinity, one number: infinity dominates\n if (left.type === \"infinity\" && right.type === \"number\") {\n return { type: \"infinity\", sign: left.sign };\n } else if (right.type === \"infinity\" && left.type === \"number\") {\n return { type: \"infinity\", sign: right.sign };\n }\n }\n\n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n const result = left.value + right.value;\n\n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n\n return { type: \"number\", value: result };\n }\n\n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot add ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AAEO,IAAM,MAA2B,CAAC,MAAM,OAAO,YAAY;AAAA,EAEhE,IACG,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAC3C;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,cAAc,KAAK,YAAY,MAAM;AAAA,MAC9C,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,IAEzD,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,MACzD,IAAI,KAAK,SAAS,MAAM,MAAM;AAAA,QAE5B,OAAO,EAAE,MAAM,YAAY,MAAM,KAAK,KAAK;AAAA,MAC7C,EAAO;AAAA,QAEL,OAAO;AAAA,UACL,MAAM;AAAA,UACN,KAAK,aAAa;AAAA,UAClB,SAAS;AAAA,UACT,YAAY,QAAQ;AAAA,QACtB;AAAA;AAAA,IAEJ;AAAA,IAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,UAAU;AAAA,MACvD,OAAO,EAAE,MAAM,YAAY,MAAM,KAAK,KAAK;AAAA,IAC7C,EAAO,SAAI,MAAM,SAAS,cAAc,KAAK,SAAS,UAAU;AAAA,MAC9D,OAAO,EAAE,MAAM,YAAY,MAAM,MAAM,KAAK;AAAA,IAC9C;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,UAAU;AAAA,IACrD,MAAM,SAAS,KAAK,QAAQ,MAAM;AAAA,IAGlC,IAAI,WAAW,UAAU;AAAA,MACvB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IACA,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAEA,OAAO,EAAE,MAAM,UAAU,OAAO,OAAO;AAAA,EACzC;AAAA,EAGA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS,cAAc,KAAK,YAAY,MAAM;AAAA,IAC9C,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "57B591616CA184D264756E2164756E21",
8
+ "debugId": "401FA3E8F24F107664756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/arithmetic/divide/divide.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../../core/types.mjs";
3
3
  var divide = (left, right, context) => {
4
4
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
5
5
  return {
@@ -74,4 +74,4 @@ export {
74
74
  divide
75
75
  };
76
76
 
77
- //# debugId=3147263C3E0C663F64756E2164756E21
77
+ //# debugId=8621814E1648C93A64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/evaluator/arithmetic/divide/divide.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\nexport const divide: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if (\n (left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")\n ) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot divide ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n // Both infinity: ∞ / ∞ = indeterminate\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot divide infinity by infinity\",\n errAddress: context.dependencyNode,\n };\n }\n\n // Infinity divided by number: sign rules apply\n if (left.type === \"infinity\" && right.type === \"number\") {\n if (right.value === 0) {\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot divide infinity by zero\",\n errAddress: context.dependencyNode,\n };\n }\n\n if (right.value > 0) {\n return { type: \"infinity\", sign: left.sign };\n } else {\n const resultSign = left.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n }\n\n // Number divided by infinity: approaches zero\n if (left.type === \"number\" && right.type === \"infinity\") {\n return { type: \"number\", value: 0 };\n }\n }\n\n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n // Division by zero\n if (right.value === 0) {\n if (left.value === 0) {\n // 0 / 0 = indeterminate\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"0 / 0 is undefined\",\n errAddress: context.dependencyNode,\n };\n }\n\n // n / 0 = ±∞ depending on sign of n\n if (left.value > 0) {\n return { type: \"infinity\", sign: \"positive\" };\n } else {\n return { type: \"infinity\", sign: \"negative\" };\n }\n }\n\n const result = left.value / right.value;\n\n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n\n return { type: \"number\", value: result };\n }\n\n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot divide ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../../core/types.mjs\";\nimport { FormulaError } from \"../../../core/types.mjs\";\n\nexport const divide: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if (\n (left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")\n ) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot divide ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n // Both infinity: ∞ / ∞ = indeterminate\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot divide infinity by infinity\",\n errAddress: context.dependencyNode,\n };\n }\n\n // Infinity divided by number: sign rules apply\n if (left.type === \"infinity\" && right.type === \"number\") {\n if (right.value === 0) {\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot divide infinity by zero\",\n errAddress: context.dependencyNode,\n };\n }\n\n if (right.value > 0) {\n return { type: \"infinity\", sign: left.sign };\n } else {\n const resultSign = left.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n }\n\n // Number divided by infinity: approaches zero\n if (left.type === \"number\" && right.type === \"infinity\") {\n return { type: \"number\", value: 0 };\n }\n }\n\n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n // Division by zero\n if (right.value === 0) {\n if (left.value === 0) {\n // 0 / 0 = indeterminate\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"0 / 0 is undefined\",\n errAddress: context.dependencyNode,\n };\n }\n\n // n / 0 = ±∞ depending on sign of n\n if (left.value > 0) {\n return { type: \"infinity\", sign: \"positive\" };\n } else {\n return { type: \"infinity\", sign: \"negative\" };\n }\n }\n\n const result = left.value / right.value;\n\n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n\n return { type: \"number\", value: result };\n }\n\n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot divide ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AAEO,IAAM,SAA8B,CAAC,MAAM,OAAO,YAAY;AAAA,EAEnE,IACG,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAC3C;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,iBAAiB,KAAK,YAAY,MAAM;AAAA,MACjD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,IAEzD,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,MACzD,OAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK,aAAa;AAAA,QAClB,SAAS;AAAA,QACT,YAAY,QAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,UAAU;AAAA,MACvD,IAAI,MAAM,UAAU,GAAG;AAAA,QACrB,OAAO;AAAA,UACL,MAAM;AAAA,UACN,KAAK,aAAa;AAAA,UAClB,SAAS;AAAA,UACT,YAAY,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,MAEA,IAAI,MAAM,QAAQ,GAAG;AAAA,QACnB,OAAO,EAAE,MAAM,YAAY,MAAM,KAAK,KAAK;AAAA,MAC7C,EAAO;AAAA,QACL,MAAM,aAAa,KAAK,SAAS,aAAa,aAAa;AAAA,QAC3D,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA;AAAA,IAEhD;AAAA,IAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,YAAY;AAAA,MACvD,OAAO,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA,IACpC;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,UAAU;AAAA,IAErD,IAAI,MAAM,UAAU,GAAG;AAAA,MACrB,IAAI,KAAK,UAAU,GAAG;AAAA,QAEpB,OAAO;AAAA,UACL,MAAM;AAAA,UACN,KAAK,aAAa;AAAA,UAClB,SAAS;AAAA,UACT,YAAY,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,MAGA,IAAI,KAAK,QAAQ,GAAG;AAAA,QAClB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,MAC9C,EAAO;AAAA,QACL,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA;AAAA,IAEhD;AAAA,IAEA,MAAM,SAAS,KAAK,QAAQ,MAAM;AAAA,IAGlC,IAAI,WAAW,UAAU;AAAA,MACvB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IACA,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAEA,OAAO,EAAE,MAAM,UAAU,OAAO,OAAO;AAAA,EACzC;AAAA,EAGA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS,iBAAiB,KAAK,YAAY,MAAM;AAAA,IACjD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "3147263C3E0C663F64756E2164756E21",
8
+ "debugId": "8621814E1648C93A64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/arithmetic/multiply/multiply.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../../core/types.mjs";
3
3
  var multiply = (left, right, context) => {
4
4
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
5
5
  return {
@@ -60,4 +60,4 @@ export {
60
60
  multiply
61
61
  };
62
62
 
63
- //# debugId=E7E0C3547556EECC64756E2164756E21
63
+ //# debugId=EA38E3D4111668F664756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/evaluator/arithmetic/multiply/multiply.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\nexport const multiply: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot multiply ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n \n // Handle infinity * 0 = NaN (indeterminate)\n if ((left.type === \"infinity\" && right.type === \"number\" && right.value === 0) ||\n (left.type === \"number\" && left.value === 0 && right.type === \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot multiply infinity by zero\",\n errAddress: context.dependencyNode,\n };\n }\n \n // Both infinity: sign rules apply\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n const resultSign = left.sign === right.sign ? \"positive\" : \"negative\";\n return { type: \"infinity\", sign: resultSign };\n }\n \n // Infinity * number: determine sign based on number's sign\n if (left.type === \"infinity\" && right.type === \"number\") {\n if (right.value > 0) {\n return { type: \"infinity\", sign: left.sign };\n } else if (right.value < 0) {\n const resultSign = left.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n // right.value === 0 is handled above\n }\n \n // Number * infinity: determine sign based on number's sign\n if (left.type === \"number\" && right.type === \"infinity\") {\n if (left.value > 0) {\n return { type: \"infinity\", sign: right.sign };\n } else if (left.value < 0) {\n const resultSign = right.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n // left.value === 0 is handled above\n }\n }\n \n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n const result = left.value * right.value;\n \n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n \n return { type: \"number\", value: result };\n }\n \n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot multiply ${left.type} and ${right.type} /2`,\n errAddress: context.dependencyNode,\n };\n};"
5
+ "import type { ArethmeticEvaluator } from \"../../../core/types.mjs\";\nimport { FormulaError } from \"../../../core/types.mjs\";\n\nexport const multiply: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot multiply ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n \n // Handle infinity * 0 = NaN (indeterminate)\n if ((left.type === \"infinity\" && right.type === \"number\" && right.value === 0) ||\n (left.type === \"number\" && left.value === 0 && right.type === \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot multiply infinity by zero\",\n errAddress: context.dependencyNode,\n };\n }\n \n // Both infinity: sign rules apply\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n const resultSign = left.sign === right.sign ? \"positive\" : \"negative\";\n return { type: \"infinity\", sign: resultSign };\n }\n \n // Infinity * number: determine sign based on number's sign\n if (left.type === \"infinity\" && right.type === \"number\") {\n if (right.value > 0) {\n return { type: \"infinity\", sign: left.sign };\n } else if (right.value < 0) {\n const resultSign = left.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n // right.value === 0 is handled above\n }\n \n // Number * infinity: determine sign based on number's sign\n if (left.type === \"number\" && right.type === \"infinity\") {\n if (left.value > 0) {\n return { type: \"infinity\", sign: right.sign };\n } else if (left.value < 0) {\n const resultSign = right.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n // left.value === 0 is handled above\n }\n }\n \n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n const result = left.value * right.value;\n \n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n \n return { type: \"number\", value: result };\n }\n \n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot multiply ${left.type} and ${right.type} /2`,\n errAddress: context.dependencyNode,\n };\n};"
6
6
  ],
7
7
  "mappings": ";AACA;AAEO,IAAM,WAAgC,CAAC,MAAM,OAAO,YAAY;AAAA,EAErE,IAAK,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAAa;AAAA,IAC1D,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,mBAAmB,KAAK,YAAY,MAAM;AAAA,MACnD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,IAGzD,IAAK,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY,MAAM,UAAU,KACvE,KAAK,SAAS,YAAY,KAAK,UAAU,KAAK,MAAM,SAAS,YAAa;AAAA,MAC7E,OAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK,aAAa;AAAA,QAClB,SAAS;AAAA,QACT,YAAY,QAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,MACzD,MAAM,aAAa,KAAK,SAAS,MAAM,OAAO,aAAa;AAAA,MAC3D,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,UAAU;AAAA,MACvD,IAAI,MAAM,QAAQ,GAAG;AAAA,QACnB,OAAO,EAAE,MAAM,YAAY,MAAM,KAAK,KAAK;AAAA,MAC7C,EAAO,SAAI,MAAM,QAAQ,GAAG;AAAA,QAC1B,MAAM,aAAa,KAAK,SAAS,aAAa,aAAa;AAAA,QAC3D,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,MAC9C;AAAA,IAEF;AAAA,IAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,YAAY;AAAA,MACvD,IAAI,KAAK,QAAQ,GAAG;AAAA,QAClB,OAAO,EAAE,MAAM,YAAY,MAAM,MAAM,KAAK;AAAA,MAC9C,EAAO,SAAI,KAAK,QAAQ,GAAG;AAAA,QACzB,MAAM,aAAa,MAAM,SAAS,aAAa,aAAa;AAAA,QAC5D,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,MAC9C;AAAA,IAEF;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,UAAU;AAAA,IACrD,MAAM,SAAS,KAAK,QAAQ,MAAM;AAAA,IAGlC,IAAI,WAAW,UAAU;AAAA,MACvB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IACA,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAEA,OAAO,EAAE,MAAM,UAAU,OAAO,OAAO;AAAA,EACzC;AAAA,EAGA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS,mBAAmB,KAAK,YAAY,MAAM;AAAA,IACnD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "E7E0C3547556EECC64756E2164756E21",
8
+ "debugId": "EA38E3D4111668F664756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/arithmetic/power/power.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../../core/types.mjs";
3
3
  var power = (left, right, context) => {
4
4
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
5
5
  return {
@@ -92,4 +92,4 @@ export {
92
92
  power
93
93
  };
94
94
 
95
- //# debugId=73EB7E98B39E641064756E2164756E21
95
+ //# debugId=4ED5745BD313697964756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/evaluator/arithmetic/power/power.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\nexport const power: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot exponentiate ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n \n // Special cases for infinity exponentiation\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n // ∞^∞ = +∞ (mathematical convention)\n return { type: \"infinity\", sign: \"positive\" };\n }\n \n // Infinity raised to a power\n if (left.type === \"infinity\" && right.type === \"number\") {\n if (right.value === 0) {\n // ∞^0 = 1 (mathematical convention)\n return { type: \"number\", value: 1 };\n }\n \n if (right.value > 0) {\n // ∞^(positive) = ∞, (-∞)^(positive) depends on whether exponent is even/odd\n if (left.sign === \"positive\") {\n return { type: \"infinity\", sign: \"positive\" };\n } else {\n // For negative infinity, we need to check if exponent is integer and even/odd\n if (Number.isInteger(right.value)) {\n const isEven = right.value % 2 === 0;\n return { type: \"infinity\", sign: isEven ? \"positive\" : \"negative\" };\n } else {\n // Non-integer exponent with negative base is complex\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot raise negative infinity to non-integer power\",\n errAddress: context.dependencyNode,\n };\n }\n }\n } else {\n // ∞^(negative) = 0\n return { type: \"number\", value: 0 };\n }\n }\n \n // Number raised to infinity\n if (left.type === \"number\" && right.type === \"infinity\") {\n const absBase = Math.abs(left.value);\n \n if (absBase === 1) {\n // 1^∞ = 1, (-1)^∞ is indeterminate but we'll return 1\n return { type: \"number\", value: 1 };\n }\n \n if (absBase > 1) {\n if (right.sign === \"positive\") {\n // |base| > 1: base^(+∞) = +∞\n return { type: \"infinity\", sign: \"positive\" };\n } else {\n // |base| > 1: base^(-∞) = 0\n return { type: \"number\", value: 0 };\n }\n } else {\n // 0 < |base| < 1\n if (right.sign === \"positive\") {\n // 0 < |base| < 1: base^(+∞) = 0\n return { type: \"number\", value: 0 };\n } else {\n // 0 < |base| < 1: base^(-∞) = +∞\n return { type: \"infinity\", sign: \"positive\" };\n }\n }\n }\n }\n \n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n // Special cases\n if (left.value === 0 && right.value === 0) {\n // 0^0 is indeterminate, return 1 by convention\n return { type: \"number\", value: 1 };\n }\n \n if (left.value === 0 && right.value < 0) {\n // 0^(negative) = infinity\n return { type: \"infinity\", sign: \"positive\" };\n }\n \n if (left.value < 0 && !Number.isInteger(right.value)) {\n // Negative base with non-integer exponent produces complex numbers\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot raise negative number to non-integer power\",\n errAddress: context.dependencyNode,\n };\n }\n \n const result = Math.pow(left.value, right.value);\n \n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n \n return { type: \"number\", value: result };\n }\n \n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot exponentiate ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};"
5
+ "import type { ArethmeticEvaluator } from \"../../../core/types.mjs\";\nimport { FormulaError } from \"../../../core/types.mjs\";\n\nexport const power: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot exponentiate ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n \n // Special cases for infinity exponentiation\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n // ∞^∞ = +∞ (mathematical convention)\n return { type: \"infinity\", sign: \"positive\" };\n }\n \n // Infinity raised to a power\n if (left.type === \"infinity\" && right.type === \"number\") {\n if (right.value === 0) {\n // ∞^0 = 1 (mathematical convention)\n return { type: \"number\", value: 1 };\n }\n \n if (right.value > 0) {\n // ∞^(positive) = ∞, (-∞)^(positive) depends on whether exponent is even/odd\n if (left.sign === \"positive\") {\n return { type: \"infinity\", sign: \"positive\" };\n } else {\n // For negative infinity, we need to check if exponent is integer and even/odd\n if (Number.isInteger(right.value)) {\n const isEven = right.value % 2 === 0;\n return { type: \"infinity\", sign: isEven ? \"positive\" : \"negative\" };\n } else {\n // Non-integer exponent with negative base is complex\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot raise negative infinity to non-integer power\",\n errAddress: context.dependencyNode,\n };\n }\n }\n } else {\n // ∞^(negative) = 0\n return { type: \"number\", value: 0 };\n }\n }\n \n // Number raised to infinity\n if (left.type === \"number\" && right.type === \"infinity\") {\n const absBase = Math.abs(left.value);\n \n if (absBase === 1) {\n // 1^∞ = 1, (-1)^∞ is indeterminate but we'll return 1\n return { type: \"number\", value: 1 };\n }\n \n if (absBase > 1) {\n if (right.sign === \"positive\") {\n // |base| > 1: base^(+∞) = +∞\n return { type: \"infinity\", sign: \"positive\" };\n } else {\n // |base| > 1: base^(-∞) = 0\n return { type: \"number\", value: 0 };\n }\n } else {\n // 0 < |base| < 1\n if (right.sign === \"positive\") {\n // 0 < |base| < 1: base^(+∞) = 0\n return { type: \"number\", value: 0 };\n } else {\n // 0 < |base| < 1: base^(-∞) = +∞\n return { type: \"infinity\", sign: \"positive\" };\n }\n }\n }\n }\n \n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n // Special cases\n if (left.value === 0 && right.value === 0) {\n // 0^0 is indeterminate, return 1 by convention\n return { type: \"number\", value: 1 };\n }\n \n if (left.value === 0 && right.value < 0) {\n // 0^(negative) = infinity\n return { type: \"infinity\", sign: \"positive\" };\n }\n \n if (left.value < 0 && !Number.isInteger(right.value)) {\n // Negative base with non-integer exponent produces complex numbers\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot raise negative number to non-integer power\",\n errAddress: context.dependencyNode,\n };\n }\n \n const result = Math.pow(left.value, right.value);\n \n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n \n return { type: \"number\", value: result };\n }\n \n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot exponentiate ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};"
6
6
  ],
7
7
  "mappings": ";AACA;AAEO,IAAM,QAA6B,CAAC,MAAM,OAAO,YAAY;AAAA,EAElE,IAAK,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAAa;AAAA,IAC1D,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,uBAAuB,KAAK,YAAY,MAAM;AAAA,MACvD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,IAGzD,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,MAEzD,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,UAAU;AAAA,MACvD,IAAI,MAAM,UAAU,GAAG;AAAA,QAErB,OAAO,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA,MACpC;AAAA,MAEA,IAAI,MAAM,QAAQ,GAAG;AAAA,QAEnB,IAAI,KAAK,SAAS,YAAY;AAAA,UAC5B,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,QAC9C,EAAO;AAAA,UAEL,IAAI,OAAO,UAAU,MAAM,KAAK,GAAG;AAAA,YACjC,MAAM,SAAS,MAAM,QAAQ,MAAM;AAAA,YACnC,OAAO,EAAE,MAAM,YAAY,MAAM,SAAS,aAAa,WAAW;AAAA,UACpE,EAAO;AAAA,YAEL,OAAO;AAAA,cACL,MAAM;AAAA,cACN,KAAK,aAAa;AAAA,cAClB,SAAS;AAAA,cACT,YAAY,QAAQ;AAAA,YACtB;AAAA;AAAA;AAAA,MAGN,EAAO;AAAA,QAEL,OAAO,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA;AAAA,IAEtC;AAAA,IAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,YAAY;AAAA,MACvD,MAAM,UAAU,KAAK,IAAI,KAAK,KAAK;AAAA,MAEnC,IAAI,YAAY,GAAG;AAAA,QAEjB,OAAO,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA,MACpC;AAAA,MAEA,IAAI,UAAU,GAAG;AAAA,QACf,IAAI,MAAM,SAAS,YAAY;AAAA,UAE7B,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,QAC9C,EAAO;AAAA,UAEL,OAAO,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA;AAAA,MAEtC,EAAO;AAAA,QAEL,IAAI,MAAM,SAAS,YAAY;AAAA,UAE7B,OAAO,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA,QACpC,EAAO;AAAA,UAEL,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA;AAAA;AAAA,IAGlD;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,UAAU;AAAA,IAErD,IAAI,KAAK,UAAU,KAAK,MAAM,UAAU,GAAG;AAAA,MAEzC,OAAO,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA,IACpC;AAAA,IAEA,IAAI,KAAK,UAAU,KAAK,MAAM,QAAQ,GAAG;AAAA,MAEvC,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAEA,IAAI,KAAK,QAAQ,KAAK,CAAC,OAAO,UAAU,MAAM,KAAK,GAAG;AAAA,MAEpD,OAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK,aAAa;AAAA,QAClB,SAAS;AAAA,QACT,YAAY,QAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IAEA,MAAM,SAAS,KAAK,IAAI,KAAK,OAAO,MAAM,KAAK;AAAA,IAG/C,IAAI,WAAW,UAAU;AAAA,MACvB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IACA,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAEA,OAAO,EAAE,MAAM,UAAU,OAAO,OAAO;AAAA,EACzC;AAAA,EAGA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS,uBAAuB,KAAK,YAAY,MAAM;AAAA,IACvD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "73EB7E98B39E641064756E2164756E21",
8
+ "debugId": "4ED5745BD313697964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/arithmetic/subtract/subtract.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../../core/types.mjs";
3
3
  var subtract = (left, right, context) => {
4
4
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
5
5
  return {
@@ -51,4 +51,4 @@ export {
51
51
  subtract
52
52
  };
53
53
 
54
- //# debugId=34CCF9E55A81A93164756E2164756E21
54
+ //# debugId=196553AFDCA5226964756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/evaluator/arithmetic/subtract/subtract.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\nexport const subtract: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot subtract ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n \n // Both infinity\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n if (left.sign === right.sign) {\n // +∞ - +∞ = undefined, -∞ - -∞ = undefined\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot subtract infinity from same-signed infinity\",\n errAddress: context.dependencyNode,\n };\n } else {\n // +∞ - -∞ = +∞, -∞ - +∞ = -∞\n return { type: \"infinity\", sign: left.sign };\n }\n }\n \n // Left infinity, right number: ∞ - n = ∞\n if (left.type === \"infinity\" && right.type === \"number\") {\n return { type: \"infinity\", sign: left.sign };\n }\n \n // Left number, right infinity: n - ∞ = -∞, n - -∞ = +∞\n if (left.type === \"number\" && right.type === \"infinity\") {\n const resultSign = right.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n }\n \n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n const result = left.value - right.value;\n \n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n \n return { type: \"number\", value: result };\n }\n \n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot subtract ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};"
5
+ "import type { ArethmeticEvaluator } from \"../../../core/types.mjs\";\nimport { FormulaError } from \"../../../core/types.mjs\";\n\nexport const subtract: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot subtract ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" || right.type === \"infinity\") {\n \n // Both infinity\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n if (left.sign === right.sign) {\n // +∞ - +∞ = undefined, -∞ - -∞ = undefined\n return {\n type: \"error\",\n err: FormulaError.NUM,\n message: \"Cannot subtract infinity from same-signed infinity\",\n errAddress: context.dependencyNode,\n };\n } else {\n // +∞ - -∞ = +∞, -∞ - +∞ = -∞\n return { type: \"infinity\", sign: left.sign };\n }\n }\n \n // Left infinity, right number: ∞ - n = ∞\n if (left.type === \"infinity\" && right.type === \"number\") {\n return { type: \"infinity\", sign: left.sign };\n }\n \n // Left number, right infinity: n - ∞ = -∞, n - -∞ = +∞\n if (left.type === \"number\" && right.type === \"infinity\") {\n const resultSign = right.sign === \"positive\" ? \"negative\" : \"positive\";\n return { type: \"infinity\", sign: resultSign };\n }\n }\n \n // Both numbers\n if (left.type === \"number\" && right.type === \"number\") {\n const result = left.value - right.value;\n \n // Check for overflow to infinity\n if (result === Infinity) {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (result === -Infinity) {\n return { type: \"infinity\", sign: \"negative\" };\n }\n \n return { type: \"number\", value: result };\n }\n \n // This should never be reached due to the type check at the beginning\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot subtract ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};"
6
6
  ],
7
7
  "mappings": ";AACA;AAEO,IAAM,WAAgC,CAAC,MAAM,OAAO,YAAY;AAAA,EAErE,IAAK,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAAa;AAAA,IAC1D,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,mBAAmB,KAAK,YAAY,MAAM;AAAA,MACnD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,IAGzD,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,MACzD,IAAI,KAAK,SAAS,MAAM,MAAM;AAAA,QAE5B,OAAO;AAAA,UACL,MAAM;AAAA,UACN,KAAK,aAAa;AAAA,UAClB,SAAS;AAAA,UACT,YAAY,QAAQ;AAAA,QACtB;AAAA,MACF,EAAO;AAAA,QAEL,OAAO,EAAE,MAAM,YAAY,MAAM,KAAK,KAAK;AAAA;AAAA,IAE/C;AAAA,IAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,UAAU;AAAA,MACvD,OAAO,EAAE,MAAM,YAAY,MAAM,KAAK,KAAK;AAAA,IAC7C;AAAA,IAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,YAAY;AAAA,MACvD,MAAM,aAAa,MAAM,SAAS,aAAa,aAAa;AAAA,MAC5D,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,UAAU;AAAA,IACrD,MAAM,SAAS,KAAK,QAAQ,MAAM;AAAA,IAGlC,IAAI,WAAW,UAAU;AAAA,MACvB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IACA,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC9C;AAAA,IAEA,OAAO,EAAE,MAAM,UAAU,OAAO,OAAO;AAAA,EACzC;AAAA,EAGA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS,mBAAmB,KAAK,YAAY,MAAM;AAAA,IACnD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "34CCF9E55A81A93164756E2164756E21",
8
+ "debugId": "196553AFDCA5226964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/comparison/equals.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\n/**\n * Equals operator (=) - Returns TRUE if both values are exactly equal\n * Strict type checking: both type and value must match\n */\nexport const equals: ArethmeticEvaluator = (left, right) => {\n // Check type equality first\n if (left.type !== right.type) {\n return { type: \"boolean\", value: false };\n }\n\n // Handle each type specifically\n switch (left.type) {\n case \"number\":\n if (right.type === \"number\") {\n return { type: \"boolean\", value: left.value === right.value };\n }\n break;\n \n case \"string\":\n if (right.type === \"string\") {\n return { type: \"boolean\", value: left.value === right.value };\n }\n break;\n \n case \"boolean\":\n if (right.type === \"boolean\") {\n return { type: \"boolean\", value: left.value === right.value };\n }\n break;\n \n case \"infinity\":\n if (right.type === \"infinity\") {\n return { type: \"boolean\", value: left.sign === right.sign };\n }\n break;\n }\n\n // This should never be reached due to type check above\n return { type: \"boolean\", value: false };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../core/types.mjs\";\nimport { FormulaError } from \"../../core/types.mjs\";\n\n/**\n * Equals operator (=) - Returns TRUE if both values are exactly equal\n * Strict type checking: both type and value must match\n */\nexport const equals: ArethmeticEvaluator = (left, right) => {\n // Check type equality first\n if (left.type !== right.type) {\n return { type: \"boolean\", value: false };\n }\n\n // Handle each type specifically\n switch (left.type) {\n case \"number\":\n if (right.type === \"number\") {\n return { type: \"boolean\", value: left.value === right.value };\n }\n break;\n \n case \"string\":\n if (right.type === \"string\") {\n return { type: \"boolean\", value: left.value === right.value };\n }\n break;\n \n case \"boolean\":\n if (right.type === \"boolean\") {\n return { type: \"boolean\", value: left.value === right.value };\n }\n break;\n \n case \"infinity\":\n if (right.type === \"infinity\") {\n return { type: \"boolean\", value: left.sign === right.sign };\n }\n break;\n }\n\n // This should never be reached due to type check above\n return { type: \"boolean\", value: false };\n};\n"
6
6
  ],
7
7
  "mappings": ";AAOO,IAAM,SAA8B,CAAC,MAAM,UAAU;AAAA,EAE1D,IAAI,KAAK,SAAS,MAAM,MAAM;AAAA,IAC5B,OAAO,EAAE,MAAM,WAAW,OAAO,MAAM;AAAA,EACzC;AAAA,EAGA,QAAQ,KAAK;AAAA,SACN;AAAA,MACH,IAAI,MAAM,SAAS,UAAU;AAAA,QAC3B,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK,UAAU,MAAM,MAAM;AAAA,MAC9D;AAAA,MACA;AAAA,SAEG;AAAA,MACH,IAAI,MAAM,SAAS,UAAU;AAAA,QAC3B,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK,UAAU,MAAM,MAAM;AAAA,MAC9D;AAAA,MACA;AAAA,SAEG;AAAA,MACH,IAAI,MAAM,SAAS,WAAW;AAAA,QAC5B,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK,UAAU,MAAM,MAAM;AAAA,MAC9D;AAAA,MACA;AAAA,SAEG;AAAA,MACH,IAAI,MAAM,SAAS,YAAY;AAAA,QAC7B,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK,SAAS,MAAM,KAAK;AAAA,MAC5D;AAAA,MACA;AAAA;AAAA,EAIJ,OAAO,EAAE,MAAM,WAAW,OAAO,MAAM;AAAA;",
8
8
  "debugId": "324F1224A95AFC9B64756E2164756E21",
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/comparison/greater-than-or-equal.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../core/types.mjs";
3
3
  import { lessThan } from "./less-than.mjs";
4
4
  var greaterThanOrEqual = (left, right, context) => {
5
5
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
@@ -28,4 +28,4 @@ export {
28
28
  greaterThanOrEqual
29
29
  };
30
30
 
31
- //# debugId=9EE228EF14D03D4A64756E2164756E21
31
+ //# debugId=A2F61B1B387F8A4364756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/comparison/greater-than-or-equal.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\nimport { lessThan } from \"./less-than.mjs\";\n\n/**\n * Greater than or equal operator (>=) - Returns TRUE if left >= right\n * Implemented as NOT (left < right)\n */\nexport const greaterThanOrEqual: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n const ltResult = lessThan(left, right, context);\n if (ltResult.type === \"error\" || ltResult.type === \"awaiting-evaluation\") {\n return ltResult;\n }\n \n if (ltResult.type === \"boolean\") {\n return { type: \"boolean\", value: !ltResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid comparison result\",\n errAddress: context.dependencyNode,\n };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../core/types.mjs\";\nimport { FormulaError } from \"../../core/types.mjs\";\nimport { lessThan } from \"./less-than.mjs\";\n\n/**\n * Greater than or equal operator (>=) - Returns TRUE if left >= right\n * Implemented as NOT (left < right)\n */\nexport const greaterThanOrEqual: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n const ltResult = lessThan(left, right, context);\n if (ltResult.type === \"error\" || ltResult.type === \"awaiting-evaluation\") {\n return ltResult;\n }\n \n if (ltResult.type === \"boolean\") {\n return { type: \"boolean\", value: !ltResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid comparison result\",\n errAddress: context.dependencyNode,\n };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AACA;AAMO,IAAM,qBAA0C,CAAC,MAAM,OAAO,YAAY;AAAA,EAE/E,IAAK,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAAa;AAAA,IAC1D,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,MAClD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,WAAW,SAAS,MAAM,OAAO,OAAO;AAAA,EAC9C,IAAI,SAAS,SAAS,WAAW,SAAS,SAAS,uBAAuB;AAAA,IACxE,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,SAAS,SAAS,WAAW;AAAA,IAC/B,OAAO,EAAE,MAAM,WAAW,OAAO,CAAC,SAAS,MAAM;AAAA,EACnD;AAAA,EAEA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "9EE228EF14D03D4A64756E2164756E21",
8
+ "debugId": "A2F61B1B387F8A4364756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/comparison/greater-than.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../core/types.mjs";
3
3
  import { lessThanOrEqual } from "./less-than-or-equal.mjs";
4
4
  var greaterThan = (left, right, context) => {
5
5
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
@@ -28,4 +28,4 @@ export {
28
28
  greaterThan
29
29
  };
30
30
 
31
- //# debugId=17D7656F1842B2D864756E2164756E21
31
+ //# debugId=057838CDDA31538164756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/comparison/greater-than.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\nimport { lessThanOrEqual } from \"./less-than-or-equal.mjs\";\n\n/**\n * Greater than operator (>) - Returns TRUE if left > right\n * Implemented as NOT (left <= right)\n */\nexport const greaterThan: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n const lteResult = lessThanOrEqual(left, right, context);\n if (lteResult.type === \"error\" || lteResult.type === \"awaiting-evaluation\") {\n return lteResult;\n }\n \n if (lteResult.type === \"boolean\") {\n return { type: \"boolean\", value: !lteResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid comparison result\",\n errAddress: context.dependencyNode,\n };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../core/types.mjs\";\nimport { FormulaError } from \"../../core/types.mjs\";\nimport { lessThanOrEqual } from \"./less-than-or-equal.mjs\";\n\n/**\n * Greater than operator (>) - Returns TRUE if left > right\n * Implemented as NOT (left <= right)\n */\nexport const greaterThan: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n const lteResult = lessThanOrEqual(left, right, context);\n if (lteResult.type === \"error\" || lteResult.type === \"awaiting-evaluation\") {\n return lteResult;\n }\n \n if (lteResult.type === \"boolean\") {\n return { type: \"boolean\", value: !lteResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid comparison result\",\n errAddress: context.dependencyNode,\n };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AACA;AAMO,IAAM,cAAmC,CAAC,MAAM,OAAO,YAAY;AAAA,EAExE,IAAK,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAAa;AAAA,IAC1D,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,MAClD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,gBAAgB,MAAM,OAAO,OAAO;AAAA,EACtD,IAAI,UAAU,SAAS,WAAW,UAAU,SAAS,uBAAuB;AAAA,IAC1E,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAAU,SAAS,WAAW;AAAA,IAChC,OAAO,EAAE,MAAM,WAAW,OAAO,CAAC,UAAU,MAAM;AAAA,EACpD;AAAA,EAEA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "17D7656F1842B2D864756E2164756E21",
8
+ "debugId": "057838CDDA31538164756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/comparison/less-than-or-equal.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../core/types.mjs";
3
3
  import { lessThan } from "./less-than.mjs";
4
4
  import { equals } from "./equals.mjs";
5
5
  var lessThanOrEqual = (left, right, context) => {
@@ -36,4 +36,4 @@ export {
36
36
  lessThanOrEqual
37
37
  };
38
38
 
39
- //# debugId=45ABC02E5249FA7264756E2164756E21
39
+ //# debugId=D0F8BFAD47B2EC7F64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/comparison/less-than-or-equal.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\nimport { lessThan } from \"./less-than.mjs\";\nimport { equals } from \"./equals.mjs\";\n\n/**\n * Less than or equal operator (<=) - Returns TRUE if left <= right\n * Uses lessThan OR equals logic\n */\nexport const lessThanOrEqual: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n const ltResult = lessThan(left, right, context);\n if (ltResult.type === \"error\" || ltResult.type === \"awaiting-evaluation\") {\n return ltResult;\n }\n \n if (ltResult.type === \"boolean\" && ltResult.value === true) {\n return { type: \"boolean\", value: true };\n }\n \n // Check equality\n const eqResult = equals(left, right, context);\n if (eqResult.type === \"error\" || eqResult.type === \"awaiting-evaluation\") {\n return eqResult;\n }\n \n if (eqResult.type === \"boolean\") {\n return { type: \"boolean\", value: eqResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid comparison result\",\n errAddress: context.dependencyNode,\n };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../core/types.mjs\";\nimport { FormulaError } from \"../../core/types.mjs\";\nimport { lessThan } from \"./less-than.mjs\";\nimport { equals } from \"./equals.mjs\";\n\n/**\n * Less than or equal operator (<=) - Returns TRUE if left <= right\n * Uses lessThan OR equals logic\n */\nexport const lessThanOrEqual: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n const ltResult = lessThan(left, right, context);\n if (ltResult.type === \"error\" || ltResult.type === \"awaiting-evaluation\") {\n return ltResult;\n }\n \n if (ltResult.type === \"boolean\" && ltResult.value === true) {\n return { type: \"boolean\", value: true };\n }\n \n // Check equality\n const eqResult = equals(left, right, context);\n if (eqResult.type === \"error\" || eqResult.type === \"awaiting-evaluation\") {\n return eqResult;\n }\n \n if (eqResult.type === \"boolean\") {\n return { type: \"boolean\", value: eqResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid comparison result\",\n errAddress: context.dependencyNode,\n };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AACA;AACA;AAMO,IAAM,kBAAuC,CAAC,MAAM,OAAO,YAAY;AAAA,EAE5E,IAAK,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAAa;AAAA,IAC1D,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,MAClD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,WAAW,SAAS,MAAM,OAAO,OAAO;AAAA,EAC9C,IAAI,SAAS,SAAS,WAAW,SAAS,SAAS,uBAAuB;AAAA,IACxE,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,SAAS,SAAS,aAAa,SAAS,UAAU,MAAM;AAAA,IAC1D,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK;AAAA,EACxC;AAAA,EAGA,MAAM,WAAW,OAAO,MAAM,OAAO,OAAO;AAAA,EAC5C,IAAI,SAAS,SAAS,WAAW,SAAS,SAAS,uBAAuB;AAAA,IACxE,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,SAAS,SAAS,WAAW;AAAA,IAC/B,OAAO,EAAE,MAAM,WAAW,OAAO,SAAS,MAAM;AAAA,EAClD;AAAA,EAEA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "45ABC02E5249FA7264756E2164756E21",
8
+ "debugId": "D0F8BFAD47B2EC7F64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/comparison/less-than.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../core/types.mjs";
3
3
  var lessThan = (left, right, context) => {
4
4
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
5
5
  return {
@@ -35,4 +35,4 @@ export {
35
35
  lessThan
36
36
  };
37
37
 
38
- //# debugId=6D26981236A613EF64756E2164756E21
38
+ //# debugId=0164935D7400CA1A64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/comparison/less-than.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\n/**\n * Less than operator (<) - Returns TRUE if left < right\n * Only works with numbers and infinity\n */\nexport const lessThan: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n // -∞ < +∞ is true, otherwise false (same infinities are equal)\n if (left.sign === \"negative\" && right.sign === \"positive\") {\n return { type: \"boolean\", value: true };\n }\n return { type: \"boolean\", value: false };\n }\n \n if (left.type === \"infinity\") {\n // +∞ is never less than anything, -∞ is less than any number\n return { type: \"boolean\", value: left.sign === \"negative\" };\n }\n \n if (right.type === \"infinity\") {\n // Any number is less than +∞, no number is less than -∞\n return { type: \"boolean\", value: right.sign === \"positive\" };\n }\n \n // Both are numbers\n if (left.type === \"number\" && right.type === \"number\") {\n return { type: \"boolean\", value: left.value < right.value };\n }\n \n // This should never be reached\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../core/types.mjs\";\nimport { FormulaError } from \"../../core/types.mjs\";\n\n/**\n * Less than operator (<) - Returns TRUE if left < right\n * Only works with numbers and infinity\n */\nexport const lessThan: ArethmeticEvaluator = (left, right, context) => {\n // Only allow number and infinity types\n if ((left.type !== \"number\" && left.type !== \"infinity\") ||\n (right.type !== \"number\" && right.type !== \"infinity\")) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle infinity cases\n if (left.type === \"infinity\" && right.type === \"infinity\") {\n // -∞ < +∞ is true, otherwise false (same infinities are equal)\n if (left.sign === \"negative\" && right.sign === \"positive\") {\n return { type: \"boolean\", value: true };\n }\n return { type: \"boolean\", value: false };\n }\n \n if (left.type === \"infinity\") {\n // +∞ is never less than anything, -∞ is less than any number\n return { type: \"boolean\", value: left.sign === \"negative\" };\n }\n \n if (right.type === \"infinity\") {\n // Any number is less than +∞, no number is less than -∞\n return { type: \"boolean\", value: right.sign === \"positive\" };\n }\n \n // Both are numbers\n if (left.type === \"number\" && right.type === \"number\") {\n return { type: \"boolean\", value: left.value < right.value };\n }\n \n // This should never be reached\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot compare ${left.type} and ${right.type}`,\n errAddress: context.dependencyNode,\n };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AAMO,IAAM,WAAgC,CAAC,MAAM,OAAO,YAAY;AAAA,EAErE,IAAK,KAAK,SAAS,YAAY,KAAK,SAAS,cACxC,MAAM,SAAS,YAAY,MAAM,SAAS,YAAa;AAAA,IAC1D,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,aAAa;AAAA,MAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,MAClD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAGA,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,IAEzD,IAAI,KAAK,SAAS,cAAc,MAAM,SAAS,YAAY;AAAA,MACzD,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK;AAAA,IACxC;AAAA,IACA,OAAO,EAAE,MAAM,WAAW,OAAO,MAAM;AAAA,EACzC;AAAA,EAEA,IAAI,KAAK,SAAS,YAAY;AAAA,IAE5B,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK,SAAS,WAAW;AAAA,EAC5D;AAAA,EAEA,IAAI,MAAM,SAAS,YAAY;AAAA,IAE7B,OAAO,EAAE,MAAM,WAAW,OAAO,MAAM,SAAS,WAAW;AAAA,EAC7D;AAAA,EAGA,IAAI,KAAK,SAAS,YAAY,MAAM,SAAS,UAAU;AAAA,IACrD,OAAO,EAAE,MAAM,WAAW,OAAO,KAAK,QAAQ,MAAM,MAAM;AAAA,EAC5D;AAAA,EAGA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,IAClD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "6D26981236A613EF64756E2164756E21",
8
+ "debugId": "0164935D7400CA1A64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/comparison/not-equals.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../core/types.mjs";
3
3
  import { equals } from "./equals.mjs";
4
4
  var notEquals = (left, right, context) => {
5
5
  const equalsResult = equals(left, right, context);
@@ -20,4 +20,4 @@ export {
20
20
  notEquals
21
21
  };
22
22
 
23
- //# debugId=9A012BC6637AA0F864756E2164756E21
23
+ //# debugId=81E223B9040DC7BA64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/comparison/not-equals.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\nimport { equals } from \"./equals.mjs\";\n\n/**\n * Not equals operator (<>) - Returns TRUE if values are not equal\n * Uses the equals operator and negates the result\n */\nexport const notEquals: ArethmeticEvaluator = (left, right, context) => {\n const equalsResult = equals(left, right, context);\n \n if (equalsResult.type === \"error\" || equalsResult.type === \"awaiting-evaluation\") {\n return equalsResult;\n }\n \n if (equalsResult.type === \"boolean\") {\n return { type: \"boolean\", value: !equalsResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid result from equals comparison\",\n errAddress: context.dependencyNode,\n };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../core/types.mjs\";\nimport { FormulaError } from \"../../core/types.mjs\";\nimport { equals } from \"./equals.mjs\";\n\n/**\n * Not equals operator (<>) - Returns TRUE if values are not equal\n * Uses the equals operator and negates the result\n */\nexport const notEquals: ArethmeticEvaluator = (left, right, context) => {\n const equalsResult = equals(left, right, context);\n \n if (equalsResult.type === \"error\" || equalsResult.type === \"awaiting-evaluation\") {\n return equalsResult;\n }\n \n if (equalsResult.type === \"boolean\") {\n return { type: \"boolean\", value: !equalsResult.value };\n }\n \n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Invalid result from equals comparison\",\n errAddress: context.dependencyNode,\n };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AACA;AAMO,IAAM,YAAiC,CAAC,MAAM,OAAO,YAAY;AAAA,EACtE,MAAM,eAAe,OAAO,MAAM,OAAO,OAAO;AAAA,EAEhD,IAAI,aAAa,SAAS,WAAW,aAAa,SAAS,uBAAuB;AAAA,IAChF,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,aAAa,SAAS,WAAW;AAAA,IACnC,OAAO,EAAE,MAAM,WAAW,OAAO,CAAC,aAAa,MAAM;AAAA,EACvD;AAAA,EAEA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,aAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "9A012BC6637AA0F864756E2164756E21",
8
+ "debugId": "81E223B9040DC7BA64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/concatenation/concatenate.ts
2
- import { FormulaError } from "src/core/types";
2
+ import { FormulaError } from "../../core/types.mjs";
3
3
  var concatenate = (left, right, context) => {
4
4
  let leftStr;
5
5
  let rightStr;
@@ -39,4 +39,4 @@ export {
39
39
  concatenate
40
40
  };
41
41
 
42
- //# debugId=C41F339E88A3533764756E2164756E21
42
+ //# debugId=26D4A8D188AC33A064756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/concatenation/concatenate.ts"],
4
4
  "sourcesContent": [
5
- "import type { ArethmeticEvaluator } from \"src/core/types\";\nimport { FormulaError } from \"src/core/types\";\n\n/**\n * Concatenation operator (&) - Concatenates two values as strings\n * Works with numbers and strings only\n */\nexport const concatenate: ArethmeticEvaluator = (left, right, context) => {\n // Convert each value to string based on type\n let leftStr: string;\n let rightStr: string;\n\n // Handle left operand\n switch (left.type) {\n case \"string\":\n leftStr = left.value;\n break;\n case \"number\":\n leftStr = left.value.toString();\n break;\n default:\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot concatenate ${left.type} - only numbers and strings are supported`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle right operand\n switch (right.type) {\n case \"string\":\n rightStr = right.value;\n break;\n case \"number\":\n rightStr = right.value.toString();\n break;\n default:\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot concatenate ${right.type} - only numbers and strings are supported`,\n errAddress: context.dependencyNode,\n };\n }\n\n return { type: \"string\", value: leftStr + rightStr };\n};\n"
5
+ "import type { ArethmeticEvaluator } from \"../../core/types.mjs\";\nimport { FormulaError } from \"../../core/types.mjs\";\n\n/**\n * Concatenation operator (&) - Concatenates two values as strings\n * Works with numbers and strings only\n */\nexport const concatenate: ArethmeticEvaluator = (left, right, context) => {\n // Convert each value to string based on type\n let leftStr: string;\n let rightStr: string;\n\n // Handle left operand\n switch (left.type) {\n case \"string\":\n leftStr = left.value;\n break;\n case \"number\":\n leftStr = left.value.toString();\n break;\n default:\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot concatenate ${left.type} - only numbers and strings are supported`,\n errAddress: context.dependencyNode,\n };\n }\n\n // Handle right operand\n switch (right.type) {\n case \"string\":\n rightStr = right.value;\n break;\n case \"number\":\n rightStr = right.value.toString();\n break;\n default:\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `Cannot concatenate ${right.type} - only numbers and strings are supported`,\n errAddress: context.dependencyNode,\n };\n }\n\n return { type: \"string\", value: leftStr + rightStr };\n};\n"
6
6
  ],
7
7
  "mappings": ";AACA;AAMO,IAAM,cAAmC,CAAC,MAAM,OAAO,YAAY;AAAA,EAExE,IAAI;AAAA,EACJ,IAAI;AAAA,EAGJ,QAAQ,KAAK;AAAA,SACN;AAAA,MACH,UAAU,KAAK;AAAA,MACf;AAAA,SACG;AAAA,MACH,UAAU,KAAK,MAAM,SAAS;AAAA,MAC9B;AAAA;AAAA,MAEA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK,aAAa;AAAA,QAClB,SAAS,sBAAsB,KAAK;AAAA,QACpC,YAAY,QAAQ;AAAA,MACtB;AAAA;AAAA,EAIJ,QAAQ,MAAM;AAAA,SACP;AAAA,MACH,WAAW,MAAM;AAAA,MACjB;AAAA,SACG;AAAA,MACH,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC;AAAA;AAAA,MAEA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK,aAAa;AAAA,QAClB,SAAS,sBAAsB,MAAM;AAAA,QACrC,YAAY,QAAQ;AAAA,MACtB;AAAA;AAAA,EAGJ,OAAO,EAAE,MAAM,UAAU,OAAO,UAAU,SAAS;AAAA;",
8
- "debugId": "C41F339E88A3533764756E2164756E21",
8
+ "debugId": "26D4A8D188AC33A064756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/dependency-nodes/ast-evaluation-node.ts
2
- import { astToString } from "src/parser/formatter";
2
+ import { astToString } from "../../parser/formatter.mjs";
3
3
  import { BaseEvalNode } from "./base-eval-node.mjs";
4
4
 
5
5
  class AstEvaluationNode extends BaseEvalNode {
@@ -25,4 +25,4 @@ export {
25
25
  AstEvaluationNode
26
26
  };
27
27
 
28
- //# debugId=72758B35AE24D18964756E2164756E21
28
+ //# debugId=DF2C97E3765B0A0664756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/dependency-nodes/ast-evaluation-node.ts"],
4
4
  "sourcesContent": [
5
- "import type { FunctionEvaluationResult } from \"src/core/types\";\nimport type { ASTNode } from \"src/parser/ast\";\nimport { astToString } from \"src/parser/formatter\";\nimport type { ContextDependency } from \"../evaluation-context.mjs\";\nimport { BaseEvalNode } from \"./base-eval-node.mjs\";\n\nexport class AstEvaluationNode extends BaseEvalNode<FunctionEvaluationResult> {\n private _contextDependency: ContextDependency;\n constructor(\n public ast: ASTNode,\n contextDependency: ContextDependency\n ) {\n const key = `ast:${astToString(ast)}`;\n super(key);\n this._contextDependency = contextDependency;\n }\n\n public override toString(): string {\n return this.key;\n }\n\n getContextDependency() {\n return this._contextDependency;\n }\n\n setContextDependency(contextDependency: ContextDependency) {\n this._contextDependency = contextDependency;\n }\n}\n"
5
+ "import type { FunctionEvaluationResult } from \"../../core/types.mjs\";\nimport type { ASTNode } from \"../../parser/ast.mjs\";\nimport { astToString } from \"../../parser/formatter.mjs\";\nimport type { ContextDependency } from \"../evaluation-context.mjs\";\nimport { BaseEvalNode } from \"./base-eval-node.mjs\";\n\nexport class AstEvaluationNode extends BaseEvalNode<FunctionEvaluationResult> {\n private _contextDependency: ContextDependency;\n constructor(\n public ast: ASTNode,\n contextDependency: ContextDependency\n ) {\n const key = `ast:${astToString(ast)}`;\n super(key);\n this._contextDependency = contextDependency;\n }\n\n public override toString(): string {\n return this.key;\n }\n\n getContextDependency() {\n return this._contextDependency;\n }\n\n setContextDependency(contextDependency: ContextDependency) {\n this._contextDependency = contextDependency;\n }\n}\n"
6
6
  ],
7
7
  "mappings": ";AAEA;AAEA;AAAA;AAEO,MAAM,0BAA0B,aAAuC;AAAA,EAGnE;AAAA,EAFD;AAAA,EACR,WAAW,CACF,KACP,mBACA;AAAA,IACA,MAAM,MAAM,OAAO,YAAY,GAAG;AAAA,IAClC,MAAM,GAAG;AAAA,IAJF;AAAA,IAKP,KAAK,qBAAqB;AAAA;AAAA,EAGZ,QAAQ,GAAW;AAAA,IACjC,OAAO,KAAK;AAAA;AAAA,EAGd,oBAAoB,GAAG;AAAA,IACrB,OAAO,KAAK;AAAA;AAAA,EAGd,oBAAoB,CAAC,mBAAsC;AAAA,IACzD,KAAK,qBAAqB;AAAA;AAE9B;",
8
- "debugId": "72758B35AE24D18964756E2164756E21",
8
+ "debugId": "DF2C97E3765B0A0664756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/dependency-nodes/base-eval-node.ts"],
4
4
  "sourcesContent": [
5
- "import { type DependencyNode } from \"src/core/managers/dependency-node\";\nimport type {\n DoesNotSpillResult,\n FunctionEvaluationResult,\n SpilledValuesEvaluationResult,\n} from \"src/core/types\";\nimport type { SpillMetaNode } from \"./spill-meta-node.mjs\";\n\nexport class BaseEvalNode<T> {\n public key: string;\n private _dependencies: Set<DependencyNode> = new Set();\n private _lastDependencies: Set<DependencyNode> = new Set();\n public _evaluationResult: T;\n private _resolved: boolean = false;\n\n constructor(key: string) {\n this.key = key;\n this._evaluationResult = {\n type: \"awaiting-evaluation\",\n waitingFor: this,\n errAddress: this,\n } as any;\n }\n\n public addDependency(dep: DependencyNode) {\n if (this._dependencies.has(dep)) {\n return;\n }\n this._dependencies.add(dep);\n }\n\n public get directDepsUpdated() {\n return (\n !this._lastDependencies.isSubsetOf(this._dependencies) ||\n this._dependencies.size !== this._lastDependencies.size\n );\n }\n\n public resolve() {\n if (this.canResolve()) {\n this._resolved = true;\n }\n }\n\n public canResolve() {\n return (\n (this.evaluationResult as any).type !== \"awaiting-evaluation\" &&\n !this.directDepsUpdated\n );\n }\n\n public get resolved() {\n return this._resolved;\n }\n\n public get evaluationResult(): T {\n return this._evaluationResult;\n }\n\n public setEvaluationResult(result: T) {\n this._evaluationResult = result;\n }\n\n public resetDirectDepsUpdated() {\n if (this._resolved) {\n return;\n }\n this._lastDependencies = new Set(this._dependencies);\n this._dependencies = new Set();\n }\n\n /**\n * Get the direct dependencies of the node, either RangeEvaluationNode or DependencyNode\n */\n public getDependencies() {\n return this._dependencies;\n }\n\n /**\n * Just to mirror the method in RangeEvaluationNode\n */\n public getAllDependencies() {\n return this.getDependencies();\n }\n\n /**\n * Just to mirror the method in RangeEvaluationNode\n */\n public getFrontierDependencies(): Set<SpillMetaNode> {\n return new Set();\n }\n\n toJSON(visitor: Set<string> = new Set()): any {\n const hasVisited = visitor?.has(this.key);\n if (hasVisited) {\n return {\n key: this.key,\n resolved: this.resolved,\n cycle: true,\n dependencies: [],\n };\n }\n visitor?.add(this.key);\n return {\n key: this.key,\n resolved: this.resolved,\n evaluationResult: this.evaluationResult,\n dependencies: Array.from(this.getDependencies()).map((node) =>\n node.toJSON(visitor)\n ),\n };\n }\n}\n"
5
+ "import { type DependencyNode } from \"../../core/managers/dependency-node.mjs\";\nimport type { SpillMetaNode } from \"./spill-meta-node.mjs\";\n\nexport class BaseEvalNode<T> {\n public key: string;\n private _dependencies: Set<DependencyNode> = new Set();\n private _lastDependencies: Set<DependencyNode> = new Set();\n public _evaluationResult: T;\n private _resolved: boolean = false;\n\n constructor(key: string) {\n this.key = key;\n this._evaluationResult = {\n type: \"awaiting-evaluation\",\n waitingFor: this,\n errAddress: this,\n } as any;\n }\n\n public addDependency(dep: DependencyNode) {\n if (this._dependencies.has(dep)) {\n return;\n }\n this._dependencies.add(dep);\n }\n\n public get directDepsUpdated() {\n return (\n !this._lastDependencies.isSubsetOf(this._dependencies) ||\n this._dependencies.size !== this._lastDependencies.size\n );\n }\n\n public resolve() {\n if (this.canResolve()) {\n this._resolved = true;\n }\n }\n\n public canResolve() {\n return (\n (this.evaluationResult as any).type !== \"awaiting-evaluation\" &&\n !this.directDepsUpdated\n );\n }\n\n public get resolved() {\n return this._resolved;\n }\n\n public get evaluationResult(): T {\n return this._evaluationResult;\n }\n\n public setEvaluationResult(result: T) {\n this._evaluationResult = result;\n }\n\n public resetDirectDepsUpdated() {\n if (this._resolved) {\n return;\n }\n this._lastDependencies = new Set(this._dependencies);\n this._dependencies = new Set();\n }\n\n /**\n * Get the direct dependencies of the node, either RangeEvaluationNode or DependencyNode\n */\n public getDependencies() {\n return this._dependencies;\n }\n\n /**\n * Just to mirror the method in RangeEvaluationNode\n */\n public getAllDependencies() {\n return this.getDependencies();\n }\n\n /**\n * Just to mirror the method in RangeEvaluationNode\n */\n public getFrontierDependencies(): Set<SpillMetaNode> {\n return new Set();\n }\n\n toJSON(visitor: Set<string> = new Set()): any {\n const hasVisited = visitor?.has(this.key);\n if (hasVisited) {\n return {\n key: this.key,\n resolved: this.resolved,\n cycle: true,\n dependencies: [],\n };\n }\n visitor?.add(this.key);\n return {\n key: this.key,\n resolved: this.resolved,\n evaluationResult: this.evaluationResult,\n dependencies: Array.from(this.getDependencies()).map((node) =>\n node.toJSON(visitor)\n ),\n };\n }\n}\n"
6
6
  ],
7
- "mappings": ";AAQO,MAAM,aAAgB;AAAA,EACpB;AAAA,EACC,gBAAqC,IAAI;AAAA,EACzC,oBAAyC,IAAI;AAAA,EAC9C;AAAA,EACC,YAAqB;AAAA,EAE7B,WAAW,CAAC,KAAa;AAAA,IACvB,KAAK,MAAM;AAAA,IACX,KAAK,oBAAoB;AAAA,MACvB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGK,aAAa,CAAC,KAAqB;AAAA,IACxC,IAAI,KAAK,cAAc,IAAI,GAAG,GAAG;AAAA,MAC/B;AAAA,IACF;AAAA,IACA,KAAK,cAAc,IAAI,GAAG;AAAA;AAAA,MAGjB,iBAAiB,GAAG;AAAA,IAC7B,OACE,CAAC,KAAK,kBAAkB,WAAW,KAAK,aAAa,KACrD,KAAK,cAAc,SAAS,KAAK,kBAAkB;AAAA;AAAA,EAIhD,OAAO,GAAG;AAAA,IACf,IAAI,KAAK,WAAW,GAAG;AAAA,MACrB,KAAK,YAAY;AAAA,IACnB;AAAA;AAAA,EAGK,UAAU,GAAG;AAAA,IAClB,OACG,KAAK,iBAAyB,SAAS,yBACxC,CAAC,KAAK;AAAA;AAAA,MAIC,QAAQ,GAAG;AAAA,IACpB,OAAO,KAAK;AAAA;AAAA,MAGH,gBAAgB,GAAM;AAAA,IAC/B,OAAO,KAAK;AAAA;AAAA,EAGP,mBAAmB,CAAC,QAAW;AAAA,IACpC,KAAK,oBAAoB;AAAA;AAAA,EAGpB,sBAAsB,GAAG;AAAA,IAC9B,IAAI,KAAK,WAAW;AAAA,MAClB;AAAA,IACF;AAAA,IACA,KAAK,oBAAoB,IAAI,IAAI,KAAK,aAAa;AAAA,IACnD,KAAK,gBAAgB,IAAI;AAAA;AAAA,EAMpB,eAAe,GAAG;AAAA,IACvB,OAAO,KAAK;AAAA;AAAA,EAMP,kBAAkB,GAAG;AAAA,IAC1B,OAAO,KAAK,gBAAgB;AAAA;AAAA,EAMvB,uBAAuB,GAAuB;AAAA,IACnD,OAAO,IAAI;AAAA;AAAA,EAGb,MAAM,CAAC,UAAuB,IAAI,KAAY;AAAA,IAC5C,MAAM,aAAa,SAAS,IAAI,KAAK,GAAG;AAAA,IACxC,IAAI,YAAY;AAAA,MACd,OAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,UAAU,KAAK;AAAA,QACf,OAAO;AAAA,QACP,cAAc,CAAC;AAAA,MACjB;AAAA,IACF;AAAA,IACA,SAAS,IAAI,KAAK,GAAG;AAAA,IACrB,OAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,UAAU,KAAK;AAAA,MACf,kBAAkB,KAAK;AAAA,MACvB,cAAc,MAAM,KAAK,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC,SACpD,KAAK,OAAO,OAAO,CACrB;AAAA,IACF;AAAA;AAEJ;",
7
+ "mappings": ";AAGO,MAAM,aAAgB;AAAA,EACpB;AAAA,EACC,gBAAqC,IAAI;AAAA,EACzC,oBAAyC,IAAI;AAAA,EAC9C;AAAA,EACC,YAAqB;AAAA,EAE7B,WAAW,CAAC,KAAa;AAAA,IACvB,KAAK,MAAM;AAAA,IACX,KAAK,oBAAoB;AAAA,MACvB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGK,aAAa,CAAC,KAAqB;AAAA,IACxC,IAAI,KAAK,cAAc,IAAI,GAAG,GAAG;AAAA,MAC/B;AAAA,IACF;AAAA,IACA,KAAK,cAAc,IAAI,GAAG;AAAA;AAAA,MAGjB,iBAAiB,GAAG;AAAA,IAC7B,OACE,CAAC,KAAK,kBAAkB,WAAW,KAAK,aAAa,KACrD,KAAK,cAAc,SAAS,KAAK,kBAAkB;AAAA;AAAA,EAIhD,OAAO,GAAG;AAAA,IACf,IAAI,KAAK,WAAW,GAAG;AAAA,MACrB,KAAK,YAAY;AAAA,IACnB;AAAA;AAAA,EAGK,UAAU,GAAG;AAAA,IAClB,OACG,KAAK,iBAAyB,SAAS,yBACxC,CAAC,KAAK;AAAA;AAAA,MAIC,QAAQ,GAAG;AAAA,IACpB,OAAO,KAAK;AAAA;AAAA,MAGH,gBAAgB,GAAM;AAAA,IAC/B,OAAO,KAAK;AAAA;AAAA,EAGP,mBAAmB,CAAC,QAAW;AAAA,IACpC,KAAK,oBAAoB;AAAA;AAAA,EAGpB,sBAAsB,GAAG;AAAA,IAC9B,IAAI,KAAK,WAAW;AAAA,MAClB;AAAA,IACF;AAAA,IACA,KAAK,oBAAoB,IAAI,IAAI,KAAK,aAAa;AAAA,IACnD,KAAK,gBAAgB,IAAI;AAAA;AAAA,EAMpB,eAAe,GAAG;AAAA,IACvB,OAAO,KAAK;AAAA;AAAA,EAMP,kBAAkB,GAAG;AAAA,IAC1B,OAAO,KAAK,gBAAgB;AAAA;AAAA,EAMvB,uBAAuB,GAAuB;AAAA,IACnD,OAAO,IAAI;AAAA;AAAA,EAGb,MAAM,CAAC,UAAuB,IAAI,KAAY;AAAA,IAC5C,MAAM,aAAa,SAAS,IAAI,KAAK,GAAG;AAAA,IACxC,IAAI,YAAY;AAAA,MACd,OAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,UAAU,KAAK;AAAA,QACf,OAAO;AAAA,QACP,cAAc,CAAC;AAAA,MACjB;AAAA,IACF;AAAA,IACA,SAAS,IAAI,KAAK,GAAG;AAAA,IACrB,OAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,UAAU,KAAK;AAAA,MACf,kBAAkB,KAAK;AAAA,MACvB,cAAc,MAAM,KAAK,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC,SACpD,KAAK,OAAO,OAAO,CACrB;AAAA,IACF;AAAA;AAEJ;",
8
8
  "debugId": "7D7A4F1893384B5164756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // src/evaluator/dependency-nodes/cell-value-node.ts
2
- import { getCellReference, keyToCellAddress } from "src/core/utils";
2
+ import { getCellReference, keyToCellAddress } from "../../core/utils.mjs";
3
3
  import { BaseEvalNode } from "./base-eval-node.mjs";
4
4
 
5
5
  class CellValueNode extends BaseEvalNode {
@@ -21,4 +21,4 @@ export {
21
21
  CellValueNode
22
22
  };
23
23
 
24
- //# debugId=D70C954EBA7519EF64756E2164756E21
24
+ //# debugId=9E60FD247839AAE964756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/dependency-nodes/cell-value-node.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n AwaitingEvaluationResult,\n CellAddress,\n ErrorEvaluationResult,\n SingleEvaluationResult,\n SpilledValuesEvaluationResult,\n} from \"src/core/types\";\nimport { getCellReference, keyToCellAddress } from \"src/core/utils\";\nimport { BaseEvalNode } from \"./base-eval-node.mjs\";\nimport type { SpillMetaNode } from \"./spill-meta-node.mjs\";\n\nexport class CellValueNode extends BaseEvalNode<SingleEvaluationResult> {\n public readonly cellAddress: CellAddress;\n\n constructor(key: string) {\n const cellAddress = keyToCellAddress(key);\n super(key);\n\n this.cellAddress = cellAddress;\n }\n\n public override toString(): string {\n return getCellReference(this.cellAddress);\n }\n\n spillMeta: SpillMetaNode | undefined;\n\n setSpillMetaNode(node: SpillMetaNode) {\n this.spillMeta = node;\n }\n}\n"
5
+ "import type {\n AwaitingEvaluationResult,\n CellAddress,\n ErrorEvaluationResult,\n SingleEvaluationResult,\n SpilledValuesEvaluationResult,\n} from \"../../core/types.mjs\";\nimport { getCellReference, keyToCellAddress } from \"../../core/utils.mjs\";\nimport { BaseEvalNode } from \"./base-eval-node.mjs\";\nimport type { SpillMetaNode } from \"./spill-meta-node.mjs\";\n\nexport class CellValueNode extends BaseEvalNode<SingleEvaluationResult> {\n public readonly cellAddress: CellAddress;\n\n constructor(key: string) {\n const cellAddress = keyToCellAddress(key);\n super(key);\n\n this.cellAddress = cellAddress;\n }\n\n public override toString(): string {\n return getCellReference(this.cellAddress);\n }\n\n spillMeta: SpillMetaNode | undefined;\n\n setSpillMetaNode(node: SpillMetaNode) {\n this.spillMeta = node;\n }\n}\n"
6
6
  ],
7
7
  "mappings": ";AAOA;AACA;AAAA;AAGO,MAAM,sBAAsB,aAAqC;AAAA,EACtD;AAAA,EAEhB,WAAW,CAAC,KAAa;AAAA,IACvB,MAAM,cAAc,iBAAiB,GAAG;AAAA,IACxC,MAAM,GAAG;AAAA,IAET,KAAK,cAAc;AAAA;AAAA,EAGL,QAAQ,GAAW;AAAA,IACjC,OAAO,iBAAiB,KAAK,WAAW;AAAA;AAAA,EAG1C;AAAA,EAEA,gBAAgB,CAAC,MAAqB;AAAA,IACpC,KAAK,YAAY;AAAA;AAErB;",
8
- "debugId": "D70C954EBA7519EF64756E2164756E21",
8
+ "debugId": "9E60FD247839AAE964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,6 +1,6 @@
1
1
  // src/evaluator/dependency-nodes/empty-cell-evaluation-node.ts
2
- import { FrontierDependencyManager } from "src/core/managers/frontier-dependency-manager";
3
- import { getCellReference, keyToCellAddress } from "src/core/utils";
2
+ import { FrontierDependencyManager } from "../../core/managers/frontier-dependency-manager.mjs";
3
+ import { getCellReference, keyToCellAddress } from "../../core/utils.mjs";
4
4
 
5
5
  class EmptyCellEvaluationNode extends FrontierDependencyManager {
6
6
  emptyCellKey;
@@ -75,4 +75,4 @@ export {
75
75
  EmptyCellEvaluationNode
76
76
  };
77
77
 
78
- //# debugId=E999CDF7A08C7F3A64756E2164756E21
78
+ //# debugId=ED6EA7BCEB16F2A764756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/evaluator/dependency-nodes/empty-cell-evaluation-node.ts"],
4
4
  "sourcesContent": [
5
- "import type { DependencyManager } from \"src/core/managers/dependency-manager\";\nimport { FrontierDependencyManager } from \"src/core/managers/frontier-dependency-manager\";\nimport type { WorkbookManager } from \"src/core/managers/workbook-manager\";\nimport type {\n CellAddress,\n RangeAddress,\n SingleEvaluationResult,\n} from \"src/core/types\";\nimport { getCellReference, keyToCellAddress } from \"src/core/utils\";\n\nexport class EmptyCellEvaluationNode extends FrontierDependencyManager {\n public key: string;\n public cellAddress: CellAddress;\n private _evaluationResult: SingleEvaluationResult;\n\n constructor(\n public emptyCellKey: string,\n evaluationManager: DependencyManager,\n workbookManager: WorkbookManager\n ) {\n const cellAddress = keyToCellAddress(emptyCellKey);\n const emptyCellRange: RangeAddress = {\n range: {\n start: {\n col: cellAddress.colIndex,\n row: cellAddress.rowIndex,\n },\n end: {\n col: { type: \"number\", value: cellAddress.colIndex },\n row: { type: \"number\", value: cellAddress.rowIndex },\n },\n },\n sheetName: cellAddress.sheetName,\n workbookName: cellAddress.workbookName,\n };\n\n super(emptyCellRange, workbookManager, evaluationManager);\n\n this.cellAddress = cellAddress;\n this.key = emptyCellKey.replace(/^cell:/, \"empty:\");\n this._evaluationResult = {\n type: \"awaiting-evaluation\",\n waitingFor: this,\n errAddress: this,\n };\n }\n\n public setEvaluationResult(result: SingleEvaluationResult) {\n this._evaluationResult = result;\n }\n\n public get evaluationResult(): SingleEvaluationResult {\n return this._evaluationResult;\n }\n\n public override resolve() {\n if (this.canResolve()) {\n super.resolve();\n }\n }\n\n public override canResolve() {\n return (\n super.canResolve() && this.evaluationResult.type !== \"awaiting-evaluation\"\n );\n }\n\n toJSON(visitor: Set<string> = new Set()): any {\n const hasVisited = visitor?.has(this.key);\n if (hasVisited) {\n return {\n key: this.key,\n resolved: this.resolved,\n cycle: true,\n dependencies: [],\n frontierDependencies: [],\n };\n }\n visitor?.add(this.key);\n return {\n key: this.key,\n resolved: this.resolved,\n evaluationResult: this.evaluationResult,\n dependencies: Array.from(this.getDependencies()).map((node) =>\n node.toJSON(visitor)\n ),\n frontierDependencies: Array.from(this.getFrontierDependencies()).map(\n (node) => node.toJSON(visitor)\n ),\n };\n }\n\n public override toString(): string {\n return getCellReference(this.cellAddress);\n }\n}\n"
5
+ "import type { DependencyManager } from \"../../core/managers/dependency-manager.mjs\";\nimport { FrontierDependencyManager } from \"../../core/managers/frontier-dependency-manager.mjs\";\nimport type { WorkbookManager } from \"../../core/managers/workbook-manager.mjs\";\nimport type {\n CellAddress,\n RangeAddress,\n SingleEvaluationResult,\n} from \"../../core/types.mjs\";\nimport { getCellReference, keyToCellAddress } from \"../../core/utils.mjs\";\n\nexport class EmptyCellEvaluationNode extends FrontierDependencyManager {\n public key: string;\n public cellAddress: CellAddress;\n private _evaluationResult: SingleEvaluationResult;\n\n constructor(\n public emptyCellKey: string,\n evaluationManager: DependencyManager,\n workbookManager: WorkbookManager\n ) {\n const cellAddress = keyToCellAddress(emptyCellKey);\n const emptyCellRange: RangeAddress = {\n range: {\n start: {\n col: cellAddress.colIndex,\n row: cellAddress.rowIndex,\n },\n end: {\n col: { type: \"number\", value: cellAddress.colIndex },\n row: { type: \"number\", value: cellAddress.rowIndex },\n },\n },\n sheetName: cellAddress.sheetName,\n workbookName: cellAddress.workbookName,\n };\n\n super(emptyCellRange, workbookManager, evaluationManager);\n\n this.cellAddress = cellAddress;\n this.key = emptyCellKey.replace(/^cell:/, \"empty:\");\n this._evaluationResult = {\n type: \"awaiting-evaluation\",\n waitingFor: this,\n errAddress: this,\n };\n }\n\n public setEvaluationResult(result: SingleEvaluationResult) {\n this._evaluationResult = result;\n }\n\n public get evaluationResult(): SingleEvaluationResult {\n return this._evaluationResult;\n }\n\n public override resolve() {\n if (this.canResolve()) {\n super.resolve();\n }\n }\n\n public override canResolve() {\n return (\n super.canResolve() && this.evaluationResult.type !== \"awaiting-evaluation\"\n );\n }\n\n toJSON(visitor: Set<string> = new Set()): any {\n const hasVisited = visitor?.has(this.key);\n if (hasVisited) {\n return {\n key: this.key,\n resolved: this.resolved,\n cycle: true,\n dependencies: [],\n frontierDependencies: [],\n };\n }\n visitor?.add(this.key);\n return {\n key: this.key,\n resolved: this.resolved,\n evaluationResult: this.evaluationResult,\n dependencies: Array.from(this.getDependencies()).map((node) =>\n node.toJSON(visitor)\n ),\n frontierDependencies: Array.from(this.getFrontierDependencies()).map(\n (node) => node.toJSON(visitor)\n ),\n };\n }\n\n public override toString(): string {\n return getCellReference(this.cellAddress);\n }\n}\n"
6
6
  ],
7
7
  "mappings": ";AACA;AAOA;AAAA;AAEO,MAAM,gCAAgC,0BAA0B;AAAA,EAM5D;AAAA,EALF;AAAA,EACA;AAAA,EACC;AAAA,EAER,WAAW,CACF,cACP,mBACA,iBACA;AAAA,IACA,MAAM,cAAc,iBAAiB,YAAY;AAAA,IACjD,MAAM,iBAA+B;AAAA,MACnC,OAAO;AAAA,QACL,OAAO;AAAA,UACL,KAAK,YAAY;AAAA,UACjB,KAAK,YAAY;AAAA,QACnB;AAAA,QACA,KAAK;AAAA,UACH,KAAK,EAAE,MAAM,UAAU,OAAO,YAAY,SAAS;AAAA,UACnD,KAAK,EAAE,MAAM,UAAU,OAAO,YAAY,SAAS;AAAA,QACrD;AAAA,MACF;AAAA,MACA,WAAW,YAAY;AAAA,MACvB,cAAc,YAAY;AAAA,IAC5B;AAAA,IAEA,MAAM,gBAAgB,iBAAiB,iBAAiB;AAAA,IApBjD;AAAA,IAsBP,KAAK,cAAc;AAAA,IACnB,KAAK,MAAM,aAAa,QAAQ,UAAU,QAAQ;AAAA,IAClD,KAAK,oBAAoB;AAAA,MACvB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGK,mBAAmB,CAAC,QAAgC;AAAA,IACzD,KAAK,oBAAoB;AAAA;AAAA,MAGhB,gBAAgB,GAA2B;AAAA,IACpD,OAAO,KAAK;AAAA;AAAA,EAGE,OAAO,GAAG;AAAA,IACxB,IAAI,KAAK,WAAW,GAAG;AAAA,MACrB,MAAM,QAAQ;AAAA,IAChB;AAAA;AAAA,EAGc,UAAU,GAAG;AAAA,IAC3B,OACE,MAAM,WAAW,KAAK,KAAK,iBAAiB,SAAS;AAAA;AAAA,EAIzD,MAAM,CAAC,UAAuB,IAAI,KAAY;AAAA,IAC5C,MAAM,aAAa,SAAS,IAAI,KAAK,GAAG;AAAA,IACxC,IAAI,YAAY;AAAA,MACd,OAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,UAAU,KAAK;AAAA,QACf,OAAO;AAAA,QACP,cAAc,CAAC;AAAA,QACf,sBAAsB,CAAC;AAAA,MACzB;AAAA,IACF;AAAA,IACA,SAAS,IAAI,KAAK,GAAG;AAAA,IACrB,OAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,UAAU,KAAK;AAAA,MACf,kBAAkB,KAAK;AAAA,MACvB,cAAc,MAAM,KAAK,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC,SACpD,KAAK,OAAO,OAAO,CACrB;AAAA,MACA,sBAAsB,MAAM,KAAK,KAAK,wBAAwB,CAAC,EAAE,IAC/D,CAAC,SAAS,KAAK,OAAO,OAAO,CAC/B;AAAA,IACF;AAAA;AAAA,EAGc,QAAQ,GAAW;AAAA,IACjC,OAAO,iBAAiB,KAAK,WAAW;AAAA;AAE5C;",
8
- "debugId": "E999CDF7A08C7F3A64756E2164756E21",
8
+ "debugId": "ED6EA7BCEB16F2A764756E2164756E21",
9
9
  "names": []
10
10
  }