@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,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Isomorphic anchoring primitives — the code that MUST produce byte-identical results
|
|
3
|
+
* in the browser (against a live DOM, inside the sandboxed iframe client) and on the
|
|
4
|
+
* server (against parsed HTML descriptors). Both `anchor-client.ts` (the injected
|
|
5
|
+
* client) and `element-anchor.ts` (the server resolver) import from here, so a content
|
|
6
|
+
* fingerprint made in one place equals one made in the other BY CONSTRUCTION — not by
|
|
7
|
+
* hand-copying a vanilla-JS transcription and hoping it stays in lockstep (which drifted
|
|
8
|
+
* once: a different join separator silently broke every browser-made element anchor).
|
|
9
|
+
*
|
|
10
|
+
* Keep this file dependency-free and DOM-free so it bundles cleanly into the browser
|
|
11
|
+
* client and runs untouched on the server.
|
|
12
|
+
*/
|
|
13
|
+
/** Field separator inside a content fingerprint, so a value ending and the next
|
|
14
|
+
* beginning can't blur into a collision (src "…a" + alt "b" vs src "…" + alt "ab").
|
|
15
|
+
* A control char (U+0001) that never appears in real content. */
|
|
16
|
+
export const FP_SEP = "\u0001";
|
|
17
|
+
/** Cap on the text slice that feeds a fingerprint — enough to identify, bounded so a
|
|
18
|
+
* huge block doesn't dominate the hash. */
|
|
19
|
+
export const FP_TEXT_CAP = 120;
|
|
20
|
+
/**
|
|
21
|
+
* FNV-1a (32-bit) → base36. A tiny, fast, dependency-free hash — we only need a stable
|
|
22
|
+
* content fingerprint, not cryptographic strength.
|
|
23
|
+
*/
|
|
24
|
+
export function fnv1a(s) {
|
|
25
|
+
let h = 0x811c9dc5;
|
|
26
|
+
for (let i = 0; i < s.length; i++) {
|
|
27
|
+
h ^= s.charCodeAt(i);
|
|
28
|
+
h = (h + ((h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24))) >>> 0;
|
|
29
|
+
}
|
|
30
|
+
return h.toString(36);
|
|
31
|
+
}
|
|
32
|
+
/** Collapse runs of whitespace and trim. Used everywhere a value feeds matching. */
|
|
33
|
+
export function normWs(s) {
|
|
34
|
+
return s.replace(/\s+/g, " ").trim();
|
|
35
|
+
}
|
|
36
|
+
/** Ellipsis-truncate to `n` chars. The one copy of the convention (cut at n-1, "…"),
|
|
37
|
+
* shared by anchor labels, edit error copy, and version messages. */
|
|
38
|
+
export const clip = (s, n) => (s.length > n ? `${s.slice(0, n - 1)}…` : s);
|
|
39
|
+
/**
|
|
40
|
+
* The canonical content fingerprint over the four identifying fields. Each side pulls
|
|
41
|
+
* {tag, src, alt, text} from its own environment — a live DOM node in the browser, a
|
|
42
|
+
* parsed descriptor on the server — then calls this, so the hash ASSEMBLY (the field
|
|
43
|
+
* order, the separator, the text normalization + cap) lives in exactly one place.
|
|
44
|
+
*/
|
|
45
|
+
export function fingerprintFrom(tag, src, alt, text) {
|
|
46
|
+
return fnv1a([tag, src, alt, normWs(text).slice(0, FP_TEXT_CAP)].join(FP_SEP));
|
|
47
|
+
}
|
|
48
|
+
/** Escape a string for literal use inside a RegExp. */
|
|
49
|
+
function escapeRe(s) {
|
|
50
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
51
|
+
}
|
|
52
|
+
/** Whitespace-flexible regex source for a literal string: escape to a literal pattern
|
|
53
|
+
* (never introduces whitespace), then let every whitespace run flex to `\s+`. */
|
|
54
|
+
const flexPattern = (s) => escapeRe(s).replace(/\s+/g, "\\s+");
|
|
55
|
+
/** The one context pattern both the lenient (highlight) and strict (edit) matchers
|
|
56
|
+
* compile: prefix + (exact) + suffix, whitespace-flexible, exact captured so the
|
|
57
|
+
* `d` (indices) flag exposes its span directly. Prefix and suffix are adjacent
|
|
58
|
+
* source slices, so their own whitespace supplies any flexible separator; adding
|
|
59
|
+
* whitespace at the seams would make punctuation-adjacent context impossible to
|
|
60
|
+
* match. Null when there is no context at all, or the pattern fails to compile. */
|
|
61
|
+
const contextPattern = (q, pre, suf, flags) => {
|
|
62
|
+
if (!pre && !suf)
|
|
63
|
+
return null;
|
|
64
|
+
try {
|
|
65
|
+
return new RegExp(`${flexPattern(pre)}(${flexPattern(q)})${flexPattern(suf)}`, flags);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Locate `exact` in `text` whitespace-flexibly, using `prefix`/`suffix` as CONTEXT to
|
|
73
|
+
* disambiguate a quote that repeats — then return the span of `exact` itself (not the
|
|
74
|
+
* context). An `exact` that also appears inside the prefix can't hijack the result
|
|
75
|
+
* (the capture group's own indices are read). When the context no longer matches, falls
|
|
76
|
+
* back to the bare exact only where it occurs once: a comment whose words now repeat is
|
|
77
|
+
* left unanchored rather than pinned to the wrong occurrence. Whitespace in the quote
|
|
78
|
+
* matches any run of whitespace in the text, because a selection, DOM text and HTML source
|
|
79
|
+
* each serialize the gaps between blocks differently. The one resolver every reader uses
|
|
80
|
+
* (`findQuote` in the protocol entry delegates here). Returns null if unfound or ambiguous.
|
|
81
|
+
*/
|
|
82
|
+
export function findQuoteWithContext(text, exact, prefix, suffix) {
|
|
83
|
+
const q = exact.trim();
|
|
84
|
+
if (!q)
|
|
85
|
+
return null;
|
|
86
|
+
const pre = prefix ?? "";
|
|
87
|
+
const suf = suffix ?? "";
|
|
88
|
+
// A DOM selection may drop or add whitespace at the seams between its context and the
|
|
89
|
+
// quote; the selection grammar, tried second, allows that.
|
|
90
|
+
const inContext = adjacentContextSpan(text, q, pre, suf) ?? findSelectionWithContext(text, exact, pre, suf);
|
|
91
|
+
if (inContext)
|
|
92
|
+
return inContext;
|
|
93
|
+
// No context, or it no longer matches: the bare exact, only where it is unique.
|
|
94
|
+
const found = findQuoteMatches(text, q, 2);
|
|
95
|
+
return found.length === 1 ? (found[0] ?? null) : null;
|
|
96
|
+
}
|
|
97
|
+
/** The span of `q` where it sits right between its prefix and suffix, if it does. */
|
|
98
|
+
const adjacentContextSpan = (text, q, pre, suf) => {
|
|
99
|
+
const m = contextPattern(q, pre, suf, "d")?.exec(text);
|
|
100
|
+
const gi = m?.indices?.[1];
|
|
101
|
+
return gi ? { start: gi[0], end: gi[1] } : null;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* The STRICT context matcher for destructive callers: the context must match
|
|
105
|
+
* exactly ONCE. Two identical repeated cards produce two identical context
|
|
106
|
+
* windows — a lenient matcher would silently act on the first card when the user
|
|
107
|
+
* touched the second, so `matches > 1` reports the ambiguity for the caller to
|
|
108
|
+
* refuse. `span` is null on a miss (no context given, pattern failed, or zero
|
|
109
|
+
* matches) — pair with {@link findQuoteMatches} to accept a miss only when the
|
|
110
|
+
* exact is globally unambiguous.
|
|
111
|
+
*
|
|
112
|
+
* When the adjacent-context pattern finds nothing, one retry lets the seams between
|
|
113
|
+
* prefix|exact|suffix hold optional whitespace. A capture path can drop the space at a
|
|
114
|
+
* block edge ("Slack" + suffix "Ask in a channel" for `<h3>Slack</h3><p>Ask…`). The
|
|
115
|
+
* retry only runs on a miss and must also match exactly once, so it never changes a
|
|
116
|
+
* result the adjacent pattern already decided.
|
|
117
|
+
*/
|
|
118
|
+
export function findQuoteContextUnique(text, exact, prefix, suffix) {
|
|
119
|
+
const q = exact.trim();
|
|
120
|
+
if (!q)
|
|
121
|
+
return { span: null, matches: 0 };
|
|
122
|
+
const adjacent = uniqueCapture(text, contextPattern(q, prefix ?? "", suffix ?? "", "dg"));
|
|
123
|
+
if (adjacent.matches)
|
|
124
|
+
return adjacent;
|
|
125
|
+
return uniqueCapture(text, seamContextPattern(q, prefix ?? "", suffix ?? ""));
|
|
126
|
+
}
|
|
127
|
+
/** The context pattern with optional whitespace at both seams. Context that is only
|
|
128
|
+
* whitespace pins nothing once the seam is optional, so it is dropped. */
|
|
129
|
+
const seamContextPattern = (q, pre, suf) => {
|
|
130
|
+
const p = pre.trimEnd();
|
|
131
|
+
const s = suf.trimStart();
|
|
132
|
+
if (!p && !s)
|
|
133
|
+
return null;
|
|
134
|
+
try {
|
|
135
|
+
return new RegExp(`${p ? `${flexPattern(p)}\\s*` : ""}(${flexPattern(q)})${s ? `\\s*${flexPattern(s)}` : ""}`, "dg");
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
/** The capture span of `re` in `text` when it matches exactly once. */
|
|
142
|
+
const uniqueCapture = (text, re) => {
|
|
143
|
+
if (!re)
|
|
144
|
+
return { span: null, matches: 0 };
|
|
145
|
+
const first = re.exec(text);
|
|
146
|
+
const gi = first?.indices?.[1];
|
|
147
|
+
if (!first || !gi)
|
|
148
|
+
return { span: null, matches: 0 };
|
|
149
|
+
// One more probe decides unique-vs-ambiguous; the exact count past 2 is unneeded.
|
|
150
|
+
if (first.index === re.lastIndex)
|
|
151
|
+
re.lastIndex++; // zero-width safety
|
|
152
|
+
const second = re.exec(text);
|
|
153
|
+
return { span: second ? null : { start: gi[0], end: gi[1] }, matches: second ? 2 : 1 };
|
|
154
|
+
};
|
|
155
|
+
const selectionContextPattern = (exact, prefix, suffix, flags) => {
|
|
156
|
+
const q = exact.trim();
|
|
157
|
+
if (!q || (!prefix && !suffix))
|
|
158
|
+
return null;
|
|
159
|
+
const lead = exact.length > exact.trimStart().length ? "\\s*" : "";
|
|
160
|
+
const trail = exact.length > exact.trimEnd().length ? "\\s*" : "";
|
|
161
|
+
const pattern = `${flexPattern(prefix.trim())}\\s*?(${lead}${flexPattern(q)}${trail})\\s*?${flexPattern(suffix.trim())}`;
|
|
162
|
+
return new RegExp(pattern, flags);
|
|
163
|
+
};
|
|
164
|
+
/** A DOM selection uses one context grammar for display and destructive writes. */
|
|
165
|
+
export const findSelectionWithContext = (text, exact, prefix, suffix) => {
|
|
166
|
+
const match = selectionContextPattern(exact, prefix, suffix, "d")?.exec(text);
|
|
167
|
+
const span = match?.indices?.[1];
|
|
168
|
+
return span ? { start: span[0], end: span[1] } : null;
|
|
169
|
+
};
|
|
170
|
+
/** Count with the exact display pattern. Never use a second, looser lookup for a write. */
|
|
171
|
+
export const findSelectionContextUnique = (text, exact, prefix, suffix) => uniqueCapture(text, selectionContextPattern(exact, prefix, suffix, "dg"));
|
|
172
|
+
/**
|
|
173
|
+
* Every whitespace-flexible match of `quote` in `text` (capped so a degenerate quote
|
|
174
|
+
* on a huge document stays bounded). Lets a destructive caller distinguish "matches
|
|
175
|
+
* once — safe to act on" from "matches many — ambiguous, refuse".
|
|
176
|
+
*/
|
|
177
|
+
export function findQuoteMatches(text, quote, cap = 20) {
|
|
178
|
+
const q = quote.trim();
|
|
179
|
+
if (!q)
|
|
180
|
+
return [];
|
|
181
|
+
const out = [];
|
|
182
|
+
try {
|
|
183
|
+
const re = new RegExp(flexPattern(q), "g");
|
|
184
|
+
for (let m = re.exec(text); m && out.length < cap; m = re.exec(text)) {
|
|
185
|
+
out.push({ start: m.index, end: m.index + m[0].length });
|
|
186
|
+
// A zero-width match can't happen (q is non-empty), but never trust lastIndex
|
|
187
|
+
// to advance on its own with pathological inputs.
|
|
188
|
+
if (re.lastIndex <= m.index)
|
|
189
|
+
re.lastIndex = m.index + 1;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
let i = text.indexOf(q);
|
|
194
|
+
while (i >= 0 && out.length < cap) {
|
|
195
|
+
out.push({ start: i, end: i + q.length });
|
|
196
|
+
i = text.indexOf(q, i + 1);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
/** The elements whose boundaries the server's page-text projection renders as
|
|
202
|
+
* whitespace (everything else, an inline seam, renders as nothing). Shared by
|
|
203
|
+
* anchor.ts (pageText), latex-emit.ts (which pins its mirror equal in a test) and the
|
|
204
|
+
* in-frame client, whose edit snapshot must put a seam exactly where pageText does. */
|
|
205
|
+
export const BLOCK_TEXT_ELEMENTS = new Set([
|
|
206
|
+
"address",
|
|
207
|
+
"article",
|
|
208
|
+
"aside",
|
|
209
|
+
"blockquote",
|
|
210
|
+
"body",
|
|
211
|
+
"br",
|
|
212
|
+
"caption",
|
|
213
|
+
"dd",
|
|
214
|
+
"div",
|
|
215
|
+
"dl",
|
|
216
|
+
"dt",
|
|
217
|
+
"fieldset",
|
|
218
|
+
"figcaption",
|
|
219
|
+
"figure",
|
|
220
|
+
"footer",
|
|
221
|
+
"form",
|
|
222
|
+
"h1",
|
|
223
|
+
"h2",
|
|
224
|
+
"h3",
|
|
225
|
+
"h4",
|
|
226
|
+
"h5",
|
|
227
|
+
"h6",
|
|
228
|
+
"header",
|
|
229
|
+
"hgroup",
|
|
230
|
+
"hr",
|
|
231
|
+
"html",
|
|
232
|
+
"li",
|
|
233
|
+
"listing",
|
|
234
|
+
"main",
|
|
235
|
+
"nav",
|
|
236
|
+
"ol",
|
|
237
|
+
"p",
|
|
238
|
+
"pre",
|
|
239
|
+
"section",
|
|
240
|
+
"table",
|
|
241
|
+
"tbody",
|
|
242
|
+
"td",
|
|
243
|
+
"tfoot",
|
|
244
|
+
"th",
|
|
245
|
+
"thead",
|
|
246
|
+
"tr",
|
|
247
|
+
"ul",
|
|
248
|
+
"xmp",
|
|
249
|
+
]);
|
|
250
|
+
//# sourceMappingURL=source-anchors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-anchors.js","sourceRoot":"","sources":["../../src/protocol/source-anchors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Native source assets preserve the host's non-executable upload policy. */
|
|
2
|
+
export declare const SOURCE_ASSET_MAX_BYTES: number;
|
|
3
|
+
export declare const SOURCE_ASSET_TYPES: readonly ["image/png", "image/jpeg", "image/gif", "image/webp", "font/woff2", "font/woff"];
|
|
4
|
+
export type SourceImageType = "image/png" | "image/jpeg" | "image/gif" | "image/webp";
|
|
5
|
+
/** Identify a supported raster image by its magic bytes, or null if unsupported. */
|
|
6
|
+
export declare const sourceImageType: (b: Uint8Array) => SourceImageType | null;
|
|
7
|
+
export type SourceAssetType = SourceImageType | "font/woff2" | "font/woff";
|
|
8
|
+
/**
|
|
9
|
+
* Identify a supported standalone asset — a raster image or a packaged web font —
|
|
10
|
+
* by its magic bytes. Fonts share the rasters' stored-XSS posture (non-executable
|
|
11
|
+
* bytes served under a fixed content-type + nosniff); SVG/HTML stay out. Avatars
|
|
12
|
+
* are stricter and keep using sourceImageType directly.
|
|
13
|
+
*/
|
|
14
|
+
export declare const sourceAssetType: (b: Uint8Array) => SourceAssetType | null;
|
|
15
|
+
//# sourceMappingURL=source-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-assets.d.ts","sourceRoot":"","sources":["../../src/protocol/source-assets.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,EAAE,MAAyB,CAAA;AAC9D,eAAO,MAAM,kBAAkB,YAC7B,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,CACH,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAA;AAQrF,oFAAoF;AACpF,eAAO,MAAM,eAAe,MAAO,UAAU,KAAG,eAAe,GAAG,IAyCjE,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,CAAA;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,MAAO,UAAU,KAAG,eAAe,GAAG,IASjE,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/** Native source assets preserve the host's non-executable upload policy. */
|
|
2
|
+
export const SOURCE_ASSET_MAX_BYTES = 25 * 1024 * 1024;
|
|
3
|
+
export const SOURCE_ASSET_TYPES = [
|
|
4
|
+
"image/png",
|
|
5
|
+
"image/jpeg",
|
|
6
|
+
"image/gif",
|
|
7
|
+
"image/webp",
|
|
8
|
+
"font/woff2",
|
|
9
|
+
"font/woff",
|
|
10
|
+
];
|
|
11
|
+
const hasBytes = (bytes, minimum, signature) => bytes.length >= minimum && signature.every(([index, value]) => bytes[index] === value);
|
|
12
|
+
/** Identify a supported raster image by its magic bytes, or null if unsupported. */
|
|
13
|
+
export const sourceImageType = (b) => {
|
|
14
|
+
if (hasBytes(b, 8, [
|
|
15
|
+
[0, 0x89],
|
|
16
|
+
[1, 0x50],
|
|
17
|
+
[2, 0x4e],
|
|
18
|
+
[3, 0x47],
|
|
19
|
+
]))
|
|
20
|
+
return "image/png";
|
|
21
|
+
if (hasBytes(b, 3, [
|
|
22
|
+
[0, 0xff],
|
|
23
|
+
[1, 0xd8],
|
|
24
|
+
[2, 0xff],
|
|
25
|
+
]))
|
|
26
|
+
return "image/jpeg";
|
|
27
|
+
if (hasBytes(b, 6, [
|
|
28
|
+
[0, 0x47],
|
|
29
|
+
[1, 0x49],
|
|
30
|
+
[2, 0x46],
|
|
31
|
+
[3, 0x38],
|
|
32
|
+
]))
|
|
33
|
+
return "image/gif";
|
|
34
|
+
if (hasBytes(b, 12, [
|
|
35
|
+
[0, 0x52],
|
|
36
|
+
[1, 0x49],
|
|
37
|
+
[2, 0x46],
|
|
38
|
+
[3, 0x46],
|
|
39
|
+
[8, 0x57],
|
|
40
|
+
[9, 0x45],
|
|
41
|
+
[10, 0x42],
|
|
42
|
+
[11, 0x50],
|
|
43
|
+
]))
|
|
44
|
+
return "image/webp";
|
|
45
|
+
return null;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Identify a supported standalone asset — a raster image or a packaged web font —
|
|
49
|
+
* by its magic bytes. Fonts share the rasters' stored-XSS posture (non-executable
|
|
50
|
+
* bytes served under a fixed content-type + nosniff); SVG/HTML stay out. Avatars
|
|
51
|
+
* are stricter and keep using sourceImageType directly.
|
|
52
|
+
*/
|
|
53
|
+
export const sourceAssetType = (b) => {
|
|
54
|
+
const image = sourceImageType(b);
|
|
55
|
+
if (image)
|
|
56
|
+
return image;
|
|
57
|
+
// wOF2 / wOFF
|
|
58
|
+
if (b.length >= 4 && b[0] === 0x77 && b[1] === 0x4f && b[2] === 0x46) {
|
|
59
|
+
if (b[3] === 0x32)
|
|
60
|
+
return "font/woff2";
|
|
61
|
+
if (b[3] === 0x46)
|
|
62
|
+
return "font/woff";
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=source-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-assets.js","sourceRoot":"","sources":["../../src/protocol/source-assets.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAW,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;CACH,CAAA;AAIV,MAAM,QAAQ,GAAG,CACf,KAAiB,EACjB,OAAe,EACf,SAAiD,EACxC,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAA;AAEpG,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAa,EAA0B,EAAE;IACvE,IACE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;QACb,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;KACV,CAAC;QAEF,OAAO,WAAW,CAAA;IACpB,IACE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;QACb,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;KACV,CAAC;QAEF,OAAO,YAAY,CAAA;IACrB,IACE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;QACb,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;KACV,CAAC;QAEF,OAAO,WAAW,CAAA;IACpB,IACE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;QACd,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,EAAE,EAAE,IAAI,CAAC;QACV,CAAC,EAAE,EAAE,IAAI,CAAC;KACX,CAAC;QAEF,OAAO,YAAY,CAAA;IACrB,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAID;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAa,EAA0B,EAAE;IACvE,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;IAChC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAA;IACvB,cAAc;IACd,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,YAAY,CAAA;QACtC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,WAAW,CAAA;IACvC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small memory for hot paths: what was computed or read a moment ago, kept for the next
|
|
3
|
+
* request in the same process. A save and its sync walk the same multi-megabyte document
|
|
4
|
+
* several times; an editing session saves the same version over and over.
|
|
5
|
+
*/
|
|
6
|
+
/** A Map holding its `size` most recently used entries. */
|
|
7
|
+
export declare class Recent<K, V> {
|
|
8
|
+
private readonly size;
|
|
9
|
+
private readonly entries;
|
|
10
|
+
constructor(size: number);
|
|
11
|
+
get(key: K): V | undefined;
|
|
12
|
+
/** The entry, without counting it as used. */
|
|
13
|
+
peek(key: K): V | undefined;
|
|
14
|
+
set(key: K, value: V): void;
|
|
15
|
+
delete(key: K): void;
|
|
16
|
+
}
|
|
17
|
+
/** A function of one large string, remembered for the last few strings it was given.
|
|
18
|
+
* Strings below `min` characters are cheaper to walk again than to key. What it returns
|
|
19
|
+
* is shared: callers treat it as read-only. */
|
|
20
|
+
export declare const lastOf: <T>(size: number, min: number, fn: (text: string) => T) => ((text: string) => T) & {
|
|
21
|
+
peek: (text: string) => T | undefined;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=source-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-cache.d.ts","sourceRoot":"","sources":["../../src/protocol/source-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2DAA2D;AAC3D,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;IAEV,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,YAA6B,IAAI,EAAE,MAAM,EAAI;IAE7C,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAIzB;IACD,8CAA8C;IAC9C,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAE1B;IACD,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAI1B;IACD,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAEnB;CACF;AAED;;gDAEgD;AAChD,eAAO,MAAM,MAAM,GAAI,CAAC,QAChB,MAAM,OACP,MAAM,MACP,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KACtB,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAA;CAajE,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small memory for hot paths: what was computed or read a moment ago, kept for the next
|
|
3
|
+
* request in the same process. A save and its sync walk the same multi-megabyte document
|
|
4
|
+
* several times; an editing session saves the same version over and over.
|
|
5
|
+
*/
|
|
6
|
+
/** A Map holding its `size` most recently used entries. */
|
|
7
|
+
export class Recent {
|
|
8
|
+
size;
|
|
9
|
+
entries = new Map();
|
|
10
|
+
constructor(size) {
|
|
11
|
+
this.size = size;
|
|
12
|
+
}
|
|
13
|
+
get(key) {
|
|
14
|
+
const hit = this.entries.get(key);
|
|
15
|
+
if (hit !== undefined)
|
|
16
|
+
this.set(key, hit);
|
|
17
|
+
return hit;
|
|
18
|
+
}
|
|
19
|
+
/** The entry, without counting it as used. */
|
|
20
|
+
peek(key) {
|
|
21
|
+
return this.entries.get(key);
|
|
22
|
+
}
|
|
23
|
+
set(key, value) {
|
|
24
|
+
this.entries.delete(key);
|
|
25
|
+
this.entries.set(key, value);
|
|
26
|
+
if (this.entries.size > this.size)
|
|
27
|
+
this.entries.delete(this.entries.keys().next().value);
|
|
28
|
+
}
|
|
29
|
+
delete(key) {
|
|
30
|
+
this.entries.delete(key);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** A function of one large string, remembered for the last few strings it was given.
|
|
34
|
+
* Strings below `min` characters are cheaper to walk again than to key. What it returns
|
|
35
|
+
* is shared: callers treat it as read-only. */
|
|
36
|
+
export const lastOf = (size, min, fn) => {
|
|
37
|
+
const seen = new Recent(size);
|
|
38
|
+
const get = (text) => {
|
|
39
|
+
if (text.length < min)
|
|
40
|
+
return fn(text);
|
|
41
|
+
const hit = seen.get(text);
|
|
42
|
+
if (hit !== undefined)
|
|
43
|
+
return hit;
|
|
44
|
+
const value = fn(text);
|
|
45
|
+
seen.set(text, value);
|
|
46
|
+
return value;
|
|
47
|
+
};
|
|
48
|
+
/** What is remembered for `text`, without computing it. */
|
|
49
|
+
get.peek = (text) => seen.peek(text);
|
|
50
|
+
return get;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=source-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-cache.js","sourceRoot":"","sources":["../../src/protocol/source-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2DAA2D;AAC3D,MAAM,OAAO,MAAM;IAEY,IAAI;IADhB,OAAO,GAAG,IAAI,GAAG,EAAQ,CAAA;IAC1C,YAA6B,IAAY;oBAAZ,IAAI;IAAW,CAAC;IAE7C,GAAG,CAAC,GAAM;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACzC,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,8CAA8C;IAC9C,IAAI,CAAC,GAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IACD,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAU,CAAC,CAAA;IAC/F,CAAC;IACD,MAAM,CAAC,GAAM;QACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;CACF;AAED;;gDAEgD;AAChD,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,IAAY,EACZ,GAAW,EACX,EAAuB,EAC4C,EAAE;IACrE,MAAM,IAAI,GAAG,IAAI,MAAM,CAAY,IAAI,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAK,EAAE;QAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,CAAA;QACjC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACrB,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IACD,2DAA2D;IAC3D,GAAG,CAAC,IAAI,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3D,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const domIds: (html: string) => string[];
|
|
2
|
+
/** Rewrite attribute values in every opening tag. The name=value tokenizer consumes
|
|
3
|
+
* quoted values whole, so text that merely looks like an attribute inside one is never
|
|
4
|
+
* rewritten; attribute spelling and quote style stay unchanged. */
|
|
5
|
+
export declare const rewriteAttrs: (html: string, rewrite: (name: string, value: string) => string) => string;
|
|
6
|
+
/** A duplicated slide is a new DOM subtree, so authored IDs inside it must also be
|
|
7
|
+
* new. Rewrite the IDREF attributes browsers and assistive technology resolve,
|
|
8
|
+
* plus fragment/url references used by SVG. Attribute spelling and quote style
|
|
9
|
+
* stay unchanged; only values that point at an ID from this slide move. */
|
|
10
|
+
export declare const rewriteCopiedDomIds: (html: string, slideId: number, used: Set<string>) => string;
|
|
11
|
+
//# sourceMappingURL=source-copy-dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-copy-dom.d.ts","sourceRoot":"","sources":["../../src/protocol/source-copy-dom.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,MAAM,SAAU,MAAM,KAAG,MAAM,EACmC,CAAA;AAE/E;;oEAEoE;AACpE,eAAO,MAAM,YAAY,SACjB,MAAM,WACH,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,KAC/C,MAkCF,CAAA;AAED;;;4EAG4E;AAC5E,eAAO,MAAM,mBAAmB,SAAU,MAAM,WAAW,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAG,MA+CtF,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { EditError } from "./source-edits.js";
|
|
2
|
+
import { attrValues } from "./source-html.js";
|
|
3
|
+
import { tags } from "./source-tags.js";
|
|
4
|
+
const IDREF_LIST_ATTRS = new Set([
|
|
5
|
+
"aria-controls",
|
|
6
|
+
"aria-describedby",
|
|
7
|
+
"aria-details",
|
|
8
|
+
"aria-errormessage",
|
|
9
|
+
"aria-flowto",
|
|
10
|
+
"aria-labelledby",
|
|
11
|
+
"aria-owns",
|
|
12
|
+
"headers",
|
|
13
|
+
"itemref",
|
|
14
|
+
]);
|
|
15
|
+
const IDREF_ATTRS = new Set(["aria-activedescendant", "contextmenu", "for", "form", "list"]);
|
|
16
|
+
const FRAGMENT_ATTRS = new Set(["href", "usemap", "xlink:href"]);
|
|
17
|
+
const SVG_TIMING_ATTRS = new Set(["begin", "end"]);
|
|
18
|
+
const cssUnescapeIdentifier = (value) => value.replace(/\\(?:([0-9a-f]{1,6})(?:\r\n|[ \n\r\t\f])?|(\r\n|[\n\r\f])|(.))/gis, (_whole, hex, newline, escaped) => {
|
|
19
|
+
if (hex) {
|
|
20
|
+
const cp = Number.parseInt(hex, 16);
|
|
21
|
+
return cp === 0 || cp > 0x10ffff || (cp >= 0xd800 && cp <= 0xdfff)
|
|
22
|
+
? "�"
|
|
23
|
+
: String.fromCodePoint(cp);
|
|
24
|
+
}
|
|
25
|
+
return newline ? "" : (escaped ?? "");
|
|
26
|
+
});
|
|
27
|
+
export const domIds = (html) => tags(html).flatMap((tag) => (tag.closing ? [] : attrValues(tag.attrs, "id")));
|
|
28
|
+
/** Rewrite attribute values in every opening tag. The name=value tokenizer consumes
|
|
29
|
+
* quoted values whole, so text that merely looks like an attribute inside one is never
|
|
30
|
+
* rewritten; attribute spelling and quote style stay unchanged. */
|
|
31
|
+
export const rewriteAttrs = (html, rewrite) => {
|
|
32
|
+
const attr = /([^\s"'<>/=]+)(\s*=\s*)(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+))/g;
|
|
33
|
+
let out = "";
|
|
34
|
+
let cursor = 0;
|
|
35
|
+
for (const tag of tags(html)) {
|
|
36
|
+
if (tag.closing)
|
|
37
|
+
continue;
|
|
38
|
+
out += html.slice(cursor, tag.start);
|
|
39
|
+
out += html
|
|
40
|
+
.slice(tag.start, tag.end)
|
|
41
|
+
.replace(attr, (whole, ...captures) => {
|
|
42
|
+
const [name, equals, double, single, bare] = captures;
|
|
43
|
+
const value = double ?? single ?? bare ?? "";
|
|
44
|
+
const next = rewrite(name, value);
|
|
45
|
+
if (next === value)
|
|
46
|
+
return whole;
|
|
47
|
+
if (double !== undefined)
|
|
48
|
+
return `${name}${equals}"${next}"`;
|
|
49
|
+
if (single !== undefined)
|
|
50
|
+
return `${name}${equals}'${next}'`;
|
|
51
|
+
return `${name}${equals}${next}`;
|
|
52
|
+
});
|
|
53
|
+
cursor = tag.end;
|
|
54
|
+
}
|
|
55
|
+
return out + html.slice(cursor);
|
|
56
|
+
};
|
|
57
|
+
/** A duplicated slide is a new DOM subtree, so authored IDs inside it must also be
|
|
58
|
+
* new. Rewrite the IDREF attributes browsers and assistive technology resolve,
|
|
59
|
+
* plus fragment/url references used by SVG. Attribute spelling and quote style
|
|
60
|
+
* stay unchanged; only values that point at an ID from this slide move. */
|
|
61
|
+
export const rewriteCopiedDomIds = (html, slideId, used) => {
|
|
62
|
+
const originals = domIds(html);
|
|
63
|
+
if (new Set(originals).size !== originals.length)
|
|
64
|
+
throw new EditError("This slide repeats a DOM id inside itself, so duplicating it would leave ambiguous references. Give its elements unique ids first.");
|
|
65
|
+
const rewritten = new Map();
|
|
66
|
+
for (const original of originals) {
|
|
67
|
+
let candidate = `${original}--derive-copy-${slideId}`;
|
|
68
|
+
let n = 2;
|
|
69
|
+
while (used.has(candidate))
|
|
70
|
+
candidate = `${original}--derive-copy-${slideId}-${n++}`;
|
|
71
|
+
rewritten.set(original, candidate);
|
|
72
|
+
used.add(candidate);
|
|
73
|
+
}
|
|
74
|
+
if (!rewritten.size)
|
|
75
|
+
return html;
|
|
76
|
+
const rewriteValue = (name, value) => {
|
|
77
|
+
const lower = name.toLowerCase();
|
|
78
|
+
if (lower === "id")
|
|
79
|
+
return rewritten.get(value) ?? value;
|
|
80
|
+
if (IDREF_ATTRS.has(lower))
|
|
81
|
+
return rewritten.get(value) ?? value;
|
|
82
|
+
if (IDREF_LIST_ATTRS.has(lower))
|
|
83
|
+
return value.replace(/\S+/g, (token) => rewritten.get(token) ?? token);
|
|
84
|
+
if (FRAGMENT_ATTRS.has(lower) && value.startsWith("#"))
|
|
85
|
+
return `#${rewritten.get(value.slice(1)) ?? value.slice(1)}`;
|
|
86
|
+
if (SVG_TIMING_ATTRS.has(lower)) {
|
|
87
|
+
let nextValue = value;
|
|
88
|
+
for (const [original, next] of rewritten) {
|
|
89
|
+
const escaped = original.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
90
|
+
nextValue = nextValue.replace(new RegExp(`(^|;)(\\s*)${escaped}(?=\\.)`, "g"), (_whole, boundary, space) => `${boundary}${space}${next}`);
|
|
91
|
+
}
|
|
92
|
+
return nextValue;
|
|
93
|
+
}
|
|
94
|
+
return value.replace(/url\(\s*((?:["'])|(?:&(?:quot|apos|#(?:34|39)|#x(?:22|27));))?#([^\s)"']+?)\1\s*\)/gi, (whole, _quote, ref) => {
|
|
95
|
+
const decoded = cssUnescapeIdentifier(ref);
|
|
96
|
+
const next = rewritten.get(decoded);
|
|
97
|
+
const encoded = next?.startsWith(decoded) ? ref + next.slice(decoded.length) : next;
|
|
98
|
+
return encoded ? whole.replace(`#${ref}`, `#${encoded}`) : whole;
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
return rewriteAttrs(html, rewriteValue);
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=source-copy-dom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-copy-dom.js","sourceRoot":"","sources":["../../src/protocol/source-copy-dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const inactiveClasses: (classes: string[]) => string[];
|
|
2
|
+
export declare const STRUCTURAL_ID: RegExp;
|
|
3
|
+
/** The identities a document already uses, which every copy made from it must avoid.
|
|
4
|
+
* `copies` names non-slide copies (`id--derive-copy-N`), so repeated copies stay unique. */
|
|
5
|
+
export interface CopyIdentities {
|
|
6
|
+
slides: Set<number>;
|
|
7
|
+
dom: Set<string>;
|
|
8
|
+
structural: Set<string>;
|
|
9
|
+
scenes: Set<string>;
|
|
10
|
+
copies: number;
|
|
11
|
+
}
|
|
12
|
+
export declare const copyIdentitiesOf: (html: string) => CopyIdentities;
|
|
13
|
+
/** A duplicated element's bytes with fresh identities, so the copy never shares comment
|
|
14
|
+
* threads, DOM ids, or structural handles with its original. A slide copy gets a new
|
|
15
|
+
* slide identity and is made inactive, exactly as a slide_ops duplicate; any other
|
|
16
|
+
* element's DOM and structural ids gain a copy suffix, and slides nested inside it get
|
|
17
|
+
* new identities. `used` grows with every identity minted. */
|
|
18
|
+
export declare const copyWithFreshIdentities: (text: string, used: CopyIdentities) => string;
|
|
19
|
+
//# sourceMappingURL=source-copy-identities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-copy-identities.d.ts","sourceRoot":"","sources":["../../src/protocol/source-copy-identities.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,eAAe,YAAa,MAAM,EAAE,KAAG,MAAM,EACwC,CAAA;AAElG,eAAO,MAAM,aAAa,EAAE,MAAyC,CAAA;AAsFrE;6FAC6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,cAgB9C,CAAA;AAEF;;;;+DAI+D;AAC/D,eAAO,MAAM,uBAAuB,SAAU,MAAM,QAAQ,cAAc,KAAG,MAuB5E,CAAA"}
|