ooxml-core 1.13.0 → 1.14.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 (635) hide show
  1. package/dist/PptxHandler-5YP75BPO.cjs +12 -0
  2. package/dist/PptxHandler-GT5Q66TG.mjs +3 -0
  3. package/dist/{PptxHandler-FIN6XDTI.mjs → PptxHandler-KNBFECUE.mjs} +3 -3
  4. package/dist/PresentationBuilder-5DCCFHWJ.mjs +7 -0
  5. package/dist/PresentationBuilder-CVM6LJ7L.mjs +3 -0
  6. package/dist/PresentationBuilder-II7C4A3R.cjs +20 -0
  7. package/dist/automation/docx.d.ts +18 -0
  8. package/dist/automation/docx.d.ts.map +1 -1
  9. package/dist/automation/index.cjs +21278 -8022
  10. package/dist/automation/index.d.ts +1 -0
  11. package/dist/automation/index.d.ts.map +1 -1
  12. package/dist/automation/index.mjs +21275 -8023
  13. package/dist/automation/node.cjs +66 -6
  14. package/dist/automation/node.d.ts +10 -0
  15. package/dist/automation/node.d.ts.map +1 -1
  16. package/dist/automation/node.mjs +67 -7
  17. package/dist/automation/outline.d.ts +29 -0
  18. package/dist/automation/outline.d.ts.map +1 -0
  19. package/dist/automation/xlsx.d.ts +21 -0
  20. package/dist/automation/xlsx.d.ts.map +1 -1
  21. package/dist/chart/auto-title.d.ts +31 -0
  22. package/dist/chart/auto-title.d.ts.map +1 -0
  23. package/dist/chart/axis-format.d.ts +13 -0
  24. package/dist/chart/axis-format.d.ts.map +1 -0
  25. package/dist/chart/bubble-radius.d.ts +30 -0
  26. package/dist/chart/bubble-radius.d.ts.map +1 -0
  27. package/dist/chart/error-bar-amount.d.ts +22 -0
  28. package/dist/chart/error-bar-amount.d.ts.map +1 -0
  29. package/dist/chart/hierarchy.d.ts +69 -0
  30. package/dist/chart/hierarchy.d.ts.map +1 -0
  31. package/dist/chart/index.cjs +2377 -527
  32. package/dist/chart/index.d.ts +12 -0
  33. package/dist/chart/index.d.ts.map +1 -1
  34. package/dist/chart/index.mjs +2338 -528
  35. package/dist/chart/model-analysis.d.ts +66 -0
  36. package/dist/chart/model-analysis.d.ts.map +1 -0
  37. package/dist/chart/model-series.d.ts +5 -0
  38. package/dist/chart/model-series.d.ts.map +1 -1
  39. package/dist/chart/number-format-pattern.d.ts +35 -0
  40. package/dist/chart/number-format-pattern.d.ts.map +1 -0
  41. package/dist/chart/number-format.d.ts +21 -0
  42. package/dist/chart/number-format.d.ts.map +1 -0
  43. package/dist/chart/parse-analysis.d.ts +13 -0
  44. package/dist/chart/parse-analysis.d.ts.map +1 -0
  45. package/dist/chart/parse-series.d.ts +1 -1
  46. package/dist/chart/parse-series.d.ts.map +1 -1
  47. package/dist/chart/parse-util.d.ts +2 -0
  48. package/dist/chart/parse-util.d.ts.map +1 -1
  49. package/dist/chart/render/chart-svg-analysis.d.ts +7 -0
  50. package/dist/chart/render/chart-svg-analysis.d.ts.map +1 -0
  51. package/dist/chart/render/chart-svg-bars.d.ts +5 -0
  52. package/dist/chart/render/chart-svg-bars.d.ts.map +1 -1
  53. package/dist/chart/render/chart-svg-cartesian.d.ts +7 -2
  54. package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -1
  55. package/dist/chart/render/chart-svg-hierarchy.d.ts +5 -0
  56. package/dist/chart/render/chart-svg-hierarchy.d.ts.map +1 -0
  57. package/dist/chart/render/chart-svg-plots.d.ts +5 -0
  58. package/dist/chart/render/chart-svg-plots.d.ts.map +1 -0
  59. package/dist/chart/render/chart-svg-stock.d.ts +4 -0
  60. package/dist/chart/render/chart-svg-stock.d.ts.map +1 -0
  61. package/dist/chart/render/chart-svg-waterfall.d.ts +4 -0
  62. package/dist/chart/render/chart-svg-waterfall.d.ts.map +1 -0
  63. package/dist/chart/render/chart-svg-xy.d.ts +4 -0
  64. package/dist/chart/render/chart-svg-xy.d.ts.map +1 -0
  65. package/dist/chart/render/chart-svg.d.ts +1 -1
  66. package/dist/chart/render/chart-svg.d.ts.map +1 -1
  67. package/dist/chart/render/chart-value-axis.d.ts +6 -1
  68. package/dist/chart/render/chart-value-axis.d.ts.map +1 -1
  69. package/dist/chart/render/chart-view-analysis.d.ts +30 -0
  70. package/dist/chart/render/chart-view-analysis.d.ts.map +1 -0
  71. package/dist/chart/render/chart-view-ex.d.ts +24 -0
  72. package/dist/chart/render/chart-view-ex.d.ts.map +1 -0
  73. package/dist/chart/render/chart-view-families.d.ts +10 -0
  74. package/dist/chart/render/chart-view-families.d.ts.map +1 -0
  75. package/dist/chart/render/chart-view-series.d.ts +36 -0
  76. package/dist/chart/render/chart-view-series.d.ts.map +1 -0
  77. package/dist/chart/render/chart-view-stock.d.ts +23 -0
  78. package/dist/chart/render/chart-view-stock.d.ts.map +1 -0
  79. package/dist/chart/render/chart-view.d.ts +49 -18
  80. package/dist/chart/render/chart-view.d.ts.map +1 -1
  81. package/dist/chart/render/index.d.ts +2 -0
  82. package/dist/chart/render/index.d.ts.map +1 -1
  83. package/dist/chart/render/render-space.d.ts +6 -1
  84. package/dist/chart/render/render-space.d.ts.map +1 -1
  85. package/dist/chart/render/summary-analysis.d.ts +11 -0
  86. package/dist/chart/render/summary-analysis.d.ts.map +1 -0
  87. package/dist/chart/render/summary-from-chartex.d.ts +11 -0
  88. package/dist/chart/render/summary-from-chartex.d.ts.map +1 -0
  89. package/dist/chart/render/summary-from-space.d.ts.map +1 -1
  90. package/dist/chart/render/summary.d.ts +86 -3
  91. package/dist/chart/render/summary.d.ts.map +1 -1
  92. package/dist/chart/stock-candles.d.ts +72 -0
  93. package/dist/chart/stock-candles.d.ts.map +1 -0
  94. package/dist/chart/style-palette.d.ts +29 -0
  95. package/dist/chart/style-palette.d.ts.map +1 -0
  96. package/dist/chart/sunburst-arcs.d.ts +41 -0
  97. package/dist/chart/sunburst-arcs.d.ts.map +1 -0
  98. package/dist/chart/trendline-fit.d.ts +39 -0
  99. package/dist/chart/trendline-fit.d.ts.map +1 -0
  100. package/dist/chart/waterfall.d.ts +31 -0
  101. package/dist/chart/waterfall.d.ts.map +1 -0
  102. package/dist/chart/write-analysis.d.ts +12 -0
  103. package/dist/chart/write-analysis.d.ts.map +1 -0
  104. package/dist/chart/write-series.d.ts.map +1 -1
  105. package/dist/{chunk-G5PQKHCG.mjs → chunk-2D4IFQ5M.mjs} +1 -1
  106. package/dist/{chunk-UAY26XOI.mjs → chunk-2EBMHIGJ.mjs} +1303 -994
  107. package/dist/{chunk-TVE6UIJF.mjs → chunk-4WZLFUUA.mjs} +54 -13
  108. package/dist/{chunk-H2FRDUNV.mjs → chunk-54ASP65T.mjs} +868 -585
  109. package/dist/chunk-M4XLF4R7.mjs +387 -0
  110. package/dist/{chunk-O6NIA4NG.mjs → chunk-ORH32TO3.mjs} +5798 -5742
  111. package/dist/{chunk-B2JBBAEQ.mjs → chunk-TNNXOW2O.mjs} +1 -1
  112. package/dist/{chunk-IT3U6QD6.cjs → chunk-TQE7FFNT.cjs} +6754 -6695
  113. package/dist/{chunk-7QZGRB3T.cjs → chunk-X7MGZQ6C.cjs} +1321 -995
  114. package/dist/{chunk-6DELVMYB.mjs → chunk-XGXIS4PN.mjs} +12316 -12260
  115. package/dist/crypto/decrypt.d.ts +17 -3
  116. package/dist/crypto/decrypt.d.ts.map +1 -1
  117. package/dist/crypto/encryption-info.d.ts.map +1 -1
  118. package/dist/crypto/index.cjs +252 -78
  119. package/dist/crypto/index.d.ts +19 -4
  120. package/dist/crypto/index.d.ts.map +1 -1
  121. package/dist/crypto/index.mjs +252 -79
  122. package/dist/crypto/key-derivation.d.ts +2 -3
  123. package/dist/crypto/key-derivation.d.ts.map +1 -1
  124. package/dist/crypto/validate.d.ts +22 -0
  125. package/dist/crypto/validate.d.ts.map +1 -0
  126. package/dist/diagram/engine/layout-def-parse.d.ts.map +1 -1
  127. package/dist/diagram/engine/pres-tree.d.ts.map +1 -1
  128. package/dist/diagram/index.cjs +102 -52
  129. package/dist/diagram/index.mjs +102 -52
  130. package/dist/digest/index.cjs +23 -11
  131. package/dist/digest/index.d.ts +2 -1
  132. package/dist/digest/index.d.ts.map +1 -1
  133. package/dist/digest/index.mjs +21 -12
  134. package/dist/digest/password-hash.d.ts +19 -5
  135. package/dist/digest/password-hash.d.ts.map +1 -1
  136. package/dist/digest/timing-safe.d.ts +7 -0
  137. package/dist/digest/timing-safe.d.ts.map +1 -0
  138. package/dist/docx/block-parser.d.ts.map +1 -1
  139. package/dist/docx/chart-paint.d.ts.map +1 -1
  140. package/dist/docx/chart.d.ts +10 -2
  141. package/dist/docx/chart.d.ts.map +1 -1
  142. package/dist/docx/content-control-edit.d.ts +26 -0
  143. package/dist/docx/content-control-edit.d.ts.map +1 -0
  144. package/dist/docx/content-control-model.d.ts +51 -0
  145. package/dist/docx/content-control-model.d.ts.map +1 -0
  146. package/dist/docx/content-control.d.ts +9 -0
  147. package/dist/docx/content-control.d.ts.map +1 -0
  148. package/dist/docx/default-styles.d.ts.map +1 -1
  149. package/dist/docx/drawing.d.ts.map +1 -1
  150. package/dist/docx/embedded.cjs +9932 -935
  151. package/dist/docx/embedded.mjs +9932 -935
  152. package/dist/docx/equation.d.ts +7 -3
  153. package/dist/docx/equation.d.ts.map +1 -1
  154. package/dist/docx/index.cjs +14117 -1513
  155. package/dist/docx/index.d.ts +6 -0
  156. package/dist/docx/index.d.ts.map +1 -1
  157. package/dist/docx/index.mjs +14093 -1514
  158. package/dist/docx/inline-model.d.ts +3 -0
  159. package/dist/docx/inline-model.d.ts.map +1 -1
  160. package/dist/docx/layout/adapt-floats.d.ts +3 -3
  161. package/dist/docx/layout/adapt-floats.d.ts.map +1 -1
  162. package/dist/docx/layout/adapter.d.ts.map +1 -1
  163. package/dist/docx/layout/equation-object.d.ts +7 -0
  164. package/dist/docx/layout/equation-object.d.ts.map +1 -0
  165. package/dist/docx/layout/floats.d.ts +8 -0
  166. package/dist/docx/layout/floats.d.ts.map +1 -1
  167. package/dist/docx/layout/incremental-layout.d.ts +39 -0
  168. package/dist/docx/layout/incremental-layout.d.ts.map +1 -0
  169. package/dist/docx/layout/index.cjs +14177 -1707
  170. package/dist/docx/layout/index.d.ts +2 -2
  171. package/dist/docx/layout/index.d.ts.map +1 -1
  172. package/dist/docx/layout/index.mjs +14176 -1708
  173. package/dist/docx/layout/input.d.ts +4 -0
  174. package/dist/docx/layout/input.d.ts.map +1 -1
  175. package/dist/docx/layout/layout-session.d.ts +13 -2
  176. package/dist/docx/layout/layout-session.d.ts.map +1 -1
  177. package/dist/docx/layout/layout.d.ts +1 -1
  178. package/dist/docx/layout/layout.d.ts.map +1 -1
  179. package/dist/docx/layout/line-metrics.d.ts.map +1 -1
  180. package/dist/docx/layout/page-cursor.d.ts +1 -1
  181. package/dist/docx/layout/page-cursor.d.ts.map +1 -1
  182. package/dist/docx/layout/page-fields.d.ts +3 -1
  183. package/dist/docx/layout/page-fields.d.ts.map +1 -1
  184. package/dist/docx/layout/result.d.ts +14 -1
  185. package/dist/docx/layout/result.d.ts.map +1 -1
  186. package/dist/docx/layout/section-flow.d.ts +11 -1
  187. package/dist/docx/layout/section-flow.d.ts.map +1 -1
  188. package/dist/docx/ligatures.d.ts +2 -0
  189. package/dist/docx/ligatures.d.ts.map +1 -1
  190. package/dist/docx/load/index.cjs +12709 -3590
  191. package/dist/docx/load/index.mjs +12709 -3590
  192. package/dist/docx/model-paragraph.d.ts +3 -0
  193. package/dist/docx/model-paragraph.d.ts.map +1 -1
  194. package/dist/docx/model-run.d.ts +3 -0
  195. package/dist/docx/model-run.d.ts.map +1 -1
  196. package/dist/docx/model.d.ts +3 -0
  197. package/dist/docx/model.d.ts.map +1 -1
  198. package/dist/docx/numbering-parse.d.ts.map +1 -1
  199. package/dist/docx/numbering-text.d.ts.map +1 -1
  200. package/dist/docx/package-limits.d.ts +6 -0
  201. package/dist/docx/package-limits.d.ts.map +1 -0
  202. package/dist/docx/parse-content-control.d.ts +28 -0
  203. package/dist/docx/parse-content-control.d.ts.map +1 -0
  204. package/dist/docx/parse-table.d.ts.map +1 -1
  205. package/dist/docx/parse.d.ts.map +1 -1
  206. package/dist/docx/save.d.ts.map +1 -1
  207. package/dist/docx/shape-model.d.ts +31 -0
  208. package/dist/docx/shape-model.d.ts.map +1 -0
  209. package/dist/docx/shape-palette.d.ts +19 -0
  210. package/dist/docx/shape-palette.d.ts.map +1 -0
  211. package/dist/docx/shape-parse.d.ts +16 -0
  212. package/dist/docx/shape-parse.d.ts.map +1 -0
  213. package/dist/docx/shape-svg.d.ts +20 -0
  214. package/dist/docx/shape-svg.d.ts.map +1 -0
  215. package/dist/docx/table-model.d.ts +4 -0
  216. package/dist/docx/table-model.d.ts.map +1 -1
  217. package/dist/docx/ui/content-control-commands.d.ts +37 -0
  218. package/dist/docx/ui/content-control-commands.d.ts.map +1 -0
  219. package/dist/docx/ui/content-control-guard.d.ts +8 -0
  220. package/dist/docx/ui/content-control-guard.d.ts.map +1 -0
  221. package/dist/docx/ui/content-control-spans.d.ts +19 -0
  222. package/dist/docx/ui/content-control-spans.d.ts.map +1 -0
  223. package/dist/docx/ui/index.cjs +3132 -506
  224. package/dist/docx/ui/index.d.ts +3 -0
  225. package/dist/docx/ui/index.d.ts.map +1 -1
  226. package/dist/docx/ui/index.mjs +3117 -507
  227. package/dist/docx/ui/inline-content-schema.d.ts.map +1 -1
  228. package/dist/docx/ui/paragraph-attributes.d.ts.map +1 -1
  229. package/dist/docx/ui/ribbon-action-ids.d.ts +1 -1
  230. package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -1
  231. package/dist/docx/ui/run-adapter.d.ts.map +1 -1
  232. package/dist/docx/ui/run-compare.d.ts.map +1 -1
  233. package/dist/docx/ui/run-mark-properties.d.ts.map +1 -1
  234. package/dist/docx/ui/run-marks.d.ts.map +1 -1
  235. package/dist/docx/ui/schema-marks.d.ts +16 -1
  236. package/dist/docx/ui/schema-marks.d.ts.map +1 -1
  237. package/dist/docx/ui/table-structure-guard.d.ts.map +1 -1
  238. package/dist/docx/write-block-placement.d.ts +9 -0
  239. package/dist/docx/write-block-placement.d.ts.map +1 -0
  240. package/dist/docx/write-content-control.d.ts +12 -0
  241. package/dist/docx/write-content-control.d.ts.map +1 -0
  242. package/dist/docx/write-drawing.d.ts +2 -0
  243. package/dist/docx/write-drawing.d.ts.map +1 -1
  244. package/dist/docx/write-inline.d.ts.map +1 -1
  245. package/dist/docx/write-paragraph.d.ts.map +1 -1
  246. package/dist/docx/write-shape.d.ts +16 -0
  247. package/dist/docx/write-shape.d.ts.map +1 -0
  248. package/dist/docx/write-table.d.ts.map +1 -1
  249. package/dist/docx/write.d.ts.map +1 -1
  250. package/dist/drawingml/index.cjs +24 -0
  251. package/dist/drawingml/index.mjs +24 -0
  252. package/dist/geometry/index.cjs +63 -48
  253. package/dist/geometry/index.mjs +63 -48
  254. package/dist/geometry/preset-shape-definitions-table.d.ts.map +1 -1
  255. package/dist/index.cjs +4291 -1578
  256. package/dist/index.mjs +4291 -1578
  257. package/dist/math/equation-gallery.d.ts +10 -0
  258. package/dist/math/equation-gallery.d.ts.map +1 -0
  259. package/dist/math/index.cjs +777 -139
  260. package/dist/math/index.d.ts +3 -0
  261. package/dist/math/index.d.ts.map +1 -1
  262. package/dist/math/index.mjs +772 -140
  263. package/dist/math/latex-omml-siblings.d.ts.map +1 -1
  264. package/dist/math/latex-to-omml.d.ts.map +1 -1
  265. package/dist/math/omml-box-grouped.d.ts +9 -0
  266. package/dist/math/omml-box-grouped.d.ts.map +1 -0
  267. package/dist/math/omml-box-layout.d.ts +15 -0
  268. package/dist/math/omml-box-layout.d.ts.map +1 -0
  269. package/dist/math/omml-box-structures.d.ts +7 -0
  270. package/dist/math/omml-box-structures.d.ts.map +1 -0
  271. package/dist/math/omml-box.d.ts +85 -0
  272. package/dist/math/omml-box.d.ts.map +1 -0
  273. package/dist/math/omml-dom.d.ts.map +1 -1
  274. package/dist/math/omml-mathml-converters.d.ts.map +1 -1
  275. package/dist/math/omml-svg.d.ts +14 -0
  276. package/dist/math/omml-svg.d.ts.map +1 -0
  277. package/dist/math/omml-to-xml.d.ts +10 -0
  278. package/dist/math/omml-to-xml.d.ts.map +1 -0
  279. package/dist/opc/embedded-packages.d.ts.map +1 -1
  280. package/dist/opc/index.cjs +257 -22
  281. package/dist/opc/index.d.ts +1 -0
  282. package/dist/opc/index.d.ts.map +1 -1
  283. package/dist/opc/index.mjs +251 -23
  284. package/dist/opc/package.d.ts.map +1 -1
  285. package/dist/opc/signature/detection.d.ts +22 -6
  286. package/dist/opc/signature/detection.d.ts.map +1 -1
  287. package/dist/opc/signature/index.d.ts +1 -1
  288. package/dist/opc/signature/index.d.ts.map +1 -1
  289. package/dist/opc/signature/xml-utils.d.ts.map +1 -1
  290. package/dist/opc/zip-limits.d.ts +52 -0
  291. package/dist/opc/zip-limits.d.ts.map +1 -0
  292. package/dist/pptx/automation/index.cjs +1848 -1320
  293. package/dist/pptx/automation/index.d.ts +4 -4
  294. package/dist/pptx/automation/index.mjs +6 -6
  295. package/dist/pptx/chunks/{elements-DmbzOhFu.d.ts → elements-tK7xnWeS.d.ts} +20 -9
  296. package/dist/pptx/chunks/elements-tK7xnWeS.d.ts.map +1 -0
  297. package/dist/pptx/chunks/{index-Cija6Dih.d.ts → index-BSpNQuvz.d.ts} +30 -5
  298. package/dist/pptx/chunks/{index-Cija6Dih.d.ts.map → index-BSpNQuvz.d.ts.map} +1 -1
  299. package/dist/pptx/chunks/{index-BmvOxbsh.d.ts → index-DS9Y4Ne3.d.ts} +25 -9
  300. package/dist/pptx/chunks/index-DS9Y4Ne3.d.ts.map +1 -0
  301. package/dist/pptx/chunks/inspection-status-DjiWd_Aa.d.ts.map +1 -1
  302. package/dist/pptx/chunks/{text-operations-sXxhsKDd.d.ts → text-operations-BdD_UQ11.d.ts} +2 -2
  303. package/dist/pptx/chunks/{text-operations-sXxhsKDd.d.ts.map → text-operations-BdD_UQ11.d.ts.map} +1 -1
  304. package/dist/pptx/cli/index.cjs +1795 -1275
  305. package/dist/pptx/cli/index.d.ts +1 -1
  306. package/dist/pptx/cli/index.mjs +5 -5
  307. package/dist/pptx/converter/index.cjs +80 -54
  308. package/dist/pptx/converter/index.d.ts +1 -1
  309. package/dist/pptx/converter/index.mjs +3 -3
  310. package/dist/pptx/editor/render/find-replace.cjs +14 -14
  311. package/dist/pptx/editor/render/find-replace.d.ts +2 -2
  312. package/dist/pptx/editor/render/find-replace.mjs +1 -1
  313. package/dist/pptx/editor/render/slide-operations.cjs +8 -8
  314. package/dist/pptx/editor/render/slide-operations.mjs +2 -2
  315. package/dist/pptx/editor/render/text-runs-style-patch.d.ts +1 -1
  316. package/dist/pptx/editor/render/text-style-scope.d.ts +1 -1
  317. package/dist/pptx/index.cjs +1117 -351
  318. package/dist/pptx/index.d.ts +5 -5
  319. package/dist/pptx/index.mjs +6 -6
  320. package/dist/pptx/signature-node/index.cjs +342 -65
  321. package/dist/pptx/signature-node/index.d.ts +12 -1
  322. package/dist/pptx/signature-node/index.d.ts.map +1 -1
  323. package/dist/pptx/signature-node/index.mjs +112 -52
  324. package/dist/teams/activity-feed.d.ts +19 -0
  325. package/dist/teams/activity-feed.d.ts.map +1 -0
  326. package/dist/teams/activity-state.d.ts +12 -0
  327. package/dist/teams/activity-state.d.ts.map +1 -0
  328. package/dist/teams/activity.d.ts +52 -0
  329. package/dist/teams/activity.d.ts.map +1 -0
  330. package/dist/teams/calendar.d.ts +57 -0
  331. package/dist/teams/calendar.d.ts.map +1 -0
  332. package/dist/teams/chat-actions.d.ts +20 -0
  333. package/dist/teams/chat-actions.d.ts.map +1 -0
  334. package/dist/teams/chat-rooms.d.ts +42 -0
  335. package/dist/teams/chat-rooms.d.ts.map +1 -0
  336. package/dist/teams/chat-view.d.ts +56 -0
  337. package/dist/teams/chat-view.d.ts.map +1 -0
  338. package/dist/teams/chat.d.ts +19 -3
  339. package/dist/teams/chat.d.ts.map +1 -1
  340. package/dist/teams/chats.d.ts +52 -0
  341. package/dist/teams/chats.d.ts.map +1 -0
  342. package/dist/teams/ics-timezone.d.ts +17 -0
  343. package/dist/teams/ics-timezone.d.ts.map +1 -0
  344. package/dist/teams/ics.d.ts +20 -0
  345. package/dist/teams/ics.d.ts.map +1 -0
  346. package/dist/teams/index.cjs +7252 -2926
  347. package/dist/teams/index.d.ts +22 -0
  348. package/dist/teams/index.d.ts.map +1 -1
  349. package/dist/teams/index.mjs +7162 -2927
  350. package/dist/teams/meeting-actions.d.ts +31 -0
  351. package/dist/teams/meeting-actions.d.ts.map +1 -0
  352. package/dist/teams/meeting-exceptions.d.ts +28 -0
  353. package/dist/teams/meeting-exceptions.d.ts.map +1 -0
  354. package/dist/teams/meeting-reminders.d.ts +13 -0
  355. package/dist/teams/meeting-reminders.d.ts.map +1 -0
  356. package/dist/teams/meetings.d.ts +71 -0
  357. package/dist/teams/meetings.d.ts.map +1 -0
  358. package/dist/teams/mention-text.d.ts +11 -0
  359. package/dist/teams/mention-text.d.ts.map +1 -0
  360. package/dist/teams/mentions.d.ts +68 -0
  361. package/dist/teams/mentions.d.ts.map +1 -0
  362. package/dist/teams/model.d.ts +7 -0
  363. package/dist/teams/model.d.ts.map +1 -1
  364. package/dist/teams/notifications.d.ts +21 -0
  365. package/dist/teams/notifications.d.ts.map +1 -0
  366. package/dist/teams/recurrence.d.ts +18 -0
  367. package/dist/teams/recurrence.d.ts.map +1 -0
  368. package/dist/teams/roster.d.ts +12 -0
  369. package/dist/teams/roster.d.ts.map +1 -0
  370. package/dist/teams/server-config.d.ts +23 -2
  371. package/dist/teams/server-config.d.ts.map +1 -1
  372. package/dist/teams/server-session.d.ts +19 -0
  373. package/dist/teams/server-session.d.ts.map +1 -0
  374. package/dist/teams/shared-chat.d.ts +83 -0
  375. package/dist/teams/shared-chat.d.ts.map +1 -0
  376. package/dist/teams/store.d.ts +58 -4
  377. package/dist/teams/store.d.ts.map +1 -1
  378. package/dist/teams/sync-transport.d.ts +12 -0
  379. package/dist/teams/sync-transport.d.ts.map +1 -0
  380. package/dist/teams/time-zone.d.ts +32 -0
  381. package/dist/teams/time-zone.d.ts.map +1 -0
  382. package/dist/teams/view.d.ts +3 -0
  383. package/dist/teams/view.d.ts.map +1 -1
  384. package/dist/teams/workspace.d.ts +13 -2
  385. package/dist/teams/workspace.d.ts.map +1 -1
  386. package/dist/visio/edit-connector-follow.d.ts +15 -0
  387. package/dist/visio/edit-connector-follow.d.ts.map +1 -0
  388. package/dist/visio/edit-connector-obstacles.d.ts +9 -3
  389. package/dist/visio/edit-connector-obstacles.d.ts.map +1 -1
  390. package/dist/visio/edit-connector-reroute.d.ts.map +1 -1
  391. package/dist/visio/edit-connector.d.ts.map +1 -1
  392. package/dist/visio/edit-master-add.d.ts +37 -0
  393. package/dist/visio/edit-master-add.d.ts.map +1 -0
  394. package/dist/visio/edit-master-drop.d.ts +6 -0
  395. package/dist/visio/edit-master-drop.d.ts.map +1 -1
  396. package/dist/visio/edit-recalculate-index.d.ts +5 -0
  397. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  398. package/dist/visio/edit-recalculate-values.d.ts.map +1 -1
  399. package/dist/visio/edit-stencil-connector-layout.d.ts +2 -0
  400. package/dist/visio/edit-stencil-connector-layout.d.ts.map +1 -1
  401. package/dist/visio/edit-stencil-connector.d.ts +1 -0
  402. package/dist/visio/edit-stencil-connector.d.ts.map +1 -1
  403. package/dist/visio/edit-stencil-import.d.ts +10 -0
  404. package/dist/visio/edit-stencil-import.d.ts.map +1 -0
  405. package/dist/visio/edit-stencil-line.d.ts +29 -0
  406. package/dist/visio/edit-stencil-line.d.ts.map +1 -0
  407. package/dist/visio/edit-stencil-master.d.ts +3 -8
  408. package/dist/visio/edit-stencil-master.d.ts.map +1 -1
  409. package/dist/visio/edit.d.ts.map +1 -1
  410. package/dist/visio/formula-evaluate.d.ts.map +1 -1
  411. package/dist/visio/formula-math-functions.d.ts +11 -0
  412. package/dist/visio/formula-math-functions.d.ts.map +1 -0
  413. package/dist/visio/formula-text-functions.d.ts +23 -0
  414. package/dist/visio/formula-text-functions.d.ts.map +1 -0
  415. package/dist/visio/formula.d.ts.map +1 -1
  416. package/dist/visio/index.cjs +2552 -1833
  417. package/dist/visio/index.d.ts +1 -0
  418. package/dist/visio/index.d.ts.map +1 -1
  419. package/dist/visio/index.mjs +2552 -1834
  420. package/dist/visio/parser.d.ts +6 -0
  421. package/dist/visio/parser.d.ts.map +1 -1
  422. package/dist/visio/stencil-file.d.ts +14 -0
  423. package/dist/visio/stencil-file.d.ts.map +1 -0
  424. package/dist/visio/ui/index.cjs +2398 -1679
  425. package/dist/visio/ui/index.mjs +2398 -1680
  426. package/dist/visio/ui/master-drop.d.ts +10 -0
  427. package/dist/visio/ui/master-drop.d.ts.map +1 -1
  428. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  429. package/dist/xlsx/edit/clipboard-html-parse.d.ts +4 -0
  430. package/dist/xlsx/edit/clipboard-html-parse.d.ts.map +1 -1
  431. package/dist/xlsx/edit/data-table.d.ts +38 -0
  432. package/dist/xlsx/edit/data-table.d.ts.map +1 -0
  433. package/dist/xlsx/edit/drawings.d.ts.map +1 -1
  434. package/dist/xlsx/edit/goal-seek.d.ts +30 -0
  435. package/dist/xlsx/edit/goal-seek.d.ts.map +1 -0
  436. package/dist/xlsx/edit/goal-solver.d.ts +20 -0
  437. package/dist/xlsx/edit/goal-solver.d.ts.map +1 -0
  438. package/dist/xlsx/edit/history.d.ts +1 -1
  439. package/dist/xlsx/edit/history.d.ts.map +1 -1
  440. package/dist/xlsx/edit/index.d.ts +5 -0
  441. package/dist/xlsx/edit/index.d.ts.map +1 -1
  442. package/dist/xlsx/edit/input-text.d.ts.map +1 -1
  443. package/dist/xlsx/edit/pivots.d.ts +2 -1
  444. package/dist/xlsx/edit/pivots.d.ts.map +1 -1
  445. package/dist/xlsx/edit/scenarios.d.ts +41 -0
  446. package/dist/xlsx/edit/scenarios.d.ts.map +1 -0
  447. package/dist/xlsx/edit/session.d.ts.map +1 -1
  448. package/dist/xlsx/edit/slicers.d.ts +34 -0
  449. package/dist/xlsx/edit/slicers.d.ts.map +1 -0
  450. package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
  451. package/dist/xlsx/edit/timelines.d.ts +26 -0
  452. package/dist/xlsx/edit/timelines.d.ts.map +1 -0
  453. package/dist/xlsx/edit/types.d.ts +39 -0
  454. package/dist/xlsx/edit/types.d.ts.map +1 -1
  455. package/dist/xlsx/formula/context.d.ts +13 -0
  456. package/dist/xlsx/formula/context.d.ts.map +1 -1
  457. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  458. package/dist/xlsx/formula/evaluator.d.ts.map +1 -1
  459. package/dist/xlsx/formula/functions/helpers.d.ts +3 -2
  460. package/dist/xlsx/formula/functions/helpers.d.ts.map +1 -1
  461. package/dist/xlsx/formula/functions/text-regex.d.ts +8 -0
  462. package/dist/xlsx/formula/functions/text-regex.d.ts.map +1 -1
  463. package/dist/xlsx/formula/functions/text.d.ts.map +1 -1
  464. package/dist/xlsx/formula/functions/wildcard.d.ts +8 -0
  465. package/dist/xlsx/formula/functions/wildcard.d.ts.map +1 -0
  466. package/dist/xlsx/formula/values.d.ts +9 -0
  467. package/dist/xlsx/formula/values.d.ts.map +1 -1
  468. package/dist/xlsx/index.cjs +9230 -3233
  469. package/dist/xlsx/index.d.ts +1 -0
  470. package/dist/xlsx/index.d.ts.map +1 -1
  471. package/dist/xlsx/index.mjs +9146 -3233
  472. package/dist/xlsx/layout/chart-view.d.ts.map +1 -1
  473. package/dist/xlsx/layout/header-footer-edit.d.ts +16 -0
  474. package/dist/xlsx/layout/header-footer-edit.d.ts.map +1 -0
  475. package/dist/xlsx/layout/index.d.ts +3 -0
  476. package/dist/xlsx/layout/index.d.ts.map +1 -1
  477. package/dist/xlsx/layout/page-break-view.d.ts +39 -0
  478. package/dist/xlsx/layout/page-break-view.d.ts.map +1 -0
  479. package/dist/xlsx/layout/page-view.d.ts +69 -0
  480. package/dist/xlsx/layout/page-view.d.ts.map +1 -0
  481. package/dist/xlsx/layout/ref-evaluator.d.ts.map +1 -1
  482. package/dist/xlsx/load/index.cjs +4528 -1707
  483. package/dist/xlsx/load/index.mjs +4527 -1706
  484. package/dist/xlsx/model-pivots.d.ts +88 -2
  485. package/dist/xlsx/model-pivots.d.ts.map +1 -1
  486. package/dist/xlsx/model-slicers.d.ts +146 -0
  487. package/dist/xlsx/model-slicers.d.ts.map +1 -0
  488. package/dist/xlsx/model-whatif.d.ts +51 -0
  489. package/dist/xlsx/model-whatif.d.ts.map +1 -0
  490. package/dist/xlsx/model.d.ts +26 -1
  491. package/dist/xlsx/model.d.ts.map +1 -1
  492. package/dist/xlsx/pivot/admission.d.ts.map +1 -1
  493. package/dist/xlsx/pivot/aggregate.d.ts +15 -6
  494. package/dist/xlsx/pivot/aggregate.d.ts.map +1 -1
  495. package/dist/xlsx/pivot/axes.d.ts +6 -0
  496. package/dist/xlsx/pivot/axes.d.ts.map +1 -0
  497. package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -1
  498. package/dist/xlsx/pivot/columns.d.ts +48 -0
  499. package/dist/xlsx/pivot/columns.d.ts.map +1 -0
  500. package/dist/xlsx/pivot/data.d.ts +9 -3
  501. package/dist/xlsx/pivot/data.d.ts.map +1 -1
  502. package/dist/xlsx/pivot/date-axes.d.ts +12 -0
  503. package/dist/xlsx/pivot/date-axes.d.ts.map +1 -0
  504. package/dist/xlsx/pivot/date-group-read.d.ts +11 -0
  505. package/dist/xlsx/pivot/date-group-read.d.ts.map +1 -0
  506. package/dist/xlsx/pivot/date-groups.d.ts +60 -0
  507. package/dist/xlsx/pivot/date-groups.d.ts.map +1 -0
  508. package/dist/xlsx/pivot/date-read.d.ts +10 -0
  509. package/dist/xlsx/pivot/date-read.d.ts.map +1 -0
  510. package/dist/xlsx/pivot/dates.d.ts +17 -0
  511. package/dist/xlsx/pivot/dates.d.ts.map +1 -0
  512. package/dist/xlsx/pivot/group-read.d.ts +9 -0
  513. package/dist/xlsx/pivot/group-read.d.ts.map +1 -0
  514. package/dist/xlsx/pivot/groups.d.ts +31 -0
  515. package/dist/xlsx/pivot/groups.d.ts.map +1 -0
  516. package/dist/xlsx/pivot/hierarchy.d.ts +4 -1
  517. package/dist/xlsx/pivot/hierarchy.d.ts.map +1 -1
  518. package/dist/xlsx/pivot/index.d.ts +7 -0
  519. package/dist/xlsx/pivot/index.d.ts.map +1 -1
  520. package/dist/xlsx/pivot/item-filters-read.d.ts +7 -0
  521. package/dist/xlsx/pivot/item-filters-read.d.ts.map +1 -0
  522. package/dist/xlsx/pivot/item-filters.d.ts +23 -0
  523. package/dist/xlsx/pivot/item-filters.d.ts.map +1 -0
  524. package/dist/xlsx/pivot/measures.d.ts +6 -4
  525. package/dist/xlsx/pivot/measures.d.ts.map +1 -1
  526. package/dist/xlsx/pivot/nested.d.ts +8 -0
  527. package/dist/xlsx/pivot/nested.d.ts.map +1 -0
  528. package/dist/xlsx/pivot/page-filter-admission.d.ts.map +1 -1
  529. package/dist/xlsx/pivot/page-filter.d.ts.map +1 -1
  530. package/dist/xlsx/pivot/read.d.ts +2 -1
  531. package/dist/xlsx/pivot/read.d.ts.map +1 -1
  532. package/dist/xlsx/pivot/subtotal-read.d.ts +9 -0
  533. package/dist/xlsx/pivot/subtotal-read.d.ts.map +1 -0
  534. package/dist/xlsx/pivot/subtotals.d.ts +23 -0
  535. package/dist/xlsx/pivot/subtotals.d.ts.map +1 -0
  536. package/dist/xlsx/pivot/table-xml.d.ts +1 -1
  537. package/dist/xlsx/pivot/table-xml.d.ts.map +1 -1
  538. package/dist/xlsx/pivot/values-axis.d.ts +2 -2
  539. package/dist/xlsx/pivot/values-axis.d.ts.map +1 -1
  540. package/dist/xlsx/read/chart-ex.d.ts +9 -0
  541. package/dist/xlsx/read/chart-ex.d.ts.map +1 -0
  542. package/dist/xlsx/read/chart.d.ts.map +1 -1
  543. package/dist/xlsx/read/drawing.d.ts.map +1 -1
  544. package/dist/xlsx/read/load.d.ts.map +1 -1
  545. package/dist/xlsx/read/package.d.ts +2 -1
  546. package/dist/xlsx/read/package.d.ts.map +1 -1
  547. package/dist/xlsx/read/scenarios.d.ts +4 -0
  548. package/dist/xlsx/read/scenarios.d.ts.map +1 -0
  549. package/dist/xlsx/read/sheet-data.d.ts.map +1 -1
  550. package/dist/xlsx/read/sheet-props.d.ts.map +1 -1
  551. package/dist/xlsx/read/tables.d.ts +3 -0
  552. package/dist/xlsx/read/tables.d.ts.map +1 -1
  553. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  554. package/dist/xlsx/slicer/book.d.ts +16 -0
  555. package/dist/xlsx/slicer/book.d.ts.map +1 -0
  556. package/dist/xlsx/slicer/frame.d.ts +14 -0
  557. package/dist/xlsx/slicer/frame.d.ts.map +1 -0
  558. package/dist/xlsx/slicer/index.d.ts +10 -0
  559. package/dist/xlsx/slicer/index.d.ts.map +1 -0
  560. package/dist/xlsx/slicer/items.d.ts +30 -0
  561. package/dist/xlsx/slicer/items.d.ts.map +1 -0
  562. package/dist/xlsx/slicer/layout.d.ts +67 -0
  563. package/dist/xlsx/slicer/layout.d.ts.map +1 -0
  564. package/dist/xlsx/slicer/read-slicers.d.ts +11 -0
  565. package/dist/xlsx/slicer/read-slicers.d.ts.map +1 -0
  566. package/dist/xlsx/slicer/read-timelines.d.ts +5 -0
  567. package/dist/xlsx/slicer/read-timelines.d.ts.map +1 -0
  568. package/dist/xlsx/slicer/read.d.ts +26 -0
  569. package/dist/xlsx/slicer/read.d.ts.map +1 -0
  570. package/dist/xlsx/slicer/select.d.ts +10 -0
  571. package/dist/xlsx/slicer/select.d.ts.map +1 -0
  572. package/dist/xlsx/slicer/styles.d.ts +36 -0
  573. package/dist/xlsx/slicer/styles.d.ts.map +1 -0
  574. package/dist/xlsx/slicer/table-filter.d.ts +28 -0
  575. package/dist/xlsx/slicer/table-filter.d.ts.map +1 -0
  576. package/dist/xlsx/slicer/timeline-periods.d.ts +35 -0
  577. package/dist/xlsx/slicer/timeline-periods.d.ts.map +1 -0
  578. package/dist/xlsx/slicer/timeline-view.d.ts +60 -0
  579. package/dist/xlsx/slicer/timeline-view.d.ts.map +1 -0
  580. package/dist/xlsx/slicer/write-plan.d.ts +31 -0
  581. package/dist/xlsx/slicer/write-plan.d.ts.map +1 -0
  582. package/dist/xlsx/slicer/write-timeline.d.ts +7 -0
  583. package/dist/xlsx/slicer/write-timeline.d.ts.map +1 -0
  584. package/dist/xlsx/slicer/write-xml.d.ts +17 -0
  585. package/dist/xlsx/slicer/write-xml.d.ts.map +1 -0
  586. package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -1
  587. package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -1
  588. package/dist/xlsx/ui/commands/i18n/print-layout.d.ts.map +1 -1
  589. package/dist/xlsx/ui/commands/i18n/slicers.d.ts +3 -0
  590. package/dist/xlsx/ui/commands/i18n/slicers.d.ts.map +1 -0
  591. package/dist/xlsx/ui/commands/i18n/what-if.d.ts +3 -0
  592. package/dist/xlsx/ui/commands/i18n/what-if.d.ts.map +1 -0
  593. package/dist/xlsx/ui/commands/icons.d.ts.map +1 -1
  594. package/dist/xlsx/ui/commands/slicers.d.ts +37 -0
  595. package/dist/xlsx/ui/commands/slicers.d.ts.map +1 -0
  596. package/dist/xlsx/ui/commands/what-if.d.ts +4 -0
  597. package/dist/xlsx/ui/commands/what-if.d.ts.map +1 -0
  598. package/dist/xlsx/ui/commands.d.ts +2 -0
  599. package/dist/xlsx/ui/commands.d.ts.map +1 -1
  600. package/dist/xlsx/ui/index.cjs +4201 -1316
  601. package/dist/xlsx/ui/index.d.ts +2 -0
  602. package/dist/xlsx/ui/index.d.ts.map +1 -1
  603. package/dist/xlsx/ui/index.mjs +4196 -1317
  604. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -1
  605. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -1
  606. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -1
  607. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -1
  608. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -1
  609. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts.map +1 -1
  610. package/dist/xlsx/write/carried-refs.d.ts.map +1 -1
  611. package/dist/xlsx/write/drawing.d.ts.map +1 -1
  612. package/dist/xlsx/write/package-writer.d.ts +2 -0
  613. package/dist/xlsx/write/package-writer.d.ts.map +1 -1
  614. package/dist/xlsx/write/save.d.ts.map +1 -1
  615. package/dist/xlsx/write/scenarios.d.ts +4 -0
  616. package/dist/xlsx/write/scenarios.d.ts.map +1 -0
  617. package/dist/xlsx/write/sheet-data.d.ts.map +1 -1
  618. package/dist/xlsx/write/sheet-parts.d.ts +1 -0
  619. package/dist/xlsx/write/sheet-parts.d.ts.map +1 -1
  620. package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
  621. package/dist/xlsx/write/table-patch.d.ts.map +1 -1
  622. package/dist/xlsx/write/tables.d.ts.map +1 -1
  623. package/dist/xlsx/write/worksheet.d.ts.map +1 -1
  624. package/dist/xml/index.cjs +28 -0
  625. package/dist/xml/index.mjs +27 -1
  626. package/dist/xml/namespaces.d.ts +2 -0
  627. package/dist/xml/namespaces.d.ts.map +1 -1
  628. package/dist/xml/xml.d.ts +15 -0
  629. package/dist/xml/xml.d.ts.map +1 -1
  630. package/package.json +1 -1
  631. package/dist/PptxHandler-RWTOUCLC.mjs +0 -3
  632. package/dist/PptxHandler-UU4ZCT6H.cjs +0 -12
  633. package/dist/chunk-KBIJI6P5.mjs +0 -166
  634. package/dist/pptx/chunks/elements-DmbzOhFu.d.ts.map +0 -1
  635. package/dist/pptx/chunks/index-BmvOxbsh.d.ts.map +0 -1
