@m0saic/templates 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +13 -0
- package/README.md +7 -0
- package/dist/freeze.d.ts +406 -0
- package/dist/freeze.js +855 -0
- package/dist/gen-geometry-matrix.d.ts +1 -0
- package/dist/gen-geometry-matrix.js +177 -0
- package/dist/gen-geometry-proof.d.ts +1 -0
- package/dist/gen-geometry-proof.js +259 -0
- package/dist/gen-layout-envelope.d.ts +1 -0
- package/dist/gen-layout-envelope.js +120 -0
- package/dist/gen-precision-sweep.d.ts +1 -0
- package/dist/gen-precision-sweep.js +219 -0
- package/dist/gen-props-shape.d.ts +1 -0
- package/dist/gen-props-shape.js +269 -0
- package/dist/gen-template-audit.d.ts +1 -0
- package/dist/gen-template-audit.js +379 -0
- package/dist/gen-template-manifest.d.ts +1 -0
- package/dist/gen-template-manifest.js +162 -0
- package/dist/gen-web-template-ids.d.ts +1 -0
- package/dist/gen-web-template-ids.js +65 -0
- package/dist/geometry-audit.d.ts +149 -0
- package/dist/geometry-audit.js +368 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +29 -0
- package/dist/m0saic/_shared/onboarding-cover.d.ts +95 -0
- package/dist/m0saic/_shared/onboarding-cover.js +247 -0
- package/dist/m0saic/_shared/raster.d.ts +28 -0
- package/dist/m0saic/_shared/raster.js +146 -0
- package/dist/m0saic/_shared/svgRaster.d.ts +40 -0
- package/dist/m0saic/_shared/svgRaster.js +142 -0
- package/dist/m0saic/agents/commit-feed/index.d.ts +1 -0
- package/dist/m0saic/agents/commit-feed/index.js +17 -0
- package/dist/m0saic/agents/commit-feed/v1/commit-feed.d.ts +68 -0
- package/dist/m0saic/agents/commit-feed/v1/commit-feed.js +293 -0
- package/dist/m0saic/agents/commit-feed/v1/index.d.ts +2 -0
- package/dist/m0saic/agents/commit-feed/v1/index.js +11 -0
- package/dist/m0saic/agents/index.d.ts +7 -0
- package/dist/m0saic/agents/index.js +25 -0
- package/dist/m0saic/agents/trace-timeline/index.d.ts +1 -0
- package/dist/m0saic/agents/trace-timeline/index.js +17 -0
- package/dist/m0saic/agents/trace-timeline/v1/index.d.ts +2 -0
- package/dist/m0saic/agents/trace-timeline/v1/index.js +15 -0
- package/dist/m0saic/agents/trace-timeline/v1/trace-timeline.d.ts +73 -0
- package/dist/m0saic/agents/trace-timeline/v1/trace-timeline.js +356 -0
- package/dist/m0saic/alpine/_shared/alpine-anim.d.ts +65 -0
- package/dist/m0saic/alpine/_shared/alpine-anim.js +142 -0
- package/dist/m0saic/alpine/_shared/alpine-card.d.ts +114 -0
- package/dist/m0saic/alpine/_shared/alpine-card.js +193 -0
- package/dist/m0saic/alpine/_shared/alpine-glyphs.d.ts +23 -0
- package/dist/m0saic/alpine/_shared/alpine-glyphs.js +46 -0
- package/dist/m0saic/alpine/_shared/alpine-theme.d.ts +84 -0
- package/dist/m0saic/alpine/_shared/alpine-theme.js +155 -0
- package/dist/m0saic/alpine/bar-graph/v1/bar-graph.d.ts +85 -0
- package/dist/m0saic/alpine/bar-graph/v1/bar-graph.js +558 -0
- package/dist/m0saic/alpine/bar-graph/v1/index.d.ts +5 -0
- package/dist/m0saic/alpine/bar-graph/v1/index.js +9 -0
- package/dist/m0saic/alpine/commit-feed/v1/commit-feed.d.ts +64 -0
- package/dist/m0saic/alpine/commit-feed/v1/commit-feed.js +261 -0
- package/dist/m0saic/alpine/commit-feed/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/commit-feed/v1/index.js +5 -0
- package/dist/m0saic/alpine/commit-feed/v2/commit-feed.d.ts +78 -0
- package/dist/m0saic/alpine/commit-feed/v2/commit-feed.js +509 -0
- package/dist/m0saic/alpine/commit-feed/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/commit-feed/v2/index.js +5 -0
- package/dist/m0saic/alpine/contributor-table/v1/assets/README.md +13 -0
- package/dist/m0saic/alpine/contributor-table/v1/assets/layout-lite.m0 +9 -0
- package/dist/m0saic/alpine/contributor-table/v1/assets/layout-standard.m0 +9 -0
- package/dist/m0saic/alpine/contributor-table/v1/contributor-table.d.ts +76 -0
- package/dist/m0saic/alpine/contributor-table/v1/contributor-table.js +651 -0
- package/dist/m0saic/alpine/contributor-table/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/contributor-table/v1/index.js +5 -0
- package/dist/m0saic/alpine/donut/v1/donut.d.ts +55 -0
- package/dist/m0saic/alpine/donut/v1/donut.js +322 -0
- package/dist/m0saic/alpine/donut/v1/index.d.ts +5 -0
- package/dist/m0saic/alpine/donut/v1/index.js +9 -0
- package/dist/m0saic/alpine/donut/v2/donut.d.ts +58 -0
- package/dist/m0saic/alpine/donut/v2/donut.js +268 -0
- package/dist/m0saic/alpine/donut/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/donut/v2/index.js +5 -0
- package/dist/m0saic/alpine/donut/v3/donut.d.ts +65 -0
- package/dist/m0saic/alpine/donut/v3/donut.js +428 -0
- package/dist/m0saic/alpine/donut/v3/index.d.ts +1 -0
- package/dist/m0saic/alpine/donut/v3/index.js +5 -0
- package/dist/m0saic/alpine/heatmap/v1/heatmap.d.ts +68 -0
- package/dist/m0saic/alpine/heatmap/v1/heatmap.js +370 -0
- package/dist/m0saic/alpine/heatmap/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/heatmap/v1/index.js +5 -0
- package/dist/m0saic/alpine/heatmap/v2/heatmap.d.ts +73 -0
- package/dist/m0saic/alpine/heatmap/v2/heatmap.js +582 -0
- package/dist/m0saic/alpine/heatmap/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/heatmap/v2/index.js +5 -0
- package/dist/m0saic/alpine/index.d.ts +20 -0
- package/dist/m0saic/alpine/index.js +37 -0
- package/dist/m0saic/alpine/kpi-card/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/kpi-card/v1/index.js +5 -0
- package/dist/m0saic/alpine/kpi-card/v1/kpi-card.d.ts +54 -0
- package/dist/m0saic/alpine/kpi-card/v1/kpi-card.js +311 -0
- package/dist/m0saic/alpine/kpi-card/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/kpi-card/v2/index.js +5 -0
- package/dist/m0saic/alpine/kpi-card/v2/kpi-card.d.ts +60 -0
- package/dist/m0saic/alpine/kpi-card/v2/kpi-card.js +362 -0
- package/dist/m0saic/alpine/leaderboard/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/leaderboard/v1/index.js +5 -0
- package/dist/m0saic/alpine/leaderboard/v1/leaderboard.d.ts +58 -0
- package/dist/m0saic/alpine/leaderboard/v1/leaderboard.js +313 -0
- package/dist/m0saic/alpine/line-chart/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/line-chart/v1/index.js +5 -0
- package/dist/m0saic/alpine/line-chart/v1/line-chart.d.ts +70 -0
- package/dist/m0saic/alpine/line-chart/v1/line-chart.js +408 -0
- package/dist/m0saic/alpine/line-chart/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/line-chart/v2/index.js +5 -0
- package/dist/m0saic/alpine/line-chart/v2/line-chart.d.ts +72 -0
- package/dist/m0saic/alpine/line-chart/v2/line-chart.js +434 -0
- package/dist/m0saic/alpine/progress-card/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/progress-card/v1/index.js +5 -0
- package/dist/m0saic/alpine/progress-card/v1/progress-card.d.ts +53 -0
- package/dist/m0saic/alpine/progress-card/v1/progress-card.js +333 -0
- package/dist/m0saic/alpine/stat-card/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/stat-card/v1/index.js +5 -0
- package/dist/m0saic/alpine/stat-card/v1/stat-card.d.ts +76 -0
- package/dist/m0saic/alpine/stat-card/v1/stat-card.js +295 -0
- package/dist/m0saic/alpine/timeline/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/timeline/v1/index.js +5 -0
- package/dist/m0saic/alpine/timeline/v1/timeline.d.ts +55 -0
- package/dist/m0saic/alpine/timeline/v1/timeline.js +266 -0
- package/dist/m0saic/alpine/timeline/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/timeline/v2/index.js +5 -0
- package/dist/m0saic/alpine/timeline/v2/timeline.d.ts +61 -0
- package/dist/m0saic/alpine/timeline/v2/timeline.js +371 -0
- package/dist/m0saic/alpine/treemap/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/treemap/v1/index.js +5 -0
- package/dist/m0saic/alpine/treemap/v1/treemap.d.ts +56 -0
- package/dist/m0saic/alpine/treemap/v1/treemap.js +326 -0
- package/dist/m0saic/alpine/treemap/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/treemap/v2/index.js +5 -0
- package/dist/m0saic/alpine/treemap/v2/treemap.d.ts +59 -0
- package/dist/m0saic/alpine/treemap/v2/treemap.js +323 -0
- package/dist/m0saic/benchmark/battery/assets/media/README.md +16 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-av.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-01.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-02.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-03.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-04.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/duration-long.mosaic +80 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/encoders-base.mosaic +32 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/geometry-grid.mosaic +592 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/lifetime-window-fade.mosaic +28 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-bar-graph.mosaic +1980 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-donut.mosaic +797 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-screencap-grid.mosaic +4591 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-stat-card.mosaic +187 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-audio.mosaic +31 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-lavfi.mosaic +32 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-media.mosaic +73 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-nested.mosaic +48 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-ref.mosaic +24 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-text.mosaic +120 -0
- package/dist/m0saic/benchmark/battery/manifest.d.ts +65 -0
- package/dist/m0saic/benchmark/battery/manifest.js +97 -0
- package/dist/m0saic/benchmark/index.d.ts +2 -0
- package/dist/m0saic/benchmark/index.js +22 -0
- package/dist/m0saic/benchmark/report/v1/assets/m-logo.png +0 -0
- package/dist/m0saic/benchmark/report/v1/assets/sample-session/benchmark.json +41 -0
- package/dist/m0saic/benchmark/report/v1/index.d.ts +1 -0
- package/dist/m0saic/benchmark/report/v1/index.js +17 -0
- package/dist/m0saic/benchmark/report/v1/report.d.ts +23 -0
- package/dist/m0saic/benchmark/report/v1/report.js +242 -0
- package/dist/m0saic/benchmark/run/v1/benchmarkRun.d.ts +57 -0
- package/dist/m0saic/benchmark/run/v1/benchmarkRun.js +151 -0
- package/dist/m0saic/benchmark/run/v1/confirmation.d.ts +11 -0
- package/dist/m0saic/benchmark/run/v1/confirmation.js +48 -0
- package/dist/m0saic/benchmark/run/v1/index.d.ts +1 -0
- package/dist/m0saic/benchmark/run/v1/index.js +17 -0
- package/dist/m0saic/benchmark/run/v1/renderScenario.d.ts +12 -0
- package/dist/m0saic/benchmark/run/v1/renderScenario.js +122 -0
- package/dist/m0saic/benchmark/run/v1/runner.d.ts +10 -0
- package/dist/m0saic/benchmark/run/v1/runner.js +208 -0
- package/dist/m0saic/brand/business-card/v1/back-catalog.d.ts +68 -0
- package/dist/m0saic/brand/business-card/v1/back-catalog.js +121 -0
- package/dist/m0saic/brand/business-card/v1/business-card.d.ts +82 -0
- package/dist/m0saic/brand/business-card/v1/business-card.js +517 -0
- package/dist/m0saic/brand/business-card/v1/index.d.ts +4 -0
- package/dist/m0saic/brand/business-card/v1/index.js +16 -0
- package/dist/m0saic/brand/business-card/v1/layout.d.ts +163 -0
- package/dist/m0saic/brand/business-card/v1/layout.js +369 -0
- package/dist/m0saic/brand/community-m/v1/camera.d.ts +45 -0
- package/dist/m0saic/brand/community-m/v1/camera.js +44 -0
- package/dist/m0saic/brand/community-m/v1/caption.d.ts +5 -0
- package/dist/m0saic/brand/community-m/v1/caption.js +18 -0
- package/dist/m0saic/brand/community-m/v1/community-m.d.ts +25 -0
- package/dist/m0saic/brand/community-m/v1/community-m.js +117 -0
- package/dist/m0saic/brand/community-m/v1/community-m.web.d.ts +3 -0
- package/dist/m0saic/brand/community-m/v1/community-m.web.js +172 -0
- package/dist/m0saic/brand/community-m/v1/gen-seed-piece.d.ts +1 -0
- package/dist/m0saic/brand/community-m/v1/gen-seed-piece.js +59 -0
- package/dist/m0saic/brand/community-m/v1/geometry.d.ts +44 -0
- package/dist/m0saic/brand/community-m/v1/geometry.js +68 -0
- package/dist/m0saic/brand/community-m/v1/imageSize.node.d.ts +3 -0
- package/dist/m0saic/brand/community-m/v1/imageSize.node.js +60 -0
- package/dist/m0saic/brand/community-m/v1/index.d.ts +1 -0
- package/dist/m0saic/brand/community-m/v1/index.js +5 -0
- package/dist/m0saic/brand/community-m/v1/loadPiece.node.d.ts +14 -0
- package/dist/m0saic/brand/community-m/v1/loadPiece.node.js +69 -0
- package/dist/m0saic/brand/community-m/v1/manifest.d.ts +22 -0
- package/dist/m0saic/brand/community-m/v1/manifest.js +81 -0
- package/dist/m0saic/brand/community-m/v1/mark.d.ts +76 -0
- package/dist/m0saic/brand/community-m/v1/mark.js +136 -0
- package/dist/m0saic/brand/community-m/v1/paths.d.ts +14 -0
- package/dist/m0saic/brand/community-m/v1/paths.js +61 -0
- package/dist/m0saic/brand/community-m/v1/piece.d.ts +28 -0
- package/dist/m0saic/brand/community-m/v1/piece.js +35 -0
- package/dist/m0saic/brand/community-m/v1/pipeline.d.ts +122 -0
- package/dist/m0saic/brand/community-m/v1/pipeline.js +461 -0
- package/dist/m0saic/brand/community-m/v1/preview.d.ts +75 -0
- package/dist/m0saic/brand/community-m/v1/preview.js +214 -0
- package/dist/m0saic/brand/community-m/v1/props.d.ts +101 -0
- package/dist/m0saic/brand/community-m/v1/props.js +178 -0
- package/dist/m0saic/brand/community-m/v1/reveal.d.ts +129 -0
- package/dist/m0saic/brand/community-m/v1/reveal.js +155 -0
- package/dist/m0saic/brand/community-m/v1/seedPiece.d.ts +57 -0
- package/dist/m0saic/brand/community-m/v1/seedPiece.js +153 -0
- package/dist/m0saic/brand/community-m/v1/target.d.ts +88 -0
- package/dist/m0saic/brand/community-m/v1/target.js +132 -0
- package/dist/m0saic/brand/community-m/v1/timing.d.ts +32 -0
- package/dist/m0saic/brand/community-m/v1/timing.js +57 -0
- package/dist/m0saic/brand/community-m/v1/webPiece.d.ts +23 -0
- package/dist/m0saic/brand/community-m/v1/webPiece.js +42 -0
- package/dist/m0saic/brand/community-m/v1/wordmark.d.ts +34 -0
- package/dist/m0saic/brand/community-m/v1/wordmark.js +62 -0
- package/dist/m0saic/brand/index.d.ts +7 -0
- package/dist/m0saic/brand/index.js +17 -0
- package/dist/m0saic/brand/logo/v1/index.d.ts +1 -0
- package/dist/m0saic/brand/logo/v1/index.js +5 -0
- package/dist/m0saic/brand/logo/v1/logo.d.ts +30 -0
- package/dist/m0saic/brand/logo/v1/logo.js +471 -0
- package/dist/m0saic/brand/logo/v2/index.d.ts +1 -0
- package/dist/m0saic/brand/logo/v2/index.js +5 -0
- package/dist/m0saic/brand/logo/v2/logo.d.ts +30 -0
- package/dist/m0saic/brand/logo/v2/logo.js +615 -0
- package/dist/m0saic/brand/logo/v3/index.d.ts +1 -0
- package/dist/m0saic/brand/logo/v3/index.js +5 -0
- package/dist/m0saic/brand/logo/v3/logo.d.ts +36 -0
- package/dist/m0saic/brand/logo/v3/logo.js +666 -0
- package/dist/m0saic/brand/logo/v3/logo_runner.d.ts +36 -0
- package/dist/m0saic/brand/logo/v3/logo_runner.js +216 -0
- package/dist/m0saic/brand/qr-stamp/assets/brand-qr-with-logo.svg +8 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.mp4 +0 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.static.png +0 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.mp4 +0 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.static.png +0 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/index.d.ts +2 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/index.js +10 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/qr-stamp-still.d.ts +45 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/qr-stamp-still.js +347 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/index.d.ts +2 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/index.js +9 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/qr-stamp.d.ts +43 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/qr-stamp.js +447 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/windows.d.ts +19 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/windows.js +24 -0
- package/dist/m0saic/charts/_shared/index.d.ts +8 -0
- package/dist/m0saic/charts/_shared/index.js +24 -0
- package/dist/m0saic/charts/_shared/line.d.ts +100 -0
- package/dist/m0saic/charts/_shared/line.js +134 -0
- package/dist/m0saic/charts/_shared/scale.d.ts +9 -0
- package/dist/m0saic/charts/_shared/scale.js +17 -0
- package/dist/m0saic/charts/bar-graph/v1/anim.d.ts +83 -0
- package/dist/m0saic/charts/bar-graph/v1/anim.js +104 -0
- package/dist/m0saic/charts/bar-graph/v1/axis.d.ts +51 -0
- package/dist/m0saic/charts/bar-graph/v1/axis.js +73 -0
- package/dist/m0saic/charts/bar-graph/v1/bar-graph.d.ts +44 -0
- package/dist/m0saic/charts/bar-graph/v1/bar-graph.js +316 -0
- package/dist/m0saic/charts/bar-graph/v1/defaults.d.ts +88 -0
- package/dist/m0saic/charts/bar-graph/v1/defaults.js +157 -0
- package/dist/m0saic/charts/bar-graph/v1/format.d.ts +46 -0
- package/dist/m0saic/charts/bar-graph/v1/format.js +95 -0
- package/dist/m0saic/charts/bar-graph/v1/index.d.ts +31 -0
- package/dist/m0saic/charts/bar-graph/v1/index.js +36 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-cell.d.ts +53 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-cell.js +198 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-fill.d.ts +4 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-fill.js +154 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bars-stack.d.ts +41 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bars-stack.js +208 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/chart-frame.d.ts +32 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/chart-frame.js +124 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/labels.d.ts +52 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/labels.js +504 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/plot-area.d.ts +24 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/plot-area.js +180 -0
- package/dist/m0saic/charts/bar-graph/v1/types.d.ts +326 -0
- package/dist/m0saic/charts/bar-graph/v1/types.js +36 -0
- package/dist/m0saic/charts/bar-graph/v2/bar-graph.d.ts +131 -0
- package/dist/m0saic/charts/bar-graph/v2/bar-graph.js +768 -0
- package/dist/m0saic/charts/bar-graph/v2/index.d.ts +10 -0
- package/dist/m0saic/charts/bar-graph/v2/index.js +14 -0
- package/dist/m0saic/charts/donut/v1/anim.d.ts +54 -0
- package/dist/m0saic/charts/donut/v1/anim.js +84 -0
- package/dist/m0saic/charts/donut/v1/donut.d.ts +87 -0
- package/dist/m0saic/charts/donut/v1/donut.js +400 -0
- package/dist/m0saic/charts/donut/v1/geometry.d.ts +55 -0
- package/dist/m0saic/charts/donut/v1/geometry.js +115 -0
- package/dist/m0saic/charts/donut/v1/index.d.ts +11 -0
- package/dist/m0saic/charts/donut/v1/index.js +17 -0
- package/dist/m0saic/charts/donut/v2/donut.d.ts +67 -0
- package/dist/m0saic/charts/donut/v2/donut.js +307 -0
- package/dist/m0saic/charts/donut/v2/index.d.ts +10 -0
- package/dist/m0saic/charts/donut/v2/index.js +14 -0
- package/dist/m0saic/charts/donut/v3/anim.d.ts +47 -0
- package/dist/m0saic/charts/donut/v3/anim.js +77 -0
- package/dist/m0saic/charts/donut/v3/donut.d.ts +54 -0
- package/dist/m0saic/charts/donut/v3/donut.js +531 -0
- package/dist/m0saic/charts/donut/v3/geometry.d.ts +74 -0
- package/dist/m0saic/charts/donut/v3/geometry.js +152 -0
- package/dist/m0saic/charts/donut/v3/index.d.ts +10 -0
- package/dist/m0saic/charts/donut/v3/index.js +14 -0
- package/dist/m0saic/charts/donut/v4/donut.d.ts +63 -0
- package/dist/m0saic/charts/donut/v4/donut.js +546 -0
- package/dist/m0saic/charts/donut/v4/index.d.ts +10 -0
- package/dist/m0saic/charts/donut/v4/index.js +14 -0
- package/dist/m0saic/charts/index.d.ts +8 -0
- package/dist/m0saic/charts/index.js +25 -0
- package/dist/m0saic/charts/line-chart/v1/anim.d.ts +78 -0
- package/dist/m0saic/charts/line-chart/v1/anim.js +119 -0
- package/dist/m0saic/charts/line-chart/v1/axis.d.ts +48 -0
- package/dist/m0saic/charts/line-chart/v1/axis.js +55 -0
- package/dist/m0saic/charts/line-chart/v1/card.d.ts +27 -0
- package/dist/m0saic/charts/line-chart/v1/card.js +44 -0
- package/dist/m0saic/charts/line-chart/v1/chrome-spec.d.ts +110 -0
- package/dist/m0saic/charts/line-chart/v1/chrome-spec.js +208 -0
- package/dist/m0saic/charts/line-chart/v1/chrome.d.ts +30 -0
- package/dist/m0saic/charts/line-chart/v1/chrome.js +335 -0
- package/dist/m0saic/charts/line-chart/v1/defaults.d.ts +65 -0
- package/dist/m0saic/charts/line-chart/v1/defaults.js +151 -0
- package/dist/m0saic/charts/line-chart/v1/format.d.ts +26 -0
- package/dist/m0saic/charts/line-chart/v1/format.js +76 -0
- package/dist/m0saic/charts/line-chart/v1/frame.d.ts +50 -0
- package/dist/m0saic/charts/line-chart/v1/frame.js +62 -0
- package/dist/m0saic/charts/line-chart/v1/geometry.d.ts +15 -0
- package/dist/m0saic/charts/line-chart/v1/geometry.js +34 -0
- package/dist/m0saic/charts/line-chart/v1/index.d.ts +16 -0
- package/dist/m0saic/charts/line-chart/v1/index.js +21 -0
- package/dist/m0saic/charts/line-chart/v1/line-chart.d.ts +26 -0
- package/dist/m0saic/charts/line-chart/v1/line-chart.js +634 -0
- package/dist/m0saic/charts/line-chart/v1/line-series.d.ts +69 -0
- package/dist/m0saic/charts/line-chart/v1/line-series.js +259 -0
- package/dist/m0saic/charts/line-chart/v1/types.d.ts +328 -0
- package/dist/m0saic/charts/line-chart/v1/types.js +24 -0
- package/dist/m0saic/charts/stat-card/v1/index.d.ts +10 -0
- package/dist/m0saic/charts/stat-card/v1/index.js +15 -0
- package/dist/m0saic/charts/stat-card/v1/stat-card.d.ts +78 -0
- package/dist/m0saic/charts/stat-card/v1/stat-card.js +475 -0
- package/dist/m0saic/code/_shared/code-diff.d.ts +73 -0
- package/dist/m0saic/code/_shared/code-diff.js +220 -0
- package/dist/m0saic/code/_shared/code-lexer.d.ts +28 -0
- package/dist/m0saic/code/_shared/code-lexer.js +226 -0
- package/dist/m0saic/code/_shared/code-metrics.d.ts +58 -0
- package/dist/m0saic/code/_shared/code-metrics.js +140 -0
- package/dist/m0saic/code/_shared/code-theme.d.ts +30 -0
- package/dist/m0saic/code/_shared/code-theme.js +141 -0
- package/dist/m0saic/code/index.d.ts +1 -0
- package/dist/m0saic/code/index.js +17 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/chrome.d.ts +60 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/chrome.js +252 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/plan.d.ts +90 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/plan.js +226 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/steps.d.ts +103 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/steps.js +313 -0
- package/dist/m0saic/code/snippet-morph/v1/snippet-morph.d.ts +61 -0
- package/dist/m0saic/code/snippet-morph/v1/snippet-morph.js +462 -0
- package/dist/m0saic/collage/image-collage/v1/demo-fixture.d.ts +18 -0
- package/dist/m0saic/collage/image-collage/v1/demo-fixture.js +30 -0
- package/dist/m0saic/collage/image-collage/v1/emit.d.ts +81 -0
- package/dist/m0saic/collage/image-collage/v1/emit.js +163 -0
- package/dist/m0saic/collage/image-collage/v1/image-collage.d.ts +63 -0
- package/dist/m0saic/collage/image-collage/v1/image-collage.js +386 -0
- package/dist/m0saic/collage/image-collage/v1/index.d.ts +2 -0
- package/dist/m0saic/collage/image-collage/v1/index.js +5 -0
- package/dist/m0saic/collage/image-collage/v1/packer/candidates.d.ts +71 -0
- package/dist/m0saic/collage/image-collage/v1/packer/candidates.js +211 -0
- package/dist/m0saic/collage/image-collage/v1/packer/classify.d.ts +26 -0
- package/dist/m0saic/collage/image-collage/v1/packer/classify.js +70 -0
- package/dist/m0saic/collage/image-collage/v1/packer/index.d.ts +7 -0
- package/dist/m0saic/collage/image-collage/v1/packer/index.js +23 -0
- package/dist/m0saic/collage/image-collage/v1/packer/paging.d.ts +39 -0
- package/dist/m0saic/collage/image-collage/v1/packer/paging.js +139 -0
- package/dist/m0saic/collage/image-collage/v1/packer/score.d.ts +25 -0
- package/dist/m0saic/collage/image-collage/v1/packer/score.js +69 -0
- package/dist/m0saic/collage/image-collage/v1/packer/solve.d.ts +27 -0
- package/dist/m0saic/collage/image-collage/v1/packer/solve.js +84 -0
- package/dist/m0saic/collage/image-collage/v1/packer/tiler.d.ts +65 -0
- package/dist/m0saic/collage/image-collage/v1/packer/tiler.js +607 -0
- package/dist/m0saic/collage/image-collage/v1/packer/types.d.ts +99 -0
- package/dist/m0saic/collage/image-collage/v1/packer/types.js +10 -0
- package/dist/m0saic/collage/image-collage/v1/tutorial.d.ts +17 -0
- package/dist/m0saic/collage/image-collage/v1/tutorial.js +269 -0
- package/dist/m0saic/collage/index.d.ts +2 -0
- package/dist/m0saic/collage/index.js +18 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/grid-fixture.d.ts +7 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/grid-fixture.js +11 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/index.d.ts +1 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/index.js +5 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/spread-grid-mock.d.ts +29 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/spread-grid-mock.js +78 -0
- package/dist/m0saic/dsl-tutorial/index.d.ts +1 -0
- package/dist/m0saic/dsl-tutorial/index.js +18 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/brand-glyphs.d.ts +24 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/brand-glyphs.js +17 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/m0saic-logo.d.ts +6 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/m0saic-logo.js +9 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/node-kit.d.ts +57 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/node-kit.js +156 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/text-fit.d.ts +76 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/text-fit.js +127 -0
- package/dist/m0saic/dsl-tutorial/v1/dsl-tutorial.d.ts +124 -0
- package/dist/m0saic/dsl-tutorial/v1/dsl-tutorial.js +675 -0
- package/dist/m0saic/dsl-tutorial/v1/index.d.ts +24 -0
- package/dist/m0saic/dsl-tutorial/v1/index.js +35 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/canvas/v1/dsl-canvas.d.ts +113 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/canvas/v1/dsl-canvas.js +573 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/chrome/v1/dsl-chrome.d.ts +83 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/chrome/v1/dsl-chrome.js +373 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/dsl-string/v1/dsl-string.d.ts +48 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/dsl-string/v1/dsl-string.js +366 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/inspector/v1/dsl-inspector.d.ts +54 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/inspector/v1/dsl-inspector.js +304 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/buildSteps.d.ts +110 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/buildSteps.js +443 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/camera.d.ts +64 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/camera.js +177 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/cursor.d.ts +47 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/cursor.js +64 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/dslString.d.ts +61 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/dslString.js +135 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/inspector.d.ts +62 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/inspector.js +197 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/timing.d.ts +117 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/timing.js +180 -0
- package/dist/m0saic/dsl-tutorial/v1/theme/tokens.d.ts +87 -0
- package/dist/m0saic/dsl-tutorial/v1/theme/tokens.js +96 -0
- package/dist/m0saic/forensic/index.d.ts +1 -0
- package/dist/m0saic/forensic/index.js +17 -0
- package/dist/m0saic/forensic/watermark/_shared/cellLuminance.d.ts +37 -0
- package/dist/m0saic/forensic/watermark/_shared/cellLuminance.js +62 -0
- package/dist/m0saic/forensic/watermark/index.d.ts +2 -0
- package/dist/m0saic/forensic/watermark/index.js +18 -0
- package/dist/m0saic/forensic/watermark/verify/index.d.ts +1 -0
- package/dist/m0saic/forensic/watermark/verify/index.js +17 -0
- package/dist/m0saic/forensic/watermark/verify/v1/decode.d.ts +83 -0
- package/dist/m0saic/forensic/watermark/verify/v1/decode.js +270 -0
- package/dist/m0saic/forensic/watermark/verify/v1/index.d.ts +2 -0
- package/dist/m0saic/forensic/watermark/verify/v1/index.js +23 -0
- package/dist/m0saic/forensic/watermark/verify/v1/report.d.ts +71 -0
- package/dist/m0saic/forensic/watermark/verify/v1/report.js +428 -0
- package/dist/m0saic/forensic/watermark/verify/v1/verify.d.ts +55 -0
- package/dist/m0saic/forensic/watermark/verify/v1/verify.js +286 -0
- package/dist/m0saic/forensic/watermark/video/index.d.ts +1 -0
- package/dist/m0saic/forensic/watermark/video/index.js +17 -0
- package/dist/m0saic/forensic/watermark/video/v1/forensic-watermark.d.ts +119 -0
- package/dist/m0saic/forensic/watermark/video/v1/forensic-watermark.js +629 -0
- package/dist/m0saic/forensic/watermark/video/v1/index.d.ts +2 -0
- package/dist/m0saic/forensic/watermark/video/v1/index.js +9 -0
- package/dist/m0saic/forensic/watermark/video/v1/maskAsset.d.ts +67 -0
- package/dist/m0saic/forensic/watermark/video/v1/maskAsset.js +125 -0
- package/dist/m0saic/forensic/watermark/video/v1/probeHost.d.ts +69 -0
- package/dist/m0saic/forensic/watermark/video/v1/probeHost.js +83 -0
- package/dist/m0saic/github/client.d.ts +200 -0
- package/dist/m0saic/github/client.js +161 -0
- package/dist/m0saic/github/connection.d.ts +24 -0
- package/dist/m0saic/github/connection.js +91 -0
- package/dist/m0saic/github/index.d.ts +20 -0
- package/dist/m0saic/github/index.js +42 -0
- package/dist/m0saic/github/repo-facts-fetcher/index.d.ts +4 -0
- package/dist/m0saic/github/repo-facts-fetcher/index.js +20 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/build-facts.d.ts +54 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/build-facts.js +238 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/facts.d.ts +112 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/facts.js +12 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/repo-facts-fetcher.d.ts +67 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/repo-facts-fetcher.js +210 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/sample-facts.d.ts +16 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/sample-facts.js +175 -0
- package/dist/m0saic/github/week-math.d.ts +50 -0
- package/dist/m0saic/github/week-math.js +96 -0
- package/dist/m0saic/github/weekly-pulse/index.d.ts +1 -0
- package/dist/m0saic/github/weekly-pulse/index.js +17 -0
- package/dist/m0saic/github/weekly-pulse/v1/weekly-pulse.d.ts +51 -0
- package/dist/m0saic/github/weekly-pulse/v1/weekly-pulse.js +153 -0
- package/dist/m0saic/github/weekly-pulse-adapter/index.d.ts +2 -0
- package/dist/m0saic/github/weekly-pulse-adapter/index.js +18 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/derive-pulse.d.ts +24 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/derive-pulse.js +257 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/weekly-pulse-adapter.d.ts +35 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/weekly-pulse-adapter.js +131 -0
- package/dist/m0saic/github/year-card/index.d.ts +1 -0
- package/dist/m0saic/github/year-card/index.js +17 -0
- package/dist/m0saic/github/year-card/v1/index.d.ts +2 -0
- package/dist/m0saic/github/year-card/v1/index.js +16 -0
- package/dist/m0saic/github/year-card/v1/year-card.d.ts +90 -0
- package/dist/m0saic/github/year-card/v1/year-card.js +476 -0
- package/dist/m0saic/hello-world/index.d.ts +1 -0
- package/dist/m0saic/hello-world/index.js +18 -0
- package/dist/m0saic/hello-world/v1/hello-world.d.ts +4 -0
- package/dist/m0saic/hello-world/v1/hello-world.js +36 -0
- package/dist/m0saic/hello-world/v1/index.d.ts +5 -0
- package/dist/m0saic/hello-world/v1/index.js +9 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/bake-fin-qr.sh +11 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg-logo.png +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg_logo_480x480.svg +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/m-hero.png +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/qr-fin.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-desktop.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-layout.m0p +5146 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-mobile.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-square.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/title-layout.m0p +130 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-chrome.d.ts +151 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-chrome.js +305 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-data.d.ts +178 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-data.js +238 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-glyphs.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-glyphs.js +12 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-theme.d.ts +67 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-theme.js +59 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/scatter.d.ts +54 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/scatter.js +173 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/activity-trend.d.ts +37 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/activity-trend.js +178 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/changes-breakdown.d.ts +37 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/changes-breakdown.js +164 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/contributions.d.ts +37 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/contributions.js +159 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/fin.d.ts +31 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/fin.js +154 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/index.d.ts +10 -0
- package/dist/m0saic/hero/ffmpeg-pulse/index.js +24 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/kpi-overview.d.ts +38 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/kpi-overview.js +161 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/notable-commits.d.ts +36 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/notable-commits.js +151 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/runner.d.ts +54 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/runner.js +128 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/scatter-bake.d.ts +29 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/scatter-bake.js +47 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/title.d.ts +20 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/title.js +365 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/top-contributors.d.ts +38 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/top-contributors.js +174 -0
- package/dist/m0saic/hero/index.d.ts +1 -0
- package/dist/m0saic/hero/index.js +18 -0
- package/dist/m0saic/index.d.ts +20 -0
- package/dist/m0saic/index.js +56 -0
- package/dist/m0saic/media/barcode/v1/barcode.d.ts +22 -0
- package/dist/m0saic/media/barcode/v1/barcode.js +218 -0
- package/dist/m0saic/media/barcode/v1/index.d.ts +1 -0
- package/dist/m0saic/media/barcode/v1/index.js +9 -0
- package/dist/m0saic/media/blur-regions/index.d.ts +1 -0
- package/dist/m0saic/media/blur-regions/index.js +17 -0
- package/dist/m0saic/media/blur-regions/v1/blur-regions.d.ts +58 -0
- package/dist/m0saic/media/blur-regions/v1/blur-regions.js +303 -0
- package/dist/m0saic/media/blur-regions/v1/index.d.ts +2 -0
- package/dist/m0saic/media/blur-regions/v1/index.js +20 -0
- package/dist/m0saic/media/blur-regions/v1/plan.d.ts +125 -0
- package/dist/m0saic/media/blur-regions/v1/plan.js +204 -0
- package/dist/m0saic/media/blur-regions/v1/tutorial.d.ts +18 -0
- package/dist/m0saic/media/blur-regions/v1/tutorial.js +428 -0
- package/dist/m0saic/media/highlights/index.d.ts +1 -0
- package/dist/m0saic/media/highlights/index.js +17 -0
- package/dist/m0saic/media/highlights/v1/assets/cover-ranges.jpg +0 -0
- package/dist/m0saic/media/highlights/v1/highlights.d.ts +49 -0
- package/dist/m0saic/media/highlights/v1/highlights.js +222 -0
- package/dist/m0saic/media/highlights/v1/index.d.ts +3 -0
- package/dist/m0saic/media/highlights/v1/index.js +19 -0
- package/dist/m0saic/media/highlights/v1/pipeline.d.ts +35 -0
- package/dist/m0saic/media/highlights/v1/pipeline.js +91 -0
- package/dist/m0saic/media/highlights/v1/plan.d.ts +46 -0
- package/dist/m0saic/media/highlights/v1/plan.js +68 -0
- package/dist/m0saic/media/index.d.ts +13 -0
- package/dist/m0saic/media/index.js +31 -0
- package/dist/m0saic/media/logo-animate/index.d.ts +1 -0
- package/dist/m0saic/media/logo-animate/index.js +17 -0
- package/dist/m0saic/media/logo-animate/v1/default-logo.d.ts +12 -0
- package/dist/m0saic/media/logo-animate/v1/default-logo.js +49 -0
- package/dist/m0saic/media/logo-animate/v1/expressions.d.ts +66 -0
- package/dist/m0saic/media/logo-animate/v1/expressions.js +107 -0
- package/dist/m0saic/media/logo-animate/v1/index.d.ts +2 -0
- package/dist/m0saic/media/logo-animate/v1/index.js +5 -0
- package/dist/m0saic/media/logo-animate/v1/layout.d.ts +29 -0
- package/dist/m0saic/media/logo-animate/v1/layout.js +43 -0
- package/dist/m0saic/media/logo-animate/v1/logo-animate.d.ts +106 -0
- package/dist/m0saic/media/logo-animate/v1/logo-animate.js +732 -0
- package/dist/m0saic/media/logo-animate/v1/svg-source.d.ts +63 -0
- package/dist/m0saic/media/logo-animate/v1/svg-source.js +127 -0
- package/dist/m0saic/media/logo-animate/v1/tutorial.d.ts +16 -0
- package/dist/m0saic/media/logo-animate/v1/tutorial.js +378 -0
- package/dist/m0saic/media/metadata-stamp/index.d.ts +1 -0
- package/dist/m0saic/media/metadata-stamp/index.js +17 -0
- package/dist/m0saic/media/metadata-stamp/v1/assets/cover-frame.jpg +0 -0
- package/dist/m0saic/media/metadata-stamp/v1/format-date.d.ts +52 -0
- package/dist/m0saic/media/metadata-stamp/v1/format-date.js +128 -0
- package/dist/m0saic/media/metadata-stamp/v1/index.d.ts +4 -0
- package/dist/m0saic/media/metadata-stamp/v1/index.js +10 -0
- package/dist/m0saic/media/metadata-stamp/v1/metadata-stamp.d.ts +58 -0
- package/dist/m0saic/media/metadata-stamp/v1/metadata-stamp.js +534 -0
- package/dist/m0saic/media/qr/_shared/brandMCenter.d.ts +28 -0
- package/dist/m0saic/media/qr/_shared/brandMCenter.js +52 -0
- package/dist/m0saic/media/qr/animate/v1/expressions.d.ts +164 -0
- package/dist/m0saic/media/qr/animate/v1/expressions.js +251 -0
- package/dist/m0saic/media/qr/animate/v1/index.d.ts +2 -0
- package/dist/m0saic/media/qr/animate/v1/index.js +9 -0
- package/dist/m0saic/media/qr/animate/v1/qr-animate.d.ts +171 -0
- package/dist/m0saic/media/qr/animate/v1/qr-animate.js +775 -0
- package/dist/m0saic/media/qr/animate/v2/index.d.ts +2 -0
- package/dist/m0saic/media/qr/animate/v2/index.js +9 -0
- package/dist/m0saic/media/qr/animate/v2/qr-animate.d.ts +64 -0
- package/dist/m0saic/media/qr/animate/v2/qr-animate.js +341 -0
- package/dist/m0saic/media/qr/basic/v1/index.d.ts +1 -0
- package/dist/m0saic/media/qr/basic/v1/index.js +10 -0
- package/dist/m0saic/media/qr/basic/v1/qr.d.ts +24 -0
- package/dist/m0saic/media/qr/basic/v1/qr.js +132 -0
- package/dist/m0saic/media/qr/code/v1/index.d.ts +2 -0
- package/dist/m0saic/media/qr/code/v1/index.js +9 -0
- package/dist/m0saic/media/qr/code/v1/qr-code.d.ts +135 -0
- package/dist/m0saic/media/qr/code/v1/qr-code.js +611 -0
- package/dist/m0saic/media/qr/index.d.ts +7 -0
- package/dist/m0saic/media/qr/index.js +19 -0
- package/dist/m0saic/media/qr/rounded/v1/index.d.ts +1 -0
- package/dist/m0saic/media/qr/rounded/v1/index.js +9 -0
- package/dist/m0saic/media/qr/rounded/v1/qr-rounded.d.ts +68 -0
- package/dist/m0saic/media/qr/rounded/v1/qr-rounded.js +338 -0
- package/dist/m0saic/media/qr/stamp/v1/assets/cover-frame.jpg +0 -0
- package/dist/m0saic/media/qr/stamp/v1/qr-stamp-custom.d.ts +44 -0
- package/dist/m0saic/media/qr/stamp/v1/qr-stamp-custom.js +389 -0
- package/dist/m0saic/media/qr/stamp-video/v1/expressions.d.ts +10 -0
- package/dist/m0saic/media/qr/stamp-video/v1/expressions.js +18 -0
- package/dist/m0saic/media/qr/stamp-video/v1/gleamBand.d.ts +115 -0
- package/dist/m0saic/media/qr/stamp-video/v1/gleamBand.js +206 -0
- package/dist/m0saic/media/qr/stamp-video/v1/index.d.ts +2 -0
- package/dist/m0saic/media/qr/stamp-video/v1/index.js +9 -0
- package/dist/m0saic/media/qr/stamp-video/v1/qr-stamp.d.ts +82 -0
- package/dist/m0saic/media/qr/stamp-video/v1/qr-stamp.js +424 -0
- package/dist/m0saic/media/screencap_grid/index.d.ts +3 -0
- package/dist/m0saic/media/screencap_grid/index.js +9 -0
- package/dist/m0saic/media/screencap_grid/internal/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid/internal/index.js +5 -0
- package/dist/m0saic/media/screencap_grid/internal/info_pane.d.ts +13 -0
- package/dist/m0saic/media/screencap_grid/internal/info_pane.js +130 -0
- package/dist/m0saic/media/screencap_grid/v1/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid/v1/index.js +5 -0
- package/dist/m0saic/media/screencap_grid/v1/screencap-grid.d.ts +162 -0
- package/dist/m0saic/media/screencap_grid/v1/screencap-grid.js +690 -0
- package/dist/m0saic/media/screencap_grid/v2/assets/tutorial-sheet.jpg +0 -0
- package/dist/m0saic/media/screencap_grid/v2/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid/v2/index.js +5 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover-assets.d.ts +9 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover-assets.js +12 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.d.ts +97 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.js +367 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-tutorial.d.ts +38 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-tutorial.js +530 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid.d.ts +194 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid.js +615 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/index.js +5 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/assets/pair-sheet.jpg +0 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/index.js +5 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-cover.d.ts +18 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-cover.js +191 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-tutorial.d.ts +13 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-tutorial.js +355 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe.d.ts +179 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe.js +544 -0
- package/dist/m0saic/media/scroll_wall/index.d.ts +1 -0
- package/dist/m0saic/media/scroll_wall/index.js +5 -0
- package/dist/m0saic/media/scroll_wall/v1/geometry.d.ts +131 -0
- package/dist/m0saic/media/scroll_wall/v1/geometry.js +172 -0
- package/dist/m0saic/media/scroll_wall/v1/index.d.ts +1 -0
- package/dist/m0saic/media/scroll_wall/v1/index.js +5 -0
- package/dist/m0saic/media/scroll_wall/v1/motion.d.ts +114 -0
- package/dist/m0saic/media/scroll_wall/v1/motion.js +141 -0
- package/dist/m0saic/media/scroll_wall/v1/scroll-wall.d.ts +182 -0
- package/dist/m0saic/media/scroll_wall/v1/scroll-wall.js +432 -0
- package/dist/m0saic/media/subtitle-burn/index.d.ts +1 -0
- package/dist/m0saic/media/subtitle-burn/index.js +17 -0
- package/dist/m0saic/media/subtitle-burn/v1/assets/cover-frame.jpg +0 -0
- package/dist/m0saic/media/subtitle-burn/v1/index.d.ts +1 -0
- package/dist/m0saic/media/subtitle-burn/v1/index.js +6 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.d.ts +13 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.js +196 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn.d.ts +137 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn.js +603 -0
- package/dist/m0saic/media/trickplay/index.d.ts +1 -0
- package/dist/m0saic/media/trickplay/index.js +17 -0
- package/dist/m0saic/media/trickplay/v1/index.d.ts +4 -0
- package/dist/m0saic/media/trickplay/v1/index.js +18 -0
- package/dist/m0saic/media/trickplay/v1/pipeline.d.ts +51 -0
- package/dist/m0saic/media/trickplay/v1/pipeline.js +180 -0
- package/dist/m0saic/media/trickplay/v1/plan.d.ts +65 -0
- package/dist/m0saic/media/trickplay/v1/plan.js +76 -0
- package/dist/m0saic/media/trickplay/v1/sidecars.d.ts +79 -0
- package/dist/m0saic/media/trickplay/v1/sidecars.js +89 -0
- package/dist/m0saic/media/trickplay/v1/trickplay.d.ts +40 -0
- package/dist/m0saic/media/trickplay/v1/trickplay.js +123 -0
- package/dist/m0saic/media/video_to_png_sequence/index.d.ts +1 -0
- package/dist/m0saic/media/video_to_png_sequence/index.js +5 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/index.d.ts +1 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/index.js +5 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/video-to-png-sequence.d.ts +37 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/video-to-png-sequence.js +234 -0
- package/dist/m0saic/media/watermark/index.d.ts +1 -0
- package/dist/m0saic/media/watermark/index.js +17 -0
- package/dist/m0saic/media/watermark/v1/adaptive.d.ts +85 -0
- package/dist/m0saic/media/watermark/v1/adaptive.js +162 -0
- package/dist/m0saic/media/watermark/v1/content.d.ts +56 -0
- package/dist/m0saic/media/watermark/v1/content.js +160 -0
- package/dist/m0saic/media/watermark/v1/geometry.d.ts +138 -0
- package/dist/m0saic/media/watermark/v1/geometry.js +247 -0
- package/dist/m0saic/media/watermark/v1/index.d.ts +3 -0
- package/dist/m0saic/media/watermark/v1/index.js +5 -0
- package/dist/m0saic/media/watermark/v1/pageGrid.d.ts +105 -0
- package/dist/m0saic/media/watermark/v1/pageGrid.js +203 -0
- package/dist/m0saic/media/watermark/v1/pipeline.d.ts +68 -0
- package/dist/m0saic/media/watermark/v1/pipeline.js +324 -0
- package/dist/m0saic/media/watermark/v1/watermark.d.ts +88 -0
- package/dist/m0saic/media/watermark/v1/watermark.js +452 -0
- package/dist/m0saic/meta/camera-debug/index.d.ts +1 -0
- package/dist/m0saic/meta/camera-debug/index.js +17 -0
- package/dist/m0saic/meta/camera-debug/v1/camera-debug.d.ts +98 -0
- package/dist/m0saic/meta/camera-debug/v1/camera-debug.js +490 -0
- package/dist/m0saic/meta/fixture-fetcher/index.d.ts +1 -0
- package/dist/m0saic/meta/fixture-fetcher/index.js +17 -0
- package/dist/m0saic/meta/fixture-fetcher/v1/fixture-fetcher.d.ts +76 -0
- package/dist/m0saic/meta/fixture-fetcher/v1/fixture-fetcher.js +159 -0
- package/dist/m0saic/meta/hot-reload-smoke/index.d.ts +1 -0
- package/dist/m0saic/meta/hot-reload-smoke/index.js +17 -0
- package/dist/m0saic/meta/hot-reload-smoke/v1/hot-reload-smoke.d.ts +50 -0
- package/dist/m0saic/meta/hot-reload-smoke/v1/hot-reload-smoke.js +131 -0
- package/dist/m0saic/meta/index.d.ts +13 -0
- package/dist/m0saic/meta/index.js +29 -0
- package/dist/m0saic/meta/post-mortem/index.d.ts +1 -0
- package/dist/m0saic/meta/post-mortem/index.js +17 -0
- package/dist/m0saic/meta/post-mortem/v1/assets/human.png +0 -0
- package/dist/m0saic/meta/post-mortem/v1/assets/robot.png +0 -0
- package/dist/m0saic/meta/post-mortem/v1/post-mortem.d.ts +47 -0
- package/dist/m0saic/meta/post-mortem/v1/post-mortem.js +634 -0
- package/dist/m0saic/meta/upstream-echo/index.d.ts +1 -0
- package/dist/m0saic/meta/upstream-echo/index.js +17 -0
- package/dist/m0saic/meta/upstream-echo/v1/upstream-echo.d.ts +52 -0
- package/dist/m0saic/meta/upstream-echo/v1/upstream-echo.js +138 -0
- package/dist/m0saic/primitives/grid/index.d.ts +2 -0
- package/dist/m0saic/primitives/grid/index.js +7 -0
- package/dist/m0saic/primitives/grid/v1/grid.d.ts +85 -0
- package/dist/m0saic/primitives/grid/v1/grid.js +217 -0
- package/dist/m0saic/primitives/grid/v2/grid.d.ts +80 -0
- package/dist/m0saic/primitives/grid/v2/grid.js +150 -0
- package/dist/m0saic/primitives/index.d.ts +1 -0
- package/dist/m0saic/primitives/index.js +17 -0
- package/dist/m0saic/social/index.d.ts +1 -0
- package/dist/m0saic/social/index.js +17 -0
- package/dist/m0saic/social/quote-card/index.d.ts +1 -0
- package/dist/m0saic/social/quote-card/index.js +17 -0
- package/dist/m0saic/social/quote-card/v1/index.d.ts +2 -0
- package/dist/m0saic/social/quote-card/v1/index.js +5 -0
- package/dist/m0saic/social/quote-card/v1/layout.d.ts +119 -0
- package/dist/m0saic/social/quote-card/v1/layout.js +323 -0
- package/dist/m0saic/social/quote-card/v1/quote-card.d.ts +51 -0
- package/dist/m0saic/social/quote-card/v1/quote-card.js +310 -0
- package/dist/m0saic/story/index.d.ts +2 -0
- package/dist/m0saic/story/index.js +20 -0
- package/dist/m0saic/story/narrated-chapters/index.d.ts +1 -0
- package/dist/m0saic/story/narrated-chapters/index.js +17 -0
- package/dist/m0saic/story/narrated-chapters/v1/captions.d.ts +42 -0
- package/dist/m0saic/story/narrated-chapters/v1/captions.js +200 -0
- package/dist/m0saic/story/narrated-chapters/v1/demo-fixture.d.ts +13 -0
- package/dist/m0saic/story/narrated-chapters/v1/demo-fixture.js +52 -0
- package/dist/m0saic/story/narrated-chapters/v1/index.d.ts +2 -0
- package/dist/m0saic/story/narrated-chapters/v1/index.js +5 -0
- package/dist/m0saic/story/narrated-chapters/v1/kenburns.d.ts +50 -0
- package/dist/m0saic/story/narrated-chapters/v1/kenburns.js +0 -0
- package/dist/m0saic/story/narrated-chapters/v1/layout.d.ts +103 -0
- package/dist/m0saic/story/narrated-chapters/v1/layout.js +162 -0
- package/dist/m0saic/story/narrated-chapters/v1/narrated-chapters.d.ts +22 -0
- package/dist/m0saic/story/narrated-chapters/v1/narrated-chapters.js +160 -0
- package/dist/m0saic/story/narrated-chapters/v1/pipeline.d.ts +43 -0
- package/dist/m0saic/story/narrated-chapters/v1/pipeline.js +94 -0
- package/dist/m0saic/story/narrated-chapters/v1/plan.d.ts +144 -0
- package/dist/m0saic/story/narrated-chapters/v1/plan.js +372 -0
- package/dist/m0saic/story/narrated-chapters/v1/props.d.ts +147 -0
- package/dist/m0saic/story/narrated-chapters/v1/props.js +205 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/body.d.ts +64 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/body.js +253 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/card.d.ts +40 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/card.js +201 -0
- package/dist/m0saic/story/narrated-chapters/v1/theme.d.ts +25 -0
- package/dist/m0saic/story/narrated-chapters/v1/theme.js +38 -0
- package/dist/m0saic/story/scrapbook/v1/document.d.ts +41 -0
- package/dist/m0saic/story/scrapbook/v1/document.js +124 -0
- package/dist/m0saic/story/scrapbook/v1/index.d.ts +1 -0
- package/dist/m0saic/story/scrapbook/v1/index.js +9 -0
- package/dist/m0saic/story/scrapbook/v1/page.d.ts +34 -0
- package/dist/m0saic/story/scrapbook/v1/page.js +121 -0
- package/dist/m0saic/story/scrapbook/v1/pages.d.ts +29 -0
- package/dist/m0saic/story/scrapbook/v1/pages.js +37 -0
- package/dist/m0saic/story/scrapbook/v1/pipeline.d.ts +44 -0
- package/dist/m0saic/story/scrapbook/v1/pipeline.js +130 -0
- package/dist/m0saic/story/scrapbook/v1/placeholder.d.ts +22 -0
- package/dist/m0saic/story/scrapbook/v1/placeholder.js +51 -0
- package/dist/m0saic/story/scrapbook/v1/props.d.ts +66 -0
- package/dist/m0saic/story/scrapbook/v1/props.js +80 -0
- package/dist/m0saic/story/scrapbook/v1/scrapbook.d.ts +23 -0
- package/dist/m0saic/story/scrapbook/v1/scrapbook.js +77 -0
- package/dist/m0saic/theming/index.d.ts +1 -0
- package/dist/m0saic/theming/index.js +17 -0
- package/dist/m0saic/theming/v1/brand-m-glyph.d.ts +14 -0
- package/dist/m0saic/theming/v1/brand-m-glyph.js +12 -0
- package/dist/m0saic/theming/v1/index.d.ts +2 -0
- package/dist/m0saic/theming/v1/index.js +16 -0
- package/dist/m0saic/theming/v1/theme-tokens.d.ts +71 -0
- package/dist/m0saic/theming/v1/theme-tokens.js +111 -0
- package/dist/m0saic/theming/v1/theming.d.ts +18 -0
- package/dist/m0saic/theming/v1/theming.js +94 -0
- package/dist/m0saic/theming/v1/token-sheet.d.ts +23 -0
- package/dist/m0saic/theming/v1/token-sheet.js +191 -0
- package/dist/m0saic/web/index.d.ts +1 -0
- package/dist/m0saic/web/index.js +17 -0
- package/dist/m0saic/web/page-skeleton/v1/capture/capture-snippet-source.d.ts +1 -0
- package/dist/m0saic/web/page-skeleton/v1/capture/capture-snippet-source.js +528 -0
- package/dist/m0saic/web/page-skeleton/v1/index.d.ts +1 -0
- package/dist/m0saic/web/page-skeleton/v1/index.js +5 -0
- package/dist/m0saic/web/page-skeleton/v1/layout.d.ts +107 -0
- package/dist/m0saic/web/page-skeleton/v1/layout.js +246 -0
- package/dist/m0saic/web/page-skeleton/v1/page-skeleton.d.ts +148 -0
- package/dist/m0saic/web/page-skeleton/v1/page-skeleton.js +787 -0
- package/dist/m0saic/web/page-skeleton/v1/sample-capture.d.ts +7 -0
- package/dist/m0saic/web/page-skeleton/v1/sample-capture.js +50 -0
- package/dist/m0saic/web/page-skeleton/v1/schema.d.ts +35 -0
- package/dist/m0saic/web/page-skeleton/v1/schema.js +132 -0
- package/dist/m0saic/wireframe/animated/v1/animated-wireframe.d.ts +93 -0
- package/dist/m0saic/wireframe/animated/v1/animated-wireframe.js +580 -0
- package/dist/m0saic/wireframe/animated/v1/index.d.ts +1 -0
- package/dist/m0saic/wireframe/animated/v1/index.js +5 -0
- package/dist/m0saic/wireframe/base/v1/index.d.ts +1 -0
- package/dist/m0saic/wireframe/base/v1/index.js +5 -0
- package/dist/m0saic/wireframe/base/v1/wireframe.d.ts +68 -0
- package/dist/m0saic/wireframe/base/v1/wireframe.js +372 -0
- package/dist/m0saic/wireframe/base/v2/index.d.ts +2 -0
- package/dist/m0saic/wireframe/base/v2/index.js +9 -0
- package/dist/m0saic/wireframe/base/v2/wireframe.d.ts +166 -0
- package/dist/m0saic/wireframe/base/v2/wireframe.js +1181 -0
- package/dist/m0saic/wireframe/index.d.ts +4 -0
- package/dist/m0saic/wireframe/index.js +16 -0
- package/dist/m0saic/wireframe/utils/paperGrid.d.ts +53 -0
- package/dist/m0saic/wireframe/utils/paperGrid.js +91 -0
- package/dist/m0saic/wireframe/utils/wireframeCell.d.ts +35 -0
- package/dist/m0saic/wireframe/utils/wireframeCell.js +278 -0
- package/dist/registry.d.ts +4 -0
- package/dist/registry.js +7 -0
- package/dist/repo.d.ts +11 -0
- package/dist/repo.js +39 -0
- package/dist/template-registry.d.ts +18 -0
- package/dist/template-registry.js +888 -0
- package/dist/web.d.ts +35 -0
- package/dist/web.js +88 -0
- package/dist/webTemplateIds.d.ts +6 -0
- package/dist/webTemplateIds.js +80 -0
- package/package.json +52 -0
- package/template-manifest.json +1635 -0
- package/web-template-ids.json +84 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Pure calendar arithmetic for the GitHub connector — ISO-8601 weeks and
|
|
4
|
+
* Monday-start week windows.
|
|
5
|
+
*
|
|
6
|
+
* DETERMINISM CONTRACT: every function here is a pure integer computation over
|
|
7
|
+
* `"YYYY-MM-DD"` strings — NO `Date` construction, NO wall-clock. This is what
|
|
8
|
+
* lets the core-tier `weekly-pulse-adapter` (and the beats) stay deterministic
|
|
9
|
+
* while still doing week math, and it extends the `parseISODate` idiom already
|
|
10
|
+
* in `hero/ffmpeg-pulse/_shared/pulse-data.ts`. Shared by: the client (window →
|
|
11
|
+
* since/until), the adapter (weekNumber, trailing-8 grid), and — later — the
|
|
12
|
+
* Jobs window tokens (F5 Phase 5), which import these instead of re-deriving.
|
|
13
|
+
*
|
|
14
|
+
* The engine (proleptic Gregorian) day-count is Howard Hinnant's
|
|
15
|
+
* `days_from_civil` / `civil_from_days` — exact for all in-range dates, integer
|
|
16
|
+
* throughout.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.parseISODate = parseISODate;
|
|
20
|
+
exports.formatISODate = formatISODate;
|
|
21
|
+
exports.daysFromCivil = daysFromCivil;
|
|
22
|
+
exports.civilFromDays = civilFromDays;
|
|
23
|
+
exports.addDaysISO = addDaysISO;
|
|
24
|
+
exports.isoDayOfWeek = isoDayOfWeek;
|
|
25
|
+
exports.mondayOfISO = mondayOfISO;
|
|
26
|
+
exports.isoWeekNumber = isoWeekNumber;
|
|
27
|
+
exports.lastFullWeek = lastFullWeek;
|
|
28
|
+
/** Parse `"YYYY-MM-DD"` (optionally with a trailing time) into integer parts. */
|
|
29
|
+
function parseISODate(iso) {
|
|
30
|
+
const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(iso);
|
|
31
|
+
if (!m)
|
|
32
|
+
throw new Error(`week-math: not an ISO date: ${JSON.stringify(iso)}`);
|
|
33
|
+
return { y: Number(m[1]), m: Number(m[2]), d: Number(m[3]) };
|
|
34
|
+
}
|
|
35
|
+
/** Format integer parts back to `"YYYY-MM-DD"` (zero-padded). */
|
|
36
|
+
function formatISODate({ y, m, d }) {
|
|
37
|
+
const p = (n, w) => String(n).padStart(w, "0");
|
|
38
|
+
return `${p(y, 4)}-${p(m, 2)}-${p(d, 2)}`;
|
|
39
|
+
}
|
|
40
|
+
/** Days since 1970-01-01 for a civil date. Pure integer (Hinnant). */
|
|
41
|
+
function daysFromCivil(y, m, d) {
|
|
42
|
+
const yy = y - (m <= 2 ? 1 : 0);
|
|
43
|
+
const era = Math.floor((yy >= 0 ? yy : yy - 399) / 400);
|
|
44
|
+
const yoe = yy - era * 400; // [0, 399]
|
|
45
|
+
const doy = Math.floor((153 * (m + (m > 2 ? -3 : 9)) + 2) / 5) + d - 1; // [0, 365]
|
|
46
|
+
const doe = yoe * 365 + Math.floor(yoe / 4) - Math.floor(yoe / 100) + doy; // [0, 146096]
|
|
47
|
+
return era * 146097 + doe - 719468;
|
|
48
|
+
}
|
|
49
|
+
/** Civil date from a 1970-epoch day-count. Inverse of {@link daysFromCivil}. */
|
|
50
|
+
function civilFromDays(z) {
|
|
51
|
+
const zz = z + 719468;
|
|
52
|
+
const era = Math.floor((zz >= 0 ? zz : zz - 146096) / 146097);
|
|
53
|
+
const doe = zz - era * 146097; // [0, 146096]
|
|
54
|
+
const yoe = Math.floor((doe - Math.floor(doe / 1460) + Math.floor(doe / 36524) - Math.floor(doe / 146096)) / 365); // [0, 399]
|
|
55
|
+
const y = yoe + era * 400;
|
|
56
|
+
const doy = doe - (365 * yoe + Math.floor(yoe / 4) - Math.floor(yoe / 100)); // [0, 365]
|
|
57
|
+
const mp = Math.floor((5 * doy + 2) / 153); // [0, 11]
|
|
58
|
+
const d = doy - Math.floor((153 * mp + 2) / 5) + 1; // [1, 31]
|
|
59
|
+
const m = mp + (mp < 10 ? 3 : -9); // [1, 12]
|
|
60
|
+
return { y: y + (m <= 2 ? 1 : 0), m, d };
|
|
61
|
+
}
|
|
62
|
+
const dayCount = (iso) => { const { y, m, d } = parseISODate(iso); return daysFromCivil(y, m, d); };
|
|
63
|
+
/** Add `n` days (may be negative) to an ISO date, returning a new ISO date. */
|
|
64
|
+
function addDaysISO(iso, n) {
|
|
65
|
+
return formatISODate(civilFromDays(dayCount(iso) + n));
|
|
66
|
+
}
|
|
67
|
+
/** ISO day-of-week: 0 = Monday … 6 = Sunday. */
|
|
68
|
+
function isoDayOfWeek(iso) {
|
|
69
|
+
// 1970-01-01 (day 0) is a Thursday → Sunday-indexed weekday = (z + 4) mod 7.
|
|
70
|
+
const sun = (((dayCount(iso) + 4) % 7) + 7) % 7; // 0 = Sunday
|
|
71
|
+
return (sun + 6) % 7; // 0 = Monday
|
|
72
|
+
}
|
|
73
|
+
/** The Monday (`"YYYY-MM-DD"`) of the ISO week containing `iso`. */
|
|
74
|
+
function mondayOfISO(iso) {
|
|
75
|
+
return addDaysISO(iso, -isoDayOfWeek(iso));
|
|
76
|
+
}
|
|
77
|
+
/** ISO-8601 week number (1–53) of the week containing `iso`. */
|
|
78
|
+
function isoWeekNumber(iso) {
|
|
79
|
+
const z = dayCount(iso);
|
|
80
|
+
const thursday = z - isoDayOfWeek(iso) + 3; // Thursday fixes the ISO week-year
|
|
81
|
+
const { y } = civilFromDays(thursday);
|
|
82
|
+
const jan1 = daysFromCivil(y, 1, 1);
|
|
83
|
+
return Math.floor((thursday - jan1) / 7) + 1;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The most recent COMPLETE Monday..Sunday week STRICTLY before `todayISO`.
|
|
87
|
+
*
|
|
88
|
+
* The week containing `todayISO` is never complete before its own Sunday
|
|
89
|
+
* elapses, so the last guaranteed-complete week is always the one before it —
|
|
90
|
+
* `[thisMonday - 7d, thisMonday - 1d]` — regardless of which weekday `today` is.
|
|
91
|
+
* This is the window the Jobs `{{lastFullWeek*}}` tokens resolve to (F5 P5).
|
|
92
|
+
*/
|
|
93
|
+
function lastFullWeek(todayISO) {
|
|
94
|
+
const thisMonday = mondayOfISO(todayISO);
|
|
95
|
+
return { startISO: addDaysISO(thisMonday, -7), endISO: addDaysISO(thisMonday, -1) };
|
|
96
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./v1/weekly-pulse";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./v1/weekly-pulse"), exports);
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { MosaicTemplate } from "@m0saic/types";
|
|
2
|
+
import type { GithubRepoFacts } from "../../repo-facts-fetcher/v1/facts";
|
|
3
|
+
/**
|
|
4
|
+
* `@m0saic/github/weekly-pulse/v1` — the ONE self-contained, app-runnable Weekly
|
|
5
|
+
* Pulse. Capability-tier: it fetches a repo's week itself from prop input (repo +
|
|
6
|
+
* window + token), derives the WeeklyPulse sheet, and renders all 8 beats — no
|
|
7
|
+
* `.mosaicx` pipeline, no upstream wiring. The app counterpart to the fetcher →
|
|
8
|
+
* adapter → runner chain the Jobs cron uses.
|
|
9
|
+
*
|
|
10
|
+
* NETWORK DISCIPLINE (renderLite): editor previews / prop changes call
|
|
11
|
+
* `renderLite`, which does NOT fetch — it shows a friendly "ready" card so
|
|
12
|
+
* tweaking props never hammers the API. The live fetch happens only on an
|
|
13
|
+
* explicit Make (`render`). Power users can set `livePreview:true` to fetch on
|
|
14
|
+
* every preview and geometrically inspect the real data — an intentional opt-in.
|
|
15
|
+
*
|
|
16
|
+
* WINDOW: live mode defaults to the last COMPLETE Mon..Sun week (UTC, computed
|
|
17
|
+
* at render time — this capability template is inherently non-deterministic, so
|
|
18
|
+
* it reads the clock; core templates never do). Set `window` to pin a week. The
|
|
19
|
+
* fully deterministic path is the cron `.mosaicx` (`{{lastFullWeek*}}` tokens).
|
|
20
|
+
*/
|
|
21
|
+
export type GithubWeeklyPulseProps = {
|
|
22
|
+
/** `replay` (embedded sample, no network — default) or `live` (fetch `repo`). */
|
|
23
|
+
source?: "replay" | "live";
|
|
24
|
+
/** Replay payload. Default: the embedded sample. */
|
|
25
|
+
facts?: GithubRepoFacts;
|
|
26
|
+
/** `owner/name` (live). */
|
|
27
|
+
repo?: string;
|
|
28
|
+
/** UTC Monday..Sunday inclusive (live). Omit → the last complete week. */
|
|
29
|
+
window?: {
|
|
30
|
+
startISO: string;
|
|
31
|
+
endISO: string;
|
|
32
|
+
};
|
|
33
|
+
/** Connection id for the base URL + keychain token (live). */
|
|
34
|
+
connectionId?: string;
|
|
35
|
+
/** Explicit SecretRef escape hatch (e.g. `env:GITHUB_TOKEN`); falls through to the connection when unresolvable. */
|
|
36
|
+
tokenRef?: string;
|
|
37
|
+
commitDetails?: "auto" | "full" | "none";
|
|
38
|
+
maxCommits?: number;
|
|
39
|
+
callBudget?: number;
|
|
40
|
+
/** Power-user opt-in: fetch + render real data on EVERY editor preview (not just Make). Off by default. */
|
|
41
|
+
livePreview?: boolean;
|
|
42
|
+
kpiKeys?: string[];
|
|
43
|
+
notableCount?: number;
|
|
44
|
+
areaDepth?: number;
|
|
45
|
+
topContributors?: number;
|
|
46
|
+
timings?: Record<string, number>;
|
|
47
|
+
crossfadeMs?: number;
|
|
48
|
+
renderMode?: "premium" | "light";
|
|
49
|
+
};
|
|
50
|
+
export declare const GithubWeeklyPulse: MosaicTemplate<GithubWeeklyPulseProps>;
|
|
51
|
+
export default GithubWeeklyPulse;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GithubWeeklyPulse = void 0;
|
|
4
|
+
const types_1 = require("@m0saic/types");
|
|
5
|
+
const dsl_stdlib_1 = require("@m0saic/dsl-stdlib");
|
|
6
|
+
const template_utils_1 = require("@m0saic/template-utils");
|
|
7
|
+
const client_1 = require("../../client");
|
|
8
|
+
const week_math_1 = require("../../week-math");
|
|
9
|
+
const build_facts_1 = require("../../repo-facts-fetcher/v1/build-facts");
|
|
10
|
+
const repo_facts_fetcher_1 = require("../../repo-facts-fetcher/v1/repo-facts-fetcher");
|
|
11
|
+
const sample_facts_1 = require("../../repo-facts-fetcher/v1/sample-facts");
|
|
12
|
+
const derive_pulse_1 = require("../../weekly-pulse-adapter/v1/derive-pulse");
|
|
13
|
+
const runner_1 = require("../../../hero/ffmpeg-pulse/runner/v1/runner");
|
|
14
|
+
const connection_1 = require("../../connection");
|
|
15
|
+
const propsSchema = (0, template_utils_1.definePropsSchema)({
|
|
16
|
+
source: { type: "string", required: false, description: "replay = embedded sample, no network (default); live = fetch `repo` over `window`.", meta: { constraints: { oneOf: ["replay", "live"] }, ui: { label: "Source", order: 1 } } },
|
|
17
|
+
facts: { type: "json", required: false, description: "Replay payload (a GithubRepoFacts sheet). Defaults to the embedded sample.", meta: { ui: { label: "Facts (replay)", order: 2, consumer: "agent" } } },
|
|
18
|
+
repo: { type: "string", required: false, description: 'Repository "owner/name" (live).', meta: { ui: { label: "Repository", order: 3 } } },
|
|
19
|
+
window: { type: "json", required: false, description: "UTC { startISO, endISO } — Monday..Sunday. Omit → the last complete week (live).", meta: { ui: { label: "Window", order: 4, consumer: "agent" } } },
|
|
20
|
+
connectionId: { type: "string", required: false, description: "Host connection id for the base URL + keychain token (live).", meta: { ui: { label: "Connection", order: 5 } } },
|
|
21
|
+
tokenRef: { type: "string", required: false, description: "Explicit SecretRef (e.g. env:GITHUB_TOKEN). Falls through to the connection token when unresolvable.", meta: { ui: { label: "Token ref", order: 6 } } },
|
|
22
|
+
commitDetails: { type: "string", required: false, description: "auto (full when authenticated, none anonymous), full, or none.", meta: { constraints: { oneOf: ["auto", "full", "none"] }, ui: { label: "Commit details", order: 7 } } },
|
|
23
|
+
maxCommits: { type: "number", required: false, description: "Per-window commit cap.", meta: { constraints: { min: 1, max: 5000 }, ui: { label: "Max commits", order: 8 } } },
|
|
24
|
+
callBudget: { type: "number", required: false, description: "Hard cap on API calls per render.", meta: { constraints: { min: 1, max: 5000 }, ui: { label: "Call budget", order: 9 } } },
|
|
25
|
+
livePreview: { type: "boolean", required: false, description: "Fetch + render real data on every editor preview (not just Make). Off by default so prop changes don't hammer the API.", meta: { ui: { label: "Live preview (fetch on preview)", order: 10 } } },
|
|
26
|
+
kpiKeys: { type: "string[]", required: false, description: "Override the adaptive KPI selection (ordered keys).", meta: { ui: { label: "KPI keys", order: 11, consumer: "agent" } } },
|
|
27
|
+
notableCount: { type: "number", required: false, description: "Notable-commit feed length.", meta: { constraints: { min: 1, max: 12 }, ui: { label: "Notable count", order: 12 } } },
|
|
28
|
+
areaDepth: { type: "number", required: false, description: "Path segments defining a changed area.", meta: { constraints: { min: 1, max: 4 }, ui: { label: "Area depth", order: 13 } } },
|
|
29
|
+
topContributors: { type: "number", required: false, description: "Top-N contributors.", meta: { constraints: { min: 1, max: 12 }, ui: { label: "Top contributors", order: 14 } } },
|
|
30
|
+
timings: { type: "group", required: false, description: "Per-beat durations in ms.", meta: { ui: { label: "Beat timings", collapsedByDefault: true, consumer: "agent" } } },
|
|
31
|
+
crossfadeMs: { type: "number", required: false, description: "Cross-fade between beats (ms). 0 = hard cut.", meta: { constraints: { min: 0, max: 2000 }, ui: { label: "Cross-fade" } } },
|
|
32
|
+
renderMode: { type: "string", required: false, description: '"premium" (default) alpha-fade reveals; "light" geq-free pops.', meta: { constraints: { oneOf: ["light", "premium"] }, ui: { label: "Render mode" } } },
|
|
33
|
+
});
|
|
34
|
+
/** Live window: the explicit prop, else the last complete Mon..Sun week (UTC).
|
|
35
|
+
* Capability-tier + inherently non-deterministic, so it reads the clock here. */
|
|
36
|
+
function effectiveWindow(props) {
|
|
37
|
+
var _a;
|
|
38
|
+
return (_a = props.window) !== null && _a !== void 0 ? _a : (0, week_math_1.lastFullWeek)(new Date().toISOString().slice(0, 10));
|
|
39
|
+
}
|
|
40
|
+
/** The full fetch/replay → derive → render, shared by `render` (Make) and
|
|
41
|
+
* `renderLite` when the user opted into a live preview. */
|
|
42
|
+
async function renderPulse(props, ctx) {
|
|
43
|
+
var _a, _b, _c, _d, _e, _f;
|
|
44
|
+
const source = (_a = props.source) !== null && _a !== void 0 ? _a : "replay";
|
|
45
|
+
if (source !== "replay" && source !== "live") {
|
|
46
|
+
throw new Error(`github/weekly-pulse: source must be "replay" or "live", got ${JSON.stringify(source)}.`);
|
|
47
|
+
}
|
|
48
|
+
let facts;
|
|
49
|
+
if (source === "replay") {
|
|
50
|
+
const f = (_b = props.facts) !== null && _b !== void 0 ? _b : sample_facts_1.SAMPLE_FACTS;
|
|
51
|
+
if (f === null || typeof f !== "object" || Array.isArray(f)) {
|
|
52
|
+
throw new Error("github/weekly-pulse: replay `facts` must be a GithubRepoFacts object.");
|
|
53
|
+
}
|
|
54
|
+
facts = f;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const repo = (_c = props.repo) !== null && _c !== void 0 ? _c : "FFmpeg/FFmpeg";
|
|
58
|
+
if (!/^[^/\s]+\/[^/\s]+$/.test(repo)) {
|
|
59
|
+
throw new Error(`github/weekly-pulse: repo must be "owner/name", got ${JSON.stringify(repo)}.`);
|
|
60
|
+
}
|
|
61
|
+
const window = effectiveWindow(props);
|
|
62
|
+
const commitDetails = (_d = props.commitDetails) !== null && _d !== void 0 ? _d : "auto";
|
|
63
|
+
const maxCommits = (_e = props.maxCommits) !== null && _e !== void 0 ? _e : 500;
|
|
64
|
+
const callBudget = (_f = props.callBudget) !== null && _f !== void 0 ? _f : 300;
|
|
65
|
+
try {
|
|
66
|
+
const { token, baseUrl } = await (0, repo_facts_fetcher_1.resolveGithubAccess)({ tokenRef: props.tokenRef, connectionId: props.connectionId }, ctx);
|
|
67
|
+
const client = new client_1.GithubClient({ baseUrl, token, callBudget });
|
|
68
|
+
facts = await (0, build_facts_1.buildRepoFacts)(client, { repo, window, commitDetails, maxCommits });
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
return (0, template_utils_1.makeErrorMosaic)(`GitHub Weekly Pulse: fetch failed for ${repo} (${window.startISO}..${window.endISO}): ${e instanceof Error ? e.message : String(e)}`, { width: Math.max(1, Math.round(ctx.target.width)), height: Math.max(1, Math.round(ctx.target.height)), title: "GitHub Weekly Pulse", errorCode: "GITHUB_FETCH_FAILED", backgroundColor: "#000000" });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const pulse = (0, derive_pulse_1.deriveWeeklyPulse)(facts, {
|
|
75
|
+
kpiKeys: props.kpiKeys,
|
|
76
|
+
notableCount: props.notableCount,
|
|
77
|
+
areaDepth: props.areaDepth,
|
|
78
|
+
topContributors: props.topContributors,
|
|
79
|
+
});
|
|
80
|
+
return (0, runner_1.buildPulsePipeline)(pulse, { timings: props.timings, crossfadeMs: props.crossfadeMs, renderMode: props.renderMode }, ctx);
|
|
81
|
+
}
|
|
82
|
+
/** The network-free "ready" card shown on editor previews (renderLite). Themed,
|
|
83
|
+
* friendly, and honest about what a Make will do — NO fetch, NO side effects. */
|
|
84
|
+
function readyCard(props, ctx) {
|
|
85
|
+
var _a, _b;
|
|
86
|
+
const W = Math.max(1, Math.round(ctx.target.width));
|
|
87
|
+
const source = (_a = props.source) !== null && _a !== void 0 ? _a : "replay";
|
|
88
|
+
const repo = (_b = props.repo) !== null && _b !== void 0 ? _b : "FFmpeg/FFmpeg";
|
|
89
|
+
const ew = effectiveWindow(props);
|
|
90
|
+
const win = props.window ? `${ew.startISO} - ${ew.endISO}` : `${ew.startISO} - ${ew.endISO} (auto)`;
|
|
91
|
+
const body = source === "live"
|
|
92
|
+
? [`Live - fetches ${repo} on render`, `Window: ${win}`, "Press Render to build the full pulse.", "Set livePreview to fetch + preview real data here."]
|
|
93
|
+
: ["Replay - the embedded sample", "Press Render to build the full pulse.", "Switch source to 'live' + set a repo to fetch real data."];
|
|
94
|
+
const titleFont = Math.max(18, Math.min(52, Math.round(W / 20)));
|
|
95
|
+
const bodyFont = Math.max(12, Math.min(24, Math.round(W / 44)));
|
|
96
|
+
const layers = [
|
|
97
|
+
{ content: { kind: "literal", text: "GITHUB WEEKLY PULSE" }, style: { fontSize: titleFont, fontColor: "#2ea043" }, placement: { hAlign: "left", vAlign: "top", xExpr: "w*0.07", yExpr: "h*0.16" } },
|
|
98
|
+
{ content: { kind: "literal", text: "ready" }, style: { fontSize: bodyFont, fontColor: "#8b949e" }, placement: { hAlign: "left", vAlign: "top", xExpr: "w*0.07", yExpr: "h*0.30" } },
|
|
99
|
+
...body.map((text, i) => ({
|
|
100
|
+
content: { kind: "literal", text },
|
|
101
|
+
style: { fontSize: bodyFont, fontColor: "#c9d1d9" },
|
|
102
|
+
placement: { hAlign: "left", vAlign: "top", xExpr: "w*0.07", yExpr: `h*${(0.44 + i * 0.11).toFixed(2)}` },
|
|
103
|
+
})),
|
|
104
|
+
];
|
|
105
|
+
return {
|
|
106
|
+
kind: "mosaic_document",
|
|
107
|
+
version: 1,
|
|
108
|
+
m0: (0, dsl_stdlib_1.toM0String)("F", "weeklyPulseReady"),
|
|
109
|
+
assets: {},
|
|
110
|
+
sources: [{ type: "text", visual: { backgroundColor: "#0d1117" }, layers }],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Plain-object template (like the pulse runner): it returns a duration-follows-
|
|
114
|
+
// timings pipeline, so it opts out of defineMosaicTemplate's fixed-duration
|
|
115
|
+
// timing assertion. Capability-tier — the host threads secrets/connections onto
|
|
116
|
+
// ctx, which renderPulse passes straight to resolveGithubAccess.
|
|
117
|
+
exports.GithubWeeklyPulse = {
|
|
118
|
+
id: (0, types_1.asTemplateId)("@m0saic/github/weekly-pulse/v1"),
|
|
119
|
+
label: "GitHub Weekly Pulse",
|
|
120
|
+
version: 1,
|
|
121
|
+
description: "Self-contained, app-runnable Weekly Pulse: fetches a GitHub repo's week from prop input (repo + window + token), derives the pulse sheet, and renders all 8 beats — one capability-tier template, no pipeline wiring. Replay mode (default) is network-free; live mode fetches over the GitHub REST API and degrades to an error frame on failure. Editor previews use a network-free renderLite card.",
|
|
122
|
+
capabilities: { tier: "capability", caps: { net: { fetch: true } } },
|
|
123
|
+
tags: ["data-viz", "github", "ffmpeg-pulse", "pulse", "live", "animated", "developers", "analysts", "weekly", "report"],
|
|
124
|
+
outputHints: { format: { kind: "video", container: "mp4" }, width: 1920, height: 1080, fps: 30, durationMs: 38000, note: "The full 8-beat weekly pulse. Live mode fetches GitHub; replay uses the embedded sample; previews show a renderLite card." },
|
|
125
|
+
propsSchema,
|
|
126
|
+
defaultProps: {
|
|
127
|
+
source: "replay",
|
|
128
|
+
facts: sample_facts_1.SAMPLE_FACTS,
|
|
129
|
+
repo: "FFmpeg/FFmpeg",
|
|
130
|
+
connectionId: String(connection_1.GITHUB_CONNECTION_ID),
|
|
131
|
+
tokenRef: "",
|
|
132
|
+
commitDetails: "auto",
|
|
133
|
+
maxCommits: 500,
|
|
134
|
+
callBudget: 300,
|
|
135
|
+
livePreview: false,
|
|
136
|
+
notableCount: 5,
|
|
137
|
+
areaDepth: 1,
|
|
138
|
+
topContributors: 5,
|
|
139
|
+
crossfadeMs: 350,
|
|
140
|
+
renderMode: "premium",
|
|
141
|
+
},
|
|
142
|
+
async render(props, ctx) {
|
|
143
|
+
return renderPulse(props, ctx);
|
|
144
|
+
},
|
|
145
|
+
/** Preview / design hot path — NO network unless the user opted into livePreview. */
|
|
146
|
+
async renderLite(props, ctx) {
|
|
147
|
+
if (props.livePreview)
|
|
148
|
+
return renderPulse(props, ctx); // power-user opt-in: fetch + preview real data
|
|
149
|
+
return readyCard(props, ctx);
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
(0, template_utils_1.registerTemplate)(exports.GithubWeeklyPulse);
|
|
153
|
+
exports.default = exports.GithubWeeklyPulse;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./v1/weekly-pulse-adapter"), exports);
|
|
18
|
+
__exportStar(require("./v1/derive-pulse"), exports);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `deriveWeeklyPulse` — the PURE core of the weekly-pulse-adapter (F5 Seam C).
|
|
3
|
+
*
|
|
4
|
+
* A deterministic function of `GithubRepoFacts` + preview props → a `WeeklyPulse`
|
|
5
|
+
* sheet. NO clock, NO network, NO randomness. Every derivation below is the
|
|
6
|
+
* determinism contract; the adapter's snapshot tests lock the exact output.
|
|
7
|
+
*
|
|
8
|
+
* Coverage-aware by design: a mirror repo (no PR/issue KPIs) or an anonymous
|
|
9
|
+
* fetch (`commitDetails:"none"` → commit-basis donut, 0 additions/deletions)
|
|
10
|
+
* degrades honestly — the basis is labeled, never faked.
|
|
11
|
+
*/
|
|
12
|
+
import type { WeeklyPulse } from "../../../hero/ffmpeg-pulse/_shared/pulse-data";
|
|
13
|
+
import type { GithubRepoFacts } from "../../repo-facts-fetcher/v1/facts";
|
|
14
|
+
export type DeriveWeeklyPulseProps = {
|
|
15
|
+
/** Override the adaptive KPI selection (ordered keys). */
|
|
16
|
+
kpiKeys?: string[];
|
|
17
|
+
/** Number of notable commits (default 5). */
|
|
18
|
+
notableCount?: number;
|
|
19
|
+
/** Path segments that define a "changed area" (default 1). */
|
|
20
|
+
areaDepth?: number;
|
|
21
|
+
/** Top-N contributors (default 5). */
|
|
22
|
+
topContributors?: number;
|
|
23
|
+
};
|
|
24
|
+
export declare function deriveWeeklyPulse(facts: GithubRepoFacts, props?: DeriveWeeklyPulseProps): WeeklyPulse;
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `deriveWeeklyPulse` — the PURE core of the weekly-pulse-adapter (F5 Seam C).
|
|
4
|
+
*
|
|
5
|
+
* A deterministic function of `GithubRepoFacts` + preview props → a `WeeklyPulse`
|
|
6
|
+
* sheet. NO clock, NO network, NO randomness. Every derivation below is the
|
|
7
|
+
* determinism contract; the adapter's snapshot tests lock the exact output.
|
|
8
|
+
*
|
|
9
|
+
* Coverage-aware by design: a mirror repo (no PR/issue KPIs) or an anonymous
|
|
10
|
+
* fetch (`commitDetails:"none"` → commit-basis donut, 0 additions/deletions)
|
|
11
|
+
* degrades honestly — the basis is labeled, never faked.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.deriveWeeklyPulse = deriveWeeklyPulse;
|
|
15
|
+
const pulse_data_1 = require("../../../hero/ffmpeg-pulse/_shared/pulse-data");
|
|
16
|
+
const week_math_1 = require("../../week-math");
|
|
17
|
+
const DAY_LABELS = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
|
|
18
|
+
/** Notable-commit keyword table — case-insensitive, FIRST match wins; both
|
|
19
|
+
* classifies `kind` and sets `signal` + a score boost (F5 Seam C). */
|
|
20
|
+
const KEYWORD_RULES = [
|
|
21
|
+
{ re: /security|cve|overflow/i, kind: "fix", signal: "warn", boost: 6 },
|
|
22
|
+
{ re: /revert|regression/i, kind: "fix", signal: "warn", boost: 4 },
|
|
23
|
+
{ re: /fix|leak|crash/i, kind: "fix", signal: "win", boost: 2 },
|
|
24
|
+
{ re: /\b(add|support|new|implement)/i, kind: "feat", signal: "neutral", boost: 2 },
|
|
25
|
+
{ re: /faster|optimi|simd|speed/i, kind: "perf", signal: "win", boost: 3 },
|
|
26
|
+
{ re: /docs?\b/i, kind: "docs", signal: "neutral", boost: 0 },
|
|
27
|
+
{ re: /test|fate/i, kind: "test", signal: "neutral", boost: 0 },
|
|
28
|
+
];
|
|
29
|
+
function classify(headline) {
|
|
30
|
+
for (const r of KEYWORD_RULES)
|
|
31
|
+
if (r.re.test(headline))
|
|
32
|
+
return r;
|
|
33
|
+
return { kind: "chore", signal: "neutral", boost: 0 };
|
|
34
|
+
}
|
|
35
|
+
/** `area: description` prefix of a commit subject, capped to `areaDepth` segments. */
|
|
36
|
+
function messagePrefix(headline, areaDepth) {
|
|
37
|
+
const m = /^([\w/,.-]+):/.exec(headline);
|
|
38
|
+
return m ? m[1].split("/").slice(0, areaDepth).join("/") : undefined;
|
|
39
|
+
}
|
|
40
|
+
/** The dominant changed directory of a commit (fallback: message prefix). */
|
|
41
|
+
function topChangedDir(commit, areaDepth) {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
const counts = new Map();
|
|
44
|
+
for (const f of (_a = commit.files) !== null && _a !== void 0 ? _a : []) {
|
|
45
|
+
const seg = f.path.split("/").slice(0, areaDepth).join("/");
|
|
46
|
+
counts.set(seg, ((_b = counts.get(seg)) !== null && _b !== void 0 ? _b : 0) + 1);
|
|
47
|
+
}
|
|
48
|
+
if (counts.size) {
|
|
49
|
+
return [...counts.entries()].sort((a, b) => b[1] - a[1] || (a[0] < b[0] ? -1 : 1))[0][0];
|
|
50
|
+
}
|
|
51
|
+
return messagePrefix(commit.headline, areaDepth);
|
|
52
|
+
}
|
|
53
|
+
/** Top-6 areas + an aggregated `other`, colored from the shared PULSE_AREA ramp. */
|
|
54
|
+
function buildByArea(areas) {
|
|
55
|
+
const out = areas.slice(0, 6).map((a, i) => ({ area: a.area, files: a.files, color: (0, pulse_data_1.PULSE_AREA)(i) }));
|
|
56
|
+
const otherFiles = areas.slice(6).reduce((s, a) => s + a.files, 0);
|
|
57
|
+
if (otherFiles > 0)
|
|
58
|
+
out.push({ area: "other", files: otherFiles, color: (0, pulse_data_1.PULSE_AREA)(5) });
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
/** direction (from the sign) + deltaPct (omitted when the base is 0 / unknown). */
|
|
62
|
+
function deltaFields(cur, prev) {
|
|
63
|
+
if (cur === undefined || prev === undefined)
|
|
64
|
+
return {};
|
|
65
|
+
const diff = cur - prev;
|
|
66
|
+
const out = { direction: diff > 0 ? "up" : diff < 0 ? "down" : "flat" };
|
|
67
|
+
if (prev !== 0)
|
|
68
|
+
out.deltaPct = Math.round((diff / prev) * 1000) / 10;
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
function deriveWeeklyPulse(facts, props = {}) {
|
|
72
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
73
|
+
const areaDepth = Math.max(1, Math.floor((_a = props.areaDepth) !== null && _a !== void 0 ? _a : 1));
|
|
74
|
+
const notableCount = Math.max(1, Math.floor((_b = props.notableCount) !== null && _b !== void 0 ? _b : 5));
|
|
75
|
+
const topContributors = Math.max(1, Math.floor((_c = props.topContributors) !== null && _c !== void 0 ? _c : 5));
|
|
76
|
+
const cov = facts.coverage;
|
|
77
|
+
const hasDetails = cov.commitDetails === "full";
|
|
78
|
+
const windowCommits = facts.commits;
|
|
79
|
+
const windowMonday = (0, week_math_1.mondayOfISO)(facts.window.startISO);
|
|
80
|
+
const prevMonday = (0, week_math_1.addDaysISO)(windowMonday, -7);
|
|
81
|
+
const haveTrailing = facts.trailing8WeekCommitsLite.length > 0;
|
|
82
|
+
// ── period ─────────────────────────────────────────────────────
|
|
83
|
+
const period = { weekNumber: (0, week_math_1.isoWeekNumber)(facts.window.startISO), startISO: facts.window.startISO, endISO: facts.window.endISO };
|
|
84
|
+
// ── activity.days + peak (committer-date bucketed, Mon..Sun) ────
|
|
85
|
+
const dayCounts = [0, 0, 0, 0, 0, 0, 0];
|
|
86
|
+
for (const c of windowCommits)
|
|
87
|
+
dayCounts[(0, week_math_1.isoDayOfWeek)(c.committedISO)]++;
|
|
88
|
+
const days = DAY_LABELS.map((label, i) => ({ label, commits: dayCounts[i] }));
|
|
89
|
+
let peakIdx = 0;
|
|
90
|
+
for (let i = 1; i < 7; i++)
|
|
91
|
+
if (dayCounts[i] > dayCounts[peakIdx])
|
|
92
|
+
peakIdx = i; // tie → earliest
|
|
93
|
+
const peakDateISO = (0, week_math_1.addDaysISO)(windowMonday, peakIdx);
|
|
94
|
+
const peak = { dayLabel: DAY_LABELS[peakIdx], dateISO: peakDateISO, commits: dayCounts[peakIdx] };
|
|
95
|
+
// ── activity.grid (trailing 8 Mon-weeks, entirely from the lite list) ──
|
|
96
|
+
const weekStarts = [];
|
|
97
|
+
for (let w = 7; w >= 0; w--)
|
|
98
|
+
weekStarts.push((0, week_math_1.addDaysISO)(windowMonday, -7 * w));
|
|
99
|
+
const gridCounts = DAY_LABELS.map(() => weekStarts.map(() => 0));
|
|
100
|
+
for (const c of facts.trailing8WeekCommitsLite) {
|
|
101
|
+
const col = weekStarts.indexOf((0, week_math_1.mondayOfISO)(c.committedISO));
|
|
102
|
+
if (col >= 0)
|
|
103
|
+
gridCounts[(0, week_math_1.isoDayOfWeek)(c.committedISO)][col]++;
|
|
104
|
+
}
|
|
105
|
+
const grid = {
|
|
106
|
+
weekLabels: weekStarts.map((ws) => "W" + (0, week_math_1.isoWeekNumber)(ws)),
|
|
107
|
+
rows: DAY_LABELS.map((label, r) => ({ label, values: gridCounts[r] })),
|
|
108
|
+
};
|
|
109
|
+
// ── contributors (window commits grouped by login ?? name) ─────
|
|
110
|
+
const groups = new Map();
|
|
111
|
+
for (const c of windowCommits) {
|
|
112
|
+
const key = (_d = c.authorLogin) !== null && _d !== void 0 ? _d : c.authorName;
|
|
113
|
+
let g = groups.get(key);
|
|
114
|
+
if (!g) {
|
|
115
|
+
g = { login: (_e = c.authorLogin) !== null && _e !== void 0 ? _e : "", name: c.authorName, avatarUrl: c.avatarUrl, commits: 0, additions: 0, deletions: 0 };
|
|
116
|
+
groups.set(key, g);
|
|
117
|
+
}
|
|
118
|
+
g.commits++;
|
|
119
|
+
if (hasDetails) {
|
|
120
|
+
g.additions += (_f = c.additions) !== null && _f !== void 0 ? _f : 0;
|
|
121
|
+
g.deletions += (_g = c.deletions) !== null && _g !== void 0 ? _g : 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const contribRows = [...groups.entries()]
|
|
125
|
+
.map(([key, g]) => ({ key, g }))
|
|
126
|
+
.sort((a, b) => b.g.commits - a.g.commits || b.g.additions - a.g.additions || (a.key < b.key ? -1 : 1))
|
|
127
|
+
.slice(0, topContributors)
|
|
128
|
+
.map(({ g }, i) => ({ rank: i + 1, login: g.login, name: g.name, ...(g.avatarUrl ? { avatarUrl: g.avatarUrl } : {}), commits: g.commits, additions: g.additions, deletions: g.deletions }));
|
|
129
|
+
const contributorsThis = groups.size;
|
|
130
|
+
const prevAuthors = new Set();
|
|
131
|
+
let prevWeekCommits = 0;
|
|
132
|
+
for (const c of facts.trailing8WeekCommitsLite) {
|
|
133
|
+
if ((0, week_math_1.mondayOfISO)(c.committedISO) === prevMonday) {
|
|
134
|
+
prevWeekCommits++;
|
|
135
|
+
prevAuthors.add((_h = c.authorLogin) !== null && _h !== void 0 ? _h : c.authorName);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const prevCommitsArg = haveTrailing ? prevWeekCommits : undefined;
|
|
139
|
+
const prevContribArg = haveTrailing ? prevAuthors.size : undefined;
|
|
140
|
+
// ── scalar aggregates ──────────────────────────────────────────
|
|
141
|
+
const totalCommits = windowCommits.length;
|
|
142
|
+
const sumAdds = hasDetails ? windowCommits.reduce((s, c) => { var _a; return s + ((_a = c.additions) !== null && _a !== void 0 ? _a : 0); }, 0) : undefined;
|
|
143
|
+
const sumDels = hasDetails ? windowCommits.reduce((s, c) => { var _a; return s + ((_a = c.deletions) !== null && _a !== void 0 ? _a : 0); }, 0) : undefined;
|
|
144
|
+
const wcf = facts.weeklyCodeFrequency;
|
|
145
|
+
const cfCur = wcf && wcf.length ? wcf[wcf.length - 1] : undefined;
|
|
146
|
+
const cfPrev = wcf && wcf.length >= 2 ? wcf[wcf.length - 2] : undefined;
|
|
147
|
+
// ── changes (full = distinct changed paths by area; degraded = message-prefix commit counts) ──
|
|
148
|
+
let totalFiles;
|
|
149
|
+
let byArea;
|
|
150
|
+
if (hasDetails) {
|
|
151
|
+
const distinct = new Set();
|
|
152
|
+
const areaSets = new Map();
|
|
153
|
+
for (const c of windowCommits)
|
|
154
|
+
for (const f of (_j = c.files) !== null && _j !== void 0 ? _j : []) {
|
|
155
|
+
distinct.add(f.path);
|
|
156
|
+
const seg = f.path.split("/").slice(0, areaDepth).join("/");
|
|
157
|
+
let set = areaSets.get(seg);
|
|
158
|
+
if (!set) {
|
|
159
|
+
set = new Set();
|
|
160
|
+
areaSets.set(seg, set);
|
|
161
|
+
}
|
|
162
|
+
set.add(f.path);
|
|
163
|
+
}
|
|
164
|
+
totalFiles = distinct.size;
|
|
165
|
+
byArea = buildByArea([...areaSets.entries()].map(([area, set]) => ({ area, files: set.size })).sort((a, b) => b.files - a.files || (a.area < b.area ? -1 : 1)));
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
const areaCounts = new Map();
|
|
169
|
+
for (const c of windowCommits) {
|
|
170
|
+
const seg = (_k = messagePrefix(c.headline, areaDepth)) !== null && _k !== void 0 ? _k : "other";
|
|
171
|
+
areaCounts.set(seg, ((_l = areaCounts.get(seg)) !== null && _l !== void 0 ? _l : 0) + 1);
|
|
172
|
+
}
|
|
173
|
+
totalFiles = windowCommits.length; // basis = commits, not files (labeled in the rail)
|
|
174
|
+
byArea = buildByArea([...areaCounts.entries()].map(([area, files]) => ({ area, files })).sort((a, b) => b.files - a.files || (a.area < b.area ? -1 : 1)));
|
|
175
|
+
}
|
|
176
|
+
// ── KPI pool (each entry present only when its inputs exist) ────
|
|
177
|
+
const pool = {};
|
|
178
|
+
const addKpi = (k) => { pool[k.key] = k; };
|
|
179
|
+
addKpi({ key: "commits", label: "Commits", value: totalCommits, sublabel: "vs last week", ...deltaFields(totalCommits, prevCommitsArg) });
|
|
180
|
+
addKpi({ key: "totalCommits", label: "Total Commits", value: totalCommits, sublabel: "vs last week", ...deltaFields(totalCommits, prevCommitsArg) });
|
|
181
|
+
addKpi({ key: "contributors", label: "Contributors", value: contributorsThis, sublabel: "vs last week", ...deltaFields(contributorsThis, prevContribArg) });
|
|
182
|
+
if (sumAdds !== undefined)
|
|
183
|
+
addKpi({ key: "additions", label: "Additions", value: sumAdds, sublabel: "vs last week", ...deltaFields(cfCur === null || cfCur === void 0 ? void 0 : cfCur.additions, cfPrev === null || cfPrev === void 0 ? void 0 : cfPrev.additions) });
|
|
184
|
+
if (sumDels !== undefined)
|
|
185
|
+
addKpi({ key: "deletions", label: "Deletions", value: sumDels, sublabel: "vs last week", ...deltaFields(cfCur ? Math.abs(cfCur.deletions) : undefined, cfPrev ? Math.abs(cfPrev.deletions) : undefined) });
|
|
186
|
+
if (sumAdds !== undefined && sumDels !== undefined)
|
|
187
|
+
addKpi({ key: "netChanges", label: "Net Changes", value: sumAdds - sumDels, display: (sumAdds - sumDels >= 0 ? "+" : "") + (sumAdds - sumDels).toLocaleString("en-US") });
|
|
188
|
+
if (hasDetails) {
|
|
189
|
+
addKpi({ key: "totalFiles", label: "Total Files Changed", value: totalFiles });
|
|
190
|
+
addKpi({ key: "filesChanged", label: "Files Changed", value: totalFiles });
|
|
191
|
+
}
|
|
192
|
+
if (cov.starDeltas && ((_m = facts.stars) === null || _m === void 0 ? void 0 : _m.deltaInWindow) !== undefined) {
|
|
193
|
+
addKpi({ key: "starsDelta", label: "Stars Δ", value: facts.stars.deltaInWindow, display: "+" + facts.stars.deltaInWindow, sublabel: "vs last week", ...deltaFields(facts.stars.deltaInWindow, facts.stars.deltaPrevWindow) });
|
|
194
|
+
}
|
|
195
|
+
if (cov.pulls && facts.pulls) {
|
|
196
|
+
addKpi({ key: "pullRequests", label: "Pull Requests", value: facts.pulls.openedInWindow });
|
|
197
|
+
addKpi({ key: "mergedPrs", label: "Merged PRs", value: facts.pulls.mergedInWindow });
|
|
198
|
+
}
|
|
199
|
+
if (cov.issues && facts.issues)
|
|
200
|
+
addKpi({ key: "openIssues", label: "Open Issues", value: facts.issues.open });
|
|
201
|
+
const activeDays = dayCounts.filter((c) => c > 0).length;
|
|
202
|
+
const avg = totalCommits / 7;
|
|
203
|
+
addKpi({ key: "peakDay", label: "Peak Day", value: peak.commits, sublabel: `${(0, pulse_data_1.monthDay)(peakDateISO)}, ${(0, week_math_1.parseISODate)(peakDateISO).y}` });
|
|
204
|
+
addKpi({ key: "dailyAvg", label: "Daily Avg", value: Math.round(avg), display: avg.toFixed(1) });
|
|
205
|
+
addKpi({ key: "activeDays", label: "Active Days", value: activeDays, display: `${activeDays}/7`, sublabel: `${Math.round((activeDays / 7) * 100)}% of week` });
|
|
206
|
+
const reviewed = windowCommits.filter((c) => { var _a, _b, _c; return ((_c = (_b = (_a = c.trailers) === null || _a === void 0 ? void 0 : _a["Reviewed-by"]) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0; }).length;
|
|
207
|
+
const reviewPct = totalCommits ? Math.round((reviewed / totalCommits) * 100) : 0;
|
|
208
|
+
addKpi({ key: "reviewCoverage", label: "Review Coverage", value: reviewPct, display: `${reviewPct}%`, sublabel: "of commits" });
|
|
209
|
+
// ── adaptive kpi selection (cap 8) ─────────────────────────────
|
|
210
|
+
const KPI_PRIORITY = ["commits", "contributors", "additions", "deletions", "filesChanged", "starsDelta", "pullRequests", "mergedPrs", "openIssues"];
|
|
211
|
+
const order = props.kpiKeys && props.kpiKeys.length ? props.kpiKeys : KPI_PRIORITY;
|
|
212
|
+
const kpis = order.map((k) => pool[k]).filter((k) => Boolean(k)).slice(0, 8);
|
|
213
|
+
// ── notable (deterministic score → top N, ties by sha asc) ─────
|
|
214
|
+
const notableItems = windowCommits
|
|
215
|
+
.map((c) => {
|
|
216
|
+
var _a, _b, _c, _d;
|
|
217
|
+
const cls = classify(c.headline);
|
|
218
|
+
const score = 2 * Math.log(1 + ((_a = c.additions) !== null && _a !== void 0 ? _a : 0) + ((_b = c.deletions) !== null && _b !== void 0 ? _b : 0)) + 0.5 * ((_d = (_c = c.files) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) + cls.boost;
|
|
219
|
+
return { c, cls, score };
|
|
220
|
+
})
|
|
221
|
+
.sort((a, b) => b.score - a.score || (a.c.sha < b.c.sha ? -1 : 1))
|
|
222
|
+
.slice(0, notableCount)
|
|
223
|
+
.map(({ c, cls }) => {
|
|
224
|
+
var _a, _b;
|
|
225
|
+
const reviewers = [...new Set((_b = (_a = c.trailers) === null || _a === void 0 ? void 0 : _a["Reviewed-by"]) !== null && _b !== void 0 ? _b : [])].slice(0, 2);
|
|
226
|
+
const area = topChangedDir(c, areaDepth);
|
|
227
|
+
return {
|
|
228
|
+
kind: cls.kind,
|
|
229
|
+
title: c.headline,
|
|
230
|
+
hash: c.sha,
|
|
231
|
+
author: c.authorName,
|
|
232
|
+
dateISO: c.committedISO.slice(0, 10),
|
|
233
|
+
...(area ? { area } : {}),
|
|
234
|
+
signal: cls.signal,
|
|
235
|
+
...(reviewers.length ? { reviewers } : {}),
|
|
236
|
+
// `pr` intentionally omitted — the facts sheet carries no commit→PR mapping.
|
|
237
|
+
};
|
|
238
|
+
});
|
|
239
|
+
// ── rails (fixed key-lists filtered to the available pool) ─────
|
|
240
|
+
const railFrom = (keys) => keys.map((k) => pool[k]).filter((k) => Boolean(k));
|
|
241
|
+
return {
|
|
242
|
+
repo: { name: facts.repo.name, fullName: facts.repo.fullName },
|
|
243
|
+
period,
|
|
244
|
+
kpis,
|
|
245
|
+
activity: { days, peak, grid, rail: railFrom(["totalCommits", "peakDay", "dailyAvg", "activeDays"]) },
|
|
246
|
+
contributors: { rows: contribRows, rail: railFrom(["totalCommits", "contributors", "additions", "deletions", "starsDelta"]) },
|
|
247
|
+
changes: { totalFiles, byArea, rail: hasDetails ? railFrom(["totalFiles", "additions", "deletions", "netChanges"]) : railFrom(["totalCommits", "contributors"]) },
|
|
248
|
+
notable: { items: notableItems, rail: railFrom(["mergedPrs", "reviewCoverage", "openIssues", "contributors"]) },
|
|
249
|
+
fin: {
|
|
250
|
+
headline: "THANK YOU!",
|
|
251
|
+
subhead: "ANOTHER WEEK OF PROGRESS.",
|
|
252
|
+
kpiStrip: railFrom(["commits", "contributors", "filesChanged", "starsDelta"]),
|
|
253
|
+
qr: { url: "https://www.m0saic.io", caption: "Make your own — m0saic.io" },
|
|
254
|
+
footer: "Built with m0saic",
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
}
|