univer-cli 0.0.1 → 0.1.1

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 (180) hide show
  1. package/README.md +4 -19
  2. package/bin/univer.js +2 -0
  3. package/chunks/af-I8XQee0A-CmFDThzt.js +1 -0
  4. package/chunks/as-DPw4kbfa-B9F_plq0.js +1 -0
  5. package/chunks/be-hSu5_2AE-B6hNUWqv.js +1 -0
  6. package/chunks/bg-eIV91Ges-Bd2DWFob.js +1 -0
  7. package/chunks/bn-CF0YbkEW-g08sLwtk.js +1 -0
  8. package/chunks/build-id-BaP5Hjal.js +1 -0
  9. package/chunks/build-id-CLeOtzGP.js +1 -0
  10. package/chunks/ca-D0fayQwW-BZmYPcsl.js +1 -0
  11. package/chunks/cop-gnNw8zDV-DKmpd6ZK.js +1 -0
  12. package/chunks/cs-cUOdqXi9-JFqHc_iA.js +1 -0
  13. package/chunks/cu-CJJk_6p3-D5QinWvz.js +1 -0
  14. package/chunks/cy-he1_O-US-BVkBOUuv.js +1 -0
  15. package/chunks/da-C_Tc6C75-Ce37Rkvq.js +1 -0
  16. package/chunks/de-1901-D9yvXEO8-CdUbFp9_.js +1 -0
  17. package/chunks/de-1996-DIBM3qkD-CSWdZt1C.js +1 -0
  18. package/chunks/de-ch-1901-BEDgpl3--BaBd6Pyk.js +1 -0
  19. package/chunks/el-monoton-BvjPOyvW-DXXS_X0t.js +1 -0
  20. package/chunks/el-polyton-DfJ9Eeih-CFBXa39G.js +1 -0
  21. package/chunks/en-gb-DYXoK50H-gYVKStsS.js +1 -0
  22. package/chunks/en-us-ClVoWMyT-DTM3NHI5.js +1 -0
  23. package/chunks/es-48latgZ8-DyF4ZOuj.js +1 -0
  24. package/chunks/et-UzX1rSXY-DcR9JNGb.js +1 -0
  25. package/chunks/eu-ijD7H63T-DKJaXG6h.js +1 -0
  26. package/chunks/fi-DDuxAHu5-B81pTwuW.js +1 -0
  27. package/chunks/fr-6wTrAsbK-BWiY4JbC.js +1 -0
  28. package/chunks/fur-CcIOY8A9-C4KjY8gI.js +1 -0
  29. package/chunks/ga-B4Qvh5qS-rBAaw1W6.js +1 -0
  30. package/chunks/gl-D8H7uN6B-B-8mjLsR.js +1 -0
  31. package/chunks/grc-DFNi6G6p-BdbdB-tX.js +1 -0
  32. package/chunks/gu-0EahmEdu-CIDhZZ9o.js +1 -0
  33. package/chunks/hi-C2ih9xmB-gQS9ROaA.js +1 -0
  34. package/chunks/hr-CSbbBNUu-BkJAQOS_.js +1 -0
  35. package/chunks/hsb-hKsDwaW_-Bz1wxZdL.js +1 -0
  36. package/chunks/hu-BPixuxjf-D_KRKJFX.js +1 -0
  37. package/chunks/hy-CTtThTdl-BKZl6YO6.js +1 -0
  38. package/chunks/ia-CYCjbabb-CtzIWTzG.js +1 -0
  39. package/chunks/id-Cgsp-bEu-lDniNdGl.js +1 -0
  40. package/chunks/is-D_Awtowh-CLIQl2VF.js +1 -0
  41. package/chunks/it-C2qJSkm3-BL4Y-Dcv.js +1 -0
  42. package/chunks/ka-DpGw5nvd-B_hWQNLG.js +1 -0
  43. package/chunks/kmr-CCdNyB20-CpvYihwu.js +1 -0
  44. package/chunks/kn-B4tAUtFU-BzUoRYHN.js +1 -0
  45. package/chunks/la-DIUYl8Yo-DnTw-Mbk.js +1 -0
  46. package/chunks/la-x-classic-DsbLrq-C-6trWnS1V.js +1 -0
  47. package/chunks/la-x-liturgic-Ggenbcb5-CrZVATBB.js +1 -0
  48. package/chunks/lt-BcizI7gZ-CBV1-TLR.js +1 -0
  49. package/chunks/lv-BOgrbf6v-BTmm852-.js +1 -0
  50. package/chunks/ml-CTD7giel-DuesB87E.js +1 -0
  51. package/chunks/mn-cyrl-CDxGttkw-B5Z_v02X.js +1 -0
  52. package/chunks/mn-cyrl-x-lmc-kjrnm3ii-CRJYImwh.js +1 -0
  53. package/chunks/mr-DttMNydl-Dj7fDjaS.js +1 -0
  54. package/chunks/mul-ethi-mmW8ZEm0-ButIEwkF.js +1 -0
  55. package/chunks/nb-DCiD6jLz-8JQgQmJg.js +1 -0
  56. package/chunks/nl-BKWsn_4x-BZ3618-9.js +1 -0
  57. package/chunks/nn-b0W3mz5j-BK1C8M6T.js +1 -0
  58. package/chunks/no-B3l46gib-nr5lnK2H.js +1 -0
  59. package/chunks/oc-zkqkXjNo-BJpmzHN2.js +1 -0
  60. package/chunks/or-DEnI_Cls-qr2MVLjE.js +1 -0
  61. package/chunks/pa-Sh-QSMIs-YozfDjAN.js +1 -0
  62. package/chunks/pi-DxMx4Uwd-1Qx2hrsd.js +1 -0
  63. package/chunks/pl-CISKU0vg-BhS4WYPg.js +1 -0
  64. package/chunks/pms-DUga94hR-B9zb50Zy.js +1 -0
  65. package/chunks/pt-CzW61i2q-D32N4oqA.js +1 -0
  66. package/chunks/rm-C1U6i4AB-DsF0G7Se.js +1 -0
  67. package/chunks/ro-DSU53KfM-CA0x5cD3.js +1 -0
  68. package/chunks/rolldown-runtime-D8j-JhcR.js +1 -0
  69. package/chunks/ru-gduZDLhv-B8qWW8_T.js +1 -0
  70. package/chunks/runtime-eval-kernels-TmodGDsS.js +1 -0
  71. package/chunks/runtime-manifest-DcqNTmn6.js +1 -0
  72. package/chunks/sa-Bney0xbB-DCbBbBmc.js +1 -0
  73. package/chunks/sh-cyrl-CCByyO89-C8G573b_.js +1 -0
  74. package/chunks/sh-latn-CTIiTfzt-D1ngAP_K.js +1 -0
  75. package/chunks/sk-DK-iy-nO-BAcMm7_1.js +1 -0
  76. package/chunks/sl-BvzIjkCq-NQAOhIkz.js +1 -0
  77. package/chunks/sr-cyrl-7T4T5Th1-CMIq0hYP.js +1 -0
  78. package/chunks/sv-BynygC4t-BqB9sNdM.js +1 -0
  79. package/chunks/ta-CglfOvwm-lIpBPoiE.js +1 -0
  80. package/chunks/te-Bec4xJud-CPDFTnI_.js +1 -0
  81. package/chunks/th-B67OcLue-C5XXeT8U.js +1 -0
  82. package/chunks/tk-CYfVPVLR-5w11gLiZ.js +1 -0
  83. package/chunks/tr-BxhGLs2f-C6rF65mJ.js +1 -0
  84. package/chunks/uk-CnWqKnI0-BGTCGJmW.js +1 -0
  85. package/chunks/vendor-DsmUI-SV.js +834 -0
  86. package/chunks/zh-latn-pinyin-CKxTJrac-D8cc0dWj.js +1 -0
  87. package/internal/daemon.js +2 -0
  88. package/internal/univer-runner.js +1 -0
  89. package/package.json +26 -9
  90. package/run-help/topics/core.md +144 -0
  91. package/run-help/topics/formatting.md +162 -0
  92. package/run-help/topics/formulas.md +85 -0
  93. package/run-help/topics/overview.md +92 -0
  94. package/run-help/topics/ranges.md +232 -0
  95. package/run-help/topics/sheets.md +110 -0
  96. package/view/browser/assets/af-I8XQee0A.js +1 -0
  97. package/view/browser/assets/as-DPw4kbfa.js +1 -0
  98. package/view/browser/assets/be-hSu5_2AE.js +1 -0
  99. package/view/browser/assets/bg-eIV91Ges.js +1 -0
  100. package/view/browser/assets/bn-CF0YbkEW.js +1 -0
  101. package/view/browser/assets/ca-D0fayQwW.js +1 -0
  102. package/view/browser/assets/cop-gnNw8zDV.js +1 -0
  103. package/view/browser/assets/cs-cUOdqXi9.js +1 -0
  104. package/view/browser/assets/cu-CJJk_6p3.js +1 -0
  105. package/view/browser/assets/cy-he1_O-US.js +1 -0
  106. package/view/browser/assets/da-C_Tc6C75.js +1 -0
  107. package/view/browser/assets/de-1901-D9yvXEO8.js +1 -0
  108. package/view/browser/assets/de-1996-DIBM3qkD.js +1 -0
  109. package/view/browser/assets/de-ch-1901-BEDgpl3-.js +1 -0
  110. package/view/browser/assets/el-monoton-BvjPOyvW.js +1 -0
  111. package/view/browser/assets/el-polyton-DfJ9Eeih.js +1 -0
  112. package/view/browser/assets/en-gb-DYXoK50H.js +1 -0
  113. package/view/browser/assets/en-us-ClVoWMyT.js +1 -0
  114. package/view/browser/assets/es-48latgZ8.js +1 -0
  115. package/view/browser/assets/et-UzX1rSXY.js +1 -0
  116. package/view/browser/assets/eu-ijD7H63T.js +1 -0
  117. package/view/browser/assets/fi-DDuxAHu5.js +1 -0
  118. package/view/browser/assets/fr-6wTrAsbK.js +1 -0
  119. package/view/browser/assets/fur-CcIOY8A9.js +1 -0
  120. package/view/browser/assets/ga-B4Qvh5qS.js +1 -0
  121. package/view/browser/assets/gl-D8H7uN6B.js +1 -0
  122. package/view/browser/assets/grc-DFNi6G6p.js +1 -0
  123. package/view/browser/assets/gu-0EahmEdu.js +1 -0
  124. package/view/browser/assets/hi-C2ih9xmB.js +1 -0
  125. package/view/browser/assets/hr-CSbbBNUu.js +1 -0
  126. package/view/browser/assets/hsb-hKsDwaW_.js +1 -0
  127. package/view/browser/assets/hu-BPixuxjf.js +1 -0
  128. package/view/browser/assets/hy-CTtThTdl.js +1 -0
  129. package/view/browser/assets/ia-CYCjbabb.js +1 -0
  130. package/view/browser/assets/id-Cgsp-bEu.js +1 -0
  131. package/view/browser/assets/is-D_Awtowh.js +1 -0
  132. package/view/browser/assets/it-C2qJSkm3.js +1 -0
  133. package/view/browser/assets/ka-DpGw5nvd.js +1 -0
  134. package/view/browser/assets/kmr-CCdNyB20.js +1 -0
  135. package/view/browser/assets/kn-B4tAUtFU.js +1 -0
  136. package/view/browser/assets/la-DIUYl8Yo.js +1 -0
  137. package/view/browser/assets/la-x-classic-DsbLrq-C.js +1 -0
  138. package/view/browser/assets/la-x-liturgic-Ggenbcb5.js +1 -0
  139. package/view/browser/assets/lt-BcizI7gZ.js +1 -0
  140. package/view/browser/assets/lv-BOgrbf6v.js +1 -0
  141. package/view/browser/assets/ml-CTD7giel.js +1 -0
  142. package/view/browser/assets/mn-cyrl-CDxGttkw.js +1 -0
  143. package/view/browser/assets/mn-cyrl-x-lmc-kjrnm3ii.js +1 -0
  144. package/view/browser/assets/mr-DttMNydl.js +1 -0
  145. package/view/browser/assets/mul-ethi-mmW8ZEm0.js +1 -0
  146. package/view/browser/assets/nb-DCiD6jLz.js +1 -0
  147. package/view/browser/assets/nl-BKWsn_4x.js +1 -0
  148. package/view/browser/assets/nn-b0W3mz5j.js +1 -0
  149. package/view/browser/assets/no-B3l46gib.js +1 -0
  150. package/view/browser/assets/oc-zkqkXjNo.js +1 -0
  151. package/view/browser/assets/or-DEnI_Cls.js +1 -0
  152. package/view/browser/assets/pa-Sh-QSMIs.js +1 -0
  153. package/view/browser/assets/pi-DxMx4Uwd.js +1 -0
  154. package/view/browser/assets/pl-CISKU0vg.js +1 -0
  155. package/view/browser/assets/pms-DUga94hR.js +1 -0
  156. package/view/browser/assets/pt-CzW61i2q.js +1 -0
  157. package/view/browser/assets/rm-C1U6i4AB.js +1 -0
  158. package/view/browser/assets/ro-DSU53KfM.js +1 -0
  159. package/view/browser/assets/rolldown-runtime.js +1 -0
  160. package/view/browser/assets/ru-gduZDLhv.js +1 -0
  161. package/view/browser/assets/sa-Bney0xbB.js +1 -0
  162. package/view/browser/assets/sh-cyrl-CCByyO89.js +1 -0
  163. package/view/browser/assets/sh-latn-CTIiTfzt.js +1 -0
  164. package/view/browser/assets/sk-DK-iy-nO.js +1 -0
  165. package/view/browser/assets/sl-BvzIjkCq.js +1 -0
  166. package/view/browser/assets/sr-cyrl-7T4T5Th1.js +1 -0
  167. package/view/browser/assets/sv-BynygC4t.js +1 -0
  168. package/view/browser/assets/ta-CglfOvwm.js +1 -0
  169. package/view/browser/assets/te-Bec4xJud.js +1 -0
  170. package/view/browser/assets/th-B67OcLue.js +1 -0
  171. package/view/browser/assets/tk-CYfVPVLR.js +1 -0
  172. package/view/browser/assets/tr-BxhGLs2f.js +1 -0
  173. package/view/browser/assets/uk-CnWqKnI0.js +1 -0
  174. package/view/browser/assets/vendor.js +321 -0
  175. package/view/browser/assets/viewer.css +2 -0
  176. package/view/browser/assets/viewer.js +1 -0
  177. package/view/browser/assets/viewer2.css +1 -0
  178. package/view/browser/assets/zh-latn-pinyin-CKxTJrac.js +1 -0
  179. package/view/browser/index.html +16 -0
  180. package/index.js +0 -4
