@sheetxl/sdk 0.2.0 → 0.2.6

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 (104) hide show
  1. package/LICENSE.md +11 -11
  2. package/README.md +28 -28
  3. package/browser/cjs/{CdfvnWo6_IK3Fzq0.cjs → B-H7eMELHIPn-bzr.cjs} +2 -2
  4. package/browser/cjs/{Cc5aUIaNV7C6WgnM.cjs → B2O3RNuGifH03sly.cjs} +1 -1
  5. package/browser/cjs/{siH6kYQUHkUQ0ud3.cjs → BCpPSYDEqyb04P1R.cjs} +1 -1
  6. package/browser/cjs/{Cbg7-e2B7HHgEu8w.cjs → BLG6_L_HCAO81YQL.cjs} +1 -1
  7. package/browser/cjs/{D7Gyg9y2-05KXVPA.cjs → BMR7gbu-c18QBWPt.cjs} +1 -1
  8. package/browser/cjs/{5_ioZkWKzcRiGpqX.cjs → BjgRUxx-XDOpnPL-.cjs} +1 -1
  9. package/browser/cjs/{In3aswTuGcahNISC.cjs → BqNVHurf7quGcU6z.cjs} +1 -1
  10. package/browser/cjs/{DkRHE6564gX8cPR4.cjs → BsTj3RQ6ZEGPgKcQ.cjs} +6 -6
  11. package/browser/cjs/{BO_zHy8EvBjzKTTE.cjs → Bu47JGsCj17hmXc_.cjs} +6 -6
  12. package/browser/cjs/{BqkKTOxhC5PGevdY.cjs → BuGJzOcaTQHrFpAi.cjs} +2 -2
  13. package/browser/cjs/{BKlSYz3ScHrPHG1S.cjs → C-hZNDAwWuxBFIL6.cjs} +1 -1
  14. package/browser/cjs/{CUSqIIQ1v1So10N8.cjs → CCT2GkFj7ICxXUES.cjs} +1 -1
  15. package/browser/cjs/{x735rbpjcVNZAELD.cjs → CFzPZOhjGf04KRj4.cjs} +2 -2
  16. package/browser/cjs/{DGQ926-FmaH42zCu.cjs → CGZGNjsBxID1puTh.cjs} +1 -1
  17. package/browser/cjs/{1DkliyjTelArGdk8.cjs → CTwmDtiXYiM_eVmk.cjs} +5 -5
  18. package/browser/cjs/{gvW4DBMJ2Q86TPaO.cjs → CbkB0mQ12rY_vVQA.cjs} +1 -1
  19. package/browser/cjs/{nblkQ00TCry9Qzn4.cjs → Ci-LITf7FutalLC4.cjs} +2 -2
  20. package/browser/cjs/{AeG55PwmlHYHMEWu.cjs → CkNaOiSUo75nvWtM.cjs} +3 -3
  21. package/browser/cjs/{cRgB0DbzWnM71NID.cjs → CorV6bYZuJtzRl_o.cjs} +1 -1
  22. package/browser/cjs/{C3j3HH6A1kmU62xS.cjs → CzyTW1VE-AUeXvey.cjs} +4 -4
  23. package/browser/cjs/{B19pkW2FOL1HanwY.cjs → D9VWafL4GO91s-ss.cjs} +1 -1
  24. package/browser/cjs/{Cgk0oM54RPjkOdU-.cjs → DNwyFP0z1WUsz7Mv.cjs} +1 -1
  25. package/browser/cjs/{BSH-z2Br97_ODV6B.cjs → DREJZJuBE505tfIa.cjs} +1 -1
  26. package/browser/cjs/{DMfjm3ERvmaG5uLN.cjs → DilLEdPuHqLbh5sf.cjs} +1 -1
  27. package/browser/cjs/{a2X0AoD-LIj2pvHT.cjs → Dl_4SDyZOgkXMEJC.cjs} +1 -1
  28. package/browser/cjs/{DQ6JFrKybMWMkLNI.cjs → DmZ4H5WXrLU8_ULc.cjs} +1 -1
  29. package/browser/cjs/{exJLa23TwhF6fSCr.cjs → Dvs5Vm4RFD3Taixm.cjs} +1 -1
  30. package/browser/cjs/{Cgxubtho9jWhf6Z1.cjs → Ib1rBKg28o0eoK5d.cjs} +1 -1
  31. package/browser/cjs/{B9lmXTGeBcKwHW-W.cjs → dJ-MSsMtF8KRc16n.cjs} +2 -2
  32. package/browser/cjs/index.cjs +2 -2
  33. package/browser/cjs/{CtmZKdjXPt1AKEec.cjs → lXdOsnm-jZHQBBBW.cjs} +1 -1
  34. package/browser/cjs/{BF3qrbtjGaAJ3Oil.cjs → mv0n6HW37Bg9vbEq.cjs} +1 -1
  35. package/browser/cjs/{DXcDdZIJJuPvu6mJ.cjs → qAMXqcWKLU1dQ_3h.cjs} +1 -1
  36. package/browser/cjs/{Bkpl_jG3ccvUu_Yw.cjs → r9g18mieulrXQm1L.cjs} +1 -1
  37. package/browser/esm/{BNAudEJUY1wzgi8N.mjs → -P8qNXxTWhuiSr9M.mjs} +2 -2
  38. package/{node/esm/CiehTYA34Z0zg2ua.mjs → browser/esm/528R85wwImPG1QAx.mjs} +1 -1
  39. package/browser/esm/{BgfB52nR-WlIMUxt.mjs → AGVzrwoDbttD6w4x.mjs} +1 -1
  40. package/{node/esm/BKJWt-MDgSRMHI4-.mjs → browser/esm/B4BJ7t94Wpnv9a7S.mjs} +1 -1
  41. package/browser/esm/{CwT_CNC8b1ssEo91.mjs → B5coyTQHreqWfXTL.mjs} +2 -2
  42. package/browser/esm/{dmJ5WyEHyYQlJZKv.mjs → B7pyjq8tI7V7pcwy.mjs} +1 -1
  43. package/{node/esm/Bv4wC_MEKGD8bF1-.mjs → browser/esm/B93nGRWqezVAe82d.mjs} +1 -1
  44. package/browser/esm/{9Zfbwo6EjArJ_T8c.mjs → BONMqgKB8XepwVUP.mjs} +1 -1
  45. package/browser/esm/{P1Hbz4Ave_pF_ZP6.mjs → BOb7v1vx9lJiStYh.mjs} +1 -1
  46. package/browser/esm/{BkVMfK3DFbLEl1dK.mjs → BQSylQaIn2seUkRP.mjs} +3 -3
  47. package/browser/esm/{Dc7l911HpAZ--1XY.mjs → BU8yIdTQ6we6k-KG.mjs} +1 -1
  48. package/browser/esm/{DVo-y8vH-qTrEtjc.mjs → BhfmggeeGS_CFF11.mjs} +8 -8
  49. package/browser/esm/{CGu62EWBu18VwgVS.mjs → Bqmgcdzk45VxX6Iz.mjs} +6 -6
  50. package/browser/esm/{CuitrlSK-1Z91Ia5.mjs → Buj1qRrPX5ma7rP2.mjs} +3 -3
  51. package/browser/esm/{50zZIOC0ph5hwYQy.mjs → BwUpLF3TBx5yV5Lj.mjs} +1 -1
  52. package/browser/esm/{B7-ihLUCyiLV5_Et.mjs → C7BBC6ZgCeDtER3f.mjs} +1 -1
  53. package/browser/esm/{ChW2CxfGJcd281QI.mjs → C_xLg294X_US_kYm.mjs} +1 -1
  54. package/browser/esm/{CykO15mi4Myo8eje.mjs → CmzSf5DNJLoOtMk-.mjs} +1 -1
  55. package/{node/esm/BVMu2XFLgV2zGr8t.mjs → browser/esm/CxsDCCCIZ3izAWpc.mjs} +1 -1
  56. package/browser/esm/{C0Qo4npcob0CiLUY.mjs → D2bYWgsB0IswGpK7.mjs} +2 -2
  57. package/browser/esm/{B-v6pixQPynH0eHh.mjs → D9-gfxTwv_8KGH0J.mjs} +1 -1
  58. package/browser/esm/{DnAhwDryAPtxig7p.mjs → D9hXALGej55nUIBr.mjs} +1 -1
  59. package/browser/esm/{CHH-GTnHFUbYZBXn.mjs → DAF3pLo9IAXpgj0b.mjs} +4 -4
  60. package/browser/esm/{Bg71wm-JyFX8vK6i.mjs → DGdd1TuOoJRgFv5y.mjs} +1 -1
  61. package/browser/esm/{C3i47glEqqi2Ajlo.mjs → DgVxyg7Pr4Gn7KI7.mjs} +1 -1
  62. package/browser/esm/{BJrkELxxZMlSOaS7.mjs → EW--St9c361BTpnI.mjs} +1 -1
  63. package/{node/esm/CgJxBkg7YVmRa9WX.mjs → browser/esm/ItKMvN0XCstp_nYY.mjs} +1 -1
  64. package/browser/esm/{B3r575GYloN1UQMg.mjs → MTsxZkvH_SRJmSFp.mjs} +1 -1
  65. package/browser/esm/{NPoSyOHSarAZEt-v.mjs → THIuEtMdfBrL-HBu.mjs} +1 -1
  66. package/browser/esm/{CtNe24lsPoJc81Ov.mjs → U-qXg8d0XjmxJPf5.mjs} +1 -1
  67. package/browser/esm/{Carj4QLo4Y1_ZzXN.mjs → _6Pn6ZxxA5IHC32O.mjs} +1 -1
  68. package/browser/esm/index.mjs +2 -2
  69. package/browser/esm/{yb1dX_InMFu75yXN.mjs → ucCvrtg0NIVDPCMF.mjs} +2 -2
  70. package/browser/esm/{B-PVlevPnG6eVDNb.mjs → ulV_OiYC8RR24mou.mjs} +5 -5
  71. package/licenses/dependencies.txt +33 -33
  72. package/{browser/esm/CiehTYA34Z0zg2ua.mjs → node/esm/528R85wwImPG1QAx.mjs} +1 -1
  73. package/node/esm/{DkJ0d3g09gNeubkT.mjs → B-S0zOSFMqvUzORJ.mjs} +1 -1
  74. package/{browser/esm/BKJWt-MDgSRMHI4-.mjs → node/esm/B4BJ7t94Wpnv9a7S.mjs} +1 -1
  75. package/node/esm/{dmJ5WyEHyYQlJZKv.mjs → B7pyjq8tI7V7pcwy.mjs} +1 -1
  76. package/{browser/esm/Bv4wC_MEKGD8bF1-.mjs → node/esm/B93nGRWqezVAe82d.mjs} +1 -1
  77. package/node/esm/{Dzvya8PQ8Y88jWTu.mjs → BKKWEXTAHQcnW_xk.mjs} +4 -4
  78. package/node/esm/{9Zfbwo6EjArJ_T8c.mjs → BONMqgKB8XepwVUP.mjs} +1 -1
  79. package/node/esm/{P1Hbz4Ave_pF_ZP6.mjs → BOb7v1vx9lJiStYh.mjs} +1 -1
  80. package/node/esm/{Bam9aXJpSKbEUvry.mjs → BQotQDQoybuUcFTS.mjs} +4 -4
  81. package/node/esm/{BqSe7_WAxRBrDHh7.mjs → BaX81ieKgh6x9n3-.mjs} +6 -6
  82. package/node/esm/{DJuCITUF0zvRXX1n.mjs → BfRPN7DBXGwgEl0p.mjs} +1 -1
  83. package/node/esm/{5H59kYh1wDTdxLoC.mjs → BmfPbR-U7zbLWgfh.mjs} +1 -1
  84. package/node/esm/{w4P_LV6BXD9ucApt.mjs → BvhUvPTEIyACj5zc.mjs} +2 -2
  85. package/node/esm/{50zZIOC0ph5hwYQy.mjs → BwUpLF3TBx5yV5Lj.mjs} +1 -1
  86. package/node/esm/{4zZCKXF-By7DK1i8.mjs → CITMKf4A3oqmkDlo.mjs} +1 -1
  87. package/{browser/esm/BVMu2XFLgV2zGr8t.mjs → node/esm/CxsDCCCIZ3izAWpc.mjs} +1 -1
  88. package/node/esm/{tRkC4Gjf67iPCdgt.mjs → D3qKeWp3MQKMP2h_.mjs} +1 -1
  89. package/node/esm/{B-v6pixQPynH0eHh.mjs → D9-gfxTwv_8KGH0J.mjs} +1 -1
  90. package/node/esm/{Bg71wm-JyFX8vK6i.mjs → DGdd1TuOoJRgFv5y.mjs} +1 -1
  91. package/node/esm/{B2mqSTj6W_8pqi6V.mjs → DVvO7Cmr6-3USkj5.mjs} +1 -1
  92. package/node/esm/{B_vitK7Ki_pfWgfT.mjs → DWYkJQ-eVYboYKz5.mjs} +2 -2
  93. package/node/esm/{C3i47glEqqi2Ajlo.mjs → DgVxyg7Pr4Gn7KI7.mjs} +1 -1
  94. package/node/esm/{BIxsWFG1ZHMY4tV4.mjs → DosKYfaNY0o9gZ-R.mjs} +1 -1
  95. package/node/esm/{cSojY1TXcBc6ahH1.mjs → Dp9yDBXx_7cwTY-p.mjs} +2 -2
  96. package/node/esm/{BJrkELxxZMlSOaS7.mjs → EW--St9c361BTpnI.mjs} +1 -1
  97. package/{browser/esm/CgJxBkg7YVmRa9WX.mjs → node/esm/ItKMvN0XCstp_nYY.mjs} +1 -1
  98. package/node/esm/{B3r575GYloN1UQMg.mjs → MTsxZkvH_SRJmSFp.mjs} +1 -1
  99. package/node/esm/{NPoSyOHSarAZEt-v.mjs → THIuEtMdfBrL-HBu.mjs} +1 -1
  100. package/node/esm/{DcSy-iKB7kP-B7Ss.mjs → TjmQUpBzdM6KL24x.mjs} +1 -1
  101. package/node/esm/{CtNe24lsPoJc81Ov.mjs → U-qXg8d0XjmxJPf5.mjs} +1 -1
  102. package/node/esm/index.mjs +7 -7
  103. package/node/esm/{DI1qyJ7SH01qSieL.mjs → krHJwUyEoybVhk5D.mjs} +3 -3
  104. package/package.json +4 -4
