@ricsam/formula-engine 0.0.2 → 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 (382) 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/lib.cjs +2 -1
  145. package/dist/cjs/lib.cjs.map +3 -3
  146. package/dist/cjs/package.json +1 -1
  147. package/dist/cjs/parser/formatter.cjs +2 -2
  148. package/dist/cjs/parser/formatter.cjs.map +2 -2
  149. package/dist/mjs/core/engine.mjs +7 -9
  150. package/dist/mjs/core/engine.mjs.map +3 -3
  151. package/dist/mjs/core/managers/dependency-manager.mjs +8 -8
  152. package/dist/mjs/core/managers/dependency-manager.mjs.map +3 -3
  153. package/dist/mjs/core/managers/evaluation-manager.mjs +10 -10
  154. package/dist/mjs/core/managers/evaluation-manager.mjs.map +2 -2
  155. package/dist/mjs/core/managers/frontier-dependency-manager.mjs.map +1 -1
  156. package/dist/mjs/core/managers/isDependencyNode.mjs +6 -6
  157. package/dist/mjs/core/managers/isDependencyNode.mjs.map +2 -2
  158. package/dist/mjs/core/managers/named-expression-manager.mjs.map +1 -1
  159. package/dist/mjs/core/managers/range-eval-order-builder.mjs +2 -2
  160. package/dist/mjs/core/managers/range-eval-order-builder.mjs.map +3 -3
  161. package/dist/mjs/core/managers/workbook-manager.mjs +3 -3
  162. package/dist/mjs/core/managers/workbook-manager.mjs.map +2 -2
  163. package/dist/mjs/core/types.mjs.map +2 -2
  164. package/dist/mjs/core/utils.mjs +2 -2
  165. package/dist/mjs/core/utils.mjs.map +2 -2
  166. package/dist/mjs/evaluator/arithmetic/add/add.mjs +2 -2
  167. package/dist/mjs/evaluator/arithmetic/add/add.mjs.map +2 -2
  168. package/dist/mjs/evaluator/arithmetic/divide/divide.mjs +2 -2
  169. package/dist/mjs/evaluator/arithmetic/divide/divide.mjs.map +2 -2
  170. package/dist/mjs/evaluator/arithmetic/multiply/multiply.mjs +2 -2
  171. package/dist/mjs/evaluator/arithmetic/multiply/multiply.mjs.map +2 -2
  172. package/dist/mjs/evaluator/arithmetic/power/power.mjs +2 -2
  173. package/dist/mjs/evaluator/arithmetic/power/power.mjs.map +2 -2
  174. package/dist/mjs/evaluator/arithmetic/subtract/subtract.mjs +2 -2
  175. package/dist/mjs/evaluator/arithmetic/subtract/subtract.mjs.map +2 -2
  176. package/dist/mjs/evaluator/comparison/equals.mjs.map +1 -1
  177. package/dist/mjs/evaluator/comparison/greater-than-or-equal.mjs +2 -2
  178. package/dist/mjs/evaluator/comparison/greater-than-or-equal.mjs.map +2 -2
  179. package/dist/mjs/evaluator/comparison/greater-than.mjs +2 -2
  180. package/dist/mjs/evaluator/comparison/greater-than.mjs.map +2 -2
  181. package/dist/mjs/evaluator/comparison/less-than-or-equal.mjs +2 -2
  182. package/dist/mjs/evaluator/comparison/less-than-or-equal.mjs.map +2 -2
  183. package/dist/mjs/evaluator/comparison/less-than.mjs +2 -2
  184. package/dist/mjs/evaluator/comparison/less-than.mjs.map +2 -2
  185. package/dist/mjs/evaluator/comparison/not-equals.mjs +2 -2
  186. package/dist/mjs/evaluator/comparison/not-equals.mjs.map +2 -2
  187. package/dist/mjs/evaluator/concatenation/concatenate.mjs +2 -2
  188. package/dist/mjs/evaluator/concatenation/concatenate.mjs.map +2 -2
  189. package/dist/mjs/evaluator/dependency-nodes/ast-evaluation-node.mjs +2 -2
  190. package/dist/mjs/evaluator/dependency-nodes/ast-evaluation-node.mjs.map +2 -2
  191. package/dist/mjs/evaluator/dependency-nodes/base-eval-node.mjs.map +2 -2
  192. package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs +2 -2
  193. package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs.map +2 -2
  194. package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs +3 -3
  195. package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs.map +2 -2
  196. package/dist/mjs/evaluator/dependency-nodes/spill-meta-node.mjs +2 -2
  197. package/dist/mjs/evaluator/dependency-nodes/spill-meta-node.mjs.map +2 -2
  198. package/dist/mjs/evaluator/evaluate-scalar-operator.mjs.map +1 -1
  199. package/dist/mjs/evaluator/evaluation-context.mjs.map +2 -2
  200. package/dist/mjs/evaluator/evaluation-error.mjs.map +1 -1
  201. package/dist/mjs/evaluator/formula-evaluator.mjs +7 -7
  202. package/dist/mjs/evaluator/formula-evaluator.mjs.map +3 -3
  203. package/dist/mjs/evaluator/range-evaluation-node.mjs +3 -3
  204. package/dist/mjs/evaluator/range-evaluation-node.mjs.map +2 -2
  205. package/dist/mjs/functions/_template/template.mjs.map +1 -1
  206. package/dist/mjs/functions/array/sequence/sequence.mjs +4 -4
  207. package/dist/mjs/functions/array/sequence/sequence.mjs.map +2 -2
  208. package/dist/mjs/functions/criteria-parser.mjs.map +1 -1
  209. package/dist/mjs/functions/criteria-utils.mjs +8 -8
  210. package/dist/mjs/functions/criteria-utils.mjs.map +3 -3
  211. package/dist/mjs/functions/function-utils.mjs.map +1 -1
  212. package/dist/mjs/functions/index.mjs.map +1 -1
  213. package/dist/mjs/functions/information/cell/cell.mjs +3 -3
  214. package/dist/mjs/functions/information/cell/cell.mjs.map +2 -2
  215. package/dist/mjs/functions/information/column/column.mjs +4 -4
  216. package/dist/mjs/functions/information/column/column.mjs.map +2 -2
  217. package/dist/mjs/functions/information/row/row.mjs +4 -4
  218. package/dist/mjs/functions/information/row/row.mjs.map +2 -2
  219. package/dist/mjs/functions/logical/and/and.mjs +2 -2
  220. package/dist/mjs/functions/logical/and/and.mjs.map +2 -2
  221. package/dist/mjs/functions/logical/if/if.mjs +2 -2
  222. package/dist/mjs/functions/logical/if/if.mjs.map +3 -3
  223. package/dist/mjs/functions/logical/iferror/iferror.mjs +3 -3
  224. package/dist/mjs/functions/logical/iferror/iferror.mjs.map +2 -2
  225. package/dist/mjs/functions/logical/or/or.mjs +2 -2
  226. package/dist/mjs/functions/logical/or/or.mjs.map +2 -2
  227. package/dist/mjs/functions/lookup/count/count-utils.mjs.map +1 -1
  228. package/dist/mjs/functions/lookup/count/count.mjs +2 -2
  229. package/dist/mjs/functions/lookup/count/count.mjs.map +2 -2
  230. package/dist/mjs/functions/lookup/count/countif.mjs +2 -2
  231. package/dist/mjs/functions/lookup/count/countif.mjs.map +2 -2
  232. package/dist/mjs/functions/lookup/count/countifs.mjs.map +1 -1
  233. package/dist/mjs/functions/lookup/index-lookup/index-lookup.mjs +2 -2
  234. package/dist/mjs/functions/lookup/index-lookup/index-lookup.mjs.map +2 -2
  235. package/dist/mjs/functions/lookup/match/match.mjs +2 -2
  236. package/dist/mjs/functions/lookup/match/match.mjs.map +2 -2
  237. package/dist/mjs/functions/lookup/xlookup/xlookup.mjs +2 -2
  238. package/dist/mjs/functions/lookup/xlookup/xlookup.mjs.map +2 -2
  239. package/dist/mjs/functions/math/average/average-utils.mjs +2 -2
  240. package/dist/mjs/functions/math/average/average-utils.mjs.map +2 -2
  241. package/dist/mjs/functions/math/average/average.mjs +2 -2
  242. package/dist/mjs/functions/math/average/average.mjs.map +2 -2
  243. package/dist/mjs/functions/math/average/averageif.mjs +3 -3
  244. package/dist/mjs/functions/math/average/averageif.mjs.map +3 -3
  245. package/dist/mjs/functions/math/average/averageifs.mjs.map +2 -2
  246. package/dist/mjs/functions/math/ceiling/ceiling.mjs +2 -2
  247. package/dist/mjs/functions/math/ceiling/ceiling.mjs.map +3 -3
  248. package/dist/mjs/functions/math/max/max-utils.mjs +2 -2
  249. package/dist/mjs/functions/math/max/max-utils.mjs.map +2 -2
  250. package/dist/mjs/functions/math/max/max.mjs +2 -2
  251. package/dist/mjs/functions/math/max/max.mjs.map +2 -2
  252. package/dist/mjs/functions/math/max/maxif.mjs +2 -2
  253. package/dist/mjs/functions/math/max/maxif.mjs.map +2 -2
  254. package/dist/mjs/functions/math/max/maxifs.mjs.map +2 -2
  255. package/dist/mjs/functions/math/min/min-utils.mjs +2 -2
  256. package/dist/mjs/functions/math/min/min-utils.mjs.map +2 -2
  257. package/dist/mjs/functions/math/min/min.mjs +2 -2
  258. package/dist/mjs/functions/math/min/min.mjs.map +2 -2
  259. package/dist/mjs/functions/math/min/minif.mjs +2 -2
  260. package/dist/mjs/functions/math/min/minif.mjs.map +2 -2
  261. package/dist/mjs/functions/math/min/minifs.mjs.map +2 -2
  262. package/dist/mjs/functions/math/sum/sum.mjs +2 -2
  263. package/dist/mjs/functions/math/sum/sum.mjs.map +2 -2
  264. package/dist/mjs/functions/math/sum/sumif.mjs +2 -2
  265. package/dist/mjs/functions/math/sum/sumif.mjs.map +2 -2
  266. package/dist/mjs/functions/math/sum/sumifs.mjs.map +2 -2
  267. package/dist/mjs/functions/math/sum/summation-utils.mjs.map +1 -1
  268. package/dist/mjs/functions/reference/address/address.mjs +2 -2
  269. package/dist/mjs/functions/reference/address/address.mjs.map +2 -2
  270. package/dist/mjs/functions/reference/indirect/indirect.mjs +3 -3
  271. package/dist/mjs/functions/reference/indirect/indirect.mjs.map +3 -3
  272. package/dist/mjs/functions/reference/offset/offset.mjs +3 -3
  273. package/dist/mjs/functions/reference/offset/offset.mjs.map +2 -2
  274. package/dist/mjs/functions/text/concatenate/concatenate.mjs +2 -2
  275. package/dist/mjs/functions/text/concatenate/concatenate.mjs.map +2 -2
  276. package/dist/mjs/functions/text/exact/exact.mjs +2 -2
  277. package/dist/mjs/functions/text/exact/exact.mjs.map +2 -2
  278. package/dist/mjs/functions/text/find/find.mjs +2 -2
  279. package/dist/mjs/functions/text/find/find.mjs.map +3 -3
  280. package/dist/mjs/functions/text/left/left.mjs +3 -3
  281. package/dist/mjs/functions/text/left/left.mjs.map +2 -2
  282. package/dist/mjs/functions/text/len/len.mjs +2 -2
  283. package/dist/mjs/functions/text/len/len.mjs.map +3 -3
  284. package/dist/mjs/functions/text/mid/mid.mjs +3 -3
  285. package/dist/mjs/functions/text/mid/mid.mjs.map +2 -2
  286. package/dist/mjs/functions/text/right/right.mjs +4 -4
  287. package/dist/mjs/functions/text/right/right.mjs.map +3 -3
  288. package/dist/mjs/functions/text/text-helpers.mjs +2 -2
  289. package/dist/mjs/functions/text/text-helpers.mjs.map +2 -2
  290. package/dist/mjs/functions/text/textjoin/textjoin.mjs +2 -2
  291. package/dist/mjs/functions/text/textjoin/textjoin.mjs.map +3 -3
  292. package/dist/mjs/lib.mjs +2 -1
  293. package/dist/mjs/lib.mjs.map +3 -3
  294. package/dist/mjs/package.json +1 -1
  295. package/dist/mjs/parser/formatter.mjs +2 -2
  296. package/dist/mjs/parser/formatter.mjs.map +2 -2
  297. package/dist/types/core/engine.d.ts +5 -1
  298. package/dist/types/core/managers/dependency-manager.d.ts +7 -7
  299. package/dist/types/core/managers/dependency-node.d.ts +5 -5
  300. package/dist/types/core/managers/evaluation-manager.d.ts +4 -4
  301. package/dist/types/core/managers/frontier-dependency-manager.d.ts +2 -2
  302. package/dist/types/core/managers/named-expression-manager.d.ts +2 -2
  303. package/dist/types/core/managers/workbook-manager.d.ts +1 -1
  304. package/dist/types/core/types.d.ts +3 -3
  305. package/dist/types/evaluator/arithmetic/add/add.d.ts +1 -1
  306. package/dist/types/evaluator/arithmetic/divide/divide.d.ts +1 -1
  307. package/dist/types/evaluator/arithmetic/multiply/multiply.d.ts +1 -1
  308. package/dist/types/evaluator/arithmetic/power/power.d.ts +1 -1
  309. package/dist/types/evaluator/arithmetic/subtract/subtract.d.ts +1 -1
  310. package/dist/types/evaluator/comparison/equals.d.ts +1 -1
  311. package/dist/types/evaluator/comparison/greater-than-or-equal.d.ts +1 -1
  312. package/dist/types/evaluator/comparison/greater-than.d.ts +1 -1
  313. package/dist/types/evaluator/comparison/less-than-or-equal.d.ts +1 -1
  314. package/dist/types/evaluator/comparison/less-than.d.ts +1 -1
  315. package/dist/types/evaluator/comparison/not-equals.d.ts +1 -1
  316. package/dist/types/evaluator/concatenation/concatenate.d.ts +1 -1
  317. package/dist/types/evaluator/dependency-nodes/ast-evaluation-node.d.ts +2 -2
  318. package/dist/types/evaluator/dependency-nodes/base-eval-node.d.ts +1 -1
  319. package/dist/types/evaluator/dependency-nodes/cell-value-node.d.ts +1 -1
  320. package/dist/types/evaluator/dependency-nodes/empty-cell-evaluation-node.d.ts +4 -4
  321. package/dist/types/evaluator/dependency-nodes/spill-meta-node.d.ts +1 -1
  322. package/dist/types/evaluator/evaluate-scalar-operator.d.ts +1 -1
  323. package/dist/types/evaluator/evaluation-context.d.ts +3 -3
  324. package/dist/types/evaluator/evaluation-error.d.ts +2 -2
  325. package/dist/types/evaluator/formula-evaluator.d.ts +5 -5
  326. package/dist/types/evaluator/range-evaluation-node.d.ts +4 -4
  327. package/dist/types/functions/_template/template.d.ts +1 -1
  328. package/dist/types/functions/array/sequence/sequence.d.ts +1 -1
  329. package/dist/types/functions/criteria-parser.d.ts +1 -1
  330. package/dist/types/functions/criteria-utils.d.ts +5 -5
  331. package/dist/types/functions/function-utils.d.ts +5 -5
  332. package/dist/types/functions/index.d.ts +1 -1
  333. package/dist/types/functions/information/cell/cell.d.ts +1 -1
  334. package/dist/types/functions/information/column/column.d.ts +1 -1
  335. package/dist/types/functions/information/row/row.d.ts +1 -1
  336. package/dist/types/functions/logical/and/and.d.ts +1 -1
  337. package/dist/types/functions/logical/if/if.d.ts +1 -1
  338. package/dist/types/functions/logical/iferror/iferror.d.ts +1 -1
  339. package/dist/types/functions/logical/or/or.d.ts +1 -1
  340. package/dist/types/functions/lookup/count/count-utils.d.ts +2 -2
  341. package/dist/types/functions/lookup/count/count.d.ts +1 -1
  342. package/dist/types/functions/lookup/count/countif.d.ts +1 -1
  343. package/dist/types/functions/lookup/count/countifs.d.ts +1 -1
  344. package/dist/types/functions/lookup/index-lookup/index-lookup.d.ts +1 -1
  345. package/dist/types/functions/lookup/match/match.d.ts +1 -1
  346. package/dist/types/functions/lookup/xlookup/xlookup.d.ts +1 -1
  347. package/dist/types/functions/math/average/average-utils.d.ts +2 -2
  348. package/dist/types/functions/math/average/average.d.ts +1 -1
  349. package/dist/types/functions/math/average/averageif.d.ts +1 -1
  350. package/dist/types/functions/math/average/averageifs.d.ts +1 -1
  351. package/dist/types/functions/math/ceiling/ceiling.d.ts +1 -1
  352. package/dist/types/functions/math/max/max-utils.d.ts +2 -2
  353. package/dist/types/functions/math/max/max.d.ts +1 -1
  354. package/dist/types/functions/math/max/maxif.d.ts +1 -1
  355. package/dist/types/functions/math/max/maxifs.d.ts +1 -1
  356. package/dist/types/functions/math/min/min-utils.d.ts +2 -2
  357. package/dist/types/functions/math/min/min.d.ts +1 -1
  358. package/dist/types/functions/math/min/minif.d.ts +1 -1
  359. package/dist/types/functions/math/min/minifs.d.ts +1 -1
  360. package/dist/types/functions/math/sum/sum.d.ts +1 -1
  361. package/dist/types/functions/math/sum/sumif.d.ts +1 -1
  362. package/dist/types/functions/math/sum/sumifs.d.ts +1 -1
  363. package/dist/types/functions/math/sum/summation-utils.d.ts +1 -1
  364. package/dist/types/functions/reference/address/address.d.ts +1 -1
  365. package/dist/types/functions/reference/indirect/indirect.d.ts +1 -1
  366. package/dist/types/functions/reference/offset/offset.d.ts +1 -1
  367. package/dist/types/functions/text/concatenate/concatenate.d.ts +1 -1
  368. package/dist/types/functions/text/exact/exact.d.ts +1 -1
  369. package/dist/types/functions/text/find/find.d.ts +1 -1
  370. package/dist/types/functions/text/left/left.d.ts +1 -1
  371. package/dist/types/functions/text/len/len.d.ts +1 -1
  372. package/dist/types/functions/text/mid/mid.d.ts +1 -1
  373. package/dist/types/functions/text/right/right.d.ts +1 -1
  374. package/dist/types/functions/text/text-helpers.d.ts +3 -3
  375. package/dist/types/functions/text/textjoin/textjoin.d.ts +1 -1
  376. package/dist/types/lib.d.ts +1 -0
  377. package/package.json +1 -1
  378. package/dist/cjs/core/managers/index.cjs +0 -49
  379. package/dist/cjs/core/managers/index.cjs.map +0 -10
  380. package/dist/mjs/core/managers/index.mjs +0 -21
  381. package/dist/mjs/core/managers/index.mjs.map +0 -10
  382. package/dist/types/core/managers/index.d.ts +0 -7
