@bitcobblers/wod-wiki-tools 0.45.2166 → 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-PF5BTGWZ.mjs → chunk-76AHBG3R.mjs} +14 -14
- package/dist/chunk-76AHBG3R.mjs.map +1 -0
- package/dist/{chunk-O5ZCOUQE.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-UXH3L5HM.mjs → scaffoldFeed-ALXZOKRV.mjs} +4 -4
- package/dist/{scaffoldFeed-UXH3L5HM.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-DHSfYrHi.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.9ad327d4.json → playground/seed/core/chunks/canvas.dc1d093c.json} +1 -1
- package/dist/web/playground/seed/core/chunks/{dashboards.f4196444.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.e7531ab5.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-BPmNsGND.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.9ad327d4.json → server/seed/core/chunks/canvas.dc1d093c.json} +1 -1
- package/dist/web/server/seed/core/chunks/{dashboards.f4196444.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.e7531ab5.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 +12 -12
- package/package.json +6 -6
- package/dist/chunk-6L5ZDZJ7.mjs +0 -15
- package/dist/chunk-EAFF2GVB.mjs.map +0 -1
- package/dist/chunk-O5ZCOUQE.mjs.map +0 -1
- package/dist/chunk-PF5BTGWZ.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-DAHoAykp.js +0 -491
- package/dist/web/playground/seed/core/chunks/efforts.7f0d2160.json +0 -1
- package/dist/web/server/assets/main-BKDG9P36.css +0 -2
- package/dist/web/server/assets/main-C_b1CczJ.js +0 -491
- package/dist/web/server/seed/core/chunks/efforts.7f0d2160.json +0 -1
package/dist/bin/wod.cjs
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var wodWikiLang = require('@bitcobblers/wod-wiki-lang');
|
|
5
|
-
var
|
|
5
|
+
var wod_wiki_engine_star = require('@bitcobblers/wod-wiki-engine');
|
|
6
6
|
var child_process = require('child_process');
|
|
7
7
|
var fs = require('fs');
|
|
8
8
|
var path = require('path');
|
|
9
|
+
var wodWikiCore = require('@bitcobblers/wod-wiki-core');
|
|
9
10
|
var wodWikiWql = require('@bitcobblers/wod-wiki-wql');
|
|
10
11
|
var crypto = require('crypto');
|
|
11
12
|
var promises = require('fs/promises');
|
|
@@ -13,15 +14,35 @@ var stream = require('stream');
|
|
|
13
14
|
var sql = require('@bitcobblers/wod-wiki-storage/sql');
|
|
14
15
|
var wodWikiStorage = require('@bitcobblers/wod-wiki-storage');
|
|
15
16
|
var http = require('http');
|
|
16
|
-
var wodWikiEngine = require('@bitcobblers/wod-wiki-engine');
|
|
17
17
|
|
|
18
18
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
19
19
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
20
|
|
|
21
|
+
function _interopNamespace(e) {
|
|
22
|
+
if (e && e.__esModule) return e;
|
|
23
|
+
var n = Object.create(null);
|
|
24
|
+
if (e) {
|
|
25
|
+
Object.keys(e).forEach(function (k) {
|
|
26
|
+
if (k !== 'default') {
|
|
27
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
28
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return e[k]; }
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
n.default = e;
|
|
36
|
+
return Object.freeze(n);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
var wod_wiki_engine_star__namespace = /*#__PURE__*/_interopNamespace(wod_wiki_engine_star);
|
|
21
40
|
var http__default = /*#__PURE__*/_interopDefault(http);
|
|
22
41
|
|
|
23
42
|
var __defProp = Object.defineProperty;
|
|
43
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
24
44
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
45
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
25
46
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
26
47
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
27
48
|
}) : x)(function(x) {
|
|
@@ -35,6 +56,15 @@ var __export = (target, all) => {
|
|
|
35
56
|
for (var name in all)
|
|
36
57
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
37
58
|
};
|
|
59
|
+
var __copyProps = (to, from, except, desc) => {
|
|
60
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
61
|
+
for (let key of __getOwnPropNames(from))
|
|
62
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
63
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
64
|
+
}
|
|
65
|
+
return to;
|
|
66
|
+
};
|
|
67
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
|
|
38
68
|
function nodeRequire() {
|
|
39
69
|
const g = globalThis;
|
|
40
70
|
if (typeof g.process?.versions?.node === "undefined" && typeof g.Bun === "undefined") {
|
|
@@ -161,7 +191,7 @@ function sqliteEventStore(db) {
|
|
|
161
191
|
getEventsByTimeRange: async (start, end) => (await all()).filter((r) => r.timestamp >= start && r.timestamp <= end),
|
|
162
192
|
getEventsByResult: async (resultId) => (await all()).filter((r) => r.resultId === resultId),
|
|
163
193
|
getEventsForNote: async (noteId) => (await all()).filter((r) => r.noteId === noteId),
|
|
164
|
-
getEventsByContent: async (
|
|
194
|
+
getEventsByContent: async (blockContentId4) => (await all()).filter((r) => r.blockContentId === blockContentId4),
|
|
165
195
|
scanAll: all,
|
|
166
196
|
appendEvents: async (appended) => {
|
|
167
197
|
const sql = await loadSql();
|
|
@@ -286,39 +316,12 @@ var init_db = __esm({
|
|
|
286
316
|
CLI_UUID_NAMESPACE = "c0ffee00-8b1a-4e2c-9d3f-5a6b7c8d9e0f";
|
|
287
317
|
}
|
|
288
318
|
});
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
function canvasRouteSlug(content) {
|
|
294
|
-
const fm = /^---\r?\n([\s\S]*?)\r?\n---/.exec(content);
|
|
295
|
-
if (fm?.[1] && !/^template:\s*canvas\s*$/m.test(fm[1])) return null;
|
|
296
|
-
return fm?.[1]?.match(/^route:\s*(\S+)\s*$/m)?.[1]?.replace(/^\//, "") || null;
|
|
297
|
-
}
|
|
298
|
-
function seedNoteSourceId(path, content, chunkId) {
|
|
299
|
-
const parts = path.split("/");
|
|
300
|
-
const stem = (parts.at(-1) ?? "").replace(/\.md$/i, "");
|
|
301
|
-
const under = parts.slice(2).map((p) => p.replace(/\.md$/i, "")).join("/");
|
|
302
|
-
if (chunkId === CANVAS_CHUNK_ID2) return `guides:${canvasRouteSlug(content) ?? under}`;
|
|
303
|
-
if (chunkId === DASHBOARDS_CHUNK_ID) return "dashboards";
|
|
304
|
-
if (chunkId === EFFORTS_CHUNK_ID) return "efforts";
|
|
305
|
-
if (chunkId === EQUIPMENT_CHUNK_ID) return "equipment";
|
|
306
|
-
if (chunkId.startsWith("notebook.")) {
|
|
307
|
-
const slug = notebookSlugForChunkId(chunkId);
|
|
308
|
-
return !slug ? "notebook:_root" : stem.toLowerCase() === "readme" ? `notebook:${slug}` : `notebook:${under}`;
|
|
309
|
-
}
|
|
310
|
-
return void 0;
|
|
311
|
-
}
|
|
312
|
-
var SEED_SCHEMA2, SEED_REGISTERED_WIDGETS, SEED_NAMESPACE, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, CANVAS_CHUNK_ID2, DASHBOARDS_CHUNK_ID;
|
|
319
|
+
|
|
320
|
+
// src/seedbuild/contract.ts
|
|
321
|
+
var contract_exports = {};
|
|
313
322
|
var init_contract = __esm({
|
|
314
323
|
"src/seedbuild/contract.ts"() {
|
|
315
|
-
|
|
316
|
-
SEED_REGISTERED_WIDGETS = wodWikiCore.KNOWN_SECTION_WIDGETS;
|
|
317
|
-
SEED_NAMESPACE = "1b671a64-40d5-491e-99b0-da01ff1f3341";
|
|
318
|
-
EFFORTS_CHUNK_ID = "efforts";
|
|
319
|
-
EQUIPMENT_CHUNK_ID = "equipment";
|
|
320
|
-
CANVAS_CHUNK_ID2 = "canvas";
|
|
321
|
-
DASHBOARDS_CHUNK_ID = "dashboards";
|
|
324
|
+
__reExport(contract_exports, wod_wiki_engine_star__namespace);
|
|
322
325
|
}
|
|
323
326
|
});
|
|
324
327
|
|
|
@@ -502,37 +505,12 @@ var init_frontmatter = __esm({
|
|
|
502
505
|
FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
|
|
503
506
|
}
|
|
504
507
|
});
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
}
|
|
508
|
-
function nonnegative(value) {
|
|
509
|
-
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
510
|
-
}
|
|
511
|
-
function assertSeedManifest2(value) {
|
|
512
|
-
if (!object(value) || value.schema !== SEED_SCHEMA2) throw new Error("Incompatible seed schema; rebuild seed artifacts");
|
|
513
|
-
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");
|
|
514
|
-
for (const key of ["versionLabel", "commit", "name", "description"]) if (value[key] !== void 0 && typeof value[key] !== "string") throw new Error("invalid seed manifest metadata");
|
|
515
|
-
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");
|
|
516
|
-
if (value.dirty !== void 0 && typeof value.dirty !== "boolean") throw new Error("invalid seed manifest metadata");
|
|
517
|
-
const ids = /* @__PURE__ */ new Set(), paths = /* @__PURE__ */ new Set();
|
|
518
|
-
for (const chunk of value.chunks) {
|
|
519
|
-
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");
|
|
520
|
-
ids.add(chunk.id);
|
|
521
|
-
paths.add(chunk.path);
|
|
522
|
-
}
|
|
523
|
-
if (value.notebooks !== void 0) {
|
|
524
|
-
if (!Array.isArray(value.notebooks)) throw new Error("seed manifest failed shape validation");
|
|
525
|
-
for (const nb of value.notebooks) {
|
|
526
|
-
if (!object(nb) || typeof nb.notebookId !== "string" || typeof nb.label !== "string" || !nonnegative(nb.count) || !Array.isArray(nb.records)) {
|
|
527
|
-
throw new Error("seed manifest failed shape validation");
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
return value;
|
|
532
|
-
}
|
|
508
|
+
|
|
509
|
+
// src/seedbuild/validation.ts
|
|
510
|
+
var validation_exports = {};
|
|
533
511
|
var init_validation = __esm({
|
|
534
512
|
"src/seedbuild/validation.ts"() {
|
|
535
|
-
|
|
513
|
+
__reExport(validation_exports, wod_wiki_engine_star__namespace);
|
|
536
514
|
}
|
|
537
515
|
});
|
|
538
516
|
|
|
@@ -551,6 +529,10 @@ __export(compiler_exports, {
|
|
|
551
529
|
generateSeed: () => generateSeed,
|
|
552
530
|
getFileCommit: () => getFileCommit,
|
|
553
531
|
getFileVersion: () => getFileVersion,
|
|
532
|
+
getPathCommit: () => getPathCommit,
|
|
533
|
+
getPathUpdatedAt: () => getPathUpdatedAt,
|
|
534
|
+
getPathVersion: () => getPathVersion,
|
|
535
|
+
groupCorpusPath: () => groupCorpusPath,
|
|
554
536
|
loadCorpusReferenceCatalog: () => loadCorpusReferenceCatalog,
|
|
555
537
|
partitionIntoChunks: () => partitionIntoChunks,
|
|
556
538
|
scaffoldDiscoveredEfforts: () => scaffoldDiscoveredEfforts,
|
|
@@ -633,7 +615,7 @@ function validateDashboardNote(raw) {
|
|
|
633
615
|
}
|
|
634
616
|
function gateDashboards(groups, corpusRoot) {
|
|
635
617
|
for (const group of groups) {
|
|
636
|
-
if (group.id !== DASHBOARDS_CHUNK_ID) continue;
|
|
618
|
+
if (group.id !== contract_exports.DASHBOARDS_CHUNK_ID) continue;
|
|
637
619
|
for (const p of group.files) {
|
|
638
620
|
const problems = validateDashboardNote(fs.readFileSync(path.join(corpusRoot, p), "utf8"));
|
|
639
621
|
if (problems.length > 0) {
|
|
@@ -653,7 +635,7 @@ function getFileCreatedAt(file, repoRoot) {
|
|
|
653
635
|
}
|
|
654
636
|
}
|
|
655
637
|
function seedNoteIdSync(path) {
|
|
656
|
-
const hash = crypto.createHash("sha1").update(`${SEED_NAMESPACE}:${path}`).digest();
|
|
638
|
+
const hash = crypto.createHash("sha1").update(`${contract_exports.SEED_NAMESPACE}:${path}`).digest();
|
|
657
639
|
const bytes = new Uint8Array(hash.subarray(0, 16));
|
|
658
640
|
bytes[6] = bytes[6] & 15 | 80;
|
|
659
641
|
bytes[8] = bytes[8] & 63 | 128;
|
|
@@ -675,6 +657,37 @@ function getFileVersion(file, repoRoot) {
|
|
|
675
657
|
return 1;
|
|
676
658
|
}
|
|
677
659
|
}
|
|
660
|
+
function getPathVersion(targetPath, repoRoot) {
|
|
661
|
+
try {
|
|
662
|
+
const out = child_process.execFileSync("git", ["rev-list", "--count", "HEAD", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
663
|
+
const count = Number(out);
|
|
664
|
+
return Number.isFinite(count) && count > 0 ? count : 1;
|
|
665
|
+
} catch {
|
|
666
|
+
return 1;
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
function getPathCommit(targetPath, repoRoot) {
|
|
670
|
+
try {
|
|
671
|
+
return child_process.execFileSync("git", ["log", "-1", "--format=%H", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
672
|
+
} catch {
|
|
673
|
+
return "";
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
function getPathUpdatedAt(targetPath, repoRoot) {
|
|
677
|
+
try {
|
|
678
|
+
const out = child_process.execFileSync("git", ["log", "-1", "--format=%cI", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
679
|
+
return out || void 0;
|
|
680
|
+
} catch {
|
|
681
|
+
return void 0;
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
function groupCorpusPath(id) {
|
|
685
|
+
if (id.startsWith("notebook.")) {
|
|
686
|
+
const slug = id.slice("notebook.".length);
|
|
687
|
+
return slug === "_root" ? "markdown/notebooks" : `markdown/notebooks/${slug}`;
|
|
688
|
+
}
|
|
689
|
+
return `markdown/${id}`;
|
|
690
|
+
}
|
|
678
691
|
function frontmatterDateToCreatedAt(raw, path) {
|
|
679
692
|
const value = getScalar(parseFrontmatter(raw).meta, "date");
|
|
680
693
|
if (value === void 0 || value === "") return void 0;
|
|
@@ -694,7 +707,7 @@ function dateKeyToCreatedAt(dateKey) {
|
|
|
694
707
|
}
|
|
695
708
|
function compileSeedRow(path, content, metadata = {}) {
|
|
696
709
|
let ordinal = 0;
|
|
697
|
-
const blocks = wodWikiCore.reconcileNoteBlocks(content, { sourceRevision: 1, registeredWidgets: SEED_REGISTERED_WIDGETS, createId: () => `seed:${path}:${ordinal++}` });
|
|
710
|
+
const blocks = wodWikiCore.reconcileNoteBlocks(content, { sourceRevision: 1, registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS, createId: () => `seed:${path}:${ordinal++}` });
|
|
698
711
|
const noteId = metadata.routeId ?? path;
|
|
699
712
|
const sections = wodWikiCore.parseDocumentSections(content);
|
|
700
713
|
const blockIndex = Object.values(blocks).map((block, position) => {
|
|
@@ -712,8 +725,8 @@ function buildBlockIndexRows(markdownDir, corpusRoot, excludePaths = []) {
|
|
|
712
725
|
const parts = path$1.split("/");
|
|
713
726
|
const stem = (parts.at(-1) ?? "").replace(/\.md$/, "");
|
|
714
727
|
const slug = parts[2];
|
|
715
|
-
const routeId = chunkId === "canvas" ? canvasRouteSlug(content) ?? void 0 : chunkId.startsWith("notebook.") ? stem.toLowerCase() === "readme" ? slug : parts.slice(2).join("/").replace(/\.md$/, "") : void 0;
|
|
716
|
-
const sourceId = seedNoteSourceId(path$1, content, chunkId);
|
|
728
|
+
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;
|
|
729
|
+
const sourceId = (0, contract_exports.seedNoteSourceId)(path$1, content, chunkId);
|
|
717
730
|
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));
|
|
718
731
|
rows.push(...compileSeedRow(path$1, content, { routeId, sourceId, createdAt }).blockIndex);
|
|
719
732
|
}
|
|
@@ -723,7 +736,7 @@ function validateWodBlockSyntax(blocks) {
|
|
|
723
736
|
const problems = [];
|
|
724
737
|
for (const block of blocks) {
|
|
725
738
|
if (block.dataType !== "wod" || !block.rawContent?.trim()) continue;
|
|
726
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
739
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
727
740
|
const source = section?.scriptBlock?.content ?? block.rawContent;
|
|
728
741
|
if (!source.trim()) continue;
|
|
729
742
|
const where = block.sourcePath ?? block.noteId;
|
|
@@ -773,7 +786,7 @@ function discoverUncatalogedEfforts(markdownDir, corpusRoot, excludePaths = [])
|
|
|
773
786
|
const discovered = /* @__PURE__ */ new Map();
|
|
774
787
|
for (const block of blocks) {
|
|
775
788
|
if (block.dataType !== "wod" || !block.rawContent) continue;
|
|
776
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
789
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
777
790
|
const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
|
|
778
791
|
for (const statement of script.statements) {
|
|
779
792
|
const effortMetric = statement.metrics?.getMetric?.("effort");
|
|
@@ -834,7 +847,7 @@ function buildBlockEffortRows(markdownDir, corpusRoot, blocks = buildBlockIndexR
|
|
|
834
847
|
const index = wodWikiLang.createReferenceIndex(loadCorpusReferenceCatalog(markdownDir));
|
|
835
848
|
for (const block of blocks) {
|
|
836
849
|
if (block.dataType !== "wod" || !block.rawContent) continue;
|
|
837
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
850
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
|
|
838
851
|
const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
|
|
839
852
|
const linked = /* @__PURE__ */ new Set();
|
|
840
853
|
for (const rawSlug of wodWikiLang.extractStatementRefs(script.statements).efforts) {
|
|
@@ -864,7 +877,7 @@ function buildBlockEquipmentRows(markdownDir, corpusRoot, blocks = buildBlockInd
|
|
|
864
877
|
const index = wodWikiLang.createReferenceIndex(loadCorpusReferenceCatalog(markdownDir));
|
|
865
878
|
for (const block of blocks) {
|
|
866
879
|
if (block.dataType !== "wod" || !block.rawContent) continue;
|
|
867
|
-
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
880
|
+
const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
|
|
868
881
|
const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
|
|
869
882
|
const linked = /* @__PURE__ */ new Set();
|
|
870
883
|
for (const rawSlug of wodWikiLang.extractStatementRefs(script.statements).equipment) {
|
|
@@ -954,6 +967,7 @@ ${shown}${more}`);
|
|
|
954
967
|
}
|
|
955
968
|
let totalFiles = 0;
|
|
956
969
|
const manifestNotebooks = [];
|
|
970
|
+
const manifestBuiltAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
957
971
|
const tWrite = Date.now();
|
|
958
972
|
for (const { id, files } of groups) {
|
|
959
973
|
const records = [];
|
|
@@ -988,42 +1002,56 @@ ${shown}${more}`);
|
|
|
988
1002
|
});
|
|
989
1003
|
return compiled;
|
|
990
1004
|
});
|
|
1005
|
+
(0, validation_exports.assertSeedRows)(rows);
|
|
991
1006
|
const bytes = Buffer.from(JSON.stringify(rows), "utf8");
|
|
992
1007
|
const sha = sha256Hex(bytes);
|
|
993
1008
|
const file = `chunks/${id}.${sha.slice(0, 8)}.json`;
|
|
994
1009
|
fs.writeFileSync(path.join(outDir, file), bytes);
|
|
995
1010
|
manifestChunks.push({ id, path: file, sha256: sha, bytes: bytes.length, count: rows.length });
|
|
996
1011
|
totalFiles += rows.length;
|
|
1012
|
+
const groupPath = groupCorpusPath(id);
|
|
1013
|
+
const groupVersion = getPathVersion(groupPath, corpusRoot);
|
|
1014
|
+
const groupCommit = getPathCommit(groupPath, corpusRoot) || gitVersion.commit || "";
|
|
1015
|
+
const groupUpdatedAt = getPathUpdatedAt(groupPath, corpusRoot);
|
|
997
1016
|
const notebookIndexPath = `indexes/notebooks/${id}.json`;
|
|
998
|
-
const
|
|
1017
|
+
const summary = {
|
|
999
1018
|
notebookId: id,
|
|
1000
1019
|
label: fileToDisplayName(id.split(".").at(-1) ?? id),
|
|
1001
|
-
category: notebookSlugForChunkId(id),
|
|
1020
|
+
category: (0, contract_exports.notebookSlugForChunkId)(id),
|
|
1002
1021
|
indexPath: notebookIndexPath,
|
|
1003
|
-
|
|
1004
|
-
|
|
1022
|
+
version: groupVersion,
|
|
1023
|
+
commit: groupCommit,
|
|
1024
|
+
updatedAt: groupUpdatedAt,
|
|
1025
|
+
builtAt: manifestBuiltAt,
|
|
1026
|
+
sha256: sha,
|
|
1027
|
+
bytes: bytes.length,
|
|
1028
|
+
count: rows.length
|
|
1029
|
+
};
|
|
1030
|
+
const notebookIndex = {
|
|
1031
|
+
...summary,
|
|
1005
1032
|
records
|
|
1006
1033
|
};
|
|
1034
|
+
(0, validation_exports.assertNotebookIndex)(notebookIndex);
|
|
1007
1035
|
const indexOutFile = path.join(outDir, notebookIndexPath);
|
|
1008
1036
|
fs.mkdirSync(path.dirname(indexOutFile), { recursive: true });
|
|
1009
1037
|
fs.writeFileSync(indexOutFile, JSON.stringify(notebookIndex, null, 2) + "\n");
|
|
1010
|
-
manifestNotebooks.push(
|
|
1038
|
+
manifestNotebooks.push(summary);
|
|
1011
1039
|
}
|
|
1012
1040
|
passMs.write = Date.now() - tWrite;
|
|
1013
1041
|
const manifest = {
|
|
1014
1042
|
name: "name" in metadata && typeof metadata.name === "string" ? metadata.name : void 0,
|
|
1015
1043
|
description: "description" in metadata && typeof metadata.description === "string" ? metadata.description : void 0,
|
|
1016
1044
|
repositoryUrl: repositoryLink?.protocol === "https:" && !repositoryLink.username && !repositoryLink.password ? repositoryLink.href : void 0,
|
|
1017
|
-
schema:
|
|
1045
|
+
schema: contract_exports.SEED_SCHEMA,
|
|
1018
1046
|
version: gitVersion.version,
|
|
1019
1047
|
versionLabel: gitVersion.versionLabel,
|
|
1020
1048
|
commit: gitVersion.commit,
|
|
1021
1049
|
dirty: gitVersion.dirty,
|
|
1022
|
-
builtAt:
|
|
1050
|
+
builtAt: manifestBuiltAt,
|
|
1023
1051
|
chunks: manifestChunks,
|
|
1024
1052
|
notebooks: manifestNotebooks
|
|
1025
1053
|
};
|
|
1026
|
-
|
|
1054
|
+
(0, validation_exports.assertSeedManifest)(manifest);
|
|
1027
1055
|
fs.writeFileSync(path.join(outDir, "manifest.json"), JSON.stringify(manifest, null, 2) + "\n");
|
|
1028
1056
|
const reportPath = writeBuildReport(outDir, {
|
|
1029
1057
|
manifest,
|
|
@@ -1094,7 +1122,7 @@ var init_compiler = __esm({
|
|
|
1094
1122
|
var VERSION;
|
|
1095
1123
|
var init_version = __esm({
|
|
1096
1124
|
"src/version.ts"() {
|
|
1097
|
-
VERSION = "0.
|
|
1125
|
+
VERSION = "0.46.2168";
|
|
1098
1126
|
}
|
|
1099
1127
|
});
|
|
1100
1128
|
|
|
@@ -1859,7 +1887,7 @@ async function loadLanguagePack(moduleSpec) {
|
|
|
1859
1887
|
throw new Error(`Module "${moduleSpec}" does not export a valid LanguagePack object`);
|
|
1860
1888
|
}
|
|
1861
1889
|
const pack = candidate;
|
|
1862
|
-
|
|
1890
|
+
wod_wiki_engine_star.registerLanguagePack(pack);
|
|
1863
1891
|
return pack;
|
|
1864
1892
|
} catch (error) {
|
|
1865
1893
|
if (error instanceof PackLoadError) throw error;
|
|
@@ -1881,8 +1909,8 @@ function runParse(source, options = {}) {
|
|
|
1881
1909
|
if (script.errors && script.errors.length > 0) {
|
|
1882
1910
|
throw new ParseSyntaxError(script.errors);
|
|
1883
1911
|
}
|
|
1884
|
-
const tree =
|
|
1885
|
-
return
|
|
1912
|
+
const tree = wod_wiki_engine_star.buildStatementTree(script);
|
|
1913
|
+
return wod_wiki_engine_star.createIRFile("parse-tree", tree, { source: options.sourceLabel ?? "cli:wod parse" });
|
|
1886
1914
|
}
|
|
1887
1915
|
function buildWorkoutResults(outputs, options) {
|
|
1888
1916
|
return {
|
|
@@ -1945,7 +1973,7 @@ async function runExecution(source, options = {}) {
|
|
|
1945
1973
|
now
|
|
1946
1974
|
});
|
|
1947
1975
|
const logs = outputs.map(wodWikiLang.toStoredOutputStatement);
|
|
1948
|
-
return
|
|
1976
|
+
return wod_wiki_engine_star.createIRFile(
|
|
1949
1977
|
"execution-log",
|
|
1950
1978
|
{
|
|
1951
1979
|
results: workoutResults,
|
|
@@ -1975,7 +2003,7 @@ var WqlSyntaxError = class extends Error {
|
|
|
1975
2003
|
function extractPayload(rawJson) {
|
|
1976
2004
|
try {
|
|
1977
2005
|
const parsed = JSON.parse(rawJson);
|
|
1978
|
-
if (
|
|
2006
|
+
if (wod_wiki_engine_star.isIRFile(parsed)) {
|
|
1979
2007
|
return parsed.data;
|
|
1980
2008
|
}
|
|
1981
2009
|
return parsed;
|
|
@@ -2007,7 +2035,7 @@ function buildStoresFromData(data) {
|
|
|
2007
2035
|
blockVersion: f.blockVersion
|
|
2008
2036
|
}))
|
|
2009
2037
|
];
|
|
2010
|
-
const eventStore =
|
|
2038
|
+
const eventStore = wod_wiki_engine_star.inMemoryEventStore(events);
|
|
2011
2039
|
const noteStore = {
|
|
2012
2040
|
getAllNotes: async () => [...data.notes],
|
|
2013
2041
|
getNotesByIds: async (ids) => {
|
|
@@ -2186,17 +2214,17 @@ async function runQueryCli(wqlString, options = {}) {
|
|
|
2186
2214
|
const result2 = await service.runPipeline(wqlString, {
|
|
2187
2215
|
preferredUnit: options.preferredUnit
|
|
2188
2216
|
});
|
|
2189
|
-
return
|
|
2217
|
+
return wod_wiki_engine_star.createIRFile("pipeline-result", result2, { source: options.sourceLabel ?? "cli:wod query" });
|
|
2190
2218
|
}
|
|
2191
2219
|
if (wodWikiWql.isFindQuery(parsed)) {
|
|
2192
2220
|
const result2 = await service.runFind(parsed);
|
|
2193
2221
|
const kind = parsed.target === "session" ? "rows-result" : "find-result";
|
|
2194
|
-
return
|
|
2222
|
+
return wod_wiki_engine_star.createIRFile(kind, result2, { source: options.sourceLabel ?? "cli:wod query" });
|
|
2195
2223
|
}
|
|
2196
2224
|
const result = await service.runQuery(wqlString, {
|
|
2197
2225
|
preferredUnit: options.preferredUnit
|
|
2198
2226
|
});
|
|
2199
|
-
return
|
|
2227
|
+
return wod_wiki_engine_star.createIRFile("query-result", result, { source: options.sourceLabel ?? "cli:wod query" });
|
|
2200
2228
|
}
|
|
2201
2229
|
|
|
2202
2230
|
// src/cli/runner.ts
|
|
@@ -3384,7 +3412,7 @@ async function persistDefinitionNote(db, kind, source) {
|
|
|
3384
3412
|
}
|
|
3385
3413
|
const family = kind === "effort" ? "efforts" : "equipment";
|
|
3386
3414
|
const prior = await db.storage.readonly(family).get(parsed.slug);
|
|
3387
|
-
const stamped =
|
|
3415
|
+
const stamped = wod_wiki_engine_star.extractNoteIdentity(source)?.noteId;
|
|
3388
3416
|
const noteId = stamped ?? prior?.ownerNoteId ?? `${kind}/${parsed.slug}`;
|
|
3389
3417
|
const now = Date.now();
|
|
3390
3418
|
return db.storage.transaction(["notes", family, "tags", "note_tags"], "readwrite", async (tx) => {
|
|
@@ -3415,7 +3443,7 @@ async function persistDefinitionNote(db, kind, source) {
|
|
|
3415
3443
|
createdAt: prior?.createdAt ?? isoNow,
|
|
3416
3444
|
updatedAt: isoNow
|
|
3417
3445
|
});
|
|
3418
|
-
await saveTags(tx, noteId,
|
|
3446
|
+
await saveTags(tx, noteId, wod_wiki_engine_star.extractTypedTags(source), now);
|
|
3419
3447
|
return { slug: parsed.slug, noteId, createdNote: !previous };
|
|
3420
3448
|
});
|
|
3421
3449
|
}
|
|
@@ -3442,16 +3470,16 @@ init_db();
|
|
|
3442
3470
|
async function importSeedDir(db, dir, sourceId) {
|
|
3443
3471
|
const fs = nodeFs(), path = nodePath();
|
|
3444
3472
|
const source = sourceId || path.basename(dir);
|
|
3445
|
-
const manifest =
|
|
3446
|
-
const key =
|
|
3473
|
+
const manifest = wod_wiki_engine_star.assertSeedManifest(JSON.parse(fs.readFileSync(path.resolve(dir, "manifest.json"), "utf-8")));
|
|
3474
|
+
const key = wod_wiki_engine_star.seedMetaKey(source);
|
|
3447
3475
|
const stored = await db.storage.readonly("meta").get(key);
|
|
3448
|
-
let expected = stored?.schema ===
|
|
3449
|
-
let meta = expected ??
|
|
3476
|
+
let expected = stored?.schema === wod_wiki_engine_star.SEED_SCHEMA ? stored : void 0;
|
|
3477
|
+
let meta = expected ?? wod_wiki_engine_star.emptySeedMeta(key);
|
|
3450
3478
|
if (manifest.version < meta.seedVersion) throw new Error("Seed manifest is older than stored checkpoint");
|
|
3451
3479
|
const summary = { sourceId: source, version: manifest.version, notes: 0, efforts: 0, equipment: 0, blocks: 0, blockEfforts: 0, deleted: 0, skippedUserOwned: 0 };
|
|
3452
3480
|
const metadataChanged = manifest.version !== meta.seedVersion || manifest.builtAt !== meta.builtAt;
|
|
3453
3481
|
const plan = manifest.chunks.filter((c) => metadataChanged || meta.chunks[c.id]?.sha256 !== c.sha256);
|
|
3454
|
-
plan.sort((a, b) => Number(b.id ===
|
|
3482
|
+
plan.sort((a, b) => Number(b.id === wod_wiki_engine_star.CANVAS_CHUNK_ID) - Number(a.id === wod_wiki_engine_star.CANVAS_CHUNK_ID));
|
|
3455
3483
|
const accumulate = (result) => {
|
|
3456
3484
|
summary.notes += result.totalNotes;
|
|
3457
3485
|
summary.efforts += result.totalEfforts;
|
|
@@ -3461,10 +3489,10 @@ async function importSeedDir(db, dir, sourceId) {
|
|
|
3461
3489
|
summary.skippedUserOwned += result.skippedUserOwned;
|
|
3462
3490
|
};
|
|
3463
3491
|
for (const chunk of plan) {
|
|
3464
|
-
const rows =
|
|
3492
|
+
const rows = wod_wiki_engine_star.assertSeedRows(JSON.parse(fs.readFileSync(path.resolve(dir, chunk.path), "utf-8")));
|
|
3465
3493
|
if (rows.length !== chunk.count) throw new Error("Seed chunk count mismatch");
|
|
3466
|
-
const next = { ...meta, chunks: { ...meta.chunks, [chunk.id]: { sha256: chunk.sha256, noteIds: await Promise.all(rows.map((r) =>
|
|
3467
|
-
accumulate(await
|
|
3494
|
+
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() };
|
|
3495
|
+
accumulate(await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId: chunk.id, rows, manifest, expectedMeta: expected, meta: next }));
|
|
3468
3496
|
summary.blockEfforts += rows.reduce((count, row) => count + row.blockEfforts.length, 0);
|
|
3469
3497
|
meta = next;
|
|
3470
3498
|
expected = next;
|
|
@@ -3474,13 +3502,13 @@ async function importSeedDir(db, dir, sourceId) {
|
|
|
3474
3502
|
const chunks = { ...meta.chunks };
|
|
3475
3503
|
delete chunks[chunkId];
|
|
3476
3504
|
const next = { ...meta, chunks, importedAt: Date.now() };
|
|
3477
|
-
accumulate(await
|
|
3505
|
+
accumulate(await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId, rows: [], manifest, expectedMeta: expected, meta: next }));
|
|
3478
3506
|
meta = next;
|
|
3479
3507
|
expected = next;
|
|
3480
3508
|
}
|
|
3481
3509
|
if (plan.length || metadataChanged || Object.keys(meta.chunks).length !== Object.keys(expected?.chunks ?? {}).length) {
|
|
3482
|
-
const next = { ...meta, schema:
|
|
3483
|
-
await
|
|
3510
|
+
const next = { ...meta, schema: wod_wiki_engine_star.SEED_SCHEMA, seedVersion: manifest.version, builtAt: manifest.builtAt, importedAt: Date.now() };
|
|
3511
|
+
await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId: null, rows: [], manifest, expectedMeta: expected, meta: next });
|
|
3484
3512
|
}
|
|
3485
3513
|
return summary;
|
|
3486
3514
|
}
|
|
@@ -3613,7 +3641,7 @@ async function publishNotebookSeed(db, options) {
|
|
|
3613
3641
|
totalNotes += chunkRows.length;
|
|
3614
3642
|
}
|
|
3615
3643
|
const manifest = {
|
|
3616
|
-
schema:
|
|
3644
|
+
schema: contract_exports.SEED_SCHEMA,
|
|
3617
3645
|
version: options.version ?? 1,
|
|
3618
3646
|
versionLabel: `v${options.version ?? 1}`,
|
|
3619
3647
|
builtAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -4472,8 +4500,8 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4472
4500
|
}
|
|
4473
4501
|
const noteSource = cliNoteSource(source, parsed.target, parsed.sport);
|
|
4474
4502
|
const ir = runParse(source, { sport: parsed.sport, sourceLabel: `cli:wod parse ${parsed.target}` });
|
|
4475
|
-
const identity =
|
|
4476
|
-
const tags =
|
|
4503
|
+
const identity = wod_wiki_engine_star.extractNoteIdentity(source);
|
|
4504
|
+
const tags = wod_wiki_engine_star.extractTypedTags(source);
|
|
4477
4505
|
const db = await openCliDb(cliDb());
|
|
4478
4506
|
try {
|
|
4479
4507
|
const persisted = await persistNote(db, {
|
|
@@ -4512,7 +4540,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4512
4540
|
}
|
|
4513
4541
|
source = fs.readFileSync(parsed.target, "utf-8");
|
|
4514
4542
|
}
|
|
4515
|
-
const identity =
|
|
4543
|
+
const identity = wod_wiki_engine_star.extractNoteIdentity(source);
|
|
4516
4544
|
const db = await openCliDb(cliDb());
|
|
4517
4545
|
let ir;
|
|
4518
4546
|
try {
|
|
@@ -4521,7 +4549,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4521
4549
|
sourceLabel: parsed.target,
|
|
4522
4550
|
noteId: identity?.noteId,
|
|
4523
4551
|
title: identity?.title,
|
|
4524
|
-
tags:
|
|
4552
|
+
tags: wod_wiki_engine_star.extractTypedTags(source)
|
|
4525
4553
|
});
|
|
4526
4554
|
const section = wodWikiCore.parseDocumentSections(started.revision.rawContent).find((row) => row.scriptBlock);
|
|
4527
4555
|
if (!section?.scriptBlock) throw new Error("[wod run] Captured workout source cannot be parsed");
|
|
@@ -4626,7 +4654,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4626
4654
|
writeErr(`[wod ${verb}] Note not found in ${db.path}: ${id}`);
|
|
4627
4655
|
return 1;
|
|
4628
4656
|
}
|
|
4629
|
-
const markdown =
|
|
4657
|
+
const markdown = wod_wiki_engine_star.composeNoteMarkdown(bundle.note);
|
|
4630
4658
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
|
|
4631
4659
|
if (parsed.output === "-") {
|
|
4632
4660
|
writeOut(markdown);
|
|
@@ -4640,7 +4668,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4640
4668
|
writeErr(`[wod ${verb}] Session not found in ${db.path}: ${id}`);
|
|
4641
4669
|
return 1;
|
|
4642
4670
|
}
|
|
4643
|
-
const csv =
|
|
4671
|
+
const csv = wod_wiki_engine_star.sessionToCsv(bundle.session, bundle.events);
|
|
4644
4672
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.csv`;
|
|
4645
4673
|
if (parsed.output === "-") {
|
|
4646
4674
|
writeOut(csv);
|
|
@@ -4656,7 +4684,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4656
4684
|
}
|
|
4657
4685
|
const ownerNoteId = typeof effort.ownerNoteId === "string" ? effort.ownerNoteId : `effort/${effort.slug}`;
|
|
4658
4686
|
const owner = await db.storage.readonly("notes").get(ownerNoteId);
|
|
4659
|
-
const markdown = owner?.rawContent ??
|
|
4687
|
+
const markdown = owner?.rawContent ?? wod_wiki_engine_star.effortToMarkdown(effort);
|
|
4660
4688
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
|
|
4661
4689
|
if (parsed.output === "-") {
|
|
4662
4690
|
writeOut(markdown);
|
|
@@ -4669,7 +4697,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4669
4697
|
if (equipment) {
|
|
4670
4698
|
const ownerNoteId = typeof equipment.ownerNoteId === "string" ? equipment.ownerNoteId : `equipment/${equipment.slug}`;
|
|
4671
4699
|
const owner = await db.storage.readonly("notes").get(ownerNoteId);
|
|
4672
|
-
const markdown = owner?.rawContent ??
|
|
4700
|
+
const markdown = owner?.rawContent ?? wod_wiki_engine_star.equipmentToMarkdown(equipment);
|
|
4673
4701
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
|
|
4674
4702
|
if (parsed.output === "-") {
|
|
4675
4703
|
writeOut(markdown);
|
|
@@ -4679,7 +4707,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4679
4707
|
writeOut(`[wod ${verb}] equipment ${id} \u2192 ${target}`);
|
|
4680
4708
|
} else {
|
|
4681
4709
|
const labels = (await listTagsByType(db.db, "equipment")).map((t) => t.label).sort();
|
|
4682
|
-
const csv =
|
|
4710
|
+
const csv = wod_wiki_engine_star.equipmentToCsv(labels);
|
|
4683
4711
|
const target = parsed.output && parsed.output !== "-" ? parsed.output : "equipment.csv";
|
|
4684
4712
|
if (parsed.output === "-") {
|
|
4685
4713
|
writeOut(csv);
|
|
@@ -4709,8 +4737,8 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4709
4737
|
}
|
|
4710
4738
|
if (kind === "note" || kind === "playground") {
|
|
4711
4739
|
const source = fs.readFileSync(file, "utf-8");
|
|
4712
|
-
const identity =
|
|
4713
|
-
const tags =
|
|
4740
|
+
const identity = wod_wiki_engine_star.extractNoteIdentity(source);
|
|
4741
|
+
const tags = wod_wiki_engine_star.extractTypedTags(source);
|
|
4714
4742
|
const db2 = await openCliDb(cliDb());
|
|
4715
4743
|
try {
|
|
4716
4744
|
const persisted = await persistNote(db2, {
|
|
@@ -4751,7 +4779,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4751
4779
|
return 0;
|
|
4752
4780
|
}
|
|
4753
4781
|
if (kind === "equipment") {
|
|
4754
|
-
const labels =
|
|
4782
|
+
const labels = wod_wiki_engine_star.csvToEquipmentLabels(fs.readFileSync(file, "utf-8"));
|
|
4755
4783
|
if (labels.length === 0) {
|
|
4756
4784
|
writeErr(`[wod import] No equipment labels found in ${file}`);
|
|
4757
4785
|
return 1;
|
|
@@ -4765,7 +4793,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
4765
4793
|
}
|
|
4766
4794
|
return 0;
|
|
4767
4795
|
}
|
|
4768
|
-
const { session, events } =
|
|
4796
|
+
const { session, events } = wod_wiki_engine_star.csvToSessionRows(fs.readFileSync(file, "utf-8"));
|
|
4769
4797
|
const db = await openCliDb(cliDb());
|
|
4770
4798
|
try {
|
|
4771
4799
|
const result = await persistSessionBundle(db, session, events);
|