@@ -0,0 +1,31 @@
1
+ import { type Meeting, type MeetingInput, type MeetingStore, type OccurrencePatch } from './meetings.js';
2
+ import type { TeamsWorkspace } from './workspace.js';
3
+ export interface MeetingActions {
4
+ createMeeting: (input: MeetingFormInput) => Meeting | null;
5
+ updateMeeting: (id: string, patch: Partial<MeetingFormInput>) => Meeting | null;
6
+ cancelMeeting: (id: string) => boolean;
7
+ /** Cancel one occurrence of a repeating meeting (`recurrenceId` is its original start). */
8
+ cancelOccurrence: (id: string, recurrenceId: number) => boolean;
9
+ /** Change one occurrence of a repeating meeting; the series stays as it is. */
10
+ editOccurrence: (id: string, recurrenceId: number, patch: OccurrencePatch) => Meeting | null;
11
+ /** The `.ics` file for a meeting, or null when it does not exist. */
12
+ meetingIcs: (id: string) => {
13
+ name: string;
14
+ text: string;
15
+ } | null;
16
+ }
17
+ /** What the New meeting form submits: attendees are user ids, resolved through the roster. */
18
+ export interface MeetingFormInput extends Omit<MeetingInput, 'attendees'> {
19
+ attendeeIds?: readonly string[];
20
+ }
21
+ export interface MeetingActionDeps {
22
+ ws: TeamsWorkspace;
23
+ meetings: MeetingStore;
24
+ notice: (text: string) => void;
25
+ refresh: () => void;
26
+ /** Defaults to the clock; tests pass their own. */
27
+ now?: () => number;
28
+ }
29
+ export declare const meetingChatId: (meetingId: string) => string;
30
+ export declare function createMeetingActions(deps: MeetingActionDeps): MeetingActions;
31
+ //# sourceMappingURL=meeting-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-actions.d.ts","sourceRoot":"","sources":["../../teams/meeting-actions.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,cAAc;IAC9B,aAAa,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,GAAG,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IAChF,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,2FAA2F;IAC3F,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IAChE,+EAA+E;IAC/E,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,OAAO,GAAG,IAAI,CAAC;IAC7F,qEAAqE;IACrE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE;AAED,8FAA8F;AAC9F,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;IACxE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,cAAc,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,cAAe,MAAM,KAAG,MAAwC,CAAC;AAE3F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CA8G5E"}
@@ -0,0 +1,28 @@
1
+ import * as Y from 'yjs';
2
+ export interface MeetingException {
3
+ /** UTC start the occurrence would have had without the exception. */
4
+ originalStart: number;
5
+ cancelled: boolean;
6
+ /** Overrides for a changed occurrence. */
7
+ start?: number;
8
+ end?: number;
9
+ title?: string;
10
+ description?: string;
11
+ }
12
+ export interface OccurrencePatch {
13
+ start?: number;
14
+ end?: number;
15
+ title?: string;
16
+ description?: string;
17
+ }
18
+ export declare const MAX_EXCEPTIONS = 400;
19
+ /** One stored value as an exception, or null when it is not a valid one. */
20
+ export declare function readException(key: string, raw: unknown): MeetingException | null;
21
+ export declare function readExceptions(raw: unknown): MeetingException[];
22
+ /** The exception for an occurrence that started at `originalStart`, if any. */
23
+ export declare const exceptionAt: (exceptions: readonly MeetingException[] | undefined, originalStart: number) => MeetingException | undefined;
24
+ /** The row's exception map, created on first use. */
25
+ export declare function exceptionMap(row: Y.Map<unknown>): Y.Map<unknown>;
26
+ /** The plain stored value for a change (only the fields that are set). */
27
+ export declare function exceptionValue(patch: OccurrencePatch, previous: MeetingException | undefined): Record<string, unknown>;
28
+ //# sourceMappingURL=meeting-exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-exceptions.d.ts","sourceRoot":"","sources":["../../teams/meeting-exceptions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,MAAM,WAAW,gBAAgB;IAChC,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,MAAM,CAAC;AAKlC,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAmBhF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAQ/D;AAED,+EAA+E;AAC/E,eAAO,MAAM,WAAW,eACX,SAAS,gBAAgB,EAAE,GAAG,SAAS,iBACpC,MAAM,KACnB,gBAAgB,GAAG,SAAuE,CAAC;AAE9F,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAMhE;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAC7B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB"}
@@ -0,0 +1,13 @@
1
+ import type { ActivityItem } from './activity.js';
2
+ import { type Meeting } from './meetings.js';
3
+ import type { StorageLike } from './store.js';
4
+ export interface MeetingReminders {
5
+ /**
6
+ * Reminders that are due now and were not announced before. `allowed` says whether the person's
7
+ * settings and status let an item through; a reminder it refuses (Do not disturb) is not marked
8
+ * announced, so it still fires if the status changes before the meeting starts.
9
+ */
10
+ due: (meetings: readonly Meeting[], selfId: string, now: number, allowed: (item: ActivityItem) => boolean) => ActivityItem[];
11
+ }
12
+ export declare function createMeetingReminders(storage: StorageLike | undefined, key: string): MeetingReminders;
13
+ //# sourceMappingURL=meeting-reminders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-reminders.d.ts","sourceRoot":"","sources":["../../teams/meeting-reminders.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK3C,MAAM,WAAW,gBAAgB;IAChC;;;;OAIG;IACH,GAAG,EAAE,CACJ,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,KACpC,YAAY,EAAE,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,GACT,gBAAgB,CAmDlB"}
@@ -0,0 +1,71 @@
1
+ import * as Y from 'yjs';
2
+ import { type ChatMember } from './chats.js';
3
+ import { type MeetingException, type OccurrencePatch } from './meeting-exceptions.js';
4
+ export type { MeetingException, OccurrencePatch } from './meeting-exceptions.js';
5
+ export type MeetingRepeat = 'none' | 'daily' | 'weekly';
6
+ export declare const MEETING_REPEATS: readonly MeetingRepeat[];
7
+ export interface Meeting {
8
+ id: string;
9
+ title: string;
10
+ description: string;
11
+ organizerId: string;
12
+ organizerName: string;
13
+ /** The organiser's IANA zone: repeats keep their wall-clock time in it. */
14
+ zone: string;
15
+ /** UTC milliseconds. */
16
+ start: number;
17
+ end: number;
18
+ repeat: MeetingRepeat;
19
+ /** The series ends once an occurrence would start after this instant. Never with `count`. */
20
+ until?: number;
21
+ /** The series has this many occurrences in all. Never with `until`. */
22
+ count?: number;
23
+ /** Single occurrences that were cancelled or changed. */
24
+ exceptions?: MeetingException[];
25
+ attendees: ChatMember[];
26
+ /** A channel meeting: the channel it was scheduled in (its chat is the channel). */
27
+ channelId?: string;
28
+ /** The group chat of a meeting with attendees. */
29
+ chatId?: string;
30
+ createdAt: number;
31
+ cancelled: boolean;
32
+ }
33
+ export interface MeetingInput {
34
+ title: string;
35
+ description?: string;
36
+ start: number;
37
+ end: number;
38
+ repeat?: MeetingRepeat;
39
+ /** Last instant a repeat may start at; null clears the end. */
40
+ until?: number | null;
41
+ /** Total occurrences of a repeat; null clears the end. */
42
+ count?: number | null;
43
+ attendees?: readonly ChatMember[];
44
+ channelId?: string;
45
+ chatId?: string;
46
+ /** The organiser's zone; defaults to the device's. */
47
+ zone?: string;
48
+ }
49
+ export declare const MAX_MEETING_TITLE = 120;
50
+ export declare const MAX_MEETING_DESCRIPTION = 2000;
51
+ export declare const MAX_MEETING_HOURS = 24;
52
+ export interface MeetingStore {
53
+ list: () => Meeting[];
54
+ get: (id: string) => Meeting | null;
55
+ /** Null when the title is empty or the times are not a positive span of at most 24 hours. */
56
+ create: (input: MeetingInput) => Meeting | null;
57
+ /** Organiser only. Returns the updated meeting. */
58
+ update: (id: string, patch: Partial<MeetingInput>) => Meeting | null;
59
+ /** Organiser only. The row stays so cards and reminders show it as cancelled. */
60
+ cancel: (id: string) => boolean;
61
+ /** Organiser only. Cancels one occurrence of a repeating meeting, keyed by its original start. */
62
+ cancelOccurrence: (id: string, originalStart: number) => boolean;
63
+ /** Organiser only. Changes one occurrence; the rest of the series is untouched. */
64
+ editOccurrence: (id: string, originalStart: number, patch: OccurrencePatch) => Meeting | null;
65
+ }
66
+ /** Whether a meeting belongs in this person's calendar. Channel meetings show for everyone. */
67
+ export declare const meetingVisibleTo: (meeting: Meeting, userId: string) => boolean;
68
+ export declare function createMeetingStore(doc: Y.Doc, user: ChatMember, now?: () => number): MeetingStore;
69
+ /** The channel-style key a meeting's call and live flag use. */
70
+ export declare const meetingCallKey: (meetingId: string) => string;
71
+ //# sourceMappingURL=meetings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meetings.d.ts","sourceRoot":"","sources":["../../teams/meetings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type MentionTarget } from './mentions.js';
2
+ import type { Message } from './model.js';
3
+ /**
4
+ * Turn the names picked in the composer back into stored `@Name` text. Each pick claims one
5
+ * occurrence (whole words, case-insensitive, longest name first, never one already preceded by
6
+ * `@`), so a plain word that happens to match a name elsewhere in the message stays plain.
7
+ */
8
+ export declare function promoteMentions(text: string, picks: readonly MentionTarget[]): string;
9
+ /** The composer's view of a stored message: mention names without the `@`. */
10
+ export declare function mentionDisplayText(message: Pick<Message, 'text' | 'mentions'>): string;
11
+ //# sourceMappingURL=mention-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-text.d.ts","sourceRoot":"","sources":["../../teams/mention-text.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CA+BrF;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,MAAM,CAStF"}
@@ -0,0 +1,68 @@
1
+ import type { Message } from './model.js';
2
+ /** `user` points at one person; `channel` and `team` address everyone (`@channel`, `@team`). */
3
+ export type MentionKind = 'user' | 'channel' | 'team';
4
+ /** Someone (or everyone) that can be mentioned, as offered by the picker. */
5
+ export interface MentionTarget {
6
+ kind: MentionKind;
7
+ /** The user id; `channel` / `team` for the group mentions. */
8
+ id: string;
9
+ /** The display name that follows the `@`. */
10
+ name: string;
11
+ }
12
+ /** A mention located in a message: `text.slice(start, end)` is `@` plus the name. */
13
+ export interface Mention extends MentionTarget {
14
+ start: number;
15
+ end: number;
16
+ }
17
+ export interface MentionSegment {
18
+ text: string;
19
+ mention?: Mention;
20
+ }
21
+ export declare const MAX_MENTIONS = 50;
22
+ /** `@channel` and `@team`, offered after the people. */
23
+ export declare const GROUP_MENTIONS: readonly MentionTarget[];
24
+ /** A mention name: markup removed, whitespace collapsed, no `@`, bounded. Empty when unusable. */
25
+ export declare function sanitizeMentionName(name: unknown): string;
26
+ /** Validate a target from an untrusted source (a peer's row, a host's property). */
27
+ export declare function sanitizeMentionTarget(raw: unknown): MentionTarget | null;
28
+ /**
29
+ * Find the mentions in `text`. Candidates are tried in the given order for ties; the longest name
30
+ * wins at a position (`@Ada Lovelace` beats `@Ada`). A mention needs a non-word character (or the
31
+ * edge of the text) on both sides, so an e-mail address is not a mention. Case-insensitive.
32
+ */
33
+ export declare function resolveMentions(text: string, candidates: readonly MentionTarget[]): Mention[];
34
+ /** Re-validate stored mentions against the text they claim to sit in. */
35
+ export declare function sanitizeMentions(raw: unknown, text: string): Mention[];
36
+ /** Split text into plain runs and mention runs, for rendering. */
37
+ export declare function mentionSegments(text: string, mentions?: readonly Mention[]): MentionSegment[];
38
+ /** Whether a message addresses this person: by name, or through `@channel` / `@team`. */
39
+ export declare function mentionsUser(message: Pick<Message, 'mentions'>, userId: string): boolean;
40
+ /** An open `@query` at the caret, as the composer's picker needs it. */
41
+ export interface MentionQuery {
42
+ /** Index of the `@`. */
43
+ start: number;
44
+ /** What was typed after it. */
45
+ query: string;
46
+ }
47
+ /** The `@query` being typed right before `caret`, or null. The `@` must start a word. */
48
+ export declare function mentionQueryAt(text: string, caret: number): MentionQuery | null;
49
+ /** Targets whose name matches what was typed; names starting with it (or a word of it) first. */
50
+ export declare function filterMentionTargets(targets: readonly MentionTarget[], query: string, limit?: number): MentionTarget[];
51
+ /**
52
+ * Replace the open `@query` with the person's name (and a trailing space) and place the caret.
53
+ * The `@` is only there while the picker is open, as in Teams; `promoteMentions` adds it back
54
+ * when the message is stored, so older clients still read `@Name`.
55
+ */
56
+ export declare function insertMention(text: string, query: MentionQuery, caret: number, target: MentionTarget): {
57
+ text: string;
58
+ caret: number;
59
+ };
60
+ /**
61
+ * Who the picker offers in a channel: people online now, people who wrote there, then the group
62
+ * mentions. The author of the draft is left out.
63
+ */
64
+ export declare function mentionTargetsFor(messages: readonly Pick<Message, 'authorId' | 'authorName'>[], people: readonly {
65
+ id: string;
66
+ name: string;
67
+ }[], selfId: string): MentionTarget[];
68
+ //# sourceMappingURL=mentions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../teams/mentions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,gGAAgG;AAChG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtD,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;CACb;AAED,qFAAqF;AACrF,MAAM,WAAW,OAAQ,SAAQ,aAAa;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,KAAK,CAAC;AAI/B,wDAAwD;AACxD,eAAO,MAAM,cAAc,EAAE,SAAS,aAAa,EAGlD,CAAC;AAKF,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOzD;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CASxE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,EAAE,CA2B7F;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAetE;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,SAAS,OAAO,EAAO,GAAG,cAAc,EAAE,CAWjG;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAIxF;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC5B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACd;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQ/E;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,GACP,aAAa,EAAE,CAcjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAKjC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC,EAAE,EAC7D,MAAM,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC/C,MAAM,EAAE,MAAM,GACZ,aAAa,EAAE,CAUjB"}
@@ -1,3 +1,4 @@
1
+ import type { Mention } from './mentions.js';
1
2
  export type ChannelKind = 'channel' | 'direct';