@@ -32,7 +32,7 @@ __export(exports_add, {
32
32
  add: () => add
33
33
  });
34
34
  module.exports = __toCommonJS(exports_add);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../../core/types.cjs");
36
36
  var add = (left, right, context) => {
37
37
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
38
38
  return {
@@ -79,4 +79,4 @@ var add = (left, right, context) => {
79
79
  };
80
80
  };
81
81
 
82
- //# debugId=9EE8E477C2D2AFC864756E2164756E21
82
+ //# debugId=A5D0997DD7153D9764756E2164756E21
@@ -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.cjs\";\nimport { FormulaError } from \"../../../core/types.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;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,0BAAa;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,0BAAa;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,0BAAa;AAAA,IAClB,SAAS,cAAc,KAAK,YAAY,MAAM;AAAA,IAC9C,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "9EE8E477C2D2AFC864756E2164756E21",
8
+ "debugId": "A5D0997DD7153D9764756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_divide, {
32
32
  divide: () => divide
33
33
  });
34
34
  module.exports = __toCommonJS(exports_divide);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../../core/types.cjs");
36
36
  var divide = (left, right, context) => {
37
37
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
38
38
  return {
@@ -104,4 +104,4 @@ var divide = (left, right, context) => {
104
104
  };
105
105
  };
106
106
 
107
- //# debugId=B609DB91D7F80EE764756E2164756E21
107
+ //# debugId=83AE6629862E4FBE64756E2164756E21
@@ -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.cjs\";\nimport { FormulaError } from \"../../../core/types.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;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,0BAAa;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,0BAAa;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,0BAAa;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,0BAAa;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,0BAAa;AAAA,IAClB,SAAS,iBAAiB,KAAK,YAAY,MAAM;AAAA,IACjD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "B609DB91D7F80EE764756E2164756E21",
8
+ "debugId": "83AE6629862E4FBE64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_multiply, {
32
32
  multiply: () => multiply
33
33
  });