package/LICENSE.md CHANGED
@@ -1,11 +1,11 @@
1
- # Repository Licensing
2
-
3
- SheetXL contains a mix of open-source and commercially licensed packages. Each package is individually licensed and contains its own license file.
4
-
5
- For the specific terms and conditions applicable to a package, please see the `LICENSE.md` file located in that package's root directory.
6
-
7
- Generally, packages intended for public distribution (such as CLIs, adapters, and vanilla wrappers) are licensed under the MIT license. All other core packages are proprietary and require a commercial license for use.
8
-
9
- For more details on commercial licensing, please visit our website:
10
-
11
- https://www.sheetxl.com/licensing-pricing
1
+ # Repository Licensing
2
+
3
+ SheetXL contains a mix of open-source and commercially licensed packages. Each package is individually licensed and contains its own license file.
4
+
5
+ For the specific terms and conditions applicable to a package, please see the `LICENSE.md` file located in that package's root directory.
6
+
7
+ Generally, packages intended for public distribution (such as CLIs, adapters, and vanilla wrappers) are licensed under the MIT license. All other core packages are proprietary and require a commercial license for use.
8
+
9
+ For more details on commercial licensing, please visit our website:
10
+
11
+ https://www.sheetxl.com/licensing-pricing
package/README.md CHANGED
@@ -1,28 +1,28 @@
1
- # SDK
2
-
3
- ![SheetXL](https://www.sheetxl.com/logo-text.svg)
4
-
5
- A vectorized, columnar, scriptable, embeddable spreadsheet.
6
-
7
- A high-performance, embeddable spreadsheet engine designed for building data-driven applications and integrating
8
- spreadsheet functionality into existing systems. It handles even extremely large and sparse datasets,
9
- while providing a powerful calculation engine and a flexible API. As part of the
10
- [SheetXL](https://www.sheetxl.com) eco system, it seamlessly integrates with ready-to-use UI components and data
11
- import/export tools.
12
-
13
- Learn more about [SheetXL](https://www.sheetxl.com).
14
-
15
- | Feature | Excel API (JS/Python) | Google Sheets API | pandas | DuckDB | Jupyter Notebooks | NumPy | Sigma Computing | SheetXL 🚀 |
16
- |-----------------------------|----------------------|-------------------|--------|--------|------------------|-------|----------------|------------|
17
- | **Spreadsheet-Like?** | ✅ Yes | ✅ Yes | ❌ No UI (table-based) | ❌ No UI | ❌ No real spreadsheet UI | ❌ No UI, array-based | ❌ No true spreadsheet UI | ✅ Yes (Excel-like UI) |
18
- | **Vectorized Operations?** | ❌ Mostly scalar | ❌ Mostly scalar | ✅ Fully vectorized | ✅ Columnar, vectorized | ✅ Can use pandas/NumPy | ✅ Fully vectorized | ❌ SQL-based (not vectorized) | ✅ Fully vectorized, columnar |
19
- | **Embeddable?** | ❌ Not easily embeddable | ✅ Web-based | ❌ Not embeddable | ✅ Can be embedded | ❌ Not embeddable | ❌ Not a spreadsheet | ✅ Cloud-based | ✅ Fully embeddable |
20
- | **Data Science Capabilities?** | ⚠️ Limited (Python only) | ❌ No real data science | ✅ Strong data science | ✅ SQL-based analytics | ✅ Python data science | ✅ Scientific computing | ✅ BI analytics | ✅ Python & JS scripting |
21
-
22
- ## Advantages
23
-
24
- 1. The “Handoff Tax” → IT departments rewrite spreadsheets into web apps, but they lack true spreadsheet functionality. SheetXL removes this tax.
25
- 2. Excel’s API is scalar → Most spreadsheet APIs are slow because they weren’t built for large-scale, vectorized calculations.
26
- 3. BI tools don’t let you “program” the UI → Sigma, Looker, Tableau work for dashboards, but aren’t true programmable spreadsheets.
27
- 4. NumPy is fast, but has no spreadsheet UI → SheetXL gives NumPy performance inside a familiar spreadsheet.
28
- 5. Embeddability is a game-changer → Unlike Excel/Google Sheets, SheetXL is built for web apps, with seamless integration.
1
+ # SDK
2
+
3
+ ![SheetXL](https://www.sheetxl.com/logo-text.svg)
4
+
5
+ A vectorized, columnar, scriptable, embeddable spreadsheet.
6
+
7
+ A high-performance, embeddable spreadsheet engine designed for building data-driven applications and integrating
8
+ spreadsheet functionality into existing systems. It handles even extremely large and sparse datasets,
9
+ while providing a powerful calculation engine and a flexible API. As part of the
10
+ [SheetXL](https://www.sheetxl.com) eco system, it seamlessly integrates with ready-to-use UI components and data
11
+ import/export tools.
12
+
13
+ Learn more about [SheetXL](https://www.sheetxl.com).
14
+
15
+ | Feature | Excel API (JS/Python) | Google Sheets API | pandas | DuckDB | Jupyter Notebooks | NumPy | Sigma Computing | SheetXL 🚀 |
16
+ |-----------------------------|----------------------|-------------------|--------|--------|------------------|-------|----------------|------------|
17
+ | **Spreadsheet-Like?** | ✅ Yes | ✅ Yes | ❌ No UI (table-based) | ❌ No UI | ❌ No real spreadsheet UI | ❌ No UI, array-based | ❌ No true spreadsheet UI | ✅ Yes (Excel-like UI) |
18
+ | **Vectorized Operations?** | ❌ Mostly scalar | ❌ Mostly scalar | ✅ Fully vectorized | ✅ Columnar, vectorized | ✅ Can use pandas/NumPy | ✅ Fully vectorized | ❌ SQL-based (not vectorized) | ✅ Fully vectorized, columnar |
19
+ | **Embeddable?** | ❌ Not easily embeddable | ✅ Web-based | ❌ Not embeddable | ✅ Can be embedded | ❌ Not embeddable | ❌ Not a spreadsheet | ✅ Cloud-based | ✅ Fully embeddable |
20
+ | **Data Science Capabilities?** | ⚠️ Limited (Python only) | ❌ No real data science | ✅ Strong data science | ✅ SQL-based analytics | ✅ Python data science | ✅ Scientific computing | ✅ BI analytics | ✅ Python & JS scripting |
21
+
22
+ ## Advantages
23
+
24
+ 1. The “Handoff Tax” → IT departments rewrite spreadsheets into web apps, but they lack true spreadsheet functionality. SheetXL removes this tax.
25
+ 2. Excel’s API is scalar → Most spreadsheet APIs are slow because they weren’t built for large-scale, vectorized calculations.
26
+ 3. BI tools don’t let you “program” the UI → Sigma, Looker, Tableau work for dashboards, but aren’t true programmable spreadsheets.
27
+ 4. NumPy is fast, but has no spreadsheet UI → SheetXL gives NumPy performance inside a familiar spreadsheet.
28
+ 5. Embeddability is a game-changer → Unlike Excel/Google Sheets, SheetXL is built for web apps, with seamless integration.
@@ -1,6 +1,6 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
6
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.TypeScriptCompiler=class{constructor(r={}){this.workerWrapper=null}async getWorkerWrapper(){if(this.workerWrapper)return this.workerWrapper;const{createCompilerWorker:r}=await Promise.resolve().then(()=>require("./1DkliyjTelArGdk8.cjs"));return this.workerWrapper=await r(),this.workerWrapper}async compileModule(r){try{return(await this.getWorkerWrapper()).execute(r)}catch(e){throw console.error("Failed to compile using worker:",e),e}}terminate(){this.workerWrapper?.terminate(),this.workerWrapper=null}};
6
+ */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.TypeScriptCompiler=class{constructor(r={}){this.workerWrapper=null}async getWorkerWrapper(){if(this.workerWrapper)return this.workerWrapper;const{createCompilerWorker:r}=await Promise.resolve().then(()=>require("./CTwmDtiXYiM_eVmk.cjs"));return this.workerWrapper=await r(),this.workerWrapper}async compileModule(r){try{return(await this.getWorkerWrapper()).execute(r)}catch(e){throw console.error("Failed to compile using worker:",e),e}}terminate(){this.workerWrapper?.terminate(),this.workerWrapper=null}};
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,15 +1,15 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.6
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
6
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("./C3j3HH6A1kmU62xS.cjs");/**
7
- * @license @sheetxl/scripting - Scripting - Scripting engine for Macros and formulas; includes TypeScript and EsBuild. - v0.2.0
6
+ */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("./CzyTW1VE-AUeXvey.cjs");/**
7
+ * @license @sheetxl/scripting - Scripting - Scripting engine for Macros and formulas; includes TypeScript and EsBuild. - v0.2.6
8
8
  *
9
9
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
10
10
  * License: The license can be found at https://www.sheetxl.com/license.
11
11
  *//**
12
- * @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.2.0
12
+ * @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.2.6
13
13
  *
14
14
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
15
15
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -17,7 +17,7 @@
17
17
  interface FirstTest {
18
18
  isTrue?: boolean;
19
19
  }
20
- `,pe=new Map([["IReferenceRange","r"],["IRange","l"]]),me=new Map([["IWorkbook","workbook"],["ISheet","sheet"],["ICellRanges","ranges"],["ICellRange","range"],["IFormulaContext","context"]]),ne=(e,a)=>{Array.from(a.keys()).forEach(k=>{const x=a.get(k);a.set(`${e}.${k}`,x)})},xe=new Map([["Scalar","*"],["FormulaError.Known","e"],["Date","Date"],["JSON","JSON"]]),be=new Map([]),oe="SheetXL";ne(oe,pe),ne(oe,me),ne(oe,be);const Te=new Map([["Promise",()=>({async:!0})],["Observable",()=>({stream:!0})]]);let W=null;async function ke(){if(W)return W;try{return await(await Promise.resolve().then(()=>require("./nblkQ00TCry9Qzn4.cjs"))).initialize()}catch(e){throw W=null,e}finally{W=null}}exports.compileModule=async function(e){const a=e?.source??null;if(!a)return null;const k=(e.disableBundle||e.declarationsOnly)??!1,x=[Ce(),ke()],j=await Promise.all(x),X=j[0],s=j[1];let K="",M=null;const U=[],Y={allowJs:!0,declaration:!1,sourceMap:!1,inlineSourceMap:!1,inlineSources:!1,isolatedModules:!0,preserveConstEnums:!1,module:99,noResolve:!0,emitDeclarationOnly:!1,target:s.ScriptTarget.ES2020},z="script",O=`${z}.ts`,G="lib.d.ts",_="global.d.ts",F={[O]:a,[G]:`
20
+ `,pe=new Map([["IReferenceRange","r"],["IRange","l"]]),me=new Map([["IWorkbook","workbook"],["ISheet","sheet"],["ICellRanges","ranges"],["ICellRange","range"],["IFormulaContext","context"]]),ne=(e,a)=>{Array.from(a.keys()).forEach(k=>{const x=a.get(k);a.set(`${e}.${k}`,x)})},xe=new Map([["Scalar","*"],["FormulaError.Known","e"],["Date","Date"],["JSON","JSON"]]),be=new Map([]),oe="SheetXL";ne(oe,pe),ne(oe,me),ne(oe,be);const Te=new Map([["Promise",()=>({async:!0})],["Observable",()=>({stream:!0})]]);let W=null;async function ke(){if(W)return W;try{return await(await Promise.resolve().then(()=>require("./Ci-LITf7FutalLC4.cjs"))).initialize()}catch(e){throw W=null,e}finally{W=null}}exports.compileModule=async function(e){const a=e?.source??null;if(!a)return null;const k=(e.disableBundle||e.declarationsOnly)??!1,x=[Ce(),ke()],j=await Promise.all(x),X=j[0],s=j[1];let K="",M=null;const U=[],Y={allowJs:!0,declaration:!1,sourceMap:!1,inlineSourceMap:!1,inlineSources:!1,isolatedModules:!0,preserveConstEnums:!1,module:99,noResolve:!0,emitDeclarationOnly:!1,target:s.ScriptTarget.ES2020},z="script",O=`${z}.ts`,G="lib.d.ts",_="global.d.ts",F={[O]:a,[G]:`
21
21
  /**
22
22
  * Represents the completion of an asynchronous operation
23
23
  */
@@ -31,7 +31,7 @@ interface Promise<T> {
31
31
  finally(onfinally?: (() => void) | undefined | null): Promise<T>;
32
32
  }
33
33
  `,[_]:X},Q={getSourceFile:(t,d,E,l)=>s.createSourceFile(t,F[t],s.ScriptTarget.Latest,!0),fileExists:t=>F[t]!==void 0,readFile:t=>F[t],writeFile:(t,d)=>{F[t]=d},getCurrentDirectory:()=>"./",getCanonicalFileName:t=>t,useCaseSensitiveFileNames:()=>!0,getDefaultLibFileName:t=>G,getNewLine:()=>`
34
- `},I=s.createProgram([O,_],Y,Q),P=I.getTypeChecker(),Z=I.getSourceFile(O),y=I.emit();y.diagnostics.length>0&&console.warn(y.diagnostics),K=F[`${z}.js`];const n=(t,d,E,l)=>{if(t){if(t.kind===s.SyntaxKind.NumberKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.StringKeyword)d.scalar="s";else if(t.kind===s.SyntaxKind.BooleanKeyword)d.scalar="b";else if(t.kind===s.SyntaxKind.UndefinedKeyword||t.kind===s.SyntaxKind.NullKeyword||t.kind===s.SyntaxKind.VoidKeyword){if(l)return void S(t,new Error(`'undefined' is not a valid type for input: '${t?.parent?.name?.escapedText}'.`));d.scalar="z"}else if(t.kind===s.SyntaxKind.BigIntKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.AnyKeyword)d.scalar="z";else if(t.kind===s.SyntaxKind.ArrayType){const c=t.elementType;if(!c)return void S(t,new Error(`'Array' must be typed: '${t?.parent?.name?.escapedText}'.`));d.arrayDepth=(d.arrayDepth??0)+1,n(c,d,E,l)}else if(t.kind!==s.SyntaxKind.TupleType&&t.kind===s.SyntaxKind.TypeReference){const c=t.typeName?.getText?.()??null,N=pe.get(c);let T=!1;N&&(d.range=N,T=!0);const L=xe.get(c);if(L&&(d.scalar=L),L!==void 0&&(T=!0),l){const g=me.get(c);if(g)return g}else{const g=Te.get(c);if(g){const m={...d,...g()};let o=0;if(m.async&&o++,m.stream&&o++,o>1)return void S(t,new Error(`'${c}' cannot have multiple modifiers: '${t?.parent?.name?.escapedText}'.`));d=m,T=!0}}if(!T)return void S("node",new Error(`'${c}' is not a valid type: '${t?.parent?.name?.escapedText}'.`));const b=t.typeArguments;if(b){if(b.length!==1)return void S(t,new Error(`'${c}' must be typed with exactly 1 type: '${t?.parent?.name?.escapedText}'.`));n(b[0],d,E,l)}}}else S(t,new Error(`Type is not defined for '${d?.name??"return"}'.`))},i=[],S=(t,d)=>{i.push(d)};if(s.forEachChild(Z,t=>{if(E=t,(s.getCombinedModifierFlags(E)&s.ModifierFlags.Export)!==0&&s.isFunctionDeclaration(t)){const l={},c={parameters:{}},N=t?.name?.getText();try{l.name=N;const T=P.getSymbolAtLocation(t.name).getDocumentationComment(P);if(T&&T.length>0&&T[0].text){let m=T[0].text;m=m.replace(/[\r\n]+/g,"\\n").trim(),c.summary=m}const L={};n(t.type,L,l,!1),l.returnType=L;const b={};d=t,(s.getCombinedModifierFlags(d)&s.ModifierFlags.Default)!==0&&(b.default=!0,M=N),Object.keys(b).length>0&&(l.behavior=b),l.parameters=[];const g=new Map;for(let m=0;m<t.parameters.length;m++){const o=t.parameters[m],h={};h.name=o.name?.getText();const $=n(o.type,h,l,!0);if($){if(l.parameters.length!==0){const B=t?.parent,C=B?.name?.getText();return void S(t,new Error(`'${l.name}' contexts must be the first parameter: '${C}'.`))}l.context=$;continue}let v;if((o.initializer!==void 0&&o.initializer!==null||o.questionToken!==void 0&&o.questionToken!==null)&&(h.optional=!0,o.initializer))try{v=o.initializer.kind===s.SyntaxKind.StringLiteral?o.initializer.text:o.initializer.kind===s.SyntaxKind.NumericLiteral?parseFloat(o.initializer.text):o.initializer.kind===s.SyntaxKind.TrueKeyword||o.initializer.kind===s.SyntaxKind.FalseKeyword?o.initializer.kind===s.SyntaxKind.TrueKeyword:o.initializer.kind===s.SyntaxKind.NullKeyword?null:o.initializer.kind===s.SyntaxKind.ObjectLiteralExpression||o.initializer.kind===s.SyntaxKind.ArrayLiteralExpression?o.initializer.getText():o.initializer.getText?.()}catch(B){console.warn(`Couldn't extract default value for parameter '${h.name}'`,B)}o.dotDotDotToken&&(h.rest=!0),l.parameters.push(h);const w={description:""};c.parameters[h.name]=w;const u=P.getSymbolAtLocation(o.name).getDocumentationComment(P);u&&u.length>0&&u[0].text&&(w.description=u[0].text),v!==void 0&&(w.defaultValue=v),g.set(h.name,h)}if(t.jsDoc&&t.jsDoc.length>0){const m=t.jsDoc;for(let o=0;o<m.length;o++){const h=m[o]?.tags;if(h)for(let $=0;$<h.length;$++){const v=h[$];let w=v?.tagName?.text;if(!w)continue;w=w.toLowerCase();let u=v.comment;const B=w==="hidden";if((typeof u=="string"||B)&&(typeof u=="string"&&(u=u.replace(/[\r\n]+/g,"\\n").trim()),B||!u||(u=u.split(/\\n/)[0],u&&u.length!==0))){if(u&&typeof u=="string"){const C=/\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;let D,R=u,V=[];for(;(D=C.exec(u))!==null;){const[ee,te,ye,ae]=D,fe=[ye.trim()];ae&&fe.push(ae.trim())}u=R,V.length>0&&w==="see"&&(c.links||(c.links=[]),c.links.push(...V))}if(w==="name"){const C=u;C!==N&&(c.name=C)}else if(w!=="description"){if(w==="summary"){const C=u;C&&(c.summary=C)}else if(w==="param"){const C=v.name?.text,D=g.get(C);if(!D){i.push(new Error(`Parameter '${C}' not found in function '${N}'.`));continue}if(v.typeExpression&&v.typeExpression.type)try{const R=v.typeExpression.type;if(R.kind===s.SyntaxKind.UnionType){const V=[];D.enums=V,R.types.forEach(ee=>{if(ee.kind===s.SyntaxKind.LiteralType){const te=ee.literal.text;te&&V.push(te)}})}}catch(R){console.warn("Error parsing JSDoc type expression:",R)}}else if(w==="returns"||w==="return")l.returnType.description=u;else if(w==="category")c.category=u;else if(w==="hidden"){let C=!0;const D=u?.toLowerCase();D==="false"?C=!1:D!=="true"&&(C=u),C!==!1&&(c.hidden=C??!0)}}}}}}Object.keys(l.returnType).length===0&&delete l.returnType,U.push([l,c])}catch(T){S(t,new Error(`'${N}': ${T.message}`))}}var d,E}),i.length>0)throw console.warn(i),new Error("There were compilation errors.",{cause:i});if(U.length===0)throw new Error("No exported functions.");const q=`${he.$t.uuidV4()}-script`;try{k||i.length!==0||(K=await async function(t,d,E="/script.js",l="__SHEETXL"){try{const c=await async function(){if(A)return A;if(H){if(await H,!A)throw new Error("ESBuild initialization promise resolved, but instance is not available.");return A}let g,m;H=new Promise((o,h)=>{g=o,m=h});try{const{initialize:o}=await Promise.resolve().then(()=>require("./B9lmXTGeBcKwHW-W.cjs"));return A=await o(),g(),A}catch(o){throw console.error("Failed to import or initialize esbuild:",o),H=null,m(o),o}}(),N="@sheetxl/primitives",T=`
34
+ `},I=s.createProgram([O,_],Y,Q),P=I.getTypeChecker(),Z=I.getSourceFile(O),y=I.emit();y.diagnostics.length>0&&console.warn(y.diagnostics),K=F[`${z}.js`];const n=(t,d,E,l)=>{if(t){if(t.kind===s.SyntaxKind.NumberKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.StringKeyword)d.scalar="s";else if(t.kind===s.SyntaxKind.BooleanKeyword)d.scalar="b";else if(t.kind===s.SyntaxKind.UndefinedKeyword||t.kind===s.SyntaxKind.NullKeyword||t.kind===s.SyntaxKind.VoidKeyword){if(l)return void S(t,new Error(`'undefined' is not a valid type for input: '${t?.parent?.name?.escapedText}'.`));d.scalar="z"}else if(t.kind===s.SyntaxKind.BigIntKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.AnyKeyword)d.scalar="z";else if(t.kind===s.SyntaxKind.ArrayType){const c=t.elementType;if(!c)return void S(t,new Error(`'Array' must be typed: '${t?.parent?.name?.escapedText}'.`));d.arrayDepth=(d.arrayDepth??0)+1,n(c,d,E,l)}else if(t.kind!==s.SyntaxKind.TupleType&&t.kind===s.SyntaxKind.TypeReference){const c=t.typeName?.getText?.()??null,N=pe.get(c);let T=!1;N&&(d.range=N,T=!0);const L=xe.get(c);if(L&&(d.scalar=L),L!==void 0&&(T=!0),l){const g=me.get(c);if(g)return g}else{const g=Te.get(c);if(g){const m={...d,...g()};let o=0;if(m.async&&o++,m.stream&&o++,o>1)return void S(t,new Error(`'${c}' cannot have multiple modifiers: '${t?.parent?.name?.escapedText}'.`));d=m,T=!0}}if(!T)return void S("node",new Error(`'${c}' is not a valid type: '${t?.parent?.name?.escapedText}'.`));const b=t.typeArguments;if(b){if(b.length!==1)return void S(t,new Error(`'${c}' must be typed with exactly 1 type: '${t?.parent?.name?.escapedText}'.`));n(b[0],d,E,l)}}}else S(t,new Error(`Type is not defined for '${d?.name??"return"}'.`))},i=[],S=(t,d)=>{i.push(d)};if(s.forEachChild(Z,t=>{if(E=t,(s.getCombinedModifierFlags(E)&s.ModifierFlags.Export)!==0&&s.isFunctionDeclaration(t)){const l={},c={parameters:{}},N=t?.name?.getText();try{l.name=N;const T=P.getSymbolAtLocation(t.name).getDocumentationComment(P);if(T&&T.length>0&&T[0].text){let m=T[0].text;m=m.replace(/[\r\n]+/g,"\\n").trim(),c.summary=m}const L={};n(t.type,L,l,!1),l.returnType=L;const b={};d=t,(s.getCombinedModifierFlags(d)&s.ModifierFlags.Default)!==0&&(b.default=!0,M=N),Object.keys(b).length>0&&(l.behavior=b),l.parameters=[];const g=new Map;for(let m=0;m<t.parameters.length;m++){const o=t.parameters[m],h={};h.name=o.name?.getText();const $=n(o.type,h,l,!0);if($){if(l.parameters.length!==0){const B=t?.parent,C=B?.name?.getText();return void S(t,new Error(`'${l.name}' contexts must be the first parameter: '${C}'.`))}l.context=$;continue}let v;if((o.initializer!==void 0&&o.initializer!==null||o.questionToken!==void 0&&o.questionToken!==null)&&(h.optional=!0,o.initializer))try{v=o.initializer.kind===s.SyntaxKind.StringLiteral?o.initializer.text:o.initializer.kind===s.SyntaxKind.NumericLiteral?parseFloat(o.initializer.text):o.initializer.kind===s.SyntaxKind.TrueKeyword||o.initializer.kind===s.SyntaxKind.FalseKeyword?o.initializer.kind===s.SyntaxKind.TrueKeyword:o.initializer.kind===s.SyntaxKind.NullKeyword?null:o.initializer.kind===s.SyntaxKind.ObjectLiteralExpression||o.initializer.kind===s.SyntaxKind.ArrayLiteralExpression?o.initializer.getText():o.initializer.getText?.()}catch(B){console.warn(`Couldn't extract default value for parameter '${h.name}'`,B)}o.dotDotDotToken&&(h.rest=!0),l.parameters.push(h);const w={description:""};c.parameters[h.name]=w;const u=P.getSymbolAtLocation(o.name).getDocumentationComment(P);u&&u.length>0&&u[0].text&&(w.description=u[0].text),v!==void 0&&(w.defaultValue=v),g.set(h.name,h)}if(t.jsDoc&&t.jsDoc.length>0){const m=t.jsDoc;for(let o=0;o<m.length;o++){const h=m[o]?.tags;if(h)for(let $=0;$<h.length;$++){const v=h[$];let w=v?.tagName?.text;if(!w)continue;w=w.toLowerCase();let u=v.comment;const B=w==="hidden";if((typeof u=="string"||B)&&(typeof u=="string"&&(u=u.replace(/[\r\n]+/g,"\\n").trim()),B||!u||(u=u.split(/\\n/)[0],u&&u.length!==0))){if(u&&typeof u=="string"){const C=/\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;let D,R=u,V=[];for(;(D=C.exec(u))!==null;){const[ee,te,ye,ae]=D,fe=[ye.trim()];ae&&fe.push(ae.trim())}u=R,V.length>0&&w==="see"&&(c.links||(c.links=[]),c.links.push(...V))}if(w==="name"){const C=u;C!==N&&(c.name=C)}else if(w!=="description"){if(w==="summary"){const C=u;C&&(c.summary=C)}else if(w==="param"){const C=v.name?.text,D=g.get(C);if(!D){i.push(new Error(`Parameter '${C}' not found in function '${N}'.`));continue}if(v.typeExpression&&v.typeExpression.type)try{const R=v.typeExpression.type;if(R.kind===s.SyntaxKind.UnionType){const V=[];D.enums=V,R.types.forEach(ee=>{if(ee.kind===s.SyntaxKind.LiteralType){const te=ee.literal.text;te&&V.push(te)}})}}catch(R){console.warn("Error parsing JSDoc type expression:",R)}}else if(w==="returns"||w==="return")l.returnType.description=u;else if(w==="category")c.category=u;else if(w==="hidden"){let C=!0;const D=u?.toLowerCase();D==="false"?C=!1:D!=="true"&&(C=u),C!==!1&&(c.hidden=C??!0)}}}}}}Object.keys(l.returnType).length===0&&delete l.returnType,U.push([l,c])}catch(T){S(t,new Error(`'${N}': ${T.message}`))}}var d,E}),i.length>0)throw console.warn(i),new Error("There were compilation errors.",{cause:i});if(U.length===0)throw new Error("No exported functions.");const q=`${he.$t.uuidV4()}-script`;try{k||i.length!==0||(K=await async function(t,d,E="/script.js",l="__SHEETXL"){try{const c=await async function(){if(A)return A;if(H){if(await H,!A)throw new Error("ESBuild initialization promise resolved, but instance is not available.");return A}let g,m;H=new Promise((o,h)=>{g=o,m=h});try{const{initialize:o}=await Promise.resolve().then(()=>require("./dJ-MSsMtF8KRc16n.cjs"));return A=await o(),g(),A}catch(o){throw console.error("Failed to import or initialize esbuild:",o),H=null,m(o),o}}(),N="@sheetxl/primitives",T=`
35
35
  export const FormulaContext = globalThis.${l}?.FormulaContext;
36
36
  export const ScalarType = globalThis.${l}?.ScalarType;
37
37
  export const Observable = globalThis.${l}?.Observable;