ooxml-core 1.20.0 → 1.22.0

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 (422) hide show
  1. package/README.md +35 -0
  2. package/dist/{PptxHandler-TEKISCJO.cjs → PptxHandler-DNSXWTQV.cjs} +3 -3
  3. package/dist/{PptxHandler-FYD7IYXT.mjs → PptxHandler-FSKKPZZC.mjs} +3 -3
  4. package/dist/PptxHandler-H7MEWJJJ.mjs +4 -0
  5. package/dist/{PresentationBuilder-IMB4DVRN.mjs → PresentationBuilder-7TSENZTX.mjs} +2 -2
  6. package/dist/{PresentationBuilder-NCKASKXU.cjs → PresentationBuilder-A5NI35VN.cjs} +5 -5
  7. package/dist/{PresentationBuilder-EYI6Z2JP.mjs → PresentationBuilder-RIJWQSEU.mjs} +3 -3
  8. package/dist/automation/docx-forms.d.ts +26 -0
  9. package/dist/automation/docx-forms.d.ts.map +1 -0
  10. package/dist/automation/index.cjs +39159 -14352
  11. package/dist/automation/index.d.ts +5 -0
  12. package/dist/automation/index.d.ts.map +1 -1
  13. package/dist/automation/index.mjs +39145 -14353
  14. package/dist/automation/node.cjs +37 -0
  15. package/dist/automation/node.d.ts +32 -1
  16. package/dist/automation/node.d.ts.map +1 -1
  17. package/dist/automation/node.mjs +36 -1
  18. package/dist/automation/proposal.d.ts +25 -0
  19. package/dist/automation/proposal.d.ts.map +1 -0
  20. package/dist/automation/tools/define.d.ts +27 -0
  21. package/dist/automation/tools/define.d.ts.map +1 -0
  22. package/dist/automation/tools/docx-tools.d.ts +4 -0
  23. package/dist/automation/tools/docx-tools.d.ts.map +1 -0
  24. package/dist/automation/tools/index.d.ts +16 -0
  25. package/dist/automation/tools/index.d.ts.map +1 -0
  26. package/dist/automation/tools/types.d.ts +52 -0
  27. package/dist/automation/tools/types.d.ts.map +1 -0
  28. package/dist/automation/tools/visio-tools.d.ts +4 -0
  29. package/dist/automation/tools/visio-tools.d.ts.map +1 -0
  30. package/dist/automation/tools/xlsx-tools.d.ts +8 -0
  31. package/dist/automation/tools/xlsx-tools.d.ts.map +1 -0
  32. package/dist/automation/xlsx-edits.d.ts +88 -0
  33. package/dist/automation/xlsx-edits.d.ts.map +1 -0
  34. package/dist/automation/xlsx-proposal.d.ts +34 -0
  35. package/dist/automation/xlsx-proposal.d.ts.map +1 -0
  36. package/dist/automation/xlsx.d.ts +10 -5
  37. package/dist/automation/xlsx.d.ts.map +1 -1
  38. package/dist/chart/axis-range.d.ts.map +1 -1
  39. package/dist/chart/bubble-radius.d.ts +0 -5
  40. package/dist/chart/bubble-radius.d.ts.map +1 -1
  41. package/dist/chart/extent.d.ts +9 -0
  42. package/dist/chart/extent.d.ts.map +1 -0
  43. package/dist/chart/histogram-binning.d.ts.map +1 -1
  44. package/dist/chart/index.cjs +56 -18
  45. package/dist/chart/index.mjs +56 -18
  46. package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -1
  47. package/dist/chart/render/chart-svg-legend.d.ts.map +1 -1
  48. package/dist/chart/render/chart-view-ex.d.ts.map +1 -1
  49. package/dist/chart/render/chart-view.d.ts.map +1 -1
  50. package/dist/chart/trendline-fit.d.ts.map +1 -1
  51. package/dist/{chunk-3IENHIFD.cjs → chunk-4LZIUJI3.cjs} +52 -12
  52. package/dist/{chunk-LEV2SVMK.mjs → chunk-4QPOJCJG.mjs} +45 -8
  53. package/dist/{chunk-CC5UNZOO.mjs → chunk-6IIMI5RS.mjs} +52 -12
  54. package/dist/{chunk-MN27HKHM.mjs → chunk-BA7Z6ATM.mjs} +5 -5
  55. package/dist/{chunk-LVM3IZJ2.mjs → chunk-DLFMCZZT.mjs} +1 -1
  56. package/dist/{chunk-M4XLF4R7.mjs → chunk-GBKBR4CX.mjs} +20 -8
  57. package/dist/{chunk-NXKATFM5.cjs → chunk-HL3FBJ6X.cjs} +1065 -1016
  58. package/dist/{chunk-WXY5EDGT.mjs → chunk-LF5E5ZOH.mjs} +51 -2
  59. package/dist/chunk-MHNETXQB.mjs +1 -0
  60. package/dist/{chunk-MNXKRXFB.mjs → chunk-Q5PKBQXH.mjs} +52 -3
  61. package/dist/{chunk-GQYQQ3GA.mjs → chunk-VQF6HQEE.mjs} +1 -1
  62. package/dist/collab/embedding.d.ts +108 -0
  63. package/dist/collab/embedding.d.ts.map +1 -0
  64. package/dist/collab/index.cjs +423 -293
  65. package/dist/collab/index.d.ts +2 -0
  66. package/dist/collab/index.d.ts.map +1 -1
  67. package/dist/collab/index.mjs +415 -294
  68. package/dist/collab/webrtc-provider.d.ts +21 -0
  69. package/dist/collab/webrtc-provider.d.ts.map +1 -0
  70. package/dist/color/theme-palette.d.ts +5 -1
  71. package/dist/color/theme-palette.d.ts.map +1 -1
  72. package/dist/crypto/index.cjs +27 -2
  73. package/dist/crypto/index.mjs +27 -2
  74. package/dist/diagram/index.cjs +31 -3
  75. package/dist/diagram/index.mjs +31 -3
  76. package/dist/docx/block-parser.d.ts.map +1 -1
  77. package/dist/docx/cell-blocks.d.ts +7 -1
  78. package/dist/docx/cell-blocks.d.ts.map +1 -1
  79. package/dist/docx/content-control-edit.d.ts +14 -0
  80. package/dist/docx/content-control-edit.d.ts.map +1 -1
  81. package/dist/docx/content-control-model.d.ts +8 -0
  82. package/dist/docx/content-control-model.d.ts.map +1 -1
  83. package/dist/docx/content-control-values.d.ts +20 -0
  84. package/dist/docx/content-control-values.d.ts.map +1 -0
  85. package/dist/docx/content-control.d.ts +7 -1
  86. package/dist/docx/content-control.d.ts.map +1 -1
  87. package/dist/docx/element-order.d.ts +10 -5
  88. package/dist/docx/element-order.d.ts.map +1 -1
  89. package/dist/docx/embedded.cjs +3861 -1379
  90. package/dist/docx/embedded.mjs +3861 -1379
  91. package/dist/docx/field-instruction.d.ts +22 -0
  92. package/dist/docx/field-instruction.d.ts.map +1 -0
  93. package/dist/docx/form-field-model.d.ts +48 -0
  94. package/dist/docx/form-field-model.d.ts.map +1 -0
  95. package/dist/docx/form-fields.d.ts +31 -0
  96. package/dist/docx/form-fields.d.ts.map +1 -0
  97. package/dist/docx/form-fill-fields.d.ts +61 -0
  98. package/dist/docx/form-fill-fields.d.ts.map +1 -0
  99. package/dist/docx/form-fill-labels.d.ts +8 -0
  100. package/dist/docx/form-fill-labels.d.ts.map +1 -0
  101. package/dist/docx/form-fill-sites.d.ts +59 -0
  102. package/dist/docx/form-fill-sites.d.ts.map +1 -0
  103. package/dist/docx/form-fill-values.d.ts +28 -0
  104. package/dist/docx/form-fill-values.d.ts.map +1 -0
  105. package/dist/docx/form-fill-write.d.ts +26 -0
  106. package/dist/docx/form-fill-write.d.ts.map +1 -0
  107. package/dist/docx/glossary.d.ts +15 -0
  108. package/dist/docx/glossary.d.ts.map +1 -0
  109. package/dist/docx/index.cjs +5929 -3153
  110. package/dist/docx/index.d.ts +7 -0
  111. package/dist/docx/index.d.ts.map +1 -1
  112. package/dist/docx/index.mjs +5913 -3154
  113. package/dist/docx/inline-annotations.d.ts +21 -0
  114. package/dist/docx/inline-annotations.d.ts.map +1 -0
  115. package/dist/docx/inline-container-markers.d.ts +14 -0
  116. package/dist/docx/inline-container-markers.d.ts.map +1 -0
  117. package/dist/docx/inline-containers.d.ts +54 -0
  118. package/dist/docx/inline-containers.d.ts.map +1 -0
  119. package/dist/docx/inline-form-field-bookmarks.d.ts +15 -0
  120. package/dist/docx/inline-form-field-bookmarks.d.ts.map +1 -0
  121. package/dist/docx/inline-marker-positions.d.ts +15 -0
  122. package/dist/docx/inline-marker-positions.d.ts.map +1 -0
  123. package/dist/docx/inline-markers.d.ts +63 -0
  124. package/dist/docx/inline-markers.d.ts.map +1 -0
  125. package/dist/docx/inline-slots.d.ts +24 -0
  126. package/dist/docx/inline-slots.d.ts.map +1 -0
  127. package/dist/docx/layout/adapter.d.ts.map +1 -1
  128. package/dist/docx/layout/index.cjs +1176 -563
  129. package/dist/docx/layout/index.d.ts +2 -1
  130. package/dist/docx/layout/index.d.ts.map +1 -1
  131. package/dist/docx/layout/index.mjs +1175 -564
  132. package/dist/docx/layout/input.d.ts +5 -1
  133. package/dist/docx/layout/input.d.ts.map +1 -1
  134. package/dist/docx/layout/page-style-refs.d.ts +21 -0
  135. package/dist/docx/layout/page-style-refs.d.ts.map +1 -0
  136. package/dist/docx/layout/paragraph-fragments.d.ts.map +1 -1
  137. package/dist/docx/layout/result.d.ts +1 -0
  138. package/dist/docx/layout/result.d.ts.map +1 -1
  139. package/dist/docx/layout/tab-stops.d.ts +8 -1
  140. package/dist/docx/layout/tab-stops.d.ts.map +1 -1
  141. package/dist/docx/load/index.cjs +3969 -1487
  142. package/dist/docx/load/index.mjs +3969 -1487
  143. package/dist/docx/model-run.d.ts +24 -2
  144. package/dist/docx/model-run.d.ts.map +1 -1
  145. package/dist/docx/model.d.ts +5 -0
  146. package/dist/docx/model.d.ts.map +1 -1
  147. package/dist/docx/numbering-format.d.ts.map +1 -1
  148. package/dist/docx/parse-warnings.d.ts.map +1 -1
  149. package/dist/docx/parse.d.ts.map +1 -1
  150. package/dist/docx/run-segmentation.d.ts +11 -0
  151. package/dist/docx/run-segmentation.d.ts.map +1 -0
  152. package/dist/docx/save.d.ts.map +1 -1
  153. package/dist/docx/section-model.d.ts +5 -0
  154. package/dist/docx/section-model.d.ts.map +1 -1
  155. package/dist/docx/sections.d.ts +4 -2
  156. package/dist/docx/sections.d.ts.map +1 -1
  157. package/dist/docx/settings.d.ts +9 -0
  158. package/dist/docx/settings.d.ts.map +1 -1
  159. package/dist/docx/special-characters.d.ts +34 -0
  160. package/dist/docx/special-characters.d.ts.map +1 -0
  161. package/dist/docx/style-ref-fields.d.ts +40 -0
  162. package/dist/docx/style-ref-fields.d.ts.map +1 -0
  163. package/dist/docx/style-ref.d.ts +85 -0
  164. package/dist/docx/style-ref.d.ts.map +1 -0
  165. package/dist/docx/table-model.d.ts +2 -2
  166. package/dist/docx/table-model.d.ts.map +1 -1
  167. package/dist/docx/ui/break-note-schema.d.ts.map +1 -1
  168. package/dist/docx/ui/content-control-commands.d.ts +20 -8
  169. package/dist/docx/ui/content-control-commands.d.ts.map +1 -1
  170. package/dist/docx/ui/content-control-guard.d.ts +4 -1
  171. package/dist/docx/ui/content-control-guard.d.ts.map +1 -1
  172. package/dist/docx/ui/content-control-paste.d.ts +23 -0
  173. package/dist/docx/ui/content-control-paste.d.ts.map +1 -0
  174. package/dist/docx/ui/content-control-rows.d.ts +15 -0
  175. package/dist/docx/ui/content-control-rows.d.ts.map +1 -0
  176. package/dist/docx/ui/content-control-sources.d.ts +12 -0
  177. package/dist/docx/ui/content-control-sources.d.ts.map +1 -0
  178. package/dist/docx/ui/content-control-spans.d.ts +29 -6
  179. package/dist/docx/ui/content-control-spans.d.ts.map +1 -1
  180. package/dist/docx/ui/content-control-temporary.d.ts +10 -0
  181. package/dist/docx/ui/content-control-temporary.d.ts.map +1 -0
  182. package/dist/docx/ui/form-field-commands.d.ts +41 -0
  183. package/dist/docx/ui/form-field-commands.d.ts.map +1 -0
  184. package/dist/docx/ui/form-field-guard.d.ts +24 -0
  185. package/dist/docx/ui/form-field-guard.d.ts.map +1 -0
  186. package/dist/docx/ui/form-text-blank.d.ts +18 -0
  187. package/dist/docx/ui/form-text-blank.d.ts.map +1 -0
  188. package/dist/docx/ui/index.cjs +9276 -7132
  189. package/dist/docx/ui/index.d.ts +5 -0
  190. package/dist/docx/ui/index.d.ts.map +1 -1
  191. package/dist/docx/ui/index.mjs +9259 -7137
  192. package/dist/docx/ui/positional-tab-input.d.ts +7 -0
  193. package/dist/docx/ui/positional-tab-input.d.ts.map +1 -0
  194. package/dist/docx/ui/run-compare.d.ts.map +1 -1
  195. package/dist/docx/ui/run-extra-mark.d.ts +1 -1
  196. package/dist/docx/ui/run-extra-mark.d.ts.map +1 -1
  197. package/dist/docx/ui/schema-marks.d.ts +1 -1
  198. package/dist/docx/ui/schema-marks.d.ts.map +1 -1
  199. package/dist/docx/ui/symbol-font.d.ts +4 -0
  200. package/dist/docx/ui/symbol-font.d.ts.map +1 -0
  201. package/dist/docx/ui/yjs-collaboration.d.ts +12 -1
  202. package/dist/docx/ui/yjs-collaboration.d.ts.map +1 -1
  203. package/dist/docx/write-block-placement.d.ts +7 -0
  204. package/dist/docx/write-block-placement.d.ts.map +1 -1
  205. package/dist/docx/write-content-control.d.ts +6 -0
  206. package/dist/docx/write-content-control.d.ts.map +1 -1
  207. package/dist/docx/write-header-footer.d.ts +6 -2
  208. package/dist/docx/write-header-footer.d.ts.map +1 -1
  209. package/dist/docx/write-inline.d.ts +12 -16
  210. package/dist/docx/write-inline.d.ts.map +1 -1
  211. package/dist/docx/write-paragraph.d.ts.map +1 -1
  212. package/dist/docx/write-revisions.d.ts.map +1 -1
  213. package/dist/docx/write-run.d.ts.map +1 -1
  214. package/dist/docx/write-section-properties.d.ts +5 -0
  215. package/dist/docx/write-section-properties.d.ts.map +1 -0
  216. package/dist/docx/write-sections.d.ts.map +1 -1
  217. package/dist/docx/write-table-controls.d.ts +15 -0
  218. package/dist/docx/write-table-controls.d.ts.map +1 -0
  219. package/dist/docx/write-table-properties.d.ts.map +1 -1
  220. package/dist/docx/write-table.d.ts.map +1 -1
  221. package/dist/docx/write.d.ts.map +1 -1
  222. package/dist/docx/xml.d.ts +6 -0
  223. package/dist/docx/xml.d.ts.map +1 -1
  224. package/dist/drawingml/index.cjs +31 -3
  225. package/dist/drawingml/index.mjs +31 -3
  226. package/dist/index.cjs +77 -26
  227. package/dist/index.mjs +77 -26
  228. package/dist/math/index.cjs +27 -2
  229. package/dist/math/index.mjs +27 -2
  230. package/dist/opc/index.cjs +51 -11
  231. package/dist/opc/index.mjs +51 -11
  232. package/dist/opc/zip-folders.d.ts +11 -0
  233. package/dist/opc/zip-folders.d.ts.map +1 -0
  234. package/dist/opc/zip-limits.d.ts +9 -0
  235. package/dist/opc/zip-limits.d.ts.map +1 -1
  236. package/dist/pptx/automation/index.cjs +28818 -7388
  237. package/dist/pptx/automation/index.d.ts +93 -3
  238. package/dist/pptx/automation/index.d.ts.map +1 -1
  239. package/dist/pptx/automation/index.mjs +740 -63
  240. package/dist/pptx/automation/schemas/chart-formatting-schemas.d.ts +1 -1
  241. package/dist/pptx/automation/schemas/chart-schemas.d.ts +1 -1
  242. package/dist/pptx/automation/schemas/chart-user-shape-schemas.d.ts +1 -1
  243. package/dist/pptx/automation/schemas/element-schemas.d.ts +1 -1
  244. package/dist/pptx/automation/schemas/export-schemas.d.ts +1 -1
  245. package/dist/pptx/automation/schemas/geometry-schemas.d.ts +1 -1
  246. package/dist/pptx/automation/schemas/hyperlink-schemas.d.ts +1 -1
  247. package/dist/pptx/automation/schemas/index.mjs +1 -0
  248. package/dist/pptx/automation/schemas/json-schemas.d.ts +1 -1
  249. package/dist/pptx/automation/schemas/layout-schemas.d.ts +1 -1
  250. package/dist/pptx/automation/schemas/lock-schemas.d.ts +1 -1
  251. package/dist/pptx/automation/schemas/metadata-schemas.d.ts +1 -1
  252. package/dist/pptx/automation/schemas/ole-schemas.d.ts +1 -1
  253. package/dist/pptx/automation/schemas/presentation-schemas.d.ts +1 -1
  254. package/dist/pptx/automation/schemas/section-schemas.d.ts +1 -1
  255. package/dist/pptx/automation/schemas/slide-schemas.d.ts +1 -1
  256. package/dist/pptx/automation/schemas/smartart-schemas.d.ts +1 -1
  257. package/dist/pptx/automation/schemas/table-style-schemas.d.ts +1 -1
  258. package/dist/pptx/automation/schemas/template-schemas.d.ts +1 -1
  259. package/dist/pptx/automation/schemas/theme-schemas.d.ts +1 -1
  260. package/dist/pptx/automation/schemas/validation-schemas.d.ts +1 -1
  261. package/dist/pptx/chunks/{index-CgFX0T7b.d.ts → index-CPhsd7Df.d.ts} +9 -1
  262. package/dist/pptx/chunks/{index-CgFX0T7b.d.ts.map → index-CPhsd7Df.d.ts.map} +1 -1
  263. package/dist/pptx/chunks/{index-qwVYoFn6.d.ts → index-Q5mM8kIR.d.ts} +2 -2
  264. package/dist/pptx/chunks/{index-qwVYoFn6.d.ts.map → index-Q5mM8kIR.d.ts.map} +1 -1
  265. package/dist/pptx/chunks/{schemas-CWr181Wx.d.ts → schemas-fuDGetRe.d.ts} +2 -2
  266. package/dist/pptx/chunks/{schemas-CWr181Wx.d.ts.map → schemas-fuDGetRe.d.ts.map} +1 -1
  267. package/dist/pptx/cli/index.cjs +116 -17
  268. package/dist/pptx/cli/index.mjs +5 -5
  269. package/dist/pptx/converter/index.cjs +12 -3
  270. package/dist/pptx/converter/index.d.ts +1 -1
  271. package/dist/pptx/converter/index.mjs +3 -3
  272. package/dist/pptx/editor/render/find-replace.cjs +14 -14
  273. package/dist/pptx/editor/render/find-replace.d.ts +1 -1
  274. package/dist/pptx/editor/render/find-replace.mjs +1 -1
  275. package/dist/pptx/editor/render/slide-operations.cjs +8 -8
  276. package/dist/pptx/editor/render/slide-operations.mjs +2 -2
  277. package/dist/pptx/index.cjs +116 -17
  278. package/dist/pptx/index.d.ts +2 -2
  279. package/dist/pptx/index.mjs +6 -6
  280. package/dist/pptx/signature-node/index.cjs +20 -8
  281. package/dist/pptx/signature-node/index.mjs +2 -2
  282. package/dist/teams/index.cjs +105 -70
  283. package/dist/teams/index.mjs +105 -70
  284. package/dist/text/text-diff.d.ts +15 -0
  285. package/dist/text/text-diff.d.ts.map +1 -0
  286. package/dist/visio/collab/bind.d.ts +44 -0
  287. package/dist/visio/collab/bind.d.ts.map +1 -0
  288. package/dist/visio/collab/compose.d.ts +15 -0
  289. package/dist/visio/collab/compose.d.ts.map +1 -0
  290. package/dist/visio/collab/index.cjs +1194 -0
  291. package/dist/visio/collab/index.d.ts +8 -0
  292. package/dist/visio/collab/index.d.ts.map +1 -0
  293. package/dist/visio/collab/index.mjs +1152 -0
  294. package/dist/visio/collab/keys.d.ts +22 -0
  295. package/dist/visio/collab/keys.d.ts.map +1 -0
  296. package/dist/visio/collab/order.d.ts +11 -0
  297. package/dist/visio/collab/order.d.ts.map +1 -0
  298. package/dist/visio/collab/package.d.ts +37 -0
  299. package/dist/visio/collab/package.d.ts.map +1 -0
  300. package/dist/visio/collab/read.d.ts +41 -0
  301. package/dist/visio/collab/read.d.ts.map +1 -0
  302. package/dist/visio/collab/scan.d.ts +28 -0
  303. package/dist/visio/collab/scan.d.ts.map +1 -0
  304. package/dist/visio/collab/schema.d.ts +70 -0
  305. package/dist/visio/collab/schema.d.ts.map +1 -0
  306. package/dist/visio/collab/snapshot.d.ts +61 -0
  307. package/dist/visio/collab/snapshot.d.ts.map +1 -0
  308. package/dist/visio/collab/write.d.ts +20 -0
  309. package/dist/visio/collab/write.d.ts.map +1 -0
  310. package/dist/visio/index.cjs +159 -39
  311. package/dist/visio/index.mjs +159 -39
  312. package/dist/visio/ui/collab-options.d.ts +24 -0
  313. package/dist/visio/ui/collab-options.d.ts.map +1 -0
  314. package/dist/visio/ui/collab-presence.d.ts +31 -0
  315. package/dist/visio/ui/collab-presence.d.ts.map +1 -0
  316. package/dist/visio/ui/contract.d.ts +9 -3
  317. package/dist/visio/ui/contract.d.ts.map +1 -1
  318. package/dist/visio/ui/document-history.d.ts +3 -1
  319. package/dist/visio/ui/document-history.d.ts.map +1 -1
  320. package/dist/visio/ui/index.cjs +284 -95
  321. package/dist/visio/ui/index.d.ts +2 -0
  322. package/dist/visio/ui/index.d.ts.map +1 -1
  323. package/dist/visio/ui/index.mjs +278 -95
  324. package/dist/xlsx/collab/index.cjs +8 -3
  325. package/dist/xlsx/collab/index.mjs +8 -3
  326. package/dist/xlsx/compare/cells.d.ts +22 -0
  327. package/dist/xlsx/compare/cells.d.ts.map +1 -0
  328. package/dist/xlsx/compare/compare.d.ts +12 -0
  329. package/dist/xlsx/compare/compare.d.ts.map +1 -0
  330. package/dist/xlsx/compare/conditional.d.ts +7 -0
  331. package/dist/xlsx/compare/conditional.d.ts.map +1 -0
  332. package/dist/xlsx/compare/format-key.d.ts +34 -0
  333. package/dist/xlsx/compare/format-key.d.ts.map +1 -0
  334. package/dist/xlsx/compare/group.d.ts +8 -0
  335. package/dist/xlsx/compare/group.d.ts.map +1 -0
  336. package/dist/xlsx/compare/index.d.ts +5 -0
  337. package/dist/xlsx/compare/index.d.ts.map +1 -0
  338. package/dist/xlsx/compare/rich-text.d.ts +7 -0
  339. package/dist/xlsx/compare/rich-text.d.ts.map +1 -0
  340. package/dist/xlsx/compare/sheets.d.ts +22 -0
  341. package/dist/xlsx/compare/sheets.d.ts.map +1 -0
  342. package/dist/xlsx/compare/structure.d.ts +11 -0
  343. package/dist/xlsx/compare/structure.d.ts.map +1 -0
  344. package/dist/xlsx/compare/text.d.ts +8 -0
  345. package/dist/xlsx/compare/text.d.ts.map +1 -0
  346. package/dist/xlsx/compare/types.d.ts +173 -0
  347. package/dist/xlsx/compare/types.d.ts.map +1 -0
  348. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  349. package/dist/xlsx/edit/clipboard-html.d.ts.map +1 -1
  350. package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -1
  351. package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
  352. package/dist/xlsx/edit/clone-cell.d.ts +9 -0
  353. package/dist/xlsx/edit/clone-cell.d.ts.map +1 -0
  354. package/dist/xlsx/edit/history.d.ts +8 -3
  355. package/dist/xlsx/edit/history.d.ts.map +1 -1
  356. package/dist/xlsx/edit/timelines.d.ts.map +1 -1
  357. package/dist/xlsx/formula/change-areas.d.ts +9 -0
  358. package/dist/xlsx/formula/change-areas.d.ts.map +1 -0
  359. package/dist/xlsx/formula/engine-prepare.d.ts +8 -0
  360. package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -1
  361. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  362. package/dist/xlsx/formula/spill.d.ts +5 -1
  363. package/dist/xlsx/formula/spill.d.ts.map +1 -1
  364. package/dist/xlsx/index.cjs +2461 -1192
  365. package/dist/xlsx/index.d.ts +1 -0
  366. package/dist/xlsx/index.d.ts.map +1 -1
  367. package/dist/xlsx/index.mjs +2454 -1193
  368. package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
  369. package/dist/xlsx/layout/navigate.d.ts.map +1 -1
  370. package/dist/xlsx/layout/style-view.d.ts +5 -0
  371. package/dist/xlsx/layout/style-view.d.ts.map +1 -1
  372. package/dist/xlsx/load/csv-dates.d.ts +22 -0
  373. package/dist/xlsx/load/csv-dates.d.ts.map +1 -0
  374. package/dist/xlsx/load/csv-import.d.ts +64 -0
  375. package/dist/xlsx/load/csv-import.d.ts.map +1 -0
  376. package/dist/xlsx/load/csv-separators.d.ts +13 -0
  377. package/dist/xlsx/load/csv-separators.d.ts.map +1 -0
  378. package/dist/xlsx/load/csv-traits.d.ts +20 -0
  379. package/dist/xlsx/load/csv-traits.d.ts.map +1 -0
  380. package/dist/xlsx/load/csv.d.ts +8 -4
  381. package/dist/xlsx/load/csv.d.ts.map +1 -1
  382. package/dist/xlsx/load/detect.d.ts +13 -0
  383. package/dist/xlsx/load/detect.d.ts.map +1 -1
  384. package/dist/xlsx/load/errors.d.ts +1 -0
  385. package/dist/xlsx/load/errors.d.ts.map +1 -1
  386. package/dist/xlsx/load/index.cjs +537 -91
  387. package/dist/xlsx/load/index.d.ts +3 -1
  388. package/dist/xlsx/load/index.d.ts.map +1 -1
  389. package/dist/xlsx/load/index.mjs +536 -92
  390. package/dist/xlsx/numfmt/input-date.d.ts +2 -0
  391. package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
  392. package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -1
  393. package/dist/xlsx/pivot/groups.d.ts.map +1 -1
  394. package/dist/xlsx/read/index.d.ts +2 -1
  395. package/dist/xlsx/read/index.d.ts.map +1 -1
  396. package/dist/xlsx/read/limits.d.ts +50 -0
  397. package/dist/xlsx/read/limits.d.ts.map +1 -0
  398. package/dist/xlsx/read/load.d.ts +11 -1
  399. package/dist/xlsx/read/load.d.ts.map +1 -1
  400. package/dist/xlsx/read/package.d.ts +5 -23
  401. package/dist/xlsx/read/package.d.ts.map +1 -1
  402. package/dist/xlsx/read/shared-strings.d.ts +2 -2
  403. package/dist/xlsx/read/shared-strings.d.ts.map +1 -1
  404. package/dist/xlsx/read/worksheet.d.ts +2 -0
  405. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  406. package/dist/xlsx/stable-key.d.ts +3 -0
  407. package/dist/xlsx/stable-key.d.ts.map +1 -0
  408. package/dist/xlsx/styles.d.ts.map +1 -1
  409. package/dist/xlsx/ui/index.cjs +662 -372
  410. package/dist/xlsx/ui/index.mjs +662 -372
  411. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -1
  412. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -1
  413. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -1
  414. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -1
  415. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -1
  416. package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
  417. package/dist/xml/index.cjs +32 -3
  418. package/dist/xml/index.mjs +32 -4
  419. package/dist/xml/xml.d.ts +11 -1
  420. package/dist/xml/xml.d.ts.map +1 -1
  421. package/package.json +6 -1
  422. package/dist/PptxHandler-SITN3K3F.mjs +0 -4
