@derive-to/artifacts 0.0.0-stage → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +197 -2
- package/dist/host/bridge.d.ts +38 -0
- package/dist/host/bridge.d.ts.map +1 -0
- package/dist/host/bridge.js +86 -0
- package/dist/host/bridge.js.map +1 -0
- package/dist/host/client.d.ts +168 -0
- package/dist/host/client.d.ts.map +1 -0
- package/dist/host/client.js +214 -0
- package/dist/host/client.js.map +1 -0
- package/dist/host/emitter.d.ts +7 -0
- package/dist/host/emitter.d.ts.map +1 -0
- package/dist/host/emitter.js +18 -0
- package/dist/host/emitter.js.map +1 -0
- package/dist/host/index.d.ts +7 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +5 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/live.d.ts +18 -0
- package/dist/host/live.d.ts.map +1 -0
- package/dist/host/live.js +32 -0
- package/dist/host/live.js.map +1 -0
- package/dist/host/print.d.ts +3 -0
- package/dist/host/print.d.ts.map +1 -0
- package/dist/host/print.js +57 -0
- package/dist/host/print.js.map +1 -0
- package/dist/host/sse.d.ts +11 -0
- package/dist/host/sse.d.ts.map +1 -0
- package/dist/host/sse.js +57 -0
- package/dist/host/sse.js.map +1 -0
- package/dist/host/view.d.ts +60 -0
- package/dist/host/view.d.ts.map +1 -0
- package/dist/host/view.js +218 -0
- package/dist/host/view.js.map +1 -0
- package/dist/protocol/access.d.ts +39 -0
- package/dist/protocol/access.d.ts.map +1 -0
- package/dist/protocol/access.js +30 -0
- package/dist/protocol/access.js.map +1 -0
- package/dist/protocol/anchors.d.ts +61 -0
- package/dist/protocol/anchors.d.ts.map +1 -0
- package/dist/protocol/anchors.js +41 -0
- package/dist/protocol/anchors.js.map +1 -0
- package/dist/protocol/collection.d.ts +33 -0
- package/dist/protocol/collection.d.ts.map +1 -0
- package/dist/protocol/collection.js +168 -0
- package/dist/protocol/collection.js.map +1 -0
- package/dist/protocol/define.d.ts +9 -0
- package/dist/protocol/define.d.ts.map +1 -0
- package/dist/protocol/define.js +2 -0
- package/dist/protocol/define.js.map +1 -0
- package/dist/protocol/errors.d.ts +55 -0
- package/dist/protocol/errors.d.ts.map +1 -0
- package/dist/protocol/errors.js +54 -0
- package/dist/protocol/errors.js.map +1 -0
- package/dist/protocol/extension.d.ts +44 -0
- package/dist/protocol/extension.d.ts.map +1 -0
- package/dist/protocol/extension.js +37 -0
- package/dist/protocol/extension.js.map +1 -0
- package/dist/protocol/http.d.ts +195 -0
- package/dist/protocol/http.d.ts.map +1 -0
- package/dist/protocol/http.js +72 -0
- package/dist/protocol/http.js.map +1 -0
- package/dist/protocol/index.d.ts +19 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +19 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/inputs.d.ts +62 -0
- package/dist/protocol/inputs.d.ts.map +1 -0
- package/dist/protocol/inputs.js +51 -0
- package/dist/protocol/inputs.js.map +1 -0
- package/dist/protocol/layout.d.ts +33 -0
- package/dist/protocol/layout.d.ts.map +1 -0
- package/dist/protocol/layout.js +45 -0
- package/dist/protocol/layout.js.map +1 -0
- package/dist/protocol/mentions.d.ts +16 -0
- package/dist/protocol/mentions.d.ts.map +1 -0
- package/dist/protocol/mentions.js +35 -0
- package/dist/protocol/mentions.js.map +1 -0
- package/dist/protocol/methods.d.ts +146 -0
- package/dist/protocol/methods.d.ts.map +1 -0
- package/dist/protocol/methods.js +57 -0
- package/dist/protocol/methods.js.map +1 -0
- package/dist/protocol/presentation.d.ts +9 -0
- package/dist/protocol/presentation.d.ts.map +1 -0
- package/dist/protocol/presentation.js +7 -0
- package/dist/protocol/presentation.js.map +1 -0
- package/dist/protocol/quote-match.d.ts +20 -0
- package/dist/protocol/quote-match.d.ts.map +1 -0
- package/dist/protocol/quote-match.js +33 -0
- package/dist/protocol/quote-match.js.map +1 -0
- package/dist/protocol/sharing.d.ts +133 -0
- package/dist/protocol/sharing.d.ts.map +1 -0
- package/dist/protocol/sharing.js +67 -0
- package/dist/protocol/sharing.js.map +1 -0
- package/dist/protocol/slot-map.d.ts +4 -0
- package/dist/protocol/slot-map.d.ts.map +1 -0
- package/dist/protocol/slot-map.js +10 -0
- package/dist/protocol/slot-map.js.map +1 -0
- package/dist/protocol/source-anchors.d.ts +101 -0
- package/dist/protocol/source-anchors.d.ts.map +1 -0
- package/dist/protocol/source-anchors.js +250 -0
- package/dist/protocol/source-anchors.js.map +1 -0
- package/dist/protocol/source-assets.d.ts +15 -0
- package/dist/protocol/source-assets.d.ts.map +1 -0
- package/dist/protocol/source-assets.js +66 -0
- package/dist/protocol/source-assets.js.map +1 -0
- package/dist/protocol/source-cache.d.ts +23 -0
- package/dist/protocol/source-cache.d.ts.map +1 -0
- package/dist/protocol/source-cache.js +52 -0
- package/dist/protocol/source-cache.js.map +1 -0
- package/dist/protocol/source-copy-dom.d.ts +11 -0
- package/dist/protocol/source-copy-dom.d.ts.map +1 -0
- package/dist/protocol/source-copy-dom.js +103 -0
- package/dist/protocol/source-copy-dom.js.map +1 -0
- package/dist/protocol/source-copy-identities.d.ts +19 -0
- package/dist/protocol/source-copy-identities.d.ts.map +1 -0
- package/dist/protocol/source-copy-identities.js +119 -0
- package/dist/protocol/source-copy-identities.js.map +1 -0
- package/dist/protocol/source-deck-elements.d.ts +30 -0
- package/dist/protocol/source-deck-elements.d.ts.map +1 -0
- package/dist/protocol/source-deck-elements.js +67 -0
- package/dist/protocol/source-deck-elements.js.map +1 -0
- package/dist/protocol/source-deck-ops.d.ts +18 -0
- package/dist/protocol/source-deck-ops.d.ts.map +1 -0
- package/dist/protocol/source-deck-ops.js +154 -0
- package/dist/protocol/source-deck-ops.js.map +1 -0
- package/dist/protocol/source-deck.d.ts +20 -0
- package/dist/protocol/source-deck.d.ts.map +1 -0
- package/dist/protocol/source-deck.js +103 -0
- package/dist/protocol/source-deck.js.map +1 -0
- package/dist/protocol/source-edits.d.ts +21 -0
- package/dist/protocol/source-edits.d.ts.map +1 -0
- package/dist/protocol/source-edits.js +126 -0
- package/dist/protocol/source-edits.js.map +1 -0
- package/dist/protocol/source-element-edits.d.ts +24 -0
- package/dist/protocol/source-element-edits.d.ts.map +1 -0
- package/dist/protocol/source-element-edits.js +93 -0
- package/dist/protocol/source-element-edits.js.map +1 -0
- package/dist/protocol/source-element-match.d.ts +4 -0
- package/dist/protocol/source-element-match.d.ts.map +1 -0
- package/dist/protocol/source-element-match.js +40 -0
- package/dist/protocol/source-element-match.js.map +1 -0
- package/dist/protocol/source-element-neighbors.d.ts +8 -0
- package/dist/protocol/source-element-neighbors.d.ts.map +1 -0
- package/dist/protocol/source-element-neighbors.js +39 -0
- package/dist/protocol/source-element-neighbors.js.map +1 -0
- package/dist/protocol/source-element-properties.d.ts +25 -0
- package/dist/protocol/source-element-properties.d.ts.map +1 -0
- package/dist/protocol/source-element-properties.js +71 -0
- package/dist/protocol/source-element-properties.js.map +1 -0
- package/dist/protocol/source-element-scan.d.ts +4 -0
- package/dist/protocol/source-element-scan.d.ts.map +1 -0
- package/dist/protocol/source-element-scan.js +181 -0
- package/dist/protocol/source-element-scan.js.map +1 -0
- package/dist/protocol/source-element-score.d.ts +12 -0
- package/dist/protocol/source-element-score.d.ts.map +1 -0
- package/dist/protocol/source-element-score.js +82 -0
- package/dist/protocol/source-element-score.js.map +1 -0
- package/dist/protocol/source-element-selector.d.ts +19 -0
- package/dist/protocol/source-element-selector.d.ts.map +1 -0
- package/dist/protocol/source-element-selector.js +115 -0
- package/dist/protocol/source-element-selector.js.map +1 -0
- package/dist/protocol/source-element-types.d.ts +79 -0
- package/dist/protocol/source-element-types.d.ts.map +1 -0
- package/dist/protocol/source-element-types.js +2 -0
- package/dist/protocol/source-element-types.js.map +1 -0
- package/dist/protocol/source-elements.d.ts +7 -0
- package/dist/protocol/source-elements.d.ts.map +1 -0
- package/dist/protocol/source-elements.js +6 -0
- package/dist/protocol/source-elements.js.map +1 -0
- package/dist/protocol/source-entities.d.ts +17 -0
- package/dist/protocol/source-entities.d.ts.map +1 -0
- package/dist/protocol/source-entities.js +45 -0
- package/dist/protocol/source-entities.js.map +1 -0
- package/dist/protocol/source-hash.d.ts +4 -0
- package/dist/protocol/source-hash.d.ts.map +1 -0
- package/dist/protocol/source-hash.js +5 -0
- package/dist/protocol/source-hash.js.map +1 -0
- package/dist/protocol/source-head.d.ts +4 -0
- package/dist/protocol/source-head.d.ts.map +1 -0
- package/dist/protocol/source-head.js +79 -0
- package/dist/protocol/source-head.js.map +1 -0
- package/dist/protocol/source-html-attributes.d.ts +20 -0
- package/dist/protocol/source-html-attributes.d.ts.map +1 -0
- package/dist/protocol/source-html-attributes.js +89 -0
- package/dist/protocol/source-html-attributes.js.map +1 -0
- package/dist/protocol/source-html-elements.d.ts +5 -0
- package/dist/protocol/source-html-elements.d.ts.map +1 -0
- package/dist/protocol/source-html-elements.js +144 -0
- package/dist/protocol/source-html-elements.js.map +1 -0
- package/dist/protocol/source-html.d.ts +51 -0
- package/dist/protocol/source-html.d.ts.map +1 -0
- package/dist/protocol/source-html.js +167 -0
- package/dist/protocol/source-html.js.map +1 -0
- package/dist/protocol/source-layout-limits.d.ts +21 -0
- package/dist/protocol/source-layout-limits.d.ts.map +1 -0
- package/dist/protocol/source-layout-limits.js +20 -0
- package/dist/protocol/source-layout-limits.js.map +1 -0
- package/dist/protocol/source-layout.d.ts +29 -0
- package/dist/protocol/source-layout.d.ts.map +1 -0
- package/dist/protocol/source-layout.js +149 -0
- package/dist/protocol/source-layout.js.map +1 -0
- package/dist/protocol/source-markdown-blocks.d.ts +4 -0
- package/dist/protocol/source-markdown-blocks.d.ts.map +1 -0
- package/dist/protocol/source-markdown-blocks.js +175 -0
- package/dist/protocol/source-markdown-blocks.js.map +1 -0
- package/dist/protocol/source-markdown-history.d.ts +26 -0
- package/dist/protocol/source-markdown-history.d.ts.map +1 -0
- package/dist/protocol/source-markdown-history.js +133 -0
- package/dist/protocol/source-markdown-history.js.map +1 -0
- package/dist/protocol/source-markdown-inline.d.ts +20 -0
- package/dist/protocol/source-markdown-inline.d.ts.map +1 -0
- package/dist/protocol/source-markdown-inline.js +155 -0
- package/dist/protocol/source-markdown-inline.js.map +1 -0
- package/dist/protocol/source-markdown-model.d.ts +49 -0
- package/dist/protocol/source-markdown-model.d.ts.map +1 -0
- package/dist/protocol/source-markdown-model.js +28 -0
- package/dist/protocol/source-markdown-model.js.map +1 -0
- package/dist/protocol/source-markdown-op-align.d.ts +5 -0
- package/dist/protocol/source-markdown-op-align.d.ts.map +1 -0
- package/dist/protocol/source-markdown-op-align.js +49 -0
- package/dist/protocol/source-markdown-op-align.js.map +1 -0
- package/dist/protocol/source-markdown-op-blocks.d.ts +4 -0
- package/dist/protocol/source-markdown-op-blocks.d.ts.map +1 -0
- package/dist/protocol/source-markdown-op-blocks.js +198 -0
- package/dist/protocol/source-markdown-op-blocks.js.map +1 -0
- package/dist/protocol/source-markdown-op-context.d.ts +38 -0
- package/dist/protocol/source-markdown-op-context.d.ts.map +1 -0
- package/dist/protocol/source-markdown-op-context.js +44 -0
- package/dist/protocol/source-markdown-op-context.js.map +1 -0
- package/dist/protocol/source-markdown-op-inline.d.ts +8 -0
- package/dist/protocol/source-markdown-op-inline.d.ts.map +1 -0
- package/dist/protocol/source-markdown-op-inline.js +281 -0
- package/dist/protocol/source-markdown-op-inline.js.map +1 -0
- package/dist/protocol/source-markdown-op-reading.d.ts +7 -0
- package/dist/protocol/source-markdown-op-reading.d.ts.map +1 -0
- package/dist/protocol/source-markdown-op-reading.js +93 -0
- package/dist/protocol/source-markdown-op-reading.js.map +1 -0
- package/dist/protocol/source-markdown-ops.d.ts +13 -0
- package/dist/protocol/source-markdown-ops.d.ts.map +1 -0
- package/dist/protocol/source-markdown-ops.js +105 -0
- package/dist/protocol/source-markdown-ops.js.map +1 -0
- package/dist/protocol/source-markdown-projection.d.ts +30 -0
- package/dist/protocol/source-markdown-projection.d.ts.map +1 -0
- package/dist/protocol/source-markdown-projection.js +164 -0
- package/dist/protocol/source-markdown-projection.js.map +1 -0
- package/dist/protocol/source-markdown-types.d.ts +32 -0
- package/dist/protocol/source-markdown-types.d.ts.map +1 -0
- package/dist/protocol/source-markdown-types.js +2 -0
- package/dist/protocol/source-markdown-types.js.map +1 -0
- package/dist/protocol/source-markdown.d.ts +5 -0
- package/dist/protocol/source-markdown.d.ts.map +1 -0
- package/dist/protocol/source-markdown.js +9 -0
- package/dist/protocol/source-markdown.js.map +1 -0
- package/dist/protocol/source-op-apply.d.ts +14 -0
- package/dist/protocol/source-op-apply.d.ts.map +1 -0
- package/dist/protocol/source-op-apply.js +77 -0
- package/dist/protocol/source-op-apply.js.map +1 -0
- package/dist/protocol/source-op-context.d.ts +35 -0
- package/dist/protocol/source-op-context.d.ts.map +1 -0
- package/dist/protocol/source-op-context.js +97 -0
- package/dist/protocol/source-op-context.js.map +1 -0
- package/dist/protocol/source-op-hash.d.ts +36 -0
- package/dist/protocol/source-op-hash.d.ts.map +1 -0
- package/dist/protocol/source-op-hash.js +181 -0
- package/dist/protocol/source-op-hash.js.map +1 -0
- package/dist/protocol/source-op-history.d.ts +10 -0
- package/dist/protocol/source-op-history.d.ts.map +1 -0
- package/dist/protocol/source-op-history.js +85 -0
- package/dist/protocol/source-op-history.js.map +1 -0
- package/dist/protocol/source-op-index.d.ts +19 -0
- package/dist/protocol/source-op-index.d.ts.map +1 -0
- package/dist/protocol/source-op-index.js +53 -0
- package/dist/protocol/source-op-index.js.map +1 -0
- package/dist/protocol/source-op-parse.d.ts +11 -0
- package/dist/protocol/source-op-parse.d.ts.map +1 -0
- package/dist/protocol/source-op-parse.js +138 -0
- package/dist/protocol/source-op-parse.js.map +1 -0
- package/dist/protocol/source-op-preservation.d.ts +11 -0
- package/dist/protocol/source-op-preservation.d.ts.map +1 -0
- package/dist/protocol/source-op-preservation.js +47 -0
- package/dist/protocol/source-op-preservation.js.map +1 -0
- package/dist/protocol/source-op-render.d.ts +17 -0
- package/dist/protocol/source-op-render.d.ts.map +1 -0
- package/dist/protocol/source-op-render.js +116 -0
- package/dist/protocol/source-op-render.js.map +1 -0
- package/dist/protocol/source-op-types.d.ts +51 -0
- package/dist/protocol/source-op-types.d.ts.map +1 -0
- package/dist/protocol/source-op-types.js +2 -0
- package/dist/protocol/source-op-types.js.map +1 -0
- package/dist/protocol/source-quote-selector.d.ts +12 -0
- package/dist/protocol/source-quote-selector.d.ts.map +1 -0
- package/dist/protocol/source-quote-selector.js +29 -0
- package/dist/protocol/source-quote-selector.js.map +1 -0
- package/dist/protocol/source-ranges.d.ts +11 -0
- package/dist/protocol/source-ranges.d.ts.map +1 -0
- package/dist/protocol/source-ranges.js +37 -0
- package/dist/protocol/source-ranges.js.map +1 -0
- package/dist/protocol/source-read-html-navigation.d.ts +12 -0
- package/dist/protocol/source-read-html-navigation.d.ts.map +1 -0
- package/dist/protocol/source-read-html-navigation.js +76 -0
- package/dist/protocol/source-read-html-navigation.js.map +1 -0
- package/dist/protocol/source-read-html-tokens.d.ts +12 -0
- package/dist/protocol/source-read-html-tokens.d.ts.map +1 -0
- package/dist/protocol/source-read-html-tokens.js +58 -0
- package/dist/protocol/source-read-html-tokens.js.map +1 -0
- package/dist/protocol/source-read-landmarks.d.ts +24 -0
- package/dist/protocol/source-read-landmarks.d.ts.map +1 -0
- package/dist/protocol/source-read-landmarks.js +73 -0
- package/dist/protocol/source-read-landmarks.js.map +1 -0
- package/dist/protocol/source-read-markdown-blocks.d.ts +4 -0
- package/dist/protocol/source-read-markdown-blocks.d.ts.map +1 -0
- package/dist/protocol/source-read-markdown-blocks.js +87 -0
- package/dist/protocol/source-read-markdown-blocks.js.map +1 -0
- package/dist/protocol/source-read-markdown-inline.d.ts +4 -0
- package/dist/protocol/source-read-markdown-inline.d.ts.map +1 -0
- package/dist/protocol/source-read-markdown-inline.js +63 -0
- package/dist/protocol/source-read-markdown-inline.js.map +1 -0
- package/dist/protocol/source-read-markdown-state.d.ts +33 -0
- package/dist/protocol/source-read-markdown-state.d.ts.map +1 -0
- package/dist/protocol/source-read-markdown-state.js +79 -0
- package/dist/protocol/source-read-markdown-state.js.map +1 -0
- package/dist/protocol/source-read-markdown-tables.d.ts +4 -0
- package/dist/protocol/source-read-markdown-tables.d.ts.map +1 -0
- package/dist/protocol/source-read-markdown-tables.js +68 -0
- package/dist/protocol/source-read-markdown-tables.js.map +1 -0
- package/dist/protocol/source-read-markdown-text.d.ts +8 -0
- package/dist/protocol/source-read-markdown-text.d.ts.map +1 -0
- package/dist/protocol/source-read-markdown-text.js +42 -0
- package/dist/protocol/source-read-markdown-text.js.map +1 -0
- package/dist/protocol/source-read-markdown.d.ts +9 -0
- package/dist/protocol/source-read-markdown.d.ts.map +1 -0
- package/dist/protocol/source-read-markdown.js +106 -0
- package/dist/protocol/source-read-markdown.js.map +1 -0
- package/dist/protocol/source-read-spine.d.ts +33 -0
- package/dist/protocol/source-read-spine.d.ts.map +1 -0
- package/dist/protocol/source-read-spine.js +94 -0
- package/dist/protocol/source-read-spine.js.map +1 -0
- package/dist/protocol/source-reflow.d.ts +7 -0
- package/dist/protocol/source-reflow.d.ts.map +1 -0
- package/dist/protocol/source-reflow.js +127 -0
- package/dist/protocol/source-reflow.js.map +1 -0
- package/dist/protocol/source-stamp.d.ts +22 -0
- package/dist/protocol/source-stamp.d.ts.map +1 -0
- package/dist/protocol/source-stamp.js +52 -0
- package/dist/protocol/source-stamp.js.map +1 -0
- package/dist/protocol/source-stamped-sync.d.ts +11 -0
- package/dist/protocol/source-stamped-sync.d.ts.map +1 -0
- package/dist/protocol/source-stamped-sync.js +238 -0
- package/dist/protocol/source-stamped-sync.js.map +1 -0
- package/dist/protocol/source-structural-apply.d.ts +5 -0
- package/dist/protocol/source-structural-apply.d.ts.map +1 -0
- package/dist/protocol/source-structural-apply.js +59 -0
- package/dist/protocol/source-structural-apply.js.map +1 -0
- package/dist/protocol/source-structural-backfill-parts.d.ts +25 -0
- package/dist/protocol/source-structural-backfill-parts.d.ts.map +1 -0
- package/dist/protocol/source-structural-backfill-parts.js +85 -0
- package/dist/protocol/source-structural-backfill-parts.js.map +1 -0
- package/dist/protocol/source-structural-backfill-rules.d.ts +9 -0
- package/dist/protocol/source-structural-backfill-rules.d.ts.map +1 -0
- package/dist/protocol/source-structural-backfill-rules.js +94 -0
- package/dist/protocol/source-structural-backfill-rules.js.map +1 -0
- package/dist/protocol/source-structural-backfill.d.ts +7 -0
- package/dist/protocol/source-structural-backfill.d.ts.map +1 -0
- package/dist/protocol/source-structural-backfill.js +79 -0
- package/dist/protocol/source-structural-backfill.js.map +1 -0
- package/dist/protocol/source-structural-gap.d.ts +5 -0
- package/dist/protocol/source-structural-gap.d.ts.map +1 -0
- package/dist/protocol/source-structural-gap.js +21 -0
- package/dist/protocol/source-structural-gap.js.map +1 -0
- package/dist/protocol/source-structural-inspect.d.ts +5 -0
- package/dist/protocol/source-structural-inspect.d.ts.map +1 -0
- package/dist/protocol/source-structural-inspect.js +137 -0
- package/dist/protocol/source-structural-inspect.js.map +1 -0
- package/dist/protocol/source-structural-order.d.ts +22 -0
- package/dist/protocol/source-structural-order.d.ts.map +1 -0
- package/dist/protocol/source-structural-order.js +128 -0
- package/dist/protocol/source-structural-order.js.map +1 -0
- package/dist/protocol/source-structural-size.d.ts +14 -0
- package/dist/protocol/source-structural-size.d.ts.map +1 -0
- package/dist/protocol/source-structural-size.js +99 -0
- package/dist/protocol/source-structural-size.js.map +1 -0
- package/dist/protocol/source-structural-spacing.d.ts +10 -0
- package/dist/protocol/source-structural-spacing.d.ts.map +1 -0
- package/dist/protocol/source-structural-spacing.js +55 -0
- package/dist/protocol/source-structural-spacing.js.map +1 -0
- package/dist/protocol/source-structural-targets.d.ts +8 -0
- package/dist/protocol/source-structural-targets.d.ts.map +1 -0
- package/dist/protocol/source-structural-targets.js +55 -0
- package/dist/protocol/source-structural-targets.js.map +1 -0
- package/dist/protocol/source-structural-types.d.ts +120 -0
- package/dist/protocol/source-structural-types.d.ts.map +1 -0
- package/dist/protocol/source-structural-types.js +3 -0
- package/dist/protocol/source-structural-types.js.map +1 -0
- package/dist/protocol/source-style.d.ts +15 -0
- package/dist/protocol/source-style.d.ts.map +1 -0
- package/dist/protocol/source-style.js +130 -0
- package/dist/protocol/source-style.js.map +1 -0
- package/dist/protocol/source-tags.d.ts +6 -0
- package/dist/protocol/source-tags.d.ts.map +1 -0
- package/dist/protocol/source-tags.js +5 -0
- package/dist/protocol/source-tags.js.map +1 -0
- package/dist/protocol/source-text-index.d.ts +22 -0
- package/dist/protocol/source-text-index.d.ts.map +1 -0
- package/dist/protocol/source-text-index.js +95 -0
- package/dist/protocol/source-text-index.js.map +1 -0
- package/dist/protocol/source-text-range.d.ts +9 -0
- package/dist/protocol/source-text-range.d.ts.map +1 -0
- package/dist/protocol/source-text-range.js +55 -0
- package/dist/protocol/source-text-range.js.map +1 -0
- package/dist/protocol/source-text-segments.d.ts +27 -0
- package/dist/protocol/source-text-segments.d.ts.map +1 -0
- package/dist/protocol/source-text-segments.js +65 -0
- package/dist/protocol/source-text-segments.js.map +1 -0
- package/dist/protocol/source-text.d.ts +9 -0
- package/dist/protocol/source-text.d.ts.map +1 -0
- package/dist/protocol/source-text.js +72 -0
- package/dist/protocol/source-text.js.map +1 -0
- package/dist/protocol/source-video-attributes.d.ts +5 -0
- package/dist/protocol/source-video-attributes.d.ts.map +1 -0
- package/dist/protocol/source-video-attributes.js +29 -0
- package/dist/protocol/source-video-attributes.js.map +1 -0
- package/dist/protocol/source-video-edits.d.ts +4 -0
- package/dist/protocol/source-video-edits.d.ts.map +1 -0
- package/dist/protocol/source-video-edits.js +85 -0
- package/dist/protocol/source-video-edits.js.map +1 -0
- package/dist/protocol/source-video-id.d.ts +4 -0
- package/dist/protocol/source-video-id.d.ts.map +1 -0
- package/dist/protocol/source-video-id.js +9 -0
- package/dist/protocol/source-video-id.js.map +1 -0
- package/dist/protocol/source-video.d.ts +38 -0
- package/dist/protocol/source-video.d.ts.map +1 -0
- package/dist/protocol/source-video.js +116 -0
- package/dist/protocol/source-video.js.map +1 -0
- package/dist/protocol/source.d.ts +47 -0
- package/dist/protocol/source.d.ts.map +1 -0
- package/dist/protocol/source.js +45 -0
- package/dist/protocol/source.js.map +1 -0
- package/dist/protocol/state-apply.d.ts +22 -0
- package/dist/protocol/state-apply.d.ts.map +1 -0
- package/dist/protocol/state-apply.js +13 -0
- package/dist/protocol/state-apply.js.map +1 -0
- package/dist/protocol/state-limits.d.ts +10 -0
- package/dist/protocol/state-limits.d.ts.map +1 -0
- package/dist/protocol/state-limits.js +11 -0
- package/dist/protocol/state-limits.js.map +1 -0
- package/dist/protocol/state.d.ts +60 -0
- package/dist/protocol/state.d.ts.map +1 -0
- package/dist/protocol/state.js +56 -0
- package/dist/protocol/state.js.map +1 -0
- package/dist/protocol/text.d.ts +9 -0
- package/dist/protocol/text.d.ts.map +1 -0
- package/dist/protocol/text.js +72 -0
- package/dist/protocol/text.js.map +1 -0
- package/dist/protocol/tools.d.ts +81 -0
- package/dist/protocol/tools.d.ts.map +1 -0
- package/dist/protocol/tools.js +29 -0
- package/dist/protocol/tools.js.map +1 -0
- package/dist/protocol/viewer.d.ts +21 -0
- package/dist/protocol/viewer.d.ts.map +1 -0
- package/dist/protocol/viewer.js +18 -0
- package/dist/protocol/viewer.js.map +1 -0
- package/dist/react/artifact-list.d.ts +17 -0
- package/dist/react/artifact-list.d.ts.map +1 -0
- package/dist/react/artifact-list.js +121 -0
- package/dist/react/artifact-list.js.map +1 -0
- package/dist/react/comment-body.d.ts +5 -0
- package/dist/react/comment-body.d.ts.map +1 -0
- package/dist/react/comment-body.js +14 -0
- package/dist/react/comment-body.js.map +1 -0
- package/dist/react/comment-input.d.ts +18 -0
- package/dist/react/comment-input.d.ts.map +1 -0
- package/dist/react/comment-input.js +74 -0
- package/dist/react/comment-input.js.map +1 -0
- package/dist/react/composer.d.ts +10 -0
- package/dist/react/composer.d.ts.map +1 -0
- package/dist/react/composer.js +42 -0
- package/dist/react/composer.js.map +1 -0
- package/dist/react/context.d.ts +57 -0
- package/dist/react/context.d.ts.map +1 -0
- package/dist/react/context.js +11 -0
- package/dist/react/context.js.map +1 -0
- package/dist/react/cursors.d.ts +3 -0
- package/dist/react/cursors.d.ts.map +1 -0
- package/dist/react/cursors.js +8 -0
- package/dist/react/cursors.js.map +1 -0
- package/dist/react/edit-controls.d.ts +4 -0
- package/dist/react/edit-controls.d.ts.map +1 -0
- package/dist/react/edit-controls.js +29 -0
- package/dist/react/edit-controls.js.map +1 -0
- package/dist/react/editing-actions.d.ts +44 -0
- package/dist/react/editing-actions.d.ts.map +1 -0
- package/dist/react/editing-actions.js +129 -0
- package/dist/react/editing-actions.js.map +1 -0
- package/dist/react/history.css +79 -0
- package/dist/react/index.d.ts +20 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +19 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/labels.d.ts +124 -0
- package/dist/react/labels.d.ts.map +1 -0
- package/dist/react/labels.js +115 -0
- package/dist/react/labels.js.map +1 -0
- package/dist/react/layout-surface.d.ts +29 -0
- package/dist/react/layout-surface.d.ts.map +1 -0
- package/dist/react/layout-surface.js +111 -0
- package/dist/react/layout-surface.js.map +1 -0
- package/dist/react/mention-list.d.ts +12 -0
- package/dist/react/mention-list.d.ts.map +1 -0
- package/dist/react/mention-list.js +16 -0
- package/dist/react/mention-list.js.map +1 -0
- package/dist/react/native-stage.d.ts +8 -0
- package/dist/react/native-stage.d.ts.map +1 -0
- package/dist/react/native-stage.js +41 -0
- package/dist/react/native-stage.js.map +1 -0
- package/dist/react/overlays.css +43 -0
- package/dist/react/panel.css +488 -0
- package/dist/react/panel.d.ts +26 -0
- package/dist/react/panel.d.ts.map +1 -0
- package/dist/react/panel.js +101 -0
- package/dist/react/panel.js.map +1 -0
- package/dist/react/presence.d.ts +3 -0
- package/dist/react/presence.d.ts.map +1 -0
- package/dist/react/presence.js +23 -0
- package/dist/react/presence.js.map +1 -0
- package/dist/react/present-button.d.ts +3 -0
- package/dist/react/present-button.d.ts.map +1 -0
- package/dist/react/present-button.js +14 -0
- package/dist/react/present-button.js.map +1 -0
- package/dist/react/provider.d.ts +22 -0
- package/dist/react/provider.d.ts.map +1 -0
- package/dist/react/provider.js +163 -0
- package/dist/react/provider.js.map +1 -0
- package/dist/react/rail-layout.d.ts +10 -0
- package/dist/react/rail-layout.d.ts.map +1 -0
- package/dist/react/rail-layout.js +32 -0
- package/dist/react/rail-layout.js.map +1 -0
- package/dist/react/rail.d.ts +10 -0
- package/dist/react/rail.d.ts.map +1 -0
- package/dist/react/rail.js +38 -0
- package/dist/react/rail.js.map +1 -0
- package/dist/react/role-badge.d.ts +17 -0
- package/dist/react/role-badge.d.ts.map +1 -0
- package/dist/react/role-badge.js +26 -0
- package/dist/react/role-badge.js.map +1 -0
- package/dist/react/selection-button.d.ts +3 -0
- package/dist/react/selection-button.d.ts.map +1 -0
- package/dist/react/selection-button.js +14 -0
- package/dist/react/selection-button.js.map +1 -0
- package/dist/react/sharing-panel.d.ts +8 -0
- package/dist/react/sharing-panel.d.ts.map +1 -0
- package/dist/react/sharing-panel.js +105 -0
- package/dist/react/sharing-panel.js.map +1 -0
- package/dist/react/slide-navigator.css +164 -0
- package/dist/react/slide-navigator.d.ts +5 -0
- package/dist/react/slide-navigator.d.ts.map +1 -0
- package/dist/react/slide-navigator.js +120 -0
- package/dist/react/slide-navigator.js.map +1 -0
- package/dist/react/stage.css +84 -0
- package/dist/react/stage.d.ts +13 -0
- package/dist/react/stage.d.ts.map +1 -0
- package/dist/react/stage.js +176 -0
- package/dist/react/stage.js.map +1 -0
- package/dist/react/styles.css +374 -0
- package/dist/react/thread-card.d.ts +8 -0
- package/dist/react/thread-card.d.ts.map +1 -0
- package/dist/react/thread-card.js +75 -0
- package/dist/react/thread-card.js.map +1 -0
- package/dist/react/time.d.ts +7 -0
- package/dist/react/time.d.ts.map +1 -0
- package/dist/react/time.js +19 -0
- package/dist/react/time.js.map +1 -0
- package/dist/react/tokens.css +58 -0
- package/dist/react/use-actions.d.ts +27 -0
- package/dist/react/use-actions.d.ts.map +1 -0
- package/dist/react/use-actions.js +91 -0
- package/dist/react/use-actions.js.map +1 -0
- package/dist/react/use-editing.d.ts +28 -0
- package/dist/react/use-editing.d.ts.map +1 -0
- package/dist/react/use-editing.js +70 -0
- package/dist/react/use-editing.js.map +1 -0
- package/dist/react/use-latest.d.ts +4 -0
- package/dist/react/use-latest.d.ts.map +1 -0
- package/dist/react/use-latest.js +11 -0
- package/dist/react/use-latest.js.map +1 -0
- package/dist/react/use-live.d.ts +58 -0
- package/dist/react/use-live.d.ts.map +1 -0
- package/dist/react/use-live.js +42 -0
- package/dist/react/use-live.js.map +1 -0
- package/dist/react/use-mention-picker.d.ts +18 -0
- package/dist/react/use-mention-picker.d.ts.map +1 -0
- package/dist/react/use-mention-picker.js +66 -0
- package/dist/react/use-mention-picker.js.map +1 -0
- package/dist/react/use-presence-sender.d.ts +4 -0
- package/dist/react/use-presence-sender.d.ts.map +1 -0
- package/dist/react/use-presence-sender.js +27 -0
- package/dist/react/use-presence-sender.js.map +1 -0
- package/dist/react/use-presenting.d.ts +26 -0
- package/dist/react/use-presenting.d.ts.map +1 -0
- package/dist/react/use-presenting.js +118 -0
- package/dist/react/use-presenting.js.map +1 -0
- package/dist/react/use-rail-layout.d.ts +13 -0
- package/dist/react/use-rail-layout.d.ts.map +1 -0
- package/dist/react/use-rail-layout.js +38 -0
- package/dist/react/use-rail-layout.js.map +1 -0
- package/dist/react/use-sharing.d.ts +27 -0
- package/dist/react/use-sharing.d.ts.map +1 -0
- package/dist/react/use-sharing.js +93 -0
- package/dist/react/use-sharing.js.map +1 -0
- package/dist/react/version-history.d.ts +12 -0
- package/dist/react/version-history.d.ts.map +1 -0
- package/dist/react/version-history.js +81 -0
- package/dist/react/version-history.js.map +1 -0
- package/dist/runtime/anchoring.d.ts +17 -0
- package/dist/runtime/anchoring.d.ts.map +1 -0
- package/dist/runtime/anchoring.js +258 -0
- package/dist/runtime/anchoring.js.map +1 -0
- package/dist/runtime/assets.d.ts +6 -0
- package/dist/runtime/assets.js +3 -0
- package/dist/runtime/connection.d.ts +32 -0
- package/dist/runtime/connection.d.ts.map +1 -0
- package/dist/runtime/connection.js +27 -0
- package/dist/runtime/connection.js.map +1 -0
- package/dist/runtime/editing.d.ts +10 -0
- package/dist/runtime/editing.d.ts.map +1 -0
- package/dist/runtime/editing.js +170 -0
- package/dist/runtime/editing.js.map +1 -0
- package/dist/runtime/geometry.d.ts +4 -0
- package/dist/runtime/geometry.d.ts.map +1 -0
- package/dist/runtime/geometry.js +8 -0
- package/dist/runtime/geometry.js.map +1 -0
- package/dist/runtime/highlights.d.ts +2 -0
- package/dist/runtime/highlights.d.ts.map +1 -0
- package/dist/runtime/highlights.js +29 -0
- package/dist/runtime/highlights.js.map +1 -0
- package/dist/runtime/index.d.ts +6 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +4 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/layout-handle.d.ts +33 -0
- package/dist/runtime/layout-handle.d.ts.map +1 -0
- package/dist/runtime/layout-handle.js +218 -0
- package/dist/runtime/layout-handle.js.map +1 -0
- package/dist/runtime/layout.d.ts +27 -0
- package/dist/runtime/layout.d.ts.map +1 -0
- package/dist/runtime/layout.js +290 -0
- package/dist/runtime/layout.js.map +1 -0
- package/dist/runtime/presence.d.ts +5 -0
- package/dist/runtime/presence.d.ts.map +1 -0
- package/dist/runtime/presence.js +26 -0
- package/dist/runtime/presence.js.map +1 -0
- package/dist/runtime/runtime.d.ts +31 -0
- package/dist/runtime/runtime.d.ts.map +1 -0
- package/dist/runtime/runtime.entry.d.ts +9 -0
- package/dist/runtime/runtime.entry.d.ts.map +1 -0
- package/dist/runtime/runtime.entry.js +6 -0
- package/dist/runtime/runtime.entry.js.map +1 -0
- package/dist/runtime/runtime.js +189 -0
- package/dist/runtime/runtime.js.map +1 -0
- package/dist/runtime/sandbox/relay.d.ts +2 -0
- package/dist/runtime/sandbox/relay.d.ts.map +1 -0
- package/dist/runtime/sandbox/relay.js +82 -0
- package/dist/runtime/sandbox/relay.js.map +1 -0
- package/dist/runtime/sandbox.entry.d.ts +2 -0
- package/dist/runtime/sandbox.entry.d.ts.map +1 -0
- package/dist/runtime/sandbox.entry.js +3 -0
- package/dist/runtime/sandbox.entry.js.map +1 -0
- package/dist/runtime/shared.d.ts +22 -0
- package/dist/runtime/shared.d.ts.map +1 -0
- package/dist/runtime/shared.js +118 -0
- package/dist/runtime/shared.js.map +1 -0
- package/dist/runtime/slides.d.ts +20 -0
- package/dist/runtime/slides.d.ts.map +1 -0
- package/dist/runtime/slides.js +143 -0
- package/dist/runtime/slides.js.map +1 -0
- package/dist/runtime/source-align.d.ts +12 -0
- package/dist/runtime/source-align.d.ts.map +1 -0
- package/dist/runtime/source-align.js +158 -0
- package/dist/runtime/source-align.js.map +1 -0
- package/dist/runtime/source-attributes.d.ts +34 -0
- package/dist/runtime/source-attributes.d.ts.map +1 -0
- package/dist/runtime/source-attributes.js +51 -0
- package/dist/runtime/source-attributes.js.map +1 -0
- package/dist/runtime/source-copy-origin.d.ts +5 -0
- package/dist/runtime/source-copy-origin.d.ts.map +1 -0
- package/dist/runtime/source-copy-origin.js +28 -0
- package/dist/runtime/source-copy-origin.js.map +1 -0
- package/dist/runtime/source-element-dom-resolve.d.ts +11 -0
- package/dist/runtime/source-element-dom-resolve.d.ts.map +1 -0
- package/dist/runtime/source-element-dom-resolve.js +104 -0
- package/dist/runtime/source-element-dom-resolve.js.map +1 -0
- package/dist/runtime/source-element-dom.d.ts +14 -0
- package/dist/runtime/source-element-dom.d.ts.map +1 -0
- package/dist/runtime/source-element-dom.js +75 -0
- package/dist/runtime/source-element-dom.js.map +1 -0
- package/dist/runtime/source-page.d.ts +32 -0
- package/dist/runtime/source-page.d.ts.map +1 -0
- package/dist/runtime/source-page.js +137 -0
- package/dist/runtime/source-page.js.map +1 -0
- package/dist/runtime/source-patch.d.ts +20 -0
- package/dist/runtime/source-patch.d.ts.map +1 -0
- package/dist/runtime/source-patch.js +94 -0
- package/dist/runtime/source-patch.js.map +1 -0
- package/dist/runtime/source-serialize.d.ts +12 -0
- package/dist/runtime/source-serialize.d.ts.map +1 -0
- package/dist/runtime/source-serialize.js +144 -0
- package/dist/runtime/source-serialize.js.map +1 -0
- package/dist/runtime/source-text-anchor.d.ts +5 -0
- package/dist/runtime/source-text-anchor.d.ts.map +1 -0
- package/dist/runtime/source-text-anchor.js +27 -0
- package/dist/runtime/source-text-anchor.js.map +1 -0
- package/dist/runtime/source-text-dom.d.ts +5 -0
- package/dist/runtime/source-text-dom.d.ts.map +1 -0
- package/dist/runtime/source-text-dom.js +53 -0
- package/dist/runtime/source-text-dom.js.map +1 -0
- package/dist/runtime/source-tokens.d.ts +84 -0
- package/dist/runtime/source-tokens.d.ts.map +1 -0
- package/dist/runtime/source-tokens.js +192 -0
- package/dist/runtime/source-tokens.js.map +1 -0
- package/dist/runtime/source-video-attributes.d.ts +5 -0
- package/dist/runtime/source-video-attributes.d.ts.map +1 -0
- package/dist/runtime/source-video-attributes.js +5 -0
- package/dist/runtime/source-video-attributes.js.map +1 -0
- package/dist/runtime/source-video-controller.d.ts +43 -0
- package/dist/runtime/source-video-controller.d.ts.map +1 -0
- package/dist/runtime/source-video-controller.js +190 -0
- package/dist/runtime/source-video-controller.js.map +1 -0
- package/dist/runtime/source-video-dom.d.ts +3 -0
- package/dist/runtime/source-video-dom.d.ts.map +1 -0
- package/dist/runtime/source-video-dom.js +14 -0
- package/dist/runtime/source-video-dom.js.map +1 -0
- package/dist/runtime/source.d.ts +14 -0
- package/dist/runtime/source.d.ts.map +1 -0
- package/dist/runtime/source.js +13 -0
- package/dist/runtime/source.js.map +1 -0
- package/dist/runtime/state-backend.d.ts +28 -0
- package/dist/runtime/state-backend.d.ts.map +1 -0
- package/dist/runtime/state-backend.js +86 -0
- package/dist/runtime/state-backend.js.map +1 -0
- package/dist/runtime/text-index.d.ts +11 -0
- package/dist/runtime/text-index.d.ts.map +1 -0
- package/dist/runtime/text-index.js +73 -0
- package/dist/runtime/text-index.js.map +1 -0
- package/dist/runtime/theme.d.ts +5 -0
- package/dist/runtime/theme.d.ts.map +1 -0
- package/dist/runtime/theme.js +30 -0
- package/dist/runtime/theme.js.map +1 -0
- package/dist/runtime/viewer.d.ts +5 -0
- package/dist/runtime/viewer.d.ts.map +1 -0
- package/dist/runtime/viewer.entry.d.ts +2 -0
- package/dist/runtime/viewer.entry.d.ts.map +1 -0
- package/dist/runtime/viewer.entry.js +3 -0
- package/dist/runtime/viewer.entry.js.map +1 -0
- package/dist/runtime/viewer.js +62 -0
- package/dist/runtime/viewer.js.map +1 -0
- package/dist/runtime.global.js +142 -0
- package/dist/sandbox.global.js +1 -0
- package/dist/server/adapters/activity.d.ts +4 -0
- package/dist/server/adapters/activity.d.ts.map +1 -0
- package/dist/server/adapters/activity.js +25 -0
- package/dist/server/adapters/activity.js.map +1 -0
- package/dist/server/adapters/kysely/index.d.ts +30 -0
- package/dist/server/adapters/kysely/index.d.ts.map +1 -0
- package/dist/server/adapters/kysely/index.js +31 -0
- package/dist/server/adapters/kysely/index.js.map +1 -0
- package/dist/server/adapters/kysely/schema.d.ts +11 -0
- package/dist/server/adapters/kysely/schema.d.ts.map +1 -0
- package/dist/server/adapters/kysely/schema.js +159 -0
- package/dist/server/adapters/kysely/schema.js.map +1 -0
- package/dist/server/adapters/kysely/sharing.d.ts +5 -0
- package/dist/server/adapters/kysely/sharing.d.ts.map +1 -0
- package/dist/server/adapters/kysely/sharing.js +81 -0
- package/dist/server/adapters/kysely/sharing.js.map +1 -0
- package/dist/server/adapters/kysely/store.d.ts +87 -0
- package/dist/server/adapters/kysely/store.d.ts.map +1 -0
- package/dist/server/adapters/kysely/store.js +328 -0
- package/dist/server/adapters/kysely/store.js.map +1 -0
- package/dist/server/adapters/memory-bus.d.ts +6 -0
- package/dist/server/adapters/memory-bus.d.ts.map +1 -0
- package/dist/server/adapters/memory-bus.js +26 -0
- package/dist/server/adapters/memory-bus.js.map +1 -0
- package/dist/server/adapters/memory-store.d.ts +4 -0
- package/dist/server/adapters/memory-store.d.ts.map +1 -0
- package/dist/server/adapters/memory-store.js +125 -0
- package/dist/server/adapters/memory-store.js.map +1 -0
- package/dist/server/adapters/memory.d.ts +8 -0
- package/dist/server/adapters/memory.d.ts.map +1 -0
- package/dist/server/adapters/memory.js +23 -0
- package/dist/server/adapters/memory.js.map +1 -0
- package/dist/server/adapters/postgres/blobs.d.ts +6 -0
- package/dist/server/adapters/postgres/blobs.d.ts.map +1 -0
- package/dist/server/adapters/postgres/blobs.js +17 -0
- package/dist/server/adapters/postgres/blobs.js.map +1 -0
- package/dist/server/adapters/postgres/bus.d.ts +7 -0
- package/dist/server/adapters/postgres/bus.d.ts.map +1 -0
- package/dist/server/adapters/postgres/bus.js +60 -0
- package/dist/server/adapters/postgres/bus.js.map +1 -0
- package/dist/server/adapters/postgres/client.d.ts +38 -0
- package/dist/server/adapters/postgres/client.d.ts.map +1 -0
- package/dist/server/adapters/postgres/client.js +22 -0
- package/dist/server/adapters/postgres/client.js.map +1 -0
- package/dist/server/adapters/postgres/index.d.ts +29 -0
- package/dist/server/adapters/postgres/index.d.ts.map +1 -0
- package/dist/server/adapters/postgres/index.js +23 -0
- package/dist/server/adapters/postgres/index.js.map +1 -0
- package/dist/server/adapters/postgres/schema.d.ts +10 -0
- package/dist/server/adapters/postgres/schema.d.ts.map +1 -0
- package/dist/server/adapters/postgres/schema.js +111 -0
- package/dist/server/adapters/postgres/schema.js.map +1 -0
- package/dist/server/adapters/postgres/store.d.ts +4 -0
- package/dist/server/adapters/postgres/store.d.ts.map +1 -0
- package/dist/server/adapters/postgres/store.js +189 -0
- package/dist/server/adapters/postgres/store.js.map +1 -0
- package/dist/server/adapters/s3.d.ts +22 -0
- package/dist/server/adapters/s3.d.ts.map +1 -0
- package/dist/server/adapters/s3.js +47 -0
- package/dist/server/adapters/s3.js.map +1 -0
- package/dist/server/adapters/sql-rows.d.ts +26 -0
- package/dist/server/adapters/sql-rows.d.ts.map +1 -0
- package/dist/server/adapters/sql-rows.js +134 -0
- package/dist/server/adapters/sql-rows.js.map +1 -0
- package/dist/server/adapters/sqlite/index.d.ts +9 -0
- package/dist/server/adapters/sqlite/index.d.ts.map +1 -0
- package/dist/server/adapters/sqlite/index.js +30 -0
- package/dist/server/adapters/sqlite/index.js.map +1 -0
- package/dist/server/bin.d.ts +3 -0
- package/dist/server/bin.d.ts.map +1 -0
- package/dist/server/bin.js +7 -0
- package/dist/server/bin.js.map +1 -0
- package/dist/server/cli.d.ts +8 -0
- package/dist/server/cli.d.ts.map +1 -0
- package/dist/server/cli.js +103 -0
- package/dist/server/cli.js.map +1 -0
- package/dist/server/collection-storage.d.ts +55 -0
- package/dist/server/collection-storage.d.ts.map +1 -0
- package/dist/server/collection-storage.js +77 -0
- package/dist/server/collection-storage.js.map +1 -0
- package/dist/server/core/access.d.ts +17 -0
- package/dist/server/core/access.d.ts.map +1 -0
- package/dist/server/core/access.js +61 -0
- package/dist/server/core/access.js.map +1 -0
- package/dist/server/core/artifacts.d.ts +50 -0
- package/dist/server/core/artifacts.d.ts.map +1 -0
- package/dist/server/core/artifacts.js +152 -0
- package/dist/server/core/artifacts.js.map +1 -0
- package/dist/server/core/assets.d.ts +23 -0
- package/dist/server/core/assets.d.ts.map +1 -0
- package/dist/server/core/assets.js +41 -0
- package/dist/server/core/assets.js.map +1 -0
- package/dist/server/core/base64.d.ts +3 -0
- package/dist/server/core/base64.d.ts.map +1 -0
- package/dist/server/core/base64.js +17 -0
- package/dist/server/core/base64.js.map +1 -0
- package/dist/server/core/blobs.d.ts +10 -0
- package/dist/server/core/blobs.d.ts.map +1 -0
- package/dist/server/core/blobs.js +10 -0
- package/dist/server/core/blobs.js.map +1 -0
- package/dist/server/core/errors.d.ts +22 -0
- package/dist/server/core/errors.d.ts.map +1 -0
- package/dist/server/core/errors.js +32 -0
- package/dist/server/core/errors.js.map +1 -0
- package/dist/server/core/export.d.ts +8 -0
- package/dist/server/core/export.d.ts.map +1 -0
- package/dist/server/core/export.js +27 -0
- package/dist/server/core/export.js.map +1 -0
- package/dist/server/core/ids.d.ts +4 -0
- package/dist/server/core/ids.d.ts.map +1 -0
- package/dist/server/core/ids.js +12 -0
- package/dist/server/core/ids.js.map +1 -0
- package/dist/server/core/index.d.ts +36 -0
- package/dist/server/core/index.d.ts.map +1 -0
- package/dist/server/core/index.js +19 -0
- package/dist/server/core/index.js.map +1 -0
- package/dist/server/core/inline-assets.d.ts +6 -0
- package/dist/server/core/inline-assets.d.ts.map +1 -0
- package/dist/server/core/inline-assets.js +43 -0
- package/dist/server/core/inline-assets.js.map +1 -0
- package/dist/server/core/live.d.ts +10 -0
- package/dist/server/core/live.d.ts.map +1 -0
- package/dist/server/core/live.js +73 -0
- package/dist/server/core/live.js.map +1 -0
- package/dist/server/core/source-publication.d.ts +30 -0
- package/dist/server/core/source-publication.d.ts.map +1 -0
- package/dist/server/core/source-publication.js +89 -0
- package/dist/server/core/source-publication.js.map +1 -0
- package/dist/server/core/source.d.ts +16 -0
- package/dist/server/core/source.d.ts.map +1 -0
- package/dist/server/core/source.js +9 -0
- package/dist/server/core/source.js.map +1 -0
- package/dist/server/core/summary.d.ts +12 -0
- package/dist/server/core/summary.d.ts.map +1 -0
- package/dist/server/core/summary.js +40 -0
- package/dist/server/core/summary.js.map +1 -0
- package/dist/server/core/version-reader.d.ts +21 -0
- package/dist/server/core/version-reader.d.ts.map +1 -0
- package/dist/server/core/version-reader.js +49 -0
- package/dist/server/core/version-reader.js.map +1 -0
- package/dist/server/core/views.d.ts +6 -0
- package/dist/server/core/views.d.ts.map +1 -0
- package/dist/server/core/views.js +19 -0
- package/dist/server/core/views.js.map +1 -0
- package/dist/server/hosts.d.ts +13 -0
- package/dist/server/hosts.d.ts.map +1 -0
- package/dist/server/hosts.js +11 -0
- package/dist/server/hosts.js.map +1 -0
- package/dist/server/http/app.d.ts +48 -0
- package/dist/server/http/app.d.ts.map +1 -0
- package/dist/server/http/app.js +82 -0
- package/dist/server/http/app.js.map +1 -0
- package/dist/server/http/body.d.ts +5 -0
- package/dist/server/http/body.d.ts.map +1 -0
- package/dist/server/http/body.js +9 -0
- package/dist/server/http/body.js.map +1 -0
- package/dist/server/http/gates.d.ts +26 -0
- package/dist/server/http/gates.d.ts.map +1 -0
- package/dist/server/http/gates.js +43 -0
- package/dist/server/http/gates.js.map +1 -0
- package/dist/server/http/routes/artifacts.d.ts +5 -0
- package/dist/server/http/routes/artifacts.d.ts.map +1 -0
- package/dist/server/http/routes/artifacts.js +75 -0
- package/dist/server/http/routes/artifacts.js.map +1 -0
- package/dist/server/http/routes/events.d.ts +5 -0
- package/dist/server/http/routes/events.d.ts.map +1 -0
- package/dist/server/http/routes/events.js +26 -0
- package/dist/server/http/routes/events.js.map +1 -0
- package/dist/server/http/routes/mcp.d.ts +17 -0
- package/dist/server/http/routes/mcp.d.ts.map +1 -0
- package/dist/server/http/routes/mcp.js +37 -0
- package/dist/server/http/routes/mcp.js.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +5 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/kit/broadcasts.d.ts +5 -0
- package/dist/server/kit/broadcasts.d.ts.map +1 -0
- package/dist/server/kit/broadcasts.js +10 -0
- package/dist/server/kit/broadcasts.js.map +1 -0
- package/dist/server/kit/events.d.ts +97 -0
- package/dist/server/kit/events.d.ts.map +1 -0
- package/dist/server/kit/events.js +28 -0
- package/dist/server/kit/events.js.map +1 -0
- package/dist/server/kit/observe.d.ts +20 -0
- package/dist/server/kit/observe.d.ts.map +1 -0
- package/dist/server/kit/observe.js +24 -0
- package/dist/server/kit/observe.js.map +1 -0
- package/dist/server/kit/plugin.d.ts +34 -0
- package/dist/server/kit/plugin.d.ts.map +1 -0
- package/dist/server/kit/plugin.js +4 -0
- package/dist/server/kit/plugin.js.map +1 -0
- package/dist/server/kit/tool.d.ts +60 -0
- package/dist/server/kit/tool.d.ts.map +1 -0
- package/dist/server/kit/tool.js +65 -0
- package/dist/server/kit/tool.js.map +1 -0
- package/dist/server/kit/wire.d.ts +9 -0
- package/dist/server/kit/wire.d.ts.map +1 -0
- package/dist/server/kit/wire.js +14 -0
- package/dist/server/kit/wire.js.map +1 -0
- package/dist/server/kit.d.ts +25 -0
- package/dist/server/kit.d.ts.map +1 -0
- package/dist/server/kit.js +18 -0
- package/dist/server/kit.js.map +1 -0
- package/dist/server/mcp/result.d.ts +5 -0
- package/dist/server/mcp/result.d.ts.map +1 -0
- package/dist/server/mcp/result.js +25 -0
- package/dist/server/mcp/result.js.map +1 -0
- package/dist/server/mcp/schema.d.ts +7 -0
- package/dist/server/mcp/schema.d.ts.map +1 -0
- package/dist/server/mcp/schema.js +27 -0
- package/dist/server/mcp/schema.js.map +1 -0
- package/dist/server/mcp/tools.d.ts +35 -0
- package/dist/server/mcp/tools.d.ts.map +1 -0
- package/dist/server/mcp/tools.js +72 -0
- package/dist/server/mcp/tools.js.map +1 -0
- package/dist/server/mcp/viewer.d.ts +17 -0
- package/dist/server/mcp/viewer.d.ts.map +1 -0
- package/dist/server/mcp/viewer.js +47 -0
- package/dist/server/mcp/viewer.js.map +1 -0
- package/dist/server/plugins/comments/index.d.ts +8 -0
- package/dist/server/plugins/comments/index.d.ts.map +1 -0
- package/dist/server/plugins/comments/index.js +79 -0
- package/dist/server/plugins/comments/index.js.map +1 -0
- package/dist/server/plugins/comments/routes.d.ts +6 -0
- package/dist/server/plugins/comments/routes.d.ts.map +1 -0
- package/dist/server/plugins/comments/routes.js +34 -0
- package/dist/server/plugins/comments/routes.js.map +1 -0
- package/dist/server/plugins/comments/service.d.ts +20 -0
- package/dist/server/plugins/comments/service.d.ts.map +1 -0
- package/dist/server/plugins/comments/service.js +66 -0
- package/dist/server/plugins/comments/service.js.map +1 -0
- package/dist/server/plugins/components/catalog.d.ts +15 -0
- package/dist/server/plugins/components/catalog.d.ts.map +1 -0
- package/dist/server/plugins/components/catalog.js +39 -0
- package/dist/server/plugins/components/catalog.js.map +1 -0
- package/dist/server/plugins/components/index.d.ts +21 -0
- package/dist/server/plugins/components/index.d.ts.map +1 -0
- package/dist/server/plugins/components/index.js +35 -0
- package/dist/server/plugins/components/index.js.map +1 -0
- package/dist/server/plugins/components/tags.d.ts +9 -0
- package/dist/server/plugins/components/tags.d.ts.map +1 -0
- package/dist/server/plugins/components/tags.js +22 -0
- package/dist/server/plugins/components/tags.js.map +1 -0
- package/dist/server/plugins/editing/apply.d.ts +9 -0
- package/dist/server/plugins/editing/apply.d.ts.map +1 -0
- package/dist/server/plugins/editing/apply.js +30 -0
- package/dist/server/plugins/editing/apply.js.map +1 -0
- package/dist/server/plugins/editing/index.d.ts +8 -0
- package/dist/server/plugins/editing/index.d.ts.map +1 -0
- package/dist/server/plugins/editing/index.js +48 -0
- package/dist/server/plugins/editing/index.js.map +1 -0
- package/dist/server/plugins/editing/layout.d.ts +4 -0
- package/dist/server/plugins/editing/layout.d.ts.map +1 -0
- package/dist/server/plugins/editing/layout.js +29 -0
- package/dist/server/plugins/editing/layout.js.map +1 -0
- package/dist/server/plugins/editing/source-text.d.ts +10 -0
- package/dist/server/plugins/editing/source-text.d.ts.map +1 -0
- package/dist/server/plugins/editing/source-text.js +10 -0
- package/dist/server/plugins/editing/source-text.js.map +1 -0
- package/dist/server/plugins/editing/source.d.ts +18 -0
- package/dist/server/plugins/editing/source.d.ts.map +1 -0
- package/dist/server/plugins/editing/source.js +15 -0
- package/dist/server/plugins/editing/source.js.map +1 -0
- package/dist/server/plugins/index.d.ts +25 -0
- package/dist/server/plugins/index.d.ts.map +1 -0
- package/dist/server/plugins/index.js +20 -0
- package/dist/server/plugins/index.js.map +1 -0
- package/dist/server/plugins/mcp-auth.d.ts +12 -0
- package/dist/server/plugins/mcp-auth.d.ts.map +1 -0
- package/dist/server/plugins/mcp-auth.js +27 -0
- package/dist/server/plugins/mcp-auth.js.map +1 -0
- package/dist/server/plugins/mentions.d.ts +10 -0
- package/dist/server/plugins/mentions.d.ts.map +1 -0
- package/dist/server/plugins/mentions.js +28 -0
- package/dist/server/plugins/mentions.js.map +1 -0
- package/dist/server/plugins/moderation.d.ts +17 -0
- package/dist/server/plugins/moderation.d.ts.map +1 -0
- package/dist/server/plugins/moderation.js +17 -0
- package/dist/server/plugins/moderation.js.map +1 -0
- package/dist/server/plugins/notifications.d.ts +22 -0
- package/dist/server/plugins/notifications.d.ts.map +1 -0
- package/dist/server/plugins/notifications.js +43 -0
- package/dist/server/plugins/notifications.js.map +1 -0
- package/dist/server/plugins/presence.d.ts +3 -0
- package/dist/server/plugins/presence.d.ts.map +1 -0
- package/dist/server/plugins/presence.js +23 -0
- package/dist/server/plugins/presence.js.map +1 -0
- package/dist/server/plugins/rate-limit.d.ts +18 -0
- package/dist/server/plugins/rate-limit.d.ts.map +1 -0
- package/dist/server/plugins/rate-limit.js +43 -0
- package/dist/server/plugins/rate-limit.js.map +1 -0
- package/dist/server/plugins/state/index.d.ts +10 -0
- package/dist/server/plugins/state/index.d.ts.map +1 -0
- package/dist/server/plugins/state/index.js +66 -0
- package/dist/server/plugins/state/index.js.map +1 -0
- package/dist/server/plugins/state/service.d.ts +21 -0
- package/dist/server/plugins/state/service.d.ts.map +1 -0
- package/dist/server/plugins/state/service.js +65 -0
- package/dist/server/plugins/state/service.js.map +1 -0
- package/dist/server/plugins/webhook.d.ts +17 -0
- package/dist/server/plugins/webhook.d.ts.map +1 -0
- package/dist/server/plugins/webhook.js +54 -0
- package/dist/server/plugins/webhook.js.map +1 -0
- package/dist/server/ports.d.ts +214 -0
- package/dist/server/ports.d.ts.map +1 -0
- package/dist/server/ports.js +22 -0
- package/dist/server/ports.js.map +1 -0
- package/dist/server/sandbox/assets.d.ts +13 -0
- package/dist/server/sandbox/assets.d.ts.map +1 -0
- package/dist/server/sandbox/assets.js +8 -0
- package/dist/server/sandbox/assets.js.map +1 -0
- package/dist/server/sandbox/csp.d.ts +5 -0
- package/dist/server/sandbox/csp.d.ts.map +1 -0
- package/dist/server/sandbox/csp.js +29 -0
- package/dist/server/sandbox/csp.js.map +1 -0
- package/dist/server/sandbox/inject.d.ts +9 -0
- package/dist/server/sandbox/inject.d.ts.map +1 -0
- package/dist/server/sandbox/inject.js +42 -0
- package/dist/server/sandbox/inject.js.map +1 -0
- package/dist/server/sandbox/server.d.ts +17 -0
- package/dist/server/sandbox/server.d.ts.map +1 -0
- package/dist/server/sandbox/server.js +63 -0
- package/dist/server/sandbox/server.js.map +1 -0
- package/dist/server/sharing/index.d.ts +41 -0
- package/dist/server/sharing/index.d.ts.map +1 -0
- package/dist/server/sharing/index.js +150 -0
- package/dist/server/sharing/index.js.map +1 -0
- package/dist/server/sharing/postgres.d.ts +13 -0
- package/dist/server/sharing/postgres.d.ts.map +1 -0
- package/dist/server/sharing/postgres.js +87 -0
- package/dist/server/sharing/postgres.js.map +1 -0
- package/dist/server/sharing/store.d.ts +23 -0
- package/dist/server/sharing/store.d.ts.map +1 -0
- package/dist/server/sharing/store.js +38 -0
- package/dist/server/sharing/store.js.map +1 -0
- package/dist/server/source.d.ts +8 -0
- package/dist/server/source.d.ts.map +1 -0
- package/dist/server/source.js +6 -0
- package/dist/server/source.js.map +1 -0
- package/dist/server/testing.d.ts +17 -0
- package/dist/server/testing.d.ts.map +1 -0
- package/dist/server/testing.js +287 -0
- package/dist/server/testing.js.map +1 -0
- package/dist/viewer.global.js +150 -0
- package/package.json +204 -3
|
@@ -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("&", "&").replaceAll('"', """);
|
|
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"}
|