allyhub 0.2.0 → 0.4.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/dist/cli-version.js +2 -0
- package/dist/commands/add.js +5 -5
- package/dist/commands/auth.js +4 -4
- package/dist/commands/cloud-tools.js +9 -10
- package/dist/commands/dev.js +2 -2
- package/dist/commands/doctor.js +4 -4
- package/dist/commands/frames/piece.js +1 -1
- package/dist/commands/frames.js +6 -6
- package/dist/commands/index.js +1 -1
- package/dist/commands/inspect/contrast.js +1 -1
- package/dist/commands/inspect/layout.js +1 -1
- package/dist/commands/model.js +1 -1
- package/dist/commands/orgs.js +2 -2
- package/dist/commands/render.js +2 -2
- package/dist/commands/sheet.js +2 -2
- package/dist/commands/skills.js +3 -3
- package/dist/commands/slides.js +3 -0
- package/dist/main.js +7 -7
- package/dist/text/facts-text.js +5 -5
- package/dist/text/format.js +2 -2
- package/dist/works.js +1 -1
- package/editor-web/assets/browser-B31cR_c2.js +105 -0
- package/editor-web/assets/dist-6TNEuNMX.js +4 -0
- package/editor-web/assets/dist-Cm2TIjW5.js +2 -0
- package/editor-web/assets/dist-Cpt0p8bX.js +6 -0
- package/editor-web/assets/dist-D2GccKEJ.js +1 -0
- package/editor-web/assets/dist-Z0zvYXmu.js +233 -0
- package/editor-web/assets/dist-fs4ONrUV.js +32 -0
- package/editor-web/assets/index-CAcsAZ9u.js +70 -0
- package/editor-web/assets/index-DlcJckhO.css +2 -0
- package/editor-web/assets/list-D2v7U8K8.js +1 -0
- package/editor-web/assets/react-D0RmGe2w.js +101 -0
- package/editor-web/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/editor-web/assets/text-align-start-B3k2cx5f.js +1 -0
- package/editor-web/assets/undo-2-Ecr7-Obc.js +1 -0
- package/editor-web/index.html +4 -4
- package/node_modules/@allyhub-next/audio/package.json +1 -1
- package/node_modules/@allyhub-next/browser/package.json +1 -1
- package/node_modules/@allyhub-next/build/dist/data.js +1 -1
- package/node_modules/@allyhub-next/build/dist/meta-worker.d.ts +10 -0
- package/node_modules/@allyhub-next/build/dist/meta-worker.js +2 -2
- package/node_modules/@allyhub-next/build/dist/model-info.js +2 -1
- package/node_modules/@allyhub-next/build/dist/plugin.d.ts +2 -0
- package/node_modules/@allyhub-next/build/dist/plugin.js +9 -8
- package/node_modules/@allyhub-next/build/dist/prepare.d.ts +13 -1
- package/node_modules/@allyhub-next/build/dist/prepare.js +2 -2
- package/node_modules/@allyhub-next/build/dist/scan.d.ts +1 -1
- package/node_modules/@allyhub-next/build/dist/scan.js +1 -1
- package/node_modules/@allyhub-next/build/dist/types.js +3 -3
- package/node_modules/@allyhub-next/build/package.json +1 -1
- package/node_modules/@allyhub-next/check/dist/check.js +3 -3
- package/node_modules/@allyhub-next/check/dist/generated.d.ts +1 -1
- package/node_modules/@allyhub-next/check/package.json +1 -1
- package/node_modules/@allyhub-next/cloud/dist/index.js +1 -1
- package/node_modules/@allyhub-next/cloud/dist/signin.js +2 -2
- package/node_modules/@allyhub-next/cloud/dist/token.js +1 -1
- package/node_modules/@allyhub-next/cloud/package.json +1 -1
- package/node_modules/@allyhub-next/components/package.json +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/card.d.ts +2 -11
- package/node_modules/@allyhub-next/dev-server/dist/card.js +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/exports.d.ts +2 -2
- package/node_modules/@allyhub-next/dev-server/dist/exports.js +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/index.d.ts +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/index.js +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/live.d.ts +3 -0
- package/node_modules/@allyhub-next/dev-server/dist/live.js +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/project.d.ts +3 -0
- package/node_modules/@allyhub-next/dev-server/dist/project.js +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/reveal.d.ts +6 -0
- package/node_modules/@allyhub-next/dev-server/dist/reveal.js +2 -0
- package/node_modules/@allyhub-next/dev-server/dist/server.js +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/stage.d.ts +2 -0
- package/node_modules/@allyhub-next/dev-server/dist/stage.js +22 -2
- package/node_modules/@allyhub-next/dev-server/dist/tools.d.ts +2 -0
- package/node_modules/@allyhub-next/dev-server/dist/tools.js +1 -1
- package/node_modules/@allyhub-next/dev-server/package.json +1 -1
- package/node_modules/@allyhub-next/doc/dist/docx.d.ts +28 -0
- package/node_modules/@allyhub-next/doc/dist/docx.js +4 -0
- package/node_modules/@allyhub-next/doc/dist/html.d.ts +3 -0
- package/node_modules/@allyhub-next/doc/dist/html.js +1 -1
- package/node_modules/@allyhub-next/doc/package.json +5 -1
- package/node_modules/@allyhub-next/export/dist/deck-fonts.d.ts +24 -0
- package/node_modules/@allyhub-next/export/dist/deck-fonts.js +2 -0
- package/node_modules/@allyhub-next/export/dist/deck-pptx.d.ts +12 -0
- package/node_modules/@allyhub-next/export/dist/deck-pptx.js +2 -0
- package/node_modules/@allyhub-next/export/dist/export.d.ts +17 -5
- package/node_modules/@allyhub-next/export/dist/export.js +2 -2
- package/node_modules/@allyhub-next/export/dist/index.d.ts +1 -0
- package/node_modules/@allyhub-next/export/dist/index.js +1 -1
- package/node_modules/@allyhub-next/export/dist/names.d.ts +11 -6
- package/node_modules/@allyhub-next/export/dist/names.js +1 -1
- package/node_modules/@allyhub-next/export/package.json +1 -1
- package/node_modules/@allyhub-next/formats/dist/data/script.d.ts +22 -0
- package/node_modules/@allyhub-next/formats/dist/data/script.js +1 -1
- package/node_modules/@allyhub-next/formats/dist/data/slides.d.ts +1494 -0
- package/node_modules/@allyhub-next/formats/dist/data/slides.js +2 -0
- package/node_modules/@allyhub-next/formats/dist/index.d.ts +2 -0
- package/node_modules/@allyhub-next/formats/dist/index.js +1 -1
- package/node_modules/@allyhub-next/formats/dist/items.d.ts +26 -0
- package/node_modules/@allyhub-next/formats/dist/items.js +1 -1
- package/node_modules/@allyhub-next/formats/dist/layout.d.ts +2 -0
- package/node_modules/@allyhub-next/formats/dist/layout.js +1 -1
- package/node_modules/@allyhub-next/formats/dist/note-shape.d.ts +39 -0
- package/node_modules/@allyhub-next/formats/dist/note-shape.js +2 -0
- package/node_modules/@allyhub-next/formats/dist/schemas.d.ts +418 -0
- package/node_modules/@allyhub-next/formats/dist/schemas.js +1 -1
- package/node_modules/@allyhub-next/formats/package.json +1 -1
- package/node_modules/@allyhub-next/measure/dist/index.d.ts +1 -1
- package/node_modules/@allyhub-next/measure/dist/index.js +1 -1
- package/node_modules/@allyhub-next/measure/dist/overlay.d.ts +14 -1
- package/node_modules/@allyhub-next/measure/dist/overlay.js +1 -1
- package/node_modules/@allyhub-next/measure/package.json +1 -1
- package/node_modules/@allyhub-next/media/dist/asr/parakeet.d.ts +1 -4
- package/node_modules/@allyhub-next/media/dist/asr/parakeet.js +4 -4
- package/node_modules/@allyhub-next/media/dist/asr/transcribe.d.ts +1 -1
- package/node_modules/@allyhub-next/media/dist/asr/transcribe.js +1 -1
- package/node_modules/@allyhub-next/media/dist/grid.d.ts +3 -3
- package/node_modules/@allyhub-next/media/dist/grid.js +5 -5
- package/node_modules/@allyhub-next/media/dist/local.d.ts +3 -0
- package/node_modules/@allyhub-next/media/dist/local.js +1 -1
- package/node_modules/@allyhub-next/media/dist/ocr/tesseract.d.ts +8 -2
- package/node_modules/@allyhub-next/media/dist/ocr/tesseract.js +1 -1
- package/node_modules/@allyhub-next/media/dist/ocr/text.js +3 -3
- package/node_modules/@allyhub-next/media/dist/ocr/worker.js +1 -1
- package/node_modules/@allyhub-next/media/dist/sheet.js +3 -3
- package/node_modules/@allyhub-next/media/dist/tools.d.ts +11 -1
- package/node_modules/@allyhub-next/media/dist/tools.js +1 -1
- package/node_modules/@allyhub-next/media/dist/vision/faces.js +1 -1
- package/node_modules/@allyhub-next/media/dist/vision/matte.js +1 -1
- package/node_modules/@allyhub-next/media/dist/vision/runtime.d.ts +1 -1
- package/node_modules/@allyhub-next/media/dist/vision/runtime.js +2 -2
- package/node_modules/@allyhub-next/media/dist/worker-process.d.ts +1 -1
- package/node_modules/@allyhub-next/media/dist/worker-process.js +1 -1
- package/node_modules/@allyhub-next/media/package.json +1 -1
- package/node_modules/@allyhub-next/model/dist/build-job.d.ts +2 -0
- package/node_modules/@allyhub-next/model/dist/build-worker.js +1 -1
- package/node_modules/@allyhub-next/model/dist/build.d.ts +10 -0
- package/node_modules/@allyhub-next/model/dist/build.js +2 -1
- package/node_modules/@allyhub-next/model/dist/report.d.ts +1 -1
- package/node_modules/@allyhub-next/model/package.json +1 -1
- package/node_modules/@allyhub-next/project/dist/digest.d.ts +1 -3
- package/node_modules/@allyhub-next/project/dist/digest.js +1 -1
- package/node_modules/@allyhub-next/project/dist/page.d.ts +0 -5
- package/node_modules/@allyhub-next/project/dist/page.js +2 -2
- package/node_modules/@allyhub-next/project/dist/session.js +1 -1
- package/node_modules/@allyhub-next/project/package.json +1 -1
- package/node_modules/@allyhub-next/protocol/dist/app.d.ts +1 -62
- package/node_modules/@allyhub-next/protocol/dist/app.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/auth.d.ts +17 -17
- package/node_modules/@allyhub-next/protocol/dist/auth.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/cli.d.ts +1 -5
- package/node_modules/@allyhub-next/protocol/dist/cli.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/editor.d.ts +13 -26
- package/node_modules/@allyhub-next/protocol/dist/editor.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/index.d.ts +1 -0
- package/node_modules/@allyhub-next/protocol/dist/index.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/notes.d.ts +163 -0
- package/node_modules/@allyhub-next/protocol/dist/notes.js +2 -0
- package/node_modules/@allyhub-next/protocol/dist/registry.d.ts +4 -2
- package/node_modules/@allyhub-next/protocol/dist/registry.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/routes.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/runtimes.d.ts +3 -0
- package/node_modules/@allyhub-next/protocol/dist/runtimes.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/tools.d.ts +38 -0
- package/node_modules/@allyhub-next/protocol/dist/tools.js +1 -1
- package/node_modules/@allyhub-next/protocol/package.json +1 -1
- package/node_modules/@allyhub-next/registry/dist/registry.js +1 -1
- package/node_modules/@allyhub-next/registry/package.json +1 -1
- package/node_modules/@allyhub-next/render/dist/doc/index.d.ts +1 -1
- package/node_modules/@allyhub-next/render/dist/doc/index.js +1 -1
- package/node_modules/@allyhub-next/render/dist/doc/print.d.ts +11 -0
- package/node_modules/@allyhub-next/render/dist/doc/print.js +17 -1
- package/node_modules/@allyhub-next/render/dist/exports.d.ts +29 -4
- package/node_modules/@allyhub-next/render/dist/exports.js +2 -2
- package/node_modules/@allyhub-next/render/dist/page.d.ts +11 -1
- package/node_modules/@allyhub-next/render/dist/render.d.ts +2 -0
- package/node_modules/@allyhub-next/render/dist/render.js +2 -2
- package/node_modules/@allyhub-next/render/package.json +1 -1
- package/node_modules/@allyhub-next/runtime/LICENSE +241 -0
- package/node_modules/@allyhub-next/runtime/dist/bridge.d.ts +13 -3
- package/node_modules/@allyhub-next/runtime/dist/clock.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/env.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/facade.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/footage.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/frame.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/index.d.ts +2 -0
- package/node_modules/@allyhub-next/runtime/dist/index.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/locate.d.ts +11 -0
- package/node_modules/@allyhub-next/runtime/dist/locate.js +2 -0
- package/node_modules/@allyhub-next/runtime/dist/measure.d.ts +2 -1
- package/node_modules/@allyhub-next/runtime/dist/measure.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/music.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/output.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/piece.d.ts +5 -9
- package/node_modules/@allyhub-next/runtime/dist/piece.js +2 -2
- package/node_modules/@allyhub-next/runtime/dist/player/player.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/reads.d.ts +2 -0
- package/node_modules/@allyhub-next/runtime/dist/reads.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/sound.js +1 -1
- package/node_modules/@allyhub-next/runtime/dist/stage-kit.d.ts +12 -0
- package/node_modules/@allyhub-next/runtime/dist/stage-kit.js +2 -0
- package/node_modules/@allyhub-next/runtime/package.json +5 -6
- package/node_modules/@allyhub-next/runtimes/dist/errors.d.ts +5 -1
- package/node_modules/@allyhub-next/runtimes/dist/index.d.ts +1 -0
- package/node_modules/@allyhub-next/runtimes/dist/index.js +1 -1
- package/node_modules/@allyhub-next/runtimes/dist/node-program.d.ts +3 -0
- package/node_modules/@allyhub-next/runtimes/dist/node-program.js +2 -0
- package/node_modules/@allyhub-next/runtimes/dist/packages.d.ts +65 -0
- package/node_modules/@allyhub-next/runtimes/dist/packages.js +4 -0
- package/node_modules/@allyhub-next/runtimes/dist/runtimes.js +2 -2
- package/node_modules/@allyhub-next/runtimes/dist/unpack.d.ts +7 -0
- package/node_modules/@allyhub-next/runtimes/dist/unpack.js +1 -1
- package/node_modules/@allyhub-next/runtimes/package.json +5 -1
- package/node_modules/@allyhub-next/runtimes/pins/docx/package-lock.json +67 -0
- package/node_modules/@allyhub-next/runtimes/pins/docx/package.json +9 -0
- package/node_modules/@allyhub-next/runtimes/pins/exceljs/package-lock.json +2533 -0
- package/node_modules/@allyhub-next/runtimes/pins/exceljs/package.json +8 -0
- package/node_modules/@allyhub-next/runtimes/pins/gltf-tools/package-lock.json +753 -0
- package/node_modules/@allyhub-next/runtimes/pins/gltf-tools/package.json +14 -0
- package/node_modules/@allyhub-next/runtimes/pins/manifold-3d/package-lock.json +950 -0
- package/node_modules/@allyhub-next/runtimes/pins/manifold-3d/package.json +8 -0
- package/node_modules/@allyhub-next/runtimes/pins/onnxruntime-node/package-lock.json +227 -0
- package/node_modules/@allyhub-next/runtimes/pins/onnxruntime-node/package.json +8 -0
- package/node_modules/@allyhub-next/runtimes/pins/sherpa-onnx-node/package-lock.json +105 -0
- package/node_modules/@allyhub-next/runtimes/pins/sherpa-onnx-node/package.json +8 -0
- package/node_modules/@allyhub-next/runtimes/pins/tesseract.js/package-lock.json +128 -0
- package/node_modules/@allyhub-next/runtimes/pins/tesseract.js/package.json +9 -0
- package/node_modules/@allyhub-next/runtimes/schemas/runtimes.schema.json +5 -24
- package/node_modules/@allyhub-next/scaffold/dist/index.js +5 -5
- package/node_modules/@allyhub-next/scaffold/package.json +1 -1
- package/node_modules/@allyhub-next/scenery/package.json +1 -1
- package/node_modules/@allyhub-next/scenery-host/dist/bundle.d.ts +3 -2
- package/node_modules/@allyhub-next/scenery-host/dist/bundle.js +3 -3
- package/node_modules/@allyhub-next/scenery-host/dist/model-stage.d.ts +32 -0
- package/node_modules/@allyhub-next/scenery-host/dist/model-stage.js +3 -0
- package/node_modules/@allyhub-next/scenery-host/dist/viewer.d.ts +11 -0
- package/node_modules/@allyhub-next/scenery-host/dist/viewer.js +1 -1
- package/node_modules/@allyhub-next/scenery-host/package.json +1 -1
- package/node_modules/@allyhub-next/sheet/package.json +1 -1
- package/node_modules/@allyhub-next/site/dist/media.js +2 -2
- package/node_modules/@allyhub-next/site/package.json +1 -1
- package/node_modules/@allyhub-next/slides-core/LICENSE +241 -0
- package/node_modules/@allyhub-next/slides-core/dist/animation.d.ts +129 -0
- package/node_modules/@allyhub-next/slides-core/dist/animation.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/api.d.ts +649 -0
- package/node_modules/@allyhub-next/slides-core/dist/api.js +4 -0
- package/node_modules/@allyhub-next/slides-core/dist/capabilities.d.ts +18 -0
- package/node_modules/@allyhub-next/slides-core/dist/capabilities.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/chart-api.d.ts +165 -0
- package/node_modules/@allyhub-next/slides-core/dist/chart-api.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/chart-file.d.ts +11 -0
- package/node_modules/@allyhub-next/slides-core/dist/chart-file.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/chart.d.ts +184 -0
- package/node_modules/@allyhub-next/slides-core/dist/chart.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/check.d.ts +7 -0
- package/node_modules/@allyhub-next/slides-core/dist/check.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/enums.d.ts +146 -0
- package/node_modules/@allyhub-next/slides-core/dist/enums.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/file.d.ts +109 -0
- package/node_modules/@allyhub-next/slides-core/dist/file.js +4 -0
- package/node_modules/@allyhub-next/slides-core/dist/index.d.ts +21 -0
- package/node_modules/@allyhub-next/slides-core/dist/index.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/measure.d.ts +34 -0
- package/node_modules/@allyhub-next/slides-core/dist/measure.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/model.d.ts +278 -0
- package/node_modules/@allyhub-next/slides-core/dist/model.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/office.d.ts +58 -0
- package/node_modules/@allyhub-next/slides-core/dist/office.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/path.d.ts +6 -0
- package/node_modules/@allyhub-next/slides-core/dist/path.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/placeholders.d.ts +7 -0
- package/node_modules/@allyhub-next/slides-core/dist/placeholders.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/resolve.d.ts +181 -0
- package/node_modules/@allyhub-next/slides-core/dist/resolve.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/script.d.ts +43 -0
- package/node_modules/@allyhub-next/slides-core/dist/script.js +3 -0
- package/node_modules/@allyhub-next/slides-core/dist/stage.d.ts +63 -0
- package/node_modules/@allyhub-next/slides-core/dist/stage.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/strict.d.ts +23 -0
- package/node_modules/@allyhub-next/slides-core/dist/strict.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/theme.d.ts +72 -0
- package/node_modules/@allyhub-next/slides-core/dist/theme.js +2 -0
- package/node_modules/@allyhub-next/slides-core/dist/units.d.ts +35 -0
- package/node_modules/@allyhub-next/slides-core/dist/units.js +2 -0
- package/node_modules/@allyhub-next/slides-core/package.json +14 -0
- package/node_modules/@allyhub-next/slides-pptx/LICENSE +241 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/charts.d.ts +6 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/charts.js +2 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/fonts.d.ts +45 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/fonts.js +2 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/import.d.ts +18 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/import.js +3 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/index.d.ts +5 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/index.js +2 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/read.d.ts +55 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/read.js +4 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/shapes.d.ts +67 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/shapes.js +2 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/text.d.ts +21 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/text.js +2 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/theme.d.ts +4 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/theme.js +2 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/timing.d.ts +32 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/timing.js +2 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/write.d.ts +32 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/write.js +3 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/xml.d.ts +26 -0
- package/node_modules/@allyhub-next/slides-pptx/dist/xml.js +3 -0
- package/node_modules/@allyhub-next/slides-pptx/package.json +14 -0
- package/node_modules/@allyhub-next/slides-runtime/LICENSE +241 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/draw.d.ts +40 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/draw.js +3 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/edit.d.ts +4 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/edit.js +2 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/index.d.ts +4 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/index.js +2 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/ink.d.ts +10 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/ink.js +2 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/load.d.ts +6 -0
- package/node_modules/@allyhub-next/slides-runtime/dist/load.js +6 -0
- package/node_modules/@allyhub-next/slides-runtime/package.json +14 -0
- package/node_modules/@allyhub-next/stage/dist/graphics.js +1 -1
- package/node_modules/@allyhub-next/stage/dist/identity.js +1 -1
- package/node_modules/@allyhub-next/stage/dist/page.d.ts +9 -0
- package/node_modules/@allyhub-next/stage/dist/page.js +12 -2
- package/node_modules/@allyhub-next/stage/dist/server.js +1 -1
- package/node_modules/@allyhub-next/stage/package.json +1 -1
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/400-italic.css +79 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/400.css +79 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/700-italic.css +79 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/700.css +79 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/LICENSE +93 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/arial.css +316 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/400-italic.css +69 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/400.css +69 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/700-italic.css +69 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/700.css +69 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/LICENSE +93 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/calibri.css +276 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-400-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-400-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-700-italic.woff2 +0 -0
- package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-700-normal.woff2 +0 -0
- package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/400.css +1 -1
- package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/700.css +1 -1
- package/node_modules/@allyhub-next/stage-page/dist/fonts/noto-sans-sc/microsoft-yahei.css +2018 -0
- package/node_modules/@allyhub-next/stage-page/dist/host.js +21 -0
- package/node_modules/@allyhub-next/stage-page/dist/page.js +79 -0
- package/node_modules/@allyhub-next/stage-page/package.json +14 -0
- package/node_modules/@allyhub-next/video-core/dist/export.d.ts +6 -5
- package/node_modules/@allyhub-next/video-core/dist/export.js +1 -1
- package/node_modules/@allyhub-next/video-core/dist/fact.d.ts +173 -4
- package/node_modules/@allyhub-next/video-core/dist/fact.js +1 -1
- package/node_modules/@allyhub-next/video-core/dist/formats.d.ts +6 -13
- package/node_modules/@allyhub-next/video-core/dist/formats.js +1 -1
- package/node_modules/@allyhub-next/video-core/dist/index.d.ts +0 -1
- package/node_modules/@allyhub-next/video-core/dist/index.js +1 -1
- package/node_modules/@allyhub-next/video-core/dist/measure.d.ts +83 -0
- package/node_modules/@allyhub-next/video-core/dist/piece.d.ts +8 -9
- package/node_modules/@allyhub-next/video-core/dist/piece.js +1 -1
- package/node_modules/@allyhub-next/video-core/dist/problem.d.ts +9 -1
- package/node_modules/@allyhub-next/video-core/dist/problem.js +1 -1
- package/node_modules/@allyhub-next/video-core/dist/schema.d.ts +0 -2
- package/node_modules/@allyhub-next/video-core/dist/script-edit.d.ts +4 -0
- package/node_modules/@allyhub-next/video-core/dist/script.d.ts +8 -0
- package/node_modules/@allyhub-next/video-core/dist/script.js +1 -1
- package/node_modules/@allyhub-next/video-core/dist/timeline.d.ts +34 -1
- package/node_modules/@allyhub-next/video-core/package.json +1 -1
- package/package.json +48 -41
- package/dist/commands/mcp-app.js +0 -3
- package/dist/commands/mcp-docs.js +0 -2
- package/dist/commands/mcp.js +0 -2
- package/editor-app/view.html +0 -128
- package/editor-web/assets/chevron-left-D1vfOP5S.js +0 -1
- package/editor-web/assets/chevron-up-BMNXDEBs.js +0 -1
- package/editor-web/assets/dist-B4VKfY-H.js +0 -136
- package/editor-web/assets/dist-BIEloJVS.js +0 -8
- package/editor-web/assets/dist-BcInw4os.js +0 -232
- package/editor-web/assets/dist-Coblfc3T.js +0 -1
- package/editor-web/assets/floating-ui.react-dom-DSyn5TRd.js +0 -1
- package/editor-web/assets/index-BSFR4plz.css +0 -2
- package/editor-web/assets/index-Dc8FX_sp.js +0 -56
- package/editor-web/assets/react-Bo429Bov.js +0 -61
- package/editor-web/assets/undo-2-CWgOKQ3L.js +0 -1
- package/node_modules/@allyhub-next/runtime/dist/host.js +0 -21
- package/node_modules/@allyhub-next/runtime/dist/page.js +0 -72
- package/node_modules/@allyhub-next/runtime/dist/paged.d.ts +0 -16
- package/node_modules/@allyhub-next/runtime/dist/paged.js +0 -2
- package/node_modules/@allyhub-next/video-core/dist/slides.d.ts +0 -37
- package/node_modules/@allyhub-next/video-core/dist/slides.js +0 -2
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/LICENSE +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/emoji.css +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/files/noto-color-emoji-emoji-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/LICENSE +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-100-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-100-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-101-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-101-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-102-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-102-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-103-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-103-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-104-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-104-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-105-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-105-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-106-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-106-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-107-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-107-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-108-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-108-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-109-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-109-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-110-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-110-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-111-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-111-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-112-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-112-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-113-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-113-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-114-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-114-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-115-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-115-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-116-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-116-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-117-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-117-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-118-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-118-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-119-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-119-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-21-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-21-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-22-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-22-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-23-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-23-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-24-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-24-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-25-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-25-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-26-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-26-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-27-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-27-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-28-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-28-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-29-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-29-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-30-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-30-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-31-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-31-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-32-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-32-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-33-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-33-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-34-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-34-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-35-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-35-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-36-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-36-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-37-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-37-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-38-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-38-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-39-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-39-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-4-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-4-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-40-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-40-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-41-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-41-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-42-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-42-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-43-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-43-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-44-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-44-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-45-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-45-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-46-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-46-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-47-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-47-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-48-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-48-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-49-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-49-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-5-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-5-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-50-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-50-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-51-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-51-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-52-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-52-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-53-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-53-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-54-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-54-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-55-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-55-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-56-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-56-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-57-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-57-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-58-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-58-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-59-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-59-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-6-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-6-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-60-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-60-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-61-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-61-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-62-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-62-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-63-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-63-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-64-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-64-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-65-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-65-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-66-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-66-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-67-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-67-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-68-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-68-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-69-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-69-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-70-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-70-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-71-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-71-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-72-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-72-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-73-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-73-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-74-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-74-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-75-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-75-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-76-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-76-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-77-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-77-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-78-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-78-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-79-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-79-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-80-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-80-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-81-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-81-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-82-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-82-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-83-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-83-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-84-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-84-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-85-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-85-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-86-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-86-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-87-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-87-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-88-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-88-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-89-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-89-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-90-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-90-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-91-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-91-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-97-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-97-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-98-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-98-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-99-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-99-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-cyrillic-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-cyrillic-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-ext-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-ext-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-vietnamese-400-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-vietnamese-700-normal.woff2 +0 -0
- /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/host.d.ts +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
export{Mattes,matrixFacts,matteOutline,matteRows,measuredFacts,personShare}from"./facts.js";export{FLAT_DEFAULTS,THUMB_WIDTH,flatFrames,flatRuns,pictureOf,probeFrames}from"./flat.js";export{STILL_DEFAULTS,pictureChange,readThumb,stillFrames,stillOptions,stillPicture,stillRuns}from"./still.js";export{cutSeams,flashFrames,joinsOf}from"./seams.js";export{textContrast}from"./contrast.js";export{fidelityOf,screenFidelity}from"./fidelity.js";export{filmWords,listCuts,partFolder,sceneryCuts,stripFrames,wordsAround}from"./cuts.js";export{CUT_REVIEW_DEFAULTS,CUT_SHEET_WIDTH,cutLine,cutSheetHtml,dbText,reviewCuts,silenceText,speechEdgeText}from"./cut-sheet.js";export{OVERLAY_KEY,frameOverlay,overlaySvg}from"./overlay.js";export{fileSoundReport,soundReport}from"./sound-report.js";export{ONSET_TOLERANCE_MS,landings,recordingDifference,speechStretches,voiceStep}from"./sound-measures.js";export{fileRecording,recordingReport,versionRecording}from"./recording-report.js";export{versionVoice}from"./version-voice.js";export{frameChange,loopSeam}from"./loop.js";export{COMPARE_DEFAULTS,compareImages,edgeWidths,grainOf}from"./compare.js";export{INTERPRETATION_SHAPE,ReferenceError,badInterpretation,makeReference,readInterpretation,readReference,referenceDir,referenceId}from"./reference/folder.js";export{servedCuts}from"./reference/served.js";export{WORDS_MISSING_INSTEAD,measureVideo,referenceJson}from"./reference/video.js";export{SEGMENT_RULE,SPLIT_DEFAULTS,boundaryCandidates,gaps,measurePacing,numbersOf,segments,sentences}from"./reference/sections.js";export{TEXT_DEFAULTS,linesIn,observeText,textSeconds}from"./reference/text.js";export{labelsOf,referenceSections}from"./reference/interpret.js";export{TIMING_TOLERANCE,alignSections,compareSections}from"./reference/compare.js";export{comparePiece,measurePiece}from"./reference/piece.js";export{labelShares,labelsMatch,percentileOf,quantileOf,referenceNumbers,referenceParameters,referenceSet,statOf}from"./reference/sets.js";
|
|
2
|
+
export{Mattes,matrixFacts,matteOutline,matteRows,measuredFacts,personShare}from"./facts.js";export{FLAT_DEFAULTS,THUMB_WIDTH,flatFrames,flatRuns,pictureOf,probeFrames}from"./flat.js";export{STILL_DEFAULTS,pictureChange,readThumb,stillFrames,stillOptions,stillPicture,stillRuns}from"./still.js";export{cutSeams,flashFrames,joinsOf}from"./seams.js";export{textContrast}from"./contrast.js";export{fidelityOf,screenFidelity}from"./fidelity.js";export{filmWords,listCuts,partFolder,sceneryCuts,stripFrames,wordsAround}from"./cuts.js";export{CUT_REVIEW_DEFAULTS,CUT_SHEET_WIDTH,cutLine,cutSheetHtml,dbText,reviewCuts,silenceText,speechEdgeText}from"./cut-sheet.js";export{OVERLAY_KEY,DECK_OVERLAY_KEY,frameOverlay,overlaySvg}from"./overlay.js";export{fileSoundReport,soundReport}from"./sound-report.js";export{ONSET_TOLERANCE_MS,landings,recordingDifference,speechStretches,voiceStep}from"./sound-measures.js";export{fileRecording,recordingReport,versionRecording}from"./recording-report.js";export{versionVoice}from"./version-voice.js";export{frameChange,loopSeam}from"./loop.js";export{COMPARE_DEFAULTS,compareImages,edgeWidths,grainOf}from"./compare.js";export{INTERPRETATION_SHAPE,ReferenceError,badInterpretation,makeReference,readInterpretation,readReference,referenceDir,referenceId}from"./reference/folder.js";export{servedCuts}from"./reference/served.js";export{WORDS_MISSING_INSTEAD,measureVideo,referenceJson}from"./reference/video.js";export{SEGMENT_RULE,SPLIT_DEFAULTS,boundaryCandidates,gaps,measurePacing,numbersOf,segments,sentences}from"./reference/sections.js";export{TEXT_DEFAULTS,linesIn,observeText,textSeconds}from"./reference/text.js";export{labelsOf,referenceSections}from"./reference/interpret.js";export{TIMING_TOLERANCE,alignSections,compareSections}from"./reference/compare.js";export{comparePiece,measurePiece}from"./reference/piece.js";export{labelShares,labelsMatch,percentileOf,quantileOf,referenceNumbers,referenceParameters,referenceSet,statOf}from"./reference/sets.js";
|
|
@@ -24,6 +24,17 @@ export interface FrameOverlay {
|
|
|
24
24
|
text: string;
|
|
25
25
|
box: Box;
|
|
26
26
|
}[];
|
|
27
|
+
/** A deck's shapes on the slide: each one's box as drawn, with its name. */
|
|
28
|
+
shapes: {
|
|
29
|
+
name: string;
|
|
30
|
+
box: Box;
|
|
31
|
+
}[];
|
|
32
|
+
/** A deck's lines nearly in line and not (the near-alignment fact): each line where it is, across the slide. */
|
|
33
|
+
guides: {
|
|
34
|
+
axis: "x" | "y";
|
|
35
|
+
at: number;
|
|
36
|
+
label: string;
|
|
37
|
+
}[];
|
|
27
38
|
/** What could not be drawn because the media index lacks it: "face-track <file>", "person-matte <file>". */
|
|
28
39
|
missing: string[];
|
|
29
40
|
}
|
|
@@ -33,8 +44,10 @@ export interface FrameOverlay {
|
|
|
33
44
|
* at the moment of `report` nearest t (within a frame).
|
|
34
45
|
*/
|
|
35
46
|
export declare function frameOverlay(t: number, timeline: Pick<Timeline, "fps" | "footage">, report: LayoutReport, media: Readonly<Record<string, MediaInfo>>, mattes: Mattes): Promise<FrameOverlay>;
|
|
36
|
-
/** The overlay's colours, and what each means (a legend). */
|
|
47
|
+
/** The overlay's colours over a video, and what each means (a legend). */
|
|
37
48
|
export declare const OVERLAY_KEY: readonly [readonly ["#ffd400", "face boxes with ids (solid: the speaker the layer follows)"], readonly ["#00e5ff", "person matte outline"], readonly ["#ff3b30", "covered areas"], readonly ["#5cff5c", "text boxes, with their layer"]];
|
|
49
|
+
/** The overlay's colours over a deck's slide. */
|
|
50
|
+
export declare const DECK_OVERLAY_KEY: readonly [readonly ["#ff4fd8", "shapes as drawn, with their names"], readonly ["#5cff5c", "text, with its shape"], readonly ["#ff9500", "lines nearly in line (near-alignment)"]];
|
|
38
51
|
/**
|
|
39
52
|
* An overlay as SVG over a frame W × H (its viewBox), drawn to be read at
|
|
40
53
|
* `k` screen pixels per frame pixel: lines 2 screen pixels wide, labels
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{facesOnFrame as
|
|
2
|
+
import{deckFacts as R}from"@allyhub-next/slides-core";import{facesOnFrame as Y,placementAt as C,sourceAt as D}from"@allyhub-next/video-core";import{matteOutline as F}from"./facts.js";const $=s=>Math.round(s*10)/10,O=s=>[$(s[0]??0),$(s[1]??0),$(s[2]??0),$(s[3]??0)];export async function frameOverlay(s,x,f,w,u){const h=f.width,o=f.height,r=f.safe,g=[[0,0,h,r.top],[0,o-r.bottom,h,r.bottom],[0,r.top,r.left,o-r.top-r.bottom],[h-r.right,r.top,r.right,o-r.top-r.bottom]].filter(e=>e[2]>0&&e[3]>0);let c;for(const e of f.moments)Math.abs(e.t-s)<1/x.fps&&(!c||Math.abs(e.t-s)<Math.abs(c.t-s))&&(c=e);const t={faces:[],person:[],covered:g,texts:(c?.texts??[]).map(e=>({layer:e.layer,text:e.text,box:e.box})),shapes:[],guides:[],missing:[]},p=f.deck?.slides.find(e=>e.slide===c?.part);if(f.deck&&p){t.shapes=p.shapes.map(i=>({name:i.name,box:i.box}));const e=i=>i==="slide"?[0,0,h,o]:p.shapes.find(a=>a.name===i)?.box;for(const i of R({pxPerPt:f.deck.pxPerPt,slides:[p]},{width:h,height:o},{piece:""})){if(i.kind!=="near-alignment")continue;const a=i.data,d=n=>a.line==="left"?n[0]:a.line==="right"?n[0]+n[2]:a.line==="centre-x"?n[0]+n[2]/2:a.line==="top"?n[1]:a.line==="bottom"?n[1]+n[3]:n[1]+n[3]/2,l=["left","right","centre-x"].includes(a.line)?"x":"y";for(const n of[a.a,a.b]){const m=e(n);m&&t.guides.push({axis:l,at:$(d(m)),label:`${a.a}/${a.b} ${String(a.gap)} pt`})}}}for(const e of(x.footage??[]).filter(i=>s>=i.start&&s<i.end)){const i=w[e.file],a=i?.faces;if(a){const A=e.speaker??a.speaker;for(const y of Y(e,a,s))t.faces.push({id:y.id,box:O(y.box),speaker:y.id===A,file:e.file})}else t.missing.push(`face-track ${e.file}`);if(!u.has(e.file)){t.missing.push(`person-matte ${e.file}`);continue}if(i?.width===void 0||i.height===void 0)continue;const d=await u.frame(e.file,D(e,s));if(!d){t.missing.push(`person-matte ${e.file}`);continue}const l=C(e,s),n=l.crop??[0,0,i.width,i.height],m=l.picture[2]/n[2],M=l.picture[3]/n[3];t.person.push({file:e.file,path:F(d),matrix:[i.width/d.width*m,i.height/d.height*M,l.picture[0]-n[0]*m,l.picture[1]-n[1]*M],clip:O(l.box)})}return t.missing=[...new Set(t.missing)],t}const b="#ffd400",P="#00e5ff",v="#ff3b30",k="#5cff5c",S="#ff4fd8",E="#ff9500";export const OVERLAY_KEY=[[b,"face boxes with ids (solid: the speaker the layer follows)"],[P,"person matte outline"],[v,"covered areas"],[k,"text boxes, with their layer"]],DECK_OVERLAY_KEY=[[S,"shapes as drawn, with their names"],[k,"text, with its shape"],[E,"lines nearly in line (near-alignment)"]];const K=s=>s.replace(/[&<>]/g,x=>({"&":"&","<":"<",">":">"})[x]??x);export function overlaySvg(s,x,f,w,u){const h=u/Math.max(w,1e-6),o=t=>String(Math.round(t*10)/10),r=(t,p)=>`<rect x="${o(t[0])}" y="${o(t[1])}" width="${o(t[2])}" height="${o(t[3])}" vector-effect="non-scaling-stroke" ${p}/>`,g=(t,p,e,i,a=!1)=>{const d=(e.length*.6+.6)*h,l=h*1.3,n=Math.max(0,Math.min(p-l,f-l)),m=Math.max(0,Math.min(a?t-d:t,x-d));return`<rect x="${o(m)}" y="${o(n)}" width="${o(d)}" height="${o(l)}" fill="rgba(0,0,0,.72)"/><text x="${o(m+h*.3)}" y="${o(n+h*1.02)}" font-size="${o(h)}" fill="${i}">${K(e)}</text>`},c=s.covered.map(t=>r(t,`fill="${v}" fill-opacity=".14" stroke="${v}" stroke-width="2" stroke-dasharray="6 4"`));s.person.forEach((t,p)=>{c.push(`<clipPath id="pc${String(p)}">${r(t.clip,"")}</clipPath><g clip-path="url(#pc${String(p)})"><path d="${t.path}" transform="matrix(${String(t.matrix[0])} 0 0 ${String(t.matrix[1])} ${o(t.matrix[2])} ${o(t.matrix[3])})" fill="none" stroke="${P}" stroke-width="2" vector-effect="non-scaling-stroke"/></g>`)});for(const t of s.texts)c.push(r(t.box,`fill="none" stroke="${k}" stroke-width="2"`),g(t.box[0],t.box[1],t.layer,k));for(const t of s.shapes)c.push(r(t.box,`fill="none" stroke="${S}" stroke-width="1" stroke-dasharray="4 3"`),g(t.box[0]+t.box[2],t.box[1]+1.3*h,t.name,S,!0));for(const t of s.guides)c.push(t.axis==="x"?`<line x1="${o(t.at)}" y1="0" x2="${o(t.at)}" y2="${String(f)}" stroke="${E}" stroke-width="1" vector-effect="non-scaling-stroke"/>`:`<line x1="0" y1="${o(t.at)}" x2="${String(x)}" y2="${o(t.at)}" stroke="${E}" stroke-width="1" vector-effect="non-scaling-stroke"/>`);for(const t of s.faces)c.push(r(t.box,`fill="none" stroke="${b}" stroke-width="${t.speaker?"3":"2"}"${t.speaker?"":' stroke-dasharray="8 5"'}`),g(t.box[0],t.box[1],`face ${String(t.id)}${t.speaker?" speaker":""}`,b));return s.missing.length>0&&c.push(g(0,f,`not measured: ${s.missing.join("; ")}`,"#ffffff")),`<svg class="ov" viewBox="0 0 ${String(x)} ${String(f)}" preserveAspectRatio="xMidYMid meet" font-family="sans-serif" font-weight="600">${c.join("")}</svg>`}
|
|
@@ -18,10 +18,7 @@ export interface Host {
|
|
|
18
18
|
export declare function unsupportedReason(host?: Host): string | undefined;
|
|
19
19
|
/** The runtime's native package for this system (sherpa-onnx-node's optional dependency). */
|
|
20
20
|
export declare function nativePackage(platform?: string, arch?: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* Whether the runtime and its native package for this system are
|
|
23
|
-
* installed beside this package; reads no file, so it is quick.
|
|
24
|
-
*/
|
|
21
|
+
/** Whether the runtime and its native package for this system are on this computer. */
|
|
25
22
|
export declare function runtimeInstalled(): boolean;
|
|
26
23
|
/** Loads the runtime in a child, as the decoder does: undefined when it loads, else why not. */
|
|
27
24
|
export declare function runtimeLoadError(): string | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{execFile as R,spawnSync as L}from"node:child_process";import{createRequire as
|
|
2
|
+
import{execFile as R,spawnSync as L}from"node:child_process";import{createRequire as b}from"node:module";import{join as _}from"node:path";import{pathToFileURL as y}from"node:url";import{createPackages as m}from"@allyhub-next/runtimes";import{MediaError as a,oneLine as c}from"../errors.js";import{ensureRuntime as $,runtimesOf as k}from"../tools.js";import{nodeCommand as T}from"@allyhub-next/runtimes/node";import{workerCommand as M,workerEnv as f}from"../worker-process.js";import{PARAKEET_LANGUAGES as S}from"./languages.js";import{ERROR_PREFIX as d,RESULT_PREFIX as u,WORKER_INPUT as g}from"./protocol.js";export{d as ERROR_PREFIX,u as RESULT_PREFIX,g as WORKER_INPUT};export const MODEL="parakeet-tdt-0.6b-v3-int8",MODEL_RUNTIME="parakeet",RUNTIME="sherpa-onnx-node",RUNTIME_VERSION="1.13.8",MODEL_FILES=["encoder.int8.onnx","decoder.int8.onnx","joiner.int8.onnx","tokens.txt"];const h=["darwin-arm64","darwin-x64","linux-x64","linux-arm64","win32-x64","win32-ia32"];function O(){const e=process.report.getReport();return{platform:process.platform,arch:process.arch,glibc:e.header?.glibcVersionRuntime}}export function unsupportedReason(e=O()){const r=`${e.platform}-${e.arch}`;if(!h.includes(r))return`Local speech recognition runs on ${h.join(", ")}; this computer is ${r}.`;if(e.platform!=="linux")return;if(!e.glibc)return"Local speech recognition needs glibc 2.32 or newer; this Linux has none (musl?).";const[n=0,t=0]=e.glibc.split(".").map(Number);if(!(n>2||n===2&&t>=32))return`Local speech recognition needs glibc 2.32 or newer; this computer has glibc ${e.glibc}.`}export function nativePackage(e=process.platform,r=process.arch){return`sherpa-onnx-${e==="win32"?"win":e}-${r}`}export function runtimeInstalled(){const e=m().entry(RUNTIME);if(!e)return!1;try{return b(e).resolve(`${nativePackage()}/package.json`),!0}catch{return!1}}const U=`import(process.env.ALLYHUB_SHERPA_MODULE).catch((e) => {
|
|
3
3
|
process.stderr.write(String(e && e.message).replace(/\\s+/g, " "));
|
|
4
4
|
process.exitCode = 1;
|
|
5
|
-
});`;export function runtimeLoadError(){
|
|
6
|
-
`).map(o=>o.trim()).filter(Boolean),i=
|
|
7
|
-
`).find(E=>E.startsWith(
|
|
5
|
+
});`;export function runtimeLoadError(){const e=m().entry(RUNTIME);if(!e)return`${RUNTIME} is not installed`;const r=y(e).href,n=L(T(),["--input-type=module","-e",U],{env:f({ALLYHUB_SHERPA_MODULE:r}),encoding:"utf8",stdio:["ignore","ignore","pipe"],timeout:6e4});if(n.status===0)return;const t=n.stderr.trim();return t?c(t):n.error?c(n.error):n.signal?`loading it crashed (${n.signal})`:"it does not load"}export async function ensureModel(e={}){return(await $(MODEL_RUNTIME,"model","the Parakeet speech model",e)).dir}export async function status(e={}){const r=unsupportedReason(),n=(await k(e).status()).find(t=>t.name===MODEL_RUNTIME);if(!n)throw new a("install",`The runtime manager has no ${MODEL_RUNTIME} model.`);return{model:MODEL,...r?{unsupported:r}:{},runtime:{name:RUNTIME,installed:runtimeInstalled(),version:RUNTIME_VERSION},modelFiles:{installed:n.installed,dir:n.dir,bytes:n.size},download:n.installed?0:n.size,languages:S}}export function recognizerConfig(e){const[r,n,t,i]=MODEL_FILES.map(o=>_(e,o));return{featConfig:{sampleRate:16e3,featureDim:80},modelConfig:{transducer:{encoder:r,decoder:n,joiner:t},tokens:i,numThreads:4,provider:"cpu",debug:0,modelType:"nemo_transducer"},decodingMethod:"greedy_search"}}const A=e=>Math.max(18e5,e*2e3);function I(e,r){const n=e?e.killed?"was stopped (it took too long)":e.signal?`crashed (${e.signal})`:`exited with code ${String(e.code)}`:"exited without a result",t=r.split(`
|
|
6
|
+
`).map(o=>o.trim()).filter(Boolean),i=t.find(o=>o.startsWith(d))?.slice(d.length)??t.at(-1);return i?`${n}: ${c(i)}`:n}export function decode(e,{seconds:r,signal:n}){const{command:t,args:i}=M(import.meta.url,"worker");return new Promise((o,l)=>{R(t,i,{env:f({[g]:JSON.stringify(e)}),maxBuffer:256*1024*1024,timeout:A(r),...n?{signal:n}:{}},(s,x,w)=>{if(n?.aborted){l(new a("cancelled","Stopped.",{cause:s}));return}const p=x.split(`
|
|
7
|
+
`).find(E=>E.startsWith(u));if(!s&&p){o(JSON.parse(p.slice(u.length)));return}l(new a("decode",`The speech decoder ${I(s,w)}.`,{hint:"If it keeps failing, install AllyHub again: its speech runtime may be broken."}))})})}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Word } from "@allyhub-next/formats";
|
|
2
2
|
import { type Stretch } from "../audio.js";
|
|
3
|
-
import type
|
|
3
|
+
import { type ToolOptions } from "../tools.js";
|
|
4
4
|
export interface TranscribeOptions extends ToolOptions {
|
|
5
5
|
/**
|
|
6
6
|
* The language spoken (BCP 47: "en", "pt-BR"). Local recognition covers
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{mkdtemp as p,rm as
|
|
2
|
+
import{mkdtemp as p,rm as M,stat as u}from"node:fs/promises";import{tmpdir as v}from"node:os";import{join as g,resolve as $}from"node:path";import{toSpeechWav as k}from"../audio.js";import{MediaError as h}from"../errors.js";import{ensureEngine as y}from"../tools.js";import{requireLanguage as R}from"./languages.js";import{RUNTIME as b,decode as E,ensureModel as P,MODEL as S,recognizerConfig as _,unsupportedReason as x}from"./parakeet.js";import{windowsToWords as z}from"./words.js";export async function transcribe(w,e={}){const t=$(w);if(!(await u(t).catch(()=>{}))?.isFile())throw new h("not_found",`Cannot find the file ${t}.`);R(e.lang);const r=e.stretch,d=x();if(d)throw new h("unsupported_platform",d);const f=await p(g(v(),"allyhub-transcribe-"));try{e.onProgress?.({step:"audio",message:r?`Reading the sound of ${t} from ${String(r.from)} s to ${String(r.to)} s`:`Reading the sound of ${t}`});const n=g(f,"speech.wav");await k(t,n,{...e,stretch:r});const c=Math.max(0,((await u(n)).size-44)/32e3),l=await P(e);e.onProgress?.({step:"decode",message:`Recognising ${String(Math.round(c))} s of speech with Parakeet`});const i=await E({wav:n,config:_(l),module:e.decoder??await y(b,"the speech engine",e)},{seconds:c,...e.signal?{signal:e.signal}:{}}),s=r?.from??0,a=i.windows.map(o=>({...o,offset:o.offset+s})),m=o=>Math.round(o*1e3)/1e3;return{words:z(a),duration:m(i.duration),model:S,confidence:a.some(o=>o.tokens.length>0)&&a.every(o=>o.tokens.length===0||o.logProbs!==void 0),...r?{stretch:{from:s,to:m(s+i.duration)}}:{}}}finally{await M(f,{recursive:!0,force:!0})}}
|
|
@@ -18,8 +18,8 @@ export interface Tile {
|
|
|
18
18
|
export declare function defaultCols(count: number, aspect: number): number;
|
|
19
19
|
/**
|
|
20
20
|
* `count` tiles of one aspect in a grid exactly `width` pixels wide, `gap`
|
|
21
|
-
* pixels between and around them
|
|
22
|
-
* between the two sides.
|
|
21
|
+
* pixels between and around them, each with room for its label under it;
|
|
22
|
+
* what the columns leave over is split between the two sides.
|
|
23
23
|
*/
|
|
24
24
|
export declare function gridLayout(o: {
|
|
25
25
|
count: number;
|
|
@@ -74,7 +74,7 @@ export interface GridCell {
|
|
|
74
74
|
export declare const labelSize: (tileWidth: number) => number;
|
|
75
75
|
/**
|
|
76
76
|
* The grid as an HTML page: each cell placed by `layout`, its pictures
|
|
77
|
-
* contained,
|
|
77
|
+
* contained, with what is drawn over them, labelled under them;
|
|
78
78
|
* `legend` adds a strip under the grid saying what each colour means.
|
|
79
79
|
*/
|
|
80
80
|
export declare function gridHtml(o: {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
export const MAX_TILES=60,GRID_WIDTH=1920;export class GridError extends Error{code;hint;constructor(i,
|
|
2
|
+
export const MAX_TILES=60,GRID_WIDTH=1920;export class GridError extends Error{code;hint;constructor(i,o,n){super(o),this.name="GridError",this.code=i,this.hint=n}}export function defaultCols(t,i){return i<1?Math.max(1,Math.min(t,5)):t===4?2:Math.max(1,Math.min(t,3))}export function gridLayout(t){const i=t.gap??8,o=Math.max(1,Math.min(Math.floor(t.cols),t.count)),n=Math.ceil(t.count/o),s=Math.floor((t.width-i*(o+1))/o);if(s<32)throw new GridError("too-narrow",`A width of ${String(t.width)} px is too narrow for ${String(o)} columns.`,"Give a larger width or fewer columns.");const e=Math.round(s/t.aspect),r=m(s),a=i+Math.floor((t.width-i*(o+1)-s*o)/2),c=[];for(let d=0;d<t.count;d++){const l=Math.floor(d/o),g=d%o;c.push({x:a+g*(s+i),y:i+l*(e+r+i),width:s,height:e})}return{width:t.width,height:i+n*(e+r+i),cols:o,tiles:c}}export function stretchFrames(t,i){const o=i.most??60,n=Math.max(0,Math.round(t.from*i.fps)),s=Math.min(Math.round(t.to*i.fps),Math.round(i.duration*i.fps)-1);if(s<n)throw new GridError("outside",`${t.from.toFixed(2)}–${t.to.toFixed(2)} s holds no frame of a video ${i.duration.toFixed(2)} s long.`);const e=s-n+1,r=t.every??(i.grid?Math.max(1,Math.ceil(e/o)):1),a=Array.from({length:Math.ceil(e/r)},(d,l)=>(n+l*r)/i.fps);if(i.grid&&a.length>o)throw new GridError("too-many",`The stretch is ${String(a.length)} frames at one in ${String(r)}; one picture holds at most ${String(o)}.`,`Take one frame in ${String(Math.ceil(e/o))} or more, or a shorter stretch.`);const c=d=>Math.round(d/i.fps*1e3)/1e3;return{from:c(n),to:c(s),every:r,times:a}}const p=t=>t.replace(/[&<>"]/g,i=>({"&":"&","<":"<",">":">",'"':"""})[i]??i);export const labelSize=t=>Math.max(12,Math.min(20,Math.round(t/36)));const m=t=>labelSize(t)+8;export function gridHtml(t){const i=t.layout.tiles[0],o=t.cells.some(l=>l.pictures.length===2)?2:1,n=labelSize((i?.width??600)/o),s=t.legend?Math.round(n*2.2):0,e=t.layout.height+s,r=l=>`${l.src===void 0?"":`<img src="${p(l.src)}">`}${l.over??""}`,a=(l,g,h)=>`<div class="label" style="left:${String(g)}px;top:${String(h.y+h.height)}px">${p(l.label)}</div>`,c=t.cells.map((l,g)=>{const h=t.layout.tiles[g];if(!h)return"";const[x,f]=l.pictures,u=f?`<div class="half" style="left:0">${r(x)}</div><div class="half" style="left:50%">${r(f)}</div>`:r(x);return`<div class="tile" style="left:${String(h.x)}px;top:${String(h.y)}px;width:${String(h.width)}px;height:${String(h.height)}px">${u}</div>${a(x,h.x,h)}${f?a(f,h.x+h.width/2,h):""}`}).join(""),d=t.legend?`<div class="legend">${t.legend.map(([l,g])=>`<span><i style="border-color:${p(l)}"></i>${p(g)}</span>`).join("")}</div>`:"";return`<!doctype html><html><head><meta charset="utf-8"><style>
|
|
3
3
|
body { margin: 0; background: #18181b; position: relative; width: ${String(t.layout.width)}px; height: ${String(e)}px; overflow: hidden; font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
|
|
4
4
|
.tile { position: absolute; overflow: hidden; background: #000; }
|
|
5
5
|
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; }
|
|
6
6
|
.tile .ov { position: absolute; inset: 0; width: 100%; height: 100%; }
|
|
7
7
|
.half { position: absolute; top: 0; width: 50%; height: 100%; overflow: hidden; background: #000; }
|
|
8
|
-
.label { position: absolute;
|
|
9
|
-
.legend { position: absolute; left: 8px; right: 8px; top: ${String(t.layout.height)}px; height: ${String(s)}px; display: flex; gap: ${String(
|
|
10
|
-
.legend i { display: inline-block; width: ${String(
|
|
11
|
-
</style></head><body>${
|
|
8
|
+
.label { position: absolute; padding: 3px 2px 0; white-space: nowrap; color: #fff; font-size: ${String(n)}px; line-height: 1.4; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
9
|
+
.legend { position: absolute; left: 8px; right: 8px; top: ${String(t.layout.height)}px; height: ${String(s)}px; display: flex; gap: ${String(n)}px; align-items: center; color: #e4e4e7; font-size: ${String(n)}px; font-weight: 600; white-space: nowrap; overflow: hidden; }
|
|
10
|
+
.legend i { display: inline-block; width: ${String(n)}px; height: ${String(Math.round(n/2))}px; margin-right: 6px; border: 2px solid; vertical-align: middle; }
|
|
11
|
+
</style></head><body>${c}${d}</body></html>`}export function pixelGridSvg(t,i,o){const n=[],s=(e,r,a)=>`<text x="${String(e)}" y="${String(r)}">${a}</text>`;for(let e=o,r=1;e<t;e+=o,r++)n.push(`<line x1="${String(e)}" y1="0" x2="${String(e)}" y2="${String(i)}" class="${r%5===0?"major":"minor"}"/>`,s(e+3,14,String(e)));for(let e=o,r=1;e<i;e+=o,r++)n.push(`<line x1="0" y1="${String(e)}" x2="${String(t)}" y2="${String(e)}" class="${r%5===0?"major":"minor"}"/>`,s(3,e-3,String(e)));return`<svg xmlns="http://www.w3.org/2000/svg" width="${String(t)}" height="${String(i)}" viewBox="0 0 ${String(t)} ${String(i)}" style="position:absolute;left:0;top:0"><style>line{stroke:#ffe14d;stroke-opacity:.45;stroke-width:1;shape-rendering:crispEdges}line.major{stroke-opacity:.85}text{font:600 12px sans-serif;fill:#ffe14d;paint-order:stroke;stroke:#000;stroke-width:3px}</style>${n.join("")}</svg>`}export function pixelGridHtml(t){return`<!doctype html><html><head><meta charset="utf-8"><style>body{margin:0;position:relative;width:${String(t.width)}px;height:${String(t.height)}px;overflow:hidden}img{position:absolute;left:0;top:0;width:${String(t.width)}px;height:${String(t.height)}px}</style></head><body><img src="${p(t.src)}">${pixelGridSvg(t.width,t.height,t.step)}</body></html>`}
|
|
@@ -3,6 +3,8 @@ export declare const LOCAL_PACKS: readonly ["speech", "people", "reference"];
|
|
|
3
3
|
export type LocalPackId = (typeof LOCAL_PACKS)[number];
|
|
4
4
|
/** Each pack's runtimes in the runtime manager's manifest. */
|
|
5
5
|
export declare const PACK_RUNTIMES: Readonly<Record<LocalPackId, readonly string[]>>;
|
|
6
|
+
/** What runs each pack's models, which AllyHub does not install with itself. */
|
|
7
|
+
export declare const PACK_ENGINES: Readonly<Record<LocalPackId, string>>;
|
|
6
8
|
export interface LocalPack {
|
|
7
9
|
id: LocalPackId;
|
|
8
10
|
/** Every part of it is on this computer. */
|
|
@@ -26,6 +28,7 @@ export interface PackProgress {
|
|
|
26
28
|
}
|
|
27
29
|
export interface InstallOptions {
|
|
28
30
|
runtimes?: ToolOptions["runtimes"];
|
|
31
|
+
packages?: ToolOptions["packages"];
|
|
29
32
|
signal?: AbortSignal;
|
|
30
33
|
onProgress?: (p: PackProgress) => void;
|
|
31
34
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{MODEL_RUNTIME as
|
|
2
|
+
import{MODEL_RUNTIME as f,RUNTIME as E,unsupportedReason as g}from"./asr/parakeet.js";import{OCR_MODEL as N,OCR_PACKAGE as A}from"./ocr/tesseract.js";import{ensureEngine as O,ensureRuntime as R,packagesOf as m,runtimesOf as d}from"./tools.js";import{FACE_MODEL as _,MATTE_MODEL as I}from"./vision/models.js";import{RUNTIME as M,unsupportedReason as h}from"./vision/runtime.js";export const LOCAL_PACKS=["speech","people","reference"],PACK_RUNTIMES={speech:[f],people:[_.runtime,I.runtime],reference:[N,"yt-dlp"]},PACK_ENGINES={speech:E,people:M,reference:A};const P={speech:{unsupported:g},people:{unsupported:h},reference:{unsupported:()=>{}}};export async function localPacks(o={}){const r=await d(o).status(),s=m(o);return LOCAL_PACKS.map(e=>{const a=PACK_RUNTIMES[e].map(n=>{const t=r.find(l=>l.name===n);if(!t)throw new Error(`The runtime manager has no runtime "${n}".`);return t}),u=a.find(n=>!n.available),c=P[e].unsupported()??(u?`${u.name} has no build for this computer.`:void 0),i=s.locate(PACK_ENGINES[e]),p=s.size(PACK_ENGINES[e]);return{id:e,installed:i!==void 0&&a.every(n=>n.installed),bytes:p+a.reduce((n,t)=>n+t.size,0),download:(i?0:p)+a.reduce((n,t)=>n+(t.installed?0:t.size),0),dirs:[...i?[i.dir]:[],...a.map(n=>n.dir)],...c?{unsupported:c}:{}}})}export async function installPack(o,r={}){const s={runtimes:r.runtimes,packages:r.packages,signal:r.signal,onProgress:e=>{r.onProgress?.({message:e.message,...e.done===void 0?{}:{done:e.done},...e.total===void 0?{}:{total:e.total}})}};await O(PACK_ENGINES[o],PACK_ENGINES[o],s);for(const e of PACK_RUNTIMES[o])await R(e,"model",e,s)}export async function removePack(o,r={}){const s=d(r);for(const e of PACK_RUNTIMES[o])await s.remove(e);await m(r).remove(PACK_ENGINES[o])}
|
|
@@ -2,6 +2,8 @@ import { type ToolOptions } from "../tools.js";
|
|
|
2
2
|
export declare const OCR_ENGINE = "tesseract-5-eng-best-int";
|
|
3
3
|
/** The model's runtime in the runtime manager's manifest. */
|
|
4
4
|
export declare const OCR_MODEL = "tesseract-eng";
|
|
5
|
+
/** What reads with that model, which AllyHub does not install with itself. */
|
|
6
|
+
export declare const OCR_PACKAGE = "tesseract.js";
|
|
5
7
|
/** A word as tesseract.js reports it. */
|
|
6
8
|
export interface TesseractWord {
|
|
7
9
|
text: string;
|
|
@@ -35,6 +37,8 @@ export interface OcrJob {
|
|
|
35
37
|
workers: number;
|
|
36
38
|
/** The folder holding eng.traineddata.gz. */
|
|
37
39
|
langPath: string;
|
|
40
|
+
/** The file tesseract.js loads from. */
|
|
41
|
+
engine: string;
|
|
38
42
|
}
|
|
39
43
|
export interface TesseractWorker {
|
|
40
44
|
setParameters(params: Record<string, string>): Promise<unknown>;
|
|
@@ -44,13 +48,15 @@ export interface TesseractWorker {
|
|
|
44
48
|
}): Promise<TesseractResult>;
|
|
45
49
|
terminate(): Promise<unknown>;
|
|
46
50
|
}
|
|
47
|
-
/** Whether the English model is here
|
|
51
|
+
/** Whether the English model is here. */
|
|
48
52
|
export declare function ocrStatus(opts?: ToolOptions): Promise<{
|
|
49
53
|
model: boolean;
|
|
50
54
|
}>;
|
|
55
|
+
/** The file tesseract.js loads from, fetched first when missing. */
|
|
56
|
+
export declare const ensureOcrEngine: (opts?: ToolOptions) => Promise<string>;
|
|
51
57
|
/** The English model's folder, downloaded first when missing. */
|
|
52
58
|
export declare function ensureOcr(opts?: ToolOptions): Promise<string>;
|
|
53
59
|
/** Starts one OCR worker over the model in `langPath`. */
|
|
54
|
-
export declare function startOcrWorker(langPath: string): Promise<TesseractWorker>;
|
|
60
|
+
export declare function startOcrWorker(engine: string, langPath: string): Promise<TesseractWorker>;
|
|
55
61
|
export {};
|
|
56
62
|
//# sourceMappingURL=tesseract.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{MediaError as
|
|
2
|
+
import{pathToFileURL as s}from"node:url";import{MediaError as a,oneLine as i}from"../errors.js";import{ensureEngine as c,ensureRuntime as u,runtimesOf as l}from"../tools.js";export const OCR_ENGINE="tesseract-5-eng-best-int",OCR_MODEL="tesseract-eng",OCR_PACKAGE="tesseract.js",OCR_JOB="ALLYHUB_OCR_JOB",OCR_LINE="@@allyhub-ocr ";export async function ocrStatus(e={}){return{model:await l(e).locate(OCR_MODEL)!==void 0}}export const ensureOcrEngine=(e={})=>c(OCR_PACKAGE,"the OCR engine",e);export async function ensureOcr(e={}){return(await u(OCR_MODEL,"model","the English OCR model",e)).dir}export async function startOcrWorker(e,o){let r;try{const t=await import(s(e).href);r=t.default??t}catch(t){throw new a("install",`The OCR runtime (tesseract.js) does not load (${i(t)}).`,{hint:"Install AllyHub again.",cause:t})}const n=await r.createWorker("eng",1,{langPath:o,cacheMethod:"none",gzip:!0});return await n.setParameters({tessedit_pageseg_mode:"11",debug_file:"/dev/null"}),n}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{spawn as
|
|
3
|
-
`);
|
|
4
|
-
`).pop();
|
|
2
|
+
import{spawn as k}from"node:child_process";import{mkdtemp as R,rm as S,writeFile as N}from"node:fs/promises";import{tmpdir as _}from"node:os";import{join as w}from"node:path";import{cached as v}from"../cache.js";import{MediaError as I,oneLine as M,stopped as O}from"../errors.js";import{mapLimit as A}from"../run.js";import{frameAt as F,probeVideo as L}from"../video.js";import{workerCommand as T,workerEnv as $}from"../worker-process.js";import{linesOf as D,OCR_CONFIDENCE_DEFAULTS as x}from"./lines.js";import{ensureOcr as J,ensureOcrEngine as P,OCR_ENGINE as E,OCR_JOB as W,OCR_LINE as y}from"./tesseract.js";const b=720;export function sampleTimes(o,n,g=[]){const c=1/n,r=[];for(let e=c/2;e<o;e+=c)r.push(e);for(const e of g)e>=0&&e<o&&r.push(e);r.sort((e,t)=>e-t);const m=[];for(const e of r){const t=m[m.length-1];(t===void 0||e-t>=.1)&&m.push(Math.round(e*1e3)/1e3)}return m}function B(o,n){const{command:g,args:c}=T(import.meta.url,"worker"),r=new Array(o.files.length);return new Promise((m,e)=>{const t=k(g,c,{env:$({[W]:JSON.stringify(o)}),stdio:["ignore","pipe","pipe"],...n.signal?{signal:n.signal}:{}});let d="",a="",p=0;t.stdout.on("data",i=>{d+=i.toString();const f=d.split(`
|
|
3
|
+
`);d=f.pop()??"";for(const l of f){if(!l.startsWith(y))continue;const s=JSON.parse(l.slice(y.length));r[s.i]=s.read,p++,n.onProgress?.({step:"decode",message:"Reading on-screen text",done:p,total:o.files.length,unit:"frames"})}}),t.stderr.on("data",i=>{a=(a+i.toString()).slice(-4e3)}),t.on("error",i=>{e(O(i,n.signal))}),t.on("close",i=>{if(n.signal?.aborted){e(O(new Error("stopped"),n.signal));return}const f=r.findIndex(s=>s===void 0);if(i===0&&f<0){m(r.map(s=>s??[]));return}const l=/OCR failed: (.*)/.exec(a)?.[1]??a.trim().split(`
|
|
4
|
+
`).pop();e(new I("decode",`OCR stopped${i===0?"":` (exit code ${String(i)})`}: ${M(l??"no reason given",300)}`,{hint:"Run it again; if it keeps failing, measure without on-screen text."}))})})}export async function screenText(o,n={}){const g=n.rate??2,c=await L(o,n),r=sampleTimes(c.duration,g,n.extra),m={word:n.confidence?.word??x.word,short:n.confidence?.short??x.short},e=await v(o,"text",{version:3,options:{engine:E,times:r}},n,async()=>{const t=await J(n),d=await P(n),a=Math.min(b,c.width),p=Math.round(a*c.height/c.width/2)*2,i=await R(w(_(),"allyhub-ocr-"));try{const f=await A(r,4,async(s,u)=>{const C=await F(o,s,{width:a,format:"png",runtimes:n.runtimes,signal:n.signal}),h=w(i,`${String(u).padStart(5,"0")}.png`);return await N(h,C),h}),l=await B({files:f,workers:n.workers??2,langPath:t,engine:d},n);return{engine:E,width:a,height:p,frames:r.map((s,u)=>({t:s,read:l[u]??[]}))}}finally{await S(i,{recursive:!0,force:!0})}});return{engine:e.engine,confidence:m,frames:e.frames.map(t=>{const{lines:d,low:a}=D(t.read,e.width,e.height,m);return{t:t.t,lines:d,...n.all===!0?{low:a}:{}}})}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{readFile as l}from"node:fs/promises";import{readWords as f}from"./lines.js";import{OCR_JOB as m,OCR_LINE as p,startOcrWorker as d}from"./tesseract.js";async function w(){const t=JSON.parse(process.env[m]??"{}"),s=[];try{const a=Math.max(1,Math.min(t.workers,t.files.length));for(let e=0;e<a;e++)s.push(await d(t.langPath));let i=0;await Promise.all(s.map(async e=>{for(let r=i++;r<t.files.length;r=i++){const
|
|
2
|
+
import{readFile as l}from"node:fs/promises";import{readWords as f}from"./lines.js";import{OCR_JOB as m,OCR_LINE as p,startOcrWorker as d}from"./tesseract.js";async function w(){const t=JSON.parse(process.env[m]??"{}"),s=[];try{const a=Math.max(1,Math.min(t.workers,t.files.length));for(let e=0;e<a;e++)s.push(await d(t.engine,t.langPath));let i=0;await Promise.all(s.map(async e=>{for(let r=i++;r<t.files.length;r=i++){const n=t.files[r];if(n===void 0)continue;const o=await e.recognize(await l(n),{},{blocks:!0,text:!1}),c=f(o);process.stdout.write(`${p}${JSON.stringify({i:r,read:c})}
|
|
3
3
|
`)}}))}finally{await Promise.all(s.map(a=>a.terminate().catch(()=>0)))}}w().catch(t=>{process.stderr.write(`
|
|
4
4
|
OCR failed: ${t instanceof Error?t.message:String(t)}
|
|
5
5
|
`),process.exitCode=1});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{framesAt as
|
|
2
|
+
import{framesAt as M,probeVideo as j}from"./video.js";const m=t=>t.replace(/[&<>"]/g,e=>({"&":"&","<":"<",">":">",'"':"""})[e]??e),k=t=>t[0]===137&&t[1]===80?"image/png":"image/jpeg";export function sheetHtml(t){const i=t.titleWidth??0,a=t.width-16-(i?i+8:0),s=Math.floor((a-8*(t.cols-1))/t.cols),d=Math.round(s/t.aspect),o=Math.max(11,Math.min(16,Math.round(s/18))),c=Math.max(11,Math.min(15,Math.round(s/19))),p=t.rows.map(g=>{const h=g.cells.map(r=>`<div class="cell"><div class="pic" style="height:${String(d)}px"><img src="data:${k(r.image)};base64,${r.image.toString("base64")}"></div><span class="label">${m(r.label)}</span>${r.text===void 0?"":`<div class="said">${m(r.text)||" "}</div>`}</div>`).join("");return`<div class="row">${i?`<div class="rowtitle" style="width:${String(i)}px">${m(g.title??"")}</div>`:""}<div class="cells" style="grid-template-columns:repeat(${String(t.cols)},${String(s)}px)">${h}</div></div>`}).join("");return`<!doctype html><html><head><meta charset="utf-8"><style>
|
|
3
3
|
* { box-sizing: border-box; }
|
|
4
4
|
body { margin: 0; padding: ${String(8)}px; width: ${String(t.width)}px; background: #18181b; color: #f4f4f5; font: ${String(c)}px/1.35 -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
|
|
5
5
|
h1 { margin: 2px 0 ${String(8)}px; font-size: ${String(o+2)}px; font-weight: 600; }
|
|
@@ -9,6 +9,6 @@ import{framesAt as y,probeVideo as j}from"./video.js";const m=t=>t.replace(/[&<>
|
|
|
9
9
|
.cell { background: #27272a; border-radius: 4px; overflow: hidden; }
|
|
10
10
|
.pic { position: relative; background: #000; }
|
|
11
11
|
.pic img { width: 100%; height: 100%; object-fit: contain; display: block; }
|
|
12
|
-
.label {
|
|
12
|
+
.label { display: block; padding: 3px 6px; font-size: ${String(o)}px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
13
13
|
.said { padding: 4px 6px 6px; min-height: ${String(Math.round(c*1.35*2+10))}px; color: #d4d4d8; }
|
|
14
|
-
</style></head><body>${t.title?`<h1>${m(t.title)}</h1>`:""}${p}</body></html>`}export function wordsBetween(t,e,i){return t.filter(
|
|
14
|
+
</style></head><body>${t.title?`<h1>${m(t.title)}</h1>`:""}${p}</body></html>`}export function wordsBetween(t,e,i){return t.filter(a=>a.start>=e&&a.start<i).map(a=>a.text).join(" ")}export const secondsLabel=t=>`${t.toFixed(1)} s`;export function defaultStep(t){return t<=90?2:Math.ceil(t/90)*2}export async function contactSheets(t,e){const i=await j(t,e),a=e.step??defaultStep(i.duration),s=[];for(let l=a/2;l<i.duration;l+=a)s.push(l);s.length===0&&s.push(i.duration/2);const d=i.width/i.height,o=e.cols??(d<.8?6:d<=1.25?5:4),c=e.perSheet??30,p=e.width??1600,g=Math.floor((p-16-8*(o-1))/o),h=[];for(let l=0;l<s.length;l+=c){const r=s.slice(l,l+c),b=await M(t,r,{width:Math.min(i.width,Math.max(160,g*2)),format:"jpeg",runtimes:e.runtimes,signal:e.signal}),x=r.map(n=>({t:n,said:e.words?wordsBetween(e.words,n-a/2,n+a/2):""})),f=x.map((n,y)=>{const $=e.labelOf?.(n.t);return{image:b[y]??Buffer.alloc(0),label:`${secondsLabel(n.t)}${$?` · ${$}`:""}`,...e.words?{text:n.said}:{}}}),u=[];for(let n=0;n<f.length;n+=o)u.push({cells:f.slice(n,n+o)});const S=Math.floor(l/c)+1,w=Math.ceil(s.length/c),v=sheetHtml({...e.title?{title:w>1?`${e.title} (${String(S)}/${String(w)})`:e.title}:{},rows:u,cols:o,width:p,aspect:d});h.push({picture:await e.draw(v,p),tiles:x})}return h}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import { type Located, type Runtimes } from "@allyhub-next/runtimes";
|
|
1
|
+
import { type Located, type Packages, type Runtimes } from "@allyhub-next/runtimes";
|
|
2
2
|
import type { Progress } from "./progress.js";
|
|
3
3
|
export interface ToolOptions {
|
|
4
4
|
/** The runtime manager to take programs and models from (default: the system's). */
|
|
5
5
|
runtimes?: Runtimes | undefined;
|
|
6
|
+
/** Where the engines come from (default: the system's). */
|
|
7
|
+
packages?: Packages | undefined;
|
|
6
8
|
signal?: AbortSignal | undefined;
|
|
7
9
|
onProgress?: ((p: Progress) => void) | undefined;
|
|
8
10
|
}
|
|
9
11
|
/** The runtime manager an analysis uses. */
|
|
10
12
|
export declare const runtimesOf: (opts?: ToolOptions) => Runtimes;
|
|
13
|
+
/** The packages an analysis takes its engines from. */
|
|
14
|
+
export declare const packagesOf: (opts?: ToolOptions) => Packages;
|
|
11
15
|
/** "670 MB", "35 MB", "94 kB". */
|
|
12
16
|
export declare function formatBytes(bytes: number): string;
|
|
13
17
|
/**
|
|
@@ -16,6 +20,12 @@ export declare function formatBytes(bytes: number): string;
|
|
|
16
20
|
* far the download has come.
|
|
17
21
|
*/
|
|
18
22
|
export declare function ensureRuntime(name: string, step: Progress["step"], what: string, opts?: ToolOptions): Promise<Located>;
|
|
23
|
+
/**
|
|
24
|
+
* What runs a model (onnxruntime-node, sherpa-onnx-node, tesseract.js), which
|
|
25
|
+
* AllyHub does not install with itself: fetched the first time, saying so.
|
|
26
|
+
* The file its name loads, for a worker to import.
|
|
27
|
+
*/
|
|
28
|
+
export declare function ensureEngine(name: string, what: string, opts?: ToolOptions): Promise<string>;
|
|
19
29
|
/** One program of a runtime (ffmpeg's ffprobe), its path, the runtime got first when it is not here. */
|
|
20
30
|
export declare function programPath(runtime: string, bin: string, opts?: ToolOptions): Promise<string>;
|
|
21
31
|
/** ffmpeg, from the runtime manager. */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{RuntimeError as
|
|
2
|
+
import{RuntimeError as w,createPackages as h,createRuntimes as $}from"@allyhub-next/runtimes";import{MediaError as s,oneLine as d}from"./errors.js";export const runtimesOf=(e={})=>e.runtimes??$(),packagesOf=(e={})=>e.packages??h();export function formatBytes(e){return e>=1e9?`${(e/1e9).toFixed(1)} GB`:e>=1e6?`${String(Math.round(e/1e6))} MB`:`${String(Math.max(1,Math.round(e/1e3)))} kB`}function g(e,o,n){return n instanceof s?n:n instanceof w?n.code==="cancelled"?new s("cancelled","Stopped.",{cause:n}):n.code==="unsupported"?new s("unsupported_platform",n.message,{cause:n}):n.code==="install"?new s("install",n.message,{cause:n}):new s("install",`Could not get ${o} (${d(n,300)}).`,{hint:n.code==="checksum"?"What was downloaded is not the pinned file; run it again, and report it if it keeps failing.":"Check the connection and run it again.",cause:n}):n instanceof Error&&n.name==="AbortError"?new s("cancelled","Stopped.",{cause:n}):new s("install",`Could not get ${e}: ${d(n)}`,{cause:n})}export async function ensureRuntime(e,o,n,a={}){const t=runtimesOf(a);try{const i=await t.locate(e);if(i)return i;const r=(await t.status()).find(c=>c.name===e);r&&a.onProgress?.({step:o,message:`Downloading ${n} (${formatBytes(r.size)}) into ${r.dir}, once.`,done:0,total:r.size,unit:"bytes"});let u=0,f=r?.size??0;const l=new Map;return await t.ensure(e,{signal:a.signal,onProgress:c=>{l.set(c.url,c.received),u=[...l.values()].reduce((p,m)=>p+m,0),f=Math.max(f,u),a.onProgress?.({step:o,message:`Downloading ${n}`,done:u,total:f,unit:"bytes"})}})}catch(i){throw g(e,n,i)}}export async function ensureEngine(e,o,n={}){const a=packagesOf(n);try{await a.ensure(e,{signal:n.signal,onFetch:()=>{const i=a.size(e);n.onProgress?.({step:"runtime",message:`Getting ${o}${i>0?` (${formatBytes(i)})`:""}, once.`})}});const t=a.entry(e);if(t)return t;throw new s("install",`${e} was installed but cannot be found.`)}catch(t){throw g(e,o,t)}}export async function programPath(e,o,n={}){const t=(await ensureRuntime(e,"runtime",e,n)).bins[o];if(!t)throw new s("install",`${e} holds no program "${o}".`);return t}export const ffmpegPath=(e={})=>programPath("ffmpeg","ffmpeg",e),ffprobePath=(e={})=>programPath("ffmpeg","ffprobe",e);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{ffmpegPath as
|
|
2
|
+
import{ensureEngine as g,ffmpegPath as u}from"../tools.js";import{formatSeconds as p,prepare as l,providerOf as w,sampleFpsOf as k}from"./common.js";import{ensureModel as F,FACE_MODEL as d}from"./models.js";import{runWorker as M}from"./run.js";import{RUNTIME as v}from"./runtime.js";import{buildTrack as E}from"./track.js";export async function runFaces(a,e={}){const t=k(e),{path:o,probe:r}=await l(a,e),f=await F(d,e),c=e.runtimeModule??await g(v,"the vision engine",e),h=await u(e),i=Math.max(1,Math.round(r.duration*t)),s=`Finding the face in ${String(i)} frames of ${o} (${p(r.duration)} at ${String(t)} per second)`;e.onProgress?.({step:"decode",message:s});const n=await M({task:"faces",file:o,ffmpeg:h,module:c,model:f,sampleFps:t,width:r.width,height:r.height,provider:w(e)},{seconds:r.duration,signal:e.signal,onFrames:m=>{e.onProgress?.({step:"decode",message:s,done:m,total:Math.max(m,i),unit:"frames"})}});if(n.task!=="faces")throw new Error("the worker answered another task");return{track:E({frames:n.frames,fps:t,width:r.width,height:r.height,model:d.name,...e.smoothing===void 0?{}:{smoothing:e.smoothing}}),provider:n.provider}}export async function trackFaces(a,e={}){return(await runFaces(a,e)).track}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{spawn as L}from"node:child_process";import{mkdir as k,mkdtemp as
|
|
2
|
+
import{spawn as L}from"node:child_process";import{mkdir as k,mkdtemp as U,open as O,rename as N,rm as _,stat as D}from"node:fs/promises";import{tmpdir as I}from"node:os";import{dirname as R,join as T,resolve as z}from"node:path";import{MediaError as F,oneLine as B,stopped as x}from"../errors.js";import{ensureEngine as C,ffmpegPath as G}from"../tools.js";import{tempFor as W}from"./cache.js";import{formatSeconds as Y,prepare as j,providerOf as H,sampleFpsOf as X}from"./common.js";import{DEFAULT_BURST as Z,DEFAULT_MAX_SAMPLE_FPS as q,DEFAULT_MOTION as J,encodeRate as K,frameCount as Q,matteSize as V,sampleAt as ee,tween as te,U2NET_SIZE as $}from"./mattes.js";import{ensureModel as re,MATTE_MODEL as b}from"./models.js";import{runWorker as ne}from"./run.js";import{RUNTIME as oe}from"./runtime.js";export const MATTE_LONG_SIDE=480;const E=$*$;async function ie(h,u,e,{ffmpeg:p,rate:c,frames:o,width:y,height:S,signal:n,onFrames:m}){const r=L(p,["-v","error","-nostdin","-y","-f","rawvideo","-pix_fmt","gray","-s",`${String($)}x${String($)}`,"-framerate",`${String(c.num)}/${String(c.den)}`,"-i","-","-vf",`scale=${String(y)}:${String(S)}:flags=bicubic:in_range=full:out_range=full,format=yuv420p`,"-c:v","libx264","-preset","medium","-crf","18","-g",String(Math.max(1,Math.round(c.value*2))),"-color_range","pc","-movflags","+faststart","-an","-f","mp4",e],{stdio:["pipe","ignore","pipe"],...n?{signal:n}:{}});let v="";r.stderr.on("data",s=>v+=s.toString());const l=new Promise((s,i)=>{r.on("error",t=>{i(x(t.code==="ENOENT"?new F("ffmpeg",`Cannot run ffmpeg (${p}).`,{hint:"Run it again to fetch ffmpeg, or unset ALLYHUB_FFMPEG if it names a program that is not there."}):t,n))}),r.on("close",s)});l.catch(()=>{}),r.stdin.on("error",()=>{});const w=await O(h,"r");try{const s=new Map,i=async t=>{const g=s.get(t);if(g)return g;const d=new Uint8Array(E);await w.read(d,0,E,t*E);for(const a of s.keys())a<t-1&&s.delete(a);return s.set(t,d),d};for(let t=0;t<o&&!(r.exitCode!==null||r.stdin.destroyed);t++){const{a:g,b:d,f:a}=ee(t,u),A=te(await i(g),await i(d),a);r.stdin.write(A)||await new Promise(P=>{const M=()=>{r.stdin.off("drain",M),r.stdin.off("close",M),P()};r.stdin.on("drain",M),r.stdin.on("close",M)}),(t%10===9||t===o-1)&&m(t+1)}}finally{await w.close(),r.stdin.end()}const f=await l;if(n?.aborted)throw x(new Error("ffmpeg stopped"),n);if(f!==0)throw new F("ffmpeg",`ffmpeg could not write the matte: ${B(v||`it exited with code ${String(f)}`,300)}`)}export async function runMatte(h,u,e={}){const p=X(e),{path:c,probe:o}=await j(h,e),y=await re(b,e),S=await G(e),n=K(o.fps),m=Q(o.duration,n),r=await U(T(I(),"allyhub-matte-"));try{const v=e.runtimeModule??await C(oe,"the vision engine",e),l=T(r,"samples.raw"),w=`Finding the person in ${String(m)} frames of ${c} (${Y(o.duration)}; the model looks ${String(p)} times a second, more where the picture moves)`;e.onProgress?.({step:"decode",message:w});const f=await ne({task:"matte",file:c,ffmpeg:S,module:v,model:y,sampleFps:p,width:o.width,height:o.height,provider:H(e),matte:{out:l,rate:`${String(n.num)}/${String(n.den)}`,sampling:{fps:n.value,maxSampleFps:e.sampling?.maxSampleFps??q,burst:e.sampling?.burst??Z,motion:e.sampling?.motion??J}}},{seconds:o.duration,signal:e.signal,onFrames:a=>{e.onProgress?.({step:"decode",message:w,done:a,total:Math.max(a,m),unit:"frames"})}});if(f.task!=="matte")throw new Error("the worker answered another task");const s=(await D(l)).size/E;if(f.frames.length===0||s<f.frames.length)throw new F("decode",`ffmpeg gave no frames of ${c} to the person matte.`);const i=V(o.width,o.height,MATTE_LONG_SIDE),t=z(u),g=`Writing the matte (${String(i.width)}×${String(i.height)}, ${String(m)} frames at ${String(Math.round(n.value*1e3)/1e3)} fps) to ${t}`;e.onProgress?.({step:"encode",message:g}),await k(R(t),{recursive:!0});const d=W(t);try{await ie(l,f.frames,d,{ffmpeg:S,rate:n,frames:m,width:i.width,height:i.height,signal:e.signal,onFrames:a=>{e.onProgress?.({step:"encode",message:g,done:a,total:m,unit:"frames"})}}),await N(d,t)}finally{await _(d,{force:!0})}return{info:{version:2,model:b.name,width:i.width,height:i.height,fps:Math.round(n.value*1e6)/1e6,sampleFps:p,duration:Math.round(m/n.value*1e6)/1e6,frames:f.frames.filter(a=>a<m)},provider:f.provider}}finally{await _(r,{recursive:!0,force:!0})}}export async function personMatte(h,u,e={}){return(await runMatte(h,u,e)).info}
|
|
@@ -9,7 +9,7 @@ export interface Host {
|
|
|
9
9
|
}
|
|
10
10
|
/** Why the runtime cannot run here, or undefined. On Linux it needs glibc 2.28 (manylinux_2_28; so not musl). */
|
|
11
11
|
export declare function unsupportedReason(host?: Host): string | undefined;
|
|
12
|
-
/** Whether the runtime is
|
|
12
|
+
/** Whether the runtime is on this computer; loads nothing, so it is quick. */
|
|
13
13
|
export declare function runtimeInstalled(): boolean;
|
|
14
14
|
/** Loads the runtime in a child, as the worker does: undefined when it loads, else why not. */
|
|
15
15
|
export declare function runtimeLoadError(): string | undefined;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{spawnSync as
|
|
2
|
+
import{spawnSync as s}from"node:child_process";import{pathToFileURL as c}from"node:url";import{createPackages as o}from"@allyhub-next/runtimes";import{oneLine as i}from"../errors.js";import{nodeCommand as a}from"@allyhub-next/runtimes/node";import{workerEnv as u}from"../worker-process.js";export const RUNTIME="onnxruntime-node",RUNTIME_VERSION="1.30.0",TARGETS=["darwin-arm64","linux-x64","linux-arm64","win32-x64","win32-arm64"];function p(){const r=process.report.getReport();return{platform:process.platform,arch:process.arch,glibc:r.header?.glibcVersionRuntime}}export function unsupportedReason(r=p()){const n=`${r.platform}-${r.arch}`;if(!TARGETS.includes(n))return`Face tracking and person mattes run on ${TARGETS.join(", ")}; this computer is ${n}.`;if(r.platform!=="linux")return;if(!r.glibc)return"Face tracking and person mattes need glibc 2.28 or newer; this Linux has none (musl?).";const[e=0,t=0]=r.glibc.split(".").map(Number);if(!(e>2||e===2&&t>=28))return`Face tracking and person mattes need glibc 2.28 or newer; this computer has glibc ${r.glibc}.`}export function runtimeInstalled(){return o().entry(RUNTIME)!==void 0}const m=`import(process.env.ALLYHUB_ORT_MODULE).then((m) => {
|
|
3
3
|
const ort = m.default ?? m;
|
|
4
4
|
if (typeof ort.InferenceSession?.create !== "function") throw new Error("it has no InferenceSession");
|
|
5
5
|
}).catch((e) => {
|
|
6
6
|
process.stderr.write(String(e && e.message).replace(/\\s+/g, " "));
|
|
7
7
|
process.exitCode = 1;
|
|
8
|
-
});`;export function runtimeLoadError(){
|
|
8
|
+
});`;export function runtimeLoadError(){const r=o().entry(RUNTIME);if(!r)return`${RUNTIME} is not installed`;const n=c(r).href,e=s(a(),["--input-type=module","-e",m],{env:u({ALLYHUB_ORT_MODULE:n}),encoding:"utf8",stdio:["ignore","ignore","pipe"],timeout:6e4});if(e.status===0)return;const t=e.stderr.trim();return t?i(t):e.error?i(e.error):e.signal?`loading it crashed (${e.signal})`:"it does not load"}
|
|
@@ -3,6 +3,6 @@ export declare function workerCommand(from: string, name: string): {
|
|
|
3
3
|
command: string;
|
|
4
4
|
args: string[];
|
|
5
5
|
};
|
|
6
|
-
/** The worker's environment: this process's,
|
|
6
|
+
/** The worker's environment: this process's, with `more`. */
|
|
7
7
|
export declare function workerEnv(more: Record<string, string>): NodeJS.ProcessEnv;
|
|
8
8
|
//# sourceMappingURL=worker-process.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{fileURLToPath as
|
|
2
|
+
import{fileURLToPath as e}from"node:url";import{nodeCommand as m}from"@allyhub-next/runtimes/node";export function workerCommand(o,n){const r=o.endsWith(".ts"),t=e(new URL(`./${n}.${r?"ts":"js"}`,o));return{command:m(),args:[...r?["--import","tsx"]:[],t]}}export function workerEnv(o){return{...process.env,...o}}
|
|
@@ -14,6 +14,8 @@ export interface WorkerJob {
|
|
|
14
14
|
root: string;
|
|
15
15
|
/** Where the child writes the GLB; the parent publishes it. */
|
|
16
16
|
out?: string;
|
|
17
|
+
/** The file `manifold-3d/manifold` resolves to, which AllyHub does not install with itself. */
|
|
18
|
+
manifold: string;
|
|
17
19
|
}
|
|
18
20
|
export type WorkerAnswer = {
|
|
19
21
|
report: ModelReport;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
|
|
2
|
-
import{realpathSync as
|
|
2
|
+
import{realpathSync as h}from"node:fs";import{registerHooks as g}from"node:module";import{dirname as c,join as x,relative as w}from"node:path";import{fileURLToPath as l,pathToFileURL as S}from"node:url";import{buildModel as v,modelImages as L,ModelError as $}from"./index.js";import{exportGLB as j}from"./export.js";import{modelReport as E}from"./report.js";import{programLocation as M}from"./program-location.js";import{PACKAGE as n}from"./build-job.js";const k=new Map([[n,import.meta.resolve("./index.js")],[`${n}/export`,import.meta.resolve("./export.js")],[`${n}/three`,import.meta.resolve("./three.js")]]),y=l(new URL(".",import.meta.url)),C="manifold-3d/manifold";let m;const d=new Set,f=t=>!t.includes("/node_modules/")&&!t.startsWith(y);g({resolve(t,o,s){const e=k.get(t);return e?{url:e,shortCircuit:!0}:t===C&&m?{url:m,shortCircuit:!0}:s(t,o)},load(t,o,s){if(t.startsWith("file:")){const e=l(t);f(e)&&d.add(e)}return s(t,o)}}),Error.stackTraceLimit=64;const p=t=>{process.send?.(t)};let r;try{r=JSON.parse(process.argv[2]??""),m=r.manifold;const{file:t,root:o,seed:s}=r,e=await import(S(t).href),a=await v(e.default,r.parameters,{seed:s,maxPatternVertices:r.maxPatternVertices,maxSurfaceVertices:r.maxSurfaceVertices,maxInstances:r.maxInstances});r.out&&await j(a,r.out,{root:o,base:c(t)});const u=L(a).flatMap(i=>i.file?[x(/^\.\.?\//u.test(i.file)?c(t):o,i.file)]:[]);p({report:E(a,t,s),inputs:[...d,...u]})}catch(t){const o=r?.root??process.cwd();let s=o;try{s=h(o)}catch{}const e=t instanceof Error&&t.stack?M(t.stack,f):void 0,a=t instanceof Error?t.message:String(t);p({error:{code:t instanceof $?t.code:"model_failed",message:e?`${a} (at ${w(s,e.path)}:${String(e.line)}:${String(e.column)})`:a}}),process.exitCode=1}finally{process.disconnect?.()}
|
|
@@ -46,6 +46,16 @@ export interface ModuleBuild {
|
|
|
46
46
|
/** hit: from the cache; stored: built and kept; unstored: built, not kept (an input changed meanwhile); off: no cache. */
|
|
47
47
|
cache: "hit" | "stored" | "unstored" | "off";
|
|
48
48
|
}
|
|
49
|
+
export interface ManifoldFiles {
|
|
50
|
+
/** Its module, what `manifold-3d/manifold` resolves to. */
|
|
51
|
+
js: string;
|
|
52
|
+
wasm: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Manifold's files. A workspace has them beside this package; AllyHub
|
|
56
|
+
* installed from npm does not, and fetches them the first time.
|
|
57
|
+
*/
|
|
58
|
+
export declare function manifoldFiles(): Promise<ManifoldFiles>;
|
|
49
59
|
/** A digest of the modelling runtime a build runs: this package's files and Manifold's code and WebAssembly. */
|
|
50
60
|
export declare function modelRuntimeDigest(): Promise<string>;
|
|
51
61
|
/**
|