@@ -629,107 +629,6 @@ var Emitter = class {
629
629
  }
630
630
  };
631
631
 
632
- // collab/external-provider.ts
633
- function adaptYjsProvider(provider) {
634
- const events = new Emitter();
635
- let destroyed = false;
636
- let status = provider.wsconnected || provider.connected ? "connected" : provider.wsconnecting ? "connecting" : "disconnected";
637
- let synced = Boolean(provider.synced);
638
- const subscriptions = [];
639
- const listen = (name, handler) => {
640
- const wrapped = handler;
641
- provider.on(name, wrapped);
642
- subscriptions.push([name, wrapped]);
643
- };
644
- const setStatus = (next) => {
645
- if (destroyed || next === status) return;
646
- status = next;
647
- events.emit("status", next);
648
- };
649
- const setSynced = (next) => {
650
- if (destroyed || next === synced) return;
651
- synced = next;
652
- events.emit("synced", next);
653
- };
654
- listen("status", (payload) => {
655
- if (typeof payload.connected === "boolean") {
656
- if (!payload.connected) setSynced(false);
657
- return setStatus(payload.connected ? "connected" : "disconnected");
658
- }
659
- if (payload.status === "connected" || payload.status === "connecting")
660
- setStatus(payload.status);
661
- else if (payload.status === "disconnected") {
662
- setSynced(false);
663
- setStatus("disconnected");
664
- }
665
- });
666
- const onSync = (value) => setSynced(typeof value === "boolean" ? value : value.synced === true);
667
- listen("sync", onSync);
668
- listen("synced", onSync);
669
- listen("connection-error", (cause) => {
670
- if (destroyed) return;
671
- setStatus("error");
672
- events.emit("error", cause instanceof Error ? cause : new Error("Provider connection error"));
673
- });
674
- return {
675
- get status() {
676
- return status;
677
- },
678
- get synced() {
679
- return synced;
680
- },
681
- connect: () => {
682
- if (destroyed || status === "connected" || status === "connecting") return;
683
- setStatus("connecting");
684
- provider.connect?.();
685
- },
686
- disconnect: () => {
687
- if (destroyed) return;
688
- provider.disconnect?.();
689
- setSynced(false);
690
- setStatus("disconnected");
691
- },
692
- destroy: () => {
693
- if (destroyed) return;
694
- setSynced(false);
695
- setStatus("disconnected");
696
- destroyed = true;
697
- for (const [name, handler] of subscriptions) provider.off?.(name, handler);
698
- subscriptions.length = 0;
699
- events.clear();
700
- provider.destroy?.();
701
- },
702
- on: (event, listener) => events.on(event, listener)
703
- };
704
- }
705
- function observeExternalSession(session, onSnapshot) {
706
- let active = true;
707
- let subscribing = true;
708
- let previous;
709
- let unsubscribe;
710
- const notify = () => {
711
- if (!active || subscribing) return;
712
- const snapshot = session.getSnapshot();
713
- if (previous?.status === snapshot.status && previous.synced === snapshot.synced) return;
714
- previous = { status: snapshot.status, synced: snapshot.synced };
715
- onSnapshot(previous);
716
- };
717
- const dispose = () => {
718
- if (!active) return;
719
- active = false;
720
- unsubscribe?.();
721
- };
722
- try {
723
- unsubscribe = session.subscribe(notify);
724
- subscribing = false;
725
- notify();
726
- } catch (error) {
727
- dispose();
728
- throw error;
729
- }
730
- return dispose;
731
- }
732
-
733
632
  // collab/lifecycle.ts
