@derive-to/artifacts 0.0.0-stage → 0.6.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 (1091) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +198 -2
  3. package/dist/host/bridge.d.ts +38 -0
  4. package/dist/host/bridge.d.ts.map +1 -0
  5. package/dist/host/bridge.js +86 -0
  6. package/dist/host/bridge.js.map +1 -0
  7. package/dist/host/client.d.ts +152 -0
  8. package/dist/host/client.d.ts.map +1 -0
  9. package/dist/host/client.js +186 -0
  10. package/dist/host/client.js.map +1 -0
  11. package/dist/host/emitter.d.ts +7 -0
  12. package/dist/host/emitter.d.ts.map +1 -0
  13. package/dist/host/emitter.js +18 -0
  14. package/dist/host/emitter.js.map +1 -0
  15. package/dist/host/index.d.ts +7 -0
  16. package/dist/host/index.d.ts.map +1 -0
  17. package/dist/host/index.js +5 -0
  18. package/dist/host/index.js.map +1 -0
  19. package/dist/host/live.d.ts +18 -0
  20. package/dist/host/live.d.ts.map +1 -0
  21. package/dist/host/live.js +32 -0
  22. package/dist/host/live.js.map +1 -0
  23. package/dist/host/print.d.ts +3 -0
  24. package/dist/host/print.d.ts.map +1 -0
  25. package/dist/host/print.js +57 -0
  26. package/dist/host/print.js.map +1 -0
  27. package/dist/host/sse.d.ts +11 -0
  28. package/dist/host/sse.d.ts.map +1 -0
  29. package/dist/host/sse.js +57 -0
  30. package/dist/host/sse.js.map +1 -0
  31. package/dist/host/view.d.ts +60 -0
  32. package/dist/host/view.d.ts.map +1 -0
  33. package/dist/host/view.js +218 -0
  34. package/dist/host/view.js.map +1 -0
  35. package/dist/protocol/access.d.ts +39 -0
  36. package/dist/protocol/access.d.ts.map +1 -0
  37. package/dist/protocol/access.js +30 -0
  38. package/dist/protocol/access.js.map +1 -0
  39. package/dist/protocol/anchors.d.ts +61 -0
  40. package/dist/protocol/anchors.d.ts.map +1 -0
  41. package/dist/protocol/anchors.js +41 -0
  42. package/dist/protocol/anchors.js.map +1 -0
  43. package/dist/protocol/collection.d.ts +33 -0
  44. package/dist/protocol/collection.d.ts.map +1 -0
  45. package/dist/protocol/collection.js +168 -0
  46. package/dist/protocol/collection.js.map +1 -0
  47. package/dist/protocol/define.d.ts +9 -0
  48. package/dist/protocol/define.d.ts.map +1 -0
  49. package/dist/protocol/define.js +2 -0
  50. package/dist/protocol/define.js.map +1 -0
  51. package/dist/protocol/errors.d.ts +55 -0
  52. package/dist/protocol/errors.d.ts.map +1 -0
  53. package/dist/protocol/errors.js +54 -0
  54. package/dist/protocol/errors.js.map +1 -0
  55. package/dist/protocol/extension.d.ts +44 -0
  56. package/dist/protocol/extension.d.ts.map +1 -0
  57. package/dist/protocol/extension.js +37 -0
  58. package/dist/protocol/extension.js.map +1 -0
  59. package/dist/protocol/http.d.ts +195 -0
  60. package/dist/protocol/http.d.ts.map +1 -0
  61. package/dist/protocol/http.js +72 -0
  62. package/dist/protocol/http.js.map +1 -0
  63. package/dist/protocol/index.d.ts +19 -0
  64. package/dist/protocol/index.d.ts.map +1 -0
  65. package/dist/protocol/index.js +19 -0
  66. package/dist/protocol/index.js.map +1 -0
  67. package/dist/protocol/inputs.d.ts +62 -0
  68. package/dist/protocol/inputs.d.ts.map +1 -0
  69. package/dist/protocol/inputs.js +51 -0
  70. package/dist/protocol/inputs.js.map +1 -0
  71. package/dist/protocol/layout.d.ts +33 -0
  72. package/dist/protocol/layout.d.ts.map +1 -0
  73. package/dist/protocol/layout.js +45 -0
  74. package/dist/protocol/layout.js.map +1 -0
  75. package/dist/protocol/mentions.d.ts +16 -0
  76. package/dist/protocol/mentions.d.ts.map +1 -0
  77. package/dist/protocol/mentions.js +35 -0
  78. package/dist/protocol/mentions.js.map +1 -0
  79. package/dist/protocol/methods.d.ts +146 -0
  80. package/dist/protocol/methods.d.ts.map +1 -0
  81. package/dist/protocol/methods.js +57 -0
  82. package/dist/protocol/methods.js.map +1 -0
  83. package/dist/protocol/presentation.d.ts +9 -0
  84. package/dist/protocol/presentation.d.ts.map +1 -0
  85. package/dist/protocol/presentation.js +7 -0
  86. package/dist/protocol/presentation.js.map +1 -0
  87. package/dist/protocol/quote-match.d.ts +20 -0
  88. package/dist/protocol/quote-match.d.ts.map +1 -0
  89. package/dist/protocol/quote-match.js +33 -0
  90. package/dist/protocol/quote-match.js.map +1 -0
  91. package/dist/protocol/sharing.d.ts +133 -0
  92. package/dist/protocol/sharing.d.ts.map +1 -0
  93. package/dist/protocol/sharing.js +67 -0
  94. package/dist/protocol/sharing.js.map +1 -0
  95. package/dist/protocol/slot-map.d.ts +4 -0
  96. package/dist/protocol/slot-map.d.ts.map +1 -0
  97. package/dist/protocol/slot-map.js +10 -0
  98. package/dist/protocol/slot-map.js.map +1 -0
  99. package/dist/protocol/source-anchors.d.ts +101 -0
  100. package/dist/protocol/source-anchors.d.ts.map +1 -0
  101. package/dist/protocol/source-anchors.js +250 -0
  102. package/dist/protocol/source-anchors.js.map +1 -0
  103. package/dist/protocol/source-assets.d.ts +15 -0
  104. package/dist/protocol/source-assets.d.ts.map +1 -0
  105. package/dist/protocol/source-assets.js +66 -0
  106. package/dist/protocol/source-assets.js.map +1 -0
  107. package/dist/protocol/source-cache.d.ts +23 -0
  108. package/dist/protocol/source-cache.d.ts.map +1 -0
  109. package/dist/protocol/source-cache.js +52 -0
  110. package/dist/protocol/source-cache.js.map +1 -0
  111. package/dist/protocol/source-copy-dom.d.ts +11 -0
  112. package/dist/protocol/source-copy-dom.d.ts.map +1 -0
  113. package/dist/protocol/source-copy-dom.js +103 -0
  114. package/dist/protocol/source-copy-dom.js.map +1 -0
  115. package/dist/protocol/source-copy-identities.d.ts +19 -0
  116. package/dist/protocol/source-copy-identities.d.ts.map +1 -0
  117. package/dist/protocol/source-copy-identities.js +119 -0
  118. package/dist/protocol/source-copy-identities.js.map +1 -0
  119. package/dist/protocol/source-deck-elements.d.ts +30 -0
  120. package/dist/protocol/source-deck-elements.d.ts.map +1 -0
  121. package/dist/protocol/source-deck-elements.js +67 -0
  122. package/dist/protocol/source-deck-elements.js.map +1 -0
  123. package/dist/protocol/source-deck-ops.d.ts +18 -0
  124. package/dist/protocol/source-deck-ops.d.ts.map +1 -0
  125. package/dist/protocol/source-deck-ops.js +154 -0
  126. package/dist/protocol/source-deck-ops.js.map +1 -0
  127. package/dist/protocol/source-deck.d.ts +20 -0
  128. package/dist/protocol/source-deck.d.ts.map +1 -0
  129. package/dist/protocol/source-deck.js +103 -0
  130. package/dist/protocol/source-deck.js.map +1 -0
  131. package/dist/protocol/source-edits.d.ts +21 -0
  132. package/dist/protocol/source-edits.d.ts.map +1 -0
  133. package/dist/protocol/source-edits.js +126 -0
  134. package/dist/protocol/source-edits.js.map +1 -0
  135. package/dist/protocol/source-element-edits.d.ts +24 -0
  136. package/dist/protocol/source-element-edits.d.ts.map +1 -0
  137. package/dist/protocol/source-element-edits.js +93 -0
  138. package/dist/protocol/source-element-edits.js.map +1 -0
  139. package/dist/protocol/source-element-match.d.ts +4 -0
  140. package/dist/protocol/source-element-match.d.ts.map +1 -0
  141. package/dist/protocol/source-element-match.js +40 -0
  142. package/dist/protocol/source-element-match.js.map +1 -0
  143. package/dist/protocol/source-element-neighbors.d.ts +8 -0
  144. package/dist/protocol/source-element-neighbors.d.ts.map +1 -0
  145. package/dist/protocol/source-element-neighbors.js +39 -0
  146. package/dist/protocol/source-element-neighbors.js.map +1 -0
  147. package/dist/protocol/source-element-properties.d.ts +25 -0
  148. package/dist/protocol/source-element-properties.d.ts.map +1 -0
  149. package/dist/protocol/source-element-properties.js +71 -0
  150. package/dist/protocol/source-element-properties.js.map +1 -0
  151. package/dist/protocol/source-element-scan.d.ts +4 -0
  152. package/dist/protocol/source-element-scan.d.ts.map +1 -0
  153. package/dist/protocol/source-element-scan.js +181 -0
  154. package/dist/protocol/source-element-scan.js.map +1 -0
  155. package/dist/protocol/source-element-score.d.ts +12 -0
  156. package/dist/protocol/source-element-score.d.ts.map +1 -0
  157. package/dist/protocol/source-element-score.js +82 -0
  158. package/dist/protocol/source-element-score.js.map +1 -0
  159. package/dist/protocol/source-element-selector.d.ts +19 -0
  160. package/dist/protocol/source-element-selector.d.ts.map +1 -0
  161. package/dist/protocol/source-element-selector.js +115 -0
  162. package/dist/protocol/source-element-selector.js.map +1 -0
  163. package/dist/protocol/source-element-types.d.ts +79 -0
  164. package/dist/protocol/source-element-types.d.ts.map +1 -0
  165. package/dist/protocol/source-element-types.js +2 -0
  166. package/dist/protocol/source-element-types.js.map +1 -0
  167. package/dist/protocol/source-elements.d.ts +7 -0
  168. package/dist/protocol/source-elements.d.ts.map +1 -0
  169. package/dist/protocol/source-elements.js +6 -0
  170. package/dist/protocol/source-elements.js.map +1 -0
  171. package/dist/protocol/source-entities.d.ts +17 -0
  172. package/dist/protocol/source-entities.d.ts.map +1 -0
  173. package/dist/protocol/source-entities.js +45 -0
  174. package/dist/protocol/source-entities.js.map +1 -0
  175. package/dist/protocol/source-hash.d.ts +4 -0
  176. package/dist/protocol/source-hash.d.ts.map +1 -0
  177. package/dist/protocol/source-hash.js +5 -0
  178. package/dist/protocol/source-hash.js.map +1 -0
  179. package/dist/protocol/source-head.d.ts +4 -0
  180. package/dist/protocol/source-head.d.ts.map +1 -0
  181. package/dist/protocol/source-head.js +79 -0
  182. package/dist/protocol/source-head.js.map +1 -0
  183. package/dist/protocol/source-html-attributes.d.ts +20 -0
  184. package/dist/protocol/source-html-attributes.d.ts.map +1 -0
  185. package/dist/protocol/source-html-attributes.js +89 -0
  186. package/dist/protocol/source-html-attributes.js.map +1 -0
  187. package/dist/protocol/source-html-elements.d.ts +5 -0
  188. package/dist/protocol/source-html-elements.d.ts.map +1 -0
  189. package/dist/protocol/source-html-elements.js +144 -0
  190. package/dist/protocol/source-html-elements.js.map +1 -0
  191. package/dist/protocol/source-html.d.ts +51 -0
  192. package/dist/protocol/source-html.d.ts.map +1 -0
  193. package/dist/protocol/source-html.js +167 -0
  194. package/dist/protocol/source-html.js.map +1 -0
  195. package/dist/protocol/source-layout-limits.d.ts +21 -0
  196. package/dist/protocol/source-layout-limits.d.ts.map +1 -0
  197. package/dist/protocol/source-layout-limits.js +20 -0
  198. package/dist/protocol/source-layout-limits.js.map +1 -0
  199. package/dist/protocol/source-layout.d.ts +29 -0
  200. package/dist/protocol/source-layout.d.ts.map +1 -0
  201. package/dist/protocol/source-layout.js +149 -0
  202. package/dist/protocol/source-layout.js.map +1 -0
  203. package/dist/protocol/source-markdown-blocks.d.ts +4 -0
  204. package/dist/protocol/source-markdown-blocks.d.ts.map +1 -0
  205. package/dist/protocol/source-markdown-blocks.js +175 -0
  206. package/dist/protocol/source-markdown-blocks.js.map +1 -0
  207. package/dist/protocol/source-markdown-history.d.ts +26 -0
  208. package/dist/protocol/source-markdown-history.d.ts.map +1 -0
  209. package/dist/protocol/source-markdown-history.js +133 -0
  210. package/dist/protocol/source-markdown-history.js.map +1 -0
  211. package/dist/protocol/source-markdown-inline.d.ts +20 -0
  212. package/dist/protocol/source-markdown-inline.d.ts.map +1 -0
  213. package/dist/protocol/source-markdown-inline.js +155 -0
  214. package/dist/protocol/source-markdown-inline.js.map +1 -0
  215. package/dist/protocol/source-markdown-model.d.ts +49 -0
  216. package/dist/protocol/source-markdown-model.d.ts.map +1 -0
  217. package/dist/protocol/source-markdown-model.js +28 -0
  218. package/dist/protocol/source-markdown-model.js.map +1 -0
  219. package/dist/protocol/source-markdown-op-align.d.ts +5 -0
  220. package/dist/protocol/source-markdown-op-align.d.ts.map +1 -0
  221. package/dist/protocol/source-markdown-op-align.js +49 -0
  222. package/dist/protocol/source-markdown-op-align.js.map +1 -0
  223. package/dist/protocol/source-markdown-op-blocks.d.ts +4 -0
  224. package/dist/protocol/source-markdown-op-blocks.d.ts.map +1 -0
  225. package/dist/protocol/source-markdown-op-blocks.js +198 -0
  226. package/dist/protocol/source-markdown-op-blocks.js.map +1 -0
  227. package/dist/protocol/source-markdown-op-context.d.ts +38 -0
  228. package/dist/protocol/source-markdown-op-context.d.ts.map +1 -0
  229. package/dist/protocol/source-markdown-op-context.js +44 -0
  230. package/dist/protocol/source-markdown-op-context.js.map +1 -0
  231. package/dist/protocol/source-markdown-op-inline.d.ts +8 -0
  232. package/dist/protocol/source-markdown-op-inline.d.ts.map +1 -0
  233. package/dist/protocol/source-markdown-op-inline.js +281 -0
  234. package/dist/protocol/source-markdown-op-inline.js.map +1 -0
  235. package/dist/protocol/source-markdown-op-reading.d.ts +7 -0
  236. package/dist/protocol/source-markdown-op-reading.d.ts.map +1 -0
  237. package/dist/protocol/source-markdown-op-reading.js +93 -0
  238. package/dist/protocol/source-markdown-op-reading.js.map +1 -0
  239. package/dist/protocol/source-markdown-ops.d.ts +13 -0
  240. package/dist/protocol/source-markdown-ops.d.ts.map +1 -0
  241. package/dist/protocol/source-markdown-ops.js +105 -0
  242. package/dist/protocol/source-markdown-ops.js.map +1 -0
  243. package/dist/protocol/source-markdown-projection.d.ts +30 -0
  244. package/dist/protocol/source-markdown-projection.d.ts.map +1 -0
  245. package/dist/protocol/source-markdown-projection.js +164 -0
  246. package/dist/protocol/source-markdown-projection.js.map +1 -0
  247. package/dist/protocol/source-markdown-types.d.ts +32 -0
  248. package/dist/protocol/source-markdown-types.d.ts.map +1 -0
  249. package/dist/protocol/source-markdown-types.js +2 -0
  250. package/dist/protocol/source-markdown-types.js.map +1 -0
  251. package/dist/protocol/source-markdown.d.ts +5 -0
  252. package/dist/protocol/source-markdown.d.ts.map +1 -0
  253. package/dist/protocol/source-markdown.js +9 -0
  254. package/dist/protocol/source-markdown.js.map +1 -0
  255. package/dist/protocol/source-op-apply.d.ts +14 -0
  256. package/dist/protocol/source-op-apply.d.ts.map +1 -0
  257. package/dist/protocol/source-op-apply.js +77 -0
  258. package/dist/protocol/source-op-apply.js.map +1 -0
  259. package/dist/protocol/source-op-context.d.ts +35 -0
  260. package/dist/protocol/source-op-context.d.ts.map +1 -0
  261. package/dist/protocol/source-op-context.js +97 -0
  262. package/dist/protocol/source-op-context.js.map +1 -0
  263. package/dist/protocol/source-op-hash.d.ts +36 -0
  264. package/dist/protocol/source-op-hash.d.ts.map +1 -0
  265. package/dist/protocol/source-op-hash.js +181 -0
  266. package/dist/protocol/source-op-hash.js.map +1 -0
  267. package/dist/protocol/source-op-history.d.ts +10 -0
  268. package/dist/protocol/source-op-history.d.ts.map +1 -0
  269. package/dist/protocol/source-op-history.js +85 -0
  270. package/dist/protocol/source-op-history.js.map +1 -0
  271. package/dist/protocol/source-op-index.d.ts +19 -0
  272. package/dist/protocol/source-op-index.d.ts.map +1 -0
  273. package/dist/protocol/source-op-index.js +53 -0
  274. package/dist/protocol/source-op-index.js.map +1 -0
  275. package/dist/protocol/source-op-parse.d.ts +11 -0
  276. package/dist/protocol/source-op-parse.d.ts.map +1 -0
  277. package/dist/protocol/source-op-parse.js +138 -0
  278. package/dist/protocol/source-op-parse.js.map +1 -0
  279. package/dist/protocol/source-op-preservation.d.ts +11 -0
  280. package/dist/protocol/source-op-preservation.d.ts.map +1 -0
  281. package/dist/protocol/source-op-preservation.js +47 -0
  282. package/dist/protocol/source-op-preservation.js.map +1 -0
  283. package/dist/protocol/source-op-render.d.ts +17 -0
  284. package/dist/protocol/source-op-render.d.ts.map +1 -0
  285. package/dist/protocol/source-op-render.js +116 -0
  286. package/dist/protocol/source-op-render.js.map +1 -0
  287. package/dist/protocol/source-op-types.d.ts +51 -0
  288. package/dist/protocol/source-op-types.d.ts.map +1 -0
  289. package/dist/protocol/source-op-types.js +2 -0
  290. package/dist/protocol/source-op-types.js.map +1 -0
  291. package/dist/protocol/source-quote-selector.d.ts +12 -0
  292. package/dist/protocol/source-quote-selector.d.ts.map +1 -0
  293. package/dist/protocol/source-quote-selector.js +29 -0
  294. package/dist/protocol/source-quote-selector.js.map +1 -0
  295. package/dist/protocol/source-ranges.d.ts +11 -0
  296. package/dist/protocol/source-ranges.d.ts.map +1 -0
  297. package/dist/protocol/source-ranges.js +37 -0
  298. package/dist/protocol/source-ranges.js.map +1 -0
  299. package/dist/protocol/source-read-html-navigation.d.ts +12 -0
  300. package/dist/protocol/source-read-html-navigation.d.ts.map +1 -0
  301. package/dist/protocol/source-read-html-navigation.js +76 -0
  302. package/dist/protocol/source-read-html-navigation.js.map +1 -0
  303. package/dist/protocol/source-read-html-tokens.d.ts +12 -0
  304. package/dist/protocol/source-read-html-tokens.d.ts.map +1 -0
  305. package/dist/protocol/source-read-html-tokens.js +58 -0
  306. package/dist/protocol/source-read-html-tokens.js.map +1 -0
  307. package/dist/protocol/source-read-landmarks.d.ts +24 -0
  308. package/dist/protocol/source-read-landmarks.d.ts.map +1 -0
  309. package/dist/protocol/source-read-landmarks.js +73 -0
  310. package/dist/protocol/source-read-landmarks.js.map +1 -0
  311. package/dist/protocol/source-read-markdown-blocks.d.ts +4 -0
  312. package/dist/protocol/source-read-markdown-blocks.d.ts.map +1 -0
  313. package/dist/protocol/source-read-markdown-blocks.js +87 -0
  314. package/dist/protocol/source-read-markdown-blocks.js.map +1 -0
  315. package/dist/protocol/source-read-markdown-inline.d.ts +4 -0
  316. package/dist/protocol/source-read-markdown-inline.d.ts.map +1 -0
  317. package/dist/protocol/source-read-markdown-inline.js +63 -0
  318. package/dist/protocol/source-read-markdown-inline.js.map +1 -0
  319. package/dist/protocol/source-read-markdown-state.d.ts +33 -0
  320. package/dist/protocol/source-read-markdown-state.d.ts.map +1 -0
  321. package/dist/protocol/source-read-markdown-state.js +79 -0
  322. package/dist/protocol/source-read-markdown-state.js.map +1 -0
  323. package/dist/protocol/source-read-markdown-tables.d.ts +4 -0
  324. package/dist/protocol/source-read-markdown-tables.d.ts.map +1 -0
  325. package/dist/protocol/source-read-markdown-tables.js +68 -0
  326. package/dist/protocol/source-read-markdown-tables.js.map +1 -0
  327. package/dist/protocol/source-read-markdown-text.d.ts +8 -0
  328. package/dist/protocol/source-read-markdown-text.d.ts.map +1 -0
  329. package/dist/protocol/source-read-markdown-text.js +42 -0
  330. package/dist/protocol/source-read-markdown-text.js.map +1 -0
  331. package/dist/protocol/source-read-markdown.d.ts +9 -0
  332. package/dist/protocol/source-read-markdown.d.ts.map +1 -0
  333. package/dist/protocol/source-read-markdown.js +106 -0
  334. package/dist/protocol/source-read-markdown.js.map +1 -0
  335. package/dist/protocol/source-read-spine.d.ts +33 -0
  336. package/dist/protocol/source-read-spine.d.ts.map +1 -0
  337. package/dist/protocol/source-read-spine.js +94 -0
  338. package/dist/protocol/source-read-spine.js.map +1 -0
  339. package/dist/protocol/source-reflow.d.ts +7 -0
  340. package/dist/protocol/source-reflow.d.ts.map +1 -0
  341. package/dist/protocol/source-reflow.js +127 -0
  342. package/dist/protocol/source-reflow.js.map +1 -0
  343. package/dist/protocol/source-stamp.d.ts +22 -0
  344. package/dist/protocol/source-stamp.d.ts.map +1 -0
  345. package/dist/protocol/source-stamp.js +52 -0
  346. package/dist/protocol/source-stamp.js.map +1 -0
  347. package/dist/protocol/source-stamped-sync.d.ts +11 -0
  348. package/dist/protocol/source-stamped-sync.d.ts.map +1 -0
  349. package/dist/protocol/source-stamped-sync.js +238 -0
  350. package/dist/protocol/source-stamped-sync.js.map +1 -0
  351. package/dist/protocol/source-structural-apply.d.ts +5 -0
  352. package/dist/protocol/source-structural-apply.d.ts.map +1 -0
  353. package/dist/protocol/source-structural-apply.js +59 -0
  354. package/dist/protocol/source-structural-apply.js.map +1 -0
  355. package/dist/protocol/source-structural-backfill-parts.d.ts +25 -0
  356. package/dist/protocol/source-structural-backfill-parts.d.ts.map +1 -0
  357. package/dist/protocol/source-structural-backfill-parts.js +85 -0
  358. package/dist/protocol/source-structural-backfill-parts.js.map +1 -0
  359. package/dist/protocol/source-structural-backfill-rules.d.ts +9 -0
  360. package/dist/protocol/source-structural-backfill-rules.d.ts.map +1 -0
  361. package/dist/protocol/source-structural-backfill-rules.js +94 -0
  362. package/dist/protocol/source-structural-backfill-rules.js.map +1 -0
  363. package/dist/protocol/source-structural-backfill.d.ts +7 -0
  364. package/dist/protocol/source-structural-backfill.d.ts.map +1 -0
  365. package/dist/protocol/source-structural-backfill.js +79 -0
  366. package/dist/protocol/source-structural-backfill.js.map +1 -0
  367. package/dist/protocol/source-structural-gap.d.ts +5 -0
  368. package/dist/protocol/source-structural-gap.d.ts.map +1 -0
  369. package/dist/protocol/source-structural-gap.js +21 -0
  370. package/dist/protocol/source-structural-gap.js.map +1 -0
  371. package/dist/protocol/source-structural-inspect.d.ts +5 -0
  372. package/dist/protocol/source-structural-inspect.d.ts.map +1 -0
  373. package/dist/protocol/source-structural-inspect.js +137 -0
  374. package/dist/protocol/source-structural-inspect.js.map +1 -0
  375. package/dist/protocol/source-structural-order.d.ts +22 -0
  376. package/dist/protocol/source-structural-order.d.ts.map +1 -0
  377. package/dist/protocol/source-structural-order.js +128 -0
  378. package/dist/protocol/source-structural-order.js.map +1 -0
  379. package/dist/protocol/source-structural-size.d.ts +14 -0
  380. package/dist/protocol/source-structural-size.d.ts.map +1 -0
  381. package/dist/protocol/source-structural-size.js +99 -0
  382. package/dist/protocol/source-structural-size.js.map +1 -0
  383. package/dist/protocol/source-structural-spacing.d.ts +10 -0
  384. package/dist/protocol/source-structural-spacing.d.ts.map +1 -0
  385. package/dist/protocol/source-structural-spacing.js +55 -0
  386. package/dist/protocol/source-structural-spacing.js.map +1 -0
  387. package/dist/protocol/source-structural-targets.d.ts +8 -0
  388. package/dist/protocol/source-structural-targets.d.ts.map +1 -0
  389. package/dist/protocol/source-structural-targets.js +55 -0
  390. package/dist/protocol/source-structural-targets.js.map +1 -0
  391. package/dist/protocol/source-structural-types.d.ts +120 -0
  392. package/dist/protocol/source-structural-types.d.ts.map +1 -0
  393. package/dist/protocol/source-structural-types.js +3 -0
  394. package/dist/protocol/source-structural-types.js.map +1 -0
  395. package/dist/protocol/source-style.d.ts +15 -0
  396. package/dist/protocol/source-style.d.ts.map +1 -0
  397. package/dist/protocol/source-style.js +130 -0
  398. package/dist/protocol/source-style.js.map +1 -0
  399. package/dist/protocol/source-tags.d.ts +6 -0
  400. package/dist/protocol/source-tags.d.ts.map +1 -0
  401. package/dist/protocol/source-tags.js +5 -0
  402. package/dist/protocol/source-tags.js.map +1 -0
  403. package/dist/protocol/source-text-index.d.ts +22 -0
  404. package/dist/protocol/source-text-index.d.ts.map +1 -0
  405. package/dist/protocol/source-text-index.js +95 -0
  406. package/dist/protocol/source-text-index.js.map +1 -0
  407. package/dist/protocol/source-text-range.d.ts +9 -0
  408. package/dist/protocol/source-text-range.d.ts.map +1 -0
  409. package/dist/protocol/source-text-range.js +55 -0
  410. package/dist/protocol/source-text-range.js.map +1 -0
  411. package/dist/protocol/source-text-segments.d.ts +27 -0
  412. package/dist/protocol/source-text-segments.d.ts.map +1 -0
  413. package/dist/protocol/source-text-segments.js +65 -0
  414. package/dist/protocol/source-text-segments.js.map +1 -0
  415. package/dist/protocol/source-text.d.ts +9 -0
  416. package/dist/protocol/source-text.d.ts.map +1 -0
  417. package/dist/protocol/source-text.js +72 -0
  418. package/dist/protocol/source-text.js.map +1 -0
  419. package/dist/protocol/source-video-attributes.d.ts +5 -0
  420. package/dist/protocol/source-video-attributes.d.ts.map +1 -0
  421. package/dist/protocol/source-video-attributes.js +29 -0
  422. package/dist/protocol/source-video-attributes.js.map +1 -0
  423. package/dist/protocol/source-video-edits.d.ts +4 -0
  424. package/dist/protocol/source-video-edits.d.ts.map +1 -0
  425. package/dist/protocol/source-video-edits.js +85 -0
  426. package/dist/protocol/source-video-edits.js.map +1 -0
  427. package/dist/protocol/source-video-id.d.ts +4 -0
  428. package/dist/protocol/source-video-id.d.ts.map +1 -0
  429. package/dist/protocol/source-video-id.js +9 -0
  430. package/dist/protocol/source-video-id.js.map +1 -0
  431. package/dist/protocol/source-video.d.ts +38 -0
  432. package/dist/protocol/source-video.d.ts.map +1 -0
  433. package/dist/protocol/source-video.js +116 -0
  434. package/dist/protocol/source-video.js.map +1 -0
  435. package/dist/protocol/source.d.ts +47 -0
  436. package/dist/protocol/source.d.ts.map +1 -0
  437. package/dist/protocol/source.js +45 -0
  438. package/dist/protocol/source.js.map +1 -0
  439. package/dist/protocol/state-apply.d.ts +22 -0
  440. package/dist/protocol/state-apply.d.ts.map +1 -0
  441. package/dist/protocol/state-apply.js +13 -0
  442. package/dist/protocol/state-apply.js.map +1 -0
  443. package/dist/protocol/state-limits.d.ts +10 -0
  444. package/dist/protocol/state-limits.d.ts.map +1 -0
  445. package/dist/protocol/state-limits.js +11 -0
  446. package/dist/protocol/state-limits.js.map +1 -0
  447. package/dist/protocol/state.d.ts +60 -0
  448. package/dist/protocol/state.d.ts.map +1 -0
  449. package/dist/protocol/state.js +56 -0
  450. package/dist/protocol/state.js.map +1 -0
  451. package/dist/protocol/text.d.ts +9 -0
  452. package/dist/protocol/text.d.ts.map +1 -0
  453. package/dist/protocol/text.js +72 -0
  454. package/dist/protocol/text.js.map +1 -0
  455. package/dist/protocol/tools.d.ts +77 -0
  456. package/dist/protocol/tools.d.ts.map +1 -0
  457. package/dist/protocol/tools.js +25 -0
  458. package/dist/protocol/tools.js.map +1 -0
  459. package/dist/protocol/viewer.d.ts +21 -0
  460. package/dist/protocol/viewer.d.ts.map +1 -0
  461. package/dist/protocol/viewer.js +18 -0
  462. package/dist/protocol/viewer.js.map +1 -0
  463. package/dist/react/artifact-list.d.ts +17 -0
  464. package/dist/react/artifact-list.d.ts.map +1 -0
  465. package/dist/react/artifact-list.js +121 -0
  466. package/dist/react/artifact-list.js.map +1 -0
  467. package/dist/react/comment-body.d.ts +5 -0
  468. package/dist/react/comment-body.d.ts.map +1 -0
  469. package/dist/react/comment-body.js +14 -0
  470. package/dist/react/comment-body.js.map +1 -0
  471. package/dist/react/comment-input.d.ts +18 -0
  472. package/dist/react/comment-input.d.ts.map +1 -0
  473. package/dist/react/comment-input.js +74 -0
  474. package/dist/react/comment-input.js.map +1 -0
  475. package/dist/react/composer.d.ts +10 -0
  476. package/dist/react/composer.d.ts.map +1 -0
  477. package/dist/react/composer.js +42 -0
  478. package/dist/react/composer.js.map +1 -0
  479. package/dist/react/context.d.ts +57 -0
  480. package/dist/react/context.d.ts.map +1 -0
  481. package/dist/react/context.js +11 -0
  482. package/dist/react/context.js.map +1 -0
  483. package/dist/react/cursors.d.ts +3 -0
  484. package/dist/react/cursors.d.ts.map +1 -0
  485. package/dist/react/cursors.js +8 -0
  486. package/dist/react/cursors.js.map +1 -0
  487. package/dist/react/edit-controls.d.ts +4 -0
  488. package/dist/react/edit-controls.d.ts.map +1 -0
  489. package/dist/react/edit-controls.js +29 -0
  490. package/dist/react/edit-controls.js.map +1 -0
  491. package/dist/react/editing-actions.d.ts +44 -0
  492. package/dist/react/editing-actions.d.ts.map +1 -0
  493. package/dist/react/editing-actions.js +129 -0
  494. package/dist/react/editing-actions.js.map +1 -0
  495. package/dist/react/history.css +79 -0
  496. package/dist/react/index.d.ts +20 -0
  497. package/dist/react/index.d.ts.map +1 -0
  498. package/dist/react/index.js +19 -0
  499. package/dist/react/index.js.map +1 -0
  500. package/dist/react/labels.d.ts +124 -0
  501. package/dist/react/labels.d.ts.map +1 -0
  502. package/dist/react/labels.js +115 -0
  503. package/dist/react/labels.js.map +1 -0
  504. package/dist/react/layout-surface.d.ts +29 -0
  505. package/dist/react/layout-surface.d.ts.map +1 -0
  506. package/dist/react/layout-surface.js +111 -0
  507. package/dist/react/layout-surface.js.map +1 -0
  508. package/dist/react/mention-list.d.ts +12 -0
  509. package/dist/react/mention-list.d.ts.map +1 -0
  510. package/dist/react/mention-list.js +16 -0
  511. package/dist/react/mention-list.js.map +1 -0
  512. package/dist/react/native-stage.d.ts +8 -0
  513. package/dist/react/native-stage.d.ts.map +1 -0
  514. package/dist/react/native-stage.js +41 -0
  515. package/dist/react/native-stage.js.map +1 -0
  516. package/dist/react/overlays.css +43 -0
  517. package/dist/react/panel.css +488 -0
  518. package/dist/react/panel.d.ts +26 -0
  519. package/dist/react/panel.d.ts.map +1 -0
  520. package/dist/react/panel.js +101 -0
  521. package/dist/react/panel.js.map +1 -0
  522. package/dist/react/presence.d.ts +3 -0
  523. package/dist/react/presence.d.ts.map +1 -0
  524. package/dist/react/presence.js +23 -0
  525. package/dist/react/presence.js.map +1 -0
  526. package/dist/react/present-button.d.ts +3 -0
  527. package/dist/react/present-button.d.ts.map +1 -0
  528. package/dist/react/present-button.js +14 -0
  529. package/dist/react/present-button.js.map +1 -0
  530. package/dist/react/provider.d.ts +22 -0
  531. package/dist/react/provider.d.ts.map +1 -0
  532. package/dist/react/provider.js +163 -0
  533. package/dist/react/provider.js.map +1 -0
  534. package/dist/react/rail-layout.d.ts +10 -0
  535. package/dist/react/rail-layout.d.ts.map +1 -0
  536. package/dist/react/rail-layout.js +32 -0
  537. package/dist/react/rail-layout.js.map +1 -0
  538. package/dist/react/rail.d.ts +10 -0
  539. package/dist/react/rail.d.ts.map +1 -0
  540. package/dist/react/rail.js +38 -0
  541. package/dist/react/rail.js.map +1 -0
  542. package/dist/react/role-badge.d.ts +17 -0
  543. package/dist/react/role-badge.d.ts.map +1 -0
  544. package/dist/react/role-badge.js +26 -0
  545. package/dist/react/role-badge.js.map +1 -0
  546. package/dist/react/selection-button.d.ts +3 -0
  547. package/dist/react/selection-button.d.ts.map +1 -0
  548. package/dist/react/selection-button.js +14 -0
  549. package/dist/react/selection-button.js.map +1 -0
  550. package/dist/react/sharing-panel.d.ts +8 -0
  551. package/dist/react/sharing-panel.d.ts.map +1 -0
  552. package/dist/react/sharing-panel.js +105 -0
  553. package/dist/react/sharing-panel.js.map +1 -0
  554. package/dist/react/slide-navigator.css +164 -0
  555. package/dist/react/slide-navigator.d.ts +5 -0
  556. package/dist/react/slide-navigator.d.ts.map +1 -0
  557. package/dist/react/slide-navigator.js +120 -0
  558. package/dist/react/slide-navigator.js.map +1 -0
  559. package/dist/react/stage.css +84 -0
  560. package/dist/react/stage.d.ts +13 -0
  561. package/dist/react/stage.d.ts.map +1 -0
  562. package/dist/react/stage.js +176 -0
  563. package/dist/react/stage.js.map +1 -0
  564. package/dist/react/styles.css +374 -0
  565. package/dist/react/thread-card.d.ts +8 -0
  566. package/dist/react/thread-card.d.ts.map +1 -0
  567. package/dist/react/thread-card.js +75 -0
  568. package/dist/react/thread-card.js.map +1 -0
  569. package/dist/react/time.d.ts +7 -0
  570. package/dist/react/time.d.ts.map +1 -0
  571. package/dist/react/time.js +19 -0
  572. package/dist/react/time.js.map +1 -0
  573. package/dist/react/tokens.css +58 -0
  574. package/dist/react/use-actions.d.ts +27 -0
  575. package/dist/react/use-actions.d.ts.map +1 -0
  576. package/dist/react/use-actions.js +91 -0
  577. package/dist/react/use-actions.js.map +1 -0
  578. package/dist/react/use-editing.d.ts +28 -0
  579. package/dist/react/use-editing.d.ts.map +1 -0
  580. package/dist/react/use-editing.js +70 -0
  581. package/dist/react/use-editing.js.map +1 -0
  582. package/dist/react/use-latest.d.ts +4 -0
  583. package/dist/react/use-latest.d.ts.map +1 -0
  584. package/dist/react/use-latest.js +11 -0
  585. package/dist/react/use-latest.js.map +1 -0
  586. package/dist/react/use-live.d.ts +58 -0
  587. package/dist/react/use-live.d.ts.map +1 -0
  588. package/dist/react/use-live.js +42 -0
  589. package/dist/react/use-live.js.map +1 -0
  590. package/dist/react/use-mention-picker.d.ts +18 -0
  591. package/dist/react/use-mention-picker.d.ts.map +1 -0
  592. package/dist/react/use-mention-picker.js +66 -0
  593. package/dist/react/use-mention-picker.js.map +1 -0
  594. package/dist/react/use-presence-sender.d.ts +4 -0
  595. package/dist/react/use-presence-sender.d.ts.map +1 -0
  596. package/dist/react/use-presence-sender.js +27 -0
  597. package/dist/react/use-presence-sender.js.map +1 -0
  598. package/dist/react/use-presenting.d.ts +26 -0
  599. package/dist/react/use-presenting.d.ts.map +1 -0
  600. package/dist/react/use-presenting.js +118 -0
  601. package/dist/react/use-presenting.js.map +1 -0
  602. package/dist/react/use-rail-layout.d.ts +13 -0
  603. package/dist/react/use-rail-layout.d.ts.map +1 -0
  604. package/dist/react/use-rail-layout.js +38 -0
  605. package/dist/react/use-rail-layout.js.map +1 -0
  606. package/dist/react/use-sharing.d.ts +27 -0
  607. package/dist/react/use-sharing.d.ts.map +1 -0
  608. package/dist/react/use-sharing.js +93 -0
  609. package/dist/react/use-sharing.js.map +1 -0
  610. package/dist/react/version-history.d.ts +12 -0
  611. package/dist/react/version-history.d.ts.map +1 -0
  612. package/dist/react/version-history.js +81 -0
  613. package/dist/react/version-history.js.map +1 -0
  614. package/dist/runtime/anchoring.d.ts +17 -0
  615. package/dist/runtime/anchoring.d.ts.map +1 -0
  616. package/dist/runtime/anchoring.js +258 -0
  617. package/dist/runtime/anchoring.js.map +1 -0
  618. package/dist/runtime/assets.d.ts +6 -0
  619. package/dist/runtime/assets.js +3 -0
  620. package/dist/runtime/connection.d.ts +32 -0
  621. package/dist/runtime/connection.d.ts.map +1 -0
  622. package/dist/runtime/connection.js +27 -0
  623. package/dist/runtime/connection.js.map +1 -0
  624. package/dist/runtime/editing.d.ts +10 -0
  625. package/dist/runtime/editing.d.ts.map +1 -0
  626. package/dist/runtime/editing.js +170 -0
  627. package/dist/runtime/editing.js.map +1 -0
  628. package/dist/runtime/geometry.d.ts +4 -0
  629. package/dist/runtime/geometry.d.ts.map +1 -0
  630. package/dist/runtime/geometry.js +8 -0
  631. package/dist/runtime/geometry.js.map +1 -0
  632. package/dist/runtime/highlights.d.ts +2 -0
  633. package/dist/runtime/highlights.d.ts.map +1 -0
  634. package/dist/runtime/highlights.js +29 -0
  635. package/dist/runtime/highlights.js.map +1 -0
  636. package/dist/runtime/index.d.ts +6 -0
  637. package/dist/runtime/index.d.ts.map +1 -0
  638. package/dist/runtime/index.js +4 -0
  639. package/dist/runtime/index.js.map +1 -0
  640. package/dist/runtime/layout-handle.d.ts +33 -0
  641. package/dist/runtime/layout-handle.d.ts.map +1 -0
  642. package/dist/runtime/layout-handle.js +218 -0
  643. package/dist/runtime/layout-handle.js.map +1 -0
  644. package/dist/runtime/layout.d.ts +27 -0
  645. package/dist/runtime/layout.d.ts.map +1 -0
  646. package/dist/runtime/layout.js +290 -0
  647. package/dist/runtime/layout.js.map +1 -0
  648. package/dist/runtime/presence.d.ts +5 -0
  649. package/dist/runtime/presence.d.ts.map +1 -0
  650. package/dist/runtime/presence.js +26 -0
  651. package/dist/runtime/presence.js.map +1 -0
  652. package/dist/runtime/runtime.d.ts +31 -0
  653. package/dist/runtime/runtime.d.ts.map +1 -0
  654. package/dist/runtime/runtime.entry.d.ts +9 -0
  655. package/dist/runtime/runtime.entry.d.ts.map +1 -0
  656. package/dist/runtime/runtime.entry.js +6 -0
  657. package/dist/runtime/runtime.entry.js.map +1 -0
  658. package/dist/runtime/runtime.js +189 -0
  659. package/dist/runtime/runtime.js.map +1 -0
  660. package/dist/runtime/sandbox/relay.d.ts +2 -0
  661. package/dist/runtime/sandbox/relay.d.ts.map +1 -0
  662. package/dist/runtime/sandbox/relay.js +82 -0
  663. package/dist/runtime/sandbox/relay.js.map +1 -0
  664. package/dist/runtime/sandbox.entry.d.ts +2 -0
  665. package/dist/runtime/sandbox.entry.d.ts.map +1 -0
  666. package/dist/runtime/sandbox.entry.js +3 -0
  667. package/dist/runtime/sandbox.entry.js.map +1 -0
  668. package/dist/runtime/shared.d.ts +22 -0
  669. package/dist/runtime/shared.d.ts.map +1 -0
  670. package/dist/runtime/shared.js +118 -0
  671. package/dist/runtime/shared.js.map +1 -0
  672. package/dist/runtime/slides.d.ts +20 -0
  673. package/dist/runtime/slides.d.ts.map +1 -0
  674. package/dist/runtime/slides.js +143 -0
  675. package/dist/runtime/slides.js.map +1 -0
  676. package/dist/runtime/source-align.d.ts +12 -0
  677. package/dist/runtime/source-align.d.ts.map +1 -0
  678. package/dist/runtime/source-align.js +158 -0
  679. package/dist/runtime/source-align.js.map +1 -0
  680. package/dist/runtime/source-attributes.d.ts +34 -0
  681. package/dist/runtime/source-attributes.d.ts.map +1 -0
  682. package/dist/runtime/source-attributes.js +51 -0
  683. package/dist/runtime/source-attributes.js.map +1 -0
  684. package/dist/runtime/source-copy-origin.d.ts +5 -0
  685. package/dist/runtime/source-copy-origin.d.ts.map +1 -0
  686. package/dist/runtime/source-copy-origin.js +28 -0
  687. package/dist/runtime/source-copy-origin.js.map +1 -0
  688. package/dist/runtime/source-element-dom-resolve.d.ts +11 -0
  689. package/dist/runtime/source-element-dom-resolve.d.ts.map +1 -0
  690. package/dist/runtime/source-element-dom-resolve.js +104 -0
  691. package/dist/runtime/source-element-dom-resolve.js.map +1 -0
  692. package/dist/runtime/source-element-dom.d.ts +14 -0
  693. package/dist/runtime/source-element-dom.d.ts.map +1 -0
  694. package/dist/runtime/source-element-dom.js +75 -0
  695. package/dist/runtime/source-element-dom.js.map +1 -0
  696. package/dist/runtime/source-page.d.ts +32 -0
  697. package/dist/runtime/source-page.d.ts.map +1 -0
  698. package/dist/runtime/source-page.js +137 -0
  699. package/dist/runtime/source-page.js.map +1 -0
  700. package/dist/runtime/source-patch.d.ts +20 -0
  701. package/dist/runtime/source-patch.d.ts.map +1 -0
  702. package/dist/runtime/source-patch.js +94 -0
  703. package/dist/runtime/source-patch.js.map +1 -0
  704. package/dist/runtime/source-serialize.d.ts +12 -0
  705. package/dist/runtime/source-serialize.d.ts.map +1 -0
  706. package/dist/runtime/source-serialize.js +144 -0
  707. package/dist/runtime/source-serialize.js.map +1 -0
  708. package/dist/runtime/source-text-anchor.d.ts +5 -0
  709. package/dist/runtime/source-text-anchor.d.ts.map +1 -0
  710. package/dist/runtime/source-text-anchor.js +27 -0
  711. package/dist/runtime/source-text-anchor.js.map +1 -0
  712. package/dist/runtime/source-text-dom.d.ts +5 -0
  713. package/dist/runtime/source-text-dom.d.ts.map +1 -0
  714. package/dist/runtime/source-text-dom.js +53 -0
  715. package/dist/runtime/source-text-dom.js.map +1 -0
  716. package/dist/runtime/source-tokens.d.ts +84 -0
  717. package/dist/runtime/source-tokens.d.ts.map +1 -0
  718. package/dist/runtime/source-tokens.js +192 -0
  719. package/dist/runtime/source-tokens.js.map +1 -0
  720. package/dist/runtime/source-video-attributes.d.ts +5 -0
  721. package/dist/runtime/source-video-attributes.d.ts.map +1 -0
  722. package/dist/runtime/source-video-attributes.js +5 -0
  723. package/dist/runtime/source-video-attributes.js.map +1 -0
  724. package/dist/runtime/source-video-controller.d.ts +43 -0
  725. package/dist/runtime/source-video-controller.d.ts.map +1 -0
  726. package/dist/runtime/source-video-controller.js +190 -0
  727. package/dist/runtime/source-video-controller.js.map +1 -0
  728. package/dist/runtime/source-video-dom.d.ts +3 -0
  729. package/dist/runtime/source-video-dom.d.ts.map +1 -0
  730. package/dist/runtime/source-video-dom.js +14 -0
  731. package/dist/runtime/source-video-dom.js.map +1 -0
  732. package/dist/runtime/source.d.ts +14 -0
  733. package/dist/runtime/source.d.ts.map +1 -0
  734. package/dist/runtime/source.js +13 -0
  735. package/dist/runtime/source.js.map +1 -0
  736. package/dist/runtime/state-backend.d.ts +28 -0
  737. package/dist/runtime/state-backend.d.ts.map +1 -0
  738. package/dist/runtime/state-backend.js +86 -0
  739. package/dist/runtime/state-backend.js.map +1 -0
  740. package/dist/runtime/text-index.d.ts +11 -0
  741. package/dist/runtime/text-index.d.ts.map +1 -0
  742. package/dist/runtime/text-index.js +73 -0
  743. package/dist/runtime/text-index.js.map +1 -0
  744. package/dist/runtime/theme.d.ts +5 -0
  745. package/dist/runtime/theme.d.ts.map +1 -0
  746. package/dist/runtime/theme.js +30 -0
  747. package/dist/runtime/theme.js.map +1 -0
  748. package/dist/runtime/viewer.d.ts +5 -0
  749. package/dist/runtime/viewer.d.ts.map +1 -0
  750. package/dist/runtime/viewer.entry.d.ts +2 -0
  751. package/dist/runtime/viewer.entry.d.ts.map +1 -0
  752. package/dist/runtime/viewer.entry.js +3 -0
  753. package/dist/runtime/viewer.entry.js.map +1 -0
  754. package/dist/runtime/viewer.js +62 -0
  755. package/dist/runtime/viewer.js.map +1 -0
  756. package/dist/runtime.global.js +142 -0
  757. package/dist/sandbox.global.js +1 -0
  758. package/dist/server/adapters/activity.d.ts +4 -0
  759. package/dist/server/adapters/activity.d.ts.map +1 -0
  760. package/dist/server/adapters/activity.js +25 -0
  761. package/dist/server/adapters/activity.js.map +1 -0
  762. package/dist/server/adapters/memory-bus.d.ts +6 -0
  763. package/dist/server/adapters/memory-bus.d.ts.map +1 -0
  764. package/dist/server/adapters/memory-bus.js +26 -0
  765. package/dist/server/adapters/memory-bus.js.map +1 -0
  766. package/dist/server/adapters/memory-store.d.ts +4 -0
  767. package/dist/server/adapters/memory-store.d.ts.map +1 -0
  768. package/dist/server/adapters/memory-store.js +125 -0
  769. package/dist/server/adapters/memory-store.js.map +1 -0
  770. package/dist/server/adapters/memory.d.ts +8 -0
  771. package/dist/server/adapters/memory.d.ts.map +1 -0
  772. package/dist/server/adapters/memory.js +23 -0
  773. package/dist/server/adapters/memory.js.map +1 -0
  774. package/dist/server/adapters/postgres/blobs.d.ts +6 -0
  775. package/dist/server/adapters/postgres/blobs.d.ts.map +1 -0
  776. package/dist/server/adapters/postgres/blobs.js +17 -0
  777. package/dist/server/adapters/postgres/blobs.js.map +1 -0
  778. package/dist/server/adapters/postgres/bus.d.ts +7 -0
  779. package/dist/server/adapters/postgres/bus.d.ts.map +1 -0
  780. package/dist/server/adapters/postgres/bus.js +60 -0
  781. package/dist/server/adapters/postgres/bus.js.map +1 -0
  782. package/dist/server/adapters/postgres/client.d.ts +38 -0
  783. package/dist/server/adapters/postgres/client.d.ts.map +1 -0
  784. package/dist/server/adapters/postgres/client.js +22 -0
  785. package/dist/server/adapters/postgres/client.js.map +1 -0
  786. package/dist/server/adapters/postgres/index.d.ts +29 -0
  787. package/dist/server/adapters/postgres/index.d.ts.map +1 -0
  788. package/dist/server/adapters/postgres/index.js +23 -0
  789. package/dist/server/adapters/postgres/index.js.map +1 -0
  790. package/dist/server/adapters/postgres/schema.d.ts +10 -0
  791. package/dist/server/adapters/postgres/schema.d.ts.map +1 -0
  792. package/dist/server/adapters/postgres/schema.js +111 -0
  793. package/dist/server/adapters/postgres/schema.js.map +1 -0
  794. package/dist/server/adapters/postgres/store.d.ts +4 -0
  795. package/dist/server/adapters/postgres/store.d.ts.map +1 -0
  796. package/dist/server/adapters/postgres/store.js +189 -0
  797. package/dist/server/adapters/postgres/store.js.map +1 -0
  798. package/dist/server/adapters/s3.d.ts +22 -0
  799. package/dist/server/adapters/s3.d.ts.map +1 -0
  800. package/dist/server/adapters/s3.js +47 -0
  801. package/dist/server/adapters/s3.js.map +1 -0
  802. package/dist/server/adapters/sql-rows.d.ts +26 -0
  803. package/dist/server/adapters/sql-rows.d.ts.map +1 -0
  804. package/dist/server/adapters/sql-rows.js +134 -0
  805. package/dist/server/adapters/sql-rows.js.map +1 -0
  806. package/dist/server/adapters/sqlite/index.d.ts +10 -0
  807. package/dist/server/adapters/sqlite/index.d.ts.map +1 -0
  808. package/dist/server/adapters/sqlite/index.js +50 -0
  809. package/dist/server/adapters/sqlite/index.js.map +1 -0
  810. package/dist/server/adapters/sqlite/schema.d.ts +3 -0
  811. package/dist/server/adapters/sqlite/schema.d.ts.map +1 -0
  812. package/dist/server/adapters/sqlite/schema.js +69 -0
  813. package/dist/server/adapters/sqlite/schema.js.map +1 -0
  814. package/dist/server/adapters/sqlite/sharing.d.ts +6 -0
  815. package/dist/server/adapters/sqlite/sharing.d.ts.map +1 -0
  816. package/dist/server/adapters/sqlite/sharing.js +81 -0
  817. package/dist/server/adapters/sqlite/sharing.js.map +1 -0
  818. package/dist/server/adapters/sqlite/store.d.ts +6 -0
  819. package/dist/server/adapters/sqlite/store.d.ts.map +1 -0
  820. package/dist/server/adapters/sqlite/store.js +130 -0
  821. package/dist/server/adapters/sqlite/store.js.map +1 -0
  822. package/dist/server/collection-storage.d.ts +55 -0
  823. package/dist/server/collection-storage.d.ts.map +1 -0
  824. package/dist/server/collection-storage.js +77 -0
  825. package/dist/server/collection-storage.js.map +1 -0
  826. package/dist/server/core/access.d.ts +17 -0
  827. package/dist/server/core/access.d.ts.map +1 -0
  828. package/dist/server/core/access.js +61 -0
  829. package/dist/server/core/access.js.map +1 -0
  830. package/dist/server/core/artifacts.d.ts +50 -0
  831. package/dist/server/core/artifacts.d.ts.map +1 -0
  832. package/dist/server/core/artifacts.js +152 -0
  833. package/dist/server/core/artifacts.js.map +1 -0
  834. package/dist/server/core/assets.d.ts +23 -0
  835. package/dist/server/core/assets.d.ts.map +1 -0
  836. package/dist/server/core/assets.js +41 -0
  837. package/dist/server/core/assets.js.map +1 -0
  838. package/dist/server/core/base64.d.ts +3 -0
  839. package/dist/server/core/base64.d.ts.map +1 -0
  840. package/dist/server/core/base64.js +17 -0
  841. package/dist/server/core/base64.js.map +1 -0
  842. package/dist/server/core/blobs.d.ts +10 -0
  843. package/dist/server/core/blobs.d.ts.map +1 -0
  844. package/dist/server/core/blobs.js +10 -0
  845. package/dist/server/core/blobs.js.map +1 -0
  846. package/dist/server/core/errors.d.ts +22 -0
  847. package/dist/server/core/errors.d.ts.map +1 -0
  848. package/dist/server/core/errors.js +32 -0
  849. package/dist/server/core/errors.js.map +1 -0
  850. package/dist/server/core/export.d.ts +8 -0
  851. package/dist/server/core/export.d.ts.map +1 -0
  852. package/dist/server/core/export.js +27 -0
  853. package/dist/server/core/export.js.map +1 -0
  854. package/dist/server/core/ids.d.ts +4 -0
  855. package/dist/server/core/ids.d.ts.map +1 -0
  856. package/dist/server/core/ids.js +12 -0
  857. package/dist/server/core/ids.js.map +1 -0
  858. package/dist/server/core/index.d.ts +36 -0
  859. package/dist/server/core/index.d.ts.map +1 -0
  860. package/dist/server/core/index.js +19 -0
  861. package/dist/server/core/index.js.map +1 -0
  862. package/dist/server/core/inline-assets.d.ts +6 -0
  863. package/dist/server/core/inline-assets.d.ts.map +1 -0
  864. package/dist/server/core/inline-assets.js +43 -0
  865. package/dist/server/core/inline-assets.js.map +1 -0
  866. package/dist/server/core/live.d.ts +10 -0
  867. package/dist/server/core/live.d.ts.map +1 -0
  868. package/dist/server/core/live.js +73 -0
  869. package/dist/server/core/live.js.map +1 -0
  870. package/dist/server/core/source-publication.d.ts +30 -0
  871. package/dist/server/core/source-publication.d.ts.map +1 -0
  872. package/dist/server/core/source-publication.js +89 -0
  873. package/dist/server/core/source-publication.js.map +1 -0
  874. package/dist/server/core/source.d.ts +16 -0
  875. package/dist/server/core/source.d.ts.map +1 -0
  876. package/dist/server/core/source.js +9 -0
  877. package/dist/server/core/source.js.map +1 -0
  878. package/dist/server/core/summary.d.ts +12 -0
  879. package/dist/server/core/summary.d.ts.map +1 -0
  880. package/dist/server/core/summary.js +40 -0
  881. package/dist/server/core/summary.js.map +1 -0
  882. package/dist/server/core/version-reader.d.ts +21 -0
  883. package/dist/server/core/version-reader.d.ts.map +1 -0
  884. package/dist/server/core/version-reader.js +49 -0
  885. package/dist/server/core/version-reader.js.map +1 -0
  886. package/dist/server/core/views.d.ts +6 -0
  887. package/dist/server/core/views.d.ts.map +1 -0
  888. package/dist/server/core/views.js +19 -0
  889. package/dist/server/core/views.js.map +1 -0
  890. package/dist/server/hosts.d.ts +13 -0
  891. package/dist/server/hosts.d.ts.map +1 -0
  892. package/dist/server/hosts.js +11 -0
  893. package/dist/server/hosts.js.map +1 -0
  894. package/dist/server/http/app.d.ts +48 -0
  895. package/dist/server/http/app.d.ts.map +1 -0
  896. package/dist/server/http/app.js +82 -0
  897. package/dist/server/http/app.js.map +1 -0
  898. package/dist/server/http/body.d.ts +5 -0
  899. package/dist/server/http/body.d.ts.map +1 -0
  900. package/dist/server/http/body.js +9 -0
  901. package/dist/server/http/body.js.map +1 -0
  902. package/dist/server/http/gates.d.ts +26 -0
  903. package/dist/server/http/gates.d.ts.map +1 -0
  904. package/dist/server/http/gates.js +43 -0
  905. package/dist/server/http/gates.js.map +1 -0
  906. package/dist/server/http/routes/artifacts.d.ts +5 -0
  907. package/dist/server/http/routes/artifacts.d.ts.map +1 -0
  908. package/dist/server/http/routes/artifacts.js +75 -0
  909. package/dist/server/http/routes/artifacts.js.map +1 -0
  910. package/dist/server/http/routes/events.d.ts +5 -0
  911. package/dist/server/http/routes/events.d.ts.map +1 -0
  912. package/dist/server/http/routes/events.js +26 -0
  913. package/dist/server/http/routes/events.js.map +1 -0
  914. package/dist/server/http/routes/mcp.d.ts +17 -0
  915. package/dist/server/http/routes/mcp.d.ts.map +1 -0
  916. package/dist/server/http/routes/mcp.js +37 -0
  917. package/dist/server/http/routes/mcp.js.map +1 -0
  918. package/dist/server/index.d.ts +3 -0
  919. package/dist/server/index.d.ts.map +1 -0
  920. package/dist/server/index.js +5 -0
  921. package/dist/server/index.js.map +1 -0
  922. package/dist/server/kit/broadcasts.d.ts +5 -0
  923. package/dist/server/kit/broadcasts.d.ts.map +1 -0
  924. package/dist/server/kit/broadcasts.js +10 -0
  925. package/dist/server/kit/broadcasts.js.map +1 -0
  926. package/dist/server/kit/events.d.ts +97 -0
  927. package/dist/server/kit/events.d.ts.map +1 -0
  928. package/dist/server/kit/events.js +28 -0
  929. package/dist/server/kit/events.js.map +1 -0
  930. package/dist/server/kit/observe.d.ts +20 -0
  931. package/dist/server/kit/observe.d.ts.map +1 -0
  932. package/dist/server/kit/observe.js +24 -0
  933. package/dist/server/kit/observe.js.map +1 -0
  934. package/dist/server/kit/plugin.d.ts +34 -0
  935. package/dist/server/kit/plugin.d.ts.map +1 -0
  936. package/dist/server/kit/plugin.js +4 -0
  937. package/dist/server/kit/plugin.js.map +1 -0
  938. package/dist/server/kit/tool.d.ts +54 -0
  939. package/dist/server/kit/tool.d.ts.map +1 -0
  940. package/dist/server/kit/tool.js +56 -0
  941. package/dist/server/kit/tool.js.map +1 -0
  942. package/dist/server/kit/wire.d.ts +9 -0
  943. package/dist/server/kit/wire.d.ts.map +1 -0
  944. package/dist/server/kit/wire.js +14 -0
  945. package/dist/server/kit/wire.js.map +1 -0
  946. package/dist/server/kit.d.ts +25 -0
  947. package/dist/server/kit.d.ts.map +1 -0
  948. package/dist/server/kit.js +18 -0
  949. package/dist/server/kit.js.map +1 -0
  950. package/dist/server/mcp/result.d.ts +5 -0
  951. package/dist/server/mcp/result.d.ts.map +1 -0
  952. package/dist/server/mcp/result.js +25 -0
  953. package/dist/server/mcp/result.js.map +1 -0
  954. package/dist/server/mcp/schema.d.ts +7 -0
  955. package/dist/server/mcp/schema.d.ts.map +1 -0
  956. package/dist/server/mcp/schema.js +27 -0
  957. package/dist/server/mcp/schema.js.map +1 -0
  958. package/dist/server/mcp/tools.d.ts +35 -0
  959. package/dist/server/mcp/tools.d.ts.map +1 -0
  960. package/dist/server/mcp/tools.js +72 -0
  961. package/dist/server/mcp/tools.js.map +1 -0
  962. package/dist/server/mcp/viewer.d.ts +17 -0
  963. package/dist/server/mcp/viewer.d.ts.map +1 -0
  964. package/dist/server/mcp/viewer.js +47 -0
  965. package/dist/server/mcp/viewer.js.map +1 -0
  966. package/dist/server/plugins/comments/index.d.ts +8 -0
  967. package/dist/server/plugins/comments/index.d.ts.map +1 -0
  968. package/dist/server/plugins/comments/index.js +79 -0
  969. package/dist/server/plugins/comments/index.js.map +1 -0
  970. package/dist/server/plugins/comments/routes.d.ts +6 -0
  971. package/dist/server/plugins/comments/routes.d.ts.map +1 -0
  972. package/dist/server/plugins/comments/routes.js +34 -0
  973. package/dist/server/plugins/comments/routes.js.map +1 -0
  974. package/dist/server/plugins/comments/service.d.ts +20 -0
  975. package/dist/server/plugins/comments/service.d.ts.map +1 -0
  976. package/dist/server/plugins/comments/service.js +66 -0
  977. package/dist/server/plugins/comments/service.js.map +1 -0
  978. package/dist/server/plugins/components/catalog.d.ts +15 -0
  979. package/dist/server/plugins/components/catalog.d.ts.map +1 -0
  980. package/dist/server/plugins/components/catalog.js +39 -0
  981. package/dist/server/plugins/components/catalog.js.map +1 -0
  982. package/dist/server/plugins/components/index.d.ts +21 -0
  983. package/dist/server/plugins/components/index.d.ts.map +1 -0
  984. package/dist/server/plugins/components/index.js +35 -0
  985. package/dist/server/plugins/components/index.js.map +1 -0
  986. package/dist/server/plugins/components/tags.d.ts +9 -0
  987. package/dist/server/plugins/components/tags.d.ts.map +1 -0
  988. package/dist/server/plugins/components/tags.js +22 -0
  989. package/dist/server/plugins/components/tags.js.map +1 -0
  990. package/dist/server/plugins/editing/apply.d.ts +9 -0
  991. package/dist/server/plugins/editing/apply.d.ts.map +1 -0
  992. package/dist/server/plugins/editing/apply.js +30 -0
  993. package/dist/server/plugins/editing/apply.js.map +1 -0
  994. package/dist/server/plugins/editing/index.d.ts +8 -0
  995. package/dist/server/plugins/editing/index.d.ts.map +1 -0
  996. package/dist/server/plugins/editing/index.js +48 -0
  997. package/dist/server/plugins/editing/index.js.map +1 -0
  998. package/dist/server/plugins/editing/layout.d.ts +4 -0
  999. package/dist/server/plugins/editing/layout.d.ts.map +1 -0
  1000. package/dist/server/plugins/editing/layout.js +29 -0
  1001. package/dist/server/plugins/editing/layout.js.map +1 -0
  1002. package/dist/server/plugins/editing/source-text.d.ts +10 -0
  1003. package/dist/server/plugins/editing/source-text.d.ts.map +1 -0
  1004. package/dist/server/plugins/editing/source-text.js +10 -0
  1005. package/dist/server/plugins/editing/source-text.js.map +1 -0
  1006. package/dist/server/plugins/editing/source.d.ts +18 -0
  1007. package/dist/server/plugins/editing/source.d.ts.map +1 -0
  1008. package/dist/server/plugins/editing/source.js +15 -0
  1009. package/dist/server/plugins/editing/source.js.map +1 -0
  1010. package/dist/server/plugins/index.d.ts +25 -0
  1011. package/dist/server/plugins/index.d.ts.map +1 -0
  1012. package/dist/server/plugins/index.js +20 -0
  1013. package/dist/server/plugins/index.js.map +1 -0
  1014. package/dist/server/plugins/mcp-auth.d.ts +12 -0
  1015. package/dist/server/plugins/mcp-auth.d.ts.map +1 -0
  1016. package/dist/server/plugins/mcp-auth.js +27 -0
  1017. package/dist/server/plugins/mcp-auth.js.map +1 -0
  1018. package/dist/server/plugins/mentions.d.ts +10 -0
  1019. package/dist/server/plugins/mentions.d.ts.map +1 -0
  1020. package/dist/server/plugins/mentions.js +28 -0
  1021. package/dist/server/plugins/mentions.js.map +1 -0
  1022. package/dist/server/plugins/moderation.d.ts +17 -0
  1023. package/dist/server/plugins/moderation.d.ts.map +1 -0
  1024. package/dist/server/plugins/moderation.js +17 -0
  1025. package/dist/server/plugins/moderation.js.map +1 -0
  1026. package/dist/server/plugins/notifications.d.ts +22 -0
  1027. package/dist/server/plugins/notifications.d.ts.map +1 -0
  1028. package/dist/server/plugins/notifications.js +43 -0
  1029. package/dist/server/plugins/notifications.js.map +1 -0
  1030. package/dist/server/plugins/presence.d.ts +3 -0
  1031. package/dist/server/plugins/presence.d.ts.map +1 -0
  1032. package/dist/server/plugins/presence.js +23 -0
  1033. package/dist/server/plugins/presence.js.map +1 -0
  1034. package/dist/server/plugins/rate-limit.d.ts +18 -0
  1035. package/dist/server/plugins/rate-limit.d.ts.map +1 -0
  1036. package/dist/server/plugins/rate-limit.js +43 -0
  1037. package/dist/server/plugins/rate-limit.js.map +1 -0
  1038. package/dist/server/plugins/state/index.d.ts +10 -0
  1039. package/dist/server/plugins/state/index.d.ts.map +1 -0
  1040. package/dist/server/plugins/state/index.js +66 -0
  1041. package/dist/server/plugins/state/index.js.map +1 -0
  1042. package/dist/server/plugins/state/service.d.ts +21 -0
  1043. package/dist/server/plugins/state/service.d.ts.map +1 -0
  1044. package/dist/server/plugins/state/service.js +65 -0
  1045. package/dist/server/plugins/state/service.js.map +1 -0
  1046. package/dist/server/plugins/webhook.d.ts +17 -0
  1047. package/dist/server/plugins/webhook.d.ts.map +1 -0
  1048. package/dist/server/plugins/webhook.js +54 -0
  1049. package/dist/server/plugins/webhook.js.map +1 -0
  1050. package/dist/server/ports.d.ts +214 -0
  1051. package/dist/server/ports.d.ts.map +1 -0
  1052. package/dist/server/ports.js +22 -0
  1053. package/dist/server/ports.js.map +1 -0
  1054. package/dist/server/sandbox/assets.d.ts +13 -0
  1055. package/dist/server/sandbox/assets.d.ts.map +1 -0
  1056. package/dist/server/sandbox/assets.js +8 -0
  1057. package/dist/server/sandbox/assets.js.map +1 -0
  1058. package/dist/server/sandbox/csp.d.ts +5 -0
  1059. package/dist/server/sandbox/csp.d.ts.map +1 -0
  1060. package/dist/server/sandbox/csp.js +29 -0
  1061. package/dist/server/sandbox/csp.js.map +1 -0
  1062. package/dist/server/sandbox/inject.d.ts +9 -0
  1063. package/dist/server/sandbox/inject.d.ts.map +1 -0
  1064. package/dist/server/sandbox/inject.js +42 -0
  1065. package/dist/server/sandbox/inject.js.map +1 -0
  1066. package/dist/server/sandbox/server.d.ts +17 -0
  1067. package/dist/server/sandbox/server.d.ts.map +1 -0
  1068. package/dist/server/sandbox/server.js +63 -0
  1069. package/dist/server/sandbox/server.js.map +1 -0
  1070. package/dist/server/sharing/index.d.ts +41 -0
  1071. package/dist/server/sharing/index.d.ts.map +1 -0
  1072. package/dist/server/sharing/index.js +150 -0
  1073. package/dist/server/sharing/index.js.map +1 -0
  1074. package/dist/server/sharing/postgres.d.ts +13 -0
  1075. package/dist/server/sharing/postgres.d.ts.map +1 -0
  1076. package/dist/server/sharing/postgres.js +87 -0
  1077. package/dist/server/sharing/postgres.js.map +1 -0
  1078. package/dist/server/sharing/store.d.ts +23 -0
  1079. package/dist/server/sharing/store.d.ts.map +1 -0
  1080. package/dist/server/sharing/store.js +38 -0
  1081. package/dist/server/sharing/store.js.map +1 -0
  1082. package/dist/server/source.d.ts +8 -0
  1083. package/dist/server/source.d.ts.map +1 -0
  1084. package/dist/server/source.js +6 -0
  1085. package/dist/server/source.js.map +1 -0
  1086. package/dist/server/testing.d.ts +17 -0
  1087. package/dist/server/testing.d.ts.map +1 -0
  1088. package/dist/server/testing.js +287 -0
  1089. package/dist/server/testing.js.map +1 -0
  1090. package/dist/viewer.global.js +150 -0
  1091. package/package.json +199 -4