@@ -0,0 +1 @@
1
+ import{t as e}from"./vendor-DsmUI-SV.js";export{e as ZhLatnPinyin};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ const _0x513267=_0x203f;(function(_0x529f12,_0x292bd9){const _0x1a0dee=_0x203f,_0x4b4efc=_0x529f12();while(!![]){try{const _0x4d1bfd=parseInt(_0x1a0dee(0x178))/0x1*(-parseInt(_0x1a0dee(0x181))/0x2)+parseInt(_0x1a0dee(0x1a7))/0x3+parseInt(_0x1a0dee(0x182))/0x4+-parseInt(_0x1a0dee(0x173))/0x5+-parseInt(_0x1a0dee(0x19f))/0x6+-parseInt(_0x1a0dee(0x1aa))/0x7*(-parseInt(_0x1a0dee(0x1ac))/0x8)+-parseInt(_0x1a0dee(0x1a9))/0x9*(parseInt(_0x1a0dee(0x186))/0xa);if(_0x4d1bfd===_0x292bd9)break;else _0x4b4efc['push'](_0x4b4efc['shift']());}catch(_0x508cf5){_0x4b4efc['push'](_0x4b4efc['shift']());}}}(_0x3663,0x66d13));import{a as _0x3f1277,d as _0x26a4b1,n,o as _0x37c199,r as _0x26dabd,u as _0x4484b5}from'../chunks/runtime-manifest-DcqNTmn6.js';import{t as _0x59c1c7}from'../chunks/build-id-CLeOtzGP.js';import{existsSync as _0x16d68f}from'node:fs';import{chmod as _0x5a8317,mkdir as _0x9aca0,readFile as _0x42eb31,rm as _0x2ced3c,writeFile as _0x1fd243}from'node:fs/promises';import _0x4459e8 from'node:net';import _0x5020c4 from'node:process';var h=new _0x26dabd();async function g(_0x54cde7={}){const _0x107899=_0x203f;if(_0x5020c4[_0x107899(0x176)]===_0x107899(0x1b1))throw Error(_0x107899(0x19a));let _0x32c922=_0x54cde7[_0x107899(0x184)]??_0x5020c4[_0x107899(0x184)],_0x56a708=_0x4484b5(_0x32c922),_0xead592=n(_0x32c922),_0x3f3a74=_0x54cde7[_0x107899(0x171)]??v(new _0x3f1277({'env':_0x32c922,'resolveExecutionPlaneOptions':()=>({'execArgv':[..._0xead592['runtimeExecutionPlaneEntry'][_0x107899(0x170)]],'modulePath':_0xead592['runtimeExecutionPlaneEntry'][_0x107899(0x19b)]})})),_0xdcd343=_0x59c1c7(_0x32c922),_0x2b6ba4=new Date()[_0x107899(0x1b3)]();if(await _0x9aca0(_0x56a708['daemonDir'],{'recursive':!0x0,'mode':0x1c0}),await _0x9aca0(_0x56a708[_0x107899(0x1bf)],{'recursive':!0x0,'mode':0x1c0}),!await S(_0x56a708['lockPath'],_0x56a708[_0x107899(0x198)])){if(await C(_0x56a708[_0x107899(0x1ad)]))return;throw Error('Another\x20daemon\x20startup\x20owns\x20'+_0x56a708[_0x107899(0x163)]);}await x(_0x56a708);let _0x180d9b=!0x1,_0x5991e7={},_0x153b6f=async _0x34240b=>D(null,-0x7f5b,Error(_0x107899(0x19d)+_0x34240b)),_0x3c260b=_0x4459e8[_0x107899(0x1c0)](_0x2afc0c=>{const _0x32f830=_0x107899;let _0x2afc87='';_0x2afc0c['on'](_0x32f830(0x1b4),_0x622e2e=>{const _0x31241d=_0x32f830;_0x2afc87+=_0x622e2e['toString'](_0x31241d(0x160)),_0x5b5087();}),_0x2afc0c['on']('error',()=>void 0x0);let _0x5b5087=async()=>{const _0x35d380=_0x32f830;for(;;){let _0x3cf132=_0x2afc87[_0x35d380(0x192)]('\x0a');if(_0x3cf132<0x0)return;let _0x40114c=_0x2afc87[_0x35d380(0x1bd)](0x0,_0x3cf132)[_0x35d380(0x16b)]();if(_0x2afc87=_0x2afc87[_0x35d380(0x1bd)](_0x3cf132+0x1),!_0x40114c)continue;let _0x17ca6f=await _0x153b6f(_0x40114c);_0x2afc0c[_0x35d380(0x18d)](JSON[_0x35d380(0x16d)](_0x17ca6f)+'\x0a');}};});_0x153b6f=_({'buildId':_0xdcd343,'logRequestError':async _0xab8040=>{const _0xd01c2d=_0x107899;await _0x37c199(_0x56a708[_0xd01c2d(0x16a)],{'event':_0xd01c2d(0x1b5),'method':_0xab8040[_0xd01c2d(0x193)],'error':_0xab8040[_0xd01c2d(0x196)],'timestamp':_0xab8040['timestamp']});},'onShutdownRequest':()=>{const _0x4d6554=_0x107899;_0x467e18(_0x4d6554(0x175))[_0x4d6554(0x19e)](()=>{const _0x2157b3=_0x4d6554;_0x5020c4[_0x2157b3(0x1ae)](0x0);});},'pid':_0x5020c4['pid'],'runtimeRoot':_0x56a708['homeDir'],'sessionHost':_0x3f3a74,'socketPath':_0x56a708['socketPath'],'startedAt':_0x2b6ba4}),await new Promise((_0x24ce28,_0x56ab0c)=>{const _0x142496=_0x107899;_0x3c260b[_0x142496(0x185)](_0x142496(0x196),_0x56ab0c),_0x3c260b['listen'](_0x56a708['socketPath'],_0x24ce28);}),await _0x5a8317(_0x56a708[_0x107899(0x1ad)],0x180);let _0x31fa0e={'pid':_0x5020c4[_0x107899(0x16e)],'startedAt':_0x2b6ba4,'socketPath':_0x56a708[_0x107899(0x1ad)],'runtimeRoot':_0x56a708[_0x107899(0x188)],'buildId':_0xdcd343};await _0x1fd243(_0x56a708['pidPath'],String(_0x5020c4[_0x107899(0x16e)]),_0x107899(0x160)),await _0x1fd243(_0x56a708[_0x107899(0x1b2)],JSON[_0x107899(0x16d)](_0x31fa0e,null,0x2),'utf8'),await _0x37c199(_0x56a708[_0x107899(0x16a)],{'event':_0x107899(0x164),'pid':_0x5020c4[_0x107899(0x16e)],'socketPath':_0x56a708[_0x107899(0x1ad)],'runtimeRoot':_0x56a708[_0x107899(0x188)],'startedAt':_0x2b6ba4,'buildId':_0xdcd343});let _0x39d12d=setInterval(()=>{_0x3f3a74['unloadIdleSessions']();},Math[_0x107899(0x187)](0x3e8,Math[_0x107899(0x1af)](_0x3f3a74['getSessionIdleTtlMs'](),0xea60)));_0x39d12d[_0x107899(0x18f)](),_0x5991e7[_0x107899(0x17e)]=_0x39d12d;async function _0x467e18(_0x495789){const _0x45e17d=_0x107899;_0x180d9b||(_0x180d9b=!0x0,_0x5991e7[_0x45e17d(0x17e)]!==void 0x0&&clearInterval(_0x5991e7[_0x45e17d(0x17e)]),await _0x37c199(_0x56a708[_0x45e17d(0x16a)],{'event':_0x45e17d(0x172),'pid':_0x5020c4['pid'],'reason':_0x495789,'timestamp':new Date()['toISOString']()}),await _0x3f3a74[_0x45e17d(0x1a6)](_0x495789),await new Promise(_0x46b12b=>{const _0x1a7abf=_0x45e17d;_0x3c260b[_0x1a7abf(0x17b)](()=>_0x46b12b());}),await _0x2ced3c(_0x56a708[_0x45e17d(0x1ad)],{'force':!0x0})['catch'](()=>void 0x0),await _0x2ced3c(_0x56a708[_0x45e17d(0x198)],{'force':!0x0})[_0x45e17d(0x19c)](()=>void 0x0),await _0x2ced3c(_0x56a708[_0x45e17d(0x1b2)],{'force':!0x0})[_0x45e17d(0x19c)](()=>void 0x0),await _0x2ced3c(_0x56a708[_0x45e17d(0x163)],{'recursive':!0x0,'force':!0x0})['catch'](()=>void 0x0));}_0x5020c4['on'](_0x107899(0x1be),()=>{const _0x42ed63=_0x107899;_0x467e18(_0x42ed63(0x1ab))['finally'](()=>{const _0x20c646=_0x42ed63;_0x5020c4[_0x20c646(0x1ae)](0x0);});}),_0x5020c4['on']('SIGTERM',()=>{const _0x4f8b86=_0x107899;_0x467e18(_0x4f8b86(0x16f))[_0x4f8b86(0x19e)](()=>{const _0x18e3a5=_0x4f8b86;_0x5020c4[_0x18e3a5(0x1ae)](0x0);});});}function _(_0x40b467){return async _0x3dc701=>{const _0x99d857=_0x203f;let _0x1a48bc;try{_0x1a48bc=JSON[_0x99d857(0x166)](_0x3dc701);}catch(_0x4ee197){return D(null,-0x7fbc,_0x4ee197);}try{switch(_0x1a48bc[_0x99d857(0x193)]){case _0x26a4b1['Health']:return{'jsonrpc':'2.0','id':_0x1a48bc['id'],'result':{'ok':!0x0,'pid':_0x40b467[_0x99d857(0x16e)],'startedAt':_0x40b467['startedAt'],'socketPath':_0x40b467['socketPath'],'runtimeRoot':_0x40b467['runtimeRoot'],'buildId':_0x40b467['buildId'],'sessionCount':_0x40b467[_0x99d857(0x171)]['getSessionCount']()}};case _0x26a4b1[_0x99d857(0x18e)]:return _0x40b467[_0x99d857(0x169)]?.(),{'jsonrpc':_0x99d857(0x189),'id':_0x1a48bc['id'],'result':{'stopping':!0x0}};case _0x26a4b1['SessionLoadWorkbook']:{let _0x3c9ec7=await _0x40b467['sessionHost'][_0x99d857(0x1a3)](_0x1a48bc[_0x99d857(0x1a5)]);return E(_0x1a48bc['id'],_0x3c9ec7);}case _0x26a4b1['SessionLoadWorkbookDataReplayPack']:{let _0x248d8b=await _0x40b467[_0x99d857(0x171)][_0x99d857(0x195)](_0x1a48bc[_0x99d857(0x1a5)]);return E(_0x1a48bc['id'],_0x248d8b);}case _0x26a4b1[_0x99d857(0x197)]:{let _0x23d9e9=await _0x40b467[_0x99d857(0x171)][_0x99d857(0x191)](_0x1a48bc['params']);return E(_0x1a48bc['id'],_0x23d9e9);}case _0x26a4b1[_0x99d857(0x16c)]:{let _0x13c46a=await _0x40b467[_0x99d857(0x171)][_0x99d857(0x1b0)](_0x1a48bc[_0x99d857(0x1a5)]);return E(_0x1a48bc['id'],_0x13c46a);}case _0x26a4b1[_0x99d857(0x180)]:{let _0x3ab8a6=await _0x40b467['sessionHost'][_0x99d857(0x1bc)](_0x1a48bc[_0x99d857(0x1a5)]);return E(_0x1a48bc['id'],_0x3ab8a6);}case _0x26a4b1['SessionExportWorkbookData']:{let _0x2a471c=_0x1a48bc[_0x99d857(0x1a5)],_0x26ce83=await _0x40b467[_0x99d857(0x171)][_0x99d857(0x1b7)](_0x2a471c);return E(_0x1a48bc['id'],_0x26ce83);}case _0x26a4b1[_0x99d857(0x1a1)]:{let _0x266889=await _0x40b467[_0x99d857(0x171)]['dispose'](_0x1a48bc['params']);return E(_0x1a48bc['id'],_0x266889);}case _0x26a4b1[_0x99d857(0x199)]:{let _0x34011e=await _0x40b467[_0x99d857(0x171)][_0x99d857(0x1a8)](_0x1a48bc[_0x99d857(0x1a5)]);return E(_0x1a48bc['id'],_0x34011e);}default:return D(_0x1a48bc['id'],-0x7f59,Error('Method\x20not\x20found:\x20'+_0x1a48bc[_0x99d857(0x193)]));}}catch(_0x16dde9){return await _0x40b467[_0x99d857(0x167)]?.({'method':_0x1a48bc['method'],'error':_0x16dde9 instanceof Error?_0x16dde9['message']:String(_0x16dde9),'timestamp':new Date()['toISOString']()}),D(_0x1a48bc['id'],-0x7f5b,_0x16dde9);}};}function v(_0x4b0508){return{async 'createWorkbook'(_0x558ae1){const _0x407d34=_0x203f;let _0x2fb982=await y(_0x558ae1),_0x4ebba5=await _0x4b0508[_0x407d34(0x191)]({..._0x558ae1[_0x407d34(0x15e)]===void 0x0?{}:{'cwd':_0x558ae1['cwd']},'identity':_0x2fb982,..._0x558ae1['id']===void 0x0?{}:{'workbookId':_0x558ae1['id']},..._0x558ae1[_0x407d34(0x1bb)]===void 0x0?{}:{'workbookName':_0x558ae1[_0x407d34(0x1bb)]}});return{'success':!0x0,'workbookData':_0x4ebba5[_0x407d34(0x1b6)],'session':b(_0x4ebba5['session'])};},async 'dispose'(_0x1f5151){const _0x1ba705=_0x203f;let _0x323428=await y(_0x1f5151);return await _0x4b0508[_0x1ba705(0x15f)]({..._0x1f5151['cwd']===void 0x0?{}:{'cwd':_0x1f5151['cwd']},'identity':_0x323428}),{'disposed':!0x0,'workbookIdentity':_0x323428['absolutePath']};},async 'destroyAll'(_0x3dab2d){const _0x3b3899=_0x203f;await _0x4b0508[_0x3b3899(0x1a6)]?.(_0x3dab2d);},async 'evalJs'(_0x279daf){const _0x249423=_0x203f;let _0x12ed92=await y(_0x279daf),_0x4240fc=await _0x4b0508['evalJs']({'code':_0x279daf['code'],..._0x279daf[_0x249423(0x15e)]===void 0x0?{}:{'cwd':_0x279daf[_0x249423(0x15e)]},'identity':_0x12ed92,..._0x279daf[_0x249423(0x18b)]===void 0x0?{}:{'mutates':_0x279daf[_0x249423(0x18b)]}});return{..._0x4240fc[_0x249423(0x1a2)]===void 0x0?{}:{'mutations':_0x4240fc['mutations']},'success':!0x0,'value':_0x4240fc[_0x249423(0x17c)],'session':b(_0x4240fc['session'])};},async 'exportWorkbookData'(_0x3fe5d9){const _0x49567f=_0x203f;let _0x2289fb=await y(_0x3fe5d9),_0x2c9c17=await _0x4b0508['exportWorkbookData']({..._0x3fe5d9['cwd']===void 0x0?{}:{'cwd':_0x3fe5d9['cwd']},'identity':_0x2289fb});return{'success':!0x0,'workbookData':_0x2c9c17[_0x49567f(0x1b6)],'session':b(_0x2c9c17[_0x49567f(0x18c)])};},async 'exportWorkbookFile'(_0xeab150){const _0x40a5e9=_0x203f;let _0x39b6b8=await y(_0xeab150),_0x126448=await _0x4b0508[_0x40a5e9(0x1bc)]({..._0xeab150[_0x40a5e9(0x15e)]===void 0x0?{}:{'cwd':_0xeab150[_0x40a5e9(0x15e)]},'format':_0xeab150['format'],'identity':_0x39b6b8,'outputPath':_0xeab150[_0x40a5e9(0x1b9)]});return{'success':!0x0,'format':_0x126448[_0x40a5e9(0x1a4)],'outputPath':_0x126448[_0x40a5e9(0x1b9)],'sizeBytes':_0x126448['sizeBytes'],'session':b(_0x126448[_0x40a5e9(0x18c)])};},async 'getWorkbookSession'(_0x54a53d){const _0x31c8a4=_0x203f;let _0x138ca0=await y(_0x54a53d),_0x3b0c52=await _0x4b0508[_0x31c8a4(0x18a)]({..._0x54a53d[_0x31c8a4(0x15e)]===void 0x0?{}:{'cwd':_0x54a53d[_0x31c8a4(0x15e)]},'identity':_0x138ca0});return{'exists':_0x3b0c52!==null,'session':_0x3b0c52===null?null:b(_0x3b0c52)};},'getSessionCount'(){const _0x195794=_0x203f;return _0x4b0508[_0x195794(0x162)]?.()??0x0;},'getSessionIdleTtlMs'(){const _0x71c052=_0x203f;return _0x4b0508[_0x71c052(0x194)]?.()??0xea60;},async 'loadWorkbook'(_0x18ae42){const _0x5d9b66=_0x203f;let _0x187d1b=await y(_0x18ae42),_0x222963=await _0x4b0508[_0x5d9b66(0x174)]({..._0x18ae42[_0x5d9b66(0x15e)]===void 0x0?{}:{'cwd':_0x18ae42[_0x5d9b66(0x15e)]},'identity':_0x187d1b,'workbookData':_0x18ae42['workbookData']});return{'success':!0x0,'workbookData':_0x222963[_0x5d9b66(0x1b6)],'session':b(_0x222963[_0x5d9b66(0x18c)])};},async 'loadWorkbookDataReplayPack'(_0x567d01){const _0x39f139=_0x203f;let _0x5606bc=await y(_0x567d01),_0x6f5e40=await _0x4b0508[_0x39f139(0x195)]({..._0x567d01[_0x39f139(0x15e)]===void 0x0?{}:{'cwd':_0x567d01['cwd']},'identity':_0x5606bc,'replayPack':{'baseWorkbookData':_0x567d01['baseWorkbookData'],'mutations':_0x567d01[_0x39f139(0x1a2)]}});return{'success':!0x0,'workbookData':_0x6f5e40[_0x39f139(0x1b6)],'session':b(_0x6f5e40[_0x39f139(0x18c)])};},async 'unloadIdleSessions'(){await _0x4b0508['unloadIdleSessions']?.();}};}function _0x3663(){const _0x3a55fd=['socketPath','exit','min','evalJs','win32','metaPath','toISOString','data','daemon.request.error','workbookData','exportWorkbookData','message','outputPath','kill','name','exportWorkbookFile','slice','SIGINT','sessionRoot','createServer','cwd','dispose','utf8','createdAt','getSessionCount','lockPath','daemon.start','end','parse','logRequestError','isFinite','onShutdownRequest','logPath','trim','SessionEvalJs','stringify','pid','sigterm','execArgv','sessionHost','daemon.stop','71020DlifKk','loadWorkbookData','rpc-shutdown','platform','argv','87NvdfDA','lastAccessedAt','EEXIST','close','value','createConnection','current','packageIdentity','SessionExportWorkbookFile','3402jdSIpb','1268516LfYlwJ','connect','env','once','30TUsWWX','max','homeDir','2.0','getSession','mutates','session','write','Shutdown','unref','serve','createWorkbook','indexOf','method','getSessionIdleTtlMs','loadWorkbookDataReplayPack','error','SessionCreateWorkbook','pidPath','SessionGetWorkbook','Unix\x20socket\x20daemon\x20transport\x20is\x20not\x20supported\x20on\x20Windows\x20in\x20this\x20version','modulePath','catch','Daemon\x20handler\x20not\x20ready:\x20','finally','2029404dxyJWW','absolutePath','SessionDispose','mutations','loadWorkbook','format','params','destroyAll','2433723rutekt','getWorkbookSession','1275282DwTmaE','382004qerPds','sigint','32KPuwyj'];_0x3663=function(){return _0x3a55fd;};return _0x3663();}async function y(_0x44393b){return await h['resolveIdentity'](_0x44393b);}function b(_0xf07222){const _0xe816e1=_0x203f;return{'createdAt':_0xf07222[_0xe816e1(0x161)]??'','lastAccessedAt':_0xf07222[_0xe816e1(0x179)]??'','sessionId':_0xf07222['sessionId'],'workbookIdentity':_0xf07222[_0xe816e1(0x17f)][_0xe816e1(0x1a0)]};}async function x(_0x3e2f9f){const _0x2d20ee=_0x203f;_0x16d68f(_0x3e2f9f[_0x2d20ee(0x1ad)])&&!await C(_0x3e2f9f[_0x2d20ee(0x1ad)])&&await _0x2ced3c(_0x3e2f9f[_0x2d20ee(0x1ad)],{'force':!0x0});let _0x24f024=await w(_0x3e2f9f[_0x2d20ee(0x198)]);_0x24f024!==null&&!T(_0x24f024)&&(await _0x2ced3c(_0x3e2f9f['pidPath'],{'force':!0x0})['catch'](()=>void 0x0),await _0x2ced3c(_0x3e2f9f[_0x2d20ee(0x1b2)],{'force':!0x0})[_0x2d20ee(0x19c)](()=>void 0x0),await _0x2ced3c(_0x3e2f9f['lockPath'],{'recursive':!0x0,'force':!0x0})[_0x2d20ee(0x19c)](()=>void 0x0));}async function S(_0x451568,_0x35d29d){const _0x2681a0=_0x203f;try{return await _0x9aca0(_0x451568,{'recursive':!0x1,'mode':0x1c0}),!0x0;}catch(_0x3ee771){if(_0x3ee771['code']!==_0x2681a0(0x17a))throw _0x3ee771;let _0x5f22b7=await w(_0x35d29d);return _0x5f22b7!==null&&T(_0x5f22b7)?!0x1:(await _0x2ced3c(_0x451568,{'recursive':!0x0,'force':!0x0}),await _0x9aca0(_0x451568,{'recursive':!0x1,'mode':0x1c0}),!0x0);}}async function C(_0x197b0b){return await new Promise(_0x9a7d65=>{const _0x5e1d86=_0x203f;let _0x26365d=_0x4459e8[_0x5e1d86(0x17d)](_0x197b0b);_0x26365d[_0x5e1d86(0x185)](_0x5e1d86(0x183),()=>{const _0x393279=_0x5e1d86;_0x26365d[_0x393279(0x165)](),_0x9a7d65(!0x0);}),_0x26365d[_0x5e1d86(0x185)](_0x5e1d86(0x196),()=>{_0x9a7d65(!0x1);});});}function _0x203f(_0x379256,_0x4844a3){_0x379256=_0x379256-0x15e;const _0x36639e=_0x3663();let _0x203fc9=_0x36639e[_0x379256];return _0x203fc9;}async function w(_0x3154b4){const _0x387cb8=_0x203f;try{let _0x197c8d=await _0x42eb31(_0x3154b4,_0x387cb8(0x160)),_0x1aedfa=Number(_0x197c8d[_0x387cb8(0x16b)]());return Number[_0x387cb8(0x168)](_0x1aedfa)?_0x1aedfa:null;}catch{return null;}}function T(_0x5c63e0){const _0x50591d=_0x203f;try{return _0x5020c4[_0x50591d(0x1ba)](_0x5c63e0,0x0),!0x0;}catch{return!0x1;}}function E(_0x5cc518,_0x33b7c1){return{'jsonrpc':'2.0','id':_0x5cc518,'result':_0x33b7c1};}function D(_0x51bacb,_0x41e22c,_0xd2de05){const _0x3c867f=_0x203f;return{'jsonrpc':_0x3c867f(0x189),'id':_0x51bacb,'error':{'code':_0x41e22c,'message':_0xd2de05 instanceof Error?_0xd2de05['message']:String(_0xd2de05)}};}var O=process[_0x513267(0x177)][0x2]??_0x513267(0x190);O!==_0x513267(0x190)&&(console[_0x513267(0x196)]('Unknown\x20daemon\x20subcommand:\x20'+O),process[_0x513267(0x1ae)](0x1)),g()[_0x513267(0x19c)](_0x4f1472=>{const _0x15a3b9=_0x513267;console['error'](_0x4f1472 instanceof Error?_0x4f1472[_0x15a3b9(0x1b8)]:String(_0x4f1472)),process[_0x15a3b9(0x1ae)](0x1);});
@@ -0,0 +1 @@
1
+ const _0x39bcbf=_0x541f;(function(_0x5ab0fa,_0x4fbe9e){const _0x18f258=_0x541f,_0x326ca9=_0x5ab0fa();while(!![]){try{const _0x39665d=parseInt(_0x18f258(0xec))/0x1*(-parseInt(_0x18f258(0xfd))/0x2)+-parseInt(_0x18f258(0x108))/0x3+parseInt(_0x18f258(0xe3))/0x4*(-parseInt(_0x18f258(0x107))/0x5)+parseInt(_0x18f258(0x11d))/0x6+-parseInt(_0x18f258(0x106))/0x7+-parseInt(_0x18f258(0xf6))/0x8+parseInt(_0x18f258(0x10a))/0x9;if(_0x39665d===_0x4fbe9e)break;else _0x326ca9['push'](_0x326ca9['shift']());}catch(_0x4d60c9){_0x326ca9['push'](_0x326ca9['shift']());}}}(_0x433e,0xefd14));import{$t as _0x50d1bd,At as _0x568f85,Dt as _0x480c52,Et as _0x1ba706,Ft as _0x125d1d,It as _0x466b14,Jt as _0x521fe2,Lt as _0x3a2763,Mt as _0x3e5824,Nt as _0x5dc134,Ot as _0x50373c,Pt as _0x27e9cc,Qt as _0x265d8a,Rt as _0x1d9a91,Tt as _0x5c56ce,Xt as _0x2c9b0f,Yt as _0x24f5fb,Zt as _0x56cc15,an as _0x32c074,cn as _0x1d4aff,dn as _0x129962,en as _0x30948c,in as _0x2f1389,jt as _0x2cb990,kt as _0x3bdf5a,ln as _0x57e963,on as _0x4bd3d4,qt as _0x4b5f5e,sn as _0x118685,tn as _0x3b176e,un as _0x105034,wt as _0x13b895}from'../chunks/vendor-DsmUI-SV.js';import{writeFile as _0x1c57cc}from'node:fs/promises';var N=_0x39bcbf(0xc7),P=_0x39bcbf(0x10e),F=_0x39bcbf(0xe7),I=_0x39bcbf(0x11b),L=0x3e8,R=0x1a,z=_0x39bcbf(0xd9);function B(){const _0x11f50a=_0x39bcbf;let _0x3ed8ea=new _0x1d4aff({'locale':_0x118685['EN_US'],'locales':{[_0x118685[_0x11f50a(0xc3)]]:_0x57e963(_0x466b14,_0x27e9cc)}});_0x3ed8ea[_0x11f50a(0xd1)](_0x265d8a),_0x3ed8ea[_0x11f50a(0xd1)](_0x50d1bd),_0x3ed8ea['registerPlugin'](_0x125d1d),_0x3ed8ea[_0x11f50a(0xd1)](_0x30948c),_0x5dc134[_0x11f50a(0x116)]=N,_0x50373c[_0x11f50a(0x116)]=N,_0x3ed8ea[_0x11f50a(0xd1)](_0x5dc134,{'enableDynamicToolExecution':!0x0}),_0x3ed8ea[_0x11f50a(0xd1)](_0x50373c),_0x3ed8ea[_0x11f50a(0xd1)](_0x3b176e),_0x3ed8ea['registerPlugin'](_0x1ba706),_0x3ed8ea['registerPlugin'](_0x2c9b0f),_0x3ed8ea[_0x11f50a(0xd1)](_0x4b5f5e),_0x3ed8ea['registerPlugin'](_0x5c56ce),_0x3ed8ea[_0x11f50a(0xd1)](_0x2cb990),_0x3ed8ea['registerPlugin'](_0x24f5fb),_0x3ed8ea[_0x11f50a(0xd1)](_0x3bdf5a),_0x3ed8ea[_0x11f50a(0xd1)](_0x521fe2),_0x3ed8ea[_0x11f50a(0xd1)](_0x480c52),_0x3ed8ea['registerPlugin'](_0x56cc15),_0x3ed8ea[_0x11f50a(0xd1)](_0x13b895),_0x3ed8ea[_0x11f50a(0xd1)](_0x568f85);let _0x4cfdf1=_0x1d9a91['newAPI'](_0x3ed8ea),_0xf81896=_0x3ed8ea[_0x11f50a(0xe1)](),_0x2e5901=_0xf81896['get'](_0x3e5824);_0x2e5901[_0x11f50a(0xf7)]=!0x1;let _0x144d05=_0xf81896[_0x11f50a(0xd3)](_0x32c074),_0xad914a=_0xf81896['get'](_0x4bd3d4),_0x8b5e92=null,_0x5b4d20=null,_0x3a35c6=_0x144d05[_0x11f50a(0x11a)]((_0x4cc786,_0x535c8f)=>{const _0x52ddfa=_0x11f50a;if(_0x8b5e92===null)return;let _0x357482=V(_0x4cc786,_0x535c8f,_0x8b5e92['unitId']);_0x357482!==null&&_0x8b5e92[_0x52ddfa(0xdd)][_0x52ddfa(0xf0)](_0x357482);}),_0xf49476={'univer':_0x3ed8ea,'univerAPI':_0x4cfdf1,'createWorkbook'(_0x6317aa){return _0x26946d(K(_0x6317aa));},'dispose'(){const _0x3fdcde=_0x11f50a;_0x3a35c6[_0x3fdcde(0xe8)](),_0x1d4ad1(),_0x3ed8ea['dispose']();},async 'evalJs'(_0x247f47,_0x25d4e6=0x186a0){const _0x538617=_0x11f50a;if(_0x247f47[_0x538617(0xc4)]>_0x25d4e6)throw Error(_0x538617(0xef)+_0x25d4e6+_0x538617(0x113));return await Function(_0x538617(0x100),'return\x20(async\x20()\x20=>\x20{\x20'+_0x247f47+'\x20})();')(_0x4cfdf1);},async 'evalJsWithMutationCapture'(_0x5e807d,_0x1c61c6=0x186a0){const _0x7c536a=_0x11f50a;let _0x472178=_0x1f102a()[_0x7c536a(0x10b)]();if(_0x8b5e92!==null)throw Error(_0x7c536a(0x10c));let _0x164869={'mutations':[],'unitId':_0x472178};_0x8b5e92=_0x164869;try{return{'value':await _0xf49476[_0x7c536a(0x10f)](_0x5e807d,_0x1c61c6),'mutations':_0x164869[_0x7c536a(0xdd)]};}finally{_0x8b5e92=null;}},async 'exportWorkbookFile'(_0x2acb92,_0x53cabd){const _0x2bed4a=_0x11f50a;let _0x2ab569=_0xf49476['exportWorkbookData']();if(_0x53cabd===_0x2bed4a(0x10d)){let _0x2e9f55=U(_0x2ab569);return await _0x1c57cc(_0x2acb92,_0x2e9f55,_0x2bed4a(0xe2)),{'format':_0x53cabd,'outputPath':_0x2acb92,'sizeBytes':Buffer['byteLength'](_0x2e9f55,_0x2bed4a(0xe2))};}throw Error(_0x2bed4a(0xeb));},'exportWorkbookData'(){const _0xae8eef=_0x11f50a;let _0x214aec=_0x1f102a();return _0xf81896['createInstance'](_0x3a2763,_0x214aec)[_0xae8eef(0x103)]();},'loadWorkbookDataReplayPack'(_0x46b402){const _0x52602f=_0x11f50a;return _0x26946d(_0x46b402['baseWorkbookData']),_0x3e4d52(_0x46b402[_0x52602f(0xdd)]),_0xf49476[_0x52602f(0xe6)]();},'loadWorkbookData':_0x26946d};return _0xf49476;function _0x1d4ad1(){_0x5b4d20&&=(_0xad914a['disposeUnit'](_0x5b4d20),null);}function _0x1f102a(){const _0x5a07d3=_0x11f50a;if(!_0x5b4d20)throw Error(_0x5a07d3(0xc5));let _0x529af0=_0xad914a['getUnit'](_0x5b4d20,_0x129962['UNIVER_SHEET']);if(!_0x529af0)throw Error(_0x5a07d3(0xca)+_0x5b4d20);return _0x529af0;}function _0x26946d(_0x301526){const _0x3cd6cf=_0x11f50a;return _0x1d4ad1(),_0x5b4d20=_0xad914a[_0x3cd6cf(0xf9)](_0x129962[_0x3cd6cf(0xdf)],structuredClone(_0x301526))['getUnitId'](),_0xf49476['exportWorkbookData']();}function _0x3e4d52(_0x278170){const _0x3d6e05=_0x11f50a;if(_0x278170[_0x3d6e05(0xc4)]===0x0)return;let _0x2f84e1=_0x105034(_0x278170[_0x3d6e05(0xd0)](_0x7464f8=>({'id':_0x7464f8['id'],'params':structuredClone(_0x7464f8[_0x3d6e05(0xff)]),'type':_0x2f1389[_0x3d6e05(0x105)]})),_0x144d05,{'fromChangeset':!0x0,'onlyLocal':!0x0});if(!_0x2f84e1[_0x3d6e05(0xed)]){let _0x419f3e=_0x278170[_0x2f84e1[_0x3d6e05(0xc6)]];throw Error(_0x3d6e05(0xc8)+(_0x419f3e?.['id']??'<unknown>')+_0x3d6e05(0x110)+_0x2f84e1[_0x3d6e05(0xc6)]);}}}function V(_0x1931dd,_0x4966d1,_0x2a6bb0){const _0x1d8c46=_0x39bcbf;return _0x1931dd[_0x1d8c46(0xc9)]!==_0x2f1389['MUTATION']||_0x4966d1?.['fromCollab']||_0x4966d1?.['onlyLocal']||_0x1931dd['id']===z||!H(_0x1931dd[_0x1d8c46(0xff)])||_0x1931dd[_0x1d8c46(0xff)][_0x1d8c46(0x111)]!==_0x2a6bb0?null:{'id':_0x1931dd['id'],'params':structuredClone(_0x1931dd['params']),'type':_0x2f1389['MUTATION']};}function H(_0x4c25fa){const _0x300fc5=_0x39bcbf;return typeof _0x4c25fa=='object'&&!!_0x4c25fa&&!Array[_0x300fc5(0xe5)](_0x4c25fa);}function _0x433e(){const _0xaa5369=['UNIVER_SHEET','LoadWorkbookDataReplayPack','__getInjector','utf8','179188nPVALl','evaljs','isArray','exportWorkbookData','sheet-1','dispose','evalJsWithMutationCapture','string','runtime\x20xlsx\x20export\x20is\x20not\x20available;\x20use\x20workbook\x20exchange\x20export','3aojXEO','result','workbook-','Code\x20too\x20long\x20(max\x20','push','filter','LoadWorkbook','name','method','sheets','5511272TobtaS','enableAutoConnect','cellData','createUnit','data','disconnect','tail','162662qVLfTt','sort','params','univerAPI','boolean','value','save','Method\x20not\x20implemented:\x20','MUTATION','4253984sEqDxs','50JBpoiB','4563684nPJhew','2.0','37862748ZCrNox','getUnitId','Mutation\x20collection\x20is\x20already\x20active','csv','enUS','evalJs','\x20at\x20index\x20','unitId','ExportWorkbookFile','\x20characters)','join','send','version','exportWorkbookFile','sheetOrder','rpc-response','onMutationExecutedForCollab','Sheet1','EvalJs','1710792NtvyPe','EN_US','length','Workbook\x20not\x20loaded','index','0.21.1','Failed\x20to\x20replay\x20mutation\x20','type','Workbook\x20not\x20found:\x20','exit','ExportWorkbookData','number','message','resolve','map','registerPlugin','loadWorkbook','get','SIGTERM','keys','CreateWorkbook','format','isFinite','doc.mutation.rich-text-editing','enqueue','toString','mutates','mutations','code'];_0x433e=function(){return _0xaa5369;};return _0x433e();}function U(_0x4e7446){const _0x4f51d4=_0x39bcbf;let _0x5e9b91=_0x4e7446[_0x4f51d4(0x118)]?.[0x0];if(!_0x5e9b91)return'';let _0x154226=_0x4e7446[_0x4f51d4(0xf5)]?.[_0x5e9b91];if(!_0x154226?.[_0x4f51d4(0xf8)])return'';let _0x203772=Object[_0x4f51d4(0xd5)](_0x154226[_0x4f51d4(0xf8)])[_0x4f51d4(0xd0)](Number)['filter'](Number['isFinite'])[_0x4f51d4(0xfe)]((_0x2b4658,_0x4f6dde)=>_0x2b4658-_0x4f6dde),_0x77fd87=[];for(let _0x608d01 of _0x203772){let _0x5d730f=_0x154226['cellData'][_0x608d01];if(!_0x5d730f)continue;let _0x47d845=Object[_0x4f51d4(0xd5)](_0x5d730f)['map'](Number)[_0x4f51d4(0xf1)](Number[_0x4f51d4(0xd8)])[_0x4f51d4(0xfe)]((_0x7ca9f7,_0x570bcb)=>_0x7ca9f7-_0x570bcb),_0x51b44f=[];for(let _0x9c8398 of _0x47d845){let _0x1b40a5=_0x5d730f[_0x9c8398];_0x51b44f[_0x9c8398]=G(W(_0x1b40a5));}_0x77fd87['push'](_0x51b44f[_0x4f51d4(0xd0)](_0x54909a=>_0x54909a??'')[_0x4f51d4(0x114)](','));}return _0x77fd87[_0x4f51d4(0x114)]('\x0a');}function W(_0x460d77){const _0x2d0531=_0x39bcbf;if(!_0x460d77||typeof _0x460d77!='object')return'';let _0x2b80ee=_0x460d77;return typeof _0x2b80ee['v']==_0x2d0531(0xea)?_0x2b80ee['v']:typeof _0x2b80ee['v']==_0x2d0531(0xcd)||typeof _0x2b80ee['v']==_0x2d0531(0x101)?String(_0x2b80ee['v']):typeof _0x2b80ee['p']==_0x2d0531(0xea)?_0x2b80ee['p']:'';}function G(_0x59ca5a){return/[",\n]/['test'](_0x59ca5a)?'\x22'+_0x59ca5a['replaceAll']('\x22','\x22\x22')+'\x22':_0x59ca5a;}function K(_0x29d0a4={}){const _0x69cba7=_0x39bcbf;let _0x17a79c=_0x29d0a4['id']??_0x69cba7(0xee)+Date['now']()[_0x69cba7(0xdb)](0x24);return{'id':_0x17a79c,'name':_0x29d0a4[_0x69cba7(0xf3)]??_0x17a79c,'appVersion':N,'locale':P,'styles':{},'sheetOrder':[F],'sheets':{[F]:{'id':F,'name':I,'rowCount':L,'columnCount':R,'cellData':{}}},'resources':[]};}let q=function(_0x5ee814){const _0x11de9d=_0x39bcbf;return _0x5ee814[_0x11de9d(0xd6)]='createWorkbook',_0x5ee814[_0x11de9d(0x11c)]=_0x11de9d(0xe4),_0x5ee814[_0x11de9d(0x112)]=_0x11de9d(0x117),_0x5ee814[_0x11de9d(0xcc)]=_0x11de9d(0xe6),_0x5ee814[_0x11de9d(0xf2)]=_0x11de9d(0xd2),_0x5ee814[_0x11de9d(0xe0)]='loadWorkbookDataReplayPack',_0x5ee814;}({});var J=class{[_0x39bcbf(0xfc)]=Promise[_0x39bcbf(0xcf)]();async[_0x39bcbf(0xda)](_0x2c77a9){const _0x1bce4d=_0x39bcbf;let _0x3d090d=this[_0x1bce4d(0xfc)],_0x3cd3c7;this[_0x1bce4d(0xfc)]=new Promise(_0x47cd0b=>{_0x3cd3c7=_0x47cd0b;}),await _0x3d090d;try{return await _0x2c77a9();}finally{_0x3cd3c7?.();}}},Y=B(),X=new J();function _0x541f(_0xb62c56,_0x853493){_0xb62c56=_0xb62c56-0xc3;const _0x433e40=_0x433e();let _0x541ff2=_0x433e40[_0xb62c56];return _0x541ff2;}process[_0x39bcbf(0x115)]?.({'type':'ready'}),process['on'](_0x39bcbf(0xce),async _0x493498=>{const _0x3124ac=_0x39bcbf;if(_0x493498?.[_0x3124ac(0xc9)]!=='rpc-request')return;let _0xc851f7=await Z(_0x493498[_0x3124ac(0xfa)]);process[_0x3124ac(0x115)]?.({'type':_0x3124ac(0x119),'id':_0x493498['id'],'data':_0xc851f7});}),process['on'](_0x39bcbf(0xfb),()=>{const _0x479c5e=_0x39bcbf;Y[_0x479c5e(0xe8)](),process[_0x479c5e(0xcb)](0x0);}),process['on'](_0x39bcbf(0xd4),()=>{const _0x1613aa=_0x39bcbf;Y[_0x1613aa(0xe8)](),process[_0x1613aa(0xcb)](0x0);});async function Z(_0xde0ec8){const _0x2af524=_0x39bcbf;try{switch(_0xde0ec8[_0x2af524(0xf4)]){case q[_0x2af524(0xd6)]:{let _0x5ad938=Y['createWorkbook'](_0xde0ec8[_0x2af524(0xff)]??{});return{'jsonrpc':'2.0','id':_0xde0ec8['id'],'result':{'success':!0x0,'workbookData':_0x5ad938}};}case q[_0x2af524(0xf2)]:{let _0x389e3=Y['loadWorkbookData'](_0xde0ec8[_0x2af524(0xff)]['workbookData']);return{'jsonrpc':_0x2af524(0x109),'id':_0xde0ec8['id'],'result':{'success':!0x0,'workbookData':_0x389e3}};}case q[_0x2af524(0xe0)]:{let _0x14f977=Y['loadWorkbookDataReplayPack'](_0xde0ec8[_0x2af524(0xff)]);return{'jsonrpc':_0x2af524(0x109),'id':_0xde0ec8['id'],'result':{'success':!0x0,'workbookData':_0x14f977}};}case q[_0x2af524(0xcc)]:return{'jsonrpc':_0x2af524(0x109),'id':_0xde0ec8['id'],'result':{'success':!0x0,'workbookData':Y['exportWorkbookData']()}};case q[_0x2af524(0x112)]:{let _0x5d6231=_0xde0ec8[_0x2af524(0xff)],_0x54d1a0=await Y[_0x2af524(0x117)](_0x5d6231['outputPath'],_0x5d6231[_0x2af524(0xd7)]);return{'jsonrpc':'2.0','id':_0xde0ec8['id'],'result':{'success':!0x0,..._0x54d1a0}};}case q[_0x2af524(0x11c)]:{let _0x2527a8=_0xde0ec8[_0x2af524(0xff)]??{},_0x20c09a=async()=>{const _0x582a94=_0x2af524;let _0x3e4b02=_0x2527a8[_0x582a94(0xdc)]?await Y[_0x582a94(0xe9)](_0x2527a8[_0x582a94(0xde)]):{'value':await Y[_0x582a94(0x10f)](_0x2527a8['code']),'mutations':void 0x0};return{'success':!0x0,..._0x3e4b02[_0x582a94(0xdd)]===void 0x0?{}:{'mutations':_0x3e4b02[_0x582a94(0xdd)]},'value':_0x3e4b02[_0x582a94(0x102)]};},_0x2b94b9=_0x2527a8[_0x2af524(0xdc)]?await X[_0x2af524(0xda)](_0x20c09a):await _0x20c09a();return{'jsonrpc':_0x2af524(0x109),'id':_0xde0ec8['id'],'result':_0x2b94b9};}default:throw Error(_0x2af524(0x104)+String(_0xde0ec8[_0x2af524(0xf4)]));}}catch(_0x7d481c){return{'jsonrpc':'2.0','id':_0xde0ec8['id'],'error':{'code':-0x7f5b,'message':_0x7d481c instanceof Error?_0x7d481c[_0x2af524(0xce)]:String(_0x7d481c)}};}}
package/package.json CHANGED
@@ -1,15 +1,32 @@
1
1
  {
2
2
  "name": "univer-cli",
3
- "version": "0.0.1",
4
- "description": "Univer CLI - A command-line tool for Univer",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
3
+ "version": "0.1.1",
4
+ "description": "Command-line tools for local Univer workbook automation.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/dream-num/univer.git"
8
8
  },
9
- "keywords": ["univer", "cli"],
10
- "author": "",
11
- "license": "ISC",
12
- "type": "commonjs",
9
+ "homepage": "https://github.com/dream-num/univer#readme",
10
+ "bugs": {
11
+ "url": "https://github.com/dream-num/univer/issues"
12
+ },
13
+ "keywords": [
14
+ "automation",
15
+ "cli",
16
+ "spreadsheet",
17
+ "univer",
18
+ "univer-cli",
19
+ "workbook",
20
+ "xlsx"
21
+ ],
22
+ "type": "module",
23
+ "bin": {
24
+ "univer": "./bin/univer.js"
25
+ },
26
+ "dependencies": {
27
+ "@univerjs-pro/uexcli": "0.1.20"
28
+ },
29
+ "private": false,
13
30
  "publishConfig": {
14
31
  "registry": "https://registry.npmjs.org/"
15
32
  }
@@ -0,0 +1,144 @@
1
+ # Core
2
+
3
+ This topic groups the workbook, worksheet, and structural APIs behind most `run` tasks.
4
+
5
+ ## Object Hierarchy
6
+
7
+ ```text
8
+ univerAPI
9
+ -> getActiveWorkbook() -> FWorkbook
10
+ -> getSheetByName(name) -> FWorksheet | null
11
+ -> getRange(...) -> FRange
12
+ ```
13
+
14
+ ## Entry Point
15
+
16
+ Start from the active workbook:
17
+
18
+ ```javascript
19
+ const workbook = univerAPI.getActiveWorkbook();
20
+ ```
21
+
22
+ Top-level APIs used most often:
23
+
24
+ - `univerAPI.getActiveWorkbook() -> FWorkbook` - get the current active workbook
25
+ - `univerAPI.getFormula() -> FFormula` - get the formula engine instance used for calculation synchronization
26
+
27
+ Dimension constants used by `insertCells()` and `deleteCells()`:
28
+
29
+ - `univerAPI.Enum.Dimension.ROWS` - row dimension constant for `insertCells()` and `deleteCells()`
30
+ - `univerAPI.Enum.Dimension.COLUMNS` - column dimension constant for `insertCells()` and `deleteCells()`
31
+
32
+ ## Workbook And Worksheet Access
33
+
34
+ Use the workbook object to locate, list, create, and delete sheets.
35
+
36
+ - `getSheetByName(name) -> FWorksheet | null` - recommended explicit lookup by sheet name
37
+ - `getSheets() -> FWorksheet[]` - list all worksheets; useful when the task first needs sheet names
38
+ - `create(name, rows, cols) -> FWorksheet` - create a new worksheet with an initial shape
39
+ - `deleteSheet(sheetId) -> boolean` - delete the specified worksheet by sheet id
40
+
41
+ Common worksheet reads:
42
+
43
+ - `getSheetId() -> number`
44
+ - `getSheetName() -> string`
45
+ - `getLastRow() -> number` - 0-based index of the last row with data
46
+ - `getLastColumn() -> number` - 0-based index of the last column with data
47
+ - `hasHiddenGridLines() -> boolean`
48
+
49
+ Common worksheet writes:
50
+
51
+ - `setName(name) -> void`
52
+ - `insertRows(rowIndex, numRows) -> FWorksheet`
53
+ - `deleteRows(rowIndex, numRows) -> FWorksheet`
54
+ - `insertColumns(columnIndex, numColumns) -> FWorksheet`
55
+ - `deleteColumns(columnIndex, numColumns) -> FWorksheet`
56
+ - `setFrozenRows(rows)` or `setFrozenRows(startRow, endRow) -> FWorksheet`
57
+ - `setFrozenColumns(columns)` or `setFrozenColumns(startColumn, endColumn) -> FWorksheet`
58
+ - `setHiddenGridlines(hidden) -> FWorksheet`
59
+ - `setGridLinesColor(color) -> FWorksheet` - `undefined` or `null` resets to default
60
+ - `setRowHeight(rowIndex, height) -> FWorksheet`
61
+ - `setRowHeights(startRow, numRows, height) -> FWorksheet`
62
+ - `showRows(rowIndex, numRows) -> FWorksheet`
63
+ - `hideRows(rowIndex, numRows) -> FWorksheet`
64
+ - `autoResizeRows(startRow, numRows) -> FWorksheet`
65
+ - `setColumnWidth(columnIndex, width) -> FWorksheet`
66
+ - `setColumnWidths(startColumn, numColumns, width) -> FWorksheet`
67
+ - `showColumns(columnIndex, numColumns) -> FWorksheet`
68
+ - `hideColumns(columnIndex, numColumns) -> FWorksheet`
69
+ - `autoResizeColumns(startColumn, numColumns) -> FWorksheet`
70
+
71
+ Example:
72
+
73
+ ```javascript
74
+ () => {
75
+ const workbook = univerAPI.getActiveWorkbook();
76
+ const existing = workbook.getSheetByName("Summary");
77
+ if (existing) {
78
+ return { success: true, sheetName: existing.getSheetName() };
79
+ }
80
+
81
+ const sheet = workbook.create("Summary", 100, 20);
82
+ return { success: true, sheetName: sheet.getSheetName() };
83
+ };
84
+ ```
85
+
86
+ Formula wait API:
87
+
88
+ - `onCalculationResultApplied() -> Promise<void>` - wait until formula-calculation results are applied before reading computed values
89
+ - note: if a real calculation runs, it resolves when results are applied; if no calculation starts quickly, it can resolve automatically instead of hanging forever
90
+
91
+ ## getRange()
92
+
93
+ `getRange()` is the standard bridge from a worksheet to cell-level work.
94
+
95
+ Supported forms:
96
+
97
+ - `getRange('A1')`
98
+ - `getRange('A1:C10')`
99
+ - `getRange('A:A')`
100
+ - `getRange('1:1')`
101
+ - `getRange(row, col)`
102
+ - `getRange(row, col, rowCount, colCount)`
103
+
104
+ Example:
105
+
106
+ ```javascript
107
+ () => {
108
+ const workbook = univerAPI.getActiveWorkbook();
109
+ const sheet = workbook.getSheetByName("Sales");
110
+ if (!sheet) return { success: false, error: 'Sheet "Sales" not found' };
111
+
112
+ const header = sheet.getRange("A1:C1").getValues();
113
+ const firstCell = sheet.getRange(0, 0).getValue();
114
+
115
+ return { success: true, header, firstCell };
116
+ };
117
+ ```
118
+
119
+ ## Coordinate Model
120
+
121
+ Numeric coordinates are 0-based:
122
+
123
+ - `getRange(0, 0)` is `A1`
124
+ - `getRange(1, 2)` is `C2`
125
+ - `getRange(0, 0, 2, 2)` is `A1:B2`
126
+ - `insertRows(4, 3)` inserts 3 rows starting at spreadsheet row 5
127
+ - `insertColumns(1, 2)` inserts 2 columns starting at spreadsheet column B
128
+
129
+ Use numeric coordinates for loops or generated positions. Use A1 notation when the target is fixed and workbook-facing.
130
+
131
+ ## A1 Notation
132
+
133
+ Prefer A1 notation for explicit workbook-facing locations:
134
+
135
+ - `'A1'`
136
+ - `'A1:B10'`
137
+ - `'A:A'`
138
+ - `'1:1'`
139
+
140
+ ## Related Topics
141
+
142
+ - See `sheets` for worksheet-focused structure and presentation tasks.
143
+ - See `ranges` for cell reads, writes, formulas, merges, clear, cell shifts, and AutoFill.
144
+ - See `overview` when you need the command shape, execution rules, and hard rules.
@@ -0,0 +1,162 @@
1
+ # Formatting
2
+
3
+ This topic groups the formatting APIs commonly used in `run`.
4
+
5
+ ## Font Formatting
6
+
7
+ Available font APIs:
8
+
9
+ - `setFontWeight(weight) -> FRange` - set font weight such as `'bold'`; `null` clears it
10
+ - `setFontLine(line) -> FRange` - set text decoration such as `'underline'`, `'line-through'`, or `'none'`
11
+ - `setFontFamily(family) -> FRange` - set font family such as `Arial`, `Verdana`, `Microsoft YaHei`, `SimSun`, or `SimHei`
12
+ - `setFontSize(size) -> FRange` - set font size as a number
13
+ - `setFontColor(color) -> FRange` - set font color with a CSS color string such as `'#ffffff'` or `'white'`; `null` resets it
14
+ - `setFontStyle(style) -> FRange` - set font style such as `'italic'` or `'normal'`; `null` resets it
15
+
16
+ Example:
17
+
18
+ ```javascript
19
+ () => {
20
+ const workbook = univerAPI.getActiveWorkbook();
21
+ const sheet = workbook.getSheetByName("Report");
22
+ if (!sheet) return { success: false, error: 'Sheet "Report" not found' };
23
+
24
+ sheet
25
+ .getRange("A1:D1")
26
+ .setFontWeight("bold")
27
+ .setFontSize(14)
28
+ .setFontFamily("Arial")
29
+ .setFontColor("#1F1F1F");
30
+
31
+ return { success: true };
32
+ };
33
+ ```
34
+
35
+ ## Background Fill
36
+
37
+ Available background API:
38
+
39
+ - `setBackgroundColor(color) -> FRange` - set background fill color with a CSS color string
40
+
41
+ Example:
42
+
43
+ ```javascript
44
+ () => {
45
+ const workbook = univerAPI.getActiveWorkbook();
46
+ const sheet = workbook.getSheetByName("Report");
47
+ if (!sheet) return { success: false, error: 'Sheet "Report" not found' };
48
+
49
+ sheet.getRange("A1:D1").setBackgroundColor("#F2F2F2");
50
+ return { success: true };
51
+ };
52
+ ```
53
+
54
+ ## Alignment
55
+
56
+ Available alignment APIs:
57
+
58
+ - `setHorizontalAlignment(alignment) -> FRange` - set horizontal alignment such as `'left'`, `'center'`, or `'normal'`
59
+ - `setVerticalAlignment(alignment) -> FRange` - set vertical alignment such as `'top'`, `'middle'`, or `'bottom'`
60
+
61
+ Notes:
62
+
63
+ - in this API, `'normal'` horizontal alignment means right alignment
64
+ - use alignment changes only when workbook-visible verification does not already have a smaller primitive
65
+
66
+ Example:
67
+
68
+ ```javascript
69
+ () => {
70
+ const workbook = univerAPI.getActiveWorkbook();
71
+ const sheet = workbook.getSheetByName("Report");
72
+ if (!sheet) return { success: false, error: 'Sheet "Report" not found' };
73
+
74
+ sheet.getRange("A1:D10").setHorizontalAlignment("center").setVerticalAlignment("middle");
75
+
76
+ return { success: true };
77
+ };
78
+ ```
79
+
80
+ ## Borders
81
+
82
+ Border API:
83
+
84
+ - `setBorder(type, style, color?) -> FRange`
85
+
86
+ Border type constants:
87
+
88
+ - `univerAPI.Enum.BorderType.TOP` - top border only
89
+ - `univerAPI.Enum.BorderType.BOTTOM` - bottom border only
90
+ - `univerAPI.Enum.BorderType.LEFT` - left border only
91
+ - `univerAPI.Enum.BorderType.RIGHT` - right border only
92
+ - `univerAPI.Enum.BorderType.ALL` - all borders, including outer and inner grid lines
93
+ - `univerAPI.Enum.BorderType.OUTSIDE` - outside borders only
94
+ - `univerAPI.Enum.BorderType.INSIDE` - inside borders only
95
+ - `univerAPI.Enum.BorderType.NONE` - clear or remove borders from the range
96
+
97
+ Border style constants:
98
+
99
+ - `univerAPI.Enum.BorderStyleTypes.THIN` - thin line, the most common default
100
+ - `univerAPI.Enum.BorderStyleTypes.HAIR` - hair line
101
+ - `univerAPI.Enum.BorderStyleTypes.MEDIUM` - medium line
102
+ - `univerAPI.Enum.BorderStyleTypes.THICK` - thick line
103
+ - `univerAPI.Enum.BorderStyleTypes.DASHED` - dashed line
104
+ - `univerAPI.Enum.BorderStyleTypes.DOUBLE` - double line
105
+
106
+ Example:
107
+
108
+ ```javascript
109
+ () => {
110
+ const workbook = univerAPI.getActiveWorkbook();
111
+ const sheet = workbook.getSheetByName("Report");
112
+ if (!sheet) return { success: false, error: 'Sheet "Report" not found' };
113
+
114
+ sheet
115
+ .getRange("A1:D10")
116
+ .setBorder(univerAPI.Enum.BorderType.OUTSIDE, univerAPI.Enum.BorderStyleTypes.THIN, "#808080");
117
+
118
+ return { success: true };
119
+ };
120
+ ```
121
+
122
+ ## Number Formats
123
+
124
+ Number format API:
125
+
126
+ - `setNumberFormats(patterns) -> FRange` - set number formats with a 2D array that matches the target range shape
127
+
128
+ `patterns` is a 2D array aligned to the target range, similar to `setValues()`.
129
+
130
+ Common patterns:
131
+
132
+ - `#,##0.00` - thousands separator with two decimals
133
+ - `0.00%` - percentage
134
+ - `yyyy-MM-DD` - date
135
+
136
+ Example:
137
+
138
+ ```javascript
139
+ () => {
140
+ const workbook = univerAPI.getActiveWorkbook();
141
+ const sheet = workbook.getSheetByName("Finance");
142
+ if (!sheet) return { success: false, error: 'Sheet "Finance" not found' };
143
+
144
+ sheet.getRange("B2:C3").setNumberFormats([
145
+ ["$#,##0.00", "0.00%"],
146
+ ["$#,##0.00", "0.00%"]
147
+ ]);
148
+
149
+ return { success: true };
150
+ };
151
+ ```
152
+
153
+ ## Clearing Format
154
+
155
+ Use `clearFormat()` to remove formatting from a range without deleting its content:
156
+
157
+ - `clearFormat() -> void`
158
+
159
+ ## Related Topics
160
+
161
+ - See `ranges` for `clearContent()`, `clear()`, value writes, and AutoFill.
162
+ - See `sheets` when the task is row or column presentation instead of cell-level style.
@@ -0,0 +1,85 @@
1
+ # Formulas
2
+
3
+ This topic focuses on formula writes, calculation waits, and readback behavior inside `run`.
4
+
5
+ ## What This Topic Is For
6
+
7
+ Use this topic when the task needs workbook-native recalculation and the result must remain consistent with how the workbook computes formulas.
8
+
9
+ ## Formula Writes
10
+
11
+ You can write formulas with either of these APIs:
12
+
13
+ - `setFormula(formula) -> void`
14
+ - `setValue(value) -> FRange` when `value` starts with `=`
15
+
16
+ This applies to both:
17
+
18
+ - `range.setFormula('=SUM(B1:B10)')`
19
+ - `range.setValue('=SUM(B1:B10)')`
20
+
21
+ ## Formula Calculation
22
+
23
+ Formula calculation is asynchronous. If you need the calculated result in the same `run`, wait for calculation to finish:
24
+
25
+ ```javascript
26
+ await univerAPI.getFormula().onCalculationResultApplied();
27
+ ```
28
+
29
+ Available formula wait API:
30
+
31
+ - `univerAPI.getFormula() -> FFormula`
32
+ - `onCalculationResultApplied() -> Promise<void>` - wait for formula-calculation results to be applied before reading the computed value
33
+ - note: if a real calculation runs, it resolves when results are applied; if no calculation starts quickly, it can resolve automatically instead of hanging forever
34
+
35
+ ## Formula Warning
36
+
37
+ Without the wait, readback can be stale.
38
+
39
+ ## Copyable Example
40
+
41
+ ```javascript
42
+ async () => {
43
+ const workbook = univerAPI.getActiveWorkbook();
44
+ const sheet = workbook.getSheetByName("Sales");
45
+ if (!sheet) return { success: false, error: 'Sheet "Sales" not found' };
46
+
47
+ sheet.getRange("A1").setFormula("=SUM(B1:B10)");
48
+ await univerAPI.getFormula().onCalculationResultApplied();
49
+
50
+ return {
51
+ success: true,
52
+ formula: sheet.getRange("A1").getFormulas(),
53
+ value: sheet.getRange("A1").getValue()
54
+ };
55
+ };
56
+ ```
57
+
58
+ ## Formula Readback With setValue()
59
+
60
+ ```javascript
61
+ async () => {
62
+ const workbook = univerAPI.getActiveWorkbook();
63
+ const sheet = workbook.getSheetByName("Sales");
64
+ if (!sheet) return { success: false, error: 'Sheet "Sales" not found' };
65
+
66
+ sheet.getRange("A2").setValue("=SUM(B2:B10)");
67
+ await univerAPI.getFormula().onCalculationResultApplied();
68
+
69
+ return {
70
+ success: true,
71
+ value: sheet.getRange("A2").getValue()
72
+ };
73
+ };
74
+ ```
75
+
76
+ ## Getchas
77
+
78
+ - do not read the computed result immediately after writing a formula
79
+ - always verify formula output with workbook-visible reads after the command
80
+ - if the task is only propagation from an existing seed, prefer `ranges -> AutoFill` over custom formula scripting
81
+
82
+ ## Related Topics
83
+
84
+ - See `ranges` for formula writes alongside value writes, shape rules, merges, clear, and AutoFill.
85
+ - See `overview` for hard rules and command-selection guidance.
@@ -0,0 +1,92 @@
1
+ # Overview
2
+
3
+ `run` is the workbook-local programmable surface in `univer-cli`. It executes a bounded JavaScript function inside the Univer spreadsheet engine so you can read workbook state, compute results, and write workbook state.
4
+
5
+ Read this topic first when the job belongs in `run` but you have not chosen the exact API yet.
6
+
7
+ ## When To Use `run`
8
+
9
+ Use `run` when the task is workbook-local logic that is clearer or more reliable in API form, especially for:
10
+
11
+ - styling and presentation
12
+ - row or column structure changes
13
+ - freeze panes, gridline settings, and sheet-level display settings
14
+ - merge or unmerge flows
15
+ - formula orchestration that needs workbook-native recalculation
16
+ - bounded read/compute/write logic inside one workbook
17
+
18
+ Prefer smaller surfaces when they already express the task directly:
19
+
20
+ - `inspect` for reconnaissance and workbook-visible verification
21
+ - `search` to locate rows, columns, sheets, and formula matches
22
+ - `pipe out` / `pipe in` for bulk rectangular data roundtrips through shell tools
23
+
24
+ ## Quick Start
25
+
26
+ Use this command shape. The script must be an arrow function and should return a plain object.
27
+
28
+ ```bash
29
+ univer run <univer-path> --code '() => {
30
+ const workbook = univerAPI.getActiveWorkbook();
31
+ const sheet = workbook.getSheetByName("Sheet1");
32
+ if (!sheet) return { success: false, error: "Sheet1 not found" };
33
+
34
+ sheet.getRange("A1").setValue("ready");
35
+ return { success: true, value: sheet.getRange("A1").getValue() };
36
+ }'
37
+ ```
38
+
39
+ Use one of these wrappers:
40
+
41
+ - `() => {}`
42
+ - `async () => {}`
43
+
44
+ ## Hard Rules
45
+
46
+ - always wrap the program in an arrow function
47
+ - always return an object
48
+ - use only APIs documented in this run manual reference family
49
+ - strictly use documented methods; do not guess or invent API names
50
+ - prefer A1 notation for fixed ranges
51
+ - remember that coordinate overloads are 0-based
52
+ - check for missing sheets before writing
53
+ - keep the operation bounded to the workbook task at hand
54
+ - verify the result with workbook-visible reads after the command
55
+
56
+ If a needed API is not documented here, stop and inspect or update the run manual documentation instead of guessing method names, overloads, enum names, or object relationships.
57
+
58
+ ## Common Task Aliases
59
+
60
+ - `autofill` -> `ranges`
61
+ - `fill-series` -> `ranges`
62
+ - `get-values` -> `ranges`
63
+ - `read-range` -> `ranges`
64
+ - `formula-readback` -> `formulas`
65
+ - `calculation` -> `formulas`
66
+ - `freeze-panes` -> `sheets`
67
+ - `number-format` -> `formatting`
68
+
69
+ ## Topics
70
+
71
+ - `overview` - command selection, hard rules, and progressive discovery
72
+ - `core` - `univerAPI`, workbook access, worksheet access, `getRange()`, A1 notation, coordinates
73
+ - `ranges` - value reads, writes, shape rules, formulas, merges, clear, cell shifts, AutoFill
74
+ - `formulas` - formula writes, async calculation waits, and stale-readback getchas
75
+ - `sheets` - worksheet creation, rename, row or column structure, freezing, gridlines, and visibility
76
+ - `formatting` - font, fill, alignment, border, number-format, and clear-format APIs
77
+
78
+ ## Formula Readback Warning
79
+
80
+ Formula calculation is asynchronous. If you set a formula with `setFormula()` or by writing a string starting with `=`, do not read the computed result immediately. Wait for calculation to finish:
81
+
82
+ ```javascript
83
+ await univerAPI.getFormula().onCalculationResultApplied();
84
+ ```
85
+
86
+ Without that wait, readback can be stale.
87
+
88
+ ## Related Topics
89
+
90
+ - See `core` for workbook, sheet, structure, coordinates, and `getRange()`.
91
+ - See `ranges` for range reads and writes, formulas, merges, clear, cell insertion and deletion, and AutoFill.
92
+ - See `formatting` for fonts, fills, alignment, borders, and number formats.