@bitcobblers/wod-wiki-tools 0.45.2167 → 0.46.2168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/wod.cjs +145 -117
- package/dist/bin/wod.cjs.map +1 -1
- package/dist/bin/wod.mjs +5 -5
- package/dist/{chunk-LZW3XW5N.mjs → chunk-76AHBG3R.mjs} +14 -14
- package/dist/chunk-76AHBG3R.mjs.map +1 -0
- package/dist/{chunk-52NLI2DL.mjs → chunk-IIUCTIX5.mjs} +3 -3
- package/dist/chunk-IIUCTIX5.mjs.map +1 -0
- package/dist/{chunk-EAFF2GVB.mjs → chunk-MKGVKC2X.mjs} +77 -79
- package/dist/chunk-MKGVKC2X.mjs.map +1 -0
- package/dist/chunk-QUUX6NX2.mjs +28 -0
- package/dist/{chunk-6L5ZDZJ7.mjs.map → chunk-QUUX6NX2.mjs.map} +1 -1
- package/dist/{chunk-FSOBPDUC.mjs → chunk-Z2IQPTDI.mjs} +3 -3
- package/dist/{chunk-FSOBPDUC.mjs.map → chunk-Z2IQPTDI.mjs.map} +1 -1
- package/dist/{chunk-F7IXIJ4I.mjs → chunk-ZUZMRH3G.mjs} +3 -3
- package/dist/{chunk-F7IXIJ4I.mjs.map → chunk-ZUZMRH3G.mjs.map} +1 -1
- package/dist/compiler-Z6VNF53G.mjs +9 -0
- package/dist/{compiler-ZMG22VH4.mjs.map → compiler-Z6VNF53G.mjs.map} +1 -1
- package/dist/index.cjs +145 -117
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/{scaffoldFeed-UD66SCQX.mjs → scaffoldFeed-ALXZOKRV.mjs} +4 -4
- package/dist/{scaffoldFeed-UD66SCQX.mjs.map → scaffoldFeed-ALXZOKRV.mjs.map} +1 -1
- package/dist/server/app.mjs +1 -1
- package/dist/server-QK2CXCDJ.mjs +11 -0
- package/dist/{server-5XDT7ITA.mjs.map → server-QK2CXCDJ.mjs.map} +1 -1
- package/dist/{skills-CZDOAQUB.mjs → skills-5F737S2K.mjs} +3 -3
- package/dist/{skills-CZDOAQUB.mjs.map → skills-5F737S2K.mjs.map} +1 -1
- package/dist/web/playground/assets/{feedSync.worker-CEbxagtY.js → feedSync.worker-BKsDG4P0.js} +4 -4
- package/dist/web/playground/assets/main-Cb5hwnvu.js +494 -0
- package/dist/web/playground/assets/main-Cye5g1Tm.css +2 -0
- package/dist/web/playground/assets/{statementBuilderFlow-krzOPRPk.js → statementBuilderFlow-y8YIyGuW.js} +2 -2
- package/dist/web/playground/assets/{vendor-DKhA8bPd.js → vendor-D0x8W9No.js} +19 -19
- package/dist/web/{server/assets/vendor-codemirror-CnY0iCTs.js → playground/assets/vendor-codemirror-Bw_t2lTd.js} +7 -7
- package/dist/web/playground/index.html +4 -4
- package/dist/web/{server/seed/core/chunks/canvas.0650818f.json → playground/seed/core/chunks/canvas.dc1d093c.json} +1 -1
- package/dist/web/playground/seed/core/chunks/{dashboards.44097ca1.json → dashboards.e349f3be.json} +1 -1
- package/dist/web/playground/seed/core/chunks/efforts.84f30fa3.json +1 -0
- package/dist/web/{server/seed/core/chunks/equipment.d90bd3bc.json → playground/seed/core/chunks/equipment.f07ad76e.json} +1 -1
- package/dist/web/playground/seed/core/indexes/notebooks/canvas.json +178 -173
- package/dist/web/playground/seed/core/indexes/notebooks/dashboards.json +18 -13
- package/dist/web/playground/seed/core/indexes/notebooks/efforts.json +328 -323
- package/dist/web/playground/seed/core/indexes/notebooks/equipment.json +52 -47
- package/dist/web/playground/seed/core/manifest.json +40 -2512
- package/dist/web/playground/seed/core/markdown/canvas/ai-first/README.json +1 -1
- package/dist/web/playground/seed/core/markdown/canvas/guide/README.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/guide/clock.json +1 -1
- package/dist/web/playground/seed/core/markdown/canvas/guide/dashboards.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/guide/metrics.json +12 -12
- package/dist/web/playground/seed/core/markdown/canvas/guide/protocols.json +20 -20
- package/dist/web/playground/seed/core/markdown/canvas/guide/sessions.json +30 -30
- package/dist/web/playground/seed/core/markdown/canvas/guide/start.json +10 -10
- package/dist/web/playground/seed/core/markdown/canvas/guide/structure.json +24 -24
- package/dist/web/playground/seed/core/markdown/canvas/guide/wql.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/home/sample-script.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/home/welcome-1.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-full-session.json +9 -9
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-swimming.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-3.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-1.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-2.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-3.json +10 -10
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-4.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/effort-notes.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/measurements.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-4.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-sections.json +8 -8
- package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/named-groups.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-3.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
- package/dist/web/playground/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
- package/dist/web/playground/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
- package/dist/web/playground/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
- package/dist/web/playground/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
- package/dist/web/playground/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
- package/dist/web/playground/seed/core/markdown/dashboards/training-block-review.json +11 -11
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/air-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/box-jump.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/broad-jump.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ground-kong.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/jumping-jack.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/kong-walk.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/lunge.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/overhead-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-roll.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/pistol-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/plank.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-burpee.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-jump.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/russian-twist.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/sit-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-clean.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-hold.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-snatch.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/tuck-jump.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-ball.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-burpee.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/cycling/assault-bike.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-moderate.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-vigorous.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/dip.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/double-under.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-hold.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-walk.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jump-rope.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/muscle-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/pull-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/push-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/rope-climb.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/recovery/rest.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/recovery/stretching.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing-sprint.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/rowing/ski-erg.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/running/backward-running.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/running/running-6-mph.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/running/running-8-mph.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/running/running-sprint.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/snatch.json +7 -7
- package/dist/web/playground/seed/core/markdown/efforts/strength/back-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/bench-press.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/box-step-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/carioca.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/clean-and-jerk.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/cluster.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/dead-hang.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/deadlift.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/devils-press.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-clean.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-fly.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-row.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-snatch.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-thruster.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/elbows-to-knees.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/farmer-carry.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/frog-stand.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/front-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/good-morning.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/hanging-leg-raise.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/hollow-rock.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/knees-to-elbows.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/l-sit.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/man-maker.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/medicine-ball-clean.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/overhead-press.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/parkour-vault.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/pig-flip.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/power-clean.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/power-snatch.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/push-jerk.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/push-press.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/romanian-deadlift.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/single-leg-deadlift.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/skull-crusher.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/slam-ball.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/sled-pull.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/sled-push.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/sumo-deadlift.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/thruster.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/triceps-extension.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/v-sit-hold.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/wall-walk.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-backstroke.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-butterfly.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dive-start.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-drafting.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-freestyle.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-kick.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-pull.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-sighting.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-vigorous.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-circles.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-mill.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-flow.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/walking/walking-3-mph.json +2 -2
- package/dist/web/playground/seed/core/markdown/equipment/air-bike.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/barbell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/bench.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/bike-erg.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/climbing-rope.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/clubs.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/dumbbell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/ghd.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/jump-rope.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/kettlebell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/macebell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/medicine-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/parallettes.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/plyo-box.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/pull-up-bar.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/rower.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/sandbag.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/ski-erg.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/slam-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/sled.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/sledgehammer.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/weight-vest.json +1 -1
- package/dist/web/playground/seed/core/report.html +13 -13
- package/dist/web/server/assets/{feedSync.worker-CEbxagtY.js → feedSync.worker-BKsDG4P0.js} +4 -4
- package/dist/web/server/assets/main-CRlqN3LF.js +494 -0
- package/dist/web/server/assets/main-Cye5g1Tm.css +2 -0
- package/dist/web/server/assets/{statementBuilderFlow-Vjl3_h6f.js → statementBuilderFlow-C7gh8ABR.js} +2 -2
- package/dist/web/server/assets/{vendor-DKhA8bPd.js → vendor-D0x8W9No.js} +19 -19
- package/dist/web/{playground/assets/vendor-codemirror-CnY0iCTs.js → server/assets/vendor-codemirror-Bw_t2lTd.js} +7 -7
- package/dist/web/server/index.html +4 -4
- package/dist/web/{playground/seed/core/chunks/canvas.0650818f.json → server/seed/core/chunks/canvas.dc1d093c.json} +1 -1
- package/dist/web/server/seed/core/chunks/{dashboards.44097ca1.json → dashboards.e349f3be.json} +1 -1
- package/dist/web/server/seed/core/chunks/efforts.84f30fa3.json +1 -0
- package/dist/web/{playground/seed/core/chunks/equipment.d90bd3bc.json → server/seed/core/chunks/equipment.f07ad76e.json} +1 -1
- package/dist/web/server/seed/core/indexes/notebooks/canvas.json +178 -173
- package/dist/web/server/seed/core/indexes/notebooks/dashboards.json +18 -13
- package/dist/web/server/seed/core/indexes/notebooks/efforts.json +328 -323
- package/dist/web/server/seed/core/indexes/notebooks/equipment.json +52 -47
- package/dist/web/server/seed/core/manifest.json +40 -2512
- package/dist/web/server/seed/core/markdown/canvas/ai-first/README.json +1 -1
- package/dist/web/server/seed/core/markdown/canvas/guide/README.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/guide/clock.json +1 -1
- package/dist/web/server/seed/core/markdown/canvas/guide/dashboards.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/guide/metrics.json +12 -12
- package/dist/web/server/seed/core/markdown/canvas/guide/protocols.json +20 -20
- package/dist/web/server/seed/core/markdown/canvas/guide/sessions.json +30 -30
- package/dist/web/server/seed/core/markdown/canvas/guide/start.json +10 -10
- package/dist/web/server/seed/core/markdown/canvas/guide/structure.json +24 -24
- package/dist/web/server/seed/core/markdown/canvas/guide/wql.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/home/sample-script.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/home/welcome-1.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-full-session.json +9 -9
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-swimming.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-3.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-1.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-2.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-3.json +10 -10
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-4.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/effort-notes.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/measurements.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-4.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-sections.json +8 -8
- package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/named-groups.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-3.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
- package/dist/web/server/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
- package/dist/web/server/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
- package/dist/web/server/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
- package/dist/web/server/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
- package/dist/web/server/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
- package/dist/web/server/seed/core/markdown/dashboards/training-block-review.json +11 -11
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/air-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/box-jump.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/broad-jump.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/ground-kong.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/jumping-jack.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/kong-walk.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/lunge.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/overhead-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-roll.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/pistol-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/plank.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-burpee.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-jump.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/russian-twist.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/sit-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-clean.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-hold.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-snatch.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/tuck-jump.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-ball.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-burpee.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/cycling/assault-bike.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-moderate.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-vigorous.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/dip.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/double-under.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-hold.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-walk.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jump-rope.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/muscle-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/pull-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/push-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/rope-climb.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/recovery/rest.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/recovery/stretching.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/rowing/rowing-sprint.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/rowing/rowing.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/rowing/ski-erg.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/running/backward-running.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/running/running-6-mph.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/running/running-8-mph.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/running/running-sprint.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/snatch.json +7 -7
- package/dist/web/server/seed/core/markdown/efforts/strength/back-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/bench-press.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/box-step-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/carioca.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/clean-and-jerk.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/cluster.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/dead-hang.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/deadlift.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/devils-press.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-clean.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-fly.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-row.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-snatch.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-thruster.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/elbows-to-knees.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/farmer-carry.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/frog-stand.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/front-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/good-morning.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/hanging-leg-raise.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/hollow-rock.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/knees-to-elbows.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/l-sit.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/man-maker.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/medicine-ball-clean.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/overhead-press.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/parkour-vault.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/pig-flip.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/power-clean.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/power-snatch.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/push-jerk.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/push-press.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/romanian-deadlift.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/single-leg-deadlift.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/skull-crusher.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/slam-ball.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/sled-pull.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/sled-push.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/sumo-deadlift.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/thruster.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/triceps-extension.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/v-sit-hold.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/wall-walk.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-backstroke.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-butterfly.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dive-start.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-drafting.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-freestyle.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-kick.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-pull.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-sighting.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-vigorous.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-circles.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-mill.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-flow.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/walking/walking-3-mph.json +2 -2
- package/dist/web/server/seed/core/markdown/equipment/air-bike.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/barbell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/bench.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/bike-erg.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/climbing-rope.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/clubs.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/dumbbell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/ghd.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/jump-rope.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/kettlebell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/macebell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/medicine-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/parallettes.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/plyo-box.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/pull-up-bar.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/rower.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/sandbag.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/ski-erg.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/slam-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/sled.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/sledgehammer.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/weight-vest.json +1 -1
- package/dist/web/server/seed/core/report.html +13 -13
- package/package.json +6 -6
- package/dist/chunk-52NLI2DL.mjs.map +0 -1
- package/dist/chunk-6L5ZDZJ7.mjs +0 -15
- package/dist/chunk-EAFF2GVB.mjs.map +0 -1
- package/dist/chunk-LZW3XW5N.mjs.map +0 -1
- package/dist/compiler-ZMG22VH4.mjs +0 -9
- package/dist/server-5XDT7ITA.mjs +0 -11
- package/dist/web/playground/assets/main-BKDG9P36.css +0 -2
- package/dist/web/playground/assets/main-CUs3less.js +0 -491
- package/dist/web/playground/seed/core/chunks/efforts.4edf1983.json +0 -1
- package/dist/web/server/assets/main-BKDG9P36.css +0 -2
- package/dist/web/server/assets/main-DyBj7Ku9.js +0 -491
- package/dist/web/server/seed/core/chunks/efforts.4edf1983.json +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var wodWikiLang = require('@bitcobblers/wod-wiki-lang');
|
|
4
|
-
var
|
|
4
|
+
var wod_wiki_engine_star = require('@bitcobblers/wod-wiki-engine');
|
|
5
5
|
var child_process = require('child_process');
|
|
6
6
|
var fs = require('fs');
|
|
7
7
|
var path = require('path');
|
|
8
|
+
var wodWikiCore = require('@bitcobblers/wod-wiki-core');
|
|
8
9
|
var wodWikiWql = require('@bitcobblers/wod-wiki-wql');
|
|
9
10
|
var crypto = require('crypto');
|
|
10
11
|
var promises = require('fs/promises');
|
|
@@ -12,15 +13,35 @@ var stream = require('stream');
|
|
|
12
13
|
var sql = require('@bitcobblers/wod-wiki-storage/sql');
|
|
13
14
|
var wodWikiStorage = require('@bitcobblers/wod-wiki-storage');
|
|
14
15
|
var http = require('http');
|
|
15
|
-
var wodWikiEngine = require('@bitcobblers/wod-wiki-engine');
|
|
16
16
|
|
|
17
17
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
18
18
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
19
|
|
|
20
|
+
function _interopNamespace(e) {
|
|
21
|
+
if (e && e.__esModule) return e;
|
|
22
|
+
var n = Object.create(null);
|
|
23
|
+
if (e) {
|
|
24
|
+
Object.keys(e).forEach(function (k) {
|
|
25
|
+
if (k !== 'default') {
|
|
26
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
27
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return e[k]; }
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
n.default = e;
|
|
35
|
+
return Object.freeze(n);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var wod_wiki_engine_star__namespace = /*#__PURE__*/_interopNamespace(wod_wiki_engine_star);
|
|
20
39
|
var http__default = /*#__PURE__*/_interopDefault(http);
|
|
21
40
|
|
|
22
41
|
var __defProp = Object.defineProperty;
|
|
42
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
23
43
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
44
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
24
45
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
25
46
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
26
47
|
}) : x)(function(x) {
|
|
@@ -34,6 +55,15 @@ var __export = (target, all) => {
|
|
|
34
55
|
for (var name in all)
|
|
35
56
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
36
57
|
};
|
|
58
|
+
var __copyProps = (to, from, except, desc) => {
|
|
59
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
60
|
+
for (let key of __getOwnPropNames(from))
|
|
61
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
62
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
63
|
+
}
|
|
64
|
+
return to;
|
|
65
|
+
};
|
|
66
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
|
|
37
67
|
function nodeRequire() {
|
|
38
68
|
const g = globalThis;
|
|
39
69
|
if (typeof g.process?.versions?.node === "undefined" && typeof g.Bun === "undefined") {
|
|
@@ -160,7 +190,7 @@ function sqliteEventStore(db) {
|
|
|
160
190
|
getEventsByTimeRange: async (start, end) => (await all()).filter((r) => r.timestamp >= start && r.timestamp <= end),
|
|
161
191
|
getEventsByResult: async (resultId) => (await all()).filter((r) => r.resultId === resultId),
|
|
162
192
|
getEventsForNote: async (noteId) => (await all()).filter((r) => r.noteId === noteId),
|
|
163
|
-
getEventsByContent: async (
|
|
193
|
+
getEventsByContent: async (blockContentId4) => (await all()).filter((r) => r.blockContentId === blockContentId4),
|
|
164
194
|
scanAll: all,
|
|
165
195
|
appendEvents: async (appended) => {
|
|
166
196
|
const sql = await loadSql();
|
|
@@ -285,39 +315,12 @@ var init_db = __esm({
|
|
|
285
315
|
CLI_UUID_NAMESPACE = "c0ffee00-8b1a-4e2c-9d3f-5a6b7c8d9e0f";
|
|
286
316
|
}
|
|
287
317
|
});
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
}
|
|
292
|
-
function canvasRouteSlug(content) {
|
|
293
|
-
const fm = /^---\r?\n([\s\S]*?)\r?\n---/.exec(content);
|
|
294
|
-
if (fm?.[1] && !/^template:\s*canvas\s*$/m.test(fm[1])) return null;
|
|
295
|
-
return fm?.[1]?.match(/^route:\s*(\S+)\s*$/m)?.[1]?.replace(/^\//, "") || null;
|
|
296
|
-
}
|
|
297
|
-
function seedNoteSourceId(path, content, chunkId) {
|
|
298
|
-
const parts = path.split("/");
|
|
299
|
-
const stem = (parts.at(-1) ?? "").replace(/\.md$/i, "");
|
|
300
|
-
const under = parts.slice(2).map((p) => p.replace(/\.md$/i, "")).join("/");
|
|
301
|
-
if (chunkId === CANVAS_CHUNK_ID2) return `guides:${canvasRouteSlug(content) ?? under}`;
|
|
302
|
-
if (chunkId === DASHBOARDS_CHUNK_ID) return "dashboards";
|
|
303
|
-
if (chunkId === EFFORTS_CHUNK_ID) return "efforts";
|
|
304
|
-
if (chunkId === EQUIPMENT_CHUNK_ID) return "equipment";
|
|
305
|
-
if (chunkId.startsWith("notebook.")) {
|
|
306
|
-
const slug = notebookSlugForChunkId(chunkId);
|
|
307
|
-
return !slug ? "notebook:_root" : stem.toLowerCase() === "readme" ? `notebook:${slug}` : `notebook:${under}`;
|
|
308
|
-
}
|
|
309
|
-
return void 0;
|
|
310
|
-
}
|
|
311
|
-
var SEED_SCHEMA2, SEED_REGISTERED_WIDGETS, SEED_NAMESPACE, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, CANVAS_CHUNK_ID2, DASHBOARDS_CHUNK_ID;
|
|
318
|
+
|
|
319
|
+
// src/seedbuild/contract.ts
|
|
320
|
+
var contract_exports = {};
|
|
312
321
|
var init_contract = __esm({
|
|
313
322
|
"src/seedbuild/contract.ts"() {
|
|
314
|
-
|
|
315
|
-
SEED_REGISTERED_WIDGETS = wodWikiCore.KNOWN_SECTION_WIDGETS;
|
|
316
|
-
SEED_NAMESPACE = "1b671a64-40d5-491e-99b0-da01ff1f3341";
|
|
317
|
-
EFFORTS_CHUNK_ID = "efforts";
|
|
318
|
-
EQUIPMENT_CHUNK_ID = "equipment";
|
|
319
|
-
CANVAS_CHUNK_ID2 = "canvas";
|
|
320
|
-
DASHBOARDS_CHUNK_ID = "dashboards";
|
|
323
|
+
__reExport(contract_exports, wod_wiki_engine_star__namespace);
|
|
321
324
|
}
|
|
322
325
|
});
|
|
323
326
|
|
|
@@ -501,37 +504,12 @@ var init_frontmatter = __esm({
|
|
|
501
504
|
FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
|
|
502
505
|
}
|
|
503
506
|
});
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
}
|
|
507
|
-
function nonnegative(value) {
|
|
508
|
-
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
509
|
-
}
|
|
510
|
-
function assertSeedManifest2(value) {
|
|
511
|
-
if (!object(value) || value.schema !== SEED_SCHEMA2) throw new Error("Incompatible seed schema; rebuild seed artifacts");
|
|
512
|
-
if (!nonnegative(value.version) || typeof value.builtAt !== "string" || !Number.isFinite(Date.parse(value.builtAt)) || !Array.isArray(value.chunks)) throw new Error("seed manifest failed shape validation");
|
|
513
|
-
for (const key of ["versionLabel", "commit", "name", "description"]) if (value[key] !== void 0 && typeof value[key] !== "string") throw new Error("invalid seed manifest metadata");
|
|
514
|
-
if (value.repositoryUrl !== void 0 && (typeof value.repositoryUrl !== "string" || !/^https:\/\//.test(value.repositoryUrl) || new URL(value.repositoryUrl).username || new URL(value.repositoryUrl).password)) throw new Error("invalid seed repository URL");
|
|
515
|
-
if (value.dirty !== void 0 && typeof value.dirty !== "boolean") throw new Error("invalid seed manifest metadata");
|
|
516
|
-
const ids = /* @__PURE__ */ new Set(), paths = /* @__PURE__ */ new Set();
|
|
517
|
-
for (const chunk of value.chunks) {
|
|
518
|
-
if (!object(chunk) || typeof chunk.id !== "string" || !chunk.id || typeof chunk.path !== "string" || !/^chunks\/[a-zA-Z0-9._-]+\.json$/.test(chunk.path) || typeof chunk.sha256 !== "string" || !/^[0-9a-f]{64}$/.test(chunk.sha256) || !nonnegative(chunk.bytes) || !nonnegative(chunk.count) || chunk.kind !== void 0 && chunk.kind !== "notes" || ids.has(chunk.id) || paths.has(chunk.path)) throw new Error("seed manifest failed shape validation");
|
|
519
|
-
ids.add(chunk.id);
|
|
520
|
-
paths.add(chunk.path);
|
|
521
|
-
}
|
|
522
|
-
if (value.notebooks !== void 0) {
|
|
523
|
-
if (!Array.isArray(value.notebooks)) throw new Error("seed manifest failed shape validation");
|
|
524
|
-
for (const nb of value.notebooks) {
|
|
525
|
-
if (!object(nb) || typeof nb.notebookId !== "string" || typeof nb.label !== "string" || !nonnegative(nb.count) || !Array.isArray(nb.records)) {
|
|
526
|
-
throw new Error("seed manifest failed shape validation");
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
return value;
|
|
531
|
-
}
|
|
507
|
+
|
|
508
|
+
// src/seedbuild/validation.ts
|
|
509
|
+
var validation_exports = {};
|
|
532
510
|
var init_validation = __esm({
|
|
533
511
|
"src/seedbuild/validation.ts"() {
|
|
534
|
-
|
|
512
|
+
__reExport(validation_exports, wod_wiki_engine_star__namespace);
|
|
535
513
|
}
|
|
536
514
|
});
|
|
537
515
|
|
|
@@ -550,6 +528,10 @@ __export(compiler_exports, {
|
|
|
550
528
|
generateSeed: () => generateSeed,
|
|
551
529
|
getFileCommit: () => getFileCommit,
|
|
552
530
|
getFileVersion: () => getFileVersion,
|
|
531
|
+
getPathCommit: () => getPathCommit,
|
|
532
|
+
getPathUpdatedAt: () => getPathUpdatedAt,
|
|
533
|
+
getPathVersion: () => getPathVersion,
|
|
534
|
+
groupCorpusPath: () => groupCorpusPath,
|
|
553
535
|
loadCorpusReferenceCatalog: () => loadCorpusReferenceCatalog,
|
|
554
536
|
partitionIntoChunks: () => partitionIntoChunks,
|
|
555
537
|
scaffoldDiscoveredEfforts: () => scaffoldDiscoveredEfforts,
|
|
@@ -632,7 +614,7 @@ function validateDashboardNote(raw) {
|
|
|
632
614
|
}
|
|
633
615
|
function gateDashboards(groups, corpusRoot) {
|
|
634
616
|
for (const group of groups) {
|
|
635
|
-
if (group.id !== DASHBOARDS_CHUNK_ID) continue;
|
|
617
|
+
if (group.id !== contract_exports.DASHBOARDS_CHUNK_ID) continue;
|
|
636
618
|
for (const p of group.files) {
|
|
637
619
|
const problems = validateDashboardNote(fs.readFileSync(path.join(corpusRoot, p), "utf8"));
|
|
638
620
|
if (problems.length > 0) {
|
|
@@ -652,7 +634,7 @@ function getFileCreatedAt(file, repoRoot) {
|
|
|
652
634
|
}
|
|
653
635
|
}
|
|
654
636
|
function seedNoteIdSync(path) {
|
|
655
|
-
const hash = crypto.createHash("sha1").update(`${SEED_NAMESPACE}:${path}`).digest();
|
|
637
|
+
const hash = crypto.createHash("sha1").update(`${contract_exports.SEED_NAMESPACE}:${path}`).digest();
|
|
656
638
|
const bytes = new Uint8Array(hash.subarray(0, 16));
|
|
657
639
|
bytes[6] = bytes[6] & 15 | 80;
|
|
658
640
|
bytes[8] = bytes[8] & 63 | 128;
|
|
@@ -674,6 +656,37 @@ function getFileVersion(file, repoRoot) {
|
|
|
674
656
|
return 1;
|
|
675
657
|
}
|
|
676
658
|
}
|
|
659
|
+
function getPathVersion(targetPath, repoRoot) {
|
|
660
|
+
try {
|
|
661
|
+
const out = child_process.execFileSync("git", ["rev-list", "--count", "HEAD", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
662
|
+
const count = Number(out);
|
|
663
|
+
return Number.isFinite(count) && count > 0 ? count : 1;
|
|
664
|
+
} catch {
|
|
665
|
+
return 1;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
function getPathCommit(targetPath, repoRoot) {
|
|
669
|
+
try {
|
|
670
|
+
return child_process.execFileSync("git", ["log", "-1", "--format=%H", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
671
|
+
} catch {
|
|
672
|
+
return "";
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
function getPathUpdatedAt(targetPath, repoRoot) {
|
|
676
|
+
try {
|
|
677
|
+
const out = child_process.execFileSync("git", ["log", "-1", "--format=%cI", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
678
|
+
return out || void 0;
|
|
679
|
+
} catch {
|
|
680
|
+
return void 0;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
function groupCorpusPath(id) {
|
|
684
|
+
if (id.startsWith("notebook.")) {
|
|
685
|
+
const slug = id.slice("notebook.".length);
|
|
686
|
+
return slug === "_root" ? "markdown/notebooks" : `markdown/notebooks/${slug}`;
|
|
687
|
+
}
|
|
688
|
+
return `markdown/${id}`;
|
|
689
|
+
}
|
|
677
690
|
function frontmatterDateToCreatedAt(raw, path) {
|
|
678
691
|
const value = getScalar(parseFrontmatter(raw).meta, "date");
|
|
679
692
|
if (value === void 0 || value === "") return void 0;
|
|
@@ -693,7 +706,7 @@ function dateKeyToCreatedAt(dateKey) {
|
|
|
693
706
|
}
|
|
694
707
|
function compileSeedRow(path, content, metadata = {}) {
|
|
695
708
|
let ordinal = 0;
|
|
696
|
-
const blocks = wodWikiCore.reconcileNoteBlocks(content, { sourceRevision: 1, registeredWidgets: SEED_REGISTERED_WIDGETS, createId: () => `seed:${path}:${ordinal++}` });
|
|
709
|
+
const blocks = wodWikiCore.reconcileNoteBlocks(content, { sourceRevision: 1, registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS, createId: () => `seed:${path}:${ordinal++}` });
|
|
697
710
|
const noteId = metadata.routeId ?? path;
|
|
698
711
|
const sections = wodWikiCore.parseDocumentSections(content);
|
|
699
712
|
const blockIndex = Object.values(blocks).map((block, position) => {
|
|
@@ -711,8 +724,8 @@ function buildBlockIndexRows(markdownDir, corpusRoot, excludePaths = []) {
|
|
|
711
724
|
const parts = path$1.split("/");
|
|
712
725
|
const stem = (parts.at(-1) ?? "").replace(/\.md$/, "");
|
|
713
726
|
const slug = parts[2];
|
|
714
|
-
const routeId = chunkId === "canvas" ? canvasRouteSlug(content) ?? void 0 : chunkId.startsWith("notebook.") ? stem.toLowerCase() === "readme" ? slug : parts.slice(2).join("/").replace(/\.md$/, "") : void 0;
|
|
715
|
-
const sourceId = seedNoteSourceId(path$1, content, chunkId);
|
|
727
|
+
const routeId = chunkId === "canvas" ? (0, contract_exports.canvasRouteSlug)(content) ?? void 0 : chunkId.startsWith("notebook.") ? stem.toLowerCase() === "readme" ? slug : parts.slice(2).join("/").replace(/\.md$/, "") : void 0;
|
|
728
|
+
const sourceId = (0, contract_exports.seedNoteSourceId)(path$1, content, chunkId);
|
|
716
729
|
const createdAt = frontmatterDateToCreatedAt(content, path$1) ?? (chunkId.startsWith("notebook.") && /^\d{4}-\d{2}-\d{2}$/.test(parts.at(-2) ?? "") ? dateKeyToCreatedAt(parts.at(-2) ?? "") : getFileCreatedAt(path$1, corpusRoot));
|
|
717
730
|
rows.push(...compileSeedRow(path$1, content, { routeId, sourceId, createdAt }).blockIndex);
|
|
718
731
|
}
|
|
@@ -722,7 +735,7 @@ function validateWodBlockSyntax(blocks) {
|
|
|
722
735
|
const problems = [];
|
|
723
736
|
for (const block of blocks) {
|
|
724
737
|
if (block.dataType !== "wod" || !block.rawContent?.trim()) continue;
|
|
725
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
738
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
726
739
|
const source = section?.scriptBlock?.content ?? block.rawContent;
|
|
727
740
|
if (!source.trim()) continue;
|
|
728
741
|
const where = block.sourcePath ?? block.noteId;
|
|
@@ -772,7 +785,7 @@ function discoverUncatalogedEfforts(markdownDir, corpusRoot, excludePaths = [])
|
|
|
772
785
|
const discovered = /* @__PURE__ */ new Map();
|
|
773
786
|
for (const block of blocks) {
|
|
774
787
|
if (block.dataType !== "wod" || !block.rawContent) continue;
|
|
775
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
788
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
776
789
|
const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
|
|
777
790
|
for (const statement of script.statements) {
|
|
778
791
|
const effortMetric = statement.metrics?.getMetric?.("effort");
|
|
@@ -833,7 +846,7 @@ function buildBlockEffortRows(markdownDir, corpusRoot, blocks = buildBlockIndexR
|
|
|
833
846
|
const index = wodWikiLang.createReferenceIndex(loadCorpusReferenceCatalog(markdownDir));
|
|
834
847
|
for (const block of blocks) {
|
|
835
848
|
if (block.dataType !== "wod" || !block.rawContent) continue;
|
|
836
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
849
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
837
850
|
const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
|
|
838
851
|
const linked = /* @__PURE__ */ new Set();
|
|
839
852
|
for (const rawSlug of wodWikiLang.extractStatementRefs(script.statements).efforts) {
|
|
@@ -863,7 +876,7 @@ function buildBlockEquipmentRows(markdownDir, corpusRoot, blocks = buildBlockInd
|
|
|
863
876
|
const index = wodWikiLang.createReferenceIndex(loadCorpusReferenceCatalog(markdownDir));
|
|
864
877
|
for (const block of blocks) {
|
|
865
878
|
if (block.dataType !== "wod" || !block.rawContent) continue;
|
|
866
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
879
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
867
880
|
const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
|
|
868
881
|
const linked = /* @__PURE__ */ new Set();
|
|
869
882
|
for (const rawSlug of wodWikiLang.extractStatementRefs(script.statements).equipment) {
|
|
@@ -953,6 +966,7 @@ ${shown}${more}`);
|
|
|
953
966
|
}
|
|
954
967
|
let totalFiles = 0;
|
|
955
968
|
const manifestNotebooks = [];
|
|
969
|
+
const manifestBuiltAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
956
970
|
const tWrite = Date.now();
|
|
957
971
|
for (const { id, files } of groups) {
|
|
958
972
|
const records = [];
|
|
@@ -987,42 +1001,56 @@ ${shown}${more}`);
|
|
|
987
1001
|
});
|
|
988
1002
|
return compiled;
|
|
989
1003
|
});
|
|
1004
|
+
(0, validation_exports.assertSeedRows)(rows);
|
|
990
1005
|
const bytes = Buffer.from(JSON.stringify(rows), "utf8");
|
|
991
1006
|
const sha = sha256Hex(bytes);
|
|
992
1007
|
const file = `chunks/${id}.${sha.slice(0, 8)}.json`;
|
|
993
1008
|
fs.writeFileSync(path.join(outDir, file), bytes);
|
|
994
1009
|
manifestChunks.push({ id, path: file, sha256: sha, bytes: bytes.length, count: rows.length });
|
|
995
1010
|
totalFiles += rows.length;
|
|
1011
|
+
const groupPath = groupCorpusPath(id);
|
|
1012
|
+
const groupVersion = getPathVersion(groupPath, corpusRoot);
|
|
1013
|
+
const groupCommit = getPathCommit(groupPath, corpusRoot) || gitVersion.commit || "";
|
|
1014
|
+
const groupUpdatedAt = getPathUpdatedAt(groupPath, corpusRoot);
|
|
996
1015
|
const notebookIndexPath = `indexes/notebooks/${id}.json`;
|
|
997
|
-
const
|
|
1016
|
+
const summary = {
|
|
998
1017
|
notebookId: id,
|
|
999
1018
|
label: fileToDisplayName(id.split(".").at(-1) ?? id),
|
|
1000
|
-
category: notebookSlugForChunkId(id),
|
|
1019
|
+
category: (0, contract_exports.notebookSlugForChunkId)(id),
|
|
1001
1020
|
indexPath: notebookIndexPath,
|
|
1002
|
-
|
|
1003
|
-
|
|
1021
|
+
version: groupVersion,
|
|
1022
|
+
commit: groupCommit,
|
|
1023
|
+
updatedAt: groupUpdatedAt,
|
|
1024
|
+
builtAt: manifestBuiltAt,
|
|
1025
|
+
sha256: sha,
|
|
1026
|
+
bytes: bytes.length,
|
|
1027
|
+
count: rows.length
|
|
1028
|
+
};
|
|
1029
|
+
const notebookIndex = {
|
|
1030
|
+
...summary,
|
|
1004
1031
|
records
|
|
1005
1032
|
};
|
|
1033
|
+
(0, validation_exports.assertNotebookIndex)(notebookIndex);
|
|
1006
1034
|
const indexOutFile = path.join(outDir, notebookIndexPath);
|
|
1007
1035
|
fs.mkdirSync(path.dirname(indexOutFile), { recursive: true });
|
|
1008
1036
|
fs.writeFileSync(indexOutFile, JSON.stringify(notebookIndex, null, 2) + "\n");
|
|
1009
|
-
manifestNotebooks.push(
|
|
1037
|
+
manifestNotebooks.push(summary);
|
|
1010
1038
|
}
|
|
1011
1039
|
passMs.write = Date.now() - tWrite;
|
|
1012
1040
|
const manifest = {
|
|
1013
1041
|
name: "name" in metadata && typeof metadata.name === "string" ? metadata.name : void 0,
|
|
1014
1042
|
description: "description" in metadata && typeof metadata.description === "string" ? metadata.description : void 0,
|
|
1015
1043
|
repositoryUrl: repositoryLink?.protocol === "https:" && !repositoryLink.username && !repositoryLink.password ? repositoryLink.href : void 0,
|
|
1016
|
-
schema:
|
|
1044
|
+
schema: contract_exports.SEED_SCHEMA,
|
|
1017
1045
|
version: gitVersion.version,
|
|
1018
1046
|
versionLabel: gitVersion.versionLabel,
|
|
1019
1047
|
commit: gitVersion.commit,
|
|
1020
1048
|
dirty: gitVersion.dirty,
|
|
1021
|
-
builtAt:
|
|
1049
|
+
builtAt: manifestBuiltAt,
|
|
1022
1050
|
chunks: manifestChunks,
|
|
1023
1051
|
notebooks: manifestNotebooks
|
|
1024
1052
|
};
|
|
1025
|
-
|
|
1053
|
+
(0, validation_exports.assertSeedManifest)(manifest);
|
|
1026
1054
|
fs.writeFileSync(path.join(outDir, "manifest.json"), JSON.stringify(manifest, null, 2) + "\n");
|
|
1027
1055
|
const reportPath = writeBuildReport(outDir, {
|
|
1028
1056
|
manifest,
|
|
@@ -1093,7 +1121,7 @@ var init_compiler = __esm({
|
|
|
1093
1121
|
var VERSION;
|
|
1094
1122
|
var init_version = __esm({
|
|
1095
1123
|
"src/version.ts"() {
|
|
1096
|
-
VERSION = "0.
|
|
1124
|
+
VERSION = "0.46.2168";
|
|
1097
1125
|
}
|
|
1098
1126
|
});
|
|
1099
1127
|
|
|
@@ -1834,8 +1862,8 @@ function runParse(source, options = {}) {
|
|
|
1834
1862
|
if (script.errors && script.errors.length > 0) {
|
|
1835
1863
|
throw new ParseSyntaxError(script.errors);
|
|
1836
1864
|
}
|
|
1837
|
-
const tree =
|
|
1838
|
-
return
|
|
1865
|
+
const tree = wod_wiki_engine_star.buildStatementTree(script);
|
|
1866
|
+
return wod_wiki_engine_star.createIRFile("parse-tree", tree, { source: options.sourceLabel ?? "cli:wod parse" });
|
|
1839
1867
|
}
|
|
1840
1868
|
function buildWorkoutResults(outputs, options) {
|
|
1841
1869
|
return {
|
|
@@ -1898,7 +1926,7 @@ async function runExecution(source, options = {}) {
|
|
|
1898
1926
|
now
|
|
1899
1927
|
});
|
|
1900
1928
|
const logs = outputs.map(wodWikiLang.toStoredOutputStatement);
|
|
1901
|
-
return
|
|
1929
|
+
return wod_wiki_engine_star.createIRFile(
|
|
1902
1930
|
"execution-log",
|
|
1903
1931
|
{
|
|
1904
1932
|
results: workoutResults,
|
|
@@ -1928,7 +1956,7 @@ var WqlSyntaxError = class extends Error {
|
|
|
1928
1956
|
function extractPayload(rawJson) {
|
|
1929
1957
|
try {
|
|
1930
1958
|
const parsed = JSON.parse(rawJson);
|
|
1931
|
-
if (
|
|
1959
|
+
if (wod_wiki_engine_star.isIRFile(parsed)) {
|
|
1932
1960
|
return parsed.data;
|
|
1933
1961
|
}
|
|
1934
1962
|
return parsed;
|
|
@@ -1960,7 +1988,7 @@ function buildStoresFromData(data) {
|
|
|
1960
1988
|
blockVersion: f.blockVersion
|
|
1961
1989
|
}))
|
|
1962
1990
|
];
|
|
1963
|
-
const eventStore =
|
|
1991
|
+
const eventStore = wod_wiki_engine_star.inMemoryEventStore(events);
|
|
1964
1992
|
const noteStore = {
|
|
1965
1993
|
getAllNotes: async () => [...data.notes],
|
|
1966
1994
|
getNotesByIds: async (ids) => {
|
|
@@ -2139,17 +2167,17 @@ async function runQueryCli(wqlString, options = {}) {
|
|
|
2139
2167
|
const result2 = await service.runPipeline(wqlString, {
|
|
2140
2168
|
preferredUnit: options.preferredUnit
|
|
2141
2169
|
});
|
|
2142
|
-
return
|
|
2170
|
+
return wod_wiki_engine_star.createIRFile("pipeline-result", result2, { source: options.sourceLabel ?? "cli:wod query" });
|
|
2143
2171
|
}
|
|
2144
2172
|
if (wodWikiWql.isFindQuery(parsed)) {
|
|
2145
2173
|
const result2 = await service.runFind(parsed);
|
|
2146
2174
|
const kind = parsed.target === "session" ? "rows-result" : "find-result";
|
|
2147
|
-
return
|
|
2175
|
+
return wod_wiki_engine_star.createIRFile(kind, result2, { source: options.sourceLabel ?? "cli:wod query" });
|
|
2148
2176
|
}
|
|
2149
2177
|
const result = await service.runQuery(wqlString, {
|
|
2150
2178
|
preferredUnit: options.preferredUnit
|
|
2151
2179
|
});
|
|
2152
|
-
return
|
|
2180
|
+
return wod_wiki_engine_star.createIRFile("query-result", result, { source: options.sourceLabel ?? "cli:wod query" });
|
|
2153
2181
|
}
|
|
2154
2182
|
function getPathUtils() {
|
|
2155
2183
|
if (typeof globalThis.process?.versions?.node === "undefined" && !("Bun" in globalThis)) {
|
|
@@ -2190,7 +2218,7 @@ async function loadLanguagePack(moduleSpec) {
|
|
|
2190
2218
|
throw new Error(`Module "${moduleSpec}" does not export a valid LanguagePack object`);
|
|
2191
2219
|
}
|
|
2192
2220
|
const pack = candidate;
|
|
2193
|
-
|
|
2221
|
+
wod_wiki_engine_star.registerLanguagePack(pack);
|
|
2194
2222
|
return pack;
|
|
2195
2223
|
} catch (error) {
|
|
2196
2224
|
if (error instanceof PackLoadError) throw error;
|
|
@@ -3383,7 +3411,7 @@ async function persistDefinitionNote(db, kind, source) {
|
|
|
3383
3411
|
}
|
|
3384
3412
|
const family = kind === "effort" ? "efforts" : "equipment";
|
|
3385
3413
|
const prior = await db.storage.readonly(family).get(parsed.slug);
|
|
3386
|
-
const stamped =
|
|
3414
|
+
const stamped = wod_wiki_engine_star.extractNoteIdentity(source)?.noteId;
|
|
3387
3415
|
const noteId = stamped ?? prior?.ownerNoteId ?? `${kind}/${parsed.slug}`;
|
|
3388
3416
|
const now = Date.now();
|
|
3389
3417
|
return db.storage.transaction(["notes", family, "tags", "note_tags"], "readwrite", async (tx) => {
|
|
@@ -3414,7 +3442,7 @@ async function persistDefinitionNote(db, kind, source) {
|
|
|
3414
3442
|
createdAt: prior?.createdAt ?? isoNow,
|
|
3415
3443
|
updatedAt: isoNow
|
|
3416
3444
|
});
|
|
3417
|
-
await saveTags(tx, noteId,
|
|
3445
|
+
await saveTags(tx, noteId, wod_wiki_engine_star.extractTypedTags(source), now);
|
|
3418
3446
|
return { slug: parsed.slug, noteId, createdNote: !previous };
|
|
3419
3447
|
});
|
|
3420
3448
|
}
|
|
@@ -3441,16 +3469,16 @@ init_db();
|
|
|
3441
3469
|
async function importSeedDir(db, dir, sourceId) {
|
|
3442
3470
|
const fs = nodeFs(), path = nodePath();
|
|
3443
3471
|
const source = sourceId || path.basename(dir);
|
|
3444
|
-
const manifest =
|
|
3445
|
-
const key =
|
|
3472
|
+
const manifest = wod_wiki_engine_star.assertSeedManifest(JSON.parse(fs.readFileSync(path.resolve(dir, "manifest.json"), "utf-8")));
|
|
3473
|
+
const key = wod_wiki_engine_star.seedMetaKey(source);
|
|
3446
3474
|
const stored = await db.storage.readonly("meta").get(key);
|
|
3447
|
-
let expected = stored?.schema ===
|
|
3448
|
-
let meta = expected ??
|
|
3475
|
+
let expected = stored?.schema === wod_wiki_engine_star.SEED_SCHEMA ? stored : void 0;
|
|
3476
|
+
let meta = expected ?? wod_wiki_engine_star.emptySeedMeta(key);
|
|
3449
3477
|
if (manifest.version < meta.seedVersion) throw new Error("Seed manifest is older than stored checkpoint");
|
|
3450
3478
|
const summary = { sourceId: source, version: manifest.version, notes: 0, efforts: 0, equipment: 0, blocks: 0, blockEfforts: 0, deleted: 0, skippedUserOwned: 0 };
|
|
3451
3479
|
const metadataChanged = manifest.version !== meta.seedVersion || manifest.builtAt !== meta.builtAt;
|
|
3452
3480
|
const plan = manifest.chunks.filter((c) => metadataChanged || meta.chunks[c.id]?.sha256 !== c.sha256);
|
|
3453
|
-
plan.sort((a, b) => Number(b.id ===
|
|
3481
|
+
plan.sort((a, b) => Number(b.id === wod_wiki_engine_star.CANVAS_CHUNK_ID) - Number(a.id === wod_wiki_engine_star.CANVAS_CHUNK_ID));
|
|
3454
3482
|
const accumulate = (result) => {
|
|
3455
3483
|
summary.notes += result.totalNotes;
|
|
3456
3484
|
summary.efforts += result.totalEfforts;
|
|
@@ -3460,10 +3488,10 @@ async function importSeedDir(db, dir, sourceId) {
|
|
|
3460
3488
|
summary.skippedUserOwned += result.skippedUserOwned;
|
|
3461
3489
|
};
|
|
3462
3490
|
for (const chunk of plan) {
|
|
3463
|
-
const rows =
|
|
3491
|
+
const rows = wod_wiki_engine_star.assertSeedRows(JSON.parse(fs.readFileSync(path.resolve(dir, chunk.path), "utf-8")));
|
|
3464
3492
|
if (rows.length !== chunk.count) throw new Error("Seed chunk count mismatch");
|
|
3465
|
-
const next = { ...meta, chunks: { ...meta.chunks, [chunk.id]: { sha256: chunk.sha256, noteIds: await Promise.all(rows.map((r) =>
|
|
3466
|
-
accumulate(await
|
|
3493
|
+
const next = { ...meta, chunks: { ...meta.chunks, [chunk.id]: { sha256: chunk.sha256, noteIds: await Promise.all(rows.map((r) => wod_wiki_engine_star.seedNoteId(r.path))) } }, importedAt: Date.now() };
|
|
3494
|
+
accumulate(await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId: chunk.id, rows, manifest, expectedMeta: expected, meta: next }));
|
|
3467
3495
|
summary.blockEfforts += rows.reduce((count, row) => count + row.blockEfforts.length, 0);
|
|
3468
3496
|
meta = next;
|
|
3469
3497
|
expected = next;
|
|
@@ -3473,13 +3501,13 @@ async function importSeedDir(db, dir, sourceId) {
|
|
|
3473
3501
|
const chunks = { ...meta.chunks };
|
|
3474
3502
|
delete chunks[chunkId];
|
|
3475
3503
|
const next = { ...meta, chunks, importedAt: Date.now() };
|
|
3476
|
-
accumulate(await
|
|
3504
|
+
accumulate(await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId, rows: [], manifest, expectedMeta: expected, meta: next }));
|
|
3477
3505
|
meta = next;
|
|
3478
3506
|
expected = next;
|
|
3479
3507
|
}
|
|
3480
3508
|
if (plan.length || metadataChanged || Object.keys(meta.chunks).length !== Object.keys(expected?.chunks ?? {}).length) {
|
|
3481
|
-
const next = { ...meta, schema:
|
|
3482
|
-
await
|
|
3509
|
+
const next = { ...meta, schema: wod_wiki_engine_star.SEED_SCHEMA, seedVersion: manifest.version, builtAt: manifest.builtAt, importedAt: Date.now() };
|
|
3510
|
+
await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId: null, rows: [], manifest, expectedMeta: expected, meta: next });
|
|
3483
3511
|
}
|
|
3484
3512
|
return summary;
|
|
3485
3513
|
}
|
|
@@ -3612,7 +3640,7 @@ async function publishNotebookSeed(db, options) {
|
|
|
3612
3640
|
totalNotes += chunkRows.length;
|
|
3613
3641
|
}
|
|
3614
3642
|
const manifest = {
|
|
3615
|
-
schema:
|
|
3643
|
+
schema: contract_exports.SEED_SCHEMA,
|
|
3616
3644
|
version: options.version ?? 1,
|
|
3617
3645
|
versionLabel: `v${options.version ?? 1}`,
|
|
3618
3646
|
builtAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -4471,8 +4499,8 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4471
4499
|
}
|
|
4472
4500
|
const noteSource = cliNoteSource(source, parsed.target, parsed.sport);
|
|
4473
4501
|
const ir = runParse(source, { sport: parsed.sport, sourceLabel: `cli:wod parse ${parsed.target}` });
|
|
4474
|
-
const identity =
|
|
4475
|
-
const tags =
|
|
4502
|
+
const identity = wod_wiki_engine_star.extractNoteIdentity(source);
|
|
4503
|
+
const tags = wod_wiki_engine_star.extractTypedTags(source);
|
|
4476
4504
|
const db = await openCliDb(cliDb());
|
|
4477
4505
|
try {
|
|
4478
4506
|
const persisted = await persistNote(db, {
|
|
@@ -4511,7 +4539,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4511
4539
|
}
|
|
4512
4540
|
source = fs.readFileSync(parsed.target, "utf-8");
|
|
4513
4541
|
}
|
|
4514
|
-
const identity =
|
|
4542
|
+
const identity = wod_wiki_engine_star.extractNoteIdentity(source);
|
|
4515
4543
|
const db = await openCliDb(cliDb());
|
|
4516
4544
|
let ir;
|
|
4517
4545
|
try {
|
|
@@ -4520,7 +4548,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4520
4548
|
sourceLabel: parsed.target,
|
|
4521
4549
|
noteId: identity?.noteId,
|
|
4522
4550
|
title: identity?.title,
|
|
4523
|
-
tags:
|
|
4551
|
+
tags: wod_wiki_engine_star.extractTypedTags(source)
|
|
4524
4552
|
});
|
|
4525
4553
|
const section = wodWikiCore.parseDocumentSections(started.revision.rawContent).find((row) => row.scriptBlock);
|
|
4526
4554
|
if (!section?.scriptBlock) throw new Error("[wod run] Captured workout source cannot be parsed");
|
|
@@ -4625,7 +4653,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4625
4653
|
writeErr(`[wod ${verb}] Note not found in ${db.path}: ${id}`);
|
|
4626
4654
|
return 1;
|
|
4627
4655
|
}
|
|
4628
|
-
const markdown =
|
|
4656
|
+
const markdown = wod_wiki_engine_star.composeNoteMarkdown(bundle.note);
|
|
4629
4657
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
|
|
4630
4658
|
if (parsed.output === "-") {
|
|
4631
4659
|
writeOut(markdown);
|
|
@@ -4639,7 +4667,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4639
4667
|
writeErr(`[wod ${verb}] Session not found in ${db.path}: ${id}`);
|
|
4640
4668
|
return 1;
|
|
4641
4669
|
}
|
|
4642
|
-
const csv =
|
|
4670
|
+
const csv = wod_wiki_engine_star.sessionToCsv(bundle.session, bundle.events);
|
|
4643
4671
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.csv`;
|
|
4644
4672
|
if (parsed.output === "-") {
|
|
4645
4673
|
writeOut(csv);
|
|
@@ -4655,7 +4683,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4655
4683
|
}
|
|
4656
4684
|
const ownerNoteId = typeof effort.ownerNoteId === "string" ? effort.ownerNoteId : `effort/${effort.slug}`;
|
|
4657
4685
|
const owner = await db.storage.readonly("notes").get(ownerNoteId);
|
|
4658
|
-
const markdown = owner?.rawContent ??
|
|
4686
|
+
const markdown = owner?.rawContent ?? wod_wiki_engine_star.effortToMarkdown(effort);
|
|
4659
4687
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
|
|
4660
4688
|
if (parsed.output === "-") {
|
|
4661
4689
|
writeOut(markdown);
|
|
@@ -4668,7 +4696,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4668
4696
|
if (equipment) {
|
|
4669
4697
|
const ownerNoteId = typeof equipment.ownerNoteId === "string" ? equipment.ownerNoteId : `equipment/${equipment.slug}`;
|
|
4670
4698
|
const owner = await db.storage.readonly("notes").get(ownerNoteId);
|
|
4671
|
-
const markdown = owner?.rawContent ??
|
|
4699
|
+
const markdown = owner?.rawContent ?? wod_wiki_engine_star.equipmentToMarkdown(equipment);
|
|
4672
4700
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
|
|
4673
4701
|
if (parsed.output === "-") {
|
|
4674
4702
|
writeOut(markdown);
|
|
@@ -4678,7 +4706,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4678
4706
|
writeOut(`[wod ${verb}] equipment ${id} \u2192 ${target}`);
|
|
4679
4707
|
} else {
|
|
4680
4708
|
const labels = (await listTagsByType(db.db, "equipment")).map((t) => t.label).sort();
|
|
4681
|
-
const csv =
|
|
4709
|
+
const csv = wod_wiki_engine_star.equipmentToCsv(labels);
|
|
4682
4710
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : "equipment.csv";
|
|
4683
4711
|
if (parsed.output === "-") {
|
|
4684
4712
|
writeOut(csv);
|
|
@@ -4708,8 +4736,8 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4708
4736
|
}
|
|
4709
4737
|
if (kind === "note" || kind === "playground") {
|
|
4710
4738
|
const source = fs.readFileSync(file, "utf-8");
|
|
4711
|
-
const identity =
|
|
4712
|
-
const tags =
|
|
4739
|
+
const identity = wod_wiki_engine_star.extractNoteIdentity(source);
|
|
4740
|
+
const tags = wod_wiki_engine_star.extractTypedTags(source);
|
|
4713
4741
|
const db2 = await openCliDb(cliDb());
|
|
4714
4742
|
try {
|
|
4715
4743
|
const persisted = await persistNote(db2, {
|
|
@@ -4750,7 +4778,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4750
4778
|
return 0;
|
|
4751
4779
|
}
|
|
4752
4780
|
if (kind === "equipment") {
|
|
4753
|
-
const labels =
|
|
4781
|
+
const labels = wod_wiki_engine_star.csvToEquipmentLabels(fs.readFileSync(file, "utf-8"));
|
|
4754
4782
|
if (labels.length === 0) {
|
|
4755
4783
|
writeErr(`[wod import] No equipment labels found in ${file}`);
|
|
4756
4784
|
return 1;
|
|
@@ -4764,7 +4792,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4764
4792
|
}
|
|
4765
4793
|
return 0;
|
|
4766
4794
|
}
|
|
4767
|
-
const { session, events } =
|
|
4795
|
+
const { session, events } = wod_wiki_engine_star.csvToSessionRows(fs.readFileSync(file, "utf-8"));
|
|
4768
4796
|
const db = await openCliDb(cliDb());
|
|
4769
4797
|
try {
|
|
4770
4798
|
const result = await persistSessionBundle(db, session, events);
|