@@ -0,0 +1,119 @@
1
+ import { domIds, rewriteAttrs, rewriteCopiedDomIds } from "./source-copy-dom.js";
2
+ import { idOf, isSlideAttrs, nextUnusedSlideId, SLIDE_TAGS } from "./source-deck-elements.js";
3
+ import { attrValues } from "./source-html.js";
4
+ import { tags } from "./source-tags.js";
5
+ import { nextVideoSceneId, VIDEO_SCENE_ID } from "./source-video-id.js";
6
+ const withId = (text, id) => {
7
+ if (/data-derive-slide\s*=/i.test(text))
8
+ return text.replace(/data-derive-slide\s*=\s*["']?-?\d+["']?/i, `data-derive-slide="${id}"`);
9
+ const m = /^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(text);
10
+ return m
11
+ ? `${text.slice(0, m[0].length)} data-derive-slide="${id}"${text.slice(m[0].length)}`
12
+ : text;
13
+ };
14
+ export const inactiveClasses = (classes) => classes.filter((name) => !["on", "active", "is-active", "current"].includes(name.toLowerCase()));
15
+ export const STRUCTURAL_ID = /^[A-Za-z][A-Za-z0-9_-]{0,127}$/;
16
+ const structuralIds = (html) => tags(html).flatMap((tag) => tag.closing
17
+ ? []
18
+ : [
19
+ ...attrValues(tag.attrs, "data-derive-region"),
20
+ ...attrValues(tag.attrs, "data-derive-node"),
21
+ ]);
22
+ /** A duplicated slide's structural identities must be new too, or every later
23
+ * structural edit on either copy is refused as ambiguous. A value derived from the
24
+ * source slide's identity follows the copy's (`slide-4` → `slide-46`, `s4-title` →
25
+ * `s46-title`); anything else gains a `-copy-N` suffix. `data-derive-owner` names a
26
+ * node, so it follows the node rename and the copy's hierarchy stays intact. */
27
+ const rewriteCopiedStructuralIds = (html, sourceId, copyId, used) => {
28
+ const token = sourceId === null ? null : new RegExp(`(?<![0-9])${sourceId}(?![0-9])`);
29
+ const fresh = (original) => {
30
+ // An unreadable identity is refused by structural editing either way; leave it be.
31
+ if (!STRUCTURAL_ID.test(original))
32
+ return original;
33
+ const derived = token ? original.replace(token, String(copyId)) : original;
34
+ const base = derived !== original && STRUCTURAL_ID.test(derived)
35
+ ? derived
36
+ : `${original.slice(0, 100)}-copy-${copyId}`;
37
+ let candidate = base;
38
+ for (let n = 2; used.has(candidate); n++)
39
+ candidate = `${base.slice(0, 120)}-${n}`;
40
+ used.add(candidate);
41
+ return candidate;
42
+ };
43
+ const regions = new Map();
44
+ const nodes = new Map();
45
+ for (const tag of tags(html)) {
46
+ if (tag.closing)
47
+ continue;
48
+ for (const value of attrValues(tag.attrs, "data-derive-region"))
49
+ if (!regions.has(value))
50
+ regions.set(value, fresh(value));
51
+ for (const value of attrValues(tag.attrs, "data-derive-node"))
52
+ if (!nodes.has(value))
53
+ nodes.set(value, fresh(value));
54
+ }
55
+ if (!regions.size && !nodes.size)
56
+ return html;
57
+ return rewriteAttrs(html, (name, value) => {
58
+ const lower = name.toLowerCase();
59
+ const ids = lower === "data-derive-region"
60
+ ? regions
61
+ : lower === "data-derive-node" || lower === "data-derive-owner"
62
+ ? nodes
63
+ : null;
64
+ return ids?.get(value) ?? value;
65
+ });
66
+ };
67
+ /** A newly-created slide is never the live one merely because its source was. Deck
68
+ * runtimes commonly persist `on`/`active` on the first slide in authored source; copying
69
+ * that state would paint two slides at once after reload. Only the OUTER slide's class
70
+ * list is touched, and content/style classes remain byte-for-byte. */
71
+ const inactiveCopy = (text, sourceId, id, used) => {
72
+ const copied = rewriteCopiedStructuralIds(rewriteCopiedDomIds(withId(text, id), id, used.dom), sourceId, id, used.structural);
73
+ const open = tags(copied).find((tag) => !tag.closing && SLIDE_TAGS.has(tag.name));
74
+ if (!open)
75
+ return copied;
76
+ const opening = copied
77
+ .slice(open.start, open.end)
78
+ .replace(/class\s*=\s*(["'])(.*?)\1/i, (_all, quote, value) => {
79
+ const classes = inactiveClasses(value.split(/\s+/).filter(Boolean));
80
+ return `class=${quote}${classes.join(" ")}${quote}`;
81
+ });
82
+ return copied.slice(0, open.start) + opening + copied.slice(open.end);
83
+ };
84
+ export const copyIdentitiesOf = (html) => ({
85
+ slides: new Set(tags(html).flatMap((tag) => tag.closing
86
+ ? []
87
+ : attrValues(tag.attrs, "data-derive-slide").flatMap((v) => /^-?\d+$/.test(v) && Number.isSafeInteger(Number(v)) ? [Number(v)] : []))),
88
+ dom: new Set(domIds(html)),
89
+ structural: new Set(structuralIds(html)),
90
+ scenes: new Set(tags(html).flatMap((tag) => (tag.closing ? [] : attrValues(tag.attrs, "data-derive-scene")))),
91
+ copies: 0,
92
+ });
93
+ /** A duplicated element's bytes with fresh identities, so the copy never shares comment
94
+ * threads, DOM ids, or structural handles with its original. A slide copy gets a new
95
+ * slide identity and is made inactive, exactly as a slide_ops duplicate; any other
96
+ * element's DOM and structural ids gain a copy suffix, and slides nested inside it get
97
+ * new identities. `used` grows with every identity minted. */
98
+ export const copyWithFreshIdentities = (text, used) => {
99
+ const mint = () => {
100
+ const id = nextUnusedSlideId(used.slides);
101
+ used.slides.add(id);
102
+ return id;
103
+ };
104
+ const root = tags(text).find((tag) => !tag.closing);
105
+ if (root && SLIDE_TAGS.has(root.name) && isSlideAttrs(root.attrs))
106
+ return inactiveCopy(text, idOf(root.attrs), mint(), used);
107
+ const copy = ++used.copies;
108
+ const nested = rewriteAttrs(text, (name, value) => {
109
+ if (name.toLowerCase() === "data-derive-slide" && /^-?\d+$/.test(value))
110
+ return String(mint());
111
+ if (name.toLowerCase() !== "data-derive-scene" || !VIDEO_SCENE_ID.test(value))
112
+ return value;
113
+ const id = nextVideoSceneId(used.scenes);
114
+ used.scenes.add(id);
115
+ return id;
116
+ });
117
+ return rewriteCopiedStructuralIds(rewriteCopiedDomIds(nested, copy, used.dom), null, copy, used.structural);
118
+ };
119
+ //# sourceMappingURL=source-copy-identities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-copy-identities.js","sourceRoot":"","sources":["../../src/protocol/source-copy-identities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export declare const SLIDE_TAGS: Set<string>;
2
+ /** The `data-derive-slide` value on an opening tag, when it carries a numeric one. */
3
+ export declare const idOf: (attrs: string) => number | null;
4
+ /** Mint a deterministic identity without crossing JavaScript's safe-integer boundary.
5
+ * Normal decks keep max+1. A deck already using MAX_SAFE_INTEGER wraps to the lowest
6
+ * unused non-negative identity instead of rounding into a collision. */
7
+ export declare const nextUnusedSlideId: (usedIds: Iterable<number>) => number;
8
+ /** One slide element's exact span in the source. */
9
+ export interface SlideSpan {
10
+ /** 1-based position in document order — what a person sees on the deck bar. */
11
+ position: number;
12
+ /** Offset of the opening `<`. */
13
+ start: number;
14
+ /** Offset just past the closing `>`. */
15
+ end: number;
16
+ /** The stable `data-derive-slide` value, or null when the deck never stamped one. */
17
+ id: number | null;
18
+ }
19
+ /** Every slide element's byte span, in document order.
20
+ *
21
+ * Document order, deliberately: a deck's own script reveals slides in DOM order, so
22
+ * that is what "slide 3" means to anyone watching. The `data-derive-slide` attribute is
23
+ * identity, and after the first reorder the two disagree — sorting by it here would put
24
+ * this slicer at odds with the page it is slicing.
25
+ *
26
+ * Throws `EditError` rather than guessing when the structure is ambiguous: a slide that
27
+ * never closes, or one nested inside another. Returns [] for a page with no slides. */
28
+ export declare const sliceSlides: (html: string) => SlideSpan[];
29
+ export declare const isSlideAttrs: (attrs: string) => boolean;
30
+ //# sourceMappingURL=source-deck-elements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-deck-elements.d.ts","sourceRoot":"","sources":["../../src/protocol/source-deck-elements.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,MAAM,CAAgD,CAAA;AAEnF,sFAAsF;AACtF,eAAO,MAAM,IAAI,UAAW,MAAM,KAAG,MAAM,GAAG,IAa7C,CAAA;AAED;;wEAEwE;AACxE,eAAO,MAAM,iBAAiB,YAAa,QAAQ,CAAC,MAAM,CAAC,KAAG,MAU7D,CAAA;AAED,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACxB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAA;IAChB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,qFAAqF;IACrF,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB;AAED;;;;;;;;wFAQwF;AACxF,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,SAAS,EAoBnD,CAAA;AAED,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,OAKgB,CAAA"}
@@ -0,0 +1,67 @@
1
+ import { EditError } from "./source-edits.js";
2
+ import { attrValues, classTokens, elementEnd } from "./source-html.js";
3
+ import { tags } from "./source-tags.js";
4
+ export const SLIDE_TAGS = new Set(["section", "div", "article", "li"]);
5
+ /** The `data-derive-slide` value on an opening tag, when it carries a numeric one. */
6
+ export const idOf = (attrs) => {
7
+ const values = attrValues(attrs, "data-derive-slide");
8
+ if (values.length > 1)
9
+ throw new EditError("A slide has more than one data-derive-slide attribute, so its identity is ambiguous. Edit the source directly.");
10
+ const raw = values[0];
11
+ if (raw === undefined)
12
+ return null;
13
+ if (!/^-?\d+$/.test(raw) || !Number.isSafeInteger(Number(raw)))
14
+ throw new EditError(`Slide identity ${JSON.stringify(raw)} must be one whole, safely representable integer. Edit the source directly.`);
15
+ return Number(raw);
16
+ };
17
+ /** Mint a deterministic identity without crossing JavaScript's safe-integer boundary.
18
+ * Normal decks keep max+1. A deck already using MAX_SAFE_INTEGER wraps to the lowest
19
+ * unused non-negative identity instead of rounding into a collision. */
20
+ export const nextUnusedSlideId = (usedIds) => {
21
+ const used = new Set(usedIds);
22
+ let max = -1;
23
+ for (const id of used)
24
+ if (id > max)
25
+ max = id;
26
+ if (max < Number.MAX_SAFE_INTEGER)
27
+ return max + 1;
28
+ let candidate = 0;
29
+ while (used.has(candidate))
30
+ candidate++;
31
+ if (!Number.isSafeInteger(candidate))
32
+ throw new EditError("This deck has no safely representable slide identity left to allocate.");
33
+ return candidate;
34
+ };
35
+ /** Every slide element's byte span, in document order.
36
+ *
37
+ * Document order, deliberately: a deck's own script reveals slides in DOM order, so
38
+ * that is what "slide 3" means to anyone watching. The `data-derive-slide` attribute is
39
+ * identity, and after the first reorder the two disagree — sorting by it here would put
40
+ * this slicer at odds with the page it is slicing.
41
+ *
42
+ * Throws `EditError` rather than guessing when the structure is ambiguous: a slide that
43
+ * never closes, or one nested inside another. Returns [] for a page with no slides. */
44
+ export const sliceSlides = (html) => {
45
+ const all = tags(html);
46
+ const spans = [];
47
+ for (let t = 0; t < all.length; t++) {
48
+ const open = all[t];
49
+ if (open.closing || !SLIDE_TAGS.has(open.name) || !isSlideAttrs(open.attrs))
50
+ continue;
51
+ const end = elementEnd(all, t);
52
+ if (end === -1)
53
+ throw new EditError(`A slide element (<${open.name}> at character ${open.start}) is never closed — the deck's structure can't be read. Fix the markup, or edit the source directly.`);
54
+ spans.push({ position: 0, start: open.start, end, id: idOf(open.attrs) });
55
+ }
56
+ // A slide inside a slide has no single position, so no op on it could mean one thing.
57
+ for (let i = 1; i < spans.length; i++)
58
+ if (spans[i].start < spans[i - 1].end)
59
+ throw new EditError("This deck nests a slide element inside another one, so slides have no single order. Edit the source directly.");
60
+ return spans.map((s, i) => ({ ...s, position: i + 1 }));
61
+ };
62
+ export const isSlideAttrs = (attrs) => attrValues(attrs, "data-derive-slide").length > 0 ||
63
+ // The other common hand-rolled marker: models writing a deck from scratch number their
64
+ // sections with data-slide="N" and no class at all.
65
+ attrValues(attrs, "data-slide").length > 0 ||
66
+ classTokens(attrs).some((t) => t.toLowerCase() === "slide");
67
+ //# sourceMappingURL=source-deck-elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-deck-elements.js","sourceRoot":"","sources":["../../src/protocol/source-deck-elements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type SlideOp = {
2
+ op: "move";
3
+ from: number;
4
+ to: number;
5
+ } | {
6
+ op: "delete";
7
+ at: number;
8
+ } | {
9
+ op: "duplicate";
10
+ at: number;
11
+ } | {
12
+ op: "insert";
13
+ at: number;
14
+ };
15
+ /** Enough for any real rearranging session; a runaway loop is not an edit. */
16
+ export declare const MAX_SLIDE_OPS = 200;
17
+ export declare const applySlideOps: (html: string, ops: SlideOp[]) => string;
18
+ //# sourceMappingURL=source-deck-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-deck-ops.d.ts","sourceRoot":"","sources":["../../src/protocol/source-deck-ops.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,OAAO,GACf;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhC,8EAA8E;AAC9E,eAAO,MAAM,aAAa,MAAM,CAAA;AA+KhC,eAAO,MAAM,aAAa,SAAU,MAAM,OAAO,OAAO,EAAE,KAAG,MAmB5D,CAAA"}
@@ -0,0 +1,154 @@
1
+ import { domIds } from "./source-copy-dom.js";
2
+ import { copyIdentitiesOf, copyWithFreshIdentities, inactiveClasses, } from "./source-copy-identities.js";
3
+ import { nextUnusedSlideId, SLIDE_TAGS, sliceSlides, } from "./source-deck-elements.js";
4
+ import { EditError } from "./source-edits.js";
5
+ import { attrValue, classTokens } from "./source-html.js";
6
+ import { tags } from "./source-tags.js";
7
+ /** Enough for any real rearranging session; a runaway loop is not an edit. */
8
+ export const MAX_SLIDE_OPS = 200;
9
+ /** Give every slide a stable identity, minting only for the ones that lack it. Existing
10
+ * values are never touched: they are what comment threads are pinned to. */
11
+ const stamped = (texts, ids) => {
12
+ const used = new Set(ids.filter((v) => v !== null));
13
+ return texts.map((text, i) => {
14
+ const existing = ids[i];
15
+ if (existing !== null && existing !== undefined)
16
+ return { text, id: existing };
17
+ const id = nextUnusedSlideId(used);
18
+ used.add(id);
19
+ // Insert into the opening tag, just past the tag name.
20
+ const m = /^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(text);
21
+ return {
22
+ text: m
23
+ ? `${text.slice(0, m[0].length)} data-derive-slide="${id}"${text.slice(m[0].length)}`
24
+ : text,
25
+ id,
26
+ };
27
+ });
28
+ };
29
+ const escapeAttr = (value) => value.replaceAll("&", "&amp;").replaceAll('"', "&quot;");
30
+ /** A blank slide inherits only visual/layout attributes. Content identity (`id`), ARIA
31
+ * references, and arbitrary data hooks are unique to the source slide and would become
32
+ * broken duplicates if copied onto a new one. */
33
+ const blankOpening = (open, id) => {
34
+ const classes = inactiveClasses(classTokens(open.attrs));
35
+ const style = attrValue(open.attrs, "style");
36
+ const role = attrValue(open.attrs, "role");
37
+ return `<${open.name} data-derive-slide="${id}"${classes.length ? ` class="${escapeAttr(classes.join(" "))}"` : ""}${style ? ` style="${escapeAttr(style)}"` : ""}${role ? ` role="${escapeAttr(role)}"` : ""}>`;
38
+ };
39
+ /** Make a deliberately small blank slide in the deck's own outer shell. Keeping the
40
+ * source slide's tag + attributes preserves arbitrary deck layout conventions (a deck
41
+ * may use `li.slide`, an inline style, or its own data attributes), while the fresh
42
+ * identity keeps comment threads distinct. The interior is intentionally plain HTML:
43
+ * it is useful immediately and can be changed with the rendered editor. */
44
+ const blankFrom = (text, id) => {
45
+ const all = tags(text);
46
+ const open = all.find((tag) => !tag.closing && SLIDE_TAGS.has(tag.name));
47
+ if (!open)
48
+ throw new EditError("The slide used as a template has no readable opening tag.");
49
+ const close = all.toReversed().find((tag) => tag.closing && tag.name === open.name);
50
+ const opening = blankOpening(open, id);
51
+ const closing = close ? text.slice(close.start, close.end) : `</${open.name}>`;
52
+ return `${opening}\n <h2>New slide</h2>\n <p>Add content in Edit mode.</p>\n${closing}`;
53
+ };
54
+ const prepareSlides = (html) => {
55
+ const spans = sliceSlides(html);
56
+ if (spans.length === 0)
57
+ throw new EditError('This document has no slide elements, so there is nothing to arrange. A deck\'s slides are elements carrying class="slide" or data-derive-slide.');
58
+ // Whatever sits BETWEEN slides travels with neither of them, so reordering would
59
+ // silently relocate it. Whitespace is safe to normalize; anything else is content,
60
+ // and losing content is the one outcome worth refusing an edit over.
61
+ const first = spans[0];
62
+ const last = spans[spans.length - 1];
63
+ const gaps = [];
64
+ for (let i = 1; i < spans.length; i++) {
65
+ const gap = html.slice(spans[i - 1].end, spans[i].start);
66
+ if (gap.trim())
67
+ throw new EditError(`There is content between slides ${i} and ${i + 1} that belongs to neither, so reordering would move it somewhere it doesn't belong. Edit the source directly.`);
68
+ gaps.push(gap);
69
+ }
70
+ const ids = spans.map((s) => s.id);
71
+ const known = ids.filter((v) => v !== null);
72
+ if (new Set(known).size !== known.length)
73
+ throw new EditError("Two slides share the same data-derive-slide value, so their comment threads can't be told apart. Give each slide a distinct value first.");
74
+ // Identity first: a class-only deck (or one an agent extended by hand) gets stamped on
75
+ // its first arrange, so every later session — and every comment left in between — has
76
+ // something stable to hold onto.
77
+ const items = stamped(spans.map((s) => html.slice(s.start, s.end)), ids);
78
+ const used = copyIdentitiesOf(html);
79
+ if (used.dom.size !== domIds(html).length)
80
+ throw new EditError("This deck repeats a DOM id, so its document-wide references are already ambiguous. Give every element a unique id before arranging slides.");
81
+ for (const item of items)
82
+ used.slides.add(item.id);
83
+ return { first, last, gaps, items, used };
84
+ };
85
+ const slidePosition = (context, n, label, max) => {
86
+ const { items } = context;
87
+ if (typeof n !== "number" || !Number.isInteger(n) || n < 1 || n > max) {
88
+ // An insert may target one past the end, so its range is not the slide count.
89
+ const count = items.length;
90
+ const slides = `this deck has ${count} slide${count === 1 ? "" : "s"}`;
91
+ throw new EditError(max > count
92
+ ? `slide_ops: ${label} ${JSON.stringify(n)} is out of range — ${slides}, so an insert accepts positions 1–${max}.`
93
+ : `slide_ops: ${label} ${JSON.stringify(n)} is out of range — ${slides} (positions are 1-based).`);
94
+ }
95
+ return n;
96
+ };
97
+ const applySlideOp = (context, op) => {
98
+ const { items, used } = context;
99
+ const at = (n, label, max) => slidePosition(context, n, label, max);
100
+ switch (op?.op) {
101
+ case "move": {
102
+ const from = at(op.from, "from", items.length);
103
+ const to = at(op.to, "to", items.length);
104
+ if (from === to)
105
+ return;
106
+ const [moved] = items.splice(from - 1, 1);
107
+ if (moved)
108
+ items.splice(to - 1, 0, moved);
109
+ return;
110
+ }
111
+ case "delete": {
112
+ const pos = at(op.at, "at", items.length);
113
+ if (items.length === 1)
114
+ throw new EditError("That would delete the deck's only slide. Delete the artifact instead, or leave one slide standing.");
115
+ items.splice(pos - 1, 1);
116
+ return;
117
+ }
118
+ case "duplicate": {
119
+ const pos = at(op.at, "at", items.length);
120
+ const src = items[pos - 1];
121
+ items.splice(pos, 0, { text: copyWithFreshIdentities(src.text, used), id: -1 });
122
+ return;
123
+ }
124
+ case "insert": {
125
+ const pos = at(op.at, "at", items.length + 1);
126
+ const templateAt = Math.min(Math.max(pos - 1, 0), items.length - 1);
127
+ const src = items[templateAt];
128
+ const nextId = nextUnusedSlideId(used.slides);
129
+ used.slides.add(nextId);
130
+ items.splice(pos - 1, 0, { text: blankFrom(src.text, nextId), id: nextId });
131
+ return;
132
+ }
133
+ default:
134
+ throw new EditError(`slide_ops: unknown op ${JSON.stringify(op?.op)} — use "move", "delete", "duplicate", or "insert".`);
135
+ }
136
+ };
137
+ export const applySlideOps = (html, ops) => {
138
+ if (!Array.isArray(ops) || ops.length === 0)
139
+ throw new EditError("`slide_ops` is empty — provide at least one op.");
140
+ if (ops.length > MAX_SLIDE_OPS)
141
+ throw new EditError("`slide_ops` has " +
142
+ ops.length +
143
+ " entries — the maximum per request is " +
144
+ MAX_SLIDE_OPS +
145
+ ".");
146
+ const context = prepareSlides(html);
147
+ for (const op of ops)
148
+ applySlideOp(context, op);
149
+ const { first, last, gaps, items } = context;
150
+ return (html.slice(0, first.start) +
151
+ items.map((s) => s.text).join(gaps[0] ?? "\n") +
152
+ html.slice(last.end));
153
+ };
154
+ //# sourceMappingURL=source-deck-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-deck-ops.js","sourceRoot":"","sources":["../../src/protocol/source-deck-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** Is this opening tag a slide? It carries the stable `data-derive-slide` index, or `slide`
2
+ * as a WHOLE class token.
3
+ *
4
+ * Whole token, not a substring: `\bslide\b` treats a hyphen as a word boundary, so
5
+ * `class="slide-inner"` matched — and real decks are full of `slide-inner`, `slide-chart`,
6
+ * `slide-kicker`. That made every such wrapper look like a slide nested inside its own
7
+ * slide, which inflated the count and made the slicer refuse the deck outright. Found by
8
+ * running this over real published decks rather than fixtures. */
9
+ /** How many slide elements this HTML actually contains. */
10
+ export declare const countSlideElements: (html: string) => number;
11
+ /** Does this page announce itself to the host over the deck protocol? Matches the bare
12
+ * protocol name so either quote style (source:'derive-deck' / "derive-deck") is found. */
13
+ export declare const speaksDeckProtocol: (html: string) => boolean;
14
+ /** A deck: it announces itself AND has slides to announce. Both halves are required —
15
+ * the protocol name alone appears in any document about decks (this file included), and
16
+ * slides alone are just sections. */
17
+ export declare const isDeckDocument: (html: string) => boolean;
18
+ /** True when a page is plainly a deck attempt that never announced itself. */
19
+ export declare const isUnannouncedDeck: (html: string) => boolean;
20
+ //# sourceMappingURL=source-deck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-deck.d.ts","sourceRoot":"","sources":["../../src/protocol/source-deck.ts"],"names":[],"mappings":"AA+CA;;;;;;;mEAOmE;AACnE,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,MAKjD,CAAA;AAED;2FAC2F;AAC3F,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,OACH,CAAA;AAM/C;;sCAEsC;AACtC,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG,OAU7C,CAAA;AAOD,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,SAAU,MAAM,KAAG,OAOhD,CAAA"}
@@ -0,0 +1,103 @@
1
+ import { isSlideAttrs, SLIDE_TAGS, sliceSlides } from "./source-deck-elements.js";
2
+ import { elementEnd } from "./source-html.js";
3
+ import { tags } from "./source-tags.js";
4
+ const withoutCommentsInText = (html) => {
5
+ let out = "";
6
+ let i = 0;
7
+ for (;;) {
8
+ const start = html.indexOf("<!--", i);
9
+ if (start === -1)
10
+ return out + html.slice(i);
11
+ out += html.slice(i, start);
12
+ const ordinary = html.indexOf("-->", start + 4);
13
+ const legacy = html.indexOf("--!>", start + 4);
14
+ const end = ordinary < 0 ? legacy : legacy < 0 ? ordinary : Math.min(ordinary, legacy);
15
+ if (end === -1)
16
+ return out; // unterminated: the rest of the document is inside it
17
+ i = end + (html.startsWith("--!>", end) ? 4 : 3);
18
+ }
19
+ };
20
+ /** Remove real HTML comments while preserving parsed tags and raw script/style
21
+ * elements verbatim. In raw text and quoted attributes, `<!--` is data rather
22
+ * than an HTML comment opener; treating it as one can hide a valid protocol post. */
23
+ const withoutComments = (html) => {
24
+ const all = tags(html);
25
+ const protectedRanges = all.map((tag) => ({
26
+ start: tag.start,
27
+ end: tag.end,
28
+ }));
29
+ for (let i = 0; i < all.length; i++) {
30
+ const open = all[i];
31
+ if (!open || open.closing || (open.name !== "script" && open.name !== "style"))
32
+ continue;
33
+ const end = elementEnd(all, i);
34
+ protectedRanges.push({ start: open.start, end: end < 0 ? html.length : end });
35
+ }
36
+ if (!protectedRanges.length)
37
+ return withoutCommentsInText(html);
38
+ protectedRanges.sort((a, b) => a.start - b.start || b.end - a.end);
39
+ let out = "";
40
+ let cursor = 0;
41
+ for (const range of protectedRanges) {
42
+ if (range.start < cursor)
43
+ continue;
44
+ out += withoutCommentsInText(html.slice(cursor, range.start));
45
+ out += html.slice(range.start, range.end);
46
+ cursor = range.end;
47
+ }
48
+ return out + withoutCommentsInText(html.slice(cursor));
49
+ };
50
+ /** Is this opening tag a slide? It carries the stable `data-derive-slide` index, or `slide`
51
+ * as a WHOLE class token.
52
+ *
53
+ * Whole token, not a substring: `\bslide\b` treats a hyphen as a word boundary, so
54
+ * `class="slide-inner"` matched — and real decks are full of `slide-inner`, `slide-chart`,
55
+ * `slide-kicker`. That made every such wrapper look like a slide nested inside its own
56
+ * slide, which inflated the count and made the slicer refuse the deck outright. Found by
57
+ * running this over real published decks rather than fixtures. */
58
+ /** How many slide elements this HTML actually contains. */
59
+ export const countSlideElements = (html) => {
60
+ let n = 0;
61
+ for (const tag of tags(html))
62
+ if (!tag.closing && SLIDE_TAGS.has(tag.name) && isSlideAttrs(tag.attrs))
63
+ n++;
64
+ return n;
65
+ };
66
+ /** Does this page announce itself to the host over the deck protocol? Matches the bare
67
+ * protocol name so either quote style (source:'derive-deck' / "derive-deck") is found. */
68
+ export const speaksDeckProtocol = (html) => withoutComments(html).includes("derive-deck");
69
+ /** How many slide elements a page needs before it is read as a deck rather than a page that
70
+ * happens to mention the protocol. Two, because a deck has at least two slides. */
71
+ const DECK_MIN_SLIDES = 2;
72
+ /** A deck: it announces itself AND has slides to announce. Both halves are required —
73
+ * the protocol name alone appears in any document about decks (this file included), and
74
+ * slides alone are just sections. */
75
+ export const isDeckDocument = (html) => {
76
+ if (!speaksDeckProtocol(html) || countSlideElements(html) < DECK_MIN_SLIDES)
77
+ return false;
78
+ // Classification enables structural editing in the UI, so it must not advertise
79
+ // a deck whose slide structure the organizer will immediately refuse. Keep this
80
+ // predicate non-throwing because it also runs while sniffing arbitrary uploads.
81
+ try {
82
+ return sliceSlides(html).length >= DECK_MIN_SLIDES;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ };
88
+ /** Slides built without the protocol: the page paginates itself and silently forfeits the
89
+ * deck bar, Present mode, and slide-pinned comments. Three, so an ordinary page with a
90
+ * couple of `.slide`-classed elements is never lectured. */
91
+ const ADVISE_MIN_SLIDES = 3;
92
+ /** True when a page is plainly a deck attempt that never announced itself. */
93
+ export const isUnannouncedDeck = (html) => {
94
+ if (speaksDeckProtocol(html) || countSlideElements(html) < ADVISE_MIN_SLIDES)
95
+ return false;
96
+ try {
97
+ return sliceSlides(html).length >= ADVISE_MIN_SLIDES;
98
+ }
99
+ catch {
100
+ return false;
101
+ }
102
+ };
103
+ //# sourceMappingURL=source-deck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-deck.js","sourceRoot":"","sources":["../../src/protocol/source-deck.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** One exact-match replacement (the Edit-tool contract: unique match or error). */
2
+ export interface DocEdit {
3
+ old_str: string;
4
+ new_str: string;
5
+ /** 1-based index of WHICH match to replace, for an `old_str` that is intentionally
6
+ * non-unique (a phrase repeated verbatim in several spots). Omit when `old_str`
7
+ * already matches exactly once — this only disambiguates a multi-match. */
8
+ occurrence?: number;
9
+ }
10
+ export declare class EditError extends Error {
11
+ }
12
+ /**
13
+ * Apply `edits` to `src` in order, each seeing the previous edit's result. Every
14
+ * `old_str` must match EXACTLY ONCE — unless `occurrence` names which of several
15
+ * identical matches to replace — or the whole batch is rejected (nothing partial
16
+ * ever lands). A miss carries a diagnostic (why it didn't match, not just that it
17
+ * didn't) so the agent fixes it in one round. Same contract as the coding Edit tool,
18
+ * so agents already know how to recover.
19
+ */
20
+ export declare function applyEdits(src: string, edits: readonly DocEdit[]): string;
21
+ //# sourceMappingURL=source-edits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-edits.d.ts","sourceRoot":"","sources":["../../src/protocol/source-edits.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf;;gFAE4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,SAAU,SAAQ,KAAK;CAAG;AA6GvC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAmCzE"}