@bitcobblers/wod-wiki-tools 0.44.2159 → 0.45.2166
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 +151 -153
- package/dist/bin/wod.cjs.map +1 -1
- package/dist/bin/wod.mjs +4 -4
- package/dist/{chunk-BQ6HTRH3.mjs → chunk-EAFF2GVB.mjs} +29 -38
- package/dist/chunk-EAFF2GVB.mjs.map +1 -0
- package/dist/{chunk-IWT7U3WX.mjs → chunk-F7IXIJ4I.mjs} +3 -3
- package/dist/{chunk-IWT7U3WX.mjs.map → chunk-F7IXIJ4I.mjs.map} +1 -1
- package/dist/{chunk-RWNL6APX.mjs → chunk-FSOBPDUC.mjs} +3 -3
- package/dist/{chunk-RWNL6APX.mjs.map → chunk-FSOBPDUC.mjs.map} +1 -1
- package/dist/{chunk-SOGZC3TL.mjs → chunk-O5ZCOUQE.mjs} +3 -3
- package/dist/chunk-O5ZCOUQE.mjs.map +1 -0
- package/dist/{chunk-LGEZVB44.mjs → chunk-PF5BTGWZ.mjs} +99 -92
- package/dist/chunk-PF5BTGWZ.mjs.map +1 -0
- package/dist/compiler-ZMG22VH4.mjs +9 -0
- package/dist/{compiler-V2BLOB2B.mjs.map → compiler-ZMG22VH4.mjs.map} +1 -1
- package/dist/index.cjs +151 -153
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -3
- package/dist/index.d.ts +1 -3
- package/dist/index.mjs +5 -5
- package/dist/{scaffoldCatalog-WNAHHEL2.mjs → scaffoldFeed-UXH3L5HM.mjs} +29 -29
- package/dist/scaffoldFeed-UXH3L5HM.mjs.map +1 -0
- package/dist/{server-2DVBA35J.mjs → server-5XDT7ITA.mjs} +4 -4
- package/dist/{server-2DVBA35J.mjs.map → server-5XDT7ITA.mjs.map} +1 -1
- package/dist/web/playground/assets/feedSync.worker-CEbxagtY.js +16 -0
- package/dist/web/playground/assets/main-BKDG9P36.css +2 -0
- package/dist/web/playground/assets/main-DAHoAykp.js +491 -0
- package/dist/web/playground/assets/{statementBuilderFlow-CFMsgRLA.js → statementBuilderFlow-DHSfYrHi.js} +2 -2
- package/dist/web/playground/assets/{vendor-BmgUyVmX.js → vendor-DKhA8bPd.js} +59 -59
- package/dist/web/{server/assets/vendor-codemirror-CFcn3kQd.js → playground/assets/vendor-codemirror-CnY0iCTs.js} +2 -2
- package/dist/web/playground/index.html +5 -5
- package/dist/web/playground/seed/core/chunks/canvas.9ad327d4.json +1 -0
- package/dist/web/playground/seed/core/chunks/{dashboards.302c4388.json → dashboards.f4196444.json} +1 -1
- package/dist/web/playground/seed/core/chunks/{efforts.835c18aa.json → efforts.7f0d2160.json} +1 -1
- package/dist/web/playground/seed/core/chunks/{equipment.5091d784.json → equipment.e7531ab5.json} +1 -1
- package/dist/web/playground/seed/core/indexes/notebooks/canvas.json +174 -183
- package/dist/web/playground/seed/core/indexes/notebooks/dashboards.json +13 -13
- package/dist/web/playground/seed/core/indexes/notebooks/efforts.json +323 -323
- package/dist/web/playground/seed/core/indexes/notebooks/equipment.json +47 -47
- package/dist/web/playground/seed/core/manifest.json +570 -604
- 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 +9 -9
- package/dist/web/playground/seed/core/markdown/canvas/guide/clock.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/guide/dashboards.json +11 -11
- package/dist/web/playground/seed/core/markdown/canvas/guide/metrics.json +59 -59
- package/dist/web/playground/seed/core/markdown/canvas/guide/protocols.json +95 -95
- package/dist/web/playground/seed/core/markdown/canvas/guide/sessions.json +131 -131
- package/dist/web/playground/seed/core/markdown/canvas/guide/start.json +53 -53
- package/dist/web/playground/seed/core/markdown/canvas/guide/structure.json +101 -101
- package/dist/web/playground/seed/core/markdown/canvas/guide/wql.json +39 -39
- 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 +8 -8
- 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 +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/recovery/rest.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/recovery/stretching.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/backward-running.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/running-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/snatch.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/back-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/bench-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/carioca.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/cluster.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/devils-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/front-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/good-morning.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/l-sit.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/man-maker.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/power-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/push-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/sled-push.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/thruster.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
- 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 +14 -15
- package/dist/web/server/assets/feedSync.worker-CEbxagtY.js +16 -0
- package/dist/web/server/assets/main-BKDG9P36.css +2 -0
- package/dist/web/server/assets/main-C_b1CczJ.js +491 -0
- package/dist/web/server/assets/{statementBuilderFlow-CQ3x0D5F.js → statementBuilderFlow-BPmNsGND.js} +2 -2
- package/dist/web/server/assets/{vendor-BmgUyVmX.js → vendor-DKhA8bPd.js} +59 -59
- package/dist/web/{playground/assets/vendor-codemirror-CFcn3kQd.js → server/assets/vendor-codemirror-CnY0iCTs.js} +2 -2
- package/dist/web/server/index.html +5 -5
- package/dist/web/server/seed/core/chunks/canvas.9ad327d4.json +1 -0
- package/dist/web/server/seed/core/chunks/{dashboards.302c4388.json → dashboards.f4196444.json} +1 -1
- package/dist/web/server/seed/core/chunks/{efforts.835c18aa.json → efforts.7f0d2160.json} +1 -1
- package/dist/web/server/seed/core/chunks/{equipment.5091d784.json → equipment.e7531ab5.json} +1 -1
- package/dist/web/server/seed/core/indexes/notebooks/canvas.json +174 -183
- package/dist/web/server/seed/core/indexes/notebooks/dashboards.json +13 -13
- package/dist/web/server/seed/core/indexes/notebooks/efforts.json +323 -323
- package/dist/web/server/seed/core/indexes/notebooks/equipment.json +47 -47
- package/dist/web/server/seed/core/manifest.json +570 -604
- 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 +9 -9
- package/dist/web/server/seed/core/markdown/canvas/guide/clock.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/guide/dashboards.json +11 -11
- package/dist/web/server/seed/core/markdown/canvas/guide/metrics.json +59 -59
- package/dist/web/server/seed/core/markdown/canvas/guide/protocols.json +95 -95
- package/dist/web/server/seed/core/markdown/canvas/guide/sessions.json +131 -131
- package/dist/web/server/seed/core/markdown/canvas/guide/start.json +53 -53
- package/dist/web/server/seed/core/markdown/canvas/guide/structure.json +101 -101
- package/dist/web/server/seed/core/markdown/canvas/guide/wql.json +39 -39
- 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 +8 -8
- 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 +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/recovery/rest.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/recovery/stretching.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/rowing/rowing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/backward-running.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/running-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/snatch.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/back-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/bench-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/carioca.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/cluster.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/devils-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/front-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/good-morning.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/l-sit.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/man-maker.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/power-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/push-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/sled-push.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/thruster.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
- 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 +14 -15
- package/package.json +6 -6
- package/dist/chunk-BQ6HTRH3.mjs.map +0 -1
- package/dist/chunk-LGEZVB44.mjs.map +0 -1
- package/dist/chunk-SOGZC3TL.mjs.map +0 -1
- package/dist/compiler-V2BLOB2B.mjs +0 -9
- package/dist/scaffoldCatalog-WNAHHEL2.mjs.map +0 -1
- package/dist/web/playground/assets/main-Ba8fwabQ.js +0 -209
- package/dist/web/playground/assets/main-bpDz6cBb.css +0 -2
- package/dist/web/playground/assets/seedSync.worker-CXyhCqQv.js +0 -16
- package/dist/web/playground/seed/core/apps/playground/app/templates/new-playground.json +0 -39
- package/dist/web/playground/seed/core/chunks/canvas.4ae0f2d2.json +0 -1
- package/dist/web/playground/seed/core/chunks/template.2d38f4df.json +0 -1
- package/dist/web/playground/seed/core/indexes/notebooks/template.json +0 -18
- package/dist/web/playground/seed/core/markdown/canvas/home/README.json +0 -11
- package/dist/web/server/assets/main-CESv8JYf.js +0 -209
- package/dist/web/server/assets/main-bpDz6cBb.css +0 -2
- package/dist/web/server/assets/seedSync.worker-CXyhCqQv.js +0 -16
- package/dist/web/server/seed/core/apps/playground/app/templates/new-playground.json +0 -39
- package/dist/web/server/seed/core/chunks/canvas.4ae0f2d2.json +0 -1
- package/dist/web/server/seed/core/chunks/template.2d38f4df.json +0 -1
- package/dist/web/server/seed/core/indexes/notebooks/template.json +0 -18
- package/dist/web/server/seed/core/markdown/canvas/home/README.json +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/server.ts"],"names":["dist"],"mappings":"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","file":"chunk-RWNL6APX.mjs","sourcesContent":["/**\n * server.ts — `wod server` (alias `serve`) / `wod playground` (Bun-only front\n * door).\n *\n * Serves the packaged engine stack: the shared fetch handler shipped in this\n * package (the same code the Docker image serves) plus the frontend build\n * packaged under the engine's dist/web/ — no repository checkout, no runtime\n * build.\n *\n * server probes the configured database first (never creates schema —\n * that's `wod init`), then serves API + SPA.\n * playground serves the browser-storage SPA build and never opens a database\n * (every /api request answers 404).\n *\n * Retains the event loop until SIGINT/SIGTERM; shutdown drains in-flight\n * requests before closing the database.\n */\n\nimport http from 'node:http';\nimport { Readable } from 'node:stream';\nimport { openCliDb, nodeFs, nodePath } from './db';\nimport type { CliDatabaseConfig } from './config';\nimport type { CliDb } from './db';\nimport { createHandler } from '../server/app';\ntype WriteOut = (text: string) => void;\n\nexport type CliServerMode = 'server' | 'playground';\n\nexport interface CliServerOptions {\n /** Resolved database configuration. REQUIRED for 'server'; ignored — never\n * opened or validated — for 'playground'. */\n database?: CliDatabaseConfig;\n host?: string;\n port?: string;\n /** Explicit dist directory (flag or PLAYGROUND_DIST); must already exist. */\n dist?: string;\n /** Merged CLI environment (process env + .env). */\n env: Record<string, string | undefined>;\n}\n\ninterface HttpServerLike {\n stop(): Promise<void>;\n}\n\nfunction withResolvers<T>() {\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\n\nfunction startHttpServer(\n handler: (request: Request) => Promise<Response>,\n host: string,\n port: number,\n): Promise<HttpServerLike> {\n const b = (globalThis as { Bun?: { serve(opts: { port: number; hostname: string; fetch: (req: Request) => Promise<Response> }): { stop(): Promise<void> } } }).Bun;\n if (b?.serve) {\n const s = b.serve({ port, hostname: host, fetch: handler });\n return Promise.resolve({ stop: () => s.stop() });\n }\n\n // ponytail: node:http adapter streams Web Request/Response in pure Node (v18+) without express/fastify dependencies\n const { promise, resolve, reject } = withResolvers<HttpServerLike>();\n const server = http.createServer(async (req, res) => {\n try {\n const url = new URL(req.url || '/', `http://${req.headers.host || `${host}:${port}`}`);\n const hasBody = req.method !== 'GET' && req.method !== 'HEAD';\n const webReq = new Request(url, {\n method: req.method,\n headers: req.headers as Record<string, string>,\n body: hasBody ? (Readable.toWeb(req) as unknown as BodyInit) : null,\n ...(hasBody ? { duplex: 'half' } : {}),\n } as RequestInit);\n const webRes = await handler(webReq);\n res.writeHead(webRes.status, Object.fromEntries(webRes.headers.entries()));\n if (webRes.body) {\n Readable.fromWeb(webRes.body as any).pipe(res);\n } else {\n res.end();\n }\n } catch {\n res.statusCode = 500;\n res.end('internal server error');\n }\n });\n\n server.once('error', reject);\n server.listen(port, host, () => {\n resolve({\n stop: () => {\n const close = withResolvers<void>();\n server.close(() => close.resolve());\n return close.promise;\n },\n });\n });\n return promise;\n}\n\n/**\n * This module's directory, robust across shipped layouts: ESM via\n * import.meta.url (works under node and Bun; esbuild shims it in CJS too) and\n * Bun's import.meta.dir. ESM code splitting may relocate this module to a\n * chunk at dist/ root, so never assume dist/cli.\n */\nfunction moduleDir(): string {\n const p = nodePath();\n const meta: { dir?: unknown; url?: unknown } = import.meta; // Bun adds `dir`; the TS lib knows neither.\n if (typeof meta.dir === 'string') return p.resolve(meta.dir);\n if (typeof meta.url === 'string' && meta.url.startsWith('file:')) {\n return p.resolve(p.dirname(decodeURIComponent(new URL('.', meta.url).pathname)));\n }\n throw new Error('wod server/playground: cannot determine the installed engine module directory');\n}\n\n/**\n * The installed engine package root: nearest enclosing package.json belonging\n * to this package, walking up from the executing module (dist/cli, a split\n * chunk at dist/ root, dist/bin, or src/cli in a checkout).\n */\nfunction engineRoot(): string {\n const p = nodePath();\n const fs = nodeFs();\n for (let dir = moduleDir(); ; dir = p.dirname(dir)) {\n try {\n if (JSON.parse(fs.readFileSync(p.resolve(dir, 'package.json'), 'utf8')).name === '@bitcobblers/wod-wiki-tools') return dir;\n } catch { /* no manifest here — keep walking */ }\n const parent = p.dirname(dir);\n if (parent === dir) break;\n }\n throw new Error('wod server/playground: cannot locate the installed @bitcobblers/wod-wiki-tools package');\n}\n\n/**\n * Resolve the frontend dist directory. The packaged default lives inside the\n * installed engine module (dist/web/server or dist/web/playground); an\n * explicit --dist/PLAYGROUND_DIST is cwd-relative and must already contain a\n * built SPA (index.html). Nothing is built at runtime.\n */\nfunction resolveDist(mode: CliServerMode, options: CliServerOptions): string {\n const p = nodePath();\n const explicit = options.dist?.trim() || options.env.PLAYGROUND_DIST?.trim() || undefined;\n if (explicit) {\n const dist = p.resolve(explicit); // cwd-relative override\n if (!nodeFs().existsSync(p.resolve(dist, 'index.html'))) {\n throw new Error(\n `wod ${mode}: no built frontend (index.html) at ${dist} — --dist/PLAYGROUND_DIST must `\n + 'point at an already-built directory (the CLI never builds frontends at runtime)',\n );\n }\n return dist;\n }\n const dist = p.resolve(engineRoot(), 'dist', 'web', mode === 'playground' ? 'playground' : 'server');\n if (!nodeFs().existsSync(p.resolve(dist, 'index.html'))) {\n throw new Error(\n `wod ${mode}: packaged frontend missing — expected ${dist}/index.html. `\n + 'Reinstall @bitcobblers/wod-wiki-tools (bun add @bitcobblers/wod-wiki-tools), '\n + 'or rebuild the release assets from a checkout (bun run build:cli) and reinstall the package.',\n );\n }\n return dist;\n}\n\n/** Validate bind address first: flag > HOST/PORT env > loopback:3000. */\nfunction resolveBind(mode: CliServerMode, options: CliServerOptions): { host: string; port: number } {\n const host = options.host?.trim() || options.env.HOST?.trim() || '127.0.0.1';\n const rawPort = options.port?.trim() || options.env.PORT?.trim() || '3000';\n const port = Number(rawPort);\n if (!Number.isInteger(port) || port < 1 || port > 65535) {\n throw new Error(`wod ${mode}: invalid port ${JSON.stringify(rawPort)} (need integer 1..65535)`);\n }\n return { host, port };\n}\n\n/**\n * Start the shared server for `wod server` / `wod playground`. Throws on any\n * startup failure; on success it never returns until SIGINT/SIGTERM (drain,\n * close database, exit 0).\n */\nexport async function runCliServer(\n mode: CliServerMode,\n options: CliServerOptions,\n writeOut: WriteOut,\n): Promise<void> {\n const { host, port } = resolveBind(mode, options); // Validate bind before opening anything.\n\n // Server probes the database BEFORE binding a socket: a missing/uninitialized\n // database refuses with `wod init` guidance.\n let db: CliDb | undefined;\n let dbLabel = 'no database';\n if (mode === 'server') {\n const database = options.database; // hoisted so the guard's narrowing sticks\n if (!database) {\n throw new Error('wod server: no database configuration resolved — this is a runner bug (expected resolveDatabaseConfig output)');\n }\n try {\n db = await openCliDb(database, { initialize: false });\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n throw new Error(`wod server: database not ready — run \\`wod init\\` first. ${message}`, { cause: e });\n }\n dbLabel = db.path;\n }\n\n let server: HttpServerLike;\n try {\n const dist = resolveDist(mode, options);\n // Bundled server handler\n const handler = createHandler(db?.db ?? null, { playgroundDist: dist });\n // Playground: no database exists to close — createHandler(null) answers\n server = await startHttpServer(handler, host, port);\n if (mode === 'server') {\n writeOut(`wod server: http://${host}:${port} — ${dbLabel} · dist ${dist}`);\n } else {\n writeOut(`wod playground: http://${host}:${port} — in-browser storage (no database) · dist ${dist}`);\n }\n } catch (e) {\n if (db) await db.close(); // never leak the probe connection when startup fails\n throw e;\n }\n\n let closing = false;\n const shutdown = async (): Promise<void> => {\n if (closing) process.exit(0); // second signal forces the exit\n closing = true;\n try {\n await server.stop();\n } finally {\n if (db) await db.close();\n process.exit(0);\n }\n };\n process.on('SIGINT', () => { void shutdown(); });\n process.on('SIGTERM', () => { void shutdown(); });\n\n // Park until a signal handler exits the process.\n await new Promise<never>(() => {});\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli/server.ts"],"names":["dist"],"mappings":"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","file":"chunk-FSOBPDUC.mjs","sourcesContent":["/**\n * server.ts — `wod server` (alias `serve`) / `wod playground` (Bun-only front\n * door).\n *\n * Serves the packaged engine stack: the shared fetch handler shipped in this\n * package (the same code the Docker image serves) plus the frontend build\n * packaged under the engine's dist/web/ — no repository checkout, no runtime\n * build.\n *\n * server probes the configured database first (never creates schema —\n * that's `wod init`), then serves API + SPA.\n * playground serves the browser-storage SPA build and never opens a database\n * (every /api request answers 404).\n *\n * Retains the event loop until SIGINT/SIGTERM; shutdown drains in-flight\n * requests before closing the database.\n */\n\nimport http from 'node:http';\nimport { Readable } from 'node:stream';\nimport { openCliDb, nodeFs, nodePath } from './db';\nimport type { CliDatabaseConfig } from './config';\nimport type { CliDb } from './db';\nimport { createHandler } from '../server/app';\ntype WriteOut = (text: string) => void;\n\nexport type CliServerMode = 'server' | 'playground';\n\nexport interface CliServerOptions {\n /** Resolved database configuration. REQUIRED for 'server'; ignored — never\n * opened or validated — for 'playground'. */\n database?: CliDatabaseConfig;\n host?: string;\n port?: string;\n /** Explicit dist directory (flag or PLAYGROUND_DIST); must already exist. */\n dist?: string;\n /** Merged CLI environment (process env + .env). */\n env: Record<string, string | undefined>;\n}\n\ninterface HttpServerLike {\n stop(): Promise<void>;\n}\n\nfunction withResolvers<T>() {\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\n\nfunction startHttpServer(\n handler: (request: Request) => Promise<Response>,\n host: string,\n port: number,\n): Promise<HttpServerLike> {\n const b = (globalThis as { Bun?: { serve(opts: { port: number; hostname: string; fetch: (req: Request) => Promise<Response> }): { stop(): Promise<void> } } }).Bun;\n if (b?.serve) {\n const s = b.serve({ port, hostname: host, fetch: handler });\n return Promise.resolve({ stop: () => s.stop() });\n }\n\n // ponytail: node:http adapter streams Web Request/Response in pure Node (v18+) without express/fastify dependencies\n const { promise, resolve, reject } = withResolvers<HttpServerLike>();\n const server = http.createServer(async (req, res) => {\n try {\n const url = new URL(req.url || '/', `http://${req.headers.host || `${host}:${port}`}`);\n const hasBody = req.method !== 'GET' && req.method !== 'HEAD';\n const webReq = new Request(url, {\n method: req.method,\n headers: req.headers as Record<string, string>,\n body: hasBody ? (Readable.toWeb(req) as unknown as BodyInit) : null,\n ...(hasBody ? { duplex: 'half' } : {}),\n } as RequestInit);\n const webRes = await handler(webReq);\n res.writeHead(webRes.status, Object.fromEntries(webRes.headers.entries()));\n if (webRes.body) {\n Readable.fromWeb(webRes.body as any).pipe(res);\n } else {\n res.end();\n }\n } catch {\n res.statusCode = 500;\n res.end('internal server error');\n }\n });\n\n server.once('error', reject);\n server.listen(port, host, () => {\n resolve({\n stop: () => {\n const close = withResolvers<void>();\n server.close(() => close.resolve());\n return close.promise;\n },\n });\n });\n return promise;\n}\n\n/**\n * This module's directory, robust across shipped layouts: ESM via\n * import.meta.url (works under node and Bun; esbuild shims it in CJS too) and\n * Bun's import.meta.dir. ESM code splitting may relocate this module to a\n * chunk at dist/ root, so never assume dist/cli.\n */\nfunction moduleDir(): string {\n const p = nodePath();\n const meta: { dir?: unknown; url?: unknown } = import.meta; // Bun adds `dir`; the TS lib knows neither.\n if (typeof meta.dir === 'string') return p.resolve(meta.dir);\n if (typeof meta.url === 'string' && meta.url.startsWith('file:')) {\n return p.resolve(p.dirname(decodeURIComponent(new URL('.', meta.url).pathname)));\n }\n throw new Error('wod server/playground: cannot determine the installed engine module directory');\n}\n\n/**\n * The installed engine package root: nearest enclosing package.json belonging\n * to this package, walking up from the executing module (dist/cli, a split\n * chunk at dist/ root, dist/bin, or src/cli in a checkout).\n */\nfunction engineRoot(): string {\n const p = nodePath();\n const fs = nodeFs();\n for (let dir = moduleDir(); ; dir = p.dirname(dir)) {\n try {\n if (JSON.parse(fs.readFileSync(p.resolve(dir, 'package.json'), 'utf8')).name === '@bitcobblers/wod-wiki-tools') return dir;\n } catch { /* no manifest here — keep walking */ }\n const parent = p.dirname(dir);\n if (parent === dir) break;\n }\n throw new Error('wod server/playground: cannot locate the installed @bitcobblers/wod-wiki-tools package');\n}\n\n/**\n * Resolve the frontend dist directory. The packaged default lives inside the\n * installed engine module (dist/web/server or dist/web/playground); an\n * explicit --dist/PLAYGROUND_DIST is cwd-relative and must already contain a\n * built SPA (index.html). Nothing is built at runtime.\n */\nfunction resolveDist(mode: CliServerMode, options: CliServerOptions): string {\n const p = nodePath();\n const explicit = options.dist?.trim() || options.env.PLAYGROUND_DIST?.trim() || undefined;\n if (explicit) {\n const dist = p.resolve(explicit); // cwd-relative override\n if (!nodeFs().existsSync(p.resolve(dist, 'index.html'))) {\n throw new Error(\n `wod ${mode}: no built frontend (index.html) at ${dist} — --dist/PLAYGROUND_DIST must `\n + 'point at an already-built directory (the CLI never builds frontends at runtime)',\n );\n }\n return dist;\n }\n const dist = p.resolve(engineRoot(), 'dist', 'web', mode === 'playground' ? 'playground' : 'server');\n if (!nodeFs().existsSync(p.resolve(dist, 'index.html'))) {\n throw new Error(\n `wod ${mode}: packaged frontend missing — expected ${dist}/index.html. `\n + 'Reinstall @bitcobblers/wod-wiki-tools (bun add @bitcobblers/wod-wiki-tools), '\n + 'or rebuild the release assets from a checkout (bun run build:cli) and reinstall the package.',\n );\n }\n return dist;\n}\n\n/** Validate bind address first: flag > HOST/PORT env > loopback:3000. */\nfunction resolveBind(mode: CliServerMode, options: CliServerOptions): { host: string; port: number } {\n const host = options.host?.trim() || options.env.HOST?.trim() || '127.0.0.1';\n const rawPort = options.port?.trim() || options.env.PORT?.trim() || '3000';\n const port = Number(rawPort);\n if (!Number.isInteger(port) || port < 1 || port > 65535) {\n throw new Error(`wod ${mode}: invalid port ${JSON.stringify(rawPort)} (need integer 1..65535)`);\n }\n return { host, port };\n}\n\n/**\n * Start the shared server for `wod server` / `wod playground`. Throws on any\n * startup failure; on success it never returns until SIGINT/SIGTERM (drain,\n * close database, exit 0).\n */\nexport async function runCliServer(\n mode: CliServerMode,\n options: CliServerOptions,\n writeOut: WriteOut,\n): Promise<void> {\n const { host, port } = resolveBind(mode, options); // Validate bind before opening anything.\n\n // Server probes the database BEFORE binding a socket: a missing/uninitialized\n // database refuses with `wod init` guidance.\n let db: CliDb | undefined;\n let dbLabel = 'no database';\n if (mode === 'server') {\n const database = options.database; // hoisted so the guard's narrowing sticks\n if (!database) {\n throw new Error('wod server: no database configuration resolved — this is a runner bug (expected resolveDatabaseConfig output)');\n }\n try {\n db = await openCliDb(database, { initialize: false });\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n throw new Error(`wod server: database not ready — run \\`wod init\\` first. ${message}`, { cause: e });\n }\n dbLabel = db.path;\n }\n\n let server: HttpServerLike;\n try {\n const dist = resolveDist(mode, options);\n // Bundled server handler\n const handler = createHandler(db?.db ?? null, { playgroundDist: dist });\n // Playground: no database exists to close — createHandler(null) answers\n server = await startHttpServer(handler, host, port);\n if (mode === 'server') {\n writeOut(`wod server: http://${host}:${port} — ${dbLabel} · dist ${dist}`);\n } else {\n writeOut(`wod playground: http://${host}:${port} — in-browser storage (no database) · dist ${dist}`);\n }\n } catch (e) {\n if (db) await db.close(); // never leak the probe connection when startup fails\n throw e;\n }\n\n let closing = false;\n const shutdown = async (): Promise<void> => {\n if (closing) process.exit(0); // second signal forces the exit\n closing = true;\n try {\n await server.stop();\n } finally {\n if (db) await db.close();\n process.exit(0);\n }\n };\n process.on('SIGINT', () => { void shutdown(); });\n process.on('SIGTERM', () => { void shutdown(); });\n\n // Park until a signal handler exits the process.\n await new Promise<never>(() => {});\n}\n"]}
|
|
@@ -5,8 +5,8 @@ if (typeof globalThis.require === 'undefined') {
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
// src/version.ts
|
|
8
|
-
var VERSION = "0.
|
|
8
|
+
var VERSION = "0.45.2166";
|
|
9
9
|
|
|
10
10
|
export { VERSION };
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
12
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-O5ZCOUQE.mjs.map
|
|
12
|
+
//# sourceMappingURL=chunk-O5ZCOUQE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/version.ts"],"names":[],"mappings":";;;;;;;AAIO,IAAM,OAAA,GAAU","file":"chunk-O5ZCOUQE.mjs","sourcesContent":["/**\n * Auto-generated build version metadata.\n * Do not edit directly; updated by scripts/stamp-version.ts\n */\nexport const VERSION = '0.45.2166';\nexport const GIT_SHA = '32bda10';\nexport const BUILD_TIME = '2026-10-26T20:01:09.868Z';\nexport const SEMVER = {\n version: '0.45.2166',\n gitSha: '32bda10',\n buildTime: '2026-10-26T20:01:09.868Z',\n} as const;\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire } from 'module';
|
|
2
|
-
import { compileSeedRow, SEED_SCHEMA, writeBuildReport } from './chunk-
|
|
3
|
-
import { VERSION } from './chunk-
|
|
4
|
-
import { nodePath, openCliDb, nodeFs, sqliteIndexStore, sqliteEffortStore, sqliteBlockStore, sqliteNoteStore, sqliteEventStore, getNoteBundle, getSessionBundle, getEffortBySlug, getEquipmentBySlug, listTagsByType,
|
|
2
|
+
import { compileSeedRow, SEED_SCHEMA, writeBuildReport } from './chunk-EAFF2GVB.mjs';
|
|
3
|
+
import { VERSION } from './chunk-O5ZCOUQE.mjs';
|
|
4
|
+
import { nodePath, openCliDb, nodeFs, sqliteIndexStore, sqliteEffortStore, sqliteBlockStore, sqliteNoteStore, sqliteEventStore, getNoteBundle, getSessionBundle, getEffortBySlug, getEquipmentBySlug, listTagsByType, uuid5, CLI_UUID_NAMESPACE, nodeCrypto, stableNoteId, randomId } from './chunk-F7IXIJ4I.mjs';
|
|
5
5
|
import { __require } from './chunk-6L5ZDZJ7.mjs';
|
|
6
6
|
import { createParser, frozenNow, createCompiler, createMockClock, RuntimeStack, EventBus, ScriptRuntime, createAnalyticsEngineForBlock, StartSessionAction, NextEvent, toStoredOutputStatement, bundledEfforts, parseEffortFile, parseEquipmentFile, createReferenceIndex, parseScript, extractStatementRefs } from '@bitcobblers/wod-wiki-lang';
|
|
7
|
-
import { buildStatementTree, createIRFile, registerLanguagePack, extractNoteIdentity, extractTypedTags, composeNoteMarkdown, sessionToCsv, effortToMarkdown, equipmentToMarkdown, equipmentToCsv, csvToEquipmentLabels, csvToSessionRows, isIRFile, inMemoryEventStore,
|
|
8
|
-
import { toEventRows, toSummaryEventRows, parseQuery, QueryService, isPipelineQuery, isFindQuery,
|
|
7
|
+
import { buildStatementTree, createIRFile, registerLanguagePack, extractNoteIdentity, extractTypedTags, composeNoteMarkdown, sessionToCsv, effortToMarkdown, equipmentToMarkdown, equipmentToCsv, csvToEquipmentLabels, csvToSessionRows, isIRFile, inMemoryEventStore, assertSeedManifest, seedMetaKey, SEED_SCHEMA as SEED_SCHEMA$1, emptySeedMeta, CANVAS_CHUNK_ID, assertSeedRows, seedNoteId, applySeedChunk } from '@bitcobblers/wod-wiki-engine';
|
|
8
|
+
import { toEventRows, toSummaryEventRows, parseQuery, QueryService, isPipelineQuery, isFindQuery, notebookSlugOfSourceId } from '@bitcobblers/wod-wiki-wql';
|
|
9
9
|
import { validateNoteBlocks, parseDocumentSections, blockContentId, reconcileNoteBlocks, KNOWN_SECTION_WIDGETS, MetricType } from '@bitcobblers/wod-wiki-core';
|
|
10
10
|
import { rowsEqual, DB_VERSION } from '@bitcobblers/wod-wiki-storage';
|
|
11
11
|
|
|
@@ -1632,8 +1632,6 @@ async function saveSource(db, options, startTime) {
|
|
|
1632
1632
|
sourceRevision++;
|
|
1633
1633
|
for (const block of Object.values(blocks)) block.sourceRevision = sourceRevision;
|
|
1634
1634
|
}
|
|
1635
|
-
const fm = readFrontmatterMeta(options.source);
|
|
1636
|
-
const catalog = typeof fm["catalog"] === "string" && fm["catalog"].trim() || typeof fm["collection"] === "string" && fm["collection"].trim() || existing?.catalog;
|
|
1637
1635
|
const note = {
|
|
1638
1636
|
...existing,
|
|
1639
1637
|
id: noteId,
|
|
@@ -1643,8 +1641,7 @@ async function saveSource(db, options, startTime) {
|
|
|
1643
1641
|
createdAt: existing?.createdAt ?? now,
|
|
1644
1642
|
rawContent: options.source,
|
|
1645
1643
|
sourceRevision,
|
|
1646
|
-
blocks
|
|
1647
|
-
...catalog ? { catalog } : {}
|
|
1644
|
+
blocks
|
|
1648
1645
|
};
|
|
1649
1646
|
const priorRows = await tx.readonly("block_index").getAllFromIndex("by-note", noteId);
|
|
1650
1647
|
const priorEfforts = await tx.readonly("block_efforts").getAllFromIndex("by-note", noteId);
|
|
@@ -1682,7 +1679,6 @@ async function saveSource(db, options, startTime) {
|
|
|
1682
1679
|
noteTitle: note.title,
|
|
1683
1680
|
createdAt: prior?.createdAt ?? now,
|
|
1684
1681
|
blockContentId: fingerprint,
|
|
1685
|
-
...catalog ? { catalog } : {},
|
|
1686
1682
|
...note.sourceId ? { sourceId: note.sourceId } : {}
|
|
1687
1683
|
});
|
|
1688
1684
|
if (block.kind === "wod") {
|
|
@@ -1853,16 +1849,46 @@ async function persistSessionBundle(db, session, events) {
|
|
|
1853
1849
|
});
|
|
1854
1850
|
return { events: events.length };
|
|
1855
1851
|
}
|
|
1856
|
-
async function
|
|
1857
|
-
const
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
}
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
const
|
|
1864
|
-
|
|
1865
|
-
|
|
1852
|
+
async function persistDefinitionNote(db, kind, source) {
|
|
1853
|
+
const parsed = kind === "effort" ? parseEffortFile(source) : parseEquipmentFile(source);
|
|
1854
|
+
if (!parsed) {
|
|
1855
|
+
throw new Error(kind === "effort" ? "[wod import] Unparseable effort file (need frontmatter id/slug/label + numeric baseAttributes.met)" : "[wod import] Unparseable equipment file (need frontmatter type: equipment + id/slug/label)");
|
|
1856
|
+
}
|
|
1857
|
+
const family = kind === "effort" ? "efforts" : "equipment";
|
|
1858
|
+
const prior = await db.storage.readonly(family).get(parsed.slug);
|
|
1859
|
+
const stamped = extractNoteIdentity(source)?.noteId;
|
|
1860
|
+
const noteId = stamped ?? prior?.ownerNoteId ?? `${kind}/${parsed.slug}`;
|
|
1861
|
+
const now = Date.now();
|
|
1862
|
+
return db.storage.transaction(["notes", family, "tags", "note_tags"], "readwrite", async (tx) => {
|
|
1863
|
+
const previous = await tx.readonly("notes").get(noteId);
|
|
1864
|
+
const sourceRevision = (previous?.sourceRevision ?? 0) + (previous?.rawContent === source ? 0 : 1);
|
|
1865
|
+
const blocks = reconcileNoteBlocks(source, { sourceRevision, registeredWidgets, blocks: previous?.blocks });
|
|
1866
|
+
validateNoteBlocks(source, blocks, sourceRevision, { registeredWidgets });
|
|
1867
|
+
const note = {
|
|
1868
|
+
...previous,
|
|
1869
|
+
id: noteId,
|
|
1870
|
+
title: parsed.label,
|
|
1871
|
+
type: previous?.type ?? "note",
|
|
1872
|
+
createdAt: previous?.createdAt ?? now,
|
|
1873
|
+
rawContent: source,
|
|
1874
|
+
sourceRevision,
|
|
1875
|
+
blocks,
|
|
1876
|
+
sourceId: family,
|
|
1877
|
+
sourcePath: noteId
|
|
1878
|
+
};
|
|
1879
|
+
await tx.readwrite("notes").put(note);
|
|
1880
|
+
const isoNow = new Date(now).toISOString();
|
|
1881
|
+
await tx.readwrite(family).put({
|
|
1882
|
+
...parsed,
|
|
1883
|
+
registrySource: prior?.registrySource ?? "user",
|
|
1884
|
+
ownerNoteId: noteId,
|
|
1885
|
+
sourceId: family,
|
|
1886
|
+
sourcePath: noteId,
|
|
1887
|
+
createdAt: prior?.createdAt ?? isoNow,
|
|
1888
|
+
updatedAt: isoNow
|
|
1889
|
+
});
|
|
1890
|
+
await saveTags(tx, noteId, extractTypedTags(source), now);
|
|
1891
|
+
return { slug: parsed.slug, noteId, createdNote: !previous };
|
|
1866
1892
|
});
|
|
1867
1893
|
}
|
|
1868
1894
|
async function persistTypedTags(db, labels, type) {
|
|
@@ -1931,7 +1957,7 @@ function defaultSeedDirs(cwd) {
|
|
|
1931
1957
|
const base = nodePath().resolve(cwd, "apps", "playground", "public", "seed");
|
|
1932
1958
|
return ["core", "community"].map((id) => nodePath().resolve(base, id)).filter((dir) => nodeFs().existsSync(nodePath().resolve(dir, "manifest.json")));
|
|
1933
1959
|
}
|
|
1934
|
-
async function
|
|
1960
|
+
async function publishNotebookSeed(db, options) {
|
|
1935
1961
|
const t0 = Date.now();
|
|
1936
1962
|
const fs = nodeFs();
|
|
1937
1963
|
const path = nodePath();
|
|
@@ -1939,31 +1965,30 @@ async function publishCatalogSeed(db, options) {
|
|
|
1939
1965
|
if (allNotes.length === 0) {
|
|
1940
1966
|
throw new Error(`[wod publish] No notes found in database ${db.path}`);
|
|
1941
1967
|
}
|
|
1942
|
-
const
|
|
1968
|
+
const notesByNotebook = /* @__PURE__ */ new Map();
|
|
1943
1969
|
for (const note of allNotes) {
|
|
1944
|
-
const
|
|
1945
|
-
const
|
|
1946
|
-
const
|
|
1947
|
-
const list = notesByCatalog.get(key) ?? [];
|
|
1970
|
+
const slug = notebookSlugOfSourceId(note.sourceId);
|
|
1971
|
+
const key = slug || "__unassigned__";
|
|
1972
|
+
const list = notesByNotebook.get(key) ?? [];
|
|
1948
1973
|
list.push(note);
|
|
1949
|
-
|
|
1974
|
+
notesByNotebook.set(key, list);
|
|
1950
1975
|
}
|
|
1951
|
-
const
|
|
1952
|
-
if (options.
|
|
1953
|
-
const matching =
|
|
1976
|
+
const targetNotebooks = /* @__PURE__ */ new Map();
|
|
1977
|
+
if (options.notebook) {
|
|
1978
|
+
const matching = notesByNotebook.get(options.notebook);
|
|
1954
1979
|
if (matching) {
|
|
1955
|
-
|
|
1956
|
-
} else if (
|
|
1957
|
-
|
|
1980
|
+
targetNotebooks.set(options.notebook, matching);
|
|
1981
|
+
} else if (notesByNotebook.has("__unassigned__") && notesByNotebook.size === 1) {
|
|
1982
|
+
targetNotebooks.set(options.notebook, notesByNotebook.get("__unassigned__"));
|
|
1958
1983
|
} else {
|
|
1959
|
-
const available = [...
|
|
1984
|
+
const available = [...notesByNotebook.keys()].filter((k) => k !== "__unassigned__");
|
|
1960
1985
|
throw new Error(
|
|
1961
|
-
`[wod publish]
|
|
1986
|
+
`[wod publish] Notebook "${options.notebook}" not found in ${db.path}.` + (available.length > 0 ? ` Available notebooks: ${available.join(", ")}` : "")
|
|
1962
1987
|
);
|
|
1963
1988
|
}
|
|
1964
1989
|
} else {
|
|
1965
|
-
for (const [
|
|
1966
|
-
|
|
1990
|
+
for (const [slug, notes] of notesByNotebook.entries()) {
|
|
1991
|
+
targetNotebooks.set(slug === "__unassigned__" ? "default" : slug, notes);
|
|
1967
1992
|
}
|
|
1968
1993
|
}
|
|
1969
1994
|
const allIndexRows = await db.storage.readonly("block_index").getAll();
|
|
@@ -1992,25 +2017,24 @@ async function publishCatalogSeed(db, options) {
|
|
|
1992
2017
|
fs.mkdirSync(chunksDir, { recursive: true });
|
|
1993
2018
|
const manifestChunks = [];
|
|
1994
2019
|
let totalNotes = 0;
|
|
1995
|
-
const
|
|
1996
|
-
for (const [
|
|
1997
|
-
|
|
2020
|
+
const publishedNotebooks = [];
|
|
2021
|
+
for (const [notebookSlug, notes] of targetNotebooks.entries()) {
|
|
2022
|
+
publishedNotebooks.push(notebookSlug);
|
|
1998
2023
|
const chunkRows = [];
|
|
1999
2024
|
for (const note of notes) {
|
|
2000
2025
|
const stem = (note.title || note.id).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, "") || "note";
|
|
2001
|
-
const notePath = note.sourcePath ?? `markdown/
|
|
2026
|
+
const notePath = note.sourcePath ?? `markdown/notebooks/${notebookSlug}/${stem}.md`;
|
|
2002
2027
|
const noteBlockIndex = indexByNote.get(note.id) ?? [];
|
|
2003
2028
|
const noteBlockEfforts = effortsByNote.get(note.id) ?? [];
|
|
2004
2029
|
const noteBlockEquipment = equipmentByNote.get(note.id) ?? [];
|
|
2005
2030
|
const blockIndex = noteBlockIndex.length > 0 ? noteBlockIndex.map((b) => ({
|
|
2006
2031
|
...b,
|
|
2007
2032
|
isStatic: true,
|
|
2008
|
-
sourceId: b.sourceId ?? `
|
|
2009
|
-
sourcePath: b.sourcePath ?? notePath
|
|
2010
|
-
catalog: catalogName
|
|
2033
|
+
sourceId: b.sourceId ?? `notebook:${notebookSlug}/${stem}`,
|
|
2034
|
+
sourcePath: b.sourcePath ?? notePath
|
|
2011
2035
|
})) : compileSeedRow(notePath, note.rawContent, {
|
|
2012
|
-
routeId: `${
|
|
2013
|
-
sourceId: `
|
|
2036
|
+
routeId: `${notebookSlug}/${stem}`,
|
|
2037
|
+
sourceId: `notebook:${notebookSlug}/${stem}`,
|
|
2014
2038
|
// Authored frontmatter date first — exports keep the post's own
|
|
2015
2039
|
// day, never the import/publish time.
|
|
2016
2040
|
createdAt: note.date ?? note.createdAt,
|
|
@@ -2035,7 +2059,7 @@ async function publishCatalogSeed(db, options) {
|
|
|
2035
2059
|
blockEquipment
|
|
2036
2060
|
});
|
|
2037
2061
|
}
|
|
2038
|
-
const chunkId = `
|
|
2062
|
+
const chunkId = `notebook.${notebookSlug}`;
|
|
2039
2063
|
const json = JSON.stringify(chunkRows);
|
|
2040
2064
|
const digest = nodeCrypto().createHash("sha256").update(json).digest();
|
|
2041
2065
|
const sha = [...digest].map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
@@ -2069,7 +2093,7 @@ async function publishCatalogSeed(db, options) {
|
|
|
2069
2093
|
return {
|
|
2070
2094
|
manifest,
|
|
2071
2095
|
outDir,
|
|
2072
|
-
|
|
2096
|
+
notebooks: publishedNotebooks,
|
|
2073
2097
|
totalNotes
|
|
2074
2098
|
};
|
|
2075
2099
|
}
|
|
@@ -2213,12 +2237,6 @@ function parseCliArgs(args) {
|
|
|
2213
2237
|
} else if (arg === "--force") {
|
|
2214
2238
|
result.force = true;
|
|
2215
2239
|
i++;
|
|
2216
|
-
} else if (arg === "--template") {
|
|
2217
|
-
result.template = args[++i];
|
|
2218
|
-
i++;
|
|
2219
|
-
} else if (arg.startsWith("--template=")) {
|
|
2220
|
-
result.template = arg.slice("--template=".length);
|
|
2221
|
-
i++;
|
|
2222
2240
|
} else if (arg === "--out") {
|
|
2223
2241
|
result.output = args[++i];
|
|
2224
2242
|
i++;
|
|
@@ -2239,7 +2257,7 @@ function parseCliArgs(args) {
|
|
|
2239
2257
|
if (Number.isSafeInteger(v) && v >= 0) result.seedVersion = v;
|
|
2240
2258
|
i++;
|
|
2241
2259
|
} else if (!result.subcommand) {
|
|
2242
|
-
if (arg === "parse" || arg === "run" || arg === "query" || arg === "download" || arg === "export" || arg === "import" || arg === "publish" || arg === "build" || arg === "seed" || arg === "reset" || arg === "init" || arg === "db" || arg === "server" || arg === "serve" || arg === "playground" || arg === "init-
|
|
2260
|
+
if (arg === "parse" || arg === "run" || arg === "query" || arg === "download" || arg === "export" || arg === "import" || arg === "publish" || arg === "build" || arg === "seed" || arg === "reset" || arg === "init" || arg === "db" || arg === "server" || arg === "serve" || arg === "playground" || arg === "init-feed" || arg === "skills" || arg === "help" || arg === "version") {
|
|
2243
2261
|
result.subcommand = arg;
|
|
2244
2262
|
} else {
|
|
2245
2263
|
result.target = arg;
|
|
@@ -2303,10 +2321,10 @@ USAGE:
|
|
|
2303
2321
|
wod export <note|playground|session|effort|equipment> <id> [options]
|
|
2304
2322
|
wod download <note|playground|session|effort|equipment> <id> [options]
|
|
2305
2323
|
wod import <note|playground|session|effort|equipment> <file> [options]
|
|
2306
|
-
wod publish [
|
|
2324
|
+
wod publish [feed] [options]
|
|
2307
2325
|
wod build [dir] [options]
|
|
2308
|
-
wod init-
|
|
2309
|
-
Scaffold a new
|
|
2326
|
+
wod init-feed <name>
|
|
2327
|
+
Scaffold a new feed repository (package.json, example
|
|
2310
2328
|
collection, GitHub Actions Pages workflow). Refuses an
|
|
2311
2329
|
existing destination.
|
|
2312
2330
|
wod skills <list | install> [options]
|
|
@@ -2399,10 +2417,10 @@ SUBCOMMANDS:
|
|
|
2399
2417
|
Upsert an effort registry row from corpus-style markdown.
|
|
2400
2418
|
import equipment <file>
|
|
2401
2419
|
Create/upgrade equipment tags (CSV, one label per row).
|
|
2402
|
-
publish [
|
|
2420
|
+
publish [feed] Publish feed notes from the database into a configured
|
|
2403
2421
|
seed directory (manifest.json, chunks/, report.html)
|
|
2404
2422
|
compatible with 'wod seed --source <dir>'. Override target
|
|
2405
|
-
with -o/--out/--output (defaults to ./dist/seed/<
|
|
2423
|
+
with -o/--out/--output (defaults to ./dist/seed/<feed>).
|
|
2406
2424
|
build [dir] Compile a seed corpus: validate every .md under
|
|
2407
2425
|
<dir>/markdown (parity gate + dashboard format gate) and
|
|
2408
2426
|
write manifest.json + content-hashed chunks/ +
|
|
@@ -2413,8 +2431,6 @@ SUBCOMMANDS:
|
|
|
2413
2431
|
BUILD OPTIONS (for 'build'):
|
|
2414
2432
|
--scaffold Also scaffold markdown/efforts/discovered/*.md stubs for
|
|
2415
2433
|
workout effort labels missing from the registry.
|
|
2416
|
-
--template <file> Compile an extra markdown file as the 'template' chunk
|
|
2417
|
-
(the host's playground intake template).
|
|
2418
2434
|
|
|
2419
2435
|
INPUT SOURCING (for 'query'; without these, the database is queried):
|
|
2420
2436
|
-c, --corpus <path> Load historical corpus dataset from a versioned JSON file
|
|
@@ -2560,20 +2576,20 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
2560
2576
|
}
|
|
2561
2577
|
};
|
|
2562
2578
|
try {
|
|
2563
|
-
if (parsed.subcommand === "init-
|
|
2579
|
+
if (parsed.subcommand === "init-feed") {
|
|
2564
2580
|
if (!parsed.target) {
|
|
2565
|
-
writeErr("[wod init-
|
|
2581
|
+
writeErr("[wod init-feed] Error: Missing feed name (a single new directory name)");
|
|
2566
2582
|
return 1;
|
|
2567
2583
|
}
|
|
2568
|
-
const {
|
|
2584
|
+
const { scaffoldFeed } = await import('./scaffoldFeed-UXH3L5HM.mjs');
|
|
2569
2585
|
try {
|
|
2570
|
-
const result =
|
|
2571
|
-
writeOut(`[wod init-
|
|
2586
|
+
const result = scaffoldFeed(parsed.target);
|
|
2587
|
+
writeOut(`[wod init-feed] Created ${result.dir} (${result.files.length} files)`);
|
|
2572
2588
|
writeOut(`Next: cd ${parsed.target} && bun install && bunx wod build . --output dist`);
|
|
2573
2589
|
writeOut(`Agents: wod skills install --dir ${parsed.target} (Whiteboard Script extraction rules \u2192 .agents/skills/)`);
|
|
2574
2590
|
return 0;
|
|
2575
2591
|
} catch (error) {
|
|
2576
|
-
writeErr(`[wod init-
|
|
2592
|
+
writeErr(`[wod init-feed] ${error.message}`);
|
|
2577
2593
|
return 1;
|
|
2578
2594
|
}
|
|
2579
2595
|
}
|
|
@@ -2886,30 +2902,22 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
2886
2902
|
return 0;
|
|
2887
2903
|
}
|
|
2888
2904
|
if (kind === "effort") {
|
|
2889
|
-
const
|
|
2890
|
-
if (!effort) {
|
|
2891
|
-
writeErr(`[wod import] Unparseable effort file (need frontmatter id/slug/label + numeric baseAttributes.met): ${file}`);
|
|
2892
|
-
return 1;
|
|
2893
|
-
}
|
|
2905
|
+
const source = fs.readFileSync(file, "utf-8");
|
|
2894
2906
|
const db2 = await openCliDb(cliDb());
|
|
2895
2907
|
try {
|
|
2896
|
-
await
|
|
2897
|
-
writeOut(`[wod import] effort ${
|
|
2908
|
+
const result = await persistDefinitionNote(db2, "effort", source);
|
|
2909
|
+
writeOut(`[wod import] effort ${result.slug}${result.createdNote ? "" : " (updated)"} \u2014 note ${result.noteId} \u2192 ${db2.path}`);
|
|
2898
2910
|
} finally {
|
|
2899
2911
|
await db2.close();
|
|
2900
2912
|
}
|
|
2901
2913
|
return 0;
|
|
2902
2914
|
}
|
|
2903
2915
|
if (kind === "equipment" && /\.md$/i.test(file)) {
|
|
2904
|
-
const
|
|
2905
|
-
if (!equipment) {
|
|
2906
|
-
writeErr(`[wod import] Unparseable equipment file (need frontmatter type: equipment + id/slug/label): ${file}`);
|
|
2907
|
-
return 1;
|
|
2908
|
-
}
|
|
2916
|
+
const source = fs.readFileSync(file, "utf-8");
|
|
2909
2917
|
const db2 = await openCliDb(cliDb());
|
|
2910
2918
|
try {
|
|
2911
|
-
await
|
|
2912
|
-
writeOut(`[wod import] equipment ${
|
|
2919
|
+
const result = await persistDefinitionNote(db2, "equipment", source);
|
|
2920
|
+
writeOut(`[wod import] equipment ${result.slug}${result.createdNote ? "" : " (updated)"} \u2014 note ${result.noteId} \u2192 ${db2.path}`);
|
|
2913
2921
|
} finally {
|
|
2914
2922
|
await db2.close();
|
|
2915
2923
|
}
|
|
@@ -2944,18 +2952,18 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
2944
2952
|
}
|
|
2945
2953
|
if (parsed.subcommand === "publish") {
|
|
2946
2954
|
const isDir = (s) => Boolean(s && (s.startsWith(".") || s.startsWith("/") || s.includes("/") || s.includes("\\")));
|
|
2947
|
-
const
|
|
2955
|
+
const notebook = isDir(parsed.target) ? void 0 : parsed.target;
|
|
2948
2956
|
const targetDir = isDir(parsed.target) ? parsed.target : parsed.target2;
|
|
2949
|
-
const outDir = parsed.output ?? targetDir ?? (
|
|
2957
|
+
const outDir = parsed.output ?? targetDir ?? (notebook ? `./dist/seed/${notebook}` : "./dist/seed");
|
|
2950
2958
|
const db = await openCliDb(cliDb());
|
|
2951
2959
|
try {
|
|
2952
|
-
const result = await
|
|
2953
|
-
|
|
2960
|
+
const result = await publishNotebookSeed(db, {
|
|
2961
|
+
notebook,
|
|
2954
2962
|
outDir,
|
|
2955
2963
|
version: parsed.seedVersion
|
|
2956
2964
|
});
|
|
2957
2965
|
writeOut(
|
|
2958
|
-
`[wod publish] published ${result.
|
|
2966
|
+
`[wod publish] published ${result.notebooks.join(", ")} (${result.totalNotes} notes) \u2192 ${result.outDir} (manifest schema v${result.manifest.schema}, version ${result.manifest.version})`
|
|
2959
2967
|
);
|
|
2960
2968
|
} finally {
|
|
2961
2969
|
await db.close();
|
|
@@ -2969,12 +2977,11 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
2969
2977
|
writeErr(`[wod build] No markdown/ corpus under ${root} \u2014 run from the content repo root (or pass its directory).`);
|
|
2970
2978
|
return 1;
|
|
2971
2979
|
}
|
|
2972
|
-
const { generateSeed } = await import('./compiler-
|
|
2980
|
+
const { generateSeed } = await import('./compiler-ZMG22VH4.mjs');
|
|
2973
2981
|
try {
|
|
2974
2982
|
const result = generateSeed({
|
|
2975
2983
|
corpusRoot: root,
|
|
2976
2984
|
...parsed.output ? { outDir: nodePath().resolve(cwd, parsed.output) } : {},
|
|
2977
|
-
...parsed.template ? { templateFile: nodePath().resolve(cwd, parsed.template) } : {},
|
|
2978
2985
|
scaffoldDiscoveredEfforts: parsed.scaffold === true
|
|
2979
2986
|
});
|
|
2980
2987
|
const kb = (n) => `${(n / 1024).toFixed(0)} KB`;
|
|
@@ -3061,7 +3068,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
3061
3068
|
}
|
|
3062
3069
|
if (parsed.subcommand === "server" || parsed.subcommand === "serve" || parsed.subcommand === "playground") {
|
|
3063
3070
|
const mode = parsed.subcommand === "playground" ? "playground" : "server";
|
|
3064
|
-
const { runCliServer } = await import('./server-
|
|
3071
|
+
const { runCliServer } = await import('./server-5XDT7ITA.mjs');
|
|
3065
3072
|
const options = { env: cliEnv() };
|
|
3066
3073
|
if (mode === "server") options.database = cliDb();
|
|
3067
3074
|
if (parsed.host !== void 0) options.host = parsed.host;
|
|
@@ -3087,5 +3094,5 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
|
|
|
3087
3094
|
}
|
|
3088
3095
|
|
|
3089
3096
|
export { PackLoadError, ParseSyntaxError, WqlSyntaxError, cliMain, formatExecutionOutput, formatParseOutput, formatQueryOutput, loadCliEnvironment, loadLanguagePack, loadQueryData, parseCliArgs, readStdin, resolveDatabaseConfig, runExecution, runParse, runQueryCli };
|
|
3090
|
-
//# sourceMappingURL=chunk-
|
|
3091
|
-
//# sourceMappingURL=chunk-
|
|
3097
|
+
//# sourceMappingURL=chunk-PF5BTGWZ.mjs.map
|
|
3098
|
+
//# sourceMappingURL=chunk-PF5BTGWZ.mjs.map
|