734
633
  var COLLAB_LEAVE_MESSAGE = "ooxml-core:collab-leave";
735
634
  var DEPARTURE_CHANNEL = "ooxml-core:collab-departures";
@@ -812,183 +711,10 @@ function createDepartureChannel(roomId, awareness, factory, channelName = DEPART
812
711
  };
813
712
  }
814
713
 
815
- // collab/memory-transport.ts
816
- function createMemoryHub(options = {}) {
817
- const rooms = /* @__PURE__ */ new Map();
818
- let nextId = 0;
819
- const deliver = (task) => {
820
- if (options.async) queueMicrotask(task);
821
- else task();
822
- };
823
- return {
824
- size: (roomId) => rooms.get(roomId)?.size ?? 0,
825
- createTransport(roomId) {
826
- const id = nextId++;
827
- let endpoint = null;
828
- const peers = () => {
829
- let room = rooms.get(roomId);
830
- if (!room) rooms.set(roomId, room = /* @__PURE__ */ new Set());
831
- return room;
832
- };
833
- return {
834
- get connected() {
835
- return endpoint !== null;
836
- },
837
- connect(handlers) {
838
- if (endpoint) peers().delete(endpoint);
839
- const self = { id, handlers };
840
- const others = [...peers()];
841
- peers().add(self);
842
- endpoint = self;
843
- deliver(() => {
844
- if (endpoint !== self) return;
845
- handlers.open();
846
- for (const other of others) other.handlers.peer?.();
847
- });
848
- },
849
- send(data) {
850
- const self = endpoint;
851
- if (!self || options.filter && !options.filter(data, id)) return;
852
- for (const other of [...peers()])
853
- if (other !== self) deliver(() => other.handlers.message(data.slice()));
854
- },
855
- disconnect() {
856
- const self = endpoint;
857
- if (!self) return;
858
- endpoint = null;
859
- peers().delete(self);
860
- self.handlers.close("disconnected");
861
- }
862
- };
863
- }
864
- };
865
- }
866
-
867
- // collab/package-adapter.ts
868
- var DEFAULT_MAX_PACKAGE_BYTES = 32 * 1024 * 1024;
869
- function packageAdapter(options = {}) {
870
- const name = options.name ?? "package";
871
- const maxBytes = options.maxBytes ?? DEFAULT_MAX_PACKAGE_BYTES;
872
- const map = (doc) => doc.getMap(name);
873
- const check = (bytes) => {
874
- if (!(bytes instanceof Uint8Array)) throw new Error("The shared package is not binary data.");
875
- if (bytes.byteLength > maxBytes)
876
- throw new Error(`The shared package exceeds ${Math.round(maxBytes / 1024 / 1024)} MiB.`);
877
- return bytes;
878
- };
879
- return {
880
- isEmpty: (doc) => !(map(doc).get("bytes") instanceof Uint8Array),
881
- read: (doc) => {
882
- const shared = map(doc);
883
- const revision = shared.get("revision");
884
- return {
885
- bytes: check(shared.get("bytes")).slice(),
886
- revision: typeof revision === "number" && Number.isSafeInteger(revision) ? revision : 0
887
- };
888
- },
889
- write: (doc, model, origin) => {
890
- const bytes = check(model.bytes);
891
- doc.transact(() => {
892
- const shared = map(doc);
893
- const current = shared.get("revision");
894
- const revision = Math.max(model.revision, typeof current === "number" ? current : 0) + 1;
895
- shared.set("bytes", bytes.slice());
896
- shared.set("revision", revision);
897
- }, origin);
898
- },
899
- observe: (doc, onChange) => {
900
- const shared = map(doc);
901
- const handler = (event) => {
902
- if (event.keysChanged.has("bytes")) onChange(event.transaction.origin);
903
- };
904
- shared.observe(handler);
905
- return () => shared.unobserve(handler);
906
- }
907
- };
908
- }
909
-
910
- // collab/ordering.ts
911
- function classifyVersion(messageVersion, currentVersion) {
912
- if (!isNonNegativeSafeInteger(messageVersion) || !isNonNegativeSafeInteger(currentVersion))
913
- return "invalid";
914
- if (messageVersion < currentVersion) return "stale";
915
- return messageVersion > currentVersion ? "out-of-order" : "apply";
916
- }
917
- var BoundedMap = class {
918
- constructor(limit) {
919
- this.limit = limit;
920
- if (!Number.isSafeInteger(limit) || limit < 1) throw new Error("limit must be positive");
921
- }
922
- limit;
923
- entries = /* @__PURE__ */ new Map();
924
- get size() {
925
- return this.entries.size;
926
- }
927
- get(key) {
928
- return this.entries.get(key);
929
- }
930
- has(key) {
931
- return this.entries.has(key);
932
- }
933
- set(key, value) {
934
- this.entries.delete(key);
935
- this.entries.set(key, value);
936
- if (this.entries.size > this.limit) {
937
- const oldest = this.entries.keys().next();
938
- if (!oldest.done) this.entries.delete(oldest.value);
939
- }
940
- }
941
- delete(key) {
942
- return this.entries.delete(key);
943
- }
944
- clear() {
945
- this.entries.clear();
946
- }
947
- };
948
- var IdempotencyCache = class {
949
- seen;
950
- constructor(limit = 5e3) {
951
- this.seen = new BoundedMap(limit);
952
- }
953
- check(clientId, messageId, fingerprint) {
954
- const prior = this.seen.get(`${clientId}\0${messageId}`);
955
- if (!prior) return { status: "fresh" };
956
- return prior.fingerprint === fingerprint ? { status: "duplicate", value: prior.value } : { status: "reused" };
957
- }
958
- remember(clientId, messageId, fingerprint, value) {
959
- this.seen.set(`${clientId}\0${messageId}`, { fingerprint, value });
960
- }
961
- };
962
- var SequenceTracker = class {
963
- last;
964
- constructor(limit = 200) {
965
- this.last = new BoundedMap(limit);
966
- }
967
- /** Classify without recording; call {@link commit} once the message was actually applied. */
968
- classify(peerId, sequence, fingerprint) {
969
- if (!isNonNegativeSafeInteger(sequence) || sequence < 1) return "invalid";
970
- const previous = this.last.get(peerId);
971
- if (!previous || sequence > previous.sequence) return "apply";
972
- if (sequence < previous.sequence) return "stale";
973
- return previous.fingerprint === fingerprint ? "duplicate" : "invalid";
974
- }
975
- commit(peerId, sequence, fingerprint) {
976
- this.last.set(peerId, { sequence, fingerprint });
977
- }
978
- forget(peerId) {
979
- this.last.delete(peerId);
980
- }
981
- };
982
- function freezeDeep(value) {
983
- if (value && typeof value === "object" && !Object.isFrozen(value)) {
984
- for (const child of Object.values(value)) freezeDeep(child);
985
- Object.freeze(value);
986
- }
987
- return value;
988
- }
989
-
990
714
  // collab/provider.ts
