@bendyline/squisq 2.0.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE.md +24 -0
- package/dist/{ContentContainer-BXUlIf18.d.ts → ContentContainer-B2w9sUoL.d.ts} +15 -0
- package/dist/{Doc-ylqWKDc_.d.ts → Doc-BubIpWsp.d.ts} +160 -3
- package/dist/{ImageEditDoc-D828IXJ1.d.ts → ImageEditDoc-CGxk5CHc.d.ts} +1 -1
- package/dist/{annotationCoercion-Dr_DY9Hx.d.ts → annotationCoercion-PtRQhk5V.d.ts} +1 -1
- package/dist/chunk-2L55443L.js +0 -0
- package/dist/chunk-2ZWIXGAC.js +214 -0
- package/dist/{chunk-2PWOO4ZE.js → chunk-32R2RZAO.js} +72 -3
- package/dist/chunk-3IGPAPQ7.js +645 -0
- package/dist/{chunk-QE7TWGVT.js → chunk-4VOD55SX.js} +0 -1
- package/dist/{chunk-3E5F2XMR.js → chunk-67L6WRJN.js} +0 -1
- package/dist/{chunk-5DKBFXPY.js → chunk-6ECMNUIP.js} +26 -18
- package/dist/{chunk-X6DUONGT.js → chunk-7ARJZYQY.js} +280 -128
- package/dist/{chunk-DBS6RIFL.js → chunk-7N4G32LG.js} +0 -1
- package/dist/{chunk-JOQYPRDZ.js → chunk-7YEZFHLS.js} +10 -8
- package/dist/{chunk-2UQOHYE2.js → chunk-7ZAAICW4.js} +0 -1
- package/dist/{chunk-66QO7XFB.js → chunk-ACZOVWX3.js} +117 -7
- package/dist/{chunk-5J4HKRJF.js → chunk-BAOV476U.js} +0 -1
- package/dist/chunk-BCCXTMN5.js +699 -0
- package/dist/{chunk-W4O2TX5I.js → chunk-C33GTPUZ.js} +579 -4
- package/dist/{chunk-MMPBOUK7.js → chunk-CB45YGAM.js} +7 -2
- package/dist/{chunk-CY2R2VPR.js → chunk-DYPMOPIW.js} +18 -2
- package/dist/{chunk-VR7UPJ7C.js → chunk-FCG3BIZN.js} +12 -1
- package/dist/{chunk-5UYI3RJB.js → chunk-FDYDYL77.js} +54 -40
- package/dist/{chunk-TFJVXUHH.js → chunk-I2O6W7DX.js} +1513 -79
- package/dist/{chunk-Q7LROV2H.js → chunk-NKNMGIIN.js} +0 -1
- package/dist/chunk-OPO5K4DZ.js +241 -0
- package/dist/{chunk-TUWMK62B.js → chunk-PUS54YU6.js} +45 -2
- package/dist/chunk-QKPXHDLR.js +0 -0
- package/dist/{chunk-GZY66SDN.js → chunk-R3KTTOMS.js} +0 -1
- package/dist/{chunk-PXLVXTLW.js → chunk-RS5AP3J4.js} +72 -15
- package/dist/chunk-WV5ARNDA.js +0 -0
- package/dist/{chunk-4X3JQXNM.js → chunk-XOFT65EX.js} +1 -2
- package/dist/{chunk-FVTQSNR7.js → chunk-XRW6P7IF.js} +13 -5
- package/dist/chunk-XWNNA3KE.js +0 -0
- package/dist/chunk-YZNGMV3G.js +0 -0
- package/dist/{chunk-R2YZTCLO.js → chunk-ZQKZSJAX.js} +1 -2
- package/dist/doc/index.d.ts +166 -12
- package/dist/doc/index.js +36 -17
- package/dist/generate/index.d.ts +2 -2
- package/dist/generate/index.js +2 -3
- package/dist/icons/index.js +3 -4
- package/dist/icons/inlineIconMarker.js +1 -2
- package/dist/imageEdit/index.d.ts +48 -17
- package/dist/imageEdit/index.js +3 -4
- package/dist/index.d.ts +13 -12
- package/dist/index.js +118 -33
- package/dist/jsonForm/index.d.ts +10 -3
- package/dist/jsonForm/index.js +8 -7
- package/dist/markdown/index.d.ts +75 -11
- package/dist/markdown/index.js +32 -7
- package/dist/materializePageSection-wSLA2A1g.d.ts +223 -0
- package/dist/narration/index.d.ts +16 -3
- package/dist/narration/index.js +13 -14
- package/dist/random/index.d.ts +11 -2
- package/dist/random/index.js +2 -3
- package/dist/recommend/index.d.ts +1 -1
- package/dist/recommend/index.js +3 -4
- package/dist/schemas/index.d.ts +31 -6
- package/dist/schemas/index.js +43 -6
- package/dist/spatial/index.d.ts +2 -1
- package/dist/spatial/index.js +1 -2
- package/dist/storage/index.d.ts +4 -2
- package/dist/storage/index.js +1 -2
- package/dist/{themeLibrary-RjVgLpUi.d.ts → themeLibrary-DU9mUmVl.d.ts} +1 -1
- package/dist/timing/index.js +3 -4
- package/dist/transform/index.d.ts +9 -10
- package/dist/transform/index.js +6 -7
- package/dist/{types-C4kiRn_k.d.ts → types-8QjefM9J.d.ts} +38 -2
- package/dist/{types-BwMPl2CB.d.ts → types-CUNc9biN.d.ts} +24 -1
- package/dist/versions/index.d.ts +14 -11
- package/dist/versions/index.js +2 -3
- package/package.json +4 -2
- package/dist/chunk-2PWOO4ZE.js.map +0 -1
- package/dist/chunk-2UQOHYE2.js.map +0 -1
- package/dist/chunk-3E5F2XMR.js.map +0 -1
- package/dist/chunk-4X3JQXNM.js.map +0 -1
- package/dist/chunk-5DKBFXPY.js.map +0 -1
- package/dist/chunk-5J4HKRJF.js.map +0 -1
- package/dist/chunk-5UYI3RJB.js.map +0 -1
- package/dist/chunk-66QO7XFB.js.map +0 -1
- package/dist/chunk-AMIR72JP.js +0 -380
- package/dist/chunk-AMIR72JP.js.map +0 -1
- package/dist/chunk-CY2R2VPR.js.map +0 -1
- package/dist/chunk-DBS6RIFL.js.map +0 -1
- package/dist/chunk-DNJKBAI7.js +0 -1
- package/dist/chunk-DNJKBAI7.js.map +0 -1
- package/dist/chunk-ET53IIEP.js +0 -1
- package/dist/chunk-ET53IIEP.js.map +0 -1
- package/dist/chunk-FVJUUTEM.js +0 -74
- package/dist/chunk-FVJUUTEM.js.map +0 -1
- package/dist/chunk-FVTQSNR7.js.map +0 -1
- package/dist/chunk-GZY66SDN.js.map +0 -1
- package/dist/chunk-JOQYPRDZ.js.map +0 -1
- package/dist/chunk-MMPBOUK7.js.map +0 -1
- package/dist/chunk-PGGGKYWG.js +0 -1
- package/dist/chunk-PGGGKYWG.js.map +0 -1
- package/dist/chunk-PXLVXTLW.js.map +0 -1
- package/dist/chunk-Q7LROV2H.js.map +0 -1
- package/dist/chunk-QE7TWGVT.js.map +0 -1
- package/dist/chunk-R2GC6RLD.js +0 -344
- package/dist/chunk-R2GC6RLD.js.map +0 -1
- package/dist/chunk-R2YZTCLO.js.map +0 -1
- package/dist/chunk-S7A5D7ZJ.js +0 -174
- package/dist/chunk-S7A5D7ZJ.js.map +0 -1
- package/dist/chunk-TFJVXUHH.js.map +0 -1
- package/dist/chunk-TUWMK62B.js.map +0 -1
- package/dist/chunk-V543AI2F.js +0 -1
- package/dist/chunk-V543AI2F.js.map +0 -1
- package/dist/chunk-VR7UPJ7C.js.map +0 -1
- package/dist/chunk-W4O2TX5I.js.map +0 -1
- package/dist/chunk-X6DUONGT.js.map +0 -1
- package/dist/chunk-ZLQKNOZQ.js +0 -1
- package/dist/chunk-ZLQKNOZQ.js.map +0 -1
- package/dist/doc/index.js.map +0 -1
- package/dist/generate/index.js.map +0 -1
- package/dist/icons/index.js.map +0 -1
- package/dist/icons/inlineIconMarker.js.map +0 -1
- package/dist/imageEdit/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jsonForm/index.js.map +0 -1
- package/dist/markdown/index.js.map +0 -1
- package/dist/narration/index.js.map +0 -1
- package/dist/random/index.js.map +0 -1
- package/dist/recommend/index.js.map +0 -1
- package/dist/schemas/index.js.map +0 -1
- package/dist/spatial/index.js.map +0 -1
- package/dist/storage/index.js.map +0 -1
- package/dist/timing/index.js.map +0 -1
- package/dist/transform/index.js.map +0 -1
- package/dist/versions/index.js.map +0 -1
- package/src/__tests__/animationUtils.test.ts +0 -117
- package/src/__tests__/annotationCoercion.test.ts +0 -243
- package/src/__tests__/applyNarrationTiming.test.ts +0 -190
- package/src/__tests__/applyRenderStyle.test.ts +0 -146
- package/src/__tests__/asciiDiagramBattle.test.ts +0 -246
- package/src/__tests__/asciiDiagramDetect.test.ts +0 -162
- package/src/__tests__/asciiDiagramMapping.test.ts +0 -38
- package/src/__tests__/asciiDiagramParse.test.ts +0 -233
- package/src/__tests__/asciiDiagramPipeline.test.ts +0 -273
- package/src/__tests__/asciiDiagramRender.test.ts +0 -162
- package/src/__tests__/asciiDiagramRepair.test.ts +0 -84
- package/src/__tests__/asciiTimelineDetect.test.ts +0 -157
- package/src/__tests__/asciiTimelineParse.test.ts +0 -205
- package/src/__tests__/asciiTimelinePipeline.test.ts +0 -349
- package/src/__tests__/asciiTimelineRender.test.ts +0 -376
- package/src/__tests__/atmosphereLayers.test.ts +0 -108
- package/src/__tests__/attrTokens.test.ts +0 -167
- package/src/__tests__/colorUtils.test.ts +0 -112
- package/src/__tests__/contentContainer.test.ts +0 -325
- package/src/__tests__/contentExtractor.test.ts +0 -243
- package/src/__tests__/coverBlock.test.ts +0 -310
- package/src/__tests__/customTemplateSample.test.ts +0 -144
- package/src/__tests__/customTemplatesFrontmatter.test.ts +0 -221
- package/src/__tests__/customThemesFrontmatter.test.ts +0 -146
- package/src/__tests__/dataTable.test.ts +0 -145
- package/src/__tests__/diagramBlock.test.ts +0 -122
- package/src/__tests__/diagramLayout.test.ts +0 -134
- package/src/__tests__/diagramText.test.ts +0 -26
- package/src/__tests__/docToMarkdownMedia.test.ts +0 -83
- package/src/__tests__/drawing.test.ts +0 -109
- package/src/__tests__/drawingBlock.test.ts +0 -124
- package/src/__tests__/drawingLayout.test.ts +0 -171
- package/src/__tests__/fixtures/asciiDiagramBattle.ts +0 -512
- package/src/__tests__/fixtures/asciiDiagrams.ts +0 -287
- package/src/__tests__/fixtures/asciiTimelines.ts +0 -35
- package/src/__tests__/fixtures/treeviewFixtures.ts +0 -243
- package/src/__tests__/geohash.test.ts +0 -110
- package/src/__tests__/getLayers.test.ts +0 -243
- package/src/__tests__/getLayersFallback.test.ts +0 -103
- package/src/__tests__/haversine.test.ts +0 -63
- package/src/__tests__/iconResolve.test.ts +0 -122
- package/src/__tests__/imageEditExportSvg.test.ts +0 -70
- package/src/__tests__/imageEditState.test.ts +0 -74
- package/src/__tests__/imageEditVersions.test.ts +0 -243
- package/src/__tests__/inferDocumentTitle.test.ts +0 -50
- package/src/__tests__/inlineIconMarker.test.ts +0 -36
- package/src/__tests__/inputDescriptors.test.ts +0 -162
- package/src/__tests__/jsonForm.chooseControl.test.ts +0 -86
- package/src/__tests__/jsonForm.evaluateWhen.test.ts +0 -59
- package/src/__tests__/jsonForm.inferSchema.test.ts +0 -25
- package/src/__tests__/jsonForm.pointer.test.ts +0 -149
- package/src/__tests__/jsonForm.tokens.test.ts +0 -84
- package/src/__tests__/layoutBlock.test.ts +0 -83
- package/src/__tests__/layoutLayout.test.ts +0 -169
- package/src/__tests__/localForageAdapter.test.ts +0 -155
- package/src/__tests__/majorApiTypes.test.ts +0 -18
- package/src/__tests__/markdown.test.ts +0 -1009
- package/src/__tests__/markdownIcons.test.ts +0 -104
- package/src/__tests__/markdownSanitize.test.ts +0 -81
- package/src/__tests__/markdownToDoc.test.ts +0 -957
- package/src/__tests__/matchFontFamily.test.ts +0 -114
- package/src/__tests__/materializeBlockLayers.test.ts +0 -135
- package/src/__tests__/materializeTestUtils.ts +0 -17
- package/src/__tests__/mediaAnnotations.test.ts +0 -91
- package/src/__tests__/mediaSchedule.test.ts +0 -118
- package/src/__tests__/narrationAlign.test.ts +0 -150
- package/src/__tests__/narrationFeatures.test.ts +0 -71
- package/src/__tests__/narrationNuclei.test.ts +0 -45
- package/src/__tests__/narrationPacing.test.ts +0 -189
- package/src/__tests__/narrationScript.test.ts +0 -149
- package/src/__tests__/narrationSessionRepro.test.ts +0 -62
- package/src/__tests__/narrationSidecar.test.ts +0 -88
- package/src/__tests__/narrationSyllables.test.ts +0 -65
- package/src/__tests__/narrationTestSignals.ts +0 -167
- package/src/__tests__/narrationVad.test.ts +0 -66
- package/src/__tests__/pandocAttrParse.test.ts +0 -187
- package/src/__tests__/recommendTemplates.test.ts +0 -183
- package/src/__tests__/resolveDocTheme.test.ts +0 -69
- package/src/__tests__/rootExports.test.ts +0 -61
- package/src/__tests__/scopedContentContainer.test.ts +0 -109
- package/src/__tests__/seededRandom.test.ts +0 -142
- package/src/__tests__/shapeGeometry.test.ts +0 -138
- package/src/__tests__/shapeVocabulary.test.ts +0 -133
- package/src/__tests__/storage.test.ts +0 -60
- package/src/__tests__/structuredData.test.ts +0 -249
- package/src/__tests__/surface.test.ts +0 -68
- package/src/__tests__/templateAnnotationParse.test.ts +0 -160
- package/src/__tests__/templateInputs.test.ts +0 -69
- package/src/__tests__/templateMetadata.test.ts +0 -32
- package/src/__tests__/templates.test.ts +0 -710
- package/src/__tests__/themeCompile.test.ts +0 -225
- package/src/__tests__/themeValidator.test.ts +0 -131
- package/src/__tests__/timing.test.ts +0 -167
- package/src/__tests__/transformProvenance.test.ts +0 -160
- package/src/__tests__/transformV2.test.ts +0 -163
- package/src/__tests__/transitionNormalize.test.ts +0 -61
- package/src/__tests__/treeviewBattle.test.ts +0 -76
- package/src/__tests__/treeviewDetect.test.ts +0 -168
- package/src/__tests__/treeviewParse.test.ts +0 -118
- package/src/__tests__/treeviewPipeline.test.ts +0 -183
- package/src/__tests__/treeviewRender.test.ts +0 -91
- package/src/__tests__/validateDoc.test.ts +0 -260
- package/src/__tests__/versions.test.ts +0 -459
- package/src/doc/annotationBlocks.ts +0 -117
- package/src/doc/applyNarrationTiming.ts +0 -244
- package/src/doc/asciiDiagram/chars.ts +0 -210
- package/src/doc/asciiDiagram/detect.ts +0 -175
- package/src/doc/asciiDiagram/index.ts +0 -38
- package/src/doc/asciiDiagram/mapping.ts +0 -225
- package/src/doc/asciiDiagram/parse.ts +0 -1095
- package/src/doc/asciiDiagram/render.ts +0 -963
- package/src/doc/asciiDiagram/repair.ts +0 -400
- package/src/doc/asciiDiagram/types.ts +0 -65
- package/src/doc/asciiTimeline/detect.ts +0 -138
- package/src/doc/asciiTimeline/index.ts +0 -26
- package/src/doc/asciiTimeline/mapping.ts +0 -43
- package/src/doc/asciiTimeline/parse.ts +0 -870
- package/src/doc/asciiTimeline/render.ts +0 -427
- package/src/doc/asciiTimeline/types.ts +0 -73
- package/src/doc/asciiTimeline/wrappedFlow.ts +0 -427
- package/src/doc/audioMapping.ts +0 -442
- package/src/doc/customTemplatesFrontmatter.ts +0 -273
- package/src/doc/customThemesFrontmatter.ts +0 -95
- package/src/doc/docToMarkdown.ts +0 -284
- package/src/doc/index.ts +0 -127
- package/src/doc/markdownToDoc.ts +0 -1054
- package/src/doc/materializeBlockLayers.ts +0 -304
- package/src/doc/mediaAnnotations.ts +0 -120
- package/src/doc/resolveDocTheme.ts +0 -56
- package/src/doc/standaloneAnnotation.ts +0 -58
- package/src/doc/structuredData.ts +0 -301
- package/src/doc/templateInputs.ts +0 -423
- package/src/doc/templates/__tests__/customTemplate.test.ts +0 -170
- package/src/doc/templates/__tests__/customTemplateRegistry.test.ts +0 -124
- package/src/doc/templates/__tests__/listBlock.test.ts +0 -64
- package/src/doc/templates/accentImage.ts +0 -362
- package/src/doc/templates/captionUtils.ts +0 -56
- package/src/doc/templates/comparisonBar.ts +0 -173
- package/src/doc/templates/coverBlock.ts +0 -255
- package/src/doc/templates/customTemplate.ts +0 -51
- package/src/doc/templates/dataTable.ts +0 -102
- package/src/doc/templates/dateEvent.ts +0 -147
- package/src/doc/templates/definitionCard.ts +0 -140
- package/src/doc/templates/diagramBlock.ts +0 -403
- package/src/doc/templates/diagramLayout.ts +0 -159
- package/src/doc/templates/drawingBlock.ts +0 -325
- package/src/doc/templates/drawingLayout.ts +0 -539
- package/src/doc/templates/factCard.ts +0 -146
- package/src/doc/templates/fallbackBlock.ts +0 -123
- package/src/doc/templates/featureBlock.ts +0 -209
- package/src/doc/templates/fullBleedQuote.ts +0 -83
- package/src/doc/templates/imageWithCaption.ts +0 -186
- package/src/doc/templates/index.ts +0 -642
- package/src/doc/templates/inputDescriptors.ts +0 -451
- package/src/doc/templates/layoutBlock.ts +0 -43
- package/src/doc/templates/layoutLayout.ts +0 -243
- package/src/doc/templates/listBlock.ts +0 -207
- package/src/doc/templates/mapBlock.ts +0 -138
- package/src/doc/templates/metadata.ts +0 -130
- package/src/doc/templates/persistentLayers.ts +0 -526
- package/src/doc/templates/photoGrid.ts +0 -190
- package/src/doc/templates/pullQuote.ts +0 -141
- package/src/doc/templates/quoteBlock.ts +0 -141
- package/src/doc/templates/registry.ts +0 -88
- package/src/doc/templates/sectionHeader.ts +0 -120
- package/src/doc/templates/statHighlight.ts +0 -146
- package/src/doc/templates/templateNames.ts +0 -22
- package/src/doc/templates/timelineBlock.ts +0 -613
- package/src/doc/templates/titleBlock.ts +0 -150
- package/src/doc/templates/tokens/__tests__/resolveTokens.test.ts +0 -487
- package/src/doc/templates/tokens/resolveTokens.ts +0 -453
- package/src/doc/templates/treeBlock.ts +0 -131
- package/src/doc/templates/twoColumn.ts +0 -263
- package/src/doc/templates/videoPullQuote.ts +0 -142
- package/src/doc/templates/videoWithCaption.ts +0 -135
- package/src/doc/treeview/chars.ts +0 -72
- package/src/doc/treeview/detect.ts +0 -145
- package/src/doc/treeview/index.ts +0 -30
- package/src/doc/treeview/mapping.ts +0 -95
- package/src/doc/treeview/parse.ts +0 -201
- package/src/doc/treeview/render.ts +0 -41
- package/src/doc/treeview/types.ts +0 -43
- package/src/doc/utils/animationUtils.ts +0 -399
- package/src/doc/utils/applyRenderStyle.ts +0 -106
- package/src/doc/utils/diagramText.ts +0 -78
- package/src/doc/utils/imageTreatment.ts +0 -70
- package/src/doc/utils/nearest.ts +0 -59
- package/src/doc/utils/shapeGeometry.ts +0 -614
- package/src/doc/utils/themeUtils.ts +0 -243
- package/src/doc/validate.ts +0 -575
- package/src/generate/contentExtractor.ts +0 -921
- package/src/generate/index.ts +0 -18
- package/src/generate/templateMapper.ts +0 -177
- package/src/icons/iconData.ts +0 -31
- package/src/icons/index.ts +0 -26
- package/src/icons/inlineIconMarker.ts +0 -73
- package/src/icons/resolve.ts +0 -139
- package/src/imageEdit/ImageEditVersionManager.ts +0 -73
- package/src/imageEdit/export.ts +0 -410
- package/src/imageEdit/index.ts +0 -72
- package/src/imageEdit/persistence.ts +0 -113
- package/src/imageEdit/state.ts +0 -112
- package/src/imageEdit/versionPaths.ts +0 -44
- package/src/imageEdit/versions.ts +0 -152
- package/src/index.ts +0 -15
- package/src/internal/immutable.ts +0 -58
- package/src/jsonForm/chooseControl.ts +0 -88
- package/src/jsonForm/evaluateWhen.ts +0 -59
- package/src/jsonForm/index.ts +0 -32
- package/src/jsonForm/inferSchema.ts +0 -25
- package/src/jsonForm/pointer.ts +0 -154
- package/src/jsonForm/tokens.ts +0 -78
- package/src/jsonForm/types.ts +0 -167
- package/src/markdown/annotationCoercion.ts +0 -295
- package/src/markdown/attrTokens.ts +0 -243
- package/src/markdown/convert.ts +0 -1353
- package/src/markdown/htmlParse.ts +0 -212
- package/src/markdown/index.ts +0 -152
- package/src/markdown/parse.ts +0 -103
- package/src/markdown/sanitize.ts +0 -318
- package/src/markdown/stringify.ts +0 -207
- package/src/markdown/types.ts +0 -710
- package/src/markdown/utils.ts +0 -459
- package/src/narration/align.ts +0 -514
- package/src/narration/features.ts +0 -231
- package/src/narration/index.ts +0 -86
- package/src/narration/nuclei.ts +0 -118
- package/src/narration/pacing.ts +0 -211
- package/src/narration/script.ts +0 -239
- package/src/narration/session.ts +0 -100
- package/src/narration/sidecar.ts +0 -187
- package/src/narration/syllables.ts +0 -85
- package/src/narration/trace.ts +0 -50
- package/src/narration/types.ts +0 -299
- package/src/narration/vad.ts +0 -131
- package/src/ngeohash.d.ts +0 -11
- package/src/random/SeededRandom.ts +0 -127
- package/src/random/index.ts +0 -1
- package/src/recommend/index.ts +0 -16
- package/src/recommend/numberHighlight.ts +0 -25
- package/src/recommend/templates.ts +0 -393
- package/src/schemas/BlockTemplates.ts +0 -1046
- package/src/schemas/CustomTemplates.ts +0 -126
- package/src/schemas/Doc.ts +0 -1052
- package/src/schemas/ImageEditDoc.ts +0 -102
- package/src/schemas/LayoutStrategy.ts +0 -178
- package/src/schemas/Media.ts +0 -179
- package/src/schemas/MediaProvider.ts +0 -70
- package/src/schemas/Theme.ts +0 -406
- package/src/schemas/Transitions.ts +0 -224
- package/src/schemas/Types.ts +0 -15
- package/src/schemas/Viewport.ts +0 -91
- package/src/schemas/colorUtils.ts +0 -219
- package/src/schemas/fontStacks.ts +0 -339
- package/src/schemas/index.ts +0 -29
- package/src/schemas/themeCompile.ts +0 -237
- package/src/schemas/themeConstants.ts +0 -2
- package/src/schemas/themeLibrary.ts +0 -60
- package/src/schemas/themeValidator.ts +0 -426
- package/src/schemas/themes/bold.json +0 -48
- package/src/schemas/themes/cinematic.json +0 -111
- package/src/schemas/themes/documentary.json +0 -96
- package/src/schemas/themes/gezellig.json +0 -93
- package/src/schemas/themes/index.ts +0 -53
- package/src/schemas/themes/magazine.json +0 -89
- package/src/schemas/themes/minimalist.json +0 -45
- package/src/schemas/themes/morning-light.json +0 -85
- package/src/schemas/themes/standard-dark.json +0 -85
- package/src/schemas/themes/standard.json +0 -74
- package/src/schemas/themes/tech-dark.json +0 -101
- package/src/schemas/themes/warm-earth.json +0 -50
- package/src/spatial/Geohash.ts +0 -196
- package/src/spatial/Haversine.ts +0 -59
- package/src/spatial/index.ts +0 -2
- package/src/storage/ContentContainer.ts +0 -220
- package/src/storage/LocalForageAdapter.ts +0 -103
- package/src/storage/LocalStorageAdapter.ts +0 -57
- package/src/storage/MediaProviderFromContainer.ts +0 -92
- package/src/storage/MemoryStorageAdapter.ts +0 -37
- package/src/storage/ScopedContentContainer.ts +0 -143
- package/src/storage/Storage.ts +0 -28
- package/src/storage/index.ts +0 -9
- package/src/timing/index.ts +0 -17
- package/src/timing/narrationTiming.ts +0 -220
- package/src/timing/readingTime.ts +0 -94
- package/src/transform/applyTransform.ts +0 -122
- package/src/transform/blockAnalyzer.ts +0 -181
- package/src/transform/index.ts +0 -23
- package/src/transform/registry.ts +0 -198
- package/src/transform/styles/dataDriven.ts +0 -17
- package/src/transform/styles/documentary.ts +0 -17
- package/src/transform/styles/index.ts +0 -5
- package/src/transform/styles/magazine.ts +0 -18
- package/src/transform/styles/minimal.ts +0 -17
- package/src/transform/styles/narrative.ts +0 -18
- package/src/transform/templateSelector.ts +0 -389
- package/src/transform/timingAllocator.ts +0 -257
- package/src/transform/types.ts +0 -151
- package/src/versions/DocumentVersionManager.ts +0 -70
- package/src/versions/gitignore.ts +0 -34
- package/src/versions/index.ts +0 -56
- package/src/versions/operations.ts +0 -144
- package/src/versions/paths.ts +0 -51
- package/src/versions/snapshotStore.ts +0 -202
- package/src/versions/timestamp.ts +0 -48
- package/src/versions/types.ts +0 -93
package/dist/chunk-S7A5D7ZJ.js
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
// src/versions/timestamp.ts
|
|
2
|
-
var TIMESTAMP_RE = /^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/;
|
|
3
|
-
function pad2(n) {
|
|
4
|
-
return n < 10 ? `0${n}` : String(n);
|
|
5
|
-
}
|
|
6
|
-
function formatVersionTimestamp(date) {
|
|
7
|
-
return String(date.getUTCFullYear()).padStart(4, "0") + pad2(date.getUTCMonth() + 1) + pad2(date.getUTCDate()) + "T" + pad2(date.getUTCHours()) + pad2(date.getUTCMinutes()) + pad2(date.getUTCSeconds()) + "Z";
|
|
8
|
-
}
|
|
9
|
-
function parseVersionTimestamp(stamp) {
|
|
10
|
-
const m = TIMESTAMP_RE.exec(stamp);
|
|
11
|
-
if (!m) return null;
|
|
12
|
-
const [, y, mo, d, h, mi, s] = m;
|
|
13
|
-
const ms = Date.UTC(Number(y), Number(mo) - 1, Number(d), Number(h), Number(mi), Number(s));
|
|
14
|
-
if (Number.isNaN(ms)) return null;
|
|
15
|
-
return new Date(ms);
|
|
16
|
-
}
|
|
17
|
-
var VERSION_TIMESTAMP_PATTERN = TIMESTAMP_RE;
|
|
18
|
-
|
|
19
|
-
// src/versions/gitignore.ts
|
|
20
|
-
var decoder = new TextDecoder();
|
|
21
|
-
var encoder = new TextEncoder();
|
|
22
|
-
var GITIGNORE_PATH = ".gitignore";
|
|
23
|
-
var VERSIONS_IGNORE_RULE = ".versions/";
|
|
24
|
-
var EQUIVALENT_VERSIONS_RULE = /^(!?)\/?\.versions\/?$/;
|
|
25
|
-
async function ensureVersionsGitIgnored(container) {
|
|
26
|
-
const data = await container.readFile(GITIGNORE_PATH);
|
|
27
|
-
const existing = data ? decoder.decode(data) : "";
|
|
28
|
-
let alreadyIgnored = false;
|
|
29
|
-
for (const line of existing.split(/\r?\n/)) {
|
|
30
|
-
const match = EQUIVALENT_VERSIONS_RULE.exec(line.trim());
|
|
31
|
-
if (match) alreadyIgnored = match[1] !== "!";
|
|
32
|
-
}
|
|
33
|
-
if (alreadyIgnored) return;
|
|
34
|
-
const newline = existing.includes("\r\n") ? "\r\n" : "\n";
|
|
35
|
-
const separator = existing.length > 0 && !existing.endsWith("\n") ? newline : "";
|
|
36
|
-
const next = `${existing}${separator}${VERSIONS_IGNORE_RULE}${newline}`;
|
|
37
|
-
await container.writeFile(GITIGNORE_PATH, encoder.encode(next), "text/plain");
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// src/versions/snapshotStore.ts
|
|
41
|
-
var decoder2 = new TextDecoder();
|
|
42
|
-
var encoder2 = new TextEncoder();
|
|
43
|
-
function buildSnapshotPath(strategy, basename, date, collision = 0) {
|
|
44
|
-
const stamp = formatVersionTimestamp(date);
|
|
45
|
-
const suffix = collision > 0 ? `-${collision + 1}` : "";
|
|
46
|
-
return `${strategy.prefix}${basename}.${stamp}${suffix}.${strategy.extension}`;
|
|
47
|
-
}
|
|
48
|
-
function parseSnapshotPath(strategy, path) {
|
|
49
|
-
if (!path.startsWith(strategy.prefix)) return null;
|
|
50
|
-
const extension = `.${strategy.extension}`;
|
|
51
|
-
const rest = path.slice(strategy.prefix.length);
|
|
52
|
-
if (!rest.endsWith(extension)) return null;
|
|
53
|
-
const stem = rest.slice(0, -extension.length);
|
|
54
|
-
const lastDot = stem.lastIndexOf(".");
|
|
55
|
-
if (lastDot <= 0) return null;
|
|
56
|
-
const basename = stem.slice(0, lastDot);
|
|
57
|
-
const tail = stem.slice(lastDot + 1);
|
|
58
|
-
const dash = tail.indexOf("-");
|
|
59
|
-
let stamp = tail;
|
|
60
|
-
let collision = 0;
|
|
61
|
-
if (dash >= 0) {
|
|
62
|
-
stamp = tail.slice(0, dash);
|
|
63
|
-
const suffix = Number(tail.slice(dash + 1));
|
|
64
|
-
if (!Number.isInteger(suffix) || suffix < 2) return null;
|
|
65
|
-
collision = suffix - 1;
|
|
66
|
-
}
|
|
67
|
-
const timestamp = parseVersionTimestamp(stamp);
|
|
68
|
-
return timestamp ? { basename, timestamp, collision } : null;
|
|
69
|
-
}
|
|
70
|
-
async function listSnapshots(container, strategy, basename) {
|
|
71
|
-
const entries = await container.listFiles(strategy.prefix);
|
|
72
|
-
const versions = [];
|
|
73
|
-
for (const entry of entries) {
|
|
74
|
-
const parsed = parseSnapshotPath(strategy, entry.path);
|
|
75
|
-
if (!parsed || basename !== void 0 && parsed.basename !== basename) continue;
|
|
76
|
-
versions.push({
|
|
77
|
-
path: entry.path,
|
|
78
|
-
basename: parsed.basename,
|
|
79
|
-
timestamp: parsed.timestamp,
|
|
80
|
-
size: entry.size,
|
|
81
|
-
collision: parsed.collision
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
versions.sort((a, b) => {
|
|
85
|
-
const timestampDelta = b.timestamp.getTime() - a.timestamp.getTime();
|
|
86
|
-
return timestampDelta || b.collision - a.collision;
|
|
87
|
-
});
|
|
88
|
-
return versions;
|
|
89
|
-
}
|
|
90
|
-
async function readTextSnapshot(container, version) {
|
|
91
|
-
const path = typeof version === "string" ? version : version.path;
|
|
92
|
-
const data = await container.readFile(path);
|
|
93
|
-
return data ? decoder2.decode(data) : null;
|
|
94
|
-
}
|
|
95
|
-
async function saveTextSnapshot(container, strategy, options) {
|
|
96
|
-
const versions = await listSnapshots(container, strategy, options.basename);
|
|
97
|
-
if (!options.force && versions.length > 0) {
|
|
98
|
-
const existing = await readTextSnapshot(container, versions[0]);
|
|
99
|
-
if (existing === options.content) {
|
|
100
|
-
await ensureVersionsGitIgnored(container);
|
|
101
|
-
return { saved: false, version: null, reason: "unchanged" };
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
const now = options.now ?? /* @__PURE__ */ new Date();
|
|
105
|
-
let collision = 0;
|
|
106
|
-
let path = buildSnapshotPath(strategy, options.basename, now, collision);
|
|
107
|
-
while (await container.exists(path)) {
|
|
108
|
-
collision += 1;
|
|
109
|
-
path = buildSnapshotPath(strategy, options.basename, now, collision);
|
|
110
|
-
}
|
|
111
|
-
const data = encoder2.encode(options.content);
|
|
112
|
-
await ensureVersionsGitIgnored(container);
|
|
113
|
-
await container.writeFile(path, data, options.mimeType);
|
|
114
|
-
return {
|
|
115
|
-
saved: true,
|
|
116
|
-
version: {
|
|
117
|
-
path,
|
|
118
|
-
basename: options.basename,
|
|
119
|
-
timestamp: now,
|
|
120
|
-
size: data.byteLength,
|
|
121
|
-
collision
|
|
122
|
-
},
|
|
123
|
-
reason: "saved"
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
async function pruneSnapshots(container, strategy, policy, basename) {
|
|
127
|
-
const versions = await listSnapshots(container, strategy, basename);
|
|
128
|
-
let toDelete;
|
|
129
|
-
if (policy.type === "keep-last-n") {
|
|
130
|
-
toDelete = versions.slice(Math.max(0, Math.floor(policy.n)));
|
|
131
|
-
} else if (policy.type === "older-than") {
|
|
132
|
-
const cutoff = policy.date.getTime();
|
|
133
|
-
toDelete = versions.filter((version) => version.timestamp.getTime() < cutoff);
|
|
134
|
-
} else {
|
|
135
|
-
toDelete = versions.filter((version) => !policy.keep(version, versions));
|
|
136
|
-
}
|
|
137
|
-
await removeSnapshots(container, toDelete);
|
|
138
|
-
return toDelete;
|
|
139
|
-
}
|
|
140
|
-
async function coalesceSnapshots(container, strategy, options = {}, basename) {
|
|
141
|
-
const windowMs = options.windowMs ?? 6e4;
|
|
142
|
-
const versions = await listSnapshots(container, strategy, basename);
|
|
143
|
-
const toDelete = [];
|
|
144
|
-
if (versions.length > 0) {
|
|
145
|
-
let anchor = versions[0];
|
|
146
|
-
for (let index = 1; index < versions.length; index++) {
|
|
147
|
-
const candidate = versions[index];
|
|
148
|
-
if (anchor.timestamp.getTime() - candidate.timestamp.getTime() <= windowMs) {
|
|
149
|
-
toDelete.push(candidate);
|
|
150
|
-
} else {
|
|
151
|
-
anchor = candidate;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
await removeSnapshots(container, toDelete);
|
|
156
|
-
return toDelete;
|
|
157
|
-
}
|
|
158
|
-
async function removeSnapshots(container, versions) {
|
|
159
|
-
for (const version of versions) await container.removeFile(version.path);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export {
|
|
163
|
-
formatVersionTimestamp,
|
|
164
|
-
parseVersionTimestamp,
|
|
165
|
-
VERSION_TIMESTAMP_PATTERN,
|
|
166
|
-
buildSnapshotPath,
|
|
167
|
-
parseSnapshotPath,
|
|
168
|
-
listSnapshots,
|
|
169
|
-
readTextSnapshot,
|
|
170
|
-
saveTextSnapshot,
|
|
171
|
-
pruneSnapshots,
|
|
172
|
-
coalesceSnapshots
|
|
173
|
-
};
|
|
174
|
-
//# sourceMappingURL=chunk-S7A5D7ZJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/versions/timestamp.ts","../src/versions/gitignore.ts","../src/versions/snapshotStore.ts"],"sourcesContent":["/**\n * Sortable, human-readable timestamps for version filenames.\n *\n * Format: ISO 8601 basic, UTC, second precision, `Z` suffix —\n * e.g. `20260430T152030Z`. Lexicographic order matches chronological order,\n * so `listFiles` returns versions in time order without parsing.\n */\n\nconst TIMESTAMP_RE = /^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2})Z$/;\n\nfunction pad2(n: number): string {\n return n < 10 ? `0${n}` : String(n);\n}\n\n/**\n * Format a Date as a sortable, filename-safe UTC timestamp string.\n */\nexport function formatVersionTimestamp(date: Date): string {\n return (\n String(date.getUTCFullYear()).padStart(4, '0') +\n pad2(date.getUTCMonth() + 1) +\n pad2(date.getUTCDate()) +\n 'T' +\n pad2(date.getUTCHours()) +\n pad2(date.getUTCMinutes()) +\n pad2(date.getUTCSeconds()) +\n 'Z'\n );\n}\n\n/**\n * Parse a version timestamp string back to a Date. Returns null if the input\n * doesn't match the expected format.\n */\nexport function parseVersionTimestamp(stamp: string): Date | null {\n const m = TIMESTAMP_RE.exec(stamp);\n if (!m) return null;\n const [, y, mo, d, h, mi, s] = m;\n const ms = Date.UTC(Number(y), Number(mo) - 1, Number(d), Number(h), Number(mi), Number(s));\n if (Number.isNaN(ms)) return null;\n return new Date(ms);\n}\n\n/**\n * The pattern a valid version timestamp matches. Exported so other modules\n * can validate filenames without re-deriving the regex.\n */\nexport const VERSION_TIMESTAMP_PATTERN = TIMESTAMP_RE;\n","/**\n * Keep version snapshots out of Git when a ContentContainer is persisted\n * as a real folder (typically a `<basename>_files/` sidecar).\n */\n\nimport type { ContentContainer } from '../storage/ContentContainer.js';\n\nconst decoder = new TextDecoder();\nconst encoder = new TextEncoder();\n\nconst GITIGNORE_PATH = '.gitignore';\nconst VERSIONS_IGNORE_RULE = '.versions/';\nconst EQUIVALENT_VERSIONS_RULE = /^(!?)\\/?\\.versions\\/?$/;\n\n/**\n * Ensure the container-root `.gitignore` ignores its `.versions/` folder.\n * Existing rules and newline style are preserved.\n */\nexport async function ensureVersionsGitIgnored(container: ContentContainer): Promise<void> {\n const data = await container.readFile(GITIGNORE_PATH);\n const existing = data ? decoder.decode(data) : '';\n\n let alreadyIgnored = false;\n for (const line of existing.split(/\\r?\\n/)) {\n const match = EQUIVALENT_VERSIONS_RULE.exec(line.trim());\n if (match) alreadyIgnored = match[1] !== '!';\n }\n if (alreadyIgnored) return;\n\n const newline = existing.includes('\\r\\n') ? '\\r\\n' : '\\n';\n const separator = existing.length > 0 && !existing.endsWith('\\n') ? newline : '';\n const next = `${existing}${separator}${VERSIONS_IGNORE_RULE}${newline}`;\n await container.writeFile(GITIGNORE_PATH, encoder.encode(next), 'text/plain');\n}\n","/**\n * Internal storage engine shared by document and image-editor histories.\n * Public APIs keep their domain-specific names and result reasons; this module\n * owns the mechanics that must behave identically across both histories.\n */\n\nimport type { ContentContainer } from '../storage/ContentContainer.js';\nimport { ensureVersionsGitIgnored } from './gitignore.js';\nimport { formatVersionTimestamp, parseVersionTimestamp } from './timestamp.js';\nimport type { CoalesceOptions, PrunePolicy, Version } from './types.js';\n\nconst decoder = new TextDecoder();\nconst encoder = new TextEncoder();\n\nexport interface SnapshotPathStrategy {\n readonly prefix: string;\n readonly extension: string;\n}\n\nexport interface SaveTextSnapshotOptions {\n content: string;\n basename: string;\n mimeType: string;\n now?: Date;\n force?: boolean;\n}\n\nexport interface SaveTextSnapshotResult {\n saved: boolean;\n version: Version | null;\n reason: 'saved' | 'unchanged';\n}\n\nexport function buildSnapshotPath(\n strategy: SnapshotPathStrategy,\n basename: string,\n date: Date,\n collision = 0,\n): string {\n const stamp = formatVersionTimestamp(date);\n const suffix = collision > 0 ? `-${collision + 1}` : '';\n return `${strategy.prefix}${basename}.${stamp}${suffix}.${strategy.extension}`;\n}\n\nexport function parseSnapshotPath(\n strategy: SnapshotPathStrategy,\n path: string,\n): { basename: string; timestamp: Date; collision: number } | null {\n if (!path.startsWith(strategy.prefix)) return null;\n const extension = `.${strategy.extension}`;\n const rest = path.slice(strategy.prefix.length);\n if (!rest.endsWith(extension)) return null;\n const stem = rest.slice(0, -extension.length);\n const lastDot = stem.lastIndexOf('.');\n if (lastDot <= 0) return null;\n\n const basename = stem.slice(0, lastDot);\n const tail = stem.slice(lastDot + 1);\n const dash = tail.indexOf('-');\n let stamp = tail;\n let collision = 0;\n if (dash >= 0) {\n stamp = tail.slice(0, dash);\n const suffix = Number(tail.slice(dash + 1));\n if (!Number.isInteger(suffix) || suffix < 2) return null;\n collision = suffix - 1;\n }\n\n const timestamp = parseVersionTimestamp(stamp);\n return timestamp ? { basename, timestamp, collision } : null;\n}\n\nexport async function listSnapshots(\n container: ContentContainer,\n strategy: SnapshotPathStrategy,\n basename?: string,\n): Promise<Version[]> {\n const entries = await container.listFiles(strategy.prefix);\n const versions: Version[] = [];\n for (const entry of entries) {\n const parsed = parseSnapshotPath(strategy, entry.path);\n if (!parsed || (basename !== undefined && parsed.basename !== basename)) continue;\n versions.push({\n path: entry.path,\n basename: parsed.basename,\n timestamp: parsed.timestamp,\n size: entry.size,\n collision: parsed.collision,\n });\n }\n\n versions.sort((a, b) => {\n const timestampDelta = b.timestamp.getTime() - a.timestamp.getTime();\n return timestampDelta || b.collision - a.collision;\n });\n return versions;\n}\n\nexport async function readTextSnapshot(\n container: ContentContainer,\n version: Version | string,\n): Promise<string | null> {\n const path = typeof version === 'string' ? version : version.path;\n const data = await container.readFile(path);\n return data ? decoder.decode(data) : null;\n}\n\nexport async function saveTextSnapshot(\n container: ContentContainer,\n strategy: SnapshotPathStrategy,\n options: SaveTextSnapshotOptions,\n): Promise<SaveTextSnapshotResult> {\n const versions = await listSnapshots(container, strategy, options.basename);\n if (!options.force && versions.length > 0) {\n const existing = await readTextSnapshot(container, versions[0]!);\n if (existing === options.content) {\n // Backfill containers written before history owned its ignore rule.\n await ensureVersionsGitIgnored(container);\n return { saved: false, version: null, reason: 'unchanged' };\n }\n }\n\n const now = options.now ?? new Date();\n let collision = 0;\n let path = buildSnapshotPath(strategy, options.basename, now, collision);\n while (await container.exists(path)) {\n collision += 1;\n path = buildSnapshotPath(strategy, options.basename, now, collision);\n }\n\n const data = encoder.encode(options.content);\n await ensureVersionsGitIgnored(container);\n await container.writeFile(path, data, options.mimeType);\n return {\n saved: true,\n version: {\n path,\n basename: options.basename,\n timestamp: now,\n size: data.byteLength,\n collision,\n },\n reason: 'saved',\n };\n}\n\nexport async function pruneSnapshots(\n container: ContentContainer,\n strategy: SnapshotPathStrategy,\n policy: PrunePolicy,\n basename?: string,\n): Promise<Version[]> {\n const versions = await listSnapshots(container, strategy, basename);\n let toDelete: Version[];\n\n if (policy.type === 'keep-last-n') {\n toDelete = versions.slice(Math.max(0, Math.floor(policy.n)));\n } else if (policy.type === 'older-than') {\n const cutoff = policy.date.getTime();\n toDelete = versions.filter((version) => version.timestamp.getTime() < cutoff);\n } else {\n toDelete = versions.filter((version) => !policy.keep(version, versions));\n }\n\n await removeSnapshots(container, toDelete);\n return toDelete;\n}\n\nexport async function coalesceSnapshots(\n container: ContentContainer,\n strategy: SnapshotPathStrategy,\n options: CoalesceOptions = {},\n basename?: string,\n): Promise<Version[]> {\n const windowMs = options.windowMs ?? 60_000;\n const versions = await listSnapshots(container, strategy, basename);\n const toDelete: Version[] = [];\n\n // Compare against the last kept snapshot. Pairwise comparison against a\n // deleted neighbor would chain through a dense run and over-prune it.\n if (versions.length > 0) {\n let anchor = versions[0]!;\n for (let index = 1; index < versions.length; index++) {\n const candidate = versions[index]!;\n if (anchor.timestamp.getTime() - candidate.timestamp.getTime() <= windowMs) {\n toDelete.push(candidate);\n } else {\n anchor = candidate;\n }\n }\n }\n\n await removeSnapshots(container, toDelete);\n return toDelete;\n}\n\nasync function removeSnapshots(\n container: ContentContainer,\n versions: readonly Version[],\n): Promise<void> {\n for (const version of versions) await container.removeFile(version.path);\n}\n"],"mappings":"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","names":["decoder","encoder"]}
|