34
34
  module.exports = __toCommonJS(exports_multiply);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../../core/types.cjs");
36
36
  var multiply = (left, right, context) => {
37
37
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
38
38
  return {
@@ -90,4 +90,4 @@ var multiply = (left, right, context) => {
90
90
  };
91
91
  };
92
92
 
93
- //# debugId=585A61464147AE4264756E2164756E21
93
+ //# debugId=ABD8ABB75C54A53864756E2164756E21
@@ -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.cjs\";\nimport { FormulaError } from \"../../../core/types.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;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,0BAAa;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,0BAAa;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,0BAAa;AAAA,IAClB,SAAS,mBAAmB,KAAK,YAAY,MAAM;AAAA,IACnD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "585A61464147AE4264756E2164756E21",
8
+ "debugId": "ABD8ABB75C54A53864756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_power, {
32
32
  power: () => power
33
33
  });
34
34
  module.exports = __toCommonJS(exports_power);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../../core/types.cjs");
36
36
  var power = (left, right, context) => {
37
37
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
38
38
  return {
@@ -122,4 +122,4 @@ var power = (left, right, context) => {
122
122
  };
123
123
  };
124
124
 
125
- //# debugId=73FDE97BE41666D364756E2164756E21
125
+ //# debugId=A0C3BAD00C89A1D864756E2164756E21
@@ -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.cjs\";\nimport { FormulaError } from \"../../../core/types.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;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,0BAAa;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,0BAAa;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,0BAAa;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,0BAAa;AAAA,IAClB,SAAS,uBAAuB,KAAK,YAAY,MAAM;AAAA,IACvD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "73FDE97BE41666D364756E2164756E21",
8
+ "debugId": "A0C3BAD00C89A1D864756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_subtract, {
32
32
  subtract: () => subtract
33
33
  });
