skill-calorie 0.2.3 → 0.2.5
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/SKILL.md +474 -122
- package/dist/.gen-inputs.json +86 -0
- package/dist/analysis/anomaly/common.d.ts +11 -1
- package/dist/analysis/anomaly/common.d.ts.map +1 -1
- package/dist/analysis/anomaly/common.js +11 -12
- package/dist/analysis/anomaly/common.js.map +1 -1
- package/dist/analysis/anomaly/diet.d.ts.map +1 -1
- package/dist/analysis/anomaly/diet.js +11 -3
- package/dist/analysis/anomaly/diet.js.map +1 -1
- package/dist/analysis/commands.d.ts +62 -0
- package/dist/analysis/commands.d.ts.map +1 -0
- package/dist/analysis/commands.js +386 -0
- package/dist/analysis/commands.js.map +1 -0
- package/dist/analysis/contraindications.d.ts.map +1 -1
- package/dist/analysis/contraindications.js +16 -12
- package/dist/analysis/contraindications.js.map +1 -1
- package/dist/analysis/cross.d.ts +3 -0
- package/dist/analysis/cross.d.ts.map +1 -1
- package/dist/analysis/cross.js +54 -26
- package/dist/analysis/cross.js.map +1 -1
- package/dist/analysis/dashboard.d.ts.map +1 -1
- package/dist/analysis/dashboard.js +3 -2
- package/dist/analysis/dashboard.js.map +1 -1
- package/dist/analysis/deficit.d.ts +4 -2
- package/dist/analysis/deficit.d.ts.map +1 -1
- package/dist/analysis/deficit.js +2 -1
- package/dist/analysis/deficit.js.map +1 -1
- package/dist/analysis/exerciseReview.js +1 -1
- package/dist/analysis/exerciseReview.js.map +1 -1
- package/dist/analysis/healthPlate.d.ts +21 -0
- package/dist/analysis/healthPlate.d.ts.map +1 -0
- package/dist/analysis/healthPlate.js +41 -0
- package/dist/analysis/healthPlate.js.map +1 -0
- package/dist/analysis/historyStore.d.ts +30 -0
- package/dist/analysis/historyStore.d.ts.map +1 -0
- package/dist/analysis/historyStore.js +32 -0
- package/dist/analysis/historyStore.js.map +1 -0
- package/dist/analysis/index.d.ts +17 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +17 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/multiTrend.d.ts +67 -0
- package/dist/analysis/multiTrend.d.ts.map +1 -0
- package/dist/analysis/multiTrend.js +106 -0
- package/dist/analysis/multiTrend.js.map +1 -0
- package/dist/analysis/multiTrendPage.d.ts +4 -0
- package/dist/analysis/multiTrendPage.d.ts.map +1 -0
- package/dist/analysis/multiTrendPage.js +502 -0
- package/dist/analysis/multiTrendPage.js.map +1 -0
- package/dist/analysis/reportDoc.d.ts +12 -0
- package/dist/analysis/reportDoc.d.ts.map +1 -0
- package/dist/analysis/reportDoc.js +244 -0
- package/dist/analysis/reportDoc.js.map +1 -0
- package/dist/analysis/reportDocBmi.d.ts +4 -0
- package/dist/analysis/reportDocBmi.d.ts.map +1 -0
- package/dist/analysis/reportDocBmi.js +104 -0
- package/dist/analysis/reportDocBmi.js.map +1 -0
- package/dist/analysis/reportDocParts.d.ts +77 -0
- package/dist/analysis/reportDocParts.d.ts.map +1 -0
- package/dist/analysis/reportDocParts.js +249 -0
- package/dist/analysis/reportDocParts.js.map +1 -0
- package/dist/analysis/reportDocScore.d.ts +8 -0
- package/dist/analysis/reportDocScore.d.ts.map +1 -0
- package/dist/analysis/reportDocScore.js +223 -0
- package/dist/analysis/reportDocScore.js.map +1 -0
- package/dist/analysis/reportDocScoreSeries.d.ts +3 -0
- package/dist/analysis/reportDocScoreSeries.d.ts.map +1 -0
- package/dist/analysis/reportDocScoreSeries.js +27 -0
- package/dist/analysis/reportDocScoreSeries.js.map +1 -0
- package/dist/analysis/reportDocTracked.d.ts +10 -0
- package/dist/analysis/reportDocTracked.d.ts.map +1 -0
- package/dist/analysis/reportDocTracked.js +196 -0
- package/dist/analysis/reportDocTracked.js.map +1 -0
- package/dist/analysis/reportPlate.d.ts +163 -0
- package/dist/analysis/reportPlate.d.ts.map +1 -0
- package/dist/analysis/reportPlate.js +251 -0
- package/dist/analysis/reportPlate.js.map +1 -0
- package/dist/analysis/review.d.ts.map +1 -1
- package/dist/analysis/review.js +5 -3
- package/dist/analysis/review.js.map +1 -1
- package/dist/analysis/routes.d.ts +18 -0
- package/dist/analysis/routes.d.ts.map +1 -0
- package/dist/analysis/routes.js +178 -0
- package/dist/analysis/routes.js.map +1 -0
- package/dist/analysis/series.d.ts +31 -6
- package/dist/analysis/series.d.ts.map +1 -1
- package/dist/analysis/series.js +121 -24
- package/dist/analysis/series.js.map +1 -1
- package/dist/analysis/simulate.d.ts +4 -2
- package/dist/analysis/simulate.d.ts.map +1 -1
- package/dist/analysis/simulate.js +22 -8
- package/dist/analysis/simulate.js.map +1 -1
- package/dist/analysis/simulate2.d.ts.map +1 -1
- package/dist/analysis/simulate2.js +47 -12
- package/dist/analysis/simulate2.js.map +1 -1
- package/dist/analysis/trend.d.ts +9 -1
- package/dist/analysis/trend.d.ts.map +1 -1
- package/dist/analysis/trend.js +24 -8
- package/dist/analysis/trend.js.map +1 -1
- package/dist/analysis/utils.d.ts +55 -21
- package/dist/analysis/utils.d.ts.map +1 -1
- package/dist/analysis/utils.js +85 -28
- package/dist/analysis/utils.js.map +1 -1
- package/dist/body/bodyDocs.d.ts +4 -0
- package/dist/body/bodyDocs.d.ts.map +1 -0
- package/dist/body/bodyDocs.js +284 -0
- package/dist/body/bodyDocs.js.map +1 -0
- package/dist/body/bodyPlate.d.ts +145 -0
- package/dist/body/bodyPlate.d.ts.map +1 -0
- package/dist/body/bodyPlate.js +243 -0
- package/dist/body/bodyPlate.js.map +1 -0
- package/dist/body/bodyReadUi.d.ts +47 -0
- package/dist/body/bodyReadUi.d.ts.map +1 -0
- package/dist/body/bodyReadUi.js +164 -0
- package/dist/body/bodyReadUi.js.map +1 -0
- package/dist/body/commands.d.ts +33 -0
- package/dist/body/commands.d.ts.map +1 -0
- package/dist/body/commands.js +19 -0
- package/dist/body/commands.js.map +1 -0
- package/dist/body/compare.d.ts +62 -0
- package/dist/body/compare.d.ts.map +1 -0
- package/dist/body/compare.js +162 -0
- package/dist/body/compare.js.map +1 -0
- package/dist/body/compareCompositionDoc.d.ts +3 -0
- package/dist/body/compareCompositionDoc.d.ts.map +1 -0
- package/dist/body/compareCompositionDoc.js +99 -0
- package/dist/body/compareCompositionDoc.js.map +1 -0
- package/dist/body/compareMeasureDoc.d.ts +3 -0
- package/dist/body/compareMeasureDoc.d.ts.map +1 -0
- package/dist/body/compareMeasureDoc.js +91 -0
- package/dist/body/compareMeasureDoc.js.map +1 -0
- package/dist/body/compareUi.d.ts +12 -0
- package/dist/body/compareUi.d.ts.map +1 -0
- package/dist/body/compareUi.js +27 -0
- package/dist/body/compareUi.js.map +1 -0
- package/dist/body/index.d.ts +17 -0
- package/dist/body/index.d.ts.map +1 -0
- package/dist/body/index.js +17 -0
- package/dist/body/index.js.map +1 -0
- package/dist/body/log.d.ts +29 -0
- package/dist/body/log.d.ts.map +1 -0
- package/dist/body/log.js +196 -0
- package/dist/body/log.js.map +1 -0
- package/dist/body/receipt.d.ts +52 -0
- package/dist/body/receipt.d.ts.map +1 -0
- package/dist/body/receipt.js +248 -0
- package/dist/body/receipt.js.map +1 -0
- package/dist/body/receiptData.d.ts +46 -0
- package/dist/body/receiptData.d.ts.map +1 -0
- package/dist/body/receiptData.js +107 -0
- package/dist/body/receiptData.js.map +1 -0
- package/dist/body/receiptUi.d.ts +9 -0
- package/dist/body/receiptUi.d.ts.map +1 -0
- package/dist/body/receiptUi.js +75 -0
- package/dist/body/receiptUi.js.map +1 -0
- package/dist/body/remove.d.ts +21 -0
- package/dist/body/remove.d.ts.map +1 -0
- package/dist/body/remove.js +78 -0
- package/dist/body/remove.js.map +1 -0
- package/dist/body/routes.d.ts +10 -0
- package/dist/body/routes.d.ts.map +1 -0
- package/dist/body/routes.js +20 -0
- package/dist/body/routes.js.map +1 -0
- package/dist/body/view.d.ts +21 -0
- package/dist/body/view.d.ts.map +1 -0
- package/dist/body/view.js +50 -0
- package/dist/body/view.js.map +1 -0
- package/dist/body/wizard.d.ts +14 -0
- package/dist/body/wizard.d.ts.map +1 -0
- package/dist/body/wizard.js +21 -0
- package/dist/body/wizard.js.map +1 -0
- package/dist/body/wizardDocs.d.ts +4 -0
- package/dist/body/wizardDocs.d.ts.map +1 -0
- package/dist/body/wizardDocs.js +260 -0
- package/dist/body/wizardDocs.js.map +1 -0
- package/dist/body/wizardPlate.d.ts +146 -0
- package/dist/body/wizardPlate.d.ts.map +1 -0
- package/dist/body/wizardPlate.js +260 -0
- package/dist/body/wizardPlate.js.map +1 -0
- package/dist/body/wizardPrompt.d.ts +52 -0
- package/dist/body/wizardPrompt.d.ts.map +1 -0
- package/dist/body/wizardPrompt.js +146 -0
- package/dist/body/wizardPrompt.js.map +1 -0
- package/dist/body/wizardUi.d.ts +11 -0
- package/dist/body/wizardUi.d.ts.map +1 -0
- package/dist/body/wizardUi.js +35 -0
- package/dist/body/wizardUi.js.map +1 -0
- package/dist/cli/cmd_read.d.ts +7 -26
- package/dist/cli/cmd_read.d.ts.map +1 -1
- package/dist/cli/cmd_read.js +68 -1084
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/cli/config.d.ts +16 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +68 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/delivery.d.ts +35 -0
- package/dist/cli/delivery.d.ts.map +1 -0
- package/dist/cli/delivery.js +224 -0
- package/dist/cli/delivery.js.map +1 -0
- package/dist/cli/health.d.ts +7 -0
- package/dist/cli/health.d.ts.map +1 -0
- package/dist/cli/health.js +21 -0
- package/dist/cli/health.js.map +1 -0
- package/dist/cli/keys.d.ts +302 -165
- package/dist/cli/keys.d.ts.map +1 -1
- package/dist/cli/keys.js +101 -77
- package/dist/cli/keys.js.map +1 -1
- package/dist/cli/readArgs.d.ts +21 -0
- package/dist/cli/readArgs.d.ts.map +1 -0
- package/dist/cli/readArgs.js +73 -0
- package/dist/cli/readArgs.js.map +1 -0
- package/dist/cli/registry.d.ts +12 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +38 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli/write.d.ts +14 -17
- package/dist/cli/write.d.ts.map +1 -1
- package/dist/cli/write.js +18 -946
- package/dist/cli/write.js.map +1 -1
- package/dist/config.d.ts +55 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -0
- package/dist/diet/commands.d.ts +42 -0
- package/dist/diet/commands.d.ts.map +1 -0
- package/dist/diet/commands.js +45 -0
- package/dist/diet/commands.js.map +1 -0
- package/dist/diet/dietEngine.d.ts +79 -0
- package/dist/diet/dietEngine.d.ts.map +1 -0
- package/dist/diet/dietEngine.js +173 -0
- package/dist/diet/dietEngine.js.map +1 -0
- package/dist/diet/dietUi.d.ts +14 -0
- package/dist/diet/dietUi.d.ts.map +1 -0
- package/dist/diet/dietUi.js +38 -0
- package/dist/diet/dietUi.js.map +1 -0
- package/dist/diet/edit.d.ts +22 -0
- package/dist/diet/edit.d.ts.map +1 -0
- package/dist/diet/edit.js +96 -0
- package/dist/diet/edit.js.map +1 -0
- package/dist/diet/fieldLabels.d.ts +5 -0
- package/dist/diet/fieldLabels.d.ts.map +1 -0
- package/dist/diet/fieldLabels.js +44 -0
- package/dist/diet/fieldLabels.js.map +1 -0
- package/dist/diet/index.d.ts +22 -0
- package/dist/diet/index.d.ts.map +1 -0
- package/dist/diet/index.js +21 -0
- package/dist/diet/index.js.map +1 -0
- package/dist/diet/library.d.ts +20 -0
- package/dist/diet/library.d.ts.map +1 -0
- package/dist/diet/library.js +52 -0
- package/dist/diet/library.js.map +1 -0
- package/dist/diet/libraryDocs.d.ts +7 -0
- package/dist/diet/libraryDocs.d.ts.map +1 -0
- package/dist/diet/libraryDocs.js +361 -0
- package/dist/diet/libraryDocs.js.map +1 -0
- package/dist/diet/libraryPlate.d.ts +41 -0
- package/dist/diet/libraryPlate.d.ts.map +1 -0
- package/dist/diet/libraryPlate.js +57 -0
- package/dist/diet/libraryPlate.js.map +1 -0
- package/dist/diet/log.d.ts +18 -0
- package/dist/diet/log.d.ts.map +1 -0
- package/dist/diet/log.js +152 -0
- package/dist/diet/log.js.map +1 -0
- package/dist/diet/nutrition.d.ts +37 -0
- package/dist/diet/nutrition.d.ts.map +1 -0
- package/dist/diet/nutrition.js +135 -0
- package/dist/diet/nutrition.js.map +1 -0
- package/dist/diet/nutritionPort.d.ts +126 -0
- package/dist/diet/nutritionPort.d.ts.map +1 -0
- package/dist/diet/nutritionPort.js +248 -0
- package/dist/diet/nutritionPort.js.map +1 -0
- package/dist/diet/nutritionPortDocs.d.ts +106 -0
- package/dist/diet/nutritionPortDocs.d.ts.map +1 -0
- package/dist/diet/nutritionPortDocs.js +651 -0
- package/dist/diet/nutritionPortDocs.js.map +1 -0
- package/dist/diet/precheck.d.ts +7 -0
- package/dist/diet/precheck.d.ts.map +1 -0
- package/dist/diet/precheck.js +194 -0
- package/dist/diet/precheck.js.map +1 -0
- package/dist/diet/precheckLabel.d.ts +4 -0
- package/dist/diet/precheckLabel.d.ts.map +1 -0
- package/dist/diet/precheckLabel.js +191 -0
- package/dist/diet/precheckLabel.js.map +1 -0
- package/dist/diet/precheckParts.d.ts +49 -0
- package/dist/diet/precheckParts.d.ts.map +1 -0
- package/dist/diet/precheckParts.js +69 -0
- package/dist/diet/precheckParts.js.map +1 -0
- package/dist/diet/precheckPort.d.ts +82 -0
- package/dist/diet/precheckPort.d.ts.map +1 -0
- package/dist/diet/precheckPort.js +178 -0
- package/dist/diet/precheckPort.js.map +1 -0
- package/dist/diet/productImport.d.ts +28 -0
- package/dist/diet/productImport.d.ts.map +1 -0
- package/dist/diet/productImport.js +152 -0
- package/dist/diet/productImport.js.map +1 -0
- package/dist/diet/productStore.d.ts +62 -0
- package/dist/diet/productStore.d.ts.map +1 -0
- package/dist/diet/productStore.js +73 -0
- package/dist/diet/productStore.js.map +1 -0
- package/dist/diet/products.d.ts +15 -0
- package/dist/diet/products.d.ts.map +1 -0
- package/dist/diet/products.js +87 -0
- package/dist/diet/products.js.map +1 -0
- package/dist/diet/ranking.d.ts +18 -0
- package/dist/diet/ranking.d.ts.map +1 -0
- package/dist/diet/ranking.js +23 -0
- package/dist/diet/ranking.js.map +1 -0
- package/dist/diet/rankingDocs.d.ts +13 -0
- package/dist/diet/rankingDocs.d.ts.map +1 -0
- package/dist/diet/rankingDocs.js +341 -0
- package/dist/diet/rankingDocs.js.map +1 -0
- package/dist/diet/rankingPlate.d.ts +42 -0
- package/dist/diet/rankingPlate.d.ts.map +1 -0
- package/dist/diet/rankingPlate.js +96 -0
- package/dist/diet/rankingPlate.js.map +1 -0
- package/dist/diet/receipt.d.ts +34 -0
- package/dist/diet/receipt.d.ts.map +1 -0
- package/dist/diet/receipt.js +371 -0
- package/dist/diet/receipt.js.map +1 -0
- package/dist/diet/review.d.ts +36 -0
- package/dist/diet/review.d.ts.map +1 -0
- package/dist/diet/review.js +137 -0
- package/dist/diet/review.js.map +1 -0
- package/dist/diet/reviewDocs.d.ts +72 -0
- package/dist/diet/reviewDocs.d.ts.map +1 -0
- package/dist/diet/reviewDocs.js +312 -0
- package/dist/diet/reviewDocs.js.map +1 -0
- package/dist/diet/routes.d.ts +12 -0
- package/dist/diet/routes.d.ts.map +1 -0
- package/dist/diet/routes.js +108 -0
- package/dist/diet/routes.js.map +1 -0
- package/dist/diet/sourceStatsDocs.d.ts +3 -0
- package/dist/diet/sourceStatsDocs.d.ts.map +1 -0
- package/dist/diet/sourceStatsDocs.js +115 -0
- package/dist/diet/sourceStatsDocs.js.map +1 -0
- package/dist/diet/today.d.ts +14 -0
- package/dist/diet/today.d.ts.map +1 -0
- package/dist/diet/today.js +87 -0
- package/dist/diet/today.js.map +1 -0
- package/dist/diet/todayDocs.d.ts +53 -0
- package/dist/diet/todayDocs.d.ts.map +1 -0
- package/dist/diet/todayDocs.js +238 -0
- package/dist/diet/todayDocs.js.map +1 -0
- package/dist/exercise/cardio.d.ts +11 -0
- package/dist/exercise/cardio.d.ts.map +1 -0
- package/dist/exercise/cardio.js +14 -0
- package/dist/exercise/cardio.js.map +1 -0
- package/dist/exercise/categoryColors.d.ts +23 -0
- package/dist/exercise/categoryColors.d.ts.map +1 -0
- package/dist/exercise/categoryColors.js +28 -0
- package/dist/exercise/categoryColors.js.map +1 -0
- package/dist/exercise/commands.d.ts +20 -0
- package/dist/exercise/commands.d.ts.map +1 -0
- package/dist/exercise/commands.js +22 -0
- package/dist/exercise/commands.js.map +1 -0
- package/dist/exercise/distribution.d.ts +11 -0
- package/dist/exercise/distribution.d.ts.map +1 -0
- package/dist/exercise/distribution.js +14 -0
- package/dist/exercise/distribution.js.map +1 -0
- package/dist/exercise/edit.d.ts +22 -0
- package/dist/exercise/edit.d.ts.map +1 -0
- package/dist/exercise/edit.js +150 -0
- package/dist/exercise/edit.js.map +1 -0
- package/dist/exercise/exerciseStore.d.ts +87 -0
- package/dist/exercise/exerciseStore.d.ts.map +1 -0
- package/dist/exercise/exerciseStore.js +293 -0
- package/dist/exercise/exerciseStore.js.map +1 -0
- package/dist/exercise/fieldLabels.d.ts +5 -0
- package/dist/exercise/fieldLabels.d.ts.map +1 -0
- package/dist/exercise/fieldLabels.js +34 -0
- package/dist/exercise/fieldLabels.js.map +1 -0
- package/dist/exercise/goal.d.ts +16 -0
- package/dist/exercise/goal.d.ts.map +1 -0
- package/dist/exercise/goal.js +46 -0
- package/dist/exercise/goal.js.map +1 -0
- package/dist/exercise/index.d.ts +17 -0
- package/dist/exercise/index.d.ts.map +1 -0
- package/dist/exercise/index.js +17 -0
- package/dist/exercise/index.js.map +1 -0
- package/dist/exercise/log.d.ts +19 -0
- package/dist/exercise/log.d.ts.map +1 -0
- package/dist/exercise/log.js +102 -0
- package/dist/exercise/log.js.map +1 -0
- package/dist/exercise/precheck.d.ts +19 -0
- package/dist/exercise/precheck.d.ts.map +1 -0
- package/dist/exercise/precheck.js +127 -0
- package/dist/exercise/precheck.js.map +1 -0
- package/dist/exercise/recap.d.ts +11 -0
- package/dist/exercise/recap.d.ts.map +1 -0
- package/dist/exercise/recap.js +14 -0
- package/dist/exercise/recap.js.map +1 -0
- package/dist/exercise/receipt.d.ts +43 -0
- package/dist/exercise/receipt.d.ts.map +1 -0
- package/dist/exercise/receipt.js +401 -0
- package/dist/exercise/receipt.js.map +1 -0
- package/dist/exercise/records.d.ts +60 -0
- package/dist/exercise/records.d.ts.map +1 -0
- package/dist/exercise/records.js +317 -0
- package/dist/exercise/records.js.map +1 -0
- package/dist/exercise/routes.d.ts +21 -0
- package/dist/exercise/routes.d.ts.map +1 -0
- package/dist/exercise/routes.js +38 -0
- package/dist/exercise/routes.js.map +1 -0
- package/dist/exercise/sportPortDocs.d.ts +9 -0
- package/dist/exercise/sportPortDocs.d.ts.map +1 -0
- package/dist/exercise/sportPortDocs.js +896 -0
- package/dist/exercise/sportPortDocs.js.map +1 -0
- package/dist/exercise/sportUi.d.ts +79 -0
- package/dist/exercise/sportUi.d.ts.map +1 -0
- package/dist/exercise/sportUi.js +237 -0
- package/dist/exercise/sportUi.js.map +1 -0
- package/dist/exercise/strength.d.ts +11 -0
- package/dist/exercise/strength.d.ts.map +1 -0
- package/dist/exercise/strength.js +14 -0
- package/dist/exercise/strength.js.map +1 -0
- package/dist/exercise/trend.d.ts +11 -0
- package/dist/exercise/trend.d.ts.map +1 -0
- package/dist/exercise/trend.js +14 -0
- package/dist/exercise/trend.js.map +1 -0
- package/dist/fetch/audit.d.ts +2 -0
- package/dist/fetch/audit.d.ts.map +1 -1
- package/dist/fetch/audit.js +11 -10
- package/dist/fetch/audit.js.map +1 -1
- package/dist/fetch/batch.js +1 -1
- package/dist/fetch/batch.js.map +1 -1
- package/dist/fetch/body.d.ts +104 -1
- package/dist/fetch/body.d.ts.map +1 -1
- package/dist/fetch/body.js +203 -31
- package/dist/fetch/body.js.map +1 -1
- package/dist/fetch/cli.js +11 -5
- package/dist/fetch/cli.js.map +1 -1
- package/dist/fetch/diet.d.ts +6 -5
- package/dist/fetch/diet.d.ts.map +1 -1
- package/dist/fetch/diet.js +19 -25
- package/dist/fetch/diet.js.map +1 -1
- package/dist/fetch/index.d.ts +5 -7
- package/dist/fetch/index.d.ts.map +1 -1
- package/dist/fetch/index.js +7 -6
- package/dist/fetch/index.js.map +1 -1
- package/dist/fetch/profile.d.ts +24 -3
- package/dist/fetch/profile.d.ts.map +1 -1
- package/dist/fetch/profile.js +43 -14
- package/dist/fetch/profile.js.map +1 -1
- package/dist/fetch/xunji-catalog.d.ts +5 -0
- package/dist/fetch/xunji-catalog.d.ts.map +1 -1
- package/dist/fetch/xunji-catalog.js +22 -1
- package/dist/fetch/xunji-catalog.js.map +1 -1
- package/dist/goal/commands.d.ts +35 -0
- package/dist/goal/commands.d.ts.map +1 -0
- package/dist/goal/commands.js +21 -0
- package/dist/goal/commands.js.map +1 -0
- package/dist/goal/goalExtraPlate.d.ts +45 -0
- package/dist/goal/goalExtraPlate.d.ts.map +1 -0
- package/dist/goal/goalExtraPlate.js +97 -0
- package/dist/goal/goalExtraPlate.js.map +1 -0
- package/dist/goal/goalHistory.d.ts +24 -0
- package/dist/goal/goalHistory.d.ts.map +1 -0
- package/dist/goal/goalHistory.js +46 -0
- package/dist/goal/goalHistory.js.map +1 -0
- package/dist/goal/goalPlate.d.ts +24 -0
- package/dist/goal/goalPlate.d.ts.map +1 -0
- package/dist/goal/goalPlate.js +34 -0
- package/dist/goal/goalPlate.js.map +1 -0
- package/dist/goal/goalPlates.d.ts +66 -0
- package/dist/goal/goalPlates.d.ts.map +1 -0
- package/dist/goal/goalPlates.js +114 -0
- package/dist/goal/goalPlates.js.map +1 -0
- package/dist/goal/goalRecommendDoc.d.ts +6 -0
- package/dist/goal/goalRecommendDoc.d.ts.map +1 -0
- package/dist/goal/goalRecommendDoc.js +107 -0
- package/dist/goal/goalRecommendDoc.js.map +1 -0
- package/dist/goal/goalStore.d.ts +56 -0
- package/dist/goal/goalStore.d.ts.map +1 -0
- package/dist/goal/goalStore.js +111 -0
- package/dist/goal/goalStore.js.map +1 -0
- package/dist/goal/goalWeightDoc.d.ts +7 -0
- package/dist/goal/goalWeightDoc.d.ts.map +1 -0
- package/dist/goal/goalWeightDoc.js +107 -0
- package/dist/goal/goalWeightDoc.js.map +1 -0
- package/dist/goal/index.d.ts +13 -0
- package/dist/goal/index.d.ts.map +1 -0
- package/dist/goal/index.js +13 -0
- package/dist/goal/index.js.map +1 -0
- package/dist/goal/nutritionGoal.d.ts +115 -0
- package/dist/goal/nutritionGoal.d.ts.map +1 -0
- package/dist/goal/nutritionGoal.js +168 -0
- package/dist/goal/nutritionGoal.js.map +1 -0
- package/dist/goal/precheck.d.ts +14 -0
- package/dist/goal/precheck.d.ts.map +1 -0
- package/dist/goal/precheck.js +213 -0
- package/dist/goal/precheck.js.map +1 -0
- package/dist/goal/read.d.ts +53 -0
- package/dist/goal/read.d.ts.map +1 -0
- package/dist/goal/read.js +154 -0
- package/dist/goal/read.js.map +1 -0
- package/dist/goal/receipt.d.ts +38 -0
- package/dist/goal/receipt.d.ts.map +1 -0
- package/dist/goal/receipt.js +290 -0
- package/dist/goal/receipt.js.map +1 -0
- package/dist/goal/resultDocs.d.ts +23 -0
- package/dist/goal/resultDocs.d.ts.map +1 -0
- package/dist/goal/resultDocs.js +279 -0
- package/dist/goal/resultDocs.js.map +1 -0
- package/dist/goal/routes.d.ts +12 -0
- package/dist/goal/routes.d.ts.map +1 -0
- package/dist/goal/routes.js +29 -0
- package/dist/goal/routes.js.map +1 -0
- package/dist/goal/set.d.ts +97 -0
- package/dist/goal/set.d.ts.map +1 -0
- package/dist/goal/set.js +103 -0
- package/dist/goal/set.js.map +1 -0
- package/dist/goal/write.d.ts +30 -0
- package/dist/goal/write.d.ts.map +1 -0
- package/dist/goal/write.js +102 -0
- package/dist/goal/write.js.map +1 -0
- package/dist/health.d.ts +41 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +501 -0
- package/dist/health.js.map +1 -0
- package/dist/help-missing.json +35 -0
- package/dist/home/commands.d.ts +11 -0
- package/dist/home/commands.d.ts.map +1 -0
- package/dist/home/commands.js +8 -0
- package/dist/home/commands.js.map +1 -0
- package/dist/home/exercise.d.ts +27 -0
- package/dist/home/exercise.d.ts.map +1 -0
- package/dist/home/exercise.js +60 -0
- package/dist/home/exercise.js.map +1 -0
- package/dist/home/goalProgressDocs.d.ts +27 -0
- package/dist/home/goalProgressDocs.d.ts.map +1 -0
- package/dist/home/goalProgressDocs.js +363 -0
- package/dist/home/goalProgressDocs.js.map +1 -0
- package/dist/home/home.d.ts +38 -0
- package/dist/home/home.d.ts.map +1 -0
- package/dist/home/home.js +78 -0
- package/dist/home/home.js.map +1 -0
- package/dist/home/homeDocs.d.ts +8 -0
- package/dist/home/homeDocs.d.ts.map +1 -0
- package/dist/home/homeDocs.js +307 -0
- package/dist/home/homeDocs.js.map +1 -0
- package/dist/home/homeViewParts.d.ts +42 -0
- package/dist/home/homeViewParts.d.ts.map +1 -0
- package/dist/home/homeViewParts.js +316 -0
- package/dist/home/homeViewParts.js.map +1 -0
- package/dist/home/index.d.ts +13 -0
- package/dist/home/index.d.ts.map +1 -0
- package/dist/home/index.js +13 -0
- package/dist/home/index.js.map +1 -0
- package/dist/home/routes.d.ts +10 -0
- package/dist/home/routes.d.ts.map +1 -0
- package/dist/home/routes.js +47 -0
- package/dist/home/routes.js.map +1 -0
- package/dist/home/today.d.ts +50 -0
- package/dist/home/today.d.ts.map +1 -0
- package/dist/home/today.js +255 -0
- package/dist/home/today.js.map +1 -0
- package/dist/index.d.ts +24 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -9
- package/dist/index.js.map +1 -1
- package/dist/migrate/migrate.js +3 -3
- package/dist/migrate/migrate.js.map +1 -1
- package/dist/output.d.ts +22 -11
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +68 -128
- package/dist/output.js.map +1 -1
- package/dist/paths.d.ts +6 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +28 -17
- package/dist/paths.js.map +1 -1
- package/dist/photo/commands.d.ts +55 -0
- package/dist/photo/commands.d.ts.map +1 -0
- package/dist/photo/commands.js +25 -0
- package/dist/photo/commands.js.map +1 -0
- package/dist/photo/compare.d.ts +24 -0
- package/dist/photo/compare.d.ts.map +1 -0
- package/dist/photo/compare.js +48 -0
- package/dist/photo/compare.js.map +1 -0
- package/dist/photo/compareDoc.d.ts +5 -0
- package/dist/photo/compareDoc.d.ts.map +1 -0
- package/dist/photo/compareDoc.js +221 -0
- package/dist/photo/compareDoc.js.map +1 -0
- package/dist/photo/dir.d.ts +5 -0
- package/dist/photo/dir.d.ts.map +1 -0
- package/dist/photo/dir.js +23 -0
- package/dist/photo/dir.js.map +1 -0
- package/dist/photo/gallery.d.ts +16 -0
- package/dist/photo/gallery.d.ts.map +1 -0
- package/dist/photo/gallery.js +45 -0
- package/dist/photo/gallery.js.map +1 -0
- package/dist/photo/galleryDoc.d.ts +12 -0
- package/dist/photo/galleryDoc.d.ts.map +1 -0
- package/dist/photo/galleryDoc.js +291 -0
- package/dist/photo/galleryDoc.js.map +1 -0
- package/dist/photo/gif.d.ts +28 -0
- package/dist/photo/gif.d.ts.map +1 -0
- package/dist/photo/gif.js +281 -0
- package/dist/photo/gif.js.map +1 -0
- package/dist/photo/gifDoc.d.ts +52 -0
- package/dist/photo/gifDoc.d.ts.map +1 -0
- package/dist/photo/gifDoc.js +317 -0
- package/dist/photo/gifDoc.js.map +1 -0
- package/dist/photo/help.d.ts +4 -0
- package/dist/photo/help.d.ts.map +1 -0
- package/dist/photo/help.js +87 -0
- package/dist/photo/help.js.map +1 -0
- package/dist/photo/helpCenter.d.ts +137 -0
- package/dist/photo/helpCenter.d.ts.map +1 -0
- package/dist/photo/helpCenter.js +475 -0
- package/dist/photo/helpCenter.js.map +1 -0
- package/dist/photo/helpDoc.d.ts +5 -0
- package/dist/photo/helpDoc.d.ts.map +1 -0
- package/dist/photo/helpDoc.js +205 -0
- package/dist/photo/helpDoc.js.map +1 -0
- package/dist/photo/helpDocContent.d.ts +77 -0
- package/dist/photo/helpDocContent.d.ts.map +1 -0
- package/dist/photo/helpDocContent.js +120 -0
- package/dist/photo/helpDocContent.js.map +1 -0
- package/dist/photo/helpDocCss.d.ts +5 -0
- package/dist/photo/helpDocCss.d.ts.map +1 -0
- package/dist/photo/helpDocCss.js +119 -0
- package/dist/photo/helpDocCss.js.map +1 -0
- package/dist/photo/helpFile.d.ts +26 -0
- package/dist/photo/helpFile.d.ts.map +1 -0
- package/dist/photo/helpFile.js +90 -0
- package/dist/photo/helpFile.js.map +1 -0
- package/dist/photo/helpLookup.d.ts +18 -0
- package/dist/photo/helpLookup.d.ts.map +1 -0
- package/dist/photo/helpLookup.js +58 -0
- package/dist/photo/helpLookup.js.map +1 -0
- package/dist/photo/helpPaths.d.ts +22 -0
- package/dist/photo/helpPaths.d.ts.map +1 -0
- package/dist/photo/helpPaths.js +22 -0
- package/dist/photo/helpPaths.js.map +1 -0
- package/dist/photo/helpShell.d.ts +16 -0
- package/dist/photo/helpShell.d.ts.map +1 -0
- package/dist/photo/helpShell.js +27 -0
- package/dist/photo/helpShell.js.map +1 -0
- package/dist/photo/index.d.ts +13 -0
- package/dist/photo/index.d.ts.map +1 -0
- package/dist/photo/index.js +13 -0
- package/dist/photo/index.js.map +1 -0
- package/dist/photo/manage.d.ts +13 -0
- package/dist/photo/manage.d.ts.map +1 -0
- package/dist/photo/manage.js +64 -0
- package/dist/photo/manage.js.map +1 -0
- package/dist/photo/photo.d.ts +118 -0
- package/dist/photo/photo.d.ts.map +1 -0
- package/dist/photo/photo.js +279 -0
- package/dist/photo/photo.js.map +1 -0
- package/dist/photo/photoThumb.d.ts +38 -0
- package/dist/photo/photoThumb.d.ts.map +1 -0
- package/dist/photo/photoThumb.js +83 -0
- package/dist/photo/photoThumb.js.map +1 -0
- package/dist/photo/photoUi.d.ts +39 -0
- package/dist/photo/photoUi.d.ts.map +1 -0
- package/dist/photo/photoUi.js +233 -0
- package/dist/photo/photoUi.js.map +1 -0
- package/dist/photo/photos.d.ts +78 -0
- package/dist/photo/photos.d.ts.map +1 -0
- package/dist/photo/photos.js +194 -0
- package/dist/photo/photos.js.map +1 -0
- package/dist/photo/picker.d.ts +41 -0
- package/dist/photo/picker.d.ts.map +1 -0
- package/dist/photo/picker.js +132 -0
- package/dist/photo/picker.js.map +1 -0
- package/dist/photo/pickerDoc.d.ts +12 -0
- package/dist/photo/pickerDoc.d.ts.map +1 -0
- package/dist/photo/pickerDoc.js +231 -0
- package/dist/photo/pickerDoc.js.map +1 -0
- package/dist/photo/receipt.d.ts +23 -0
- package/dist/photo/receipt.d.ts.map +1 -0
- package/dist/photo/receipt.js +331 -0
- package/dist/photo/receipt.js.map +1 -0
- package/dist/photo/receiptUi.d.ts +42 -0
- package/dist/photo/receiptUi.d.ts.map +1 -0
- package/dist/photo/receiptUi.js +147 -0
- package/dist/photo/receiptUi.js.map +1 -0
- package/dist/photo/routes.d.ts +10 -0
- package/dist/photo/routes.d.ts.map +1 -0
- package/dist/photo/routes.js +29 -0
- package/dist/photo/routes.js.map +1 -0
- package/dist/photo/store.d.ts +10 -0
- package/dist/photo/store.d.ts.map +1 -0
- package/dist/photo/store.js +44 -0
- package/dist/photo/store.js.map +1 -0
- package/dist/photo/templates.d.ts +4 -0
- package/dist/photo/templates.d.ts.map +1 -0
- package/dist/photo/templates.js +29 -0
- package/dist/photo/templates.js.map +1 -0
- package/dist/photo/viewerDoc.d.ts +5 -0
- package/dist/photo/viewerDoc.d.ts.map +1 -0
- package/dist/photo/viewerDoc.js +255 -0
- package/dist/photo/viewerDoc.js.map +1 -0
- package/dist/photo/wizard.d.ts +15 -0
- package/dist/photo/wizard.d.ts.map +1 -0
- package/dist/photo/wizard.js +25 -0
- package/dist/photo/wizard.js.map +1 -0
- package/dist/photo/wizardPort.d.ts +70 -0
- package/dist/photo/wizardPort.d.ts.map +1 -0
- package/dist/photo/wizardPort.js +232 -0
- package/dist/photo/wizardPort.js.map +1 -0
- package/dist/photo/wizardPortDocs.d.ts +6 -0
- package/dist/photo/wizardPortDocs.d.ts.map +1 -0
- package/dist/photo/wizardPortDocs.js +322 -0
- package/dist/photo/wizardPortDocs.js.map +1 -0
- package/dist/photo/wizardUi.d.ts +24 -0
- package/dist/photo/wizardUi.d.ts.map +1 -0
- package/dist/photo/wizardUi.js +101 -0
- package/dist/photo/wizardUi.js.map +1 -0
- package/dist/profile/commands.d.ts +32 -0
- package/dist/profile/commands.d.ts.map +1 -0
- package/dist/profile/commands.js +11 -0
- package/dist/profile/commands.js.map +1 -0
- package/dist/profile/index.d.ts +17 -0
- package/dist/profile/index.d.ts.map +1 -0
- package/dist/profile/index.js +17 -0
- package/dist/profile/index.js.map +1 -0
- package/dist/profile/labels.d.ts +10 -0
- package/dist/profile/labels.d.ts.map +1 -0
- package/dist/profile/labels.js +52 -0
- package/dist/profile/labels.js.map +1 -0
- package/dist/profile/read.d.ts +13 -0
- package/dist/profile/read.d.ts.map +1 -0
- package/dist/profile/read.js +24 -0
- package/dist/profile/read.js.map +1 -0
- package/dist/profile/receipt.d.ts +10 -0
- package/dist/profile/receipt.d.ts.map +1 -0
- package/dist/profile/receipt.js +19 -0
- package/dist/profile/receipt.js.map +1 -0
- package/dist/profile/routes.d.ts +8 -0
- package/dist/profile/routes.d.ts.map +1 -0
- package/dist/profile/routes.js +9 -0
- package/dist/profile/routes.js.map +1 -0
- package/dist/profile/setup.d.ts +26 -7
- package/dist/profile/setup.d.ts.map +1 -1
- package/dist/profile/setup.js +184 -78
- package/dist/profile/setup.js.map +1 -1
- package/dist/profile/update.d.ts +1 -1
- package/dist/profile/update.d.ts.map +1 -1
- package/dist/profile/update.js +33 -13
- package/dist/profile/update.js.map +1 -1
- package/dist/profile/view.d.ts +35 -4
- package/dist/profile/view.d.ts.map +1 -1
- package/dist/profile/view.js +132 -22
- package/dist/profile/view.js.map +1 -1
- package/dist/profile/write.d.ts +16 -0
- package/dist/profile/write.d.ts.map +1 -0
- package/dist/profile/write.js +75 -0
- package/dist/profile/write.js.map +1 -0
- package/dist/render/analysisPlate.d.ts +4 -4
- package/dist/render/analysisPlate.d.ts.map +1 -1
- package/dist/render/analysisPlate.js +5 -22
- package/dist/render/analysisPlate.js.map +1 -1
- package/dist/render/diet.d.ts +10 -6
- package/dist/render/diet.d.ts.map +1 -1
- package/dist/render/diet.js +8 -23
- package/dist/render/diet.js.map +1 -1
- package/dist/render/dietDocs.d.ts +19 -19
- package/dist/render/dietDocs.d.ts.map +1 -1
- package/dist/render/dietDocs.js +158 -457
- package/dist/render/dietDocs.js.map +1 -1
- package/dist/render/exercisePort.d.ts +4 -2
- package/dist/render/exercisePort.d.ts.map +1 -1
- package/dist/render/exercisePort.js +4 -3
- package/dist/render/exercisePort.js.map +1 -1
- package/dist/render/goalExtra.d.ts.map +1 -1
- package/dist/render/goalExtra.js +2 -1
- package/dist/render/goalExtra.js.map +1 -1
- package/dist/render/goalPlate.d.ts +2 -2
- package/dist/render/goalPlate.d.ts.map +1 -1
- package/dist/render/goalPlate.js +3 -3
- package/dist/render/goalPlate.js.map +1 -1
- package/dist/render/helpShell.d.ts +1 -1
- package/dist/render/helpShell.d.ts.map +1 -1
- package/dist/render/html.d.ts +34 -24
- package/dist/render/html.d.ts.map +1 -1
- package/dist/render/html.js +38 -88
- package/dist/render/html.js.map +1 -1
- package/dist/render/index.d.ts +34 -33
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +30 -18
- package/dist/render/index.js.map +1 -1
- package/dist/render/insightPlate.d.ts +17 -0
- package/dist/render/insightPlate.d.ts.map +1 -1
- package/dist/render/insightPlate.js +109 -1
- package/dist/render/insightPlate.js.map +1 -1
- package/dist/render/pageChromeCss.d.ts +24 -0
- package/dist/render/pageChromeCss.d.ts.map +1 -0
- package/dist/render/pageChromeCss.js +45 -0
- package/dist/render/pageChromeCss.js.map +1 -0
- package/dist/render/planCopyBlock.d.ts +32 -0
- package/dist/render/planCopyBlock.d.ts.map +1 -0
- package/dist/render/planCopyBlock.js +34 -0
- package/dist/render/planCopyBlock.js.map +1 -0
- package/dist/render/planEditor.d.ts +94 -0
- package/dist/render/planEditor.d.ts.map +1 -0
- package/dist/render/planEditor.js +38 -0
- package/dist/render/planEditor.js.map +1 -0
- package/dist/render/planEditorCss.d.ts +13 -0
- package/dist/render/planEditorCss.d.ts.map +1 -0
- package/dist/render/planEditorCss.js +140 -0
- package/dist/render/planEditorCss.js.map +1 -0
- package/dist/render/planEditorDocs.d.ts +7 -0
- package/dist/render/planEditorDocs.d.ts.map +1 -0
- package/dist/render/planEditorDocs.js +56 -0
- package/dist/render/planEditorDocs.js.map +1 -0
- package/dist/render/planEditorPort.d.ts +45 -0
- package/dist/render/planEditorPort.d.ts.map +1 -0
- package/dist/render/planEditorPort.js +217 -0
- package/dist/render/planEditorPort.js.map +1 -0
- package/dist/render/planEditorRuntime.d.ts +15 -0
- package/dist/render/planEditorRuntime.d.ts.map +1 -0
- package/dist/render/planEditorRuntime.js +427 -0
- package/dist/render/planEditorRuntime.js.map +1 -0
- package/dist/render/planPlate.d.ts +84 -4
- package/dist/render/planPlate.d.ts.map +1 -1
- package/dist/render/planPlate.js +155 -7
- package/dist/render/planPlate.js.map +1 -1
- package/dist/render/planWizardCss.d.ts +21 -0
- package/dist/render/planWizardCss.d.ts.map +1 -0
- package/dist/render/planWizardCss.js +121 -0
- package/dist/render/planWizardCss.js.map +1 -0
- package/dist/render/planWizardDocs.d.ts +8 -0
- package/dist/render/planWizardDocs.d.ts.map +1 -0
- package/dist/render/planWizardDocs.js +151 -0
- package/dist/render/planWizardDocs.js.map +1 -0
- package/dist/render/receipt.d.ts +1 -1
- package/dist/render/receipt.d.ts.map +1 -1
- package/dist/render/receipt.js +1 -1
- package/dist/render/receipt.js.map +1 -1
- package/dist/render/sportDocs.d.ts +17 -12
- package/dist/render/sportDocs.d.ts.map +1 -1
- package/dist/render/sportDocs.js +370 -525
- package/dist/render/sportDocs.js.map +1 -1
- package/dist/render/sportPortDocs.d.ts +3 -2
- package/dist/render/sportPortDocs.d.ts.map +1 -1
- package/dist/render/sportPortDocs.js +810 -389
- package/dist/render/sportPortDocs.js.map +1 -1
- package/dist/render/trendDocs.d.ts +16 -6
- package/dist/render/trendDocs.d.ts.map +1 -1
- package/dist/render/trendDocs.js +293 -252
- package/dist/render/trendDocs.js.map +1 -1
- package/dist/render/trendMiscPort.d.ts +9 -24
- package/dist/render/trendMiscPort.d.ts.map +1 -1
- package/dist/render/trendMiscPort.js +13 -34
- package/dist/render/trendMiscPort.js.map +1 -1
- package/dist/render/trendMiscPortDocs.d.ts +1 -2
- package/dist/render/trendMiscPortDocs.d.ts.map +1 -1
- package/dist/render/trendMiscPortDocs.js +256 -107
- package/dist/render/trendMiscPortDocs.js.map +1 -1
- package/dist/render/trendPredictDocs.d.ts +16 -0
- package/dist/render/trendPredictDocs.d.ts.map +1 -0
- package/dist/render/trendPredictDocs.js +1131 -0
- package/dist/render/trendPredictDocs.js.map +1 -0
- package/dist/render/wizardPort.d.ts +9 -62
- package/dist/render/wizardPort.d.ts.map +1 -1
- package/dist/render/wizardPort.js +20 -180
- package/dist/render/wizardPort.js.map +1 -1
- package/dist/render/wizardPortDocs.d.ts +5 -5
- package/dist/render/wizardPortDocs.d.ts.map +1 -1
- package/dist/render/wizardPortDocs.js +273 -215
- package/dist/render/wizardPortDocs.js.map +1 -1
- package/dist/render/workoutMovementTable.d.ts +10 -0
- package/dist/render/workoutMovementTable.d.ts.map +1 -0
- package/dist/render/workoutMovementTable.js +153 -0
- package/dist/render/workoutMovementTable.js.map +1 -0
- package/dist/render/workoutPlanCss.d.ts +15 -0
- package/dist/render/workoutPlanCss.d.ts.map +1 -0
- package/dist/render/workoutPlanCss.js +217 -0
- package/dist/render/workoutPlanCss.js.map +1 -0
- package/dist/render/workoutPlanDocs.d.ts +23 -0
- package/dist/render/workoutPlanDocs.d.ts.map +1 -0
- package/dist/render/workoutPlanDocs.js +244 -0
- package/dist/render/workoutPlanDocs.js.map +1 -0
- package/dist/render/workoutPlanLook.d.ts +16 -0
- package/dist/render/workoutPlanLook.d.ts.map +1 -0
- package/dist/render/workoutPlanLook.js +135 -0
- package/dist/render/workoutPlanLook.js.map +1 -0
- package/dist/shared/alive.d.ts +22 -0
- package/dist/shared/alive.d.ts.map +1 -0
- package/dist/shared/alive.js +22 -0
- package/dist/shared/alive.js.map +1 -0
- package/dist/shared/commandSpec.d.ts +83 -0
- package/dist/shared/commandSpec.d.ts.map +1 -0
- package/dist/shared/commandSpec.js +2 -0
- package/dist/shared/commandSpec.js.map +1 -0
- package/dist/shared/conclusionLine.d.ts +3 -0
- package/dist/shared/conclusionLine.d.ts.map +1 -0
- package/dist/shared/conclusionLine.js +21 -0
- package/dist/shared/conclusionLine.js.map +1 -0
- package/dist/shared/contentSuffix.d.ts +17 -0
- package/dist/shared/contentSuffix.d.ts.map +1 -0
- package/dist/shared/contentSuffix.js +125 -0
- package/dist/shared/contentSuffix.js.map +1 -0
- package/dist/shared/copyArea.d.ts +30 -11
- package/dist/shared/copyArea.d.ts.map +1 -1
- package/dist/shared/copyArea.js +68 -13
- package/dist/shared/copyArea.js.map +1 -1
- package/dist/shared/copyBlock.d.ts +4 -0
- package/dist/shared/copyBlock.d.ts.map +1 -0
- package/dist/shared/copyBlock.js +26 -0
- package/dist/shared/copyBlock.js.map +1 -0
- package/dist/shared/docPage.d.ts +26 -4
- package/dist/shared/docPage.d.ts.map +1 -1
- package/dist/shared/docPage.js +84 -10
- package/dist/shared/docPage.js.map +1 -1
- package/dist/shared/emptyGuide.d.ts +9 -0
- package/dist/shared/emptyGuide.d.ts.map +1 -0
- package/dist/shared/emptyGuide.js +31 -0
- package/dist/shared/emptyGuide.js.map +1 -0
- package/dist/shared/fieldLabel.d.ts +5 -0
- package/dist/shared/fieldLabel.d.ts.map +1 -0
- package/dist/shared/fieldLabel.js +42 -0
- package/dist/shared/fieldLabel.js.map +1 -0
- package/dist/shared/healthRate.d.ts +21 -0
- package/dist/shared/healthRate.d.ts.map +1 -0
- package/dist/shared/healthRate.js +21 -0
- package/dist/shared/healthRate.js.map +1 -0
- package/dist/shared/kcalPerKg.d.ts +16 -0
- package/dist/shared/kcalPerKg.d.ts.map +1 -0
- package/dist/shared/kcalPerKg.js +16 -0
- package/dist/shared/kcalPerKg.js.map +1 -0
- package/dist/shared/meal.d.ts +46 -0
- package/dist/shared/meal.d.ts.map +1 -0
- package/dist/shared/meal.js +75 -0
- package/dist/shared/meal.js.map +1 -0
- package/dist/shared/nutritionRange.d.ts +28 -0
- package/dist/shared/nutritionRange.d.ts.map +1 -0
- package/dist/shared/nutritionRange.js +28 -0
- package/dist/shared/nutritionRange.js.map +1 -0
- package/dist/shared/operationHead.d.ts +21 -0
- package/dist/shared/operationHead.d.ts.map +1 -0
- package/dist/shared/operationHead.js +73 -0
- package/dist/shared/operationHead.js.map +1 -0
- package/dist/shared/pageKit.d.ts +25 -0
- package/dist/shared/pageKit.d.ts.map +1 -0
- package/dist/shared/pageKit.js +56 -0
- package/dist/shared/pageKit.js.map +1 -0
- package/dist/shared/pageStrips.d.ts +81 -0
- package/dist/shared/pageStrips.d.ts.map +1 -0
- package/dist/shared/pageStrips.js +166 -0
- package/dist/shared/pageStrips.js.map +1 -0
- package/dist/shared/params.d.ts +54 -0
- package/dist/shared/params.d.ts.map +1 -0
- package/dist/shared/params.js +176 -0
- package/dist/shared/params.js.map +1 -0
- package/dist/shared/planCopyBlock.d.ts +32 -0
- package/dist/shared/planCopyBlock.d.ts.map +1 -0
- package/dist/shared/planCopyBlock.js +34 -0
- package/dist/shared/planCopyBlock.js.map +1 -0
- package/dist/shared/receiptParts.d.ts +9 -0
- package/dist/shared/receiptParts.d.ts.map +1 -0
- package/dist/shared/receiptParts.js +40 -0
- package/dist/shared/receiptParts.js.map +1 -0
- package/dist/shared/sceneEnvelope.d.ts +32 -0
- package/dist/shared/sceneEnvelope.d.ts.map +1 -0
- package/dist/shared/sceneEnvelope.js +12 -0
- package/dist/shared/sceneEnvelope.js.map +1 -0
- package/dist/shared/sourceLine.d.ts +10 -0
- package/dist/shared/sourceLine.d.ts.map +1 -0
- package/dist/shared/sourceLine.js +39 -0
- package/dist/shared/sourceLine.js.map +1 -0
- package/dist/shared/time.d.ts +28 -0
- package/dist/shared/time.d.ts.map +1 -0
- package/dist/shared/time.js +37 -0
- package/dist/shared/time.js.map +1 -0
- package/dist/shared/writeParts.d.ts +61 -0
- package/dist/shared/writeParts.d.ts.map +1 -0
- package/dist/shared/writeParts.js +79 -0
- package/dist/shared/writeParts.js.map +1 -0
- package/dist/triggers/help-lookup.d.ts +41 -5
- package/dist/triggers/help-lookup.d.ts.map +1 -1
- package/dist/triggers/help-lookup.js +100 -51
- package/dist/triggers/help-lookup.js.map +1 -1
- package/dist/triggers/index.js +1 -1
- package/dist/triggers/routeSpec.d.ts +66 -0
- package/dist/triggers/routeSpec.d.ts.map +1 -0
- package/dist/triggers/routeSpec.js +21 -0
- package/dist/triggers/routeSpec.js.map +1 -0
- package/dist/triggers/routes.generated.d.ts +17 -0
- package/dist/triggers/routes.generated.d.ts.map +1 -0
- package/dist/triggers/routes.generated.js +519 -0
- package/dist/triggers/routes.generated.js.map +1 -0
- package/dist/triggers/routing.d.ts +11 -34
- package/dist/triggers/routing.d.ts.map +1 -1
- package/dist/triggers/routing.js +12 -528
- package/dist/triggers/routing.js.map +1 -1
- package/dist/triggers/scene-01-home.js +9 -9
- package/dist/triggers/scene-01-home.js.map +1 -1
- package/dist/triggers/scene-02-diet.js +62 -62
- package/dist/triggers/scene-02-diet.js.map +1 -1
- package/dist/triggers/scene-03-weight.js +54 -54
- package/dist/triggers/scene-03-weight.js.map +1 -1
- package/dist/triggers/scene-04-exercise.js +33 -33
- package/dist/triggers/scene-04-exercise.js.map +1 -1
- package/dist/triggers/scene-05-workout.js +32 -32
- package/dist/triggers/scene-05-workout.js.map +1 -1
- package/dist/triggers/scene-06-goal.d.ts +1 -1
- package/dist/triggers/scene-06-goal.d.ts.map +1 -1
- package/dist/triggers/scene-06-goal.js +25 -24
- package/dist/triggers/scene-06-goal.js.map +1 -1
- package/dist/triggers/scene-07-profile.js +1 -1
- package/dist/triggers/scene-07-profile.js.map +1 -1
- package/dist/triggers/scene-08-body.js +10 -10
- package/dist/triggers/scene-08-body.js.map +1 -1
- package/dist/triggers/scene-09-photo.js +10 -10
- package/dist/triggers/scene-09-photo.js.map +1 -1
- package/dist/triggers/scene-10-analysis.js +176 -176
- package/dist/triggers/scene-10-analysis.js.map +1 -1
- package/dist/triggers/wake-assets.d.ts.map +1 -1
- package/dist/triggers/wake-assets.js +21 -11
- package/dist/triggers/wake-assets.js.map +1 -1
- package/dist/weight/commands.d.ts +24 -0
- package/dist/weight/commands.d.ts.map +1 -0
- package/dist/weight/commands.js +19 -0
- package/dist/weight/commands.js.map +1 -0
- package/dist/weight/compare.d.ts +60 -0
- package/dist/weight/compare.d.ts.map +1 -0
- package/dist/weight/compare.js +570 -0
- package/dist/weight/compare.js.map +1 -0
- package/dist/weight/edit.d.ts +13 -0
- package/dist/weight/edit.d.ts.map +1 -0
- package/dist/weight/edit.js +87 -0
- package/dist/weight/edit.js.map +1 -0
- package/dist/weight/fieldLabels.d.ts +5 -0
- package/dist/weight/fieldLabels.d.ts.map +1 -0
- package/dist/weight/fieldLabels.js +23 -0
- package/dist/weight/fieldLabels.js.map +1 -0
- package/dist/weight/figures.d.ts +87 -0
- package/dist/weight/figures.d.ts.map +1 -0
- package/dist/weight/figures.js +221 -0
- package/dist/weight/figures.js.map +1 -0
- package/dist/weight/history.d.ts +85 -0
- package/dist/weight/history.d.ts.map +1 -0
- package/dist/weight/history.js +771 -0
- package/dist/weight/history.js.map +1 -0
- package/dist/weight/index.d.ts +21 -0
- package/dist/weight/index.d.ts.map +1 -0
- package/dist/weight/index.js +20 -0
- package/dist/weight/index.js.map +1 -0
- package/dist/weight/log.d.ts +40 -0
- package/dist/weight/log.d.ts.map +1 -0
- package/dist/weight/log.js +355 -0
- package/dist/weight/log.js.map +1 -0
- package/dist/weight/logReceipt.d.ts +28 -0
- package/dist/weight/logReceipt.d.ts.map +1 -0
- package/dist/weight/logReceipt.js +259 -0
- package/dist/weight/logReceipt.js.map +1 -0
- package/dist/weight/plate.d.ts +77 -0
- package/dist/weight/plate.d.ts.map +1 -0
- package/dist/weight/plate.js +60 -0
- package/dist/weight/plate.js.map +1 -0
- package/dist/weight/plateDocs.d.ts +83 -0
- package/dist/weight/plateDocs.d.ts.map +1 -0
- package/dist/weight/plateDocs.js +179 -0
- package/dist/weight/plateDocs.js.map +1 -0
- package/dist/weight/receipt.d.ts +23 -0
- package/dist/weight/receipt.d.ts.map +1 -0
- package/dist/weight/receipt.js +178 -0
- package/dist/weight/receipt.js.map +1 -0
- package/dist/weight/records.d.ts +109 -0
- package/dist/weight/records.d.ts.map +1 -0
- package/dist/weight/records.js +212 -0
- package/dist/weight/records.js.map +1 -0
- package/dist/weight/review.d.ts +114 -0
- package/dist/weight/review.d.ts.map +1 -0
- package/dist/weight/review.js +651 -0
- package/dist/weight/review.js.map +1 -0
- package/dist/weight/routes.d.ts +7 -0
- package/dist/weight/routes.d.ts.map +1 -0
- package/dist/weight/routes.js +68 -0
- package/dist/weight/routes.js.map +1 -0
- package/dist/weight/volatility.d.ts +78 -0
- package/dist/weight/volatility.d.ts.map +1 -0
- package/dist/weight/volatility.js +203 -0
- package/dist/weight/volatility.js.map +1 -0
- package/dist/weight/volatilityDoc.d.ts +10 -0
- package/dist/weight/volatilityDoc.d.ts.map +1 -0
- package/dist/weight/volatilityDoc.js +395 -0
- package/dist/weight/volatilityDoc.js.map +1 -0
- package/dist/weight/weightCompare.d.ts +70 -0
- package/dist/weight/weightCompare.d.ts.map +1 -0
- package/dist/weight/weightCompare.js +221 -0
- package/dist/weight/weightCompare.js.map +1 -0
- package/dist/weight/weightCompare2.d.ts +66 -0
- package/dist/weight/weightCompare2.d.ts.map +1 -0
- package/dist/weight/weightCompare2.js +218 -0
- package/dist/weight/weightCompare2.js.map +1 -0
- package/dist/weight/weightCompare3.d.ts +18 -0
- package/dist/weight/weightCompare3.d.ts.map +1 -0
- package/dist/weight/weightCompare3.js +222 -0
- package/dist/weight/weightCompare3.js.map +1 -0
- package/dist/weight/weightUi.d.ts +126 -0
- package/dist/weight/weightUi.d.ts.map +1 -0
- package/dist/weight/weightUi.js +226 -0
- package/dist/weight/weightUi.js.map +1 -0
- package/dist/workout/commands.d.ts +43 -0
- package/dist/workout/commands.d.ts.map +1 -0
- package/dist/workout/commands.js +36 -0
- package/dist/workout/commands.js.map +1 -0
- package/dist/workout/contraindication.d.ts +11 -0
- package/dist/workout/contraindication.d.ts.map +1 -0
- package/dist/workout/contraindication.js +11 -0
- package/dist/workout/contraindication.js.map +1 -0
- package/dist/workout/dayPhrase.d.ts +13 -0
- package/dist/workout/dayPhrase.d.ts.map +1 -0
- package/dist/workout/dayPhrase.js +15 -0
- package/dist/workout/dayPhrase.js.map +1 -0
- package/dist/workout/fieldLabels.d.ts +5 -0
- package/dist/workout/fieldLabels.d.ts.map +1 -0
- package/dist/workout/fieldLabels.js +45 -0
- package/dist/workout/fieldLabels.js.map +1 -0
- package/dist/workout/index.d.ts +21 -0
- package/dist/workout/index.d.ts.map +1 -0
- package/dist/workout/index.js +20 -0
- package/dist/workout/index.js.map +1 -0
- package/dist/workout/land.d.ts +45 -0
- package/dist/workout/land.d.ts.map +1 -0
- package/dist/workout/land.js +280 -0
- package/dist/workout/land.js.map +1 -0
- package/dist/workout/landBatch.d.ts +62 -0
- package/dist/workout/landBatch.d.ts.map +1 -0
- package/dist/workout/landBatch.js +227 -0
- package/dist/workout/landBatch.js.map +1 -0
- package/dist/workout/landBatchPages.d.ts +31 -0
- package/dist/workout/landBatchPages.d.ts.map +1 -0
- package/dist/workout/landBatchPages.js +111 -0
- package/dist/workout/landBatchPages.js.map +1 -0
- package/dist/workout/landPages.d.ts +41 -0
- package/dist/workout/landPages.d.ts.map +1 -0
- package/dist/workout/landPages.js +132 -0
- package/dist/workout/landPages.js.map +1 -0
- package/dist/workout/landRunner.d.ts +40 -0
- package/dist/workout/landRunner.d.ts.map +1 -0
- package/dist/workout/landRunner.js +134 -0
- package/dist/workout/landRunner.js.map +1 -0
- package/dist/workout/movementType.d.ts +14 -0
- package/dist/workout/movementType.d.ts.map +1 -0
- package/dist/workout/movementType.js +16 -0
- package/dist/workout/movementType.js.map +1 -0
- package/dist/workout/plan.d.ts +21 -0
- package/dist/workout/plan.d.ts.map +1 -0
- package/dist/workout/plan.js +44 -0
- package/dist/workout/plan.js.map +1 -0
- package/dist/workout/planCopyBlock.d.ts +9 -0
- package/dist/workout/planCopyBlock.d.ts.map +1 -0
- package/dist/workout/planCopyBlock.js +9 -0
- package/dist/workout/planCopyBlock.js.map +1 -0
- package/dist/workout/planEditor.d.ts +94 -0
- package/dist/workout/planEditor.d.ts.map +1 -0
- package/dist/workout/planEditor.js +38 -0
- package/dist/workout/planEditor.js.map +1 -0
- package/dist/workout/planEditorCss.d.ts +13 -0
- package/dist/workout/planEditorCss.d.ts.map +1 -0
- package/dist/workout/planEditorCss.js +140 -0
- package/dist/workout/planEditorCss.js.map +1 -0
- package/dist/workout/planEditorDocs.d.ts +7 -0
- package/dist/workout/planEditorDocs.d.ts.map +1 -0
- package/dist/workout/planEditorDocs.js +56 -0
- package/dist/workout/planEditorDocs.js.map +1 -0
- package/dist/workout/planEditorPort.d.ts +45 -0
- package/dist/workout/planEditorPort.d.ts.map +1 -0
- package/dist/workout/planEditorPort.js +217 -0
- package/dist/workout/planEditorPort.js.map +1 -0
- package/dist/workout/planEditorRuntime.d.ts +15 -0
- package/dist/workout/planEditorRuntime.d.ts.map +1 -0
- package/dist/workout/planEditorRuntime.js +427 -0
- package/dist/workout/planEditorRuntime.js.map +1 -0
- package/dist/workout/planStore.d.ts +157 -0
- package/dist/workout/planStore.d.ts.map +1 -0
- package/dist/workout/planStore.js +280 -0
- package/dist/workout/planStore.js.map +1 -0
- package/dist/workout/precheckPrompt.d.ts +7 -0
- package/dist/workout/precheckPrompt.d.ts.map +1 -0
- package/dist/workout/precheckPrompt.js +35 -0
- package/dist/workout/precheckPrompt.js.map +1 -0
- package/dist/workout/progress.d.ts +12 -0
- package/dist/workout/progress.d.ts.map +1 -0
- package/dist/workout/progress.js +16 -0
- package/dist/workout/progress.js.map +1 -0
- package/dist/workout/receipt.d.ts +15 -0
- package/dist/workout/receipt.d.ts.map +1 -0
- package/dist/workout/receipt.js +128 -0
- package/dist/workout/receipt.js.map +1 -0
- package/dist/workout/review.d.ts +12 -0
- package/dist/workout/review.d.ts.map +1 -0
- package/dist/workout/review.js +15 -0
- package/dist/workout/review.js.map +1 -0
- package/dist/workout/reviewDocs.d.ts +3 -0
- package/dist/workout/reviewDocs.d.ts.map +1 -0
- package/dist/workout/reviewDocs.js +222 -0
- package/dist/workout/reviewDocs.js.map +1 -0
- package/dist/workout/reviewDocsCss.d.ts +5 -0
- package/dist/workout/reviewDocsCss.d.ts.map +1 -0
- package/dist/workout/reviewDocsCss.js +128 -0
- package/dist/workout/reviewDocsCss.js.map +1 -0
- package/dist/workout/routes.d.ts +13 -0
- package/dist/workout/routes.d.ts.map +1 -0
- package/dist/workout/routes.js +49 -0
- package/dist/workout/routes.js.map +1 -0
- package/dist/workout/wizard.d.ts +14 -0
- package/dist/workout/wizard.d.ts.map +1 -0
- package/dist/workout/wizard.js +20 -0
- package/dist/workout/wizard.js.map +1 -0
- package/dist/workout/write.d.ts +78 -0
- package/dist/workout/write.d.ts.map +1 -0
- package/dist/workout/write.js +607 -0
- package/dist/workout/write.js.map +1 -0
- package/dist/workout/xunjiBackfill.d.ts +36 -0
- package/dist/workout/xunjiBackfill.d.ts.map +1 -0
- package/dist/workout/xunjiBackfill.js +177 -0
- package/dist/workout/xunjiBackfill.js.map +1 -0
- package/dist/workout/xunjiPush.d.ts +33 -0
- package/dist/workout/xunjiPush.d.ts.map +1 -0
- package/dist/workout/xunjiPush.js +215 -0
- package/dist/workout/xunjiPush.js.map +1 -0
- package/dist/workout/xunjiRunner.d.ts +35 -0
- package/dist/workout/xunjiRunner.d.ts.map +1 -0
- package/dist/workout/xunjiRunner.js +110 -0
- package/dist/workout/xunjiRunner.js.map +1 -0
- package/dist/xunji/backfill.d.ts +65 -0
- package/dist/xunji/backfill.d.ts.map +1 -0
- package/dist/xunji/backfill.js +156 -0
- package/dist/xunji/backfill.js.map +1 -0
- package/dist/xunji/catalog.d.ts +55 -0
- package/dist/xunji/catalog.d.ts.map +1 -0
- package/dist/xunji/catalog.js +132 -0
- package/dist/xunji/catalog.js.map +1 -0
- package/dist/xunji/cli.d.ts +3 -0
- package/dist/xunji/cli.d.ts.map +1 -0
- package/dist/xunji/cli.js +15 -0
- package/dist/xunji/cli.js.map +1 -0
- package/dist/xunji/exitMap.d.ts +37 -0
- package/dist/xunji/exitMap.d.ts.map +1 -0
- package/dist/xunji/exitMap.js +42 -0
- package/dist/xunji/exitMap.js.map +1 -0
- package/dist/xunji/fetch.d.ts +76 -0
- package/dist/xunji/fetch.d.ts.map +1 -0
- package/dist/xunji/fetch.js +159 -0
- package/dist/xunji/fetch.js.map +1 -0
- package/dist/xunji/index.d.ts +21 -0
- package/dist/xunji/index.d.ts.map +1 -0
- package/dist/xunji/index.js +18 -0
- package/dist/xunji/index.js.map +1 -0
- package/dist/xunji/key.d.ts +37 -0
- package/dist/xunji/key.d.ts.map +1 -0
- package/dist/xunji/key.js +100 -0
- package/dist/xunji/key.js.map +1 -0
- package/dist/xunji/overlay-plan.d.ts +79 -0
- package/dist/xunji/overlay-plan.d.ts.map +1 -0
- package/dist/xunji/overlay-plan.js +145 -0
- package/dist/xunji/overlay-plan.js.map +1 -0
- package/dist/xunji/planSource.d.ts +40 -0
- package/dist/xunji/planSource.d.ts.map +1 -0
- package/dist/xunji/planSource.js +78 -0
- package/dist/xunji/planSource.js.map +1 -0
- package/dist/xunji/push.d.ts +55 -0
- package/dist/xunji/push.d.ts.map +1 -0
- package/dist/xunji/push.js +69 -0
- package/dist/xunji/push.js.map +1 -0
- package/dist/xunji/rateLimit.d.ts +49 -0
- package/dist/xunji/rateLimit.d.ts.map +1 -0
- package/dist/xunji/rateLimit.js +108 -0
- package/dist/xunji/rateLimit.js.map +1 -0
- package/dist/xunji/request.d.ts +48 -0
- package/dist/xunji/request.d.ts.map +1 -0
- package/dist/xunji/request.js +60 -0
- package/dist/xunji/request.js.map +1 -0
- package/dist/xunji/retry.d.ts +50 -0
- package/dist/xunji/retry.d.ts.map +1 -0
- package/dist/xunji/retry.js +106 -0
- package/dist/xunji/retry.js.map +1 -0
- package/dist/xunji/rows.d.ts +32 -0
- package/dist/xunji/rows.d.ts.map +1 -0
- package/dist/xunji/rows.js +74 -0
- package/dist/xunji/rows.js.map +1 -0
- package/dist/xunji/run-sync.d.ts +106 -0
- package/dist/xunji/run-sync.d.ts.map +1 -0
- package/dist/xunji/run-sync.js +223 -0
- package/dist/xunji/run-sync.js.map +1 -0
- package/dist/xunji/run.d.ts +54 -0
- package/dist/xunji/run.d.ts.map +1 -0
- package/dist/xunji/run.js +300 -0
- package/dist/xunji/run.js.map +1 -0
- package/dist/xunji/store.d.ts +31 -0
- package/dist/xunji/store.d.ts.map +1 -0
- package/dist/xunji/store.js +60 -0
- package/dist/xunji/store.js.map +1 -0
- package/dist/xunji/subcommands.d.ts +64 -0
- package/dist/xunji/subcommands.d.ts.map +1 -0
- package/dist/xunji/subcommands.js +202 -0
- package/dist/xunji/subcommands.js.map +1 -0
- package/dist/xunji/upsert.d.ts +61 -0
- package/dist/xunji/upsert.d.ts.map +1 -0
- package/dist/xunji/upsert.js +100 -0
- package/dist/xunji/upsert.js.map +1 -0
- package/package.json +6 -9
- package/src/xunji/data//350/256/255/350/256/260/345/256/230/346/226/271/345/212/250/344/275/234.json +1099 -0
- package/templates/help.html +1 -1
- package/workflows/08-/350/272/253/344/275/223/347/273/206/350/212/202.md +60 -0
- package/workflows/09-/350/272/253/346/235/220/347/205/247/347/211/207.md +98 -0
|
@@ -0,0 +1,607 @@
|
|
|
1
|
+
import { weekOfDate } from '../render/planPlate.js';
|
|
2
|
+
import { assertISO, dayField, fail, optInt, optStr } from '../shared/params.js';
|
|
3
|
+
import { R, out, provided } from '../shared/writeParts.js';
|
|
4
|
+
import { addSession, clearWeek, copyPlan, copyWeek, deleteDay, deletePlan, deleteSession, getPlan, updateConfig, updateSession, writePlan, } from './planStore.js';
|
|
5
|
+
function needWeek(v, field) {
|
|
6
|
+
if (v === undefined || !Number.isInteger(v) || v < 1)
|
|
7
|
+
fail(2, '缺参数 ' + field + '(正整数周次)');
|
|
8
|
+
return v;
|
|
9
|
+
}
|
|
10
|
+
function needDow(v, field) {
|
|
11
|
+
if (v === undefined || !Number.isInteger(v) || v < 1 || v > 7) {
|
|
12
|
+
fail(2, '缺参数 ' + field + '(1=周一..7=周日)');
|
|
13
|
+
}
|
|
14
|
+
return v;
|
|
15
|
+
}
|
|
16
|
+
function asMovement(m) {
|
|
17
|
+
if (typeof m !== 'object' || m === null || Array.isArray(m))
|
|
18
|
+
fail(2, '动作须为对象(含 name)');
|
|
19
|
+
const o = m;
|
|
20
|
+
if (typeof o.name !== 'string' || o.name === '')
|
|
21
|
+
fail(2, '动作缺 name');
|
|
22
|
+
const out = { name: o.name };
|
|
23
|
+
if (typeof o.part === 'string')
|
|
24
|
+
out.part = o.part;
|
|
25
|
+
if (typeof o.type === 'string')
|
|
26
|
+
out.type = o.type;
|
|
27
|
+
if (Array.isArray(o.sets))
|
|
28
|
+
out.sets = o.sets;
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
/** `calorie.workout.plan-set` · 定训练计划(整份替换:先全量校验,有硬止即 exit 2 不写库)。 */
|
|
32
|
+
export function writePlanSet(params, db) {
|
|
33
|
+
const plan = params['plan'];
|
|
34
|
+
if (typeof plan !== 'object' || plan === null || Array.isArray(plan))
|
|
35
|
+
fail(2, '缺参数 plan(PlanInput 对象)');
|
|
36
|
+
const r = writePlan(db, plan);
|
|
37
|
+
if (r.status === 'failed' || r.errors.length > 0)
|
|
38
|
+
fail(2, '计划校验未通过:' + r.errors.slice(0, 5).join(';'));
|
|
39
|
+
const summary = '已定训练计划:' + String(r.totalWeeks ?? 0) + ' 周 ' + String(r.insertedCount) + ' 场';
|
|
40
|
+
return out(R('定训练计划', 'create', summary, '定训练计划', 'workout_plan_config+workout_plans(整份替换)', {
|
|
41
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: ['plan'],
|
|
42
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
/** `calorie.workout.plan-copy` · 复制训练计划(整份复制/单周复制二选一,不同时给)。 */
|
|
46
|
+
export function writePlanCopy(params, db) {
|
|
47
|
+
const week = optInt(params, 'week');
|
|
48
|
+
const toWeek = optInt(params, 'toWeek');
|
|
49
|
+
const newTitle = optStr(params, 'newTitle');
|
|
50
|
+
if (week !== undefined) {
|
|
51
|
+
const from = needWeek(week, 'week');
|
|
52
|
+
const plan = getPlan(db);
|
|
53
|
+
const maxWn = plan.sessions.reduce((n, s) => Math.max(n, s.week_number), 0);
|
|
54
|
+
if (maxWn === 0)
|
|
55
|
+
fail(4, '无训练计划可复制(先定训练计划)');
|
|
56
|
+
if (!plan.sessions.some((s) => s.week_number === from))
|
|
57
|
+
fail(4, '第' + from + '周没有训练场次可复制');
|
|
58
|
+
const to = toWeek === undefined ? maxWn + 1 : needWeek(toWeek, 'toWeek');
|
|
59
|
+
const r = copyWeek(db, from, to);
|
|
60
|
+
const summary = '已复制第' + from + '周 → 第' + to + '周(' + r.copiedRows + ' 场)';
|
|
61
|
+
return out(R('复制训练计划', 'create', summary, '复制训练计划', 'workout_plans(单周复制)', {
|
|
62
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['week', 'toWeek']),
|
|
63
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
const r = copyPlan(db, newTitle ?? undefined);
|
|
67
|
+
if (r.totalWeeks === 0)
|
|
68
|
+
fail(4, '无训练计划可复制(先定训练计划)');
|
|
69
|
+
const summary = '已复制整份计划为「' + String(r.newTitle) + '」(' + r.copiedRows + ' 场)';
|
|
70
|
+
return out(R('复制训练计划', 'create', summary, '复制训练计划', 'workout_plan_config+workout_plans(整份复制)', {
|
|
71
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['newTitle']),
|
|
72
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
/** `calorie.workout.plan-set-week` · 定一周计划(该周先清后写;整包先验后写)。 */
|
|
76
|
+
export function writePlanSetWeek(params, db) {
|
|
77
|
+
const week = needWeek(optInt(params, 'week'), 'week');
|
|
78
|
+
const daysRaw = params['days'];
|
|
79
|
+
if (!Array.isArray(daysRaw) || daysRaw.length === 0)
|
|
80
|
+
fail(2, '缺参数 days(非空数组)');
|
|
81
|
+
const days = daysRaw.map((d) => {
|
|
82
|
+
if (typeof d !== 'object' || d === null || Array.isArray(d))
|
|
83
|
+
fail(2, 'days 元素须为对象');
|
|
84
|
+
const o = d;
|
|
85
|
+
const day = { dayOfWeek: needDow(o.dayOfWeek, 'days[].dayOfWeek') };
|
|
86
|
+
if (typeof o.sessionLabel === 'string')
|
|
87
|
+
day.sessionLabel = o.sessionLabel;
|
|
88
|
+
if (typeof o.rest === 'boolean')
|
|
89
|
+
day.rest = o.rest;
|
|
90
|
+
if (o.movements !== undefined) {
|
|
91
|
+
if (!Array.isArray(o.movements))
|
|
92
|
+
fail(2, 'days[].movements 须为数组');
|
|
93
|
+
day.movements = o.movements.map(asMovement);
|
|
94
|
+
}
|
|
95
|
+
return day;
|
|
96
|
+
});
|
|
97
|
+
db.exec('BEGIN');
|
|
98
|
+
try {
|
|
99
|
+
clearWeek(db, week);
|
|
100
|
+
let n = 0;
|
|
101
|
+
for (const d of days) {
|
|
102
|
+
addSession(db, {
|
|
103
|
+
weekNumber: week, dayOfWeek: d.dayOfWeek, sessionLabel: d.sessionLabel ?? (d.rest ? '休息' : '训练'),
|
|
104
|
+
isRestDay: d.rest ?? false, movements: d.movements ?? [],
|
|
105
|
+
});
|
|
106
|
+
n += 1;
|
|
107
|
+
}
|
|
108
|
+
db.exec('COMMIT');
|
|
109
|
+
const summary = '已定第' + week + '周计划(' + n + ' 天)';
|
|
110
|
+
return out(R('定一周计划', 'create', summary, '定一周计划', 'workout_plans(该周先清后写)', {
|
|
111
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['week', 'days']),
|
|
112
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
db.exec('ROLLBACK');
|
|
117
|
+
throw err;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** `calorie.workout.plan-add-movement` · 加训练动作(有名额歧义即 exit 2,不猜)。 */
|
|
121
|
+
export function writePlanAddMovement(params, db) {
|
|
122
|
+
const week = needWeek(optInt(params, 'week'), 'week');
|
|
123
|
+
const dow = needDow(optInt(params, 'dayOfWeek'), 'dayOfWeek');
|
|
124
|
+
const movement = asMovement(params['movement']);
|
|
125
|
+
const label = optStr(params, 'sessionLabel');
|
|
126
|
+
const plan = getPlan(db);
|
|
127
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === week && s.day_of_week === dow);
|
|
128
|
+
if (label !== undefined) {
|
|
129
|
+
const hit = daySessions.filter((s) => s.session_label === label);
|
|
130
|
+
if (hit.length === 0)
|
|
131
|
+
fail(4, dayPhrase(week, dow) + '没有时段「' + label + '」');
|
|
132
|
+
const s = hit[0];
|
|
133
|
+
updateSession(db, week, dow, s.session_index, { movements: [...(s.movements ?? []), movement] });
|
|
134
|
+
const summary = '已在' + dayPhrase(week, dow) + '「' + label + '」加动作「' + String(movement.name) + '」';
|
|
135
|
+
return out(R('加训练动作', 'update', summary, '加训练动作', 'workout_plans(时段追加动作)', {
|
|
136
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['week', 'dayOfWeek', 'sessionLabel', 'movement']),
|
|
137
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
if (daySessions.length === 0) {
|
|
141
|
+
addSession(db, { weekNumber: week, dayOfWeek: dow, sessionLabel: '训练', movements: [movement] });
|
|
142
|
+
}
|
|
143
|
+
else if (daySessions.length === 1) {
|
|
144
|
+
const s = daySessions[0];
|
|
145
|
+
updateSession(db, week, dow, s.session_index, { movements: [...(s.movements ?? []), movement] });
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
fail(2, dayPhrase(week, dow) + '有 ' + daySessions.length + ' 个时段,给 sessionLabel 指定加到哪段');
|
|
149
|
+
}
|
|
150
|
+
const summary = '已在' + dayPhrase(week, dow) + '加动作「' + String(movement.name) + '」';
|
|
151
|
+
return out(R('加训练动作', daySessions.length === 0 ? 'create' : 'update', summary, '加训练动作', 'workout_plans(加动作)', {
|
|
152
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['week', 'dayOfWeek', 'movement']),
|
|
153
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
/** 过程页预览(读,不写库):与上面写实现**同一套定位规则**(同文件,防两处推演走散)。
|
|
157
|
+
* 返回 { op, title, before, after, note },由 `plan.ts` 的 `viewPlanWritePreview` 经
|
|
158
|
+
* `render/html.ts` 的 `renderPlanWritePreviewHtml` 出页。定位歧义时与写实现报同样的错。 */
|
|
159
|
+
/** 「第 1 周 周三」的写法:T351-v12 起住共用件 `./dayPhrase.ts`(校验器也要用同一句),
|
|
160
|
+
* 本件按原样转出,既有调用方与判据不受影响。 */
|
|
161
|
+
export { dayPhrase } from './dayPhrase.js';
|
|
162
|
+
import { dayPhrase } from './dayPhrase.js';
|
|
163
|
+
/** 场次行(改前/改后两栏共用)。 */
|
|
164
|
+
function sessLine(wn, dow, label, moveCount, rest) {
|
|
165
|
+
return { week: wn, dow, label: label === '' ? (rest ? '休息日' : '训练') : label, moves: moveCount, rest, change: '' };
|
|
166
|
+
}
|
|
167
|
+
/** 概述行/提示行:没有周次与星期,整句写进 `label`(其余列在页上印「—」)。 */
|
|
168
|
+
function noteLine(text) {
|
|
169
|
+
return { week: null, dow: null, label: text, moves: null, rest: false, change: '' };
|
|
170
|
+
}
|
|
171
|
+
/** 场次行 + 一句变更说明(改后栏用)。 */
|
|
172
|
+
function withChange(line, change) {
|
|
173
|
+
return { ...line, change };
|
|
174
|
+
}
|
|
175
|
+
/** 改某一场时各字段的界面写法。原来是把参数名与 JSON 直接印在页上(`rest → true`/`newLabel → "上肢"`),
|
|
176
|
+
* 那既是英文裸词也是一串机器话。 */
|
|
177
|
+
const CHANGE_LABEL = {
|
|
178
|
+
newLabel: '时段名', timeStart: '开始时间', timeEnd: '结束时间', rest: '作息', movements: '动作清单',
|
|
179
|
+
};
|
|
180
|
+
function changeText(key, value) {
|
|
181
|
+
const name = CHANGE_LABEL[key] ?? key;
|
|
182
|
+
if (typeof value === 'boolean')
|
|
183
|
+
return name + (value ? '设为休息' : '取消休息');
|
|
184
|
+
if (Array.isArray(value))
|
|
185
|
+
return name + '整段替换(' + value.length + ' 条)';
|
|
186
|
+
return name + '改成「' + String(value) + '」';
|
|
187
|
+
}
|
|
188
|
+
export function previewCopy(params, db) {
|
|
189
|
+
const week = optInt(params, 'week');
|
|
190
|
+
const plan = getPlan(db);
|
|
191
|
+
if (week !== undefined) {
|
|
192
|
+
const from = needWeek(week, 'week');
|
|
193
|
+
const src = plan.sessions.filter((s) => s.week_number === from);
|
|
194
|
+
if (src.length === 0)
|
|
195
|
+
fail(4, '第' + from + '周没有训练场次可复制');
|
|
196
|
+
const maxWn = plan.sessions.reduce((n, s) => Math.max(n, s.week_number), 0);
|
|
197
|
+
const to = optInt(params, 'toWeek') === undefined ? maxWn + 1 : needWeek(optInt(params, 'toWeek'), 'toWeek');
|
|
198
|
+
const before = src.map((s) => sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, s.is_rest_day === 1));
|
|
199
|
+
return {
|
|
200
|
+
op: 'copy', title: '复制第' + from + '周 → 第' + to + '周', before,
|
|
201
|
+
after: before.map((b) => ({ ...b, week: to, change: '第 ' + to + ' 周' })),
|
|
202
|
+
note: '确认后复制 ' + src.length + ' 场;目标周已有内容将被覆盖',
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
const title = optStr(params, 'newTitle') ?? ((plan.config?.title ?? '健身计划') + ' 副本');
|
|
206
|
+
const n = plan.sessions.length;
|
|
207
|
+
if (n === 0)
|
|
208
|
+
fail(4, '无训练计划可复制(先定训练计划)');
|
|
209
|
+
return {
|
|
210
|
+
op: 'copy', title: '复制整份计划为「' + title + '」',
|
|
211
|
+
before: [noteLine('「' + String(plan.config?.title ?? '未命名') + '」共 ' + n + ' 场')],
|
|
212
|
+
after: [noteLine('「' + title + '」共 ' + n + ' 场(整份替换当前计划)')],
|
|
213
|
+
note: '确认后整份替换,旧计划不再保留',
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
export function previewSetWeek(params, db) {
|
|
217
|
+
const week = needWeek(optInt(params, 'week'), 'week');
|
|
218
|
+
const plan = getPlan(db);
|
|
219
|
+
const cur = plan.sessions.filter((s) => s.week_number === week);
|
|
220
|
+
const before = cur.length === 0 ? [noteLine('第 ' + week + ' 周目前是空的')] :
|
|
221
|
+
cur.map((s) => sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, s.is_rest_day === 1));
|
|
222
|
+
const daysRaw = params['days'];
|
|
223
|
+
const after = Array.isArray(daysRaw) ? daysRaw.map((d) => {
|
|
224
|
+
const o = (typeof d === 'object' && d !== null && !Array.isArray(d) ? d : {});
|
|
225
|
+
const dn = typeof o.dayOfWeek === 'number' ? o.dayOfWeek : null;
|
|
226
|
+
const rest = o.rest === true;
|
|
227
|
+
return sessLine(week, dn ?? 0, String(o.sessionLabel ?? (rest ? '休息' : '训练')), null, rest);
|
|
228
|
+
}) : [noteLine('这一页还没填要定哪几天,补上后再确认')];
|
|
229
|
+
return { op: 'set-week', title: '定第 ' + week + ' 周的计划', before, after, note: '确认后该周先清后写' };
|
|
230
|
+
}
|
|
231
|
+
export function previewAddMovement(params, db) {
|
|
232
|
+
const week = needWeek(optInt(params, 'week'), 'week');
|
|
233
|
+
const dow = needDow(optInt(params, 'dayOfWeek'), 'dayOfWeek');
|
|
234
|
+
const movement = asMovement(params['movement']);
|
|
235
|
+
const label = optStr(params, 'sessionLabel');
|
|
236
|
+
const plan = getPlan(db);
|
|
237
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === week && s.day_of_week === dow);
|
|
238
|
+
const before = daySessions.length === 0 ? [noteLine(dayPhrase(week, dow) + ' 目前是空的')] :
|
|
239
|
+
daySessions.map((s) => sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, s.is_rest_day === 1));
|
|
240
|
+
if (label !== undefined && !daySessions.some((s) => s.session_label === label)) {
|
|
241
|
+
fail(4, dayPhrase(week, dow) + '没有时段「' + label + '」');
|
|
242
|
+
}
|
|
243
|
+
if (label === undefined && daySessions.length > 1) {
|
|
244
|
+
fail(2, dayPhrase(week, dow) + '有 ' + daySessions.length + ' 个时段,给 sessionLabel 指定加到哪段');
|
|
245
|
+
}
|
|
246
|
+
const target = label !== undefined ? '「' + label + '」' : (daySessions.length === 0 ? '新时段' : '该时段');
|
|
247
|
+
return {
|
|
248
|
+
op: 'add-movement', title: dayPhrase(week, dow) + target + '加动作「' + String(movement.name) + '」',
|
|
249
|
+
before, after: [...before, sessLine(week, dow, String(movement.name), 1, false)],
|
|
250
|
+
note: '确认后写入计划库',
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
export function previewSetRest(params, db) {
|
|
254
|
+
const rest = typeof params['rest'] === 'boolean' ? params['rest'] : true;
|
|
255
|
+
let week = optInt(params, 'week');
|
|
256
|
+
let dow = optInt(params, 'dayOfWeek');
|
|
257
|
+
if (optStr(params, 'date') !== undefined) {
|
|
258
|
+
const date = dayField(params, 'date');
|
|
259
|
+
if (!date)
|
|
260
|
+
fail(2, 'date 非法');
|
|
261
|
+
const plan0 = getPlan(db);
|
|
262
|
+
const start = plan0.config?.start_date ?? null;
|
|
263
|
+
if (!start)
|
|
264
|
+
fail(2, '计划缺开始日期,无法定位周次');
|
|
265
|
+
assertISO(date, 'date');
|
|
266
|
+
const w = weekOfDate(start, date);
|
|
267
|
+
week = w.week;
|
|
268
|
+
dow = w.dow;
|
|
269
|
+
}
|
|
270
|
+
const wn = needWeek(week, 'week(或 date)');
|
|
271
|
+
const dn = needDow(dow, 'dayOfWeek(或 date)');
|
|
272
|
+
const plan = getPlan(db);
|
|
273
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === wn && s.day_of_week === dn);
|
|
274
|
+
const before = daySessions.length === 0 ? [noteLine(dayPhrase(wn, dn) + ' 目前是空的')] :
|
|
275
|
+
daySessions.map((s) => sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, s.is_rest_day === 1));
|
|
276
|
+
const after = daySessions.length === 0 ? [noteLine('新增休息标记(' + (rest ? '休' : '训') + ')')] :
|
|
277
|
+
daySessions.map((s) => withChange(sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, rest), rest ? '设为休息日' : '取消休息日'));
|
|
278
|
+
return {
|
|
279
|
+
op: 'set-rest', title: (rest ? '定' : '取消') + dayPhrase(wn, dn) + '休息标记',
|
|
280
|
+
before, after, note: '确认后写入计划库',
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
const PREVIEW_BY_OP = {
|
|
284
|
+
copy: previewCopy,
|
|
285
|
+
'set-week': previewSetWeek,
|
|
286
|
+
'add-movement': previewAddMovement,
|
|
287
|
+
'set-rest': previewSetRest,
|
|
288
|
+
update: previewUpdate,
|
|
289
|
+
'update-day': previewUpdateDay,
|
|
290
|
+
'delete-day': previewDeleteDay,
|
|
291
|
+
'update-movement': previewUpdateMovement,
|
|
292
|
+
delete: previewDelete,
|
|
293
|
+
};
|
|
294
|
+
/** 预览分发(`view.plan-write-preview` 经它走;未知 op 即 exit 2)。 */
|
|
295
|
+
export function previewWrite(params, db) {
|
|
296
|
+
const op = optStr(params, 'op');
|
|
297
|
+
const fn = (op !== undefined ? PREVIEW_BY_OP[op] : undefined);
|
|
298
|
+
if (!fn)
|
|
299
|
+
fail(2, '缺参数 op(copy/set-week/add-movement/set-rest/update/update-day/delete-day/update-movement/delete 九选一)');
|
|
300
|
+
return fn(params, db);
|
|
301
|
+
}
|
|
302
|
+
export function previewUpdate(params, db) {
|
|
303
|
+
const plan = getPlan(db);
|
|
304
|
+
if (!plan.config)
|
|
305
|
+
fail(4, '无训练计划可改(先定训练计划)');
|
|
306
|
+
const keys = Object.keys(CONFIG_LABEL).filter((k) => optStr(params, k) !== undefined);
|
|
307
|
+
if (keys.length === 0)
|
|
308
|
+
fail(2, '缺参数(title/version/description/start_date 至少给一个)');
|
|
309
|
+
const cur = {
|
|
310
|
+
title: plan.config.title, version: plan.config.version,
|
|
311
|
+
description: plan.config.description, start_date: plan.config.start_date,
|
|
312
|
+
};
|
|
313
|
+
const before = keys.map((k) => noteLine(String(CONFIG_LABEL[k]) + ':' + String(cur[k] ?? '(空)')));
|
|
314
|
+
const after = keys.map((k) => noteLine(String(CONFIG_LABEL[k]) + ':' + String(optStr(params, k))));
|
|
315
|
+
return { op: 'update', title: '改训练计划配置', before, after, note: '确认后写入计划库' };
|
|
316
|
+
}
|
|
317
|
+
export function previewUpdateDay(params, db) {
|
|
318
|
+
const { wn, dn } = resolveDayTarget(params, db);
|
|
319
|
+
const plan = getPlan(db);
|
|
320
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === wn && s.day_of_week === dn);
|
|
321
|
+
if (daySessions.length === 0)
|
|
322
|
+
fail(4, dayPhrase(wn, dn) + '没有训练可改');
|
|
323
|
+
const before = daySessions.map((s) => sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, s.is_rest_day === 1));
|
|
324
|
+
const changes = [];
|
|
325
|
+
for (const k of ['newLabel', 'timeStart', 'timeEnd', 'rest', 'movements']) {
|
|
326
|
+
if (params[k] !== undefined)
|
|
327
|
+
changes.push(changeText(k, params[k]));
|
|
328
|
+
}
|
|
329
|
+
const after = changes.length === 0
|
|
330
|
+
? [noteLine('这一页还没填要改什么,补上后再确认')]
|
|
331
|
+
: before.map((b) => withChange(b, changes.join(';')));
|
|
332
|
+
return { op: 'update-day', title: '改' + dayPhrase(wn, dn) + '训练', before, after, note: '确认后写入计划库' };
|
|
333
|
+
}
|
|
334
|
+
export function previewDeleteDay(params, db) {
|
|
335
|
+
const { wn, dn } = resolveDayTarget(params, db);
|
|
336
|
+
const si = optInt(params, 'sessionIndex');
|
|
337
|
+
const plan = getPlan(db);
|
|
338
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === wn && s.day_of_week === dn);
|
|
339
|
+
if (daySessions.length === 0)
|
|
340
|
+
fail(4, dayPhrase(wn, dn) + '没有训练可删');
|
|
341
|
+
const before = daySessions.map((s) => sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, s.is_rest_day === 1));
|
|
342
|
+
const after = si === undefined ? [noteLine(dayPhrase(wn, dn) + ' 整天删除(硬删除,不可恢复)')] :
|
|
343
|
+
[noteLine(dayPhrase(wn, dn) + ' 第' + si + ' 段删除(硬删除,不可恢复),其余保留')];
|
|
344
|
+
return { op: 'delete-day', title: '删' + dayPhrase(wn, dn) + '训练', before, after, note: '确认后删除,不可恢复' };
|
|
345
|
+
}
|
|
346
|
+
export function previewUpdateMovement(params, db) {
|
|
347
|
+
const oldName = optStr(params, 'oldMovement');
|
|
348
|
+
if (!oldName)
|
|
349
|
+
fail(2, '缺参数 oldMovement(原动作名)');
|
|
350
|
+
const newName = typeof params['newMovement'] === 'object' && params['newMovement'] !== null
|
|
351
|
+
? String((params['newMovement']['name'] ?? '')) : '';
|
|
352
|
+
// T351-v12:原来名字缺了就换个「(新动作未具名)」的占位符照常出预览——**预览能出、写下去就是一条
|
|
353
|
+
// 没有名字的动作**(真按下去等于把计划里的动作改成无名)。缺参数一律 exit 2 挡在写前,
|
|
354
|
+
// 与上一行「缺参数 oldMovement」同口径。
|
|
355
|
+
if (newName === '')
|
|
356
|
+
fail(2, '缺参数 newMovement.name(换成哪个动作)');
|
|
357
|
+
const week = optInt(params, 'week');
|
|
358
|
+
const plan = getPlan(db);
|
|
359
|
+
const hits = plan.sessions.filter((s) => (week === undefined || s.week_number === week) &&
|
|
360
|
+
(s.movements ?? []).some((m) => m.name === oldName));
|
|
361
|
+
if (hits.length === 0)
|
|
362
|
+
fail(4, '没有找到动作「' + String(oldName) + '」');
|
|
363
|
+
const before = hits.map((s) => sessLine(s.week_number, s.day_of_week, s.session_label, (s.movements ?? []).length, s.is_rest_day === 1));
|
|
364
|
+
return {
|
|
365
|
+
op: 'update-movement', title: '把「' + String(oldName) + '」换成「' + newName + '」(' + hits.length + ' 段)',
|
|
366
|
+
before, after: before.map((b) => withChange(b, '换成「' + newName + '」')), note: '确认后写入计划库',
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
export function previewDelete(params, db) {
|
|
370
|
+
void params;
|
|
371
|
+
const plan = getPlan(db);
|
|
372
|
+
if (!plan.config && plan.sessions.length === 0)
|
|
373
|
+
fail(4, '无训练计划可撤销');
|
|
374
|
+
return {
|
|
375
|
+
op: 'delete', title: '撤销整份训练计划',
|
|
376
|
+
before: [noteLine('「' + String(plan.config?.title ?? '未命名') + '」共 ' + plan.sessions.length + ' 场')],
|
|
377
|
+
after: [noteLine('配置与全部训练场次删除(硬删除,不可恢复)')],
|
|
378
|
+
note: '确认后删除,删完需要重定计划',
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
/** `calorie.workout.plan-set-rest` · 定休息日(date 与 week+dayOfWeek 二选一;缺省标休息)。 */
|
|
382
|
+
export function writePlanSetRest(params, db) {
|
|
383
|
+
const rest = typeof params['rest'] === 'boolean' ? params['rest'] : true;
|
|
384
|
+
let week = optInt(params, 'week');
|
|
385
|
+
let dow = optInt(params, 'dayOfWeek');
|
|
386
|
+
const dateRaw = optStr(params, 'date');
|
|
387
|
+
if (dateRaw !== undefined) {
|
|
388
|
+
const date = dayField(params, 'date');
|
|
389
|
+
if (!date)
|
|
390
|
+
fail(2, 'date 非法');
|
|
391
|
+
const plan = getPlan(db);
|
|
392
|
+
const start = plan.config?.start_date ?? null;
|
|
393
|
+
if (!start)
|
|
394
|
+
fail(2, '计划缺开始日期,无法定位周次');
|
|
395
|
+
assertISO(date, 'date');
|
|
396
|
+
const w = weekOfDate(start, date);
|
|
397
|
+
week = w.week;
|
|
398
|
+
dow = w.dow;
|
|
399
|
+
}
|
|
400
|
+
const wn = needWeek(week, 'week(或 date)');
|
|
401
|
+
const dn = needDow(dow, 'dayOfWeek(或 date)');
|
|
402
|
+
const plan = getPlan(db);
|
|
403
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === wn && s.day_of_week === dn);
|
|
404
|
+
if (daySessions.length === 0) {
|
|
405
|
+
addSession(db, { weekNumber: wn, dayOfWeek: dn, sessionLabel: '休息', isRestDay: rest, movements: [] });
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
for (const s of daySessions)
|
|
409
|
+
updateSession(db, wn, dn, s.session_index, { isRestDay: rest });
|
|
410
|
+
}
|
|
411
|
+
const summary = rest
|
|
412
|
+
? '已定' + dayPhrase(wn, dn) + '为休息日(' + daySessions.length + ' 段)'
|
|
413
|
+
: '已取消' + dayPhrase(wn, dn) + '的休息标记(' + daySessions.length + ' 段)';
|
|
414
|
+
return out(R('定休息日', daySessions.length === 0 ? 'create' : 'update', summary, '定休息日', 'workout_plans(休息标记)', {
|
|
415
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['date', 'week', 'dayOfWeek', 'rest']),
|
|
416
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
417
|
+
}));
|
|
418
|
+
}
|
|
419
|
+
/* ------------------------------------------------ 变更类(#349) */
|
|
420
|
+
const CONFIG_LABEL = { title: '标题', version: '版本', description: '描述', start_date: '开始日期' };
|
|
421
|
+
/** `calorie.workout.plan-update` · 改训练计划(配置字段;总周数由行数决定,不直接改)。 */
|
|
422
|
+
export function writePlanUpdate(params, db) {
|
|
423
|
+
if (params['totalWeeks'] !== undefined || params['total_weeks'] !== undefined) {
|
|
424
|
+
fail(2, '总周数由训练场次决定,不直接改(增删周用定一周计划/删某天训练)');
|
|
425
|
+
}
|
|
426
|
+
const fields = {};
|
|
427
|
+
for (const k of Object.keys(CONFIG_LABEL)) {
|
|
428
|
+
const v = optStr(params, k);
|
|
429
|
+
if (v !== undefined) {
|
|
430
|
+
if (v === '')
|
|
431
|
+
fail(2, k + ' 不得为空');
|
|
432
|
+
fields[k] = v;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
if (Object.keys(fields).length === 0)
|
|
436
|
+
fail(2, '缺参数(title/version/description/start_date 至少给一个)');
|
|
437
|
+
const plan = getPlan(db);
|
|
438
|
+
if (!plan.config)
|
|
439
|
+
fail(4, '无训练计划可改(先定训练计划)');
|
|
440
|
+
const before = Object.keys(fields)
|
|
441
|
+
.map((k) => String(CONFIG_LABEL[k]) + ':' + String(plan.config?.[k] ?? '(空)')).join('、');
|
|
442
|
+
const ok = updateConfig(db, fields);
|
|
443
|
+
if (!ok)
|
|
444
|
+
fail(4, '改训练计划未命中行');
|
|
445
|
+
const after = Object.keys(fields)
|
|
446
|
+
.map((k) => String(CONFIG_LABEL[k]) + ':' + String(fields[k])).join('、');
|
|
447
|
+
const summary = '已改训练计划(' + after + ')';
|
|
448
|
+
return out(R('改训练计划', 'update', summary, '改训练计划', 'workout_plan_config(配置字段)', {
|
|
449
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['title', 'version', 'description', 'start_date']),
|
|
450
|
+
items: [{ status: '成功', reason: '', detail: '改前 ' + before + ' → 改后 ' + after }],
|
|
451
|
+
}));
|
|
452
|
+
}
|
|
453
|
+
function resolveDayTarget(params, db) {
|
|
454
|
+
let week = optInt(params, 'week');
|
|
455
|
+
let dow = optInt(params, 'dayOfWeek');
|
|
456
|
+
if (optStr(params, 'date') !== undefined) {
|
|
457
|
+
const date = dayField(params, 'date');
|
|
458
|
+
if (!date)
|
|
459
|
+
fail(2, 'date 非法');
|
|
460
|
+
const plan = getPlan(db);
|
|
461
|
+
const start = plan.config?.start_date ?? null;
|
|
462
|
+
if (!start)
|
|
463
|
+
fail(2, '计划缺开始日期,无法定位周次');
|
|
464
|
+
assertISO(date, 'date');
|
|
465
|
+
const w = weekOfDate(start, date);
|
|
466
|
+
week = w.week;
|
|
467
|
+
dow = w.dow;
|
|
468
|
+
}
|
|
469
|
+
return { wn: needWeek(week, 'week(或 date)'), dn: needDow(dow, 'dayOfWeek(或 date)') };
|
|
470
|
+
}
|
|
471
|
+
/** `calorie.workout.plan-update-day` · 改某天训练(时段定位:sessionIndex/单段直改/多段必须点名)。 */
|
|
472
|
+
export function writePlanUpdateDay(params, db) {
|
|
473
|
+
const { wn, dn } = resolveDayTarget(params, db);
|
|
474
|
+
const plan = getPlan(db);
|
|
475
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === wn && s.day_of_week === dn);
|
|
476
|
+
if (daySessions.length === 0)
|
|
477
|
+
fail(4, dayPhrase(wn, dn) + '没有训练可改');
|
|
478
|
+
const si = optInt(params, 'sessionIndex');
|
|
479
|
+
let target = daySessions;
|
|
480
|
+
if (si !== undefined) {
|
|
481
|
+
target = daySessions.filter((s) => s.session_index === si);
|
|
482
|
+
if (target.length === 0)
|
|
483
|
+
fail(4, dayPhrase(wn, dn) + '没有第' + si + '段');
|
|
484
|
+
}
|
|
485
|
+
else if (daySessions.length > 1 && optStr(params, 'sessionLabel') === undefined) {
|
|
486
|
+
fail(2, dayPhrase(wn, dn) + '有 ' + daySessions.length + ' 段,给 sessionIndex 或 sessionLabel 指定改哪段');
|
|
487
|
+
}
|
|
488
|
+
else if (optStr(params, 'sessionLabel') !== undefined) {
|
|
489
|
+
target = daySessions.filter((s) => s.session_label === optStr(params, 'sessionLabel'));
|
|
490
|
+
if (target.length === 0)
|
|
491
|
+
fail(4, dayPhrase(wn, dn) + '没有时段「' + String(optStr(params, 'sessionLabel')) + '」');
|
|
492
|
+
}
|
|
493
|
+
const patch = {};
|
|
494
|
+
const label = optStr(params, 'sessionLabel');
|
|
495
|
+
// sessionLabel 既做定位又做改名:定位命中后若同时给 newLabel 则改名,否则只定位
|
|
496
|
+
const newLabel = optStr(params, 'newLabel');
|
|
497
|
+
if (newLabel !== undefined) {
|
|
498
|
+
if (newLabel === '')
|
|
499
|
+
fail(2, 'newLabel 不得为空');
|
|
500
|
+
patch.sessionLabel = newLabel;
|
|
501
|
+
}
|
|
502
|
+
else if (label !== undefined && si === undefined && daySessions.length === 1) {
|
|
503
|
+
patch.sessionLabel = label;
|
|
504
|
+
}
|
|
505
|
+
if (optStr(params, 'timeStart') !== undefined)
|
|
506
|
+
patch.timeStart = optStr(params, 'timeStart') ?? null;
|
|
507
|
+
if (optStr(params, 'timeEnd') !== undefined)
|
|
508
|
+
patch.timeEnd = optStr(params, 'timeEnd') ?? null;
|
|
509
|
+
if (typeof params['rest'] === 'boolean')
|
|
510
|
+
patch.isRestDay = params['rest'];
|
|
511
|
+
if (params['movements'] !== undefined) {
|
|
512
|
+
if (!Array.isArray(params['movements']))
|
|
513
|
+
fail(2, 'movements 须为数组(整段替换)');
|
|
514
|
+
patch.movements = params['movements'].map(asMovement);
|
|
515
|
+
}
|
|
516
|
+
if (Object.keys(patch).length === 0)
|
|
517
|
+
fail(2, '缺参数(newLabel/timeStart/timeEnd/rest/movements 至少给一个)');
|
|
518
|
+
let n = 0;
|
|
519
|
+
for (const s of target) {
|
|
520
|
+
if (updateSession(db, wn, dn, s.session_index, patch))
|
|
521
|
+
n += 1;
|
|
522
|
+
}
|
|
523
|
+
if (n === 0)
|
|
524
|
+
fail(4, '改某天训练未命中行');
|
|
525
|
+
const summary = '已改' + dayPhrase(wn, dn) + '训练(' + n + ' 段)';
|
|
526
|
+
return out(R('改某天训练', 'update', summary, '改某天训练', 'workout_plans(某天时段)', {
|
|
527
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['date', 'week', 'dayOfWeek', 'sessionIndex', 'sessionLabel', 'newLabel', 'timeStart', 'timeEnd', 'rest', 'movements']),
|
|
528
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
529
|
+
}));
|
|
530
|
+
}
|
|
531
|
+
/** `calorie.workout.plan-delete-day` · 删某天训练(硬删除,不可恢复;过程页先给快照)。 */
|
|
532
|
+
export function writePlanDeleteDay(params, db) {
|
|
533
|
+
const { wn, dn } = resolveDayTarget(params, db);
|
|
534
|
+
const si = optInt(params, 'sessionIndex');
|
|
535
|
+
const plan = getPlan(db);
|
|
536
|
+
const daySessions = plan.sessions.filter((s) => s.week_number === wn && s.day_of_week === dn);
|
|
537
|
+
if (daySessions.length === 0)
|
|
538
|
+
fail(4, dayPhrase(wn, dn) + '没有训练可删');
|
|
539
|
+
const snapshot = daySessions.map((s) => s.session_label || '训练').join('、');
|
|
540
|
+
if (si !== undefined) {
|
|
541
|
+
const hit = daySessions.filter((s) => s.session_index === si);
|
|
542
|
+
if (hit.length === 0)
|
|
543
|
+
fail(4, dayPhrase(wn, dn) + '没有第' + si + '段');
|
|
544
|
+
deleteSession(db, wn, dn, si);
|
|
545
|
+
const summary = '已删' + dayPhrase(wn, dn) + '第' + si + '段(硬删除,不可恢复)';
|
|
546
|
+
return out(R('删某天训练', 'delete', summary, '删某天训练', 'workout_plans(删时段)', {
|
|
547
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['date', 'week', 'dayOfWeek', 'sessionIndex']),
|
|
548
|
+
items: [{ status: '已删除(硬,不可恢复)', reason: '', detail: '快照:' + snapshot + ' → ' + summary }],
|
|
549
|
+
}));
|
|
550
|
+
}
|
|
551
|
+
const r = deleteDay(db, wn, dn);
|
|
552
|
+
const summary = '已删' + dayPhrase(wn, dn) + '训练(' + r.deletedSessions + ' 段,硬删除,不可恢复)';
|
|
553
|
+
return out(R('删某天训练', 'delete', summary, '删某天训练', 'workout_plans(删整天)', {
|
|
554
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['date', 'week', 'dayOfWeek']),
|
|
555
|
+
items: [{ status: '已删除(硬,不可恢复)', reason: '', detail: '快照:' + snapshot + ' → ' + summary }],
|
|
556
|
+
}));
|
|
557
|
+
}
|
|
558
|
+
/** `calorie.workout.plan-update-movement` · 改动作(按名替换;week 缺省=所有周)。 */
|
|
559
|
+
export function writePlanUpdateMovement(params, db) {
|
|
560
|
+
const oldName = optStr(params, 'oldMovement');
|
|
561
|
+
if (!oldName)
|
|
562
|
+
fail(2, '缺参数 oldMovement(原动作名)');
|
|
563
|
+
const newMove = asMovement(params['newMovement']);
|
|
564
|
+
// 同上:没名字的替换一律挡在写前(写下去就是一条无名动作)。
|
|
565
|
+
if (typeof newMove.name !== 'string' || newMove.name === '')
|
|
566
|
+
fail(2, '缺参数 newMovement.name(换成哪个动作)');
|
|
567
|
+
const week = optInt(params, 'week');
|
|
568
|
+
if (week !== undefined)
|
|
569
|
+
needWeek(week, 'week');
|
|
570
|
+
const plan = getPlan(db);
|
|
571
|
+
const cands = plan.sessions.filter((s) => week === undefined || s.week_number === week);
|
|
572
|
+
let n = 0;
|
|
573
|
+
const where = [];
|
|
574
|
+
for (const s of cands) {
|
|
575
|
+
const moves = s.movements ?? [];
|
|
576
|
+
if (!moves.some((m) => m.name === oldName))
|
|
577
|
+
continue;
|
|
578
|
+
const next = moves.map((m) => (m.name === oldName ? { ...m, ...newMove } : m));
|
|
579
|
+
if (updateSession(db, s.week_number, s.day_of_week, s.session_index, { movements: next })) {
|
|
580
|
+
n += 1;
|
|
581
|
+
where.push(dayPhrase(s.week_number, s.day_of_week));
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
if (n === 0)
|
|
585
|
+
fail(4, '没有找到动作「' + String(oldName) + '」' + (week === undefined ? '' : '(第' + week + '周)'));
|
|
586
|
+
const summary = '已把「' + String(oldName) + '」换成「' + String(newMove.name) + '」(' + n + ' 段:' + where.slice(0, 4).join('、') + (where.length > 4 ? '…' : '') + ')';
|
|
587
|
+
return out(R('改动作', 'update', summary, '改动作', 'workout_plans(动作替换)', {
|
|
588
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: provided(params, ['week', 'oldMovement', 'newMovement']),
|
|
589
|
+
items: [{ status: '成功', reason: '', detail: summary }],
|
|
590
|
+
}));
|
|
591
|
+
}
|
|
592
|
+
/** `calorie.workout.plan-delete` · 撤销训练计划(整份硬删除,不可恢复;须带 confirm:true,
|
|
593
|
+
* 该确认只能来自写前预览页——裸调一律 exit 2,防一次误调清空整份计划)。 */
|
|
594
|
+
export function writePlanDelete(params, db) {
|
|
595
|
+
if (params['confirm'] !== true)
|
|
596
|
+
fail(2, '撤销整份计划须确认:先走写前预览(op=delete),确认后带 confirm:true 再调');
|
|
597
|
+
const plan = getPlan(db);
|
|
598
|
+
if (!plan.config && plan.sessions.length === 0)
|
|
599
|
+
fail(4, '无训练计划可撤销');
|
|
600
|
+
const r = deletePlan(db);
|
|
601
|
+
const summary = '已撤销训练计划「' + String(r.planSummary.title ?? '未命名') + '」(配置+' + r.deletedRows + ' 场,硬删除,不可恢复)';
|
|
602
|
+
return out(R('撤销训练计划', 'delete', summary, '撤销训练计划', 'workout_plan_config+workout_plans(整份删除)', {
|
|
603
|
+
recordId: null, ids: [], idSource: 'condition', writtenFields: ['confirm'],
|
|
604
|
+
items: [{ status: '已删除(硬,不可恢复)', reason: '', detail: summary }],
|
|
605
|
+
}));
|
|
606
|
+
}
|
|
607
|
+
//# sourceMappingURL=write.js.map
|