2
3
  export interface Channel {
3
4
  id: string;
@@ -27,11 +28,17 @@ export interface Message {
27
28
  ts: number;
28
29
  editedAt?: number;
29
30
  deleted: boolean;
31
+ /** A notice the app wrote (someone joined or left a chat), not something a person typed. */
32
+ system?: boolean;
33
+ /** A meeting card: the scheduled meeting this message announces. */
34
+ meetingId?: string;
30
35
  /** Id of the thread root this message answers. */
31
36
  replyTo?: string;
32
37
  /** Shared tab discussed by this root post. Replies use replyTo as usual. */
33
38
  tabId?: string;
34
39
  attachments: Attachment[];
40
+ /** People (or everyone) addressed with @, as ranges of `text`. Absent on plain messages. */
41
+ mentions?: Mention[];
35
42
  /** emoji -> user ids, derived from the reaction map. */
36
43
  reactions: Record<string, string[]>;
37
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../teams/model.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,eAAe,KAAK,CAAC;AAoBlC,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAUxE;AAED,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOzD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAGzD;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKpD;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAYlE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,EAAE,CAQ9D"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../teams/model.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,eAAe,KAAK,CAAC;AAoBlC,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAUxE;AAED,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOzD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAGzD;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKpD;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAYlE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,EAAE,CAQ9D"}
@@ -0,0 +1,21 @@
1
+ import type { ActivityItem } from './activity.js';
2
+ import type { PresenceStatus } from './presence.js';
3
+ import type { StorageLike } from './store.js';
4
+ /** `all`: every kind of activity. `mentions`: only when you are mentioned. `off`: nothing. */
5
+ export type NotificationLevel = 'all' | 'mentions' | 'off';
6
+ export interface NotificationSettings {
7
+ level: NotificationLevel;
8
+ sound: boolean;
9
+ }
10
+ export declare const NOTIFICATION_LEVELS: readonly NotificationLevel[];
11
+ export declare const DEFAULT_NOTIFICATION_SETTINGS: NotificationSettings;
12
+ export declare const isNotificationLevel: (value: unknown) => value is NotificationLevel;
13
+ /** Whether `item` is announced to a person with these settings and this (effective) status. */
14
+ export declare function shouldNotify(item: Pick<ActivityItem, 'kind' | 'read'>, settings: NotificationSettings, status: PresenceStatus): boolean;
15
+ export interface NotificationSettingsStore {
16
+ get: () => NotificationSettings;
17
+ /** Returns whether anything changed. Unknown values are ignored. */
18
+ set: (next: Partial<NotificationSettings>) => boolean;
19
+ }
20
+ export declare function createNotificationSettings(storage: StorageLike | undefined, key: string): NotificationSettingsStore;
21
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../teams/notifications.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,8FAA8F;AAC9F,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAA+B,CAAC;AAC5F,eAAO,MAAM,6BAA6B,EAAE,oBAAoD,CAAC;AAEjG,eAAO,MAAM,mBAAmB,UAAW,OAAO,KAAG,KAAK,IAAI,iBACL,CAAC;AAE1D,+FAA+F;AAC/F,wBAAgB,YAAY,CAC3B,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,EACzC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,cAAc,GACpB,OAAO,CAIT;AAED,MAAM,WAAW,yBAAyB;IACzC,GAAG,EAAE,MAAM,oBAAoB,CAAC;IAChC,oEAAoE;IACpE,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,OAAO,CAAC;CACtD;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,GACT,yBAAyB,CA8B3B"}
@@ -0,0 +1,18 @@
1
+ import type { Meeting } from './meetings.js';
2
+ export declare const MAX_RECURRENCE_COUNT = 999;
3
+ type Series = Pick<Meeting, 'start' | 'end' | 'zone' | 'repeat' | 'until' | 'count'>;
4
+ export interface SeriesSlot {
5
+ /** 0 for the first occurrence. */
6
+ index: number;
7
+ start: number;
8
+ }
9
+ /** The start of the `index`-th occurrence, ignoring the end of the series. */
10
+ export declare function seriesStart(meeting: Series, index: number): number;
11
+ /** Whether the series still has an occurrence at this index and start. */
12
+ export declare function withinSeries(meeting: Series, index: number, start: number): boolean;
13
+ /** Series occurrences that overlap `[from, to)`, in start order, at most `limit`. */
14
+ export declare function seriesBetween(meeting: Series, from: number, to: number, limit?: number): SeriesSlot[];
15
+ /** The index of the occurrence that starts exactly at `start`, or null when there is none. */
16
+ export declare function seriesIndexOf(meeting: Series, start: number): number | null;
17
+ export {};
18
+ //# sourceMappingURL=recurrence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recurrence.d.ts","sourceRoot":"","sources":["../../teams/recurrence.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,UAAU;IAC1B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAID,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlE;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKnF;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAC5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,SAAM,GACT,UAAU,EAAE,CAmBd;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM3E"}
@@ -0,0 +1,12 @@
1
+ import * as Y from 'yjs';
2
+ import { type ChatMember } from './chats.js';
3
+ export interface RosterEntry extends ChatMember {
4
+ lastSeen: number;
5
+ }
6
+ export interface Roster {
7
+ /** Add yourself, or refresh your name and last-seen time. Cheap: writes only when needed. */
8
+ register: () => void;
9
+ list: () => RosterEntry[];
10
+ }
11
+ export declare function createRoster(doc: Y.Doc, user: ChatMember, now?: () => number): Roster;
12
+ //# sourceMappingURL=roster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../../teams/roster.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,SAAS,CAAC;AAMxD,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC9C,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACtB,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,WAAW,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,MAAM,CA4B/F"}
@@ -10,18 +10,39 @@ export interface TeamsServerConfig {
10
10
  iceTransportPolicy?: 'all' | 'relay';
11
11
  /** Bearer token sent as `?token=` on both sockets. Treat it as a secret. */
12
12
  token?: string;
13
+ /**
14
+ * Signed session from the server's `POST /auth/session` (see `requestSession`), sent as
15
+ * `?session=` on both sockets. The server takes the user id from it, not from the client's claim.
16
+ * Short-lived and secret: never persist it with the settings.
17
+ */
18
+ sessionToken?: string;
13
19
  }
14
20
  export interface ServerConfigResult {
15
21
  config: TeamsServerConfig;
16
22
  /** Human-readable problems; the offending field is left out of `config`. */
17
23
  issues: string[];
24
+ /**
25
+ * True when the input came from a URL or fragment, which anyone can craft in a link: a UI should
26
+ * ask the user to confirm before connecting (it can carry a token to an attacker's server).
27
+ */
28
+ untrusted?: boolean;
29
+ }
30
+ export interface ParseServerConfigOptions {
31
+ /**
32
+ * Protocol of the page hosting the workspace (`https:`). Defaults to `location.protocol` when a
33
+ * `location` exists. On an `https:` page only `wss://` endpoints are accepted (loopback hosts
34
+ * excepted), so a token is never sent in clear text.
35
+ */
36
+ pageProtocol?: string;
37
+ /** Where the input came from; `url` and `fragment` mark the result `untrusted`. */
38
+ source?: 'settings' | 'storage' | 'file' | 'url' | 'fragment';
18
39
  }
19
40
  /** Public STUN only: enough on open networks, never enough behind symmetric NAT (add TURN). */
20
41
  export declare const DEFAULT_ICE_SERVERS: readonly IceServer[];
21
42
  /** Validate untrusted server settings into a usable config plus a list of issues. */
22
- export declare function parseServerConfig(input: unknown): ServerConfigResult;
43
+ export declare function parseServerConfig(input: unknown, options?: ParseServerConfigOptions): ServerConfigResult;
23
44
  /** `base/room?token=...` for a sync or signaling endpoint. The room is URL-encoded. */
24
- export declare function endpointUrl(base: string, roomId: string, token?: string): string;
45
+ export declare function endpointUrl(base: string, roomId: string, token?: string, params?: Record<string, string>): string;
25
46
  /** The local-only config: no server, same-browser tabs. */
26
47
  export declare function localServerConfig(): TeamsServerConfig;
27
48
  //# sourceMappingURL=server-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../teams/server-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACrC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,4EAA4E;IAC5E,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAA+C,CAAC;AAuCpG,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CA4BpE;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,IAAI,iBAAiB,CAErD"}
1
+ {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../teams/server-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACrC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,4EAA4E;IAC5E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;CAC9D;AAED,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAA+C,CAAC;AAkDpG,qFAAqF;AACrF,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,wBAA6B,GACpC,kBAAkB,CAsCpB;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,MAAM,CAMR;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,IAAI,iBAAiB,CAErD"}
@@ -0,0 +1,19 @@
1
+ import type { TeamsServerConfig } from './server-config.js';
2
+ export interface TeamsSession {
3
+ /** Pass as `config.sessionToken`. */
4
+ token: string;
5
+ /** The id the server authenticated: use it as the workspace user id. */
6
+ userId: string;
7
+ /** Epoch milliseconds; request a new session before then. */
8
+ expiresAt: number;
9
+ }
10
+ export interface RequestSessionOptions {
11
+ signal?: AbortSignal;
12
+ fetch?: typeof fetch;
13
+ }
14
+ /** Ask the server of `config` for a session. Rejects with a generic message on any refusal. */
15
+ export declare function requestTeamsSession(config: TeamsServerConfig, credentials: {
16
+ userId: string;
17
+ credential?: string;
18
+ }, options?: RequestSessionOptions): Promise<TeamsSession>;
19
+ //# sourceMappingURL=server-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-session.d.ts","sourceRoot":"","sources":["../../teams/server-session.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC5B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACrB;AAED,+FAA+F;AAC/F,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,GAAE,qBAA0B,GACjC,OAAO,CAAC,YAAY,CAAC,CA4BvB"}
@@ -0,0 +1,83 @@
1
+ import * as Y from 'yjs';
2
+ import type { BroadcastChannelConstructor } from '../collab/broadcast-transport.js';
3
+ import type { Transport } from '../collab/provider.js';
4
+ import { type CollabSession } from '../collab/session.js';
5
+ import type { WebSocketConstructor } from '../collab/websocket-transport.js';
6
+ import { type TeamsServerConfig } from './server-config.js';
7
+ export type SharedChatRole = 'user' | 'assistant';
8
+ export interface SharedChatMessage {
9
+ id: string;
10
+ role: SharedChatRole;
11
+ content: string;
12
+ authorId: string;
13
+ authorName: string;
14
+ ts: number;
15
+ /** The asker's client is still writing this reply. */
16
+ streaming: boolean;
17
+ /** The host's own fields (attached file names, proposed actions, versions). JSON only; re-validate it. */
18
+ data: Record<string, unknown>;
19
+ }
20
+ export type SharedChatInput = Omit<SharedChatMessage, 'authorId' | 'authorName' | 'ts'> & Partial<Pick<SharedChatMessage, 'authorId' | 'authorName' | 'ts'>>;
21
+ /** What a person in the chat is doing right now. */
22
+ export type SharedChatActivity = 'idle' | 'typing' | 'asking';
23
+ export interface SharedChatPerson {
24
+ clientId: number;
25
+ name: string;
26
+ color: string;
27
+ activity: SharedChatActivity;
28
+ }
29
+ export declare const MAX_SHARED_CHAT_CHARS = 200000;
30
+ export declare const MAX_SHARED_CHAT_DATA_CHARS = 1000000;
31
+ export declare const MAX_SHARED_CHAT_TITLE_CHARS = 120;
32
+ /** A new, unguessable room id: whoever holds it can join, so it carries 128 random bits. */
33
+ export declare function sharedChatRoomId(): string;
34
+ /** True for a room id made by {@link sharedChatRoomId}. */
35
+ export declare const isSharedChatRoomId: (value: unknown) => value is string;
36
+ export interface SharedChatStore {
37
+ title: () => string;
38
+ setTitle: (title: string) => void;
39
+ /** The messages in order, each re-validated. */
40
+ messages: () => SharedChatMessage[];
41
+ /** Adds a message, or replaces the one with its id. Unchanged messages are not written again. */
42
+ put: (message: SharedChatInput) => void;
43
+ /** Removes a message and everything after it, as editing and resending an earlier request does. */
44
+ truncateFrom: (id: string) => void;
45
+ /** Fires after any change, local or remote. */
46
+ observe: (listener: () => void) => () => void;
47
+ }
48
+ export declare function createSharedChatStore(doc: Y.Doc, user: {
49
+ id: string;
50
+ name: string;
51
+ }): SharedChatStore;
52
+ export interface SharedChatOptions {
53
+ roomId: string;
54
+ user: {
55
+ id?: string;
56
+ name: string;
57
+ color?: string;
58
+ };
59
+ config?: TeamsServerConfig;
60
+ /** Use this transport instead of the one the config selects (tests, custom hosts). */
61
+ transport?: Transport;
62
+ doc?: Y.Doc;
63
+ WebSocket?: WebSocketConstructor;
64
+ BroadcastChannel?: BroadcastChannelConstructor;
65
+ }
66
+ export interface SharedChat {
67
+ readonly roomId: string;
68
+ readonly user: {
69
+ id: string;
70
+ name: string;
71
+ };
72
+ readonly session: CollabSession<{
73
+ activity?: SharedChatActivity;
74
+ }>;
75
+ readonly store: SharedChatStore;
76
+ /** The other people in the chat now. */
77
+ people: () => SharedChatPerson[];
78
+ onPeople: (listener: (people: SharedChatPerson[]) => void) => () => void;
79
+ setActivity: (activity: SharedChatActivity) => void;
80
+ destroy: () => void;
81
+ }
82
+ export declare function createSharedChat(options: SharedChatOptions): SharedChat;
83
+ //# sourceMappingURL=shared-chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-chat.d.ts","sourceRoot":"","sources":["../../teams/shared-chat.ts"],"names":[],"mappings":"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"}