34
34
  module.exports = __toCommonJS(exports_subtract);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../../core/types.cjs");
36
36
  var subtract = (left, right, context) => {
37
37
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
38
38
  return {
@@ -81,4 +81,4 @@ var subtract = (left, right, context) => {
81
81
  };
82
82
  };
83
83
 
84
- //# debugId=4D18B735805E07BC64756E2164756E21
84
+ //# debugId=45C1B6DFFA94BBEA64756E2164756E21
@@ -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.cjs\";\nimport { FormulaError } from \"../../../core/types.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;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,0BAAa;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,0BAAa;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,0BAAa;AAAA,IAClB,SAAS,mBAAmB,KAAK,YAAY,MAAM;AAAA,IACnD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "4D18B735805E07BC64756E2164756E21",
8
+ "debugId": "45C1B6DFFA94BBEA64756E2164756E21",
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.cjs\";\nimport { FormulaError } from \"../../core/types.cjs\";\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": "2C4AFBAA566A87C564756E2164756E21",
@@ -32,7 +32,7 @@ __export(exports_greater_than_or_equal, {
32
32
  greaterThanOrEqual: () => greaterThanOrEqual
33
33
  });
34
34
  module.exports = __toCommonJS(exports_greater_than_or_equal);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../core/types.cjs");
36
36
  var import_less_than = require("./less-than.cjs");
37
37
  var greaterThanOrEqual = (left, right, context) => {
38
38
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
@@ -58,4 +58,4 @@ var greaterThanOrEqual = (left, right, context) => {
58
58
  };
59
59
  };
60
60
 
61
- //# debugId=C316B0C029C623B064756E2164756E21
61
+ //# debugId=73E0122E9857568264756E2164756E21
@@ -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.cjs\";\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.cjs\";\nimport { FormulaError } from \"../../core/types.cjs\";\nimport { lessThan } from \"./less-than.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;AACyB,IAAzB;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,0BAAa;AAAA,MAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,MAClD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,WAAW,0BAAS,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,0BAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "C316B0C029C623B064756E2164756E21",
8
+ "debugId": "73E0122E9857568264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_greater_than, {
32
32
  greaterThan: () => greaterThan
33
33
  });
