skill-bill 0.1.0 → 0.2.1
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 +128 -0
- package/dist/.gen-inputs.json +30 -0
- package/dist/account/accounts.d.ts +98 -0
- package/dist/account/accounts.d.ts.map +1 -0
- package/dist/account/accounts.js +184 -0
- package/dist/account/accounts.js.map +1 -0
- package/dist/account/commands.d.ts +18 -0
- package/dist/account/commands.d.ts.map +1 -0
- package/dist/account/commands.js +21 -0
- package/dist/account/commands.js.map +1 -0
- package/dist/account/declaration.d.ts +9 -0
- package/dist/account/declaration.d.ts.map +1 -0
- package/dist/account/declaration.js +70 -0
- package/dist/account/declaration.js.map +1 -0
- package/dist/account/index.d.ts +15 -0
- package/dist/account/index.d.ts.map +1 -0
- package/dist/account/index.js +15 -0
- package/dist/account/index.js.map +1 -0
- package/dist/account/pageParts.d.ts +127 -0
- package/dist/account/pageParts.d.ts.map +1 -0
- package/dist/account/pageParts.js +222 -0
- package/dist/account/pageParts.js.map +1 -0
- package/dist/account/params.d.ts +52 -0
- package/dist/account/params.d.ts.map +1 -0
- package/dist/account/params.js +153 -0
- package/dist/account/params.js.map +1 -0
- package/dist/account/query.d.ts +11 -0
- package/dist/account/query.d.ts.map +1 -0
- package/dist/account/query.js +10 -0
- package/dist/account/query.js.map +1 -0
- package/dist/account/read.d.ts +8 -0
- package/dist/account/read.d.ts.map +1 -0
- package/dist/account/read.js +56 -0
- package/dist/account/read.js.map +1 -0
- package/dist/account/scene-add.d.ts +3 -0
- package/dist/account/scene-add.d.ts.map +1 -0
- package/dist/account/scene-add.js +54 -0
- package/dist/account/scene-add.js.map +1 -0
- package/dist/account/scene-transfer.d.ts +3 -0
- package/dist/account/scene-transfer.d.ts.map +1 -0
- package/dist/account/scene-transfer.js +73 -0
- package/dist/account/scene-transfer.js.map +1 -0
- package/dist/account/scene-update.d.ts +3 -0
- package/dist/account/scene-update.d.ts.map +1 -0
- package/dist/account/scene-update.js +56 -0
- package/dist/account/scene-update.js.map +1 -0
- package/dist/account/scene.d.ts +73 -0
- package/dist/account/scene.d.ts.map +1 -0
- package/dist/account/scene.js +34 -0
- package/dist/account/scene.js.map +1 -0
- package/dist/account/template-form.d.ts +52 -0
- package/dist/account/template-form.d.ts.map +1 -0
- package/dist/account/template-form.js +125 -0
- package/dist/account/template-form.js.map +1 -0
- package/dist/account/template-summary.d.ts +38 -0
- package/dist/account/template-summary.d.ts.map +1 -0
- package/dist/account/template-summary.js +179 -0
- package/dist/account/template-summary.js.map +1 -0
- package/dist/account/template-update.d.ts +35 -0
- package/dist/account/template-update.d.ts.map +1 -0
- package/dist/account/template-update.js +193 -0
- package/dist/account/template-update.js.map +1 -0
- package/dist/account/write.d.ts +14 -0
- package/dist/account/write.d.ts.map +1 -0
- package/dist/account/write.js +166 -0
- package/dist/account/write.js.map +1 -0
- package/dist/analysis/agg.d.ts +135 -0
- package/dist/analysis/agg.d.ts.map +1 -0
- package/dist/analysis/agg.js +196 -0
- package/dist/analysis/agg.js.map +1 -0
- package/dist/analysis/cards.d.ts +40 -0
- package/dist/analysis/cards.d.ts.map +1 -0
- package/dist/analysis/cards.js +97 -0
- package/dist/analysis/cards.js.map +1 -0
- package/dist/analysis/commands.d.ts +17 -0
- package/dist/analysis/commands.d.ts.map +1 -0
- package/dist/analysis/commands.js +28 -0
- package/dist/analysis/commands.js.map +1 -0
- package/dist/analysis/declaration.d.ts +9 -0
- package/dist/analysis/declaration.d.ts.map +1 -0
- package/dist/analysis/declaration.js +368 -0
- package/dist/analysis/declaration.js.map +1 -0
- package/dist/analysis/index.d.ts +14 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +14 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/pageParts.d.ts +103 -0
- package/dist/analysis/pageParts.d.ts.map +1 -0
- package/dist/analysis/pageParts.js +158 -0
- package/dist/analysis/pageParts.js.map +1 -0
- package/dist/{policy/analysis.d.ts → analysis/params.d.ts} +1 -1
- package/dist/analysis/params.d.ts.map +1 -0
- package/dist/{policy/analysis.js → analysis/params.js} +10 -4
- package/dist/analysis/params.js.map +1 -0
- package/dist/analysis/read.d.ts +26 -0
- package/dist/analysis/read.d.ts.map +1 -0
- package/dist/analysis/read.js +84 -0
- package/dist/analysis/read.js.map +1 -0
- package/dist/analysis/scene-account.d.ts +3 -0
- package/dist/analysis/scene-account.d.ts.map +1 -0
- package/dist/analysis/scene-account.js +88 -0
- package/dist/analysis/scene-account.js.map +1 -0
- package/dist/analysis/scene-activity.d.ts +3 -0
- package/dist/analysis/scene-activity.d.ts.map +1 -0
- package/dist/analysis/scene-activity.js +108 -0
- package/dist/analysis/scene-activity.js.map +1 -0
- package/dist/analysis/scene-anomaly.d.ts +3 -0
- package/dist/analysis/scene-anomaly.d.ts.map +1 -0
- package/dist/analysis/scene-anomaly.js +173 -0
- package/dist/analysis/scene-anomaly.js.map +1 -0
- package/dist/analysis/scene-cat-compare.d.ts +3 -0
- package/dist/analysis/scene-cat-compare.d.ts.map +1 -0
- package/dist/analysis/scene-cat-compare.js +128 -0
- package/dist/analysis/scene-cat-compare.js.map +1 -0
- package/dist/analysis/scene-cat-trend.d.ts +3 -0
- package/dist/analysis/scene-cat-trend.d.ts.map +1 -0
- package/dist/analysis/scene-cat-trend.js +121 -0
- package/dist/analysis/scene-cat-trend.js.map +1 -0
- package/dist/analysis/scene-category.d.ts +3 -0
- package/dist/analysis/scene-category.d.ts.map +1 -0
- package/dist/analysis/scene-category.js +104 -0
- package/dist/analysis/scene-category.js.map +1 -0
- package/dist/analysis/scene-debt.d.ts +3 -0
- package/dist/analysis/scene-debt.d.ts.map +1 -0
- package/dist/analysis/scene-debt.js +111 -0
- package/dist/analysis/scene-debt.js.map +1 -0
- package/dist/analysis/scene-distribution.d.ts +3 -0
- package/dist/analysis/scene-distribution.d.ts.map +1 -0
- package/dist/analysis/scene-distribution.js +144 -0
- package/dist/analysis/scene-distribution.js.map +1 -0
- package/dist/analysis/scene-insight.d.ts +3 -0
- package/dist/analysis/scene-insight.d.ts.map +1 -0
- package/dist/analysis/scene-insight.js +151 -0
- package/dist/analysis/scene-insight.js.map +1 -0
- package/dist/analysis/scene-installment.d.ts +3 -0
- package/dist/analysis/scene-installment.d.ts.map +1 -0
- package/dist/analysis/scene-installment.js +168 -0
- package/dist/analysis/scene-installment.js.map +1 -0
- package/dist/analysis/scene-ledger.d.ts +3 -0
- package/dist/analysis/scene-ledger.d.ts.map +1 -0
- package/dist/analysis/scene-ledger.js +80 -0
- package/dist/analysis/scene-ledger.js.map +1 -0
- package/dist/analysis/scene-monthly.d.ts +3 -0
- package/dist/analysis/scene-monthly.d.ts.map +1 -0
- package/dist/analysis/scene-monthly.js +79 -0
- package/dist/analysis/scene-monthly.js.map +1 -0
- package/dist/analysis/scene-overview.d.ts +3 -0
- package/dist/analysis/scene-overview.d.ts.map +1 -0
- package/dist/analysis/scene-overview.js +82 -0
- package/dist/analysis/scene-overview.js.map +1 -0
- package/dist/analysis/scene-period-compare.d.ts +3 -0
- package/dist/analysis/scene-period-compare.d.ts.map +1 -0
- package/dist/analysis/scene-period-compare.js +127 -0
- package/dist/analysis/scene-period-compare.js.map +1 -0
- package/dist/analysis/scene-range-compare.d.ts +3 -0
- package/dist/analysis/scene-range-compare.d.ts.map +1 -0
- package/dist/analysis/scene-range-compare.js +144 -0
- package/dist/analysis/scene-range-compare.js.map +1 -0
- package/dist/analysis/scene-refund.d.ts +3 -0
- package/dist/analysis/scene-refund.d.ts.map +1 -0
- package/dist/analysis/scene-refund.js +78 -0
- package/dist/analysis/scene-refund.js.map +1 -0
- package/dist/analysis/scene-reimburse.d.ts +3 -0
- package/dist/analysis/scene-reimburse.d.ts.map +1 -0
- package/dist/analysis/scene-reimburse.js +88 -0
- package/dist/analysis/scene-reimburse.js.map +1 -0
- package/dist/analysis/scene-stats.d.ts +3 -0
- package/dist/analysis/scene-stats.d.ts.map +1 -0
- package/dist/analysis/scene-stats.js +80 -0
- package/dist/analysis/scene-stats.js.map +1 -0
- package/dist/analysis/scene-structure.d.ts +3 -0
- package/dist/analysis/scene-structure.d.ts.map +1 -0
- package/dist/analysis/scene-structure.js +93 -0
- package/dist/analysis/scene-structure.js.map +1 -0
- package/dist/analysis/scene-top-freq.d.ts +3 -0
- package/dist/analysis/scene-top-freq.d.ts.map +1 -0
- package/dist/analysis/scene-top-freq.js +91 -0
- package/dist/analysis/scene-top-freq.js.map +1 -0
- package/dist/analysis/scene-top.d.ts +3 -0
- package/dist/analysis/scene-top.d.ts.map +1 -0
- package/dist/analysis/scene-top.js +69 -0
- package/dist/analysis/scene-top.js.map +1 -0
- package/dist/analysis/scene-trend.d.ts +3 -0
- package/dist/analysis/scene-trend.d.ts.map +1 -0
- package/dist/analysis/scene-trend.js +131 -0
- package/dist/analysis/scene-trend.js.map +1 -0
- package/dist/analysis/scene-week.d.ts +3 -0
- package/dist/analysis/scene-week.d.ts.map +1 -0
- package/dist/analysis/scene-week.js +128 -0
- package/dist/analysis/scene-week.js.map +1 -0
- package/dist/analysis/scene-yearly.d.ts +3 -0
- package/dist/analysis/scene-yearly.d.ts.map +1 -0
- package/dist/analysis/scene-yearly.js +103 -0
- package/dist/analysis/scene-yearly.js.map +1 -0
- package/dist/analysis/scene-yoy.d.ts +3 -0
- package/dist/analysis/scene-yoy.d.ts.map +1 -0
- package/dist/analysis/scene-yoy.js +95 -0
- package/dist/analysis/scene-yoy.js.map +1 -0
- package/dist/analysis/scene.d.ts +240 -0
- package/dist/analysis/scene.d.ts.map +1 -0
- package/dist/analysis/scene.js +47 -0
- package/dist/analysis/scene.js.map +1 -0
- package/dist/analysis/template-bars.d.ts +3 -0
- package/dist/analysis/template-bars.d.ts.map +1 -0
- package/dist/analysis/template-bars.js +64 -0
- package/dist/analysis/template-bars.js.map +1 -0
- package/dist/analysis/template-charts.d.ts +3 -0
- package/dist/analysis/template-charts.d.ts.map +1 -0
- package/dist/analysis/template-charts.js +55 -0
- package/dist/analysis/template-charts.js.map +1 -0
- package/dist/analysis/template-compare.d.ts +3 -0
- package/dist/analysis/template-compare.d.ts.map +1 -0
- package/dist/analysis/template-compare.js +54 -0
- package/dist/analysis/template-compare.js.map +1 -0
- package/dist/analysis/template-insight.d.ts +3 -0
- package/dist/analysis/template-insight.d.ts.map +1 -0
- package/dist/analysis/template-insight.js +56 -0
- package/dist/analysis/template-insight.js.map +1 -0
- package/dist/analysis/template-tables.d.ts +3 -0
- package/dist/analysis/template-tables.d.ts.map +1 -0
- package/dist/analysis/template-tables.js +49 -0
- package/dist/analysis/template-tables.js.map +1 -0
- package/dist/analysis/views.d.ts +35 -0
- package/dist/analysis/views.d.ts.map +1 -0
- package/dist/{render → analysis}/views.js +2 -55
- package/dist/analysis/views.js.map +1 -0
- package/dist/cli/cmd_read.js +158 -415
- 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 +81 -0
- package/dist/cli/config.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 +32 -0
- package/dist/cli/health.js.map +1 -0
- package/dist/cli/registry.d.ts +15 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +30 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/config.d.ts +41 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -0
- package/dist/fetch/db.d.ts +9 -0
- package/dist/fetch/db.d.ts.map +1 -1
- package/dist/fetch/db.js +19 -2
- package/dist/fetch/db.js.map +1 -1
- package/dist/fetch/index.d.ts +2 -2
- package/dist/fetch/index.d.ts.map +1 -1
- package/dist/fetch/index.js +2 -2
- package/dist/fetch/index.js.map +1 -1
- package/dist/fetch/paths.d.ts +16 -4
- package/dist/fetch/paths.d.ts.map +1 -1
- package/dist/fetch/paths.js +54 -24
- package/dist/fetch/paths.js.map +1 -1
- package/dist/goal/commands.d.ts +18 -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/declaration.d.ts +9 -0
- package/dist/goal/declaration.d.ts.map +1 -0
- package/dist/goal/declaration.js +71 -0
- package/dist/goal/declaration.js.map +1 -0
- package/dist/goal/goalData.d.ts +126 -0
- package/dist/goal/goalData.d.ts.map +1 -0
- package/dist/goal/goalData.js +228 -0
- package/dist/goal/goalData.js.map +1 -0
- package/dist/goal/index.d.ts +19 -0
- package/dist/goal/index.d.ts.map +1 -0
- package/dist/goal/index.js +19 -0
- package/dist/goal/index.js.map +1 -0
- package/dist/goal/pageParts.d.ts +140 -0
- package/dist/goal/pageParts.d.ts.map +1 -0
- package/dist/goal/pageParts.js +233 -0
- package/dist/goal/pageParts.js.map +1 -0
- package/dist/goal/params.d.ts +63 -0
- package/dist/goal/params.d.ts.map +1 -0
- package/dist/goal/params.js +164 -0
- package/dist/goal/params.js.map +1 -0
- package/dist/goal/query.d.ts +12 -0
- package/dist/goal/query.d.ts.map +1 -0
- package/dist/goal/query.js +10 -0
- package/dist/goal/query.js.map +1 -0
- package/dist/goal/read.d.ts +5 -0
- package/dist/goal/read.d.ts.map +1 -0
- package/dist/goal/read.js +79 -0
- package/dist/goal/read.js.map +1 -0
- package/dist/goal/scene-budget.d.ts +3 -0
- package/dist/goal/scene-budget.d.ts.map +1 -0
- package/dist/goal/scene-budget.js +125 -0
- package/dist/goal/scene-budget.js.map +1 -0
- package/dist/goal/scene-saving.d.ts +3 -0
- package/dist/goal/scene-saving.d.ts.map +1 -0
- package/dist/goal/scene-saving.js +116 -0
- package/dist/goal/scene-saving.js.map +1 -0
- package/dist/goal/scene-set-budget.d.ts +3 -0
- package/dist/goal/scene-set-budget.d.ts.map +1 -0
- package/dist/goal/scene-set-budget.js +94 -0
- package/dist/goal/scene-set-budget.js.map +1 -0
- package/dist/goal/scene-set-saving.d.ts +3 -0
- package/dist/goal/scene-set-saving.d.ts.map +1 -0
- package/dist/goal/scene-set-saving.js +66 -0
- package/dist/goal/scene-set-saving.js.map +1 -0
- package/dist/goal/scene.d.ts +142 -0
- package/dist/goal/scene.d.ts.map +1 -0
- package/dist/goal/scene.js +51 -0
- package/dist/goal/scene.js.map +1 -0
- package/dist/goal/template-form.d.ts +32 -0
- package/dist/goal/template-form.d.ts.map +1 -0
- package/dist/goal/template-form.js +124 -0
- package/dist/goal/template-form.js.map +1 -0
- package/dist/goal/template-progress.d.ts +47 -0
- package/dist/goal/template-progress.d.ts.map +1 -0
- package/dist/goal/template-progress.js +79 -0
- package/dist/goal/template-progress.js.map +1 -0
- package/dist/goal/write.d.ts +6 -0
- package/dist/goal/write.d.ts.map +1 -0
- package/dist/goal/write.js +131 -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 +456 -0
- package/dist/health.js.map +1 -0
- package/dist/help/declaration.d.ts +9 -0
- package/dist/help/declaration.d.ts.map +1 -0
- package/dist/help/declaration.js +28 -0
- package/dist/help/declaration.js.map +1 -0
- package/dist/help/helpFile.d.ts +88 -0
- package/dist/help/helpFile.d.ts.map +1 -0
- package/dist/help/helpFile.js +119 -0
- package/dist/help/helpFile.js.map +1 -0
- package/dist/help/helpPaths.d.ts +11 -0
- package/dist/help/helpPaths.d.ts.map +1 -0
- package/dist/help/helpPaths.js +36 -0
- package/dist/help/helpPaths.js.map +1 -0
- package/dist/help/index.d.ts +2 -0
- package/dist/help/index.d.ts.map +1 -1
- package/dist/help/index.js +2 -0
- package/dist/help/index.js.map +1 -1
- package/dist/help/items.d.ts +17 -0
- package/dist/help/items.d.ts.map +1 -0
- package/dist/help/items.js +5 -0
- package/dist/help/items.js.map +1 -0
- package/dist/help/lookup.d.ts +1 -1
- package/dist/help/lookup.d.ts.map +1 -1
- package/dist/help/lookup.js +5 -4
- package/dist/help/lookup.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/link/declaration.d.ts +9 -0
- package/dist/link/declaration.d.ts.map +1 -0
- package/dist/link/declaration.js +40 -0
- package/dist/link/declaration.js.map +1 -0
- package/dist/output.d.ts +21 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +48 -0
- package/dist/output.js.map +1 -0
- package/dist/query/commands.d.ts +17 -0
- package/dist/query/commands.d.ts.map +1 -0
- package/dist/query/commands.js +36 -0
- package/dist/query/commands.js.map +1 -0
- package/dist/query/declaration.d.ts +9 -0
- package/dist/query/declaration.d.ts.map +1 -0
- package/dist/query/declaration.js +251 -0
- package/dist/query/declaration.js.map +1 -0
- package/dist/query/detail.d.ts +28 -0
- package/dist/query/detail.d.ts.map +1 -0
- package/dist/query/detail.js +143 -0
- package/dist/query/detail.js.map +1 -0
- package/dist/query/index.d.ts +19 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +12 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/items.d.ts +22 -0
- package/dist/query/items.d.ts.map +1 -0
- package/dist/query/items.js +7 -0
- package/dist/query/items.js.map +1 -0
- package/dist/query/list.d.ts +100 -0
- package/dist/query/list.d.ts.map +1 -0
- package/dist/query/list.js +247 -0
- package/dist/query/list.js.map +1 -0
- package/dist/query/pageParts.d.ts +6 -0
- package/dist/query/pageParts.d.ts.map +1 -0
- package/dist/query/pageParts.js +18 -0
- package/dist/query/pageParts.js.map +1 -0
- package/dist/query/read.d.ts +17 -0
- package/dist/query/read.d.ts.map +1 -0
- package/dist/query/read.js +324 -0
- package/dist/query/read.js.map +1 -0
- package/dist/render/envelope.d.ts.map +1 -1
- package/dist/render/envelope.js +21 -16
- package/dist/render/envelope.js.map +1 -1
- package/dist/render/errors.d.ts +1 -1
- package/dist/render/errors.d.ts.map +1 -1
- package/dist/render/errors.js.map +1 -1
- package/dist/render/html.d.ts +0 -1
- package/dist/render/html.d.ts.map +1 -1
- package/dist/render/html.js +2 -4
- package/dist/render/html.js.map +1 -1
- package/dist/render/index.d.ts +6 -3
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +9 -2
- package/dist/render/index.js.map +1 -1
- package/dist/render/templates.js +1 -1
- package/dist/render/templates.js.map +1 -1
- package/dist/setup/backups.d.ts +52 -0
- package/dist/setup/backups.d.ts.map +1 -0
- package/dist/setup/backups.js +172 -0
- package/dist/setup/backups.js.map +1 -0
- package/dist/setup/blocked.d.ts +12 -0
- package/dist/setup/blocked.d.ts.map +1 -0
- package/dist/setup/blocked.js +65 -0
- package/dist/setup/blocked.js.map +1 -0
- package/dist/setup/commands.d.ts +10 -0
- package/dist/setup/commands.d.ts.map +1 -0
- package/dist/setup/commands.js +12 -0
- package/dist/setup/commands.js.map +1 -0
- package/dist/setup/declaration.d.ts +9 -0
- package/dist/setup/declaration.d.ts.map +1 -0
- package/dist/setup/declaration.js +92 -0
- package/dist/setup/declaration.js.map +1 -0
- package/dist/setup/import.d.ts +8 -0
- package/dist/setup/import.d.ts.map +1 -0
- package/dist/setup/import.js +111 -0
- package/dist/setup/import.js.map +1 -0
- package/dist/setup/importer.d.ts +79 -0
- package/dist/setup/importer.d.ts.map +1 -0
- package/dist/setup/importer.js +231 -0
- package/dist/setup/importer.js.map +1 -0
- package/dist/setup/index.d.ts +8 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +8 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/pageParts.d.ts +93 -0
- package/dist/setup/pageParts.d.ts.map +1 -0
- package/dist/setup/pageParts.js +197 -0
- package/dist/setup/pageParts.js.map +1 -0
- package/dist/setup/params.d.ts +43 -0
- package/dist/setup/params.d.ts.map +1 -0
- package/dist/setup/params.js +94 -0
- package/dist/setup/params.js.map +1 -0
- package/dist/setup/restore.d.ts +5 -0
- package/dist/setup/restore.d.ts.map +1 -0
- package/dist/setup/restore.js +129 -0
- package/dist/setup/restore.js.map +1 -0
- package/dist/setup/run.d.ts +5 -0
- package/dist/setup/run.d.ts.map +1 -0
- package/dist/setup/run.js +188 -0
- package/dist/setup/run.js.map +1 -0
- package/dist/setup/scene-backup-create.d.ts +3 -0
- package/dist/setup/scene-backup-create.d.ts.map +1 -0
- package/dist/setup/scene-backup-create.js +26 -0
- package/dist/setup/scene-backup-create.js.map +1 -0
- package/dist/setup/scene-backup-list.d.ts +3 -0
- package/dist/setup/scene-backup-list.d.ts.map +1 -0
- package/dist/setup/scene-backup-list.js +24 -0
- package/dist/setup/scene-backup-list.js.map +1 -0
- package/dist/setup/scene-import.d.ts +3 -0
- package/dist/setup/scene-import.d.ts.map +1 -0
- package/dist/setup/scene-import.js +36 -0
- package/dist/setup/scene-import.js.map +1 -0
- package/dist/setup/scene-init-status.d.ts +14 -0
- package/dist/setup/scene-init-status.d.ts.map +1 -0
- package/dist/setup/scene-init-status.js +16 -0
- package/dist/setup/scene-init-status.js.map +1 -0
- package/dist/setup/scene-init.d.ts +3 -0
- package/dist/setup/scene-init.d.ts.map +1 -0
- package/dist/setup/scene-init.js +25 -0
- package/dist/setup/scene-init.js.map +1 -0
- package/dist/setup/scene-restore.d.ts +3 -0
- package/dist/setup/scene-restore.d.ts.map +1 -0
- package/dist/setup/scene-restore.js +33 -0
- package/dist/setup/scene-restore.js.map +1 -0
- package/dist/setup/scene.d.ts +26 -0
- package/dist/setup/scene.d.ts.map +1 -0
- package/dist/setup/scene.js +42 -0
- package/dist/setup/scene.js.map +1 -0
- package/dist/setup/status.d.ts +47 -0
- package/dist/setup/status.d.ts.map +1 -0
- package/dist/setup/status.js +68 -0
- package/dist/setup/status.js.map +1 -0
- package/dist/setup/steps.d.ts +66 -0
- package/dist/setup/steps.d.ts.map +1 -0
- package/dist/setup/steps.js +123 -0
- package/dist/setup/steps.js.map +1 -0
- package/dist/setup/template-list.d.ts +29 -0
- package/dist/setup/template-list.d.ts.map +1 -0
- package/dist/setup/template-list.js +187 -0
- package/dist/setup/template-list.js.map +1 -0
- package/dist/setup/template-receipt.d.ts +18 -0
- package/dist/setup/template-receipt.d.ts.map +1 -0
- package/dist/setup/template-receipt.js +93 -0
- package/dist/setup/template-receipt.js.map +1 -0
- package/dist/setup/template-wizard.d.ts +64 -0
- package/dist/setup/template-wizard.d.ts.map +1 -0
- package/dist/setup/template-wizard.js +233 -0
- package/dist/setup/template-wizard.js.map +1 -0
- package/dist/{policy → shared}/category.d.ts +0 -6
- package/dist/shared/category.d.ts.map +1 -0
- package/dist/{policy → shared}/category.js +16 -54
- package/dist/shared/category.js.map +1 -0
- package/dist/shared/commandSpec.d.ts +75 -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/copyArea.d.ts +51 -0
- package/dist/shared/copyArea.d.ts.map +1 -0
- package/dist/shared/copyArea.js +124 -0
- package/dist/shared/copyArea.js.map +1 -0
- package/dist/shared/dateRange.d.ts +31 -0
- package/dist/shared/dateRange.d.ts.map +1 -0
- package/dist/shared/dateRange.js +121 -0
- package/dist/shared/dateRange.js.map +1 -0
- package/dist/shared/docPage.d.ts +21 -0
- package/dist/shared/docPage.d.ts.map +1 -0
- package/dist/shared/docPage.js +120 -0
- package/dist/shared/docPage.js.map +1 -0
- package/dist/shared/kpi.d.ts +21 -0
- package/dist/shared/kpi.d.ts.map +1 -0
- package/dist/shared/kpi.js +20 -0
- package/dist/shared/kpi.js.map +1 -0
- package/dist/shared/pageIdentity.d.ts +39 -0
- package/dist/shared/pageIdentity.d.ts.map +1 -0
- package/dist/shared/pageIdentity.js +45 -0
- package/dist/shared/pageIdentity.js.map +1 -0
- package/dist/shared/pageSections.d.ts +23 -0
- package/dist/shared/pageSections.d.ts.map +1 -0
- package/dist/shared/pageSections.js +52 -0
- package/dist/shared/pageSections.js.map +1 -0
- package/dist/shared/pageShell.d.ts +24 -0
- package/dist/shared/pageShell.d.ts.map +1 -0
- package/dist/shared/pageShell.js +37 -0
- package/dist/shared/pageShell.js.map +1 -0
- package/dist/shared/params.d.ts +11 -0
- package/dist/shared/params.d.ts.map +1 -0
- package/dist/shared/params.js +60 -0
- package/dist/shared/params.js.map +1 -0
- package/dist/shared/sourceLine.d.ts +19 -0
- package/dist/shared/sourceLine.d.ts.map +1 -0
- package/dist/shared/sourceLine.js +52 -0
- package/dist/shared/sourceLine.js.map +1 -0
- package/dist/shared/writeParts.d.ts +64 -0
- package/dist/shared/writeParts.d.ts.map +1 -0
- package/dist/shared/writeParts.js +39 -0
- package/dist/shared/writeParts.js.map +1 -0
- package/dist/triggers/routeSpec.d.ts +109 -0
- package/dist/triggers/routeSpec.d.ts.map +1 -0
- package/dist/triggers/routeSpec.js +19 -0
- package/dist/triggers/routeSpec.js.map +1 -0
- package/dist/triggers/wake-assets.d.ts +15 -0
- package/dist/triggers/wake-assets.d.ts.map +1 -0
- package/dist/triggers/wake-assets.js +67 -0
- package/dist/triggers/wake-assets.js.map +1 -0
- package/dist/triggers/wakeTable.d.ts +18 -0
- package/dist/triggers/wakeTable.d.ts.map +1 -0
- package/dist/triggers/wakeTable.js +135 -0
- package/dist/triggers/wakeTable.js.map +1 -0
- package/dist/write/blockedFold.d.ts +10 -0
- package/dist/write/blockedFold.d.ts.map +1 -0
- package/dist/write/blockedFold.js +31 -0
- package/dist/write/blockedFold.js.map +1 -0
- package/dist/write/blockedSlots.d.ts +39 -0
- package/dist/write/blockedSlots.d.ts.map +1 -0
- package/dist/write/blockedSlots.js +108 -0
- package/dist/write/blockedSlots.js.map +1 -0
- package/dist/write/candidatePick.d.ts +50 -0
- package/dist/write/candidatePick.d.ts.map +1 -0
- package/dist/write/candidatePick.js +116 -0
- package/dist/write/candidatePick.js.map +1 -0
- package/dist/write/collect.d.ts +20 -0
- package/dist/write/collect.d.ts.map +1 -0
- package/dist/write/collect.js +15 -0
- package/dist/write/collect.js.map +1 -0
- package/dist/write/collectBody.d.ts +29 -0
- package/dist/write/collectBody.d.ts.map +1 -0
- package/dist/write/collectBody.js +196 -0
- package/dist/write/collectBody.js.map +1 -0
- package/dist/write/collectFrame.d.ts +17 -0
- package/dist/write/collectFrame.d.ts.map +1 -0
- package/dist/write/collectFrame.js +36 -0
- package/dist/write/collectFrame.js.map +1 -0
- package/dist/write/commands.d.ts +10 -0
- package/dist/write/commands.d.ts.map +1 -0
- package/dist/write/commands.js +20 -0
- package/dist/write/commands.js.map +1 -0
- package/dist/write/declaration.d.ts +9 -0
- package/dist/write/declaration.d.ts.map +1 -0
- package/dist/write/declaration.js +239 -0
- package/dist/write/declaration.js.map +1 -0
- package/dist/write/diffTable.d.ts +26 -0
- package/dist/write/diffTable.d.ts.map +1 -0
- package/dist/write/diffTable.js +77 -0
- package/dist/write/diffTable.js.map +1 -0
- package/dist/write/duplicateNote.d.ts +40 -0
- package/dist/write/duplicateNote.d.ts.map +1 -0
- package/dist/write/duplicateNote.js +96 -0
- package/dist/write/duplicateNote.js.map +1 -0
- package/dist/write/emptyNote.d.ts +15 -0
- package/dist/write/emptyNote.d.ts.map +1 -0
- package/dist/write/emptyNote.js +27 -0
- package/dist/write/emptyNote.js.map +1 -0
- package/dist/write/errorReceipt.d.ts +21 -0
- package/dist/write/errorReceipt.d.ts.map +1 -0
- package/dist/write/errorReceipt.js +37 -0
- package/dist/write/errorReceipt.js.map +1 -0
- package/dist/write/flowSteps.d.ts +25 -0
- package/dist/write/flowSteps.d.ts.map +1 -0
- package/dist/write/flowSteps.js +49 -0
- package/dist/write/flowSteps.js.map +1 -0
- package/dist/write/index.d.ts +18 -0
- package/dist/write/index.d.ts.map +1 -0
- package/dist/write/index.js +13 -0
- package/dist/write/index.js.map +1 -0
- package/dist/write/installmentPreview.d.ts +23 -0
- package/dist/write/installmentPreview.d.ts.map +1 -0
- package/dist/write/installmentPreview.js +144 -0
- package/dist/write/installmentPreview.js.map +1 -0
- package/dist/write/outsideScan.d.ts +34 -0
- package/dist/write/outsideScan.d.ts.map +1 -0
- package/dist/write/outsideScan.js +116 -0
- package/dist/write/outsideScan.js.map +1 -0
- package/dist/write/pageParts.d.ts +69 -0
- package/dist/write/pageParts.d.ts.map +1 -0
- package/dist/write/pageParts.js +80 -0
- package/dist/write/pageParts.js.map +1 -0
- package/dist/write/photoEscape.d.ts +53 -0
- package/dist/write/photoEscape.d.ts.map +1 -0
- package/dist/write/photoEscape.js +139 -0
- package/dist/write/photoEscape.js.map +1 -0
- package/dist/write/prefillNote.d.ts +21 -0
- package/dist/write/prefillNote.d.ts.map +1 -0
- package/dist/write/prefillNote.js +79 -0
- package/dist/write/prefillNote.js.map +1 -0
- package/dist/write/receipt.d.ts +18 -0
- package/dist/write/receipt.d.ts.map +1 -0
- package/dist/write/receipt.js +11 -0
- package/dist/write/receipt.js.map +1 -0
- package/dist/write/receiptBody.d.ts +10 -0
- package/dist/write/receiptBody.d.ts.map +1 -0
- package/dist/write/receiptBody.js +111 -0
- package/dist/write/receiptBody.js.map +1 -0
- package/dist/write/receiptOut.d.ts +14 -0
- package/dist/write/receiptOut.d.ts.map +1 -0
- package/dist/write/receiptOut.js +13 -0
- package/dist/write/receiptOut.js.map +1 -0
- package/dist/write/receiptParts.d.ts +12 -0
- package/dist/write/receiptParts.d.ts.map +1 -0
- package/dist/write/receiptParts.js +38 -0
- package/dist/write/receiptParts.js.map +1 -0
- package/dist/write/recentPicks.d.ts +34 -0
- package/dist/write/recentPicks.d.ts.map +1 -0
- package/dist/write/recentPicks.js +65 -0
- package/dist/write/recentPicks.js.map +1 -0
- package/dist/write/record.d.ts +13 -0
- package/dist/write/record.d.ts.map +1 -0
- package/dist/{policy → write}/record.js +12 -28
- package/dist/write/record.js.map +1 -0
- package/dist/write/recordPicker.d.ts +32 -0
- package/dist/write/recordPicker.d.ts.map +1 -0
- package/dist/write/recordPicker.js +201 -0
- package/dist/write/recordPicker.js.map +1 -0
- package/dist/write/rowEditorTable.d.ts +31 -0
- package/dist/write/rowEditorTable.d.ts.map +1 -0
- package/dist/write/rowEditorTable.js +103 -0
- package/dist/write/rowEditorTable.js.map +1 -0
- package/dist/write/scene-batch.d.ts +3 -0
- package/dist/write/scene-batch.d.ts.map +1 -0
- package/dist/write/scene-batch.js +37 -0
- package/dist/write/scene-batch.js.map +1 -0
- package/dist/write/scene-borrow.d.ts +3 -0
- package/dist/write/scene-borrow.d.ts.map +1 -0
- package/dist/write/scene-borrow.js +166 -0
- package/dist/write/scene-borrow.js.map +1 -0
- package/dist/write/scene-collect.d.ts +3 -0
- package/dist/write/scene-collect.d.ts.map +1 -0
- package/dist/write/scene-collect.js +155 -0
- package/dist/write/scene-collect.js.map +1 -0
- package/dist/write/scene-expense.d.ts +3 -0
- package/dist/write/scene-expense.d.ts.map +1 -0
- package/dist/write/scene-expense.js +50 -0
- package/dist/write/scene-expense.js.map +1 -0
- package/dist/write/scene-income.d.ts +3 -0
- package/dist/write/scene-income.d.ts.map +1 -0
- package/dist/write/scene-income.js +51 -0
- package/dist/write/scene-income.js.map +1 -0
- package/dist/write/scene-installment.d.ts +3 -0
- package/dist/write/scene-installment.d.ts.map +1 -0
- package/dist/write/scene-installment.js +52 -0
- package/dist/write/scene-installment.js.map +1 -0
- package/dist/write/scene-lend.d.ts +3 -0
- package/dist/write/scene-lend.d.ts.map +1 -0
- package/dist/write/scene-lend.js +165 -0
- package/dist/write/scene-lend.js.map +1 -0
- package/dist/write/scene-photo.d.ts +3 -0
- package/dist/write/scene-photo.d.ts.map +1 -0
- package/dist/write/scene-photo.js +108 -0
- package/dist/write/scene-photo.js.map +1 -0
- package/dist/write/scene-plain.d.ts +3 -0
- package/dist/write/scene-plain.d.ts.map +1 -0
- package/dist/write/scene-plain.js +52 -0
- package/dist/write/scene-plain.js.map +1 -0
- package/dist/write/scene-refund.d.ts +3 -0
- package/dist/write/scene-refund.d.ts.map +1 -0
- package/dist/write/scene-refund.js +139 -0
- package/dist/write/scene-refund.js.map +1 -0
- package/dist/write/scene-reimburse-done.d.ts +3 -0
- package/dist/write/scene-reimburse-done.d.ts.map +1 -0
- package/dist/write/scene-reimburse-done.js +151 -0
- package/dist/write/scene-reimburse-done.js.map +1 -0
- package/dist/write/scene-reimburse.d.ts +3 -0
- package/dist/write/scene-reimburse.d.ts.map +1 -0
- package/dist/write/scene-reimburse.js +65 -0
- package/dist/write/scene-reimburse.js.map +1 -0
- package/dist/write/scene-repay.d.ts +3 -0
- package/dist/write/scene-repay.d.ts.map +1 -0
- package/dist/write/scene-repay.js +155 -0
- package/dist/write/scene-repay.js.map +1 -0
- package/dist/write/scene-restore.d.ts +3 -0
- package/dist/write/scene-restore.d.ts.map +1 -0
- package/dist/write/scene-restore.js +59 -0
- package/dist/write/scene-restore.js.map +1 -0
- package/dist/write/scene-undo.d.ts +3 -0
- package/dist/write/scene-undo.d.ts.map +1 -0
- package/dist/write/scene-undo.js +57 -0
- package/dist/write/scene-undo.js.map +1 -0
- package/dist/write/scene-update.d.ts +3 -0
- package/dist/write/scene-update.d.ts.map +1 -0
- package/dist/write/scene-update.js +57 -0
- package/dist/write/scene-update.js.map +1 -0
- package/dist/write/scene.d.ts +86 -0
- package/dist/write/scene.d.ts.map +1 -0
- package/dist/write/scene.js +44 -0
- package/dist/write/scene.js.map +1 -0
- package/dist/write/slots.d.ts +16 -0
- package/dist/write/slots.d.ts.map +1 -0
- package/dist/write/slots.js +73 -0
- package/dist/write/slots.js.map +1 -0
- package/dist/write/sourceNote.d.ts +5 -0
- package/dist/write/sourceNote.d.ts.map +1 -0
- package/dist/write/sourceNote.js +37 -0
- package/dist/write/sourceNote.js.map +1 -0
- package/dist/write/summaryRow.d.ts +44 -0
- package/dist/write/summaryRow.d.ts.map +1 -0
- package/dist/write/summaryRow.js +86 -0
- package/dist/write/summaryRow.js.map +1 -0
- package/dist/write/template-batch.d.ts +37 -0
- package/dist/write/template-batch.d.ts.map +1 -0
- package/dist/write/template-batch.js +212 -0
- package/dist/write/template-batch.js.map +1 -0
- package/dist/write/template-expense.d.ts +90 -0
- package/dist/write/template-expense.d.ts.map +1 -0
- package/dist/write/template-expense.js +214 -0
- package/dist/write/template-expense.js.map +1 -0
- package/dist/write/template-flow.d.ts +130 -0
- package/dist/write/template-flow.d.ts.map +1 -0
- package/dist/write/template-flow.js +225 -0
- package/dist/write/template-flow.js.map +1 -0
- package/dist/write/template-installment.d.ts +69 -0
- package/dist/write/template-installment.d.ts.map +1 -0
- package/dist/write/template-installment.js +240 -0
- package/dist/write/template-installment.js.map +1 -0
- package/dist/write/template-update.d.ts +83 -0
- package/dist/write/template-update.d.ts.map +1 -0
- package/dist/write/template-update.js +263 -0
- package/dist/write/template-update.js.map +1 -0
- package/dist/write/typeBadge.d.ts +28 -0
- package/dist/write/typeBadge.d.ts.map +1 -0
- package/dist/write/typeBadge.js +76 -0
- package/dist/write/typeBadge.js.map +1 -0
- package/dist/write/userWording.d.ts +32 -0
- package/dist/write/userWording.d.ts.map +1 -0
- package/dist/write/userWording.js +121 -0
- package/dist/write/userWording.js.map +1 -0
- package/dist/write/write.d.ts +9 -0
- package/dist/write/write.d.ts.map +1 -0
- package/dist/write/write.js +186 -0
- package/dist/write/write.js.map +1 -0
- package/dist/write/writeWire.d.ts +16 -0
- package/dist/write/writeWire.d.ts.map +1 -0
- package/dist/write/writeWire.js +109 -0
- package/dist/write/writeWire.js.map +1 -0
- package/package.json +11 -5
- package/dist/policy/accounts.d.ts +0 -13
- package/dist/policy/accounts.d.ts.map +0 -1
- package/dist/policy/accounts.js +0 -31
- package/dist/policy/accounts.js.map +0 -1
- package/dist/policy/analysis.d.ts.map +0 -1
- package/dist/policy/analysis.js.map +0 -1
- package/dist/policy/category.d.ts.map +0 -1
- package/dist/policy/category.js.map +0 -1
- package/dist/policy/goals.d.ts +0 -15
- package/dist/policy/goals.d.ts.map +0 -1
- package/dist/policy/goals.js +0 -33
- package/dist/policy/goals.js.map +0 -1
- package/dist/policy/index.d.ts +0 -13
- package/dist/policy/index.d.ts.map +0 -1
- package/dist/policy/index.js +0 -7
- package/dist/policy/index.js.map +0 -1
- package/dist/policy/record.d.ts +0 -15
- package/dist/policy/record.d.ts.map +0 -1
- package/dist/policy/record.js.map +0 -1
- package/dist/policy/wakewords.d.ts +0 -14
- package/dist/policy/wakewords.d.ts.map +0 -1
- package/dist/policy/wakewords.js +0 -121
- package/dist/policy/wakewords.js.map +0 -1
- package/dist/render/views.d.ts +0 -86
- package/dist/render/views.d.ts.map +0 -1
- package/dist/render/views.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** 一个区块的导航面:锚点 id 与它在页内导航里的条目文本(两字段必须同给)。 */
|
|
2
|
+
export interface PageBlockNav {
|
|
3
|
+
readonly anchor: string;
|
|
4
|
+
readonly navText: string;
|
|
5
|
+
}
|
|
6
|
+
/** 一个页内区块:**已渲染好的** HTML(受信:全部来自公共层区块件)+ 可选导航面 + 可选段标题。 */
|
|
7
|
+
export interface PageBlock {
|
|
8
|
+
readonly html: string;
|
|
9
|
+
/** 给了即包 `<section id>` 并进页内导航;不给=原样透传、不进导航。 */
|
|
10
|
+
readonly nav?: PageBlockNav;
|
|
11
|
+
/** 可见段标题(不给=只出锚点、不出标题)。 */
|
|
12
|
+
readonly heading?: string;
|
|
13
|
+
}
|
|
14
|
+
/** 一个**带导航面**的区块,一行写完一块:`navBlock(html, 'sec-kpi', '读数')`。
|
|
15
|
+
* 与 `{ html, nav: { anchor, navText } }` 是同一件事的两种写法——写入域五张模板每张要拼五六块
|
|
16
|
+
* (块清单一行一块最读得清);查询域两张页的块各带着段标题,仍写对象字面量。 */
|
|
17
|
+
export declare function navBlock(html: string, anchor: string, navText: string): PageBlock;
|
|
18
|
+
/** 逐块拼正文:`<section>` 包装 + 段标题。块序由调用方给的那份清单**唯一定义**。 */
|
|
19
|
+
export declare function pageBody(blocks: readonly PageBlock[]): string;
|
|
20
|
+
/** 页内导航:条目**从同一份块清单派生**(有导航面的才进)。
|
|
21
|
+
* 一块都没有 → 公共层返回空串(「没内容不留空块」),本件不自己造第二套判据。 */
|
|
22
|
+
export declare function pageNav(blocks: readonly PageBlock[]): string;
|
|
23
|
+
//# sourceMappingURL=pageSections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageSections.d.ts","sourceRoot":"","sources":["../../src/shared/pageSections.ts"],"names":[],"mappings":"AA4BA,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AASD;;4CAE4C;AAC5C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAEjF;AAED,uDAAuD;AACvD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAE7D;AAED;8CAC8C;AAC9C,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAI5D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** 页面区块锚点与页内导航(共用位):**区块锚点包装** + **从同一份块清单派生的页内导航**。
|
|
2
|
+
*
|
|
3
|
+
* 谁在用(两个域、七个调用点,指名):
|
|
4
|
+
* ① `src/query/`——列表页(`./list.ts` 的 `queryListDoc`)与详情页(`./detail.ts` 的 `queryDetailDoc`);
|
|
5
|
+
* ② `src/write/`——五张模板(`./template-{expense,flow,batch,installment,update}.ts`)的结果型回执页那一支。
|
|
6
|
+
* 两域的块清单都**既拼正文也派生导航**,锚点与条目只在本件写一份(裁定 7「一个形状只许一处定义」)。
|
|
7
|
+
*
|
|
8
|
+
* 出处:`docs/skills/skill-bill/688-融合基准.md` §四 裁定 2(结果型页恒出页内导航)+ §五 5.2 第 4 行
|
|
9
|
+
* (`●` 结果型 ④⑤⑥⑦、`—` 过程型 ①②③)。可判形式(同条):每张产物各含**一个**页内导航块(`ilife-block-toc`)。
|
|
10
|
+
*
|
|
11
|
+
* **本件是「共用位从第二个用法里长出来」的那一件**:原住 `src/query/pageParts.ts`(查询域先跑通),
|
|
12
|
+
* 写入域五张回执页要用第二遍,故原样搬到 `src/shared/`;两个类型改名中性(`QueryBlockNav`→`PageBlockNav`、
|
|
13
|
+
* `QueryPageBlock`→`PageBlock`),**行为一字不改**——含下面 `sectionOf` 里那枚段标题类名
|
|
14
|
+
* `ilife-query-sec-title`:它是搬迁前那一枚字面,改名会动查询域当刻产物,属另一件事。
|
|
15
|
+
*
|
|
16
|
+
* **不是新形状**:区块本体全走公共层(`renderTocBlock`,`blocks.ts:254`);本件只补公共层没有的两件事——
|
|
17
|
+
* ① 给区块一个稳定的 `id`(`renderTocBlock` 的锚点由调用方给,它不猜);② 导航条目**从同一份块清单派生**
|
|
18
|
+
* (块序与锚点各写一份就会走散,故不许两处各写)。形状照卡路里同族的 `pageSection`
|
|
19
|
+
* (`packages/skill-calorie/src/render/trendPredictDocs.ts:59`)。
|
|
20
|
+
*
|
|
21
|
+
* **锚点与条目是同一件事的两面**:它们合成一个必填两字段的 `nav` 对象,故「给了锚点忘了条目」
|
|
22
|
+
* 这种半截状态在类型上就写不出来(不靠运行期断言)。
|
|
23
|
+
*
|
|
24
|
+
* 段标题:`heading` 给了才出 `<h2>`。**不出无意义的标题**——读数区与复制区各自已经有形状承担身份
|
|
25
|
+
* (复制区更不许出与按钮同名的标题,裁定 5)。锚点不要求有可见标题,故 `heading` 可缺。
|
|
26
|
+
*/
|
|
27
|
+
import { renderTocBlock } from 'base-paint/blocks';
|
|
28
|
+
/** 一个区块:有导航面即包 `<section id>`(导航条目指得到),否则原样透传。 */
|
|
29
|
+
function sectionOf(block) {
|
|
30
|
+
if (block.nav === undefined)
|
|
31
|
+
return block.html;
|
|
32
|
+
const heading = block.heading === undefined ? '' : '<h2 class="ilife-query-sec-title">' + block.heading + '</h2>';
|
|
33
|
+
return '<section id="' + block.nav.anchor + '">' + heading + block.html + '</section>';
|
|
34
|
+
}
|
|
35
|
+
/** 一个**带导航面**的区块,一行写完一块:`navBlock(html, 'sec-kpi', '读数')`。
|
|
36
|
+
* 与 `{ html, nav: { anchor, navText } }` 是同一件事的两种写法——写入域五张模板每张要拼五六块
|
|
37
|
+
* (块清单一行一块最读得清);查询域两张页的块各带着段标题,仍写对象字面量。 */
|
|
38
|
+
export function navBlock(html, anchor, navText) {
|
|
39
|
+
return { html, nav: { anchor, navText } };
|
|
40
|
+
}
|
|
41
|
+
/** 逐块拼正文:`<section>` 包装 + 段标题。块序由调用方给的那份清单**唯一定义**。 */
|
|
42
|
+
export function pageBody(blocks) {
|
|
43
|
+
return blocks.map(sectionOf).join('');
|
|
44
|
+
}
|
|
45
|
+
/** 页内导航:条目**从同一份块清单派生**(有导航面的才进)。
|
|
46
|
+
* 一块都没有 → 公共层返回空串(「没内容不留空块」),本件不自己造第二套判据。 */
|
|
47
|
+
export function pageNav(blocks) {
|
|
48
|
+
return renderTocBlock({
|
|
49
|
+
items: blocks.filter((b) => b.nav !== undefined).map((b) => ({ id: b.nav.anchor, text: b.nav.navText })),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=pageSections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageSections.js","sourceRoot":"","sources":["../../src/shared/pageSections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAiBnD,kDAAkD;AAClD,SAAS,SAAS,CAAC,KAAgB;IACjC,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oCAAoC,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAClH,OAAO,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;AACzF,CAAC;AAED;;4CAE4C;AAC5C,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAc,EAAE,OAAe;IACpE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;AAC5C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CAAC,MAA4B;IACnD,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;8CAC8C;AAC9C,MAAM,UAAU,OAAO,CAAC,MAA4B;IAClD,OAAO,cAAc,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAG,CAAC,CAAC,GAAoB,CAAC,MAAM,EAAE,IAAI,EAAG,CAAC,CAAC,GAAoB,CAAC,OAAO,EAAE,CAAC,CAAC;KAC7I,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** 页面模板与页头的入参:标题三件套 + 已组合好的正文 + 页面标记五件。 */
|
|
2
|
+
export interface PageShellInput {
|
|
3
|
+
/** head 的 `<title>` 文本。 */
|
|
4
|
+
readonly docTitle: string;
|
|
5
|
+
/** 正文 H1。 */
|
|
6
|
+
readonly title: string;
|
|
7
|
+
/** 正文副标题(空串=不写这一行)。 */
|
|
8
|
+
readonly subtitle: string;
|
|
9
|
+
/** `<section>` 上的槽位:`collect`=过程型采集页、`receipt`=结果型回执整页、`list`=查询域列表页。 */
|
|
10
|
+
readonly slot: 'collect' | 'receipt' | 'list';
|
|
11
|
+
/** `<section>` 上**选页用的那一枚**:`collect`/`receipt`/`list`;与 `slot` 同值,下游选页读它。 */
|
|
12
|
+
readonly page: 'collect' | 'receipt' | 'list';
|
|
13
|
+
/** `<section>` 上的形状(=本次 envelope 的形状,与老回执页同一枚;契约,不随页型改)。 */
|
|
14
|
+
readonly shape: string;
|
|
15
|
+
/** `<section>` 上的命令名(对外全名)。 */
|
|
16
|
+
readonly key: string;
|
|
17
|
+
/** 已组合好的页内块序列。 */
|
|
18
|
+
readonly content: string;
|
|
19
|
+
/** 这一页的眉标(正文标题上方那一行):**由调用方自己的域报**——共用位不持「域名→取值」表。 */
|
|
20
|
+
readonly eyebrow: string;
|
|
21
|
+
}
|
|
22
|
+
/** 页面模板与页头:`<section>` 段 + 标题三件套 + 整页装配。一页只调一次。 */
|
|
23
|
+
export declare function pageShell(input: PageShellInput): string;
|
|
24
|
+
//# sourceMappingURL=pageShell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageShell.d.ts","sourceRoot":"","sources":["../../src/shared/pageShell.ts"],"names":[],"mappings":"AAoBA,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9C,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,mDAAmD;AACnD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAevD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** 页面模板与页头(每张页都有的第一件,**唯一定义地**):`<section>` 段 + 标题三件套 + 整页装配。
|
|
2
|
+
*
|
|
3
|
+
* 谁在用(两个能力,指名):
|
|
4
|
+
* ① `src/write/`——写入域:过程型采集页(页头 + 九块正文)与结果型回执整页(页头 + 回执块序列);
|
|
5
|
+
* ② `src/query/`——查询域:通用查询列表页(页头 + KPI 行 + 数据表 + 复制区)同走本件,
|
|
6
|
+
* 眉标由该域自报(`src/query/pageParts.ts` 的 `QUERY_EYEBROW`)。
|
|
7
|
+
* 本票实测:本包 `src/` 下真引用本件的就是上面两个域,再无第三处。
|
|
8
|
+
*
|
|
9
|
+
* 分工(三件不要混):
|
|
10
|
+
* - `./docPage.ts`=文档装配那一层(`fillTemplate` 包裹、样式资产注入),本件往下调它,不重写;
|
|
11
|
+
* - 本件=页面模板与页头的取值口径(**眉标由调用方的域自报**、标题三件套只出一处;`data-page` 是选页那一枚标记);
|
|
12
|
+
* - 页内块序列(表单/摘要行/复制区…)归各域自己,本件不管;类型徽章另立 `../write/typeBadge.ts`。
|
|
13
|
+
*
|
|
14
|
+
* 口径出处:`docs/skills/skill-bill/t407-页面块清单-16词.md` 第一节第 1 行。
|
|
15
|
+
* 1.1 节硬口径照旧:`blocksCss()` 拼进 `TemplateAssets.sharedCssText` 再交 `fillTemplate`(住 `./docPage.ts`),
|
|
16
|
+
* 不得走 `StyleSheetInput.extraCss`。
|
|
17
|
+
*/
|
|
18
|
+
import { assembleDocPage } from './docPage.js';
|
|
19
|
+
import { writeSection } from './writeParts.js';
|
|
20
|
+
/** 页面模板与页头:`<section>` 段 + 标题三件套 + 整页装配。一页只调一次。 */
|
|
21
|
+
export function pageShell(input) {
|
|
22
|
+
const body = writeSection({
|
|
23
|
+
slot: input.slot,
|
|
24
|
+
page: input.page,
|
|
25
|
+
shape: input.shape,
|
|
26
|
+
key: input.key,
|
|
27
|
+
content: input.content,
|
|
28
|
+
});
|
|
29
|
+
return assembleDocPage({
|
|
30
|
+
docTitle: input.docTitle,
|
|
31
|
+
title: input.title,
|
|
32
|
+
eyebrow: input.eyebrow,
|
|
33
|
+
subtitle: input.subtitle,
|
|
34
|
+
content: body,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=pageShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageShell.js","sourceRoot":"","sources":["../../src/shared/pageShell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAwB/C,mDAAmD;AACnD,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,IAAI,GAAG,YAAY,CAAC;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;QACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** 写命令的操作名(`bill.record.add` 的 add/`bill.record.update` 的三支)。 */
|
|
2
|
+
export type RecordOp = 'add' | 'update' | 'undo' | 'restore';
|
|
3
|
+
/** `id` 槽位守卫:须给正整数(改记录/撤销/恢复/查详情同一句口径,别处不再写第二份)。 */
|
|
4
|
+
export declare function needId(params: Record<string, unknown>): number;
|
|
5
|
+
/** 一个值算不算「给了」:`undefined`/`null`/`false`/空白串都不算。 */
|
|
6
|
+
export declare function isGiven(v: unknown): boolean;
|
|
7
|
+
/** 一个值写成文本(认字符串与有限数;其余形态一律当没给——不猜)。 */
|
|
8
|
+
export declare function textOf(v: unknown): string;
|
|
9
|
+
/** 数字解析:认数字与非空数字串;解析不了给 `null`(不在这里报错,报错归各域的校验处)。 */
|
|
10
|
+
export declare function numberOf(v: unknown): number | null;
|
|
11
|
+
//# sourceMappingURL=params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/shared/params.ts"],"names":[],"mappings":"AAoBA,iEAAiE;AACjE,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAM9D;AAaD,oDAAoD;AACpD,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAG3C;AAED,uCAAuC;AACvC,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAGzC;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMlD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** 共用位·跨域参数槽位口径(#689 结构搬迁第三批新建):从 `src/policy/record.ts` 里被**两个域**同时取用的那两件来——
|
|
2
|
+
* ① `RecordOp`——写命令 `op` 的取值集(`parseRecordOp` 认的就是它);形状事实的取值面同时被
|
|
3
|
+
* `src/shared/writeParts.ts` 的 `BillReceipt.op` 与 `src/shared/commandSpec.ts` 的写出口取;
|
|
4
|
+
* ② `needId`——`id` 槽位的正整数守卫(改记录/撤销/恢复与查账单详情四处同一句校验)。
|
|
5
|
+
*
|
|
6
|
+
* 为什么新建这一件、而不是留在某一域里(#689 按「谁在用」判,逐条记在这里):
|
|
7
|
+
* · `needId` 的消费者是**两个域**——写域 `src/write/record.ts`(`validateUpdateInput`)与
|
|
8
|
+
* 查询域 `src/query/read.ts`(查账单详情)⇒ 归属律 2「说得出两个域在用 ⇒ 共用位」。
|
|
9
|
+
* 塞进任一域都会让另一个域伸手进对方内部件(或经对方门反向依赖),故上浮共用位。
|
|
10
|
+
* · `RecordOp` 的消费者是写域 + **两个共用件**(`writeParts.ts`/`commandSpec.ts`)。
|
|
11
|
+
* 它若留在 `src/write/record.ts`,共用件就得 import 域目录 —— 撞守卫③a
|
|
12
|
+
* (共用位不 import 任何域目录)。故与 `needId` 同住本件;`src/write/record.ts` 转出它,
|
|
13
|
+
* 写域内部的消费方(`write.ts`)照旧只认自己域那一件。
|
|
14
|
+
*
|
|
15
|
+
* 谁在用(指名):`src/write/record.ts`(两件都取,并转出 `RecordOp`)·
|
|
16
|
+
* `src/write/write.ts`(经 `./record.js` 取 `RecordOp`)· `src/query/read.ts`(`needId`)·
|
|
17
|
+
* `src/shared/writeParts.ts` 与 `src/shared/commandSpec.ts`(`RecordOp` 作字段类型)。
|
|
18
|
+
* 形状照兄弟件 `packages/skill-calorie/src/shared/params.ts`:跨域参数口径住共用位,域内不各写一份。 */
|
|
19
|
+
import { BillPolicyError } from '../fetch/errors.js';
|
|
20
|
+
/** `id` 槽位守卫:须给正整数(改记录/撤销/恢复/查详情同一句口径,别处不再写第二份)。 */
|
|
21
|
+
export function needId(params) {
|
|
22
|
+
const id = params.id;
|
|
23
|
+
if (!Number.isInteger(id) || id <= 0) {
|
|
24
|
+
throw new BillPolicyError('POLICY_BAD_INPUT', '须给正整数 id');
|
|
25
|
+
}
|
|
26
|
+
return id;
|
|
27
|
+
}
|
|
28
|
+
/* ── 值的三种读法(#731 上浮共用位)────────────────────────────────────────────────────────
|
|
29
|
+
*
|
|
30
|
+
* 三件从 `src/account/params.ts` **原样上移**(行为一字不改):账户域第一处写、开始使用域(#731)
|
|
31
|
+
* 第二处要用,按「共用件是从第二个用法里长出来的」上浮;`src/account/params.ts` 改为转出这三件,
|
|
32
|
+
* 域内调用点写法不变。
|
|
33
|
+
*
|
|
34
|
+
* **本件不是「全仓唯一一份值读法」**:写入域若干件各有一份**私有**同名函数(`collect.ts`/`diffTable.ts`/
|
|
35
|
+
* `template-*.ts`/`recentPicks.ts`,其中 `recentPicks.ts` 那份的 `NaN` 归「`NaN` 字面」、
|
|
36
|
+
* 与下面这份「`NaN` 归空」不同义)——那是搬迁前的既有债务,不属本票写集,就地摆正留给写入域自己的票。
|
|
37
|
+
*/
|
|
38
|
+
/** 一个值算不算「给了」:`undefined`/`null`/`false`/空白串都不算。 */
|
|
39
|
+
export function isGiven(v) {
|
|
40
|
+
if (v === undefined || v === null || v === false)
|
|
41
|
+
return false;
|
|
42
|
+
return !(typeof v === 'string' && v.trim() === '');
|
|
43
|
+
}
|
|
44
|
+
/** 一个值写成文本(认字符串与有限数;其余形态一律当没给——不猜)。 */
|
|
45
|
+
export function textOf(v) {
|
|
46
|
+
if (typeof v === 'string')
|
|
47
|
+
return v.trim();
|
|
48
|
+
return typeof v === 'number' && Number.isFinite(v) ? String(v) : '';
|
|
49
|
+
}
|
|
50
|
+
/** 数字解析:认数字与非空数字串;解析不了给 `null`(不在这里报错,报错归各域的校验处)。 */
|
|
51
|
+
export function numberOf(v) {
|
|
52
|
+
if (v === undefined || v === null || typeof v === 'boolean')
|
|
53
|
+
return null;
|
|
54
|
+
const raw = typeof v === 'string' ? v.trim() : v;
|
|
55
|
+
if (raw === '')
|
|
56
|
+
return null;
|
|
57
|
+
const n = typeof raw === 'number' ? raw : Number(raw);
|
|
58
|
+
return Number.isFinite(n) ? n : null;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/shared/params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;+EAiB+E;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD,oDAAoD;AACpD,MAAM,UAAU,MAAM,CAAC,MAA+B;IACpD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAK,EAAa,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,EAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;GASG;AAEH,oDAAoD;AACpD,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,MAAM,CAAC,CAAU;IAC/B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** 来源脚注的三个事实(全部由调用方算好;空串来源=不写来源那一段)。 */
|
|
2
|
+
export interface SourceLineFacts {
|
|
3
|
+
/** 人话来源(如「记账库(只读)」);空串=这一页不报来源,只印窗口与条数。 */
|
|
4
|
+
readonly source: string;
|
|
5
|
+
/** 窗口起点(日期或「不限」)。 */
|
|
6
|
+
readonly start: string;
|
|
7
|
+
/** 窗口终点(日期或「不限」)。 */
|
|
8
|
+
readonly end: string;
|
|
9
|
+
/** 本窗条数(非负整数)。 */
|
|
10
|
+
readonly count: number;
|
|
11
|
+
}
|
|
12
|
+
/** 来源脚注:`数据来源 <来源> | <窗口> | 共 N 条`(分隔由版式出,字符不进可见文本)。
|
|
13
|
+
*
|
|
14
|
+
* t728 改法:改前是先 `join(' · ')` 拼成一整串再交给口径行,于是公共层的拆段器认不出它
|
|
15
|
+
* (它只认并列分隔符)⇒ 那 32 行 `·` 串原样上屏,正是用户点名的那类「用符号简化 UI」。
|
|
16
|
+
* 现在改成:本件只说「这是三段并列」,`|` 交给 `renderCaliberLine` 拆成逐段 `<span>`,
|
|
17
|
+
* 段间那条细竖线由公共层 CSS 出(与全仓口径行同一条机制、同一处定义)。 */
|
|
18
|
+
export declare function sourceLine(facts: SourceLineFacts): string;
|
|
19
|
+
//# sourceMappingURL=sourceLine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceLine.d.ts","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAoBA,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAkBD;;;;;4CAK4C;AAC5C,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAOzD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** 来源脚注(技能层共用件):结果型每张页**恒出**的一句
|
|
2
|
+
* 「数据来源 · <来源> · 起 → 止 · 共 N 条」。
|
|
3
|
+
*
|
|
4
|
+
* 出处:`docs/skills/skill-bill/688-融合基准.md` §四 裁定 2(结果型页恒出三条之一:
|
|
5
|
+
* 页内导航 + 口径说明行 + 来源脚注)与 §八 A5(**新建共用位件**,落第一张用它的页面票;
|
|
6
|
+
* 形状照卡路里 `packages/skill-calorie/src/shared/sourceLine.ts:24`)。本件即 §八 A5 那一行。
|
|
7
|
+
*
|
|
8
|
+
* 老侧反面**不照抄**(裁定 1):老页脚把源脚本路径印成字面(`query_view.html:217` 恒印
|
|
9
|
+
* `scripts/record_bill.py {type} --json`,`分析/analysis_view.html:254` 恒印 `scripts/analysis/cli.py`),
|
|
10
|
+
* 既与实际分域路由对不上(缺陷 D6/D16),对用户也无意义——所以来源那一段写**人话**,
|
|
11
|
+
* 由调用方给(本件不认库名、不认命令名,不把内部标识符带上屏)。
|
|
12
|
+
*
|
|
13
|
+
* 版面:走公共层 #420 的口径说明行 `renderCaliberLine`(`ilife-block-caliber`,12px `--fg2`);
|
|
14
|
+
* 本件不写色、不写字号、不写断点——版面单源住 `packages/base-render/`(裁定 7)。
|
|
15
|
+
*
|
|
16
|
+
* 分工:本件是**纯排版**,不做校验、不查库、不算窗口。三分不符即算不清:条数由取数处给、
|
|
17
|
+
* 窗口由参数解析处给、来源那句话由调用方按域给(照本包 `shared/` 既有件的分工:装配件不校验)。
|
|
18
|
+
*/
|
|
19
|
+
import { renderCaliberLine } from 'base-paint/blocks';
|
|
20
|
+
/** 并列段之间那条分隔:**公共层的并列分隔符**(`base-paint` 的 `renderCaliberLine` 认的就是它)。
|
|
21
|
+
* 本件给的是「这句脚注有几段并列」,怎么把并列画出来由公共层定——页侧一个分隔符字符都不写。 */
|
|
22
|
+
const SEG = '|';
|
|
23
|
+
/** 窗口那一格:起止同值时只说一次(本域回执记的是**一笔**,不是一段)。
|
|
24
|
+
* 「不限」那两端(没给窗口)改说人话,不再印 `— → —`(改前空窗口页逐页印这串)。 */
|
|
25
|
+
function windowText(start, end) {
|
|
26
|
+
const s = start.trim();
|
|
27
|
+
const e = end.trim();
|
|
28
|
+
const blank = (v) => v === '' || v === '—' || v === '-';
|
|
29
|
+
if (blank(s) && blank(e))
|
|
30
|
+
return '时间不限';
|
|
31
|
+
if (blank(e))
|
|
32
|
+
return '从 ' + s + ' 起';
|
|
33
|
+
if (blank(s))
|
|
34
|
+
return '到 ' + e + ' 止';
|
|
35
|
+
return s === e ? '时间 ' + s : '时间 ' + s + ' 到 ' + e;
|
|
36
|
+
}
|
|
37
|
+
/** 来源脚注:`数据来源 <来源> | <窗口> | 共 N 条`(分隔由版式出,字符不进可见文本)。
|
|
38
|
+
*
|
|
39
|
+
* t728 改法:改前是先 `join(' · ')` 拼成一整串再交给口径行,于是公共层的拆段器认不出它
|
|
40
|
+
* (它只认并列分隔符)⇒ 那 32 行 `·` 串原样上屏,正是用户点名的那类「用符号简化 UI」。
|
|
41
|
+
* 现在改成:本件只说「这是三段并列」,`|` 交给 `renderCaliberLine` 拆成逐段 `<span>`,
|
|
42
|
+
* 段间那条细竖线由公共层 CSS 出(与全仓口径行同一条机制、同一处定义)。 */
|
|
43
|
+
export function sourceLine(facts) {
|
|
44
|
+
const parts = [];
|
|
45
|
+
const source = facts.source.trim();
|
|
46
|
+
if (source !== '')
|
|
47
|
+
parts.push('数据来源 ' + source);
|
|
48
|
+
parts.push(windowText(facts.start, facts.end));
|
|
49
|
+
parts.push('共 ' + String(facts.count) + ' 条');
|
|
50
|
+
return renderCaliberLine(parts.join(SEG));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=sourceLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceLine.js","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AActD;oDACoD;AACpD,MAAM,GAAG,GAAG,GAAG,CAAC;AAEhB;kDACkD;AAClD,SAAS,UAAU,CAAC,KAAa,EAAE,GAAW;IAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;IACzE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;;;;4CAK4C;AAC5C,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,MAAM,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** 写命令回执的共用件(**唯一定义地**):回执事实的形状(`BillReceipt`)+ 影响行数口径(`totalChanges`)
|
|
2
|
+
* + 页面的 `<section>` 段(`writeSection`)+ 命令原文(`commandLine`)。**对外五件**;三字符转义(`esc`)只在本件内部
|
|
3
|
+
* 给 `writeSection` 用,不转出去(铁律五:接口小、里面厚)。
|
|
4
|
+
* 回执事实里 `op` 的取值集 `RecordOp` 住共用位 `./params.js`(#689 起:它与 `id` 槽位守卫同住一件,
|
|
5
|
+
* 两边都是跨域参数口径)——本件只把它取来当 `BillReceipt.op` 的类型,不另立一份取值面。
|
|
6
|
+
*
|
|
7
|
+
* 谁在用(两个能力,指名):
|
|
8
|
+
* ① `src/write/`——写入域:两条写命令的处理体(影响行数取前后差、回执事实在这里装配、命令原文在这里拼),
|
|
9
|
+
* 过程型采集页与结果型回执整页的 `<section>` 段;
|
|
10
|
+
* ② `src/query/`——查询域:四条读命令的处理体用 `commandLine` 拼复制载荷与日志的命令原文,
|
|
11
|
+
* 通用查询列表页的 `<section>` 段同走 `writeSection`(槽位 `list`)。
|
|
12
|
+
* (页面三个公共标识另立 `./pageIdentity.ts`:那是另一件活——标识取值,不是回执与 `<section>` 段。)
|
|
13
|
+
* (页面三个公共标识另立 `./pageIdentity.ts`:那是另一件活——标识取值,不是回执与 `<section>` 段。)
|
|
14
|
+
*
|
|
15
|
+
* 口径出处:
|
|
16
|
+
* - 影响行数=SQLite `total_changes()` 在本次写库前后的增量(`INSERT`/`UPDATE`/软删标记一律计),
|
|
17
|
+
* 与 `packages/skill-calorie/src/shared/writeParts.ts:38` 同一口径,**非自报**;
|
|
18
|
+
* - 回执 `<section>` 的槽位取值照卡路里同件的 `ilife:<技能>:<槽位>` 形状。
|
|
19
|
+
*
|
|
20
|
+
* 转义口径(**不得与公共层 `escapeHtml` 互换**):本件 `esc` 只转 `&`/`<`/`>` 三字符;
|
|
21
|
+
* 公共层那一份(`base-paint` 的 `escapeHtml`,`src/render/html.ts` 也改引它)转五字符(多 `"`/`'`)。
|
|
22
|
+
* 两者混用会静默改产物(`docs/skills/skill-bill/t406-共用件依赖与提升改造清单.md` 第二节 `esc` 行)。
|
|
23
|
+
*/
|
|
24
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
25
|
+
import type { RecordOp } from './params.js';
|
|
26
|
+
/** 一次写库的事实(回执页与复制日志都读它)。
|
|
27
|
+
* 形状照卡路里同件的收据对象,只留饼干用得上的:操作/记录号/摘要/影响行数/写入字段/有无改动/来源/时刻。
|
|
28
|
+
* `noChange` 承接「值与改前一致」那一格,一页只出现这一处。 */
|
|
29
|
+
export interface BillReceipt {
|
|
30
|
+
readonly op: RecordOp;
|
|
31
|
+
readonly recordId: number | null;
|
|
32
|
+
readonly summary: string;
|
|
33
|
+
readonly affectedRows: number;
|
|
34
|
+
readonly writtenFields: readonly string[];
|
|
35
|
+
readonly noChange: boolean;
|
|
36
|
+
/** 本次数据从哪里来(复制日志第 3 段;库文件名逐字由调用方给,共用件不取本包文件名)。 */
|
|
37
|
+
readonly source: string;
|
|
38
|
+
/** 写入时刻(本地时钟,`YYYY-MM-DD HH:MM:SS`)。 */
|
|
39
|
+
readonly actionAt: string;
|
|
40
|
+
}
|
|
41
|
+
/** 回执格式串(页尾对账折叠区那一行);本票口径 `v1`。 */
|
|
42
|
+
export declare const RECEIPT_FORMAT = "v1\uFF08\u5199\u5E93\u56DE\u6267\uFF09";
|
|
43
|
+
/** 影响行数口径:SQLite `total_changes()` 的当前值;调用方取「写库前」与「写库后」两次之差。 */
|
|
44
|
+
export declare function totalChanges(db: DatabaseSync): number;
|
|
45
|
+
/** 本次执行的命令原文(复制 prompt 区与复制日志第 4 段共用):与助手实跑那条同形,含本次 `--params`,可照抄重跑。
|
|
46
|
+
* 参数值里若出现半角单引号,原文会在此处被截断——真要照抄重跑请自行转义(本仓命令原文一贯用单引号包 JSON)。 */
|
|
47
|
+
export declare function commandLine(key: string, params: Record<string, unknown>): string;
|
|
48
|
+
/** 页面域内的 `<section>` 段:`data-slot`(`receipt`=结果型回执整页、`collect`=过程型采集页、
|
|
49
|
+
* `list`=查询域列表页)+ 四个机器标记 + 正文。
|
|
50
|
+
* 标记:`data-skill`(技能名,取值同页标识)/`data-slot`(页型槽位,取值见上)
|
|
51
|
+
* /`data-shape`(=本次 envelope 的形状,与老回执页同一枚,**是契约、不随页型改**)
|
|
52
|
+
* /`data-page`(**选页用这一枚**:`collect`/`receipt`/`list`;回执页与采集页共用 `shape=receipt`,靠 shape 选页会选错)
|
|
53
|
+
* /`data-key`(**场景名**,过 `sceneKeyOf`:`bill.record.add` → `record.add`)。
|
|
54
|
+
* R4 收口(写域):`bill.` 只许出现在复制载荷区(`pre`/复制块/`data-t`),页面标记一律写场景名;
|
|
55
|
+
* 要整名时 `data-skill` + `.` + `data-key` 仍拼得回来。
|
|
56
|
+
* H1 与副标题**不在这里**:那是页面模板(`base-paint/blocks` 的 `renderPageShell`)的活,一处只出一次。 */
|
|
57
|
+
export declare function writeSection(input: {
|
|
58
|
+
readonly slot: 'receipt' | 'collect' | 'list';
|
|
59
|
+
readonly page: 'receipt' | 'collect' | 'list';
|
|
60
|
+
readonly shape: string;
|
|
61
|
+
readonly key: string;
|
|
62
|
+
readonly content: string;
|
|
63
|
+
}): string;
|
|
64
|
+
//# sourceMappingURL=writeParts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeParts.d.ts","sourceRoot":"","sources":["../../src/shared/writeParts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C;;yCAEyC;AACzC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,mCAAmC;AACnC,eAAO,MAAM,cAAc,2CAAa,CAAC;AAOzC,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAGrD;AAED;+DAC+D;AAC/D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEhF;AAUD;;;;;;;;gFAQgF;AAChF,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAIT"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DOC_SKILL, sceneKeyOf } from './pageIdentity.js';
|
|
2
|
+
/** 回执格式串(页尾对账折叠区那一行);本票口径 `v1`。 */
|
|
3
|
+
export const RECEIPT_FORMAT = 'v1(写库回执)';
|
|
4
|
+
/** 三字符转义:只转 `&`/`<`/`>`。**不得与五字符的 `escapeHtml` 互换**(见文件头);只给本件的 `<section>` 段用。 */
|
|
5
|
+
function esc(s) {
|
|
6
|
+
return String(s ?? '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
7
|
+
}
|
|
8
|
+
/** 影响行数口径:SQLite `total_changes()` 的当前值;调用方取「写库前」与「写库后」两次之差。 */
|
|
9
|
+
export function totalChanges(db) {
|
|
10
|
+
const row = db.prepare('SELECT total_changes() AS n').get();
|
|
11
|
+
return row && typeof row.n === 'number' ? Number(row.n) : 0;
|
|
12
|
+
}
|
|
13
|
+
/** 本次执行的命令原文(复制 prompt 区与复制日志第 4 段共用):与助手实跑那条同形,含本次 `--params`,可照抄重跑。
|
|
14
|
+
* 参数值里若出现半角单引号,原文会在此处被截断——真要照抄重跑请自行转义(本仓命令原文一贯用单引号包 JSON)。 */
|
|
15
|
+
export function commandLine(key, params) {
|
|
16
|
+
return 'bill-cmd-read ' + key + " --params '" + JSON.stringify(params) + "'";
|
|
17
|
+
}
|
|
18
|
+
/** `<section>` 上的类名(按槽位取值)。写域两页沿用已交付产物上的 `ilife-write`(32 份产物与验收墙按它,
|
|
19
|
+
* 本票一字不动);查询域列表页用自己那一枚 `ilife-list`——同一份整页不该顶着「write」这个类名走。 */
|
|
20
|
+
const SECTION_CLASS = {
|
|
21
|
+
receipt: 'ilife-write',
|
|
22
|
+
collect: 'ilife-write',
|
|
23
|
+
list: 'ilife-list',
|
|
24
|
+
};
|
|
25
|
+
/** 页面域内的 `<section>` 段:`data-slot`(`receipt`=结果型回执整页、`collect`=过程型采集页、
|
|
26
|
+
* `list`=查询域列表页)+ 四个机器标记 + 正文。
|
|
27
|
+
* 标记:`data-skill`(技能名,取值同页标识)/`data-slot`(页型槽位,取值见上)
|
|
28
|
+
* /`data-shape`(=本次 envelope 的形状,与老回执页同一枚,**是契约、不随页型改**)
|
|
29
|
+
* /`data-page`(**选页用这一枚**:`collect`/`receipt`/`list`;回执页与采集页共用 `shape=receipt`,靠 shape 选页会选错)
|
|
30
|
+
* /`data-key`(**场景名**,过 `sceneKeyOf`:`bill.record.add` → `record.add`)。
|
|
31
|
+
* R4 收口(写域):`bill.` 只许出现在复制载荷区(`pre`/复制块/`data-t`),页面标记一律写场景名;
|
|
32
|
+
* 要整名时 `data-skill` + `.` + `data-key` 仍拼得回来。
|
|
33
|
+
* H1 与副标题**不在这里**:那是页面模板(`base-paint/blocks` 的 `renderPageShell`)的活,一处只出一次。 */
|
|
34
|
+
export function writeSection(input) {
|
|
35
|
+
return '<section class="' + SECTION_CLASS[input.slot] + '" data-skill="' + DOC_SKILL + '" data-slot="ilife:bill:' + input.slot
|
|
36
|
+
+ '" data-page="' + input.page + '" data-shape="' + esc(input.shape) + '" data-key="' + esc(sceneKeyOf(input.key)) + '">'
|
|
37
|
+
+ input.content + '</section>';
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=writeParts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeParts.js","sourceRoot":"","sources":["../../src/shared/writeParts.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkB1D,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AAEzC,mFAAmF;AACnF,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5F,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,EAAgB;IAC3C,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAgC,CAAC;IAC1F,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;+DAC+D;AAC/D,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAA+B;IACtE,OAAO,gBAAgB,GAAG,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAC/E,CAAC;AAED;gEACgE;AAChE,MAAM,aAAa,GAA6D;IAC9E,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF;;;;;;;;gFAQgF;AAChF,MAAM,UAAU,YAAY,CAAC,KAM5B;IACC,OAAO,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,SAAS,GAAG,0BAA0B,GAAG,KAAK,CAAC,IAAI;UAC1H,eAAe,GAAG,KAAK,CAAC,IAAI,GAAG,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,cAAc,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;UACvH,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/** #721 · 路由与声明的**形状**(类型唯一处)。
|
|
2
|
+
*
|
|
3
|
+
* 本件只放类型与形状,**不含任何记录数据、不含任何逻辑**:
|
|
4
|
+
* - 三个路由类型(`BillKey` 键联合/`WakeEntry` 路由项/`WakeRoute` 路由结果)——今天的行为逐字不变;
|
|
5
|
+
* - 四份**声明形状**(`DomainDeclaration` / `WakeEntryDecl` / `WakeSubgroupDecl` / `WakeSceneDecl`)——
|
|
6
|
+
* 各域 `declaration.ts` 写出的形状,比运行时记录多一个「场景归谁所有」的位置;
|
|
7
|
+
* - 三个**投影形状**(`WakeSceneAsset` / `WakeSubgroupAsset` / `WakeGroupAsset`)——HELP 目录那一面
|
|
8
|
+
* (`src/triggers/wake-assets.ts` 转出,路径与导出面照旧)。
|
|
9
|
+
*
|
|
10
|
+
* 顺序权威:词的顺序=**域声明里 `entries` 的书写顺序**(词表由各声明按 `order` 拼接得出,
|
|
11
|
+
* 不打乱、不重排);域的顺序=`DomainDeclaration.order`(缺号/重号 fail-closed)。
|
|
12
|
+
* 谁在写声明:`src/<域>/declaration.ts` ×7 + `src/help/declaration.ts`(无场景的那一份)。
|
|
13
|
+
*
|
|
14
|
+
* 口径出处:形状照兄弟件 `packages/skill-calorie/src/triggers/routeSpec.ts`(照结构,不照文件)——
|
|
15
|
+
* 「类型唯一处、声明件只写记录」是同一条分工;住处由 [规格] 目标 src/ 形状(#720)归入
|
|
16
|
+
* 「外壳与机器面」里的触发与路由机器面。
|
|
17
|
+
*/
|
|
18
|
+
/** 记账的 16 个命令名(跨技能契约,冻结不动;`bill.record.*` 六条属写入域与查询域两域共用同一前缀)。 */
|
|
19
|
+
export type BillKey = 'bill.record.add' | 'bill.record.update' | 'bill.record.today' | 'bill.record.range' | 'bill.record.search' | 'bill.record.detail' | 'bill.analysis.overview' | 'bill.analysis.compare' | 'bill.analysis.trend' | 'bill.goal.write' | 'bill.goal.query' | 'bill.account.write' | 'bill.account.query' | 'bill.link.submit' | 'bill.setup.run' | 'bill.help.lookup';
|
|
20
|
+
/** 路由结果:命中哪条命令 + 随命令带下去的槽位。 */
|
|
21
|
+
export interface WakeRoute {
|
|
22
|
+
readonly key: BillKey;
|
|
23
|
+
readonly params: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
/** 路由项(=域声明里去掉场景的那半);`needs`=必需槽位(给不出就在路由层报错);
|
|
26
|
+
* `carries`=**不拦**、上下文里给了就带下去的槽位(改记录/撤销/恢复三条词的 `id` 住这里)。
|
|
27
|
+
* 分两格的理由见本件的 `WakeEntry`(逐字保留自旧的 `src/policy/wakewords.ts`——那件已随 #689 第三批删掉)。 */
|
|
28
|
+
export interface WakeEntry {
|
|
29
|
+
readonly phrase: string;
|
|
30
|
+
readonly key: BillKey;
|
|
31
|
+
readonly preset?: Readonly<Record<string, unknown>>;
|
|
32
|
+
readonly needs?: readonly string[];
|
|
33
|
+
readonly carries?: readonly string[];
|
|
34
|
+
}
|
|
35
|
+
/** 徽章类型词(老实物用到的全集;共享 help 模板 `TYPE_DEFAULT` 认得这些词,缺席即配色表要改)。 */
|
|
36
|
+
export type WakeSceneType = '采集' | '查看' | '选择' | '向导' | '回执';
|
|
37
|
+
/** 一条场景(老 HELP 卡的内容面)。**不写 `wake_word`**——那是拥有它的词条的**投影**。 */
|
|
38
|
+
export interface WakeSceneDecl {
|
|
39
|
+
readonly id: string;
|
|
40
|
+
readonly title: string;
|
|
41
|
+
/** 老实物 71/71 为空串(可用);`【待开发】` 为本仓预留态。 */
|
|
42
|
+
readonly status: string;
|
|
43
|
+
/** 「复制指令」按钮按出来的正文,逐字保留。 */
|
|
44
|
+
readonly prompt_template: string;
|
|
45
|
+
readonly types: readonly WakeSceneType[];
|
|
46
|
+
}
|
|
47
|
+
/** 一条词条:这个词怎么说、路由到哪条命令、说完看到哪几张卡(`scenes` ×0..n)。 */
|
|
48
|
+
export interface WakeEntryDecl {
|
|
49
|
+
readonly phrase: string;
|
|
50
|
+
readonly key: BillKey;
|
|
51
|
+
readonly preset?: Readonly<Record<string, unknown>>;
|
|
52
|
+
readonly needs?: readonly string[];
|
|
53
|
+
readonly carries?: readonly string[];
|
|
54
|
+
readonly scenes: readonly WakeSceneDecl[];
|
|
55
|
+
}
|
|
56
|
+
/** 一个二级组:名字 + 它按序排的场景 id(场景本身住词条名下,不在这里再抄一遍)。 */
|
|
57
|
+
export interface WakeSubgroupDecl {
|
|
58
|
+
readonly id: string;
|
|
59
|
+
readonly label: string;
|
|
60
|
+
readonly scenes: readonly string[];
|
|
61
|
+
}
|
|
62
|
+
/** 一份**域声明**(手写、唯一事实源)。
|
|
63
|
+
*
|
|
64
|
+
* 机械不变式(合并件与判据都按这几条判):
|
|
65
|
+
* - `order` 在 8 份声明里唯一且连续,从 0 起(0=HELP 自身位,排在所有域之前,保住今天的词序);
|
|
66
|
+
* - 有场景的声明(`subgroups` 非空)必须有 `label` 与 `icon`;无场景的那一份(HELP 位)两者都不给;
|
|
67
|
+
* - 一个场景 id 只准被一条词条拥有一次;二级组点名的场景必须在本域内(否则合并期即抛)。 */
|
|
68
|
+
export interface DomainDeclaration {
|
|
69
|
+
readonly id: string;
|
|
70
|
+
readonly label?: string;
|
|
71
|
+
readonly icon?: string;
|
|
72
|
+
readonly order: number;
|
|
73
|
+
readonly entries: readonly WakeEntryDecl[];
|
|
74
|
+
readonly subgroups: readonly WakeSubgroupDecl[];
|
|
75
|
+
}
|
|
76
|
+
/** 投影面:一条场景卡(HELP 页读的那一层;`wake_word` 由拥有它的词条算出)。 */
|
|
77
|
+
export interface WakeSceneAsset {
|
|
78
|
+
readonly id: string;
|
|
79
|
+
readonly title: string;
|
|
80
|
+
readonly wake_word: string;
|
|
81
|
+
readonly status: string;
|
|
82
|
+
readonly prompt_template: string;
|
|
83
|
+
readonly types: readonly WakeSceneType[];
|
|
84
|
+
}
|
|
85
|
+
/** 投影面:一个二级组(`scenes` 已是场景卡)。 */
|
|
86
|
+
export interface WakeSubgroupAsset {
|
|
87
|
+
readonly id: string;
|
|
88
|
+
readonly label: string;
|
|
89
|
+
readonly scenes: readonly WakeSceneAsset[];
|
|
90
|
+
}
|
|
91
|
+
/** 投影面:一个域(HELP 一级分组)。 */
|
|
92
|
+
export interface WakeGroupAsset {
|
|
93
|
+
readonly id: string;
|
|
94
|
+
readonly icon: string;
|
|
95
|
+
readonly label: string;
|
|
96
|
+
readonly subgroups: readonly WakeSubgroupAsset[];
|
|
97
|
+
}
|
|
98
|
+
/** 投影的线索(调用方知道自己手里的哪几件事,就给哪几件)。 */
|
|
99
|
+
export interface WakeScope {
|
|
100
|
+
/** 命令名(缺省=在全部词条里找)。 */
|
|
101
|
+
readonly key?: BillKey;
|
|
102
|
+
/** 内部型名(`expense`/`lend`…):按词条的 `preset.kind` 认。 */
|
|
103
|
+
readonly kind?: string;
|
|
104
|
+
/** 操作名(`undo`/`restore`…):按词条的 `preset.op` 认。 */
|
|
105
|
+
readonly op?: string;
|
|
106
|
+
/** 命令的入参原样(页面标题那一支:按 preset 子集与 needs 命中)。 */
|
|
107
|
+
readonly preset?: Readonly<Record<string, unknown>>;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=routeSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routeSpec.d.ts","sourceRoot":"","sources":["../../src/triggers/routeSpec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,kEAAkE;AAClE,MAAM,MAAM,OAAO,GACf,iBAAiB,GAAG,oBAAoB,GACxC,mBAAmB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,GACvF,wBAAwB,GAAG,uBAAuB,GAAG,qBAAqB,GAC1E,iBAAiB,GAAG,iBAAiB,GACrC,oBAAoB,GAAG,oBAAoB,GAC3C,kBAAkB,GAAG,gBAAgB,GACrC,kBAAkB,CAAC;AAEvB,+BAA+B;AAC/B,MAAM,WAAW,SAAS;IAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE;AAE/F;;kFAEkF;AAClF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7D,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;CAC3C;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;;sDAKsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACjD;AAED,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,0BAA0B;AAC1B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAClD;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,uBAAuB;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** #721 · 路由与声明的**形状**(类型唯一处)。
|
|
2
|
+
*
|
|
3
|
+
* 本件只放类型与形状,**不含任何记录数据、不含任何逻辑**:
|
|
4
|
+
* - 三个路由类型(`BillKey` 键联合/`WakeEntry` 路由项/`WakeRoute` 路由结果)——今天的行为逐字不变;
|
|
5
|
+
* - 四份**声明形状**(`DomainDeclaration` / `WakeEntryDecl` / `WakeSubgroupDecl` / `WakeSceneDecl`)——
|
|
6
|
+
* 各域 `declaration.ts` 写出的形状,比运行时记录多一个「场景归谁所有」的位置;
|
|
7
|
+
* - 三个**投影形状**(`WakeSceneAsset` / `WakeSubgroupAsset` / `WakeGroupAsset`)——HELP 目录那一面
|
|
8
|
+
* (`src/triggers/wake-assets.ts` 转出,路径与导出面照旧)。
|
|
9
|
+
*
|
|
10
|
+
* 顺序权威:词的顺序=**域声明里 `entries` 的书写顺序**(词表由各声明按 `order` 拼接得出,
|
|
11
|
+
* 不打乱、不重排);域的顺序=`DomainDeclaration.order`(缺号/重号 fail-closed)。
|
|
12
|
+
* 谁在写声明:`src/<域>/declaration.ts` ×7 + `src/help/declaration.ts`(无场景的那一份)。
|
|
13
|
+
*
|
|
14
|
+
* 口径出处:形状照兄弟件 `packages/skill-calorie/src/triggers/routeSpec.ts`(照结构,不照文件)——
|
|
15
|
+
* 「类型唯一处、声明件只写记录」是同一条分工;住处由 [规格] 目标 src/ 形状(#720)归入
|
|
16
|
+
* 「外壳与机器面」里的触发与路由机器面。
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=routeSpec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routeSpec.js","sourceRoot":"","sources":["../../src/triggers/routeSpec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WakeGroupAsset, WakeSceneAsset } from './routeSpec.js';
|
|
2
|
+
export type { WakeSceneType, WakeSceneAsset, WakeSubgroupAsset, WakeGroupAsset } from './routeSpec.js';
|
|
3
|
+
/** 7 域/20 二级组/74 场景(域序=声明的 `order`,词序=声明里的书写顺序)。 */
|
|
4
|
+
export declare const WAKE_GROUPS: readonly WakeGroupAsset[];
|
|
5
|
+
/** 扁平 74 条(顺序与 HELP 分组一致;单源派生,不重复落词)。 */
|
|
6
|
+
export declare const WAKE_ASSETS: readonly WakeSceneAsset[];
|
|
7
|
+
/** id → 场景(74/74 唯一)。 */
|
|
8
|
+
export declare const SCENE_BY_ID: Readonly<Record<string, WakeSceneAsset>>;
|
|
9
|
+
/** 资产总数(由 `WAKE_ASSETS` 派生,单源不复写第二遍数;改资产即跟变,测试仍钉 74)。 */
|
|
10
|
+
export declare const WAKE_ASSET_TOTAL: number;
|
|
11
|
+
/** HELP 自身的唤醒词(老实物 `meta_blocks.help_wake_words` 那一块;4 条,不进场景目录)。
|
|
12
|
+
*
|
|
13
|
+
* 从**无场景的那份声明**(HELP 位)读——防自指的规则只写一处:有场景的进目录,没场景的进这里。 */
|
|
14
|
+
export declare const HELP_WAKE_WORDS: readonly string[];
|
|
15
|
+
//# sourceMappingURL=wake-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-assets.d.ts","sourceRoot":"","sources":["../../src/triggers/wake-assets.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAqB,cAAc,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAE3G,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA6BvG,oDAAoD;AACpD,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAEA,CAAC;AAElD,yCAAyC;AACzC,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAEhD,CAAC;AAEF,yBAAyB;AACzB,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEhE,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,EAAE,MAA2B,CAAC;AAE3D;;yDAEyD;AACzD,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAEI,CAAC"}
|