@sheetxl/mcp 0.0.0-stage → 0.8.0-beta.14
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.
- package/LICENSE.md +11 -0
- package/README.md +72 -2
- package/agent/instructions.md +66 -0
- package/assets/2zIY9Xuml4y8NI05.js +596 -0
- package/assets/33QTHR3r6ZujxFx8.js +18 -0
- package/assets/8vRAQlvTcvMLeio0.js +1131 -0
- package/assets/9MRZ5Yc2RBgcqZSp.js +594 -0
- package/assets/9dbZwzIWefGss7is.js +52 -0
- package/assets/B-1_xSqUFCJ6jNjn.js +9109 -0
- package/assets/B-jE7tAMA559MtNt.js +37 -0
- package/assets/B5xHa5bjZu5ONrm5.js +638 -0
- package/assets/B66aeGYrHLbGpuN9.js +9137 -0
- package/assets/B6BP5l2qmeZhqVV7.js +7 -0
- package/assets/B6b9ytNrHR-ijcOa.js +30 -0
- package/assets/B9QlqO6n3MCBsvoj.js +504 -0
- package/assets/B9qiPx_BXxo1jgcx.js +2368 -0
- package/assets/B9w1dNK8pNq-Z1P3.js +142 -0
- package/assets/BDZ1FGc1zFqO1nK7.js +4036 -0
- package/assets/BFwNQZVRnbNt-gRJ.js +2260 -0
- package/assets/BMnNvUCJu35tT_aO.js +19 -0
- package/assets/BNfBq8Eic3Cl-f6A.js +184 -0
- package/assets/BOF64A2D2KKcv_fo.js +15 -0
- package/assets/BOcWUnxWSG1d5Ljc.js +447 -0
- package/assets/BW8XjynUqlfvuQUV.js +37 -0
- package/assets/BWsXOU_jh_cA8m8I.js +12 -0
- package/assets/BXC6616BWEWNZ2-D.js +63 -0
- package/assets/BYtBi8vLoB41QkV8.js +656 -0
- package/assets/B_-VPqfsse8AlCTm.js +81 -0
- package/assets/BiAEoWSl8c6jcUnS.js +28 -0
- package/assets/BkBCkgPNrFR5N9fo.js +19 -0
- package/assets/BmxgDCZk_aMDms4i.js +639 -0
- package/assets/BoTScfjgygCozDVi.js +23 -0
- package/assets/BwisWvPpXRhyIP4O.js +15 -0
- package/assets/ByziR0Anm39Bw0Bc.js +1556 -0
- package/assets/C-5LlJ5qhC7Ef0gV.js +12996 -0
- package/assets/C-CNmTrzNS-ZlQ8j.js +1760 -0
- package/assets/C1rIlmARlinuie5E.js +45 -0
- package/assets/C1w8NQeox7_92swz.js +35 -0
- package/assets/C2Rgsb69SnMOohGt.js +23 -0
- package/assets/C55MTJ_5qW94RElE.js +7514 -0
- package/assets/CBNNl8igIyeHY4St.js +780 -0
- package/assets/CDGeuGB9CBXeCIm6.js +12 -0
- package/assets/CH9M37mRwnS0t9wM.js +104 -0
- package/assets/CHHJZPAuM3OjbzF6.js +402 -0
- package/assets/CMTDUipnLiOj5pbe.js +610 -0
- package/assets/COFze3jkZDQRSij9.js +4437 -0
- package/assets/CPDkdp0yI4DwUHGZ.js +119 -0
- package/assets/CULV-2mwmqYYpAjM.js +119 -0
- package/assets/CVFTQ0OwsUt03r4o.js +146 -0
- package/assets/CXM1IYmE-TDInPwr.js +118 -0
- package/assets/CcLPa6zB5PH3OG2O.js +10289 -0
- package/assets/CdF5MxGnISAZ41oQ.js +359 -0
- package/assets/CeDqeFLuUfN8UIGx.js +17 -0
- package/assets/CfiVUfpeONJ3rf31.js +28 -0
- package/assets/Cfvhcua4c6onouhP.js +14 -0
- package/assets/CgjR_TiVOcuxg5tO.js +16 -0
- package/assets/CjwzOAnab_dpAqiG.js +144 -0
- package/assets/Cm3Q_-DDdnVHRBxr.js +351 -0
- package/assets/CpOhY88x6AgVxvTz.js +49 -0
- package/assets/CtpcYuBFU6fxsUhs.js +71 -0
- package/assets/CutEBbZl8oFbTlXZ.js +171 -0
- package/assets/CwJyw5Yxpj4PGh14.js +28 -0
- package/assets/CwdOInoJwCxXnhog.js +7 -0
- package/assets/D2_T0KSaye0ncjQa.js +6294 -0
- package/assets/D2w3KjYuONW1G1kX.js +86 -0
- package/assets/D3BAmD-1AfFtHdC6.js +242 -0
- package/assets/D81iH5MJJfq2t9FP.js +32 -0
- package/assets/D94hlZEaHtGHdN_K.js +202 -0
- package/assets/DBFXsbIHDxbMBrzV.js +319 -0
- package/assets/DCHsM8bfVisYJFTT.js +1783 -0
- package/assets/DIy1659Yv5-fD69E.js +123 -0
- package/assets/DK0VM9-qrEXBm8Ud.js +223 -0
- package/assets/DPazQ_nZv-sXUwO3.js +45 -0
- package/assets/DSSrCrejjpWoszj7.js +33 -0
- package/assets/DTlvhtB9hvPdbdxu.js +60493 -0
- package/assets/DUUt1z6Y_cpxEpYY.js +24 -0
- package/assets/DUYoUViqY5U6uQX3.js +18 -0
- package/assets/DUzaW_op2vBTwOOI.js +18 -0
- package/assets/DWTpPijG5yeNFR0W.js +14 -0
- package/assets/DZRp3_yqPS6Lshho.js +32 -0
- package/assets/DZZ5R3msiytVNCqK.js +199 -0
- package/assets/Df2IAW-O7Gwl7V1l.js +7 -0
- package/assets/Dfd7kvLIFNqu-m-r.js +51 -0
- package/assets/Dg7xy50qHwqkYd4g.js +1135 -0
- package/assets/DihigEGfNCLR8UPN.js +8 -0
- package/assets/DkFK1iu4vqjLZMja.js +3011 -0
- package/assets/DkPXpv81Y5teMd-R.js +20 -0
- package/assets/Dl87mJoXDkCkzBi7.js +3917 -0
- package/assets/DnmjS548g7nY6EUS.js +1860 -0
- package/assets/DoIU_ohoCBwTZV9G.js +310 -0
- package/assets/Doqy_uDSQTCv6a6X.js +35 -0
- package/assets/DpGuA6U12gwyGHEM.js +369 -0
- package/assets/DuZ6DXQGttY3Lrhd.js +5220 -0
- package/assets/Du_JrYiYGJo5_B9H.js +12 -0
- package/assets/DvD_K4M5HgJ4uJ8L.js +7 -0
- package/assets/EeSGsbh_r4N-qs4w.js +96 -0
- package/assets/GnXTzeDYWWeEf5yV.js +55 -0
- package/assets/HKLw8b2xTdu5c1w5.js +63 -0
- package/assets/KpCEdfpsHnfkyqjx.js +37 -0
- package/assets/OU7gC5JF-lyDOOid.js +27 -0
- package/assets/PRSerWiAGYu8MVnd.js +304 -0
- package/assets/PmooYGqWqoTxPExF.js +449 -0
- package/assets/QXKcNTuZqOauSidr.js +58 -0
- package/assets/ThqyayHHaBxzfaAt.js +255 -0
- package/assets/TzsPqmpG77I4ewVt.js +173 -0
- package/assets/UX2ywz3gr7q-MlHr.js +105 -0
- package/assets/W-MzzQHZuRxr8adc.js +2346 -0
- package/assets/ZBYHyJs7CQgnnHfR.js +362 -0
- package/assets/ZTEO4JX22YIOkrJg.js +8338 -0
- package/assets/a7BoASyT8yQZY9hJ.js +22 -0
- package/assets/aqguaobnu61szXWM.js +22 -0
- package/assets/cdIvC9t9tYtVn4nc.js +405 -0
- package/assets/cv7k-VAIJtYeL9k4.js +23 -0
- package/assets/ddJqSu7gXUkXjGxZ.js +13 -0
- package/assets/eHAVGCUcMAfNjEGt.js +7 -0
- package/assets/hRLLK6I6m0uGKWo8.js +32 -0
- package/assets/mcFLzsOH35mvmd3C.js +145 -0
- package/assets/st-UQngeBG4hwKoy.js +47 -0
- package/assets/w8YWSMNTTn45ImnB.js +857 -0
- package/assets/yNiBIhsMP9BCWd67.js +28 -0
- package/assets/zu-72oKE_gCkrozc.js +540 -0
- package/index.js +8070 -0
- package/lib.js +7 -0
- package/licenses/dependencies.txt +1552 -0
- package/package.json +44 -3
- package/resources/contents.json +333 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
- package/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
- package/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
- package/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
- package/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/contents.json +646 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
- package/resources/locales/@sheetxl/formulas/contents.json +9 -0
- package/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
- package/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
- package/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
- package/resources/locales/@sheetxl/sdk/contents.json +19 -0
- package/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
- package/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
- package/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
- package/screenshot-page/assets/-cpi3yOZYn6GsYN4.js +9 -0
- package/screenshot-page/assets/-i_fTASJeu9NdNH_.js +7 -0
- package/screenshot-page/assets/04d8koPx6lzeMYRQ.js +39 -0
- package/screenshot-page/assets/0MTaPYjKud2Q9QG9.js +1 -0
- package/screenshot-page/assets/21oAESJyBGXeHegm.js +2 -0
- package/screenshot-page/assets/3Ls_kOvlQseMV8Q0.js +1 -0
- package/screenshot-page/assets/4qZpl2QCzneWdmJO.js +1 -0
- package/screenshot-page/assets/6IEV7KeOEbBdrthj.js +1 -0
- package/screenshot-page/assets/8QrkTrKHDnMBb7q4.js +1 -0
- package/screenshot-page/assets/9w0ECZmzGUyk3F_O.js +1 -0
- package/screenshot-page/assets/AjS2PipZDIH3BXB2.js +1 -0
- package/screenshot-page/assets/B-KIwD5F_5S-NsPg.js +1 -0
- package/screenshot-page/assets/B-sAzW5ROrhvMGM4.js +1 -0
- package/screenshot-page/assets/B0FQypGas6gbGT_U.js +1 -0
- package/screenshot-page/assets/B2IQMVqTZT1rUnib.js +1 -0
- package/screenshot-page/assets/B2g3jiFIQ4Qjh5gG.js +1 -0
- package/screenshot-page/assets/B4PbXdzBe9BsoZ0e.js +2 -0
- package/screenshot-page/assets/B5GO9v4p9L70Xb9i.js +1 -0
- package/screenshot-page/assets/B8y_eLNCGnXLEIaE.js +1 -0
- package/screenshot-page/assets/BCl5buf87xUgIfEB.js +2 -0
- package/screenshot-page/assets/BEuMvXYIa9A1JacY.js +1 -0
- package/screenshot-page/assets/BEwl-ucV9Jfr0RoC.js +1 -0
- package/screenshot-page/assets/BFaiQZKle44Rhyou.js +1 -0
- package/screenshot-page/assets/BHqg55S-4_OoAu3P.js +2 -0
- package/screenshot-page/assets/BNgLvS2bLOYKRguv.js +1 -0
- package/screenshot-page/assets/BQAN82ftWBiLJT3r.js +1 -0
- package/screenshot-page/assets/BQfe-XTIOGeUnD9B.js +1 -0
- package/screenshot-page/assets/BQnELVV0uR4T4ItQ.js +1 -0
- package/screenshot-page/assets/BRVZJ0OGJg9XJro6.js +1 -0
- package/screenshot-page/assets/BRqSWCr2mTVNFquQ.js +1 -0
- package/screenshot-page/assets/BTOQaSn9DDyJPUlX.js +1 -0
- package/screenshot-page/assets/BUGXf2DEBog16Slb.js +2 -0
- package/screenshot-page/assets/BUjI304IvdJnFXH3.js +1 -0
- package/screenshot-page/assets/BYRwTzX1q407lHUS.js +2 -0
- package/screenshot-page/assets/Baz0SC2AgGyxMX72.js +1 -0
- package/screenshot-page/assets/BbP9KThfrodyosvn.js +1 -0
- package/screenshot-page/assets/BcOdl17EeFSxnAiq.js +1 -0
- package/screenshot-page/assets/BclKeOKIOBjijhsu.js +1 -0
- package/screenshot-page/assets/Bf7xq8PyF4ohjMzP.js +2 -0
- package/screenshot-page/assets/BimyzECCZl-NESff.js +1 -0
- package/screenshot-page/assets/BkLH7JH3A93TXFJi.js +1 -0
- package/screenshot-page/assets/BksaQEoZr5OWq-_d.js +3 -0
- package/screenshot-page/assets/Bor_tayB4yBfNOH5.js +2 -0
- package/screenshot-page/assets/BowRIybLgENunTOT.js +1 -0
- package/screenshot-page/assets/Bp7se0JaDGrzfSA_.js +1 -0
- package/screenshot-page/assets/Bwql3QifB2cv7Mqp.js +3 -0
- package/screenshot-page/assets/Bx61vmiWY0Xvx9qs.js +1 -0
- package/screenshot-page/assets/ByY3fmwyDPAyOLdo.js +1 -0
- package/screenshot-page/assets/Bz2U7weS0spa8Xbh.js +1 -0
- package/screenshot-page/assets/Bz5V1tmiy5gbT9ys.js +1 -0
- package/screenshot-page/assets/Bz9v1lgjvbu4QnOs.js +2 -0
- package/screenshot-page/assets/C1k_VrZqlpiUigCP.js +1 -0
- package/screenshot-page/assets/C2Wh2h27c7FUb8Yk.js +1 -0
- package/screenshot-page/assets/C6oLDVnuCS9LGkkH.js +1 -0
- package/screenshot-page/assets/C81mK8aZKZAAS-AB.js +1 -0
- package/screenshot-page/assets/C9SC-cEIt6gdhZRw.js +1 -0
- package/screenshot-page/assets/CE0MnsfMjqV2ICzk.js +57 -0
- package/screenshot-page/assets/CE8MCCIiwjOVwBBW.js +1 -0
- package/screenshot-page/assets/CFOaI8g7pJuPzsyk.js +1 -0
- package/screenshot-page/assets/CG3ynup87FmG-kkX.js +1 -0
- package/screenshot-page/assets/CHlWgOAlcRCjVuhg.js +1 -0
- package/screenshot-page/assets/CIged53b3hHKxa-o.js +1 -0
- package/screenshot-page/assets/CNQczIR5xcE5u5fT.js +1 -0
- package/screenshot-page/assets/CSUd8n1H0VBfREnk.js +2 -0
- package/screenshot-page/assets/CSlBTkRDITCC8JRB.js +1 -0
- package/screenshot-page/assets/CV2jr9hpQOG2OG0C.js +1 -0
- package/screenshot-page/assets/CXGgKVbVXjWzE0p6.js +1 -0
- package/screenshot-page/assets/CXKCmZ_TRyGaB9Ob.js +1 -0
- package/screenshot-page/assets/CXUO3vYip3JPSJ7A.js +1 -0
- package/screenshot-page/assets/CXwbGzavyvYgDbWU.js +1 -0
- package/screenshot-page/assets/CZf9s6otzzoaBlSs.js +1 -0
- package/screenshot-page/assets/CZvwQEeVhBilgKLG.js +1 -0
- package/screenshot-page/assets/Ca6nxdhEuLLty3d7.js +2 -0
- package/screenshot-page/assets/CbUDukmvDZmVfhJH.js +1 -0
- package/screenshot-page/assets/CbXtAM7H-Jg_J0dk.js +1 -0
- package/screenshot-page/assets/CctIRGMFmARVi2KT.js +1 -0
- package/screenshot-page/assets/Cenh1POxiGMxIQlv.js +1 -0
- package/screenshot-page/assets/ChSvXfVMLxZsP9zG.js +8 -0
- package/screenshot-page/assets/Ci5NtzhJLll1kxGf.js +10 -0
- package/screenshot-page/assets/CjngjJNheGaVRvZp.js +1 -0
- package/screenshot-page/assets/ClzdIJrFdInttVJA.js +1 -0
- package/screenshot-page/assets/CnPgk3HcIziOcskY.js +10 -0
- package/screenshot-page/assets/CnXLpFE_vFrJ5Jbf.js +1 -0
- package/screenshot-page/assets/CnZJ44ncMxZ4ivcB.js +586 -0
- package/screenshot-page/assets/CpbohdgEaEsVDi9J.js +1 -0
- package/screenshot-page/assets/CqR3hGrC956TkCMj.js +20 -0
- package/screenshot-page/assets/Cr1tQKUBVKOQl3QC.js +1 -0
- package/screenshot-page/assets/Cv8FG9PPBkkPw86e.js +1 -0
- package/screenshot-page/assets/CvL9XK3Ht1mP-rGz.js +4 -0
- package/screenshot-page/assets/CykecBozGGFl26KA.js +3940 -0
- package/screenshot-page/assets/CzTizxHhb-CI_ajE.js +1 -0
- package/screenshot-page/assets/CzzEl3lAkZopkwhC.js +1 -0
- package/screenshot-page/assets/D-LgRj0s-PAVqY-L.js +1 -0
- package/screenshot-page/assets/D-XR1MGhwn7Jqj60.js +1 -0
- package/screenshot-page/assets/D47ePD4x1lVazNdl.js +7 -0
- package/screenshot-page/assets/D6Jpaz2YkhOfzxDB.js +1 -0
- package/screenshot-page/assets/D9zCVZpnJBfNSNO2.js +1 -0
- package/screenshot-page/assets/DDQWM8rNYCYzKa9R.js +1 -0
- package/screenshot-page/assets/DDpAoGAPzo1c4vl5.js +27 -0
- package/screenshot-page/assets/DGXDfjkGZjMRAXPg.js +5 -0
- package/screenshot-page/assets/DHa5_U58lSwCnpmG.js +1 -0
- package/screenshot-page/assets/DKVB6ddRfDJatYid.js +1 -0
- package/screenshot-page/assets/DM9U7u7FQK0jcwh4.js +1 -0
- package/screenshot-page/assets/DNDaHmkQrQTaCHhV.js +1 -0
- package/screenshot-page/assets/DQ0kGd99-fXxuNYk.js +1 -0
- package/screenshot-page/assets/DQWHkaQeNXft9j8b.js +2 -0
- package/screenshot-page/assets/DRVfGdmVBvktrZ1t.js +1 -0
- package/screenshot-page/assets/DRrM-dY9nM7nDRpV.js +1 -0
- package/screenshot-page/assets/DT2x1gO3f2G5NfeB.js +1 -0
- package/screenshot-page/assets/DU3FmyUH0RjPIBd-.js +1 -0
- package/screenshot-page/assets/DUJzubL4qqOyizfu.js +1 -0
- package/screenshot-page/assets/DVueE--eOrZPrqrm.js +1 -0
- package/screenshot-page/assets/DWiI5I3RtoKvVT66.js +1 -0
- package/screenshot-page/assets/DYJSIlNxrNw8qk-w.js +1 -0
- package/screenshot-page/assets/DYRbCudWTaiE_Sjc.js +1 -0
- package/screenshot-page/assets/DZDRRw-62D6Zw7qs.js +1 -0
- package/screenshot-page/assets/D_H2dlsQ8PJ0r1WD.js +10 -0
- package/screenshot-page/assets/DaKZ4-Li_ULIIwnK.js +1 -0
- package/screenshot-page/assets/DadZXeaVK5UXSHIi.js +1 -0
- package/screenshot-page/assets/Db_VGqQo2G2JgXWW.js +1 -0
- package/screenshot-page/assets/DceNHPrRLok2At-X.js +1 -0
- package/screenshot-page/assets/DcrVJCyDwGKeil2U.js +1 -0
- package/screenshot-page/assets/DeAKjatTVaZ0u_FY.js +1 -0
- package/screenshot-page/assets/DmMZ4pd492HPw_3_.js +1 -0
- package/screenshot-page/assets/DmbuCapSSCYIa3yk.js +1 -0
- package/screenshot-page/assets/Dpepompn_NhpSncR.js +1 -0
- package/screenshot-page/assets/DqM1wwsmN1J4MXMm.js +1 -0
- package/screenshot-page/assets/DqYhS4mcQfOe96hU.js +1 -0
- package/screenshot-page/assets/DsL71n5SxCVjL6Ho.js +2 -0
- package/screenshot-page/assets/DyGpT6t96jrvgJes.js +1 -0
- package/screenshot-page/assets/DyLWQxXXTw5uwPVy.js +30 -0
- package/screenshot-page/assets/DyYVf8O1rhg3YmjW.js +1 -0
- package/screenshot-page/assets/DyxJBLjUkeDuu96F.js +1 -0
- package/screenshot-page/assets/DzZRUd0p22CBa27b.js +1 -0
- package/screenshot-page/assets/HclGiUj8dZXDFmoM.js +1 -0
- package/screenshot-page/assets/IRtoU5oVgBWu9rnK.js +2 -0
- package/screenshot-page/assets/IfF7Tv-nhz6Ikpn0.js +1 -0
- package/screenshot-page/assets/J73KTOmdZGNmnq-z.js +1 -0
- package/screenshot-page/assets/J_xJVgE7YlmeU-ZO.js +6 -0
- package/screenshot-page/assets/KoxRo2J_cwB_yOd5.js +2 -0
- package/screenshot-page/assets/LVtV_IPhPQroHRui.js +1 -0
- package/screenshot-page/assets/MNoPOsydrUv1UGU8.js +2 -0
- package/screenshot-page/assets/Miyn0clMq0rovRIo.js +1 -0
- package/screenshot-page/assets/Rm5Sf5E6t8bk_Y3r.js +1 -0
- package/screenshot-page/assets/b3AbgxQkoaCiBi15.js +1 -0
- package/screenshot-page/assets/fGlPAximvsxzPzGA.js +1 -0
- package/screenshot-page/assets/gG0AFZ45VxS_moMw.js +2 -0
- package/screenshot-page/assets/nHThFXCAZFOM_npq.js +1 -0
- package/screenshot-page/assets/pRykm05ElquZBk_a.js +1 -0
- package/screenshot-page/assets/qm3VY0bH7F7EgSdi.js +2 -0
- package/screenshot-page/assets/rPOkVKdPbFpTG6AY.js +1 -0
- package/screenshot-page/assets/w3bV7wggRayUYTd-.js +1 -0
- package/screenshot-page/assets/zFbb8ESzwR_bE7IQ.js +1 -0
- package/screenshot-page/assets/zHHZFbk5RXnrxbOc.js +42 -0
- package/screenshot-page/index.html +44 -0
- package/screenshot-page/resources/contents.json +333 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/contents.json +646 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas/contents.json +9 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/contents.json +19 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
- package/types/index.d.ts +1 -0
- package/types/lib.d.ts +2 -0
- package/types/scripting-api.json +10855 -0
- package/types/scripting-enums.json +1339 -0
- package/types/scripting.d.ts +49295 -0
- package/types/src/SessionRegistry.d.ts +630 -0
- package/types/src/index.d.ts +3 -0
- package/types/src/instances.d.ts +104 -0
- package/types/src/lib/Types.d.ts +17 -0
- package/types/src/lib/index.d.ts +2 -0
- package/types/src/lib/runReport.d.ts +158 -0
- package/types/src/lib.d.ts +2 -0
- package/types/src/prepareRun.d.ts +56 -0
- package/types/src/relay.d.ts +102 -0
- package/types/src/screenshot.d.ts +23 -0
- package/types/src/server.d.ts +37 -0
- package/types/src/taskStore.d.ts +28 -0
|
@@ -0,0 +1,656 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.14
|
|
3
|
+
*
|
|
4
|
+
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
import { ht as e } from "./DkFK1iu4vqjLZMja.js";
|
|
8
|
+
import { c as t, p as n, r as a } from "./CBNNl8igIyeHY4St.js";
|
|
9
|
+
import { c as r, s as i } from "./D94hlZEaHtGHdN_K.js";
|
|
10
|
+
var o = /* @__PURE__ */ new Map([["IReferenceRange", "p"], ["IRange", "r"]]), s = new Set(Object.values(t).filter((e) => e !== t.Omitted)), l = /* @__PURE__ */ new Map([
|
|
11
|
+
["IWorkbook", "workbook"],
|
|
12
|
+
["IWorksheet", "sheet"],
|
|
13
|
+
["ICellRanges", "ranges"],
|
|
14
|
+
["ICellRange", "range"]
|
|
15
|
+
]), d = Array.from(l.keys()), u = (e, t) => {
|
|
16
|
+
Array.from(t.keys()).forEach((n) => {
|
|
17
|
+
const a = t.get(n);
|
|
18
|
+
t.set(`${e}.${n}`, a);
|
|
19
|
+
});
|
|
20
|
+
}, m = /* @__PURE__ */ new Map([
|
|
21
|
+
["Scalar", "*"],
|
|
22
|
+
["Lambda", "l"],
|
|
23
|
+
["FormulaError.Known", n.Error],
|
|
24
|
+
["Date", a.Date],
|
|
25
|
+
["IRichData", a.RichData]
|
|
26
|
+
]), c = /* @__PURE__ */ new Map([["Repeating", "repeating"]]), p = /* @__PURE__ */ new Set(["Flatten", "SheetXL.Flatten"]), g = /* @__PURE__ */ new Set(["AcceptError"]), y = /* @__PURE__ */ new Set(["Omittable"]), f = /* @__PURE__ */ new Set(["NoLift"]), h = /* @__PURE__ */ new Set(["NoFilter"]), v = /* @__PURE__ */ new Set(["Lazy"]), $ = /* @__PURE__ */ new Set(["ReportType"]), b = /^[a-zA-Z_-][a-zA-Z0-9_.-]*$/, T = /^([a-z]{1,3})([0-9]+)$/i, w = /^r[0-9]*c[0-9]*$/i, x = "SheetXL", S = (e) => {
|
|
27
|
+
const t = e.typeName.getText();
|
|
28
|
+
return t.startsWith(`${x}.`) ? t.slice(8) : t;
|
|
29
|
+
};
|
|
30
|
+
u(x, o), u(x, l), u(x, c), g.add(x + ".AcceptError"), y.add(`${x}.Omittable`), f.add(`${x}.NoLift`), h.add(`${x}.NoFilter`), v.add(`${x}.Lazy`), $.add(`${x}.ReportType`);
|
|
31
|
+
var k = /* @__PURE__ */ new Map([["Volatile", () => ({ volatile: !0 })], [`${x}.Volatile`, () => ({ volatile: !0 })]]), A = "__scriptContext__", R = "script", N = /* @__PURE__ */ new Set([
|
|
32
|
+
"IScript.ScriptContext",
|
|
33
|
+
`${x}.IScript.ScriptContext`,
|
|
34
|
+
"ScriptContext"
|
|
35
|
+
]), K = (e, t) => {
|
|
36
|
+
const n = t.literal;
|
|
37
|
+
if (void 0 === n) return;
|
|
38
|
+
const a = e.SyntaxKind;
|
|
39
|
+
switch (n.kind) {
|
|
40
|
+
case a.StringLiteral: return n.text;
|
|
41
|
+
case a.NumericLiteral: return parseFloat(n.text);
|
|
42
|
+
case a.TrueKeyword: return !0;
|
|
43
|
+
case a.FalseKeyword: return !1;
|
|
44
|
+
case a.NullKeyword: return null;
|
|
45
|
+
case a.PrefixUnaryExpression: return n.operator === a.MinusToken && n.operand?.kind === a.NumericLiteral ? -parseFloat(n.operand.text) : void 0;
|
|
46
|
+
default: return;
|
|
47
|
+
}
|
|
48
|
+
}, L = (e) => {
|
|
49
|
+
if (!e || 0 === e.length) return "";
|
|
50
|
+
let t = "";
|
|
51
|
+
for (let n = 0; n < e.length; n++) {
|
|
52
|
+
const a = e[n], r = a.kind;
|
|
53
|
+
if ("link" !== r) {
|
|
54
|
+
if ("linkName" === r) {
|
|
55
|
+
const r = e[n + 1];
|
|
56
|
+
if ("linkText" === r?.kind && r.text.trim()) continue;
|
|
57
|
+
t += a.text;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
t += "linkText" !== r ? a.text : a.text.trim();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return t.replace(/\r\n?/g, "\n").split(/\n[^\S\n]*\n\s*/).map((e) => e.split("\n").map((e) => e.trim()).filter(Boolean).join(" ")).filter(Boolean).join("\n").trim();
|
|
64
|
+
};
|
|
65
|
+
function I(t, a, u, I) {
|
|
66
|
+
const E = I?.builtInNames?.length ? new Set(I.builtInNames.map((e) => e.toUpperCase())) : null, F = [], D = /* @__PURE__ */ new Map(), M = [];
|
|
67
|
+
let C = null;
|
|
68
|
+
const P = (e, t, n, a) => {
|
|
69
|
+
const { start: r, length: i } = ((e) => {
|
|
70
|
+
if (!e || "function" != typeof e.getStart) return {
|
|
71
|
+
start: 0,
|
|
72
|
+
length: 0
|
|
73
|
+
};
|
|
74
|
+
try {
|
|
75
|
+
return {
|
|
76
|
+
start: e.getStart(),
|
|
77
|
+
length: e.getWidth()
|
|
78
|
+
};
|
|
79
|
+
} catch {
|
|
80
|
+
return {
|
|
81
|
+
start: 0,
|
|
82
|
+
length: 0
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
})(e);
|
|
86
|
+
M.push({
|
|
87
|
+
start: r,
|
|
88
|
+
length: i,
|
|
89
|
+
severity: n,
|
|
90
|
+
code: t,
|
|
91
|
+
message: a
|
|
92
|
+
});
|
|
93
|
+
}, U = (e, t, n) => {
|
|
94
|
+
P(e, t, "error", n);
|
|
95
|
+
}, z = (e) => e?.parent?.name?.escapedText;
|
|
96
|
+
let O = null;
|
|
97
|
+
const j = (e, t, n, a, i = !1, o = !1, s = !1) => {
|
|
98
|
+
const l = { count: 0 }, d = Q(e, t, n, a, l, i, o, s);
|
|
99
|
+
l.count >= 2 && (t.range || (t.range = "m", l.count -= 2), !a && l.count >= 1 && (l.count -= 1, l.count > 0 && U(e, r.ArrayDepth, `Arrays of more than 2 dimensions are not supported: '${z(e)}'.`))), l.count > 0 && (t.arrayDepth = l.count);
|
|
100
|
+
const u = t.enum;
|
|
101
|
+
return u && (l.count > (s ? 1 : 0) || t.range) && !q.has(t) && (t.valueOrRange || (U(e, r.EnumPosition, `A list cannot hold the enum '${u.id}': '${t.name ?? z(e)}'. Its members reach the body as they are, so nothing checks them against the enum. Take one value per argument ('...x: ${u.id}[]'), or type the list by its scalar ('${u.type}').`), delete t.enum)), d;
|
|
102
|
+
}, V = (e, n, a, r, i) => {
|
|
103
|
+
if ("Lambda" !== n && n !== `${x}.Lambda`) return !1;
|
|
104
|
+
const o = e.typeArguments;
|
|
105
|
+
let s = "*";
|
|
106
|
+
if (o && 2 === o.length) if (i && o[0].kind === t.SyntaxKind.TupleType && (a.lambdaArity = o[0].elements.length), o[1].kind === t.SyntaxKind.AnyKeyword) s = "raw";
|
|
107
|
+
else {
|
|
108
|
+
const e = {};
|
|
109
|
+
Q(o[1], e, r, !1, { count: 0 }), s = e.scalar ?? "*";
|
|
110
|
+
}
|
|
111
|
+
else if (o && 1 === o.length && o[0].kind !== t.SyntaxKind.TupleType && o[0].kind !== t.SyntaxKind.ArrayType) if (i && (a.lambdaArity = 2), o[0].kind === t.SyntaxKind.AnyKeyword) s = "raw";
|
|
112
|
+
else {
|
|
113
|
+
const e = {};
|
|
114
|
+
Q(o[0], e, r, !1, { count: 0 }), s = e.scalar ?? "*";
|
|
115
|
+
}
|
|
116
|
+
return a.lambda = s, !0;
|
|
117
|
+
}, G = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Map(), J = /* @__PURE__ */ new Set(), q = /* @__PURE__ */ new WeakSet(), W = (e) => void 0 !== e && e.getSourceFile() === a, X = (t, n = !1) => t.getJsDocTags(u).find((e) => "name" === e.name)?.text?.map((e) => e.text).join("").trim() || (n ? e.camelToPrettyCase(t.name) : t.name), Z = (e) => {
|
|
118
|
+
const t = e.getJsDocTags(u).find((e) => "deprecated" === e.name);
|
|
119
|
+
if (t) return t.text?.map((e) => e.text).join("").trim() || !0;
|
|
120
|
+
}, H = (e, i) => {
|
|
121
|
+
const o = t.isTypeReferenceNode(e) ? e.typeName : void 0, s = o ? u.getSymbolAtLocation(o) : void 0, l = s?.declarations?.length ? s : void 0;
|
|
122
|
+
if (o) {
|
|
123
|
+
if (l && l.flags & t.SymbolFlags.Alias) return void U(e, r.EnumNotLocal, `'${o.getText()}' is imported, so its declaration cannot be read: '${i}'. An enum must be declared in the module that uses it.`);
|
|
124
|
+
if (!(l && l.flags & t.SymbolFlags.Type)) {
|
|
125
|
+
const n = o.getText();
|
|
126
|
+
return (l ? 0 !== (l.flags & t.SymbolFlags.Variable) : a.statements.some((e) => t.isVariableStatement(e) && e.declarationList.declarations.some((e) => t.isIdentifier(e.name) && e.name.text === n))) ? void U(e, r.EnumMissingAlias, `'${n}' is a value, not a type: '${i}'. Pair the object with a same-name type — 'type ${n} = typeof ${n}[keyof typeof ${n}];' — or declare it as 'enum ${n} { … }'.`) : null;
|
|
127
|
+
}
|
|
128
|
+
const n = G.get(l);
|
|
129
|
+
if (void 0 !== n) return n;
|
|
130
|
+
if (J.has(l)) return;
|
|
131
|
+
}
|
|
132
|
+
const d = [];
|
|
133
|
+
let m = !1;
|
|
134
|
+
if (l && l.flags & t.SymbolFlags.Enum) {
|
|
135
|
+
if (!l.declarations?.some(W)) return void U(e, r.EnumNotLocal, `'${l.name}' is not declared in this module: '${i}'. An enum must be declared in the module that uses it.`);
|
|
136
|
+
m = !0;
|
|
137
|
+
let n = !1;
|
|
138
|
+
if (l.exports?.forEach((e) => {
|
|
139
|
+
const a = e.valueDeclaration;
|
|
140
|
+
if (!a || !t.isEnumMember(a)) return;
|
|
141
|
+
const i = u.getConstantValue(a);
|
|
142
|
+
if (void 0 === i) return U(a, r.EnumMemberNotConstant, `'${l.name}.${e.name}' is not a constant number or string. A formula passes the VALUE, so every member needs one that can be read at compile time.`), void (n = !0);
|
|
143
|
+
d.push([
|
|
144
|
+
X(e, !0),
|
|
145
|
+
i,
|
|
146
|
+
a,
|
|
147
|
+
L(e.getDocumentationComment(u)),
|
|
148
|
+
Z(e)
|
|
149
|
+
]);
|
|
150
|
+
}), n) return void J.add(l);
|
|
151
|
+
} else {
|
|
152
|
+
const n = u.getTypeFromTypeNode(e), a = t.TypeFlags.Null | t.TypeFlags.Undefined | t.TypeFlags.Void, r = (n.isUnion() ? n.types : [n]).filter((e) => !(e.flags & a)), i = [];
|
|
153
|
+
for (const e of r) {
|
|
154
|
+
if (!(e.flags & (t.TypeFlags.NumberLiteral | t.TypeFlags.StringLiteral))) return l && G.set(l, null), null;
|
|
155
|
+
i.push(e.value);
|
|
156
|
+
}
|
|
157
|
+
if (0 === i.length) return null;
|
|
158
|
+
const o = l?.declarations?.find((e) => t.isTypeAliasDeclaration(e)), s = t.isUnionTypeNode(e) ? e : o?.type;
|
|
159
|
+
if (s && t.isUnionTypeNode(s)) {
|
|
160
|
+
const e = s.types.map((e) => {
|
|
161
|
+
const t = u.getTypeFromTypeNode(e);
|
|
162
|
+
return t.isLiteral() ? t.value : void 0;
|
|
163
|
+
}), t = (t) => {
|
|
164
|
+
const n = e.indexOf(t);
|
|
165
|
+
return n < 0 ? e.length : n;
|
|
166
|
+
};
|
|
167
|
+
i.sort((e, n) => t(e) - t(n));
|
|
168
|
+
}
|
|
169
|
+
const c = l && l.flags & t.SymbolFlags.Variable ? l.valueDeclaration : void 0, p = new Set(i);
|
|
170
|
+
if (l && c && W(c)) for (const e of u.getTypeOfSymbolAtLocation(l, c).getProperties()) {
|
|
171
|
+
const n = e.valueDeclaration, a = u.getTypeOfSymbolAtLocation(e, n ?? c);
|
|
172
|
+
if (!(a.flags & (t.TypeFlags.NumberLiteral | t.TypeFlags.StringLiteral))) continue;
|
|
173
|
+
const r = a.value;
|
|
174
|
+
i.includes(r) && (m = !0, p.delete(r), d.push([
|
|
175
|
+
X(e, !0),
|
|
176
|
+
r,
|
|
177
|
+
n,
|
|
178
|
+
L(e.getDocumentationComment(u)),
|
|
179
|
+
Z(e)
|
|
180
|
+
]));
|
|
181
|
+
}
|
|
182
|
+
for (const e of i) p.has(e) && d.push([
|
|
183
|
+
String(e),
|
|
184
|
+
e,
|
|
185
|
+
void 0,
|
|
186
|
+
null
|
|
187
|
+
]);
|
|
188
|
+
}
|
|
189
|
+
if (0 === d.length) return null;
|
|
190
|
+
const c = "number" == typeof d[0][1];
|
|
191
|
+
if (d.some(([, e]) => "number" == typeof e !== c)) return void U(e, r.EnumMixed, `'${l?.name ?? e.getText()}' mixes number and string members: '${i}'. A parameter has one type, so an enum is all numbers or all strings.`);
|
|
192
|
+
const p = l ? X(l) : d.map(([, e]) => String(e)).join("|"), g = l ? void 0 : B.get(p);
|
|
193
|
+
if (g) return g;
|
|
194
|
+
if (m) {
|
|
195
|
+
const t = /* @__PURE__ */ new Map();
|
|
196
|
+
for (const [n, a, i, o] of d) {
|
|
197
|
+
const s = i?.name?.getText() ?? n, l = t.get(a);
|
|
198
|
+
void 0 !== l ? P(i ?? e, r.EnumDuplicateValue, "warning", `'${p}.${s}' has the same value as '${p}.${l}' (${JSON.stringify(a)}). A formula passes the value, so the two cannot be told apart.`) : t.set(a, s), "" === o && P(i ?? e, r.EnumMemberUndocumented, "warning", `'${p}.${s}' is missing a description. Add a doc comment above the member — it is what the argument dropdown shows.`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
const y = {
|
|
202
|
+
id: p,
|
|
203
|
+
type: c ? n.Number : n.String,
|
|
204
|
+
members: d.map(([e, t, , , n]) => n ? [
|
|
205
|
+
e,
|
|
206
|
+
t,
|
|
207
|
+
n
|
|
208
|
+
] : [e, t])
|
|
209
|
+
};
|
|
210
|
+
l ? G.set(l, y) : B.set(p, y);
|
|
211
|
+
const f = l ? L(l.getDocumentationComment(u)) : "", h = {};
|
|
212
|
+
for (const [e, , , t] of d) t && (h[e] = { description: t });
|
|
213
|
+
if (f || Object.keys(h).length > 0) {
|
|
214
|
+
const e = {};
|
|
215
|
+
f && (e.summary = f), Object.keys(h).length > 0 && (e.members = h), _.set(y, e);
|
|
216
|
+
}
|
|
217
|
+
return y;
|
|
218
|
+
}, Q = (e, a, i, s, u, b = !1, T = !1, w = !1) => {
|
|
219
|
+
if (e) {
|
|
220
|
+
if (e.kind === t.SyntaxKind.ParenthesizedType) return Q(e.type, a, i, s, u, b, T, w);
|
|
221
|
+
if (e.kind === t.SyntaxKind.UnionType) {
|
|
222
|
+
const n = (e) => e.kind === t.SyntaxKind.UndefinedKeyword || e.kind === t.SyntaxKind.VoidKeyword || e.kind === t.SyntaxKind.NullKeyword || e.kind === t.SyntaxKind.LiteralType && e.literal?.kind === t.SyntaxKind.NullKeyword, l = e.types.filter((e) => !n(e));
|
|
223
|
+
if (1 === l.length) return Q(l[0], a, i, s, u, b, T, w);
|
|
224
|
+
const d = H(e, a.name ?? z(e));
|
|
225
|
+
if (void 0 === d) return;
|
|
226
|
+
if (null !== d) return a.scalar = d.type, void (s && (a.enum = d));
|
|
227
|
+
if (!s) return void (a.scalar = "*");
|
|
228
|
+
if (2 === l.length) {
|
|
229
|
+
const e = (e) => e.kind === t.SyntaxKind.TypeReference && t.isTypeReferenceNode(e) && "Lambda" === S(e), n = l.findIndex(e);
|
|
230
|
+
if (n >= 0 && !e(l[1 - n])) return Q(l[1 - n], a, i, s, u, b, T, w), void V(l[n], S(l[n]), a, i, s);
|
|
231
|
+
}
|
|
232
|
+
if (s && 2 === l.length) {
|
|
233
|
+
const e = (e) => {
|
|
234
|
+
if (e.kind === t.SyntaxKind.TypeReference && !e.typeArguments?.length) return o.get(S(e));
|
|
235
|
+
}, n = l.findIndex((t) => void 0 !== e(t));
|
|
236
|
+
if (n >= 0 && void 0 === e(l[1 - n])) {
|
|
237
|
+
const t = {}, r = u.count;
|
|
238
|
+
if (Q(l[1 - n], t, i, s, u, b, !1), t.scalar && !t.range && null == t.lambda && u.count === r) {
|
|
239
|
+
a.range = e(l[n]), a.scalar = t.scalar, a.valueOrRange = !0;
|
|
240
|
+
const r = t.enum;
|
|
241
|
+
r && (a.enum = r);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (s && 2 === l.length) {
|
|
247
|
+
const n = (e) => e.kind === t.SyntaxKind.TypeReference && !e.typeArguments?.length && "Scalar" === S(e), r = l.findIndex(n);
|
|
248
|
+
if (r >= 0 && !n(l[1 - r])) {
|
|
249
|
+
const t = H(l[1 - r], a.name ?? z(e));
|
|
250
|
+
if (void 0 === t) return;
|
|
251
|
+
if (null !== t) return a.scalar = "*", void (a.enum = t);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
U(e, r.InvalidParamType, `Union parameter types are not supported: '${z(e)}'. Use a single type, optionally with '| null' or '| undefined', 'T | Lambda<…>' for a value-or-lambda slot, 'IRange | Scalar' for a value-or-range slot, or 'E | Scalar' for an uncoerced slot whose values an enum documents.`);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
if (e.kind === t.SyntaxKind.NumberKeyword) a.scalar = n.Number;
|
|
258
|
+
else if (e.kind === t.SyntaxKind.StringKeyword) a.scalar = n.String;
|
|
259
|
+
else if (e.kind === t.SyntaxKind.BooleanKeyword) a.scalar = n.Boolean;
|
|
260
|
+
else if (e.kind === t.SyntaxKind.UndefinedKeyword || e.kind === t.SyntaxKind.NullKeyword || e.kind === t.SyntaxKind.VoidKeyword) {
|
|
261
|
+
if (s) return void U(e, r.UndefinedInput, `'undefined' is not a valid type for input: '${z(e)}'.`);
|
|
262
|
+
a.scalar = n.Null;
|
|
263
|
+
} else if (e.kind === t.SyntaxKind.BigIntKeyword) a.scalar = n.Number;
|
|
264
|
+
else if (e.kind === t.SyntaxKind.AnyKeyword) s && (a.range = "*");
|
|
265
|
+
else if (e.kind === t.SyntaxKind.ArrayType) {
|
|
266
|
+
const t = e.elementType;
|
|
267
|
+
if (!t) return void U(e, r.UntypedArray, `'Array' must be typed: '${z(e)}'.`);
|
|
268
|
+
if (s && T) {
|
|
269
|
+
const n = a, r = n.name ?? z(e) ?? "parameter", o = n.acceptError;
|
|
270
|
+
delete n.acceptError;
|
|
271
|
+
const s = { name: r };
|
|
272
|
+
j(t, s, i, !0), o && !s.acceptError && (s.acceptError = !0), n.repeating = [s];
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
u.count++, Q(t, a, i, s, u);
|
|
276
|
+
} else if (e.kind !== t.SyntaxKind.TupleType) if (e.kind === t.SyntaxKind.TypeReference) {
|
|
277
|
+
const n = S(e);
|
|
278
|
+
if (g.has(n)) {
|
|
279
|
+
const t = z(e);
|
|
280
|
+
if (!s) return void U(e, r.InvalidReturnType, `'${n}' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
281
|
+
const o = a;
|
|
282
|
+
if (o.acceptError) return void U(e, r.InvalidParamType, `'${t}' declares 'AcceptError' more than once.`);
|
|
283
|
+
const l = e.typeArguments;
|
|
284
|
+
return l && 1 === l.length ? (o.acceptError = !0, Q(l[0], a, i, s, u, b, T, w)) : void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
285
|
+
}
|
|
286
|
+
if ($.has(n)) {
|
|
287
|
+
const t = a.name ?? z(e);
|
|
288
|
+
if (!s) return void U(e, r.InvalidReturnType, `'ReportType' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
289
|
+
const o = e.typeArguments;
|
|
290
|
+
return o && 1 === o.length ? (a.reportType = !0, Q(o[0], a, i, s, u, b, T, w)) : void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
291
|
+
}
|
|
292
|
+
if (f.has(n)) {
|
|
293
|
+
const t = a.name ?? z(e);
|
|
294
|
+
if (!s) return void U(e, r.InvalidReturnType, `'NoLift' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
295
|
+
const o = e.typeArguments;
|
|
296
|
+
if (!o || 1 !== o.length) return void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
297
|
+
const l = a;
|
|
298
|
+
l.noLift = !0;
|
|
299
|
+
const d = u.count;
|
|
300
|
+
Q(o[0], a, i, s, u, b, T, w), (l.range || null != l.lambda || l.repeating || u.count !== d) && U(e, r.InvalidParamType, `'${t}': 'NoLift' applies to a SCALAR parameter only - a range, list, repeating or lambda slot never lifts.`);
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (h.has(n)) {
|
|
304
|
+
const t = a.name ?? z(e);
|
|
305
|
+
if (!s) return void U(e, r.InvalidReturnType, `'NoFilter' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
306
|
+
const o = e.typeArguments;
|
|
307
|
+
if (!o || 1 !== o.length) return void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
308
|
+
const l = a;
|
|
309
|
+
l.noFilter = !0;
|
|
310
|
+
const d = u.count;
|
|
311
|
+
if (Q(o[0], a, i, s, u, b, T, w), l.range || null != l.lambda || u.count !== d) return void U(e, r.InvalidParamType, `'${t}': 'NoFilter' applies to a SCALAR slot only - a range, list or lambda slot has no members to coerce.`);
|
|
312
|
+
const m = l.repeating;
|
|
313
|
+
if (m) {
|
|
314
|
+
if (delete l.noFilter, 1 !== m.length) return void U(e, r.InvalidParamType, `'${t}': 'NoFilter' over a repeating group applies to a period-1 group only - write it on the slot that takes the members.`);
|
|
315
|
+
m[0].noFilter = !0;
|
|
316
|
+
} else T && U(e, r.InvalidParamType, `'${t}': 'NoFilter' applies to a REPEATING slot only - a single scalar argument has no members to coerce.`);
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
if (y.has(n)) {
|
|
320
|
+
const o = a.name ?? z(e);
|
|
321
|
+
if (!s) return void U(e, r.InvalidReturnType, `'Omittable' is not a valid return type: '${o}'. It describes how an ARGUMENT is received.`);
|
|
322
|
+
const l = e.typeArguments;
|
|
323
|
+
if (!l || l.length < 1 || l.length > 2) return void U(e, r.GenericArity, `'${n}' must be typed with 1 or 2 types: '${o}'.`);
|
|
324
|
+
const d = a;
|
|
325
|
+
if (d.omittable = !0, 2 === l.length) {
|
|
326
|
+
const a = K(t, l[1]);
|
|
327
|
+
if (void 0 === a) return void U(e, r.InvalidParamType, `'${o}' declares '${n}' with a second type that is not a literal value. Use a number, string, boolean or null - the engine substitutes it for an omitted argument.`);
|
|
328
|
+
d.omittedValue = a;
|
|
329
|
+
}
|
|
330
|
+
const m = Q(l[0], a, i, s, u, b, T, w), c = d.omittedValue;
|
|
331
|
+
return d.enum && null != c && !d.enum.members.some(([, e]) => e === c) && U(l[1], r.EnumOmittedValue, `'${o}': ${JSON.stringify(c)} is not a member of '${d.enum.id}'. An omitted argument must mean a member (${d.enum.members.map(([, e]) => JSON.stringify(e)).join(", ")}) or null.`), m;
|
|
332
|
+
}
|
|
333
|
+
if (v.has(n)) {
|
|
334
|
+
const o = a.name ?? z(e);
|
|
335
|
+
if (!s) return void U(e, r.InvalidReturnType, `'Lazy' is not a valid return type: '${o}'. It describes how an ARGUMENT is received.`);
|
|
336
|
+
const l = a;
|
|
337
|
+
if (l.lazy) return void U(e, r.InvalidParamType, `'${o}' declares 'Lazy' more than once.`);
|
|
338
|
+
const d = e.typeArguments;
|
|
339
|
+
if (!d || d.length < 1 || d.length > 2) return void U(e, r.GenericArity, `'${n}' must be typed with 1 or 2 types: '${o}'.`);
|
|
340
|
+
if (l.lazy = !0, 2 === d.length) {
|
|
341
|
+
const a = K(t, d[1]);
|
|
342
|
+
if (void 0 === a) return void U(e, r.InvalidParamType, `'${o}' declares '${n}' with a second type that is not a literal value. Use a number, string, boolean or null - the engine substitutes it for an absent argument.`);
|
|
343
|
+
l.optional = !0, l.defaultValue = a;
|
|
344
|
+
}
|
|
345
|
+
Q(d[0], a, i, s, u, b, T, w), l.enum ? (U(e, r.EnumPosition, `'${o}': 'Lazy' cannot hold the enum '${l.enum.id}'. The argument may never be evaluated, so there is no point at which it could be checked against the members.`), delete l.enum) : null != l.lambda ? U(e, r.InvalidParamType, `'${o}': 'Lazy' cannot be combined with a Lambda parameter - a callable slot is already the body's to call, or not.`) : l.repeating && U(e, r.InvalidParamType, `'${o}': 'Lazy' applies to a VALUE, not to a repeating group - mark the group's slots instead.`);
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
if (p.has(n)) {
|
|
349
|
+
const t = a.name ?? z(e);
|
|
350
|
+
if (!s) return void U(e, r.InvalidReturnType, `'Flatten' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
351
|
+
const o = e.typeArguments;
|
|
352
|
+
return o && 1 === o.length ? (u.count++, Q(o[0], a, i, s, u, b)) : void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
353
|
+
}
|
|
354
|
+
if ("repeating" === c.get(n)) {
|
|
355
|
+
const o = a.name ?? z(e);
|
|
356
|
+
if (!s) return void U(e, r.RepeatingPosition, `'Repeating' is not a valid return type: '${o}'.`);
|
|
357
|
+
if (0 !== u.count) return void U(e, r.RepeatingPosition, `'Repeating' cannot be nested inside another type: '${o}'.`);
|
|
358
|
+
const l = a, d = e.typeArguments;
|
|
359
|
+
if (!d || d.length < 1 || d.length > 2) return void U(e, r.GenericArity, `'${n}' must be typed with 1 type, optionally followed by a maximum argument count: '${o}'.`);
|
|
360
|
+
let m;
|
|
361
|
+
if (2 === d.length) {
|
|
362
|
+
const e = d[1], a = e.kind === t.SyntaxKind.LiteralType ? e.literal : null, s = a && a.kind === t.SyntaxKind.NumericLiteral ? Number(a.text) : NaN;
|
|
363
|
+
if (!Number.isInteger(s) || s < 1 || s > 255) return void U(e, r.RepeatingMax, `'${o}': '${n}'’s maximum must be a whole number between 1 and 255.`);
|
|
364
|
+
m = s, i.maxArguments = s;
|
|
365
|
+
}
|
|
366
|
+
if (w) return void 0 === m ? void U(e, r.RepeatingPosition, `'${o}' is a rest parameter and a repeating group. A group already repeats — drop the '...', or give the group a maximum ('Repeating<T, 254>') if the ceiling is all you meant.`) : Q(d[0], a, i, s, u, b, T);
|
|
367
|
+
const c = l.acceptError;
|
|
368
|
+
delete l.acceptError;
|
|
369
|
+
const p = ((e, n, a, i) => {
|
|
370
|
+
const o = (e, t, n) => {
|
|
371
|
+
const r = { name: e };
|
|
372
|
+
return j(t, r, a, !0), n && (r.optional = !0), i && !r.acceptError && (r.acceptError = !0), r;
|
|
373
|
+
};
|
|
374
|
+
if (e.kind !== t.SyntaxKind.TupleType) return [o(n, e, !1)];
|
|
375
|
+
const s = e.elements;
|
|
376
|
+
if (s.length < 2) return U(e, r.RepeatingSlots, `'${n}': a repeating group of period ${s.length} must be spelled 'Repeating<T>' without the tuple.`), null;
|
|
377
|
+
const l = [];
|
|
378
|
+
for (let e = 0; e < s.length; e++) {
|
|
379
|
+
const a = s[e];
|
|
380
|
+
if (a.kind !== t.SyntaxKind.NamedTupleMember) return U(a, r.RepeatingSlots, `'${n}': every slot of a repeating group must be labelled, e.g. 'Repeating<[criteriaRange: IRange, criteria: Scalar]>'.`), null;
|
|
381
|
+
const i = !!a.questionToken;
|
|
382
|
+
if (i && e !== s.length - 1) return U(a, r.RepeatingOptional, `'${n}': only the LAST slot of a repeating group may be optional (slot '${a.name?.getText?.()}' is not).`), null;
|
|
383
|
+
l.push(o(a.name?.getText?.() ?? `${e}`, a.type, i));
|
|
384
|
+
}
|
|
385
|
+
return l;
|
|
386
|
+
})(d[0], o ?? "parameter", i, c);
|
|
387
|
+
p && (l.repeating = p);
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
const R = o.get(n);
|
|
391
|
+
let L = !1;
|
|
392
|
+
R && (a.range = R, L = !0);
|
|
393
|
+
const I = m.get(n);
|
|
394
|
+
if (I && (a.scalar = I), void 0 !== I && (L = !0), V(e, n, a, i, s)) return;
|
|
395
|
+
if (s) {
|
|
396
|
+
if ("Volatile" === n || n === `${x}.Volatile`) return void U(e, r.InvalidParamType, `'Volatile' is not a valid parameter type: '${z(e)}'. It describes the function's RESULT, so it belongs on the return type.`);
|
|
397
|
+
if (N.has(n)) return A;
|
|
398
|
+
const t = l.get(n);
|
|
399
|
+
if (t) return t;
|
|
400
|
+
} else if ("Promise" === n) O = e, L = !0;
|
|
401
|
+
else {
|
|
402
|
+
const e = k.get(n);
|
|
403
|
+
e && (Object.assign(a, e()), L = !0);
|
|
404
|
+
}
|
|
405
|
+
if (!L) {
|
|
406
|
+
const t = H(e, a.name ?? z(e));
|
|
407
|
+
if (void 0 === t) return;
|
|
408
|
+
if (null !== t) return a.scalar = t.type, void (s && (a.enum = t));
|
|
409
|
+
}
|
|
410
|
+
if (!L) {
|
|
411
|
+
const t = "number, string, boolean, Scalar, Lambda, Date, FormulaError.Known, IRichData, IRange, IReferenceRange (and arrays of these; optionally wrapped in AcceptError<T>, or grouped with Repeating<T>)", a = "number, string, boolean, Scalar, Date, FormulaError.Known, IRichData, IRange, Volatile<T> (and arrays of these)";
|
|
412
|
+
let i;
|
|
413
|
+
i = s ? b ? `'${n}' is not a valid first parameter: '${z(e)}'. The first parameter is EITHER a macro target (making this a macro) OR a calculation input (making this a calculation function). Allowed: ${d.join(", ")} (macro target); ${t} (calculation input).` : `'${n}' is not a valid parameter type: '${z(e)}'. Allowed: ${t}.` : `'${n}' is not a valid return type: '${z(e)}'. Allowed: ${a}.`, U(e, s ? r.InvalidParamType : r.InvalidReturnType, i);
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
const E = e.typeArguments;
|
|
417
|
+
if (E) {
|
|
418
|
+
if (1 !== E.length) return void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${z(e)}'.`);
|
|
419
|
+
const o = E[0], l = s && t.isTypeReferenceNode(o) && $.has(S(o)), d = a.reportType;
|
|
420
|
+
l && q.add(a), j(o, a, i, s), l && void 0 === d && delete a.reportType;
|
|
421
|
+
const u = a.enum;
|
|
422
|
+
u && !l && (U(E[0], r.EnumPosition, `'${n}' cannot hold the enum '${u.id}': '${z(e)}'. The members of a range reach the body as they are, so nothing checks them against the enum. Take the enum as a value, or type the range by its scalar ('${n}<${u.type}>').`), delete a.enum);
|
|
423
|
+
}
|
|
424
|
+
} else e.kind === t.SyntaxKind.FunctionType && ((e, n, a, i) => {
|
|
425
|
+
if (!i) return void U(e, r.FunctionReturn, `Function type is not a valid return type: '${z(e)}'. Declare a 'Lambda' return instead.`);
|
|
426
|
+
const o = e.type, s = {};
|
|
427
|
+
let l = "*";
|
|
428
|
+
o && (o.kind === t.SyntaxKind.AnyKeyword ? l = "raw" : (Q(o, s, a, !1, { count: 0 }), l = s.scalar ?? "*"));
|
|
429
|
+
const d = e.parameters;
|
|
430
|
+
d && !d.some((e) => e.dotDotDotToken) && (n.lambdaArity = d.length), n.lambda = l;
|
|
431
|
+
})(e, a, i, s);
|
|
432
|
+
} else U(e, r.MissingType, `Type is not defined for '${a?.name ?? "return"}'.`);
|
|
433
|
+
};
|
|
434
|
+
try {
|
|
435
|
+
t.forEachChild(a, (e) => {
|
|
436
|
+
if (a = e, 0 !== (t.getCombinedModifierFlags(a) & t.ModifierFlags.Export) && t.isFunctionDeclaration(e)) {
|
|
437
|
+
const a = e?.name?.getText();
|
|
438
|
+
if (!e.body) return void U(e, r.NoBody, `'${a}': function has no body.`);
|
|
439
|
+
if (!a) return void U(e, r.Anonymous, "Anonymous exported functions are not allowed.");
|
|
440
|
+
const o = {}, l = { parameters: {} };
|
|
441
|
+
try {
|
|
442
|
+
o.name = a;
|
|
443
|
+
const d = L(u.getSymbolAtLocation(e.name)?.getDocumentationComment(u));
|
|
444
|
+
d && (l.summary = d);
|
|
445
|
+
const m = {};
|
|
446
|
+
O = null, j(e.type, m, o, !1), o.returnType = m;
|
|
447
|
+
const c = {};
|
|
448
|
+
n = e, 0 !== (t.getCombinedModifierFlags(n) & t.ModifierFlags.Default) && (c.default = !0, C = a), o.parameters = [];
|
|
449
|
+
const p = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Set();
|
|
450
|
+
let f = null, h = null, v = null, $ = 0, x = !1, S = 0;
|
|
451
|
+
for (let n = 0; n < e.parameters.length; n++) {
|
|
452
|
+
const a = e.parameters[n], i = {};
|
|
453
|
+
i.name = a.name?.getText();
|
|
454
|
+
const s = 0 === o.parameters.length;
|
|
455
|
+
if (I?.lenient && 0 === n && !a.type && c.default) {
|
|
456
|
+
o.context = R;
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
const d = j(a.type, i, o, !0, s, !a.dotDotDotToken, !!a.dotDotDotToken);
|
|
460
|
+
if (d === A) {
|
|
461
|
+
0 === n && void 0 === o.context && (o.context = R);
|
|
462
|
+
continue;
|
|
463
|
+
}
|
|
464
|
+
if (d) {
|
|
465
|
+
if (0 !== o.parameters.length) return void U(a, r.ContextNotFirst, `'${o.name}' contexts must be the first parameter: '${i.name}'.`);
|
|
466
|
+
o.context = d;
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
if (void 0 !== i.lambda) {
|
|
470
|
+
if (null !== f) return void U(a, r.MultipleLambda, `'${o.name}' has more than one Lambda parameter ('${f}' and '${i.name}'). Only one Lambda parameter is allowed.`);
|
|
471
|
+
f = i.name;
|
|
472
|
+
} else if (null !== f) return void U(a, r.LambdaNotLast, `'${o.name}' Lambda parameter ('${f}') must be the last parameter, but '${i.name}' follows it.`);
|
|
473
|
+
const m = !0 === i.optional || void 0 !== a.initializer && null !== a.initializer || void 0 !== a.questionToken && null !== a.questionToken;
|
|
474
|
+
let b;
|
|
475
|
+
if (m && (i.optional = !0, a.initializer)) try {
|
|
476
|
+
if (a.initializer.kind === t.SyntaxKind.StringLiteral) b = a.initializer.text;
|
|
477
|
+
else if (a.initializer.kind === t.SyntaxKind.NumericLiteral) b = parseFloat(a.initializer.text);
|
|
478
|
+
else if (a.initializer.kind === t.SyntaxKind.TrueKeyword || a.initializer.kind === t.SyntaxKind.FalseKeyword) b = a.initializer.kind === t.SyntaxKind.TrueKeyword;
|
|
479
|
+
else if (a.initializer.kind === t.SyntaxKind.NullKeyword) b = null;
|
|
480
|
+
else if (t.isPrefixUnaryExpression(a.initializer) && a.initializer.operator === t.SyntaxKind.MinusToken && a.initializer.operand.kind === t.SyntaxKind.NumericLiteral) b = -parseFloat(a.initializer.operand.text);
|
|
481
|
+
else if (t.isPropertyAccessExpression(a.initializer) || t.isElementAccessExpression(a.initializer)) {
|
|
482
|
+
const e = u.getTypeAtLocation(a.initializer);
|
|
483
|
+
e.flags & (t.TypeFlags.NumberLiteral | t.TypeFlags.StringLiteral) && (b = e.value);
|
|
484
|
+
}
|
|
485
|
+
} catch (e) {
|
|
486
|
+
console.warn(`Couldn't extract default value for parameter '${i.name}'`, e);
|
|
487
|
+
}
|
|
488
|
+
a.dotDotDotToken && (i.rest = !0);
|
|
489
|
+
const T = i.repeating;
|
|
490
|
+
if (T) {
|
|
491
|
+
if (i.rest) return void U(a, r.RepeatingPosition, `'${o.name}' parameter '${i.name}' is both a rest parameter and a repeating group. A group already repeats — drop the '...'.`);
|
|
492
|
+
if (m && 1 === T.length) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${i.name}' cannot be an optional repeating group. Use '...${i.name}: T[]' for zero-or-more, or drop the '?' for one-or-more.`);
|
|
493
|
+
if (null !== h) return void U(a, r.MultipleRepeating, `'${o.name}' has more than one repeating group ('${h}' and '${i.name}'). Only one is allowed — two would make the argument count ambiguous.`);
|
|
494
|
+
if (null !== v) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${v}' is optional and precedes the repeating group '${i.name}'. Every parameter outside a group must be required.`);
|
|
495
|
+
h = i.name, $ = T.length, x = !0 === T[T.length - 1].optional;
|
|
496
|
+
} else {
|
|
497
|
+
if (null !== h && i.rest) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${i.name}' is a rest parameter and follows the repeating group '${h}'. Two variadic tails would make the argument count ambiguous.`);
|
|
498
|
+
if (null !== h && m) {
|
|
499
|
+
if (S >= $ - 1) return void U(a, r.RepeatingOptional, 1 === $ ? `'${o.name}' parameter '${i.name}' is optional and follows the period-1 repeating group '${h}'. One more argument is indistinguishable from one more repetition — make it required, or give the group a period.` : `'${o.name}' has ${S + 1} optional parameters after the repeating group '${h}', which has period ${$}. At most ${$ - 1} may be optional, or the argument count no longer decides the parse.`);
|
|
500
|
+
if (x) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${i.name}' is optional and follows '${h}', whose own last slot is already optional. Both omissions reach the same argument count — drop one.`);
|
|
501
|
+
S++;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
m && !T && (v = i.name);
|
|
505
|
+
const w = (i.range ? 2 : 0) + (i.arrayDepth ?? 0), k = "r" === i.range || "p" === i.range || "*" === i.range, N = i.rest || k ? 3 : 2;
|
|
506
|
+
if (w > N) return void U(a, r.ArrayDepth, `'${o.name}' parameter '${i.name}' has an array depth of ${w}; the maximum is ${N}${i.rest ? " for a rest parameter" : " (use a rest parameter for one more level, or an IRange)"}.`);
|
|
507
|
+
o.parameters.push(i);
|
|
508
|
+
const K = { description: "" };
|
|
509
|
+
l.parameters[i.name] = K, K.description = L(u.getSymbolAtLocation(a.name)?.getDocumentationComment(u)), void 0 !== b && (i.defaultValue = b);
|
|
510
|
+
for (const e of [i, ...i.repeating ?? []]) {
|
|
511
|
+
const t = e.enum ? _.get(e.enum) : void 0;
|
|
512
|
+
t && ((l.enums ??= {})[e.enum.id] = t);
|
|
513
|
+
}
|
|
514
|
+
if (p.set(i.name, i), g.set(i.name, a), T && T.length > 1) {
|
|
515
|
+
y.add(i.name);
|
|
516
|
+
for (const e of T) {
|
|
517
|
+
const t = `${i.name}.${e.name}`;
|
|
518
|
+
l.parameters[t] = { description: "" }, p.set(t, e), g.set(t, a);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
const k = o.maxArguments;
|
|
523
|
+
if (void 0 !== k) {
|
|
524
|
+
const t = o.parameters ?? [];
|
|
525
|
+
if (!t.some((e) => !0 === e.rest || void 0 !== e.repeating)) return void U(e, r.RepeatingMax, `'${o.name}' declares a maximum of ${k} arguments but takes a fixed ${t.length}. A maximum only means something on a variadic tail.`);
|
|
526
|
+
let n = 0;
|
|
527
|
+
for (const e of t) !0 !== e.rest && !0 !== e.optional && (n += e.repeating ? e.repeating.length : 1);
|
|
528
|
+
if (k < n) return void U(e, r.RepeatingMax, `'${o.name}' declares a maximum of ${k} arguments but requires ${n}.`);
|
|
529
|
+
}
|
|
530
|
+
if (e.jsDoc && e.jsDoc.length > 0) {
|
|
531
|
+
const t = e.jsDoc, n = t.length;
|
|
532
|
+
for (let e = 0; e < n; e++) {
|
|
533
|
+
const n = t[e]?.tags;
|
|
534
|
+
if (!n) continue;
|
|
535
|
+
const d = n.length;
|
|
536
|
+
for (let e = 0; e < d; e++) {
|
|
537
|
+
const t = n[e];
|
|
538
|
+
let d = t?.tagName?.text;
|
|
539
|
+
if (!d) continue;
|
|
540
|
+
d = d.toLowerCase();
|
|
541
|
+
let u = t.comment;
|
|
542
|
+
const m = i(d);
|
|
543
|
+
if ("string" == typeof u || m) {
|
|
544
|
+
if ("string" == typeof u && (u = u.replace(/\r\n?/g, "\n").trim()), m || !u || (u = u.split("\n")[0].trim(), u && 0 !== u.length)) {
|
|
545
|
+
if (u && "string" == typeof u) {
|
|
546
|
+
const e = /\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;
|
|
547
|
+
let t, n = u, a = [];
|
|
548
|
+
for (; null !== (t = e.exec(u));) {
|
|
549
|
+
const [e, n, a, r] = t, i = [a.trim()];
|
|
550
|
+
r && i.push(r.trim());
|
|
551
|
+
}
|
|
552
|
+
u = n, a.length > 0 && "see" === d && (l.links || (l.links = []), l.links.push(...a));
|
|
553
|
+
}
|
|
554
|
+
if ("name" === d) {
|
|
555
|
+
const e = u;
|
|
556
|
+
e !== a && (l.name = e);
|
|
557
|
+
} else if ("description" !== d) {
|
|
558
|
+
if ("param" === d) {
|
|
559
|
+
const e = t.name?.getText?.() ?? t.name?.text;
|
|
560
|
+
if (!p.get(e)) {
|
|
561
|
+
U(t, r.UnknownParam, `Parameter '${e}' not found in function '${a}'.`);
|
|
562
|
+
continue;
|
|
563
|
+
}
|
|
564
|
+
const n = l.parameters?.[e];
|
|
565
|
+
n && !n.description && "string" == typeof u && u && (n.description = u);
|
|
566
|
+
} else if ("returns" === d || "return" === d) o.returnType.description = u;
|
|
567
|
+
else if ("returnkind" === d) {
|
|
568
|
+
const e = (u ?? "").trim().toLowerCase();
|
|
569
|
+
s.has(e) ? o.returnType.kind = e : U(t, r.UnknownReturnKind, `'@returnKind ${e}' is not a known value kind. Known: ${[...s].map((e) => `'${e}'`).join(", ")}.`);
|
|
570
|
+
} else if ("category" === d) l.category = u;
|
|
571
|
+
else if ("deprecated" === d || "hidden" === d) {
|
|
572
|
+
let e = !0;
|
|
573
|
+
const t = u?.toLowerCase();
|
|
574
|
+
"false" === t ? e = !1 : "true" !== t && (e = u), !1 !== e && (l.deprecated = e ?? !0, o.hidden = !0);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
} else "returnkind" === d && U(t, r.UnknownReturnKind, `'@returnKind' needs a value kind. Known: ${[...s].map((e) => `'${e}'`).join(", ")}.`);
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
if (!o.context && O) return void U(O, r.InvalidReturnType, `'${a}': Promise<T> is not a valid return type for a calculation function. Return the value the cell shows now, and call FormulaContext.defer(executor, payload) to deliver the result later.`);
|
|
583
|
+
0 === Object.keys(o.returnType).length && delete o.returnType, Object.keys(c).length > 0 && (o.behavior = c), l.summary || P(e.name ?? e, r.MissingSummary, "warning", `'${a}': missing a description. Add a JSDoc comment above the function.`);
|
|
584
|
+
const N = !o.context, K = N && l.name || a;
|
|
585
|
+
if (N && !b.test(K)) {
|
|
586
|
+
const t = l.name ? `'@name ${l.name}'` : `'${K}'`;
|
|
587
|
+
U(e.name ?? e, r.InvalidName, `'${a}': ${t} cannot be called from a formula. A function name starts with a letter or '_', and continues with letters, digits, '_' or '.'.` + (l.name ? "" : " Add an '@name' tag to register it under another name."));
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
if (N && !I?.isBuiltIn && ((e) => {
|
|
591
|
+
if (w.test(e)) return !0;
|
|
592
|
+
const t = T.exec(e);
|
|
593
|
+
if (!t) return !1;
|
|
594
|
+
let n = 0;
|
|
595
|
+
for (const e of t[1].toUpperCase()) n = 26 * n + (e.charCodeAt(0) - 64);
|
|
596
|
+
const a = Number(t[2]);
|
|
597
|
+
return n <= 16384 && a >= 1 && a <= 1048576;
|
|
598
|
+
})(K)) {
|
|
599
|
+
const t = l.name ? `'@name ${l.name}'` : `'${K}'`;
|
|
600
|
+
U(e.name ?? e, r.InvalidName, `'${a}': ${t} cannot be called from a formula. It reads as a cell address.` + (l.name ? "" : " Add an '@name' tag to register it under another name."));
|
|
601
|
+
return;
|
|
602
|
+
}
|
|
603
|
+
const M = D.get(K.toUpperCase());
|
|
604
|
+
if (void 0 !== M) return void U(e.name ?? e, r.DuplicateName, `'${a}': '${K}' is already the name of '${M}' in this module.`);
|
|
605
|
+
if (D.set(K.toUpperCase(), a), N && E?.has(K.toUpperCase())) return void U(e.name ?? e, r.BuiltInName, `'${K}' is a built-in function. Choose a different name - a calculation function cannot replace a built-in.`);
|
|
606
|
+
if (N) {
|
|
607
|
+
const e = l.parameters ?? {};
|
|
608
|
+
for (const [t, n] of Object.entries(e)) if (!y.has(t) && !n.description) {
|
|
609
|
+
const e = g.get(t);
|
|
610
|
+
P(e, r.MissingParamDescription, "warning", `'${a}': parameter '${t}' is missing a description. Add an '@param ${t}' tag.`);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
F.push([o, l]);
|
|
614
|
+
} catch (t) {
|
|
615
|
+
U(e, r.ParseError, `'${a}': ${t.message}`);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
var n, a;
|
|
619
|
+
});
|
|
620
|
+
} catch (e) {
|
|
621
|
+
U(void 0, r.ParseError, `Unable to analyze module: ${e?.message ?? e}`);
|
|
622
|
+
}
|
|
623
|
+
return {
|
|
624
|
+
functions: F,
|
|
625
|
+
autoRun: C,
|
|
626
|
+
diagnostics: M
|
|
627
|
+
};
|
|
628
|
+
}
|
|
629
|
+
function E(e, t, n) {
|
|
630
|
+
const a = "script.ts", r = "lib.d.ts", i = {
|
|
631
|
+
[a]: t ?? "",
|
|
632
|
+
[r]: ""
|
|
633
|
+
}, o = e.createProgram([a], {
|
|
634
|
+
allowJs: !0,
|
|
635
|
+
noResolve: !0,
|
|
636
|
+
noLib: !0,
|
|
637
|
+
isolatedModules: !0,
|
|
638
|
+
module: 99,
|
|
639
|
+
target: e.ScriptTarget.ES2020
|
|
640
|
+
}, {
|
|
641
|
+
getSourceFile: (t) => {
|
|
642
|
+
const n = i[t];
|
|
643
|
+
if (void 0 !== n) return e.createSourceFile(t, n, e.ScriptTarget.Latest, !0);
|
|
644
|
+
},
|
|
645
|
+
fileExists: (e) => void 0 !== i[e],
|
|
646
|
+
readFile: (e) => i[e],
|
|
647
|
+
writeFile: () => {},
|
|
648
|
+
getCurrentDirectory: () => "./",
|
|
649
|
+
getCanonicalFileName: (e) => e,
|
|
650
|
+
useCaseSensitiveFileNames: () => !0,
|
|
651
|
+
getDefaultLibFileName: () => r,
|
|
652
|
+
getNewLine: () => "\n"
|
|
653
|
+
}), s = o.getTypeChecker(), l = o.getSourceFile(a);
|
|
654
|
+
return l ? I(e, l, s, n).diagnostics : [];
|
|
655
|
+
}
|
|
656
|
+
export { I as n, E as t };
|