34
34
  module.exports = __toCommonJS(exports_greater_than);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../core/types.cjs");
36
36
  var import_less_than_or_equal = require("./less-than-or-equal.cjs");
37
37
  var greaterThan = (left, right, context) => {
38
38
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
@@ -58,4 +58,4 @@ var greaterThan = (left, right, context) => {
58
58
  };
59
59
  };
60
60
 
61
- //# debugId=10C8313A792287E064756E2164756E21
61
+ //# debugId=54C39A2F0592101E64756E2164756E21
@@ -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.cjs\";\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.cjs\";\nimport { FormulaError } from \"../../core/types.cjs\";\nimport { lessThanOrEqual } from \"./less-than-or-equal.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;AACgC,IAAhC;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,0BAAa;AAAA,MAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,MAClD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,0CAAgB,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,0BAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "10C8313A792287E064756E2164756E21",
8
+ "debugId": "54C39A2F0592101E64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_less_than_or_equal, {
32
32
  lessThanOrEqual: () => lessThanOrEqual
33
33
  });
34
34
  module.exports = __toCommonJS(exports_less_than_or_equal);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../core/types.cjs");
36
36
  var import_less_than = require("./less-than.cjs");
37
37
  var import_equals = require("./equals.cjs");
38
38
  var lessThanOrEqual = (left, right, context) => {
@@ -66,4 +66,4 @@ var lessThanOrEqual = (left, right, context) => {
66
66
  };
67
67
  };