991
715
  var CONNECTION_TIMEOUT_MS = 3e4;
716
+
717
+ // collab/session.ts
992
718
  function createCollabSession(options) {
993
719
  const roomId = validateRoomId(options.roomId);
994
720
  const ownsDoc = !options.doc;
@@ -1266,37 +992,149 @@ function createTransportProvider({ doc, awareness }, { transport, maxMessageByte
1266
992
  get synced() {
1267
993
  return synced;
1268
994
  },
1269
- connect,
1270
- resync: () => {
1271
- if (destroyed || !open) return;
1272
- setSynced(false);
1273
- handshake();
1274
- sendUpdate(Y.encodeStateAsUpdate(doc));
995
+ connect,
996
+ resync: () => {
997
+ if (destroyed || !open) return;
998
+ setSynced(false);
999
+ handshake();
1000
+ sendUpdate(Y.encodeStateAsUpdate(doc));
1001
+ },
1002
+ disconnect: () => {
1003
+ if (destroyed) return;
1004
+ const local = awareness.getLocalState();
1005
+ if (open && local !== null) awareness.setLocalState(null);
1006
+ transport.disconnect();
1007
+ open = false;
1008
+ if (local !== null) awareness.setLocalState(local);
1009
+ setSynced(false);
1010
+ dropRemotePeers();
1011
+ setStatus("disconnected");
1012
+ },
1013
+ destroy: () => {
1014
+ if (destroyed) return;
1015
+ if (open) awareness.setLocalState(null);
1016
+ destroyed = true;
1017
+ open = false;
1018
+ doc.off("update", onDocUpdate);
1019
+ awareness.off("update", onAwarenessUpdate);
1020
+ transport.disconnect();
1021
+ events.clear();
1022
+ },
1023
+ on: (event, listener) => events.on(event, listener)
1024
+ };
1025
+ }
1026
+
1027
+ // collab/external-provider.ts
1028
+ function adaptYjsProvider(provider) {
1029
+ const events = new Emitter();
1030
+ let destroyed = false;
1031
+ let status = provider.wsconnected || provider.connected ? "connected" : provider.wsconnecting ? "connecting" : "disconnected";
1032
+ let synced = Boolean(provider.synced);
1033
+ const subscriptions = [];
1034
+ const listen = (name, handler) => {
1035
+ const wrapped = handler;
1036
+ provider.on(name, wrapped);
1037
+ subscriptions.push([name, wrapped]);
1038
+ };
1039
+ const setStatus = (next) => {
1040
+ if (destroyed || next === status) return;
1041
+ status = next;
1042
+ events.emit("status", next);
1043
+ };
1044
+ const setSynced = (next) => {
1045
+ if (destroyed || next === synced) return;
1046
+ synced = next;
1047
+ events.emit("synced", next);
1048
+ };
1049
+ listen("status", (payload) => {
1050
+ if (typeof payload.connected === "boolean") {
1051
+ if (!payload.connected) setSynced(false);
1052
+ return setStatus(payload.connected ? "connected" : "disconnected");
1053
+ }
1054
+ if (payload.status === "connected" || payload.status === "connecting")
1055
+ setStatus(payload.status);
1056
+ else if (payload.status === "disconnected") {
1057
+ setSynced(false);
1058
+ setStatus("disconnected");
1059
+ }
1060
+ });
1061
+ const onSync = (value) => setSynced(typeof value === "boolean" ? value : value.synced === true);
1062
+ listen("sync", onSync);
1063
+ listen("synced", onSync);
1064
+ listen("connection-error", (cause) => {
1065
+ if (destroyed) return;
1066
+ setStatus("error");
1067
+ events.emit("error", cause instanceof Error ? cause : new Error("Provider connection error"));
1068
+ });
1069
+ return {
1070
+ get status() {
1071
+ return status;
1072
+ },
1073
+ get synced() {
1074
+ return synced;
1075
+ },
1076
+ connect: () => {
1077
+ if (destroyed || status === "connected" || status === "connecting") return;
1078
+ setStatus("connecting");
1079
+ provider.connect?.();
1275
1080
  },
1276
1081
  disconnect: () => {
1277
1082
  if (destroyed) return;
1278
- const local = awareness.getLocalState();
1279
- if (open && local !== null) awareness.setLocalState(null);
1280
- transport.disconnect();
1281
- open = false;
1282
- if (local !== null) awareness.setLocalState(local);
1083
+ provider.disconnect?.();
1283
1084
  setSynced(false);
1284
- dropRemotePeers();
1285
1085
  setStatus("disconnected");
1286
1086
  },
1287
1087
  destroy: () => {
1288
1088
  if (destroyed) return;
1289
- if (open) awareness.setLocalState(null);
1089
+ setSynced(false);
1090
+ setStatus("disconnected");
1290
1091
  destroyed = true;
1291
- open = false;
1292
- doc.off("update", onDocUpdate);
1293
- awareness.off("update", onAwarenessUpdate);
1294
- transport.disconnect();
1092
+ for (const [name, handler] of subscriptions) provider.off?.(name, handler);
1093
+ subscriptions.length = 0;
1295
1094
  events.clear();
1095
+ provider.destroy?.();
1296
1096
  },
1297
1097
  on: (event, listener) => events.on(event, listener)
1298
1098
  };
1299
1099
  }
1100
+ function observeExternalSession(session, onSnapshot) {
1101
+ let active = true;
1102
+ let subscribing = true;
1103
+ let previous;
1104
+ let unsubscribe;
1105
+ const notify = () => {
1106
+ if (!active || subscribing) return;
1107
+ const snapshot = session.getSnapshot();
1108
+ if (previous?.status === snapshot.status && previous.synced === snapshot.synced) return;
1109
+ previous = { status: snapshot.status, synced: snapshot.synced };
1110
+ onSnapshot(previous);
1111
+ };
1112
+ const dispose = () => {
1113
+ if (!active) return;
1114
+ active = false;
1115
+ unsubscribe?.();
1116
+ };
1117
+ try {
1118
+ unsubscribe = session.subscribe(notify);
1119
+ subscribing = false;
1120
+ notify();
1121
+ } catch (error) {
1122
+ dispose();
1123
+ throw error;
1124
+ }
1125
+ return dispose;
1126
+ }
1127
+
1128
+ // collab/webrtc-provider.ts
1129
+ function webrtcProvider(options) {
1130
+ return ({ doc, awareness, roomId }) => adaptYjsProvider(
1131
+ new options.WebrtcProvider(roomId, doc, {
1132
+ awareness,
1133
+ ...options.signaling ? { signaling: options.signaling } : {},
1134
+ ...options.password ? { password: options.password } : {}
1135
+ })
1136
+ );
1137
+ }
1300
1138
 
1301
1139
  // collab/websocket-transport.ts
1302
1140
  var OPEN = 1;
@@ -1378,4 +1216,287 @@ function trimTrailingSlashes(value) {
1378
1216
  return value.slice(0, end);
1379
1217
  }
1380
1218
 
1381
- export { BROADCAST_THROTTLE_MS, BoundedMap, COLLABORATION_ROLES, COLLAB_LEAVE_MESSAGE, CONNECTION_TIMEOUT_MS, CURSOR_PALETTE, DEFAULT_COLOR, DEFAULT_MAX_PACKAGE_BYTES, DEPARTURE_CHANNEL, Emitter, INITIAL_SYNC_GRACE_MS, IdempotencyCache, LEGACY_PPTX_DEPARTURE_CHANNEL, LEGACY_PPTX_LEAVE_MESSAGE, LOCAL_ORIGIN, MAX_LABEL_CHARS, MAX_UPDATE_BYTES, MESSAGE_AWARENESS, MESSAGE_QUERY_AWARENESS, MESSAGE_SYNC, PRESENCE_FIELD, PRESENCE_HEARTBEAT_MS, STALE_PRESENCE_MS, SequenceTracker, adaptYjsProvider, applyUpdateSafe, asSelectionIds, assignUserColor, bindDocument, borrowAwareness, buildRoster, canBroadcast, canWrite, clampCoordinate, classifyVersion, clearLocalAwareness, createAssetSync, createBroadcastTransport, createClientId, createCollabSession, createDepartureChannel, createIdGenerator, createMemoryHub, createPresencePublisher, createSyncGate, createTransportProvider, createWebSocketTransport, deriveCanvasPresence, derivePresence, encodeDiff, encodeSnapshot, encodeStateVector2 as encodeStateVector, formatCursorLabel, freezeDeep, fromBase64, getUserInitials, isMixedContentBlocked, isNonNegativeSafeInteger, isPresenceFresh, isValidId, isValidRoomId, mergeUpdates2 as mergeUpdates, observeExternalSession, packageAdapter, presenceToCursors, randomToken, registerTeardown, removeAwarenessStatesLocally, restoreSnapshot, roomUrl, sanitizeAvatarUrl, sanitizeCanvasPayload, sanitizeColor, sanitizeIdentity, sanitizeIndex, sanitizeRole, sanitizeUserName, shouldAutoFollowBroadcaster, shouldRoomReplaceLoad, stripHtmlTags, toBase64, transportProvider, validateDisplayName, validateRoomId, validateUpdate };
1219
+ // collab/embedding.ts
1220
+ var COLLABORATION_CHANGE_EVENT = "collaboration-change";
1221
+ var COLLABORATION_OFF_STATE = Object.freeze({
1222
+ active: false,
1223
+ roomId: void 0,
1224
+ status: "off",
1225
+ synced: false,
1226
+ people: []
1227
+ });
1228
+ var INVALID_ROOM_MESSAGE = "Use 1 to 128 letters, digits, hyphens or underscores for the room name.";
1229
+ var NO_BROADCAST_MESSAGE = "This browser cannot share between windows; pass a server URL.";
1230
+ function openCollaborationSession(options, defaults) {
1231
+ if (options.session) return { session: options.session, owned: false };
1232
+ const roomId = options.roomId ?? "";
1233
+ if (!isValidRoomId(roomId)) throw new Error(INVALID_ROOM_MESSAGE);
1234
+ let provider = options.provider;
1235
+ if (!provider && options.webrtc) {
1236
+ const password = options.webrtc.password ?? options.authToken;
1237
+ provider = webrtcProvider({ ...options.webrtc, ...password ? { password } : {} });
1238
+ }
1239
+ if (!provider && options.serverUrl)
1240
+ provider = transportProvider({
1241
+ transport: createWebSocketTransport({
1242
+ url: withToken(roomUrl(options.serverUrl, roomId), options.authToken)
1243
+ })
1244
+ });
1245
+ if (!provider) {
1246
+ if (!canBroadcast()) throw new Error(NO_BROADCAST_MESSAGE);
1247
+ provider = transportProvider({
1248
+ transport: createBroadcastTransport({ roomId, prefix: defaults.broadcastPrefix })
1249
+ });
1250
+ }
1251
+ const user = options.user ?? {};
1252
+ const session = createCollabSession({
1253
+ roomId,
1254
+ provider,
1255
+ user: {
1256
+ name: user.name || defaults.defaultName,
1257
+ ...user.color ? { color: user.color } : {},
1258
+ ...user.avatar ? { avatar: user.avatar } : {},
1259
+ ...user.role ? { role: user.role } : {}
1260
+ },
1261
+ ...defaults.initialPresence ? { initialPresence: defaults.initialPresence } : {},
1262
+ ...defaults.sanitizePayload ? { sanitizePayload: defaults.sanitizePayload } : {},
1263
+ teardown: true
1264
+ });
1265
+ return { session, owned: true };
1266
+ }
1267
+ function withToken(url, token) {
1268
+ if (!token) return url;
1269
+ return `${url}${url.includes("?") ? "&" : "?"}token=${encodeURIComponent(token)}`;
1270
+ }
1271
+ function collaborationStateOf(session) {
1272
+ return {
1273
+ active: true,
1274
+ roomId: session.roomId,
1275
+ status: session.status,
1276
+ synced: session.synced,
1277
+ people: [
1278
+ {
1279
+ clientId: session.clientId,
1280
+ name: session.identity.userName,
1281
+ color: session.identity.userColor,
1282
+ self: true
1283
+ },
1284
+ ...session.peers().map((peer) => ({
1285
+ clientId: peer.clientId,
1286
+ name: peer.userName,
1287
+ color: peer.userColor,
1288
+ self: false
1289
+ }))
1290
+ ]
1291
+ };
1292
+ }
1293
+ function onCollaborationStateChange(session, listener) {
1294
+ const stops = [
1295
+ session.on("status", listener),
1296
+ session.on("synced", listener),
1297
+ session.on("peers", listener)
1298
+ ];
1299
+ return () => {
1300
+ for (const stop of stops) stop();
1301
+ };
1302
+ }
1303
+ function toExternalSession(session) {
1304
+ let snapshot = { status: session.status, synced: false };
1305
+ return {
1306
+ doc: session.doc,
1307
+ awareness: session.awareness,
1308
+ getSnapshot: () => {
1309
+ const status = session.status;
1310
+ const synced = session.synced || session.gate.isOpen();
1311
+ if (snapshot.status !== status || snapshot.synced !== synced) snapshot = { status, synced };
1312
+ return snapshot;
1313
+ },
1314
+ subscribe: (listener) => {
1315
+ const stops = [
1316
+ session.on("status", listener),
1317
+ session.on("synced", listener),
1318
+ session.on("ready", listener)
1319
+ ];
1320
+ return () => {
1321
+ for (const stop of stops) stop();
1322
+ };
1323
+ }
1324
+ };
1325
+ }
1326
+
1327
+ // collab/memory-transport.ts
1328
+ function createMemoryHub(options = {}) {
1329
+ const rooms = /* @__PURE__ */ new Map();
1330
+ let nextId = 0;
1331
+ const deliver = (task) => {
1332
+ if (options.async) queueMicrotask(task);
1333
+ else task();
1334
+ };
1335
+ return {
1336
+ size: (roomId) => rooms.get(roomId)?.size ?? 0,
1337
+ createTransport(roomId) {
1338
+ const id = nextId++;
1339
+ let endpoint = null;
1340
+ const peers = () => {
1341
+ let room = rooms.get(roomId);
1342
+ if (!room) rooms.set(roomId, room = /* @__PURE__ */ new Set());
1343
+ return room;
1344
+ };
1345
+ return {
1346
+ get connected() {
1347
+ return endpoint !== null;
1348
+ },
1349
+ connect(handlers) {
1350
+ if (endpoint) peers().delete(endpoint);
1351
+ const self = { id, handlers };
1352
+ const others = [...peers()];
1353
+ peers().add(self);
1354
+ endpoint = self;
1355
+ deliver(() => {
1356
+ if (endpoint !== self) return;
1357
+ handlers.open();
1358
+ for (const other of others) other.handlers.peer?.();
1359
+ });
1360
+ },
1361
+ send(data) {
1362
+ const self = endpoint;
1363
+ if (!self || options.filter && !options.filter(data, id)) return;
1364
+ for (const other of [...peers()])
1365
+ if (other !== self) deliver(() => other.handlers.message(data.slice()));
1366
+ },
1367
+ disconnect() {
1368
+ const self = endpoint;
1369
+ if (!self) return;
1370
+ endpoint = null;
1371
+ peers().delete(self);
1372
+ self.handlers.close("disconnected");
1373
+ }
1374
+ };
1375
+ }
1376
+ };
1377
+ }
1378
+
1379
+ // collab/package-adapter.ts
1380
+ var DEFAULT_MAX_PACKAGE_BYTES = 32 * 1024 * 1024;
1381
+ function packageAdapter(options = {}) {
1382
+ const name = options.name ?? "package";
1383
+ const maxBytes = options.maxBytes ?? DEFAULT_MAX_PACKAGE_BYTES;
1384
+ const map = (doc) => doc.getMap(name);
1385
+ const check = (bytes) => {
1386
+ if (!(bytes instanceof Uint8Array)) throw new Error("The shared package is not binary data.");
1387
+ if (bytes.byteLength > maxBytes)
1388
+ throw new Error(`The shared package exceeds ${Math.round(maxBytes / 1024 / 1024)} MiB.`);
1389
+ return bytes;
1390
+ };
1391
+ return {
1392
+ isEmpty: (doc) => !(map(doc).get("bytes") instanceof Uint8Array),
1393
+ read: (doc) => {
1394
+ const shared = map(doc);
1395
+ const revision = shared.get("revision");
1396
+ return {
1397
+ bytes: check(shared.get("bytes")).slice(),
1398
+ revision: typeof revision === "number" && Number.isSafeInteger(revision) ? revision : 0
1399
+ };
1400
+ },
1401
+ write: (doc, model, origin) => {
1402
+ const bytes = check(model.bytes);
1403
+ doc.transact(() => {
1404
+ const shared = map(doc);
1405
+ const current = shared.get("revision");
1406
+ const revision = Math.max(model.revision, typeof current === "number" ? current : 0) + 1;
1407
+ shared.set("bytes", bytes.slice());
1408
+ shared.set("revision", revision);
1409
+ }, origin);
1410
+ },
1411
+ observe: (doc, onChange) => {
1412
+ const shared = map(doc);
1413
+ const handler = (event) => {
1414
+ if (event.keysChanged.has("bytes")) onChange(event.transaction.origin);
1415
+ };
1416
+ shared.observe(handler);
1417
+ return () => shared.unobserve(handler);
1418
+ }
1419
+ };
1420
+ }
1421
+
1422
+ // collab/ordering.ts
1423
+ function classifyVersion(messageVersion, currentVersion) {
1424
+ if (!isNonNegativeSafeInteger(messageVersion) || !isNonNegativeSafeInteger(currentVersion))
1425
+ return "invalid";
1426
+ if (messageVersion < currentVersion) return "stale";
1427
+ return messageVersion > currentVersion ? "out-of-order" : "apply";
1428
+ }
1429
+ var BoundedMap = class {
1430
+ constructor(limit) {
1431
+ this.limit = limit;
1432
+ if (!Number.isSafeInteger(limit) || limit < 1) throw new Error("limit must be positive");
1433
+ }
1434
+ limit;
1435
+ entries = /* @__PURE__ */ new Map();
1436
+ get size() {
1437
+ return this.entries.size;
1438
+ }
1439
+ get(key) {
1440
+ return this.entries.get(key);
1441
+ }
1442
+ has(key) {
1443
+ return this.entries.has(key);
1444
+ }
1445
+ set(key, value) {
1446
+ this.entries.delete(key);
1447
+ this.entries.set(key, value);
1448
+ if (this.entries.size > this.limit) {
1449
+ const oldest = this.entries.keys().next();
1450
+ if (!oldest.done) this.entries.delete(oldest.value);
1451
+ }
1452
+ }
1453
+ delete(key) {
1454
+ return this.entries.delete(key);
1455
+ }
1456
+ clear() {
1457
+ this.entries.clear();
1458
+ }
1459
+ };
1460
+ var IdempotencyCache = class {
1461
+ seen;
1462
+ constructor(limit = 5e3) {
1463
+ this.seen = new BoundedMap(limit);
1464
+ }
1465
+ check(clientId, messageId, fingerprint) {
1466
+ const prior = this.seen.get(`${clientId}\0${messageId}`);
1467
+ if (!prior) return { status: "fresh" };
1468
+ return prior.fingerprint === fingerprint ? { status: "duplicate", value: prior.value } : { status: "reused" };
1469
+ }
1470
+ remember(clientId, messageId, fingerprint, value) {
1471
+ this.seen.set(`${clientId}\0${messageId}`, { fingerprint, value });
1472
+ }
1473
+ };
1474
+ var SequenceTracker = class {
1475
+ last;
1476
+ constructor(limit = 200) {
1477
+ this.last = new BoundedMap(limit);
1478
+ }
1479
+ /** Classify without recording; call {@link commit} once the message was actually applied. */
1480
+ classify(peerId, sequence, fingerprint) {
1481
+ if (!isNonNegativeSafeInteger(sequence) || sequence < 1) return "invalid";
1482
+ const previous = this.last.get(peerId);
1483
+ if (!previous || sequence > previous.sequence) return "apply";
1484
+ if (sequence < previous.sequence) return "stale";
1485
+ return previous.fingerprint === fingerprint ? "duplicate" : "invalid";
1486
+ }
1487
+ commit(peerId, sequence, fingerprint) {
1488
+ this.last.set(peerId, { sequence, fingerprint });
1489
+ }
1490
+ forget(peerId) {
1491
+ this.last.delete(peerId);
1492
+ }
1493
+ };
1494
+ function freezeDeep(value) {
1495
+ if (value && typeof value === "object" && !Object.isFrozen(value)) {
1496
+ for (const child of Object.values(value)) freezeDeep(child);
1497
+ Object.freeze(value);
1498
+ }
1499
+ return value;
1500
+ }
1501
+
1502
+ export { BROADCAST_THROTTLE_MS, BoundedMap, COLLABORATION_CHANGE_EVENT, COLLABORATION_OFF_STATE, COLLABORATION_ROLES, COLLAB_LEAVE_MESSAGE, CONNECTION_TIMEOUT_MS, CURSOR_PALETTE, DEFAULT_COLOR, DEFAULT_MAX_PACKAGE_BYTES, DEPARTURE_CHANNEL, Emitter, INITIAL_SYNC_GRACE_MS, INVALID_ROOM_MESSAGE, IdempotencyCache, LEGACY_PPTX_DEPARTURE_CHANNEL, LEGACY_PPTX_LEAVE_MESSAGE, LOCAL_ORIGIN, MAX_LABEL_CHARS, MAX_UPDATE_BYTES, MESSAGE_AWARENESS, MESSAGE_QUERY_AWARENESS, MESSAGE_SYNC, NO_BROADCAST_MESSAGE, PRESENCE_FIELD, PRESENCE_HEARTBEAT_MS, STALE_PRESENCE_MS, SequenceTracker, adaptYjsProvider, applyUpdateSafe, asSelectionIds, assignUserColor, bindDocument, borrowAwareness, buildRoster, canBroadcast, canWrite, clampCoordinate, classifyVersion, clearLocalAwareness, collaborationStateOf, createAssetSync, createBroadcastTransport, createClientId, createCollabSession, createDepartureChannel, createIdGenerator, createMemoryHub, createPresencePublisher, createSyncGate, createTransportProvider, createWebSocketTransport, deriveCanvasPresence, derivePresence, encodeDiff, encodeSnapshot, encodeStateVector2 as encodeStateVector, formatCursorLabel, freezeDeep, fromBase64, getUserInitials, isMixedContentBlocked, isNonNegativeSafeInteger, isPresenceFresh, isValidId, isValidRoomId, mergeUpdates2 as mergeUpdates, observeExternalSession, onCollaborationStateChange, openCollaborationSession, packageAdapter, presenceToCursors, randomToken, registerTeardown, removeAwarenessStatesLocally, restoreSnapshot, roomUrl, sanitizeAvatarUrl, sanitizeCanvasPayload, sanitizeColor, sanitizeIdentity, sanitizeIndex, sanitizeRole, sanitizeUserName, shouldAutoFollowBroadcaster, shouldRoomReplaceLoad, stripHtmlTags, toBase64, toExternalSession, transportProvider, validateDisplayName, validateRoomId, validateUpdate, webrtcProvider };