68
68
 
69
- //# debugId=1A7D257FB02E5A2764756E2164756E21
69
+ //# debugId=9E5011BF96D756C964756E2164756E21
@@ -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.cjs\";\nimport { equals } from \"./equals.cjs\";\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.cjs\";\nimport { FormulaError } from \"../../core/types.cjs\";\nimport { lessThan } from \"./less-than.cjs\";\nimport { equals } from \"./equals.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;AACyB,IAAzB;AACuB,IAAvB;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,0BAAa;AAAA,MAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,MAClD,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,WAAW,0BAAS,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,qBAAO,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,0BAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "1A7D257FB02E5A2764756E2164756E21",
8
+ "debugId": "9E5011BF96D756C964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_less_than, {
32
32
  lessThan: () => lessThan
33
33
  });
34
34
  module.exports = __toCommonJS(exports_less_than);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../core/types.cjs");
36
36
  var lessThan = (left, right, context) => {
37
37
  if (left.type !== "number" && left.type !== "infinity" || right.type !== "number" && right.type !== "infinity") {
38
38
  return {
@@ -65,4 +65,4 @@ var lessThan = (left, right, context) => {
65
65
  };
66
66
  };
67
67
 
68
- //# debugId=0FA7831C844593F364756E2164756E21
68
+ //# debugId=E05D3E66898EA2FC64756E2164756E21
@@ -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.cjs\";\nimport { FormulaError } from \"../../core/types.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;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,0BAAa;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,0BAAa;AAAA,IAClB,SAAS,kBAAkB,KAAK,YAAY,MAAM;AAAA,IAClD,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "0FA7831C844593F364756E2164756E21",
8
+ "debugId": "E05D3E66898EA2FC64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_not_equals, {
32
32
  notEquals: () => notEquals
33
33
  });
34
34
  module.exports = __toCommonJS(exports_not_equals);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../core/types.cjs");
36
36
  var import_equals = require("./equals.cjs");
37
37
  var notEquals = (left, right, context) => {
38
38
  const equalsResult = import_equals.equals(left, right, context);
@@ -50,4 +50,4 @@ var notEquals = (left, right, context) => {
50
50
  };
51
51
  };
52
52
 
53
- //# debugId=D72C2C9D0BCFD09E64756E2164756E21
53
+ //# debugId=A9B57AE1A701EDB164756E2164756E21
@@ -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.cjs\";\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.cjs\";\nimport { FormulaError } from \"../../core/types.cjs\";\nimport { equals } from \"./equals.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;AACuB,IAAvB;AAMO,IAAM,YAAiC,CAAC,MAAM,OAAO,YAAY;AAAA,EACtE,MAAM,eAAe,qBAAO,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,0BAAa;AAAA,IAClB,SAAS;AAAA,IACT,YAAY,QAAQ;AAAA,EACtB;AAAA;",
8
- "debugId": "D72C2C9D0BCFD09E64756E2164756E21",
8
+ "debugId": "A9B57AE1A701EDB164756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_concatenate, {
32
32
  concatenate: () => concatenate
33
33
  });
34
34
  module.exports = __toCommonJS(exports_concatenate);
35
- var import_types = require("src/core/types");
35
+ var import_types = require("../../core/types.cjs");
36
36
  var concatenate = (left, right, context) => {
37
37
  let leftStr;
38
38
  let rightStr;
@@ -69,4 +69,4 @@ var concatenate = (left, right, context) => {
69
69
  return { type: "string", value: leftStr + rightStr };
70
70
  };
71
71
 
72
- //# debugId=C23CBACF7D30CE7B64756E2164756E21
72
+ //# debugId=4D4ACC1ED63C125264756E2164756E21
@@ -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.cjs\";\nimport { FormulaError } from \"../../core/types.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6B,IAA7B;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,0BAAa;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,0BAAa;AAAA,QAClB,SAAS,sBAAsB,MAAM;AAAA,QACrC,YAAY,QAAQ;AAAA,MACtB;AAAA;AAAA,EAGJ,OAAO,EAAE,MAAM,UAAU,OAAO,UAAU,SAAS;AAAA;",
8
- "debugId": "C23CBACF7D30CE7B64756E2164756E21",
8
+ "debugId": "4D4ACC1ED63C125264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_ast_evaluation_node, {
32
32
  AstEvaluationNode: () => AstEvaluationNode
33
33
  });
34
34
  module.exports = __toCommonJS(exports_ast_evaluation_node);
35
- var import_formatter = require("src/parser/formatter");
35
+ var import_formatter = require("../../parser/formatter.cjs");
36
36
  var import_base_eval_node = require("./base-eval-node.cjs");
37
37
 
38
38
  class AstEvaluationNode extends import_base_eval_node.BaseEvalNode {
@@ -55,4 +55,4 @@ class AstEvaluationNode extends import_base_eval_node.BaseEvalNode {
55
55
  }
56
56
  }
57
57
 
58
- //# debugId=7611448A774E9E8F64756E2164756E21
58
+ //# debugId=1EE9A66B1752F00264756E2164756E21
@@ -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.cjs\";\nimport { BaseEvalNode } from \"./base-eval-node.cjs\";\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.cjs\";\nimport type { ASTNode } from \"../../parser/ast.cjs\";\nimport { astToString } from \"../../parser/formatter.cjs\";\nimport type { ContextDependency } from \"../evaluation-context.cjs\";\nimport { BaseEvalNode } from \"./base-eval-node.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE4B,IAA5B;AAE6B,IAA7B;AAAA;AAEO,MAAM,0BAA0B,mCAAuC;AAAA,EAGnE;AAAA,EAFD;AAAA,EACR,WAAW,CACF,KACP,mBACA;AAAA,IACA,MAAM,MAAM,OAAO,6BAAY,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": "7611448A774E9E8F64756E2164756E21",
8
+ "debugId": "1EE9A66B1752F00264756E2164756E21",
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.cjs\";\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.cjs\";\nimport type { SpillMetaNode } from \"./spill-meta-node.cjs\";\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": "730E16EF65AFBFF564756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,7 +32,7 @@ __export(exports_cell_value_node, {
32
32
  CellValueNode: () => CellValueNode
33
33
  });
34
34
  module.exports = __toCommonJS(exports_cell_value_node);
35
- var import_utils = require("src/core/utils");
35
+ var import_utils = require("../../core/utils.cjs");
36
36
  var import_base_eval_node = require("./base-eval-node.cjs");
37
37
 
38
38
  class CellValueNode extends import_base_eval_node.BaseEvalNode {
@@ -51,4 +51,4 @@ class CellValueNode extends import_base_eval_node.BaseEvalNode {
51
51
  }
52
52
  }
53
53
 
54
- //# debugId=B4C45C0F9C22A36E64756E2164756E21
54
+ //# debugId=A03B8D9FD71C213A64756E2164756E21
@@ -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.cjs\";\nimport type { SpillMetaNode } from \"./spill-meta-node.cjs\";\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.cjs\";\nimport { getCellReference, keyToCellAddress } from \"../../core/utils.cjs\";\nimport { BaseEvalNode } from \"./base-eval-node.cjs\";\nimport type { SpillMetaNode } from \"./spill-meta-node.cjs\";\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOmD,IAAnD;AAC6B,IAA7B;AAAA;AAGO,MAAM,sBAAsB,mCAAqC;AAAA,EACtD;AAAA,EAEhB,WAAW,CAAC,KAAa;AAAA,IACvB,MAAM,cAAc,8BAAiB,GAAG;AAAA,IACxC,MAAM,GAAG;AAAA,IAET,KAAK,cAAc;AAAA;AAAA,EAGL,QAAQ,GAAW;AAAA,IACjC,OAAO,8BAAiB,KAAK,WAAW;AAAA;AAAA,EAG1C;AAAA,EAEA,gBAAgB,CAAC,MAAqB;AAAA,IACpC,KAAK,YAAY;AAAA;AAErB;",
8
- "debugId": "B4C45C0F9C22A36E64756E2164756E21",
8
+ "debugId": "A03B8D9FD71C213A64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,8 +32,8 @@ __export(exports_empty_cell_evaluation_node, {
32
32
  EmptyCellEvaluationNode: () => EmptyCellEvaluationNode
33
33
  });
34
34
  module.exports = __toCommonJS(exports_empty_cell_evaluation_node);
35
- var import_frontier_dependency_manager = require("src/core/managers/frontier-dependency-manager");
36
- var import_utils = require("src/core/utils");
35
+ var import_frontier_dependency_manager = require("../../core/managers/frontier-dependency-manager.cjs");
36
+ var import_utils = require("../../core/utils.cjs");
37
37
 
38
38
  class EmptyCellEvaluationNode extends import_frontier_dependency_manager.FrontierDependencyManager {
39
39
  emptyCellKey;
@@ -105,4 +105,4 @@ class EmptyCellEvaluationNode extends import_frontier_dependency_manager.Frontie
105
105
  }
106
106
  }
107
107
 
108
- //# debugId=AF20722CA24C355764756E2164756E21
108
+ //# debugId=6556C3EFCDECEA7164756E2164756E21