skill-calorie 0.2.0 → 0.2.2

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.
Files changed (130) hide show
  1. package/SKILL.md +54 -26
  2. package/dist/analysis/anomaly/common.d.ts.map +1 -1
  3. package/dist/analysis/anomaly/common.js +2 -1
  4. package/dist/analysis/anomaly/common.js.map +1 -1
  5. package/dist/analysis/cross.d.ts.map +1 -1
  6. package/dist/analysis/cross.js +3 -2
  7. package/dist/analysis/cross.js.map +1 -1
  8. package/dist/analysis/deficit.d.ts.map +1 -1
  9. package/dist/analysis/deficit.js +4 -0
  10. package/dist/analysis/deficit.js.map +1 -1
  11. package/dist/analysis/diet.js +2 -2
  12. package/dist/analysis/diet.js.map +1 -1
  13. package/dist/analysis/exercise.js +5 -5
  14. package/dist/analysis/exercise.js.map +1 -1
  15. package/dist/analysis/review.js +2 -2
  16. package/dist/analysis/review.js.map +1 -1
  17. package/dist/analysis/series.d.ts +7 -1
  18. package/dist/analysis/series.d.ts.map +1 -1
  19. package/dist/analysis/series.js +22 -6
  20. package/dist/analysis/series.js.map +1 -1
  21. package/dist/analysis/utils.d.ts +7 -0
  22. package/dist/analysis/utils.d.ts.map +1 -1
  23. package/dist/analysis/utils.js +7 -0
  24. package/dist/analysis/utils.js.map +1 -1
  25. package/dist/analysis/weightCompare3.js +2 -2
  26. package/dist/analysis/weightCompare3.js.map +1 -1
  27. package/dist/cli/cmd_read.d.ts +21 -3
  28. package/dist/cli/cmd_read.d.ts.map +1 -1
  29. package/dist/cli/cmd_read.js +460 -54
  30. package/dist/cli/cmd_read.js.map +1 -1
  31. package/dist/cli/keys.d.ts +89 -1
  32. package/dist/cli/keys.d.ts.map +1 -1
  33. package/dist/cli/keys.js +30 -0
  34. package/dist/cli/keys.js.map +1 -1
  35. package/dist/cli/write.d.ts +12 -9
  36. package/dist/cli/write.d.ts.map +1 -1
  37. package/dist/cli/write.js +133 -48
  38. package/dist/cli/write.js.map +1 -1
  39. package/dist/output.d.ts +55 -1
  40. package/dist/output.d.ts.map +1 -1
  41. package/dist/output.js +203 -5
  42. package/dist/output.js.map +1 -1
  43. package/dist/render/dietDocs.d.ts +45 -0
  44. package/dist/render/dietDocs.d.ts.map +1 -0
  45. package/dist/render/dietDocs.js +561 -0
  46. package/dist/render/dietDocs.js.map +1 -0
  47. package/dist/render/envelope.d.ts +32 -6
  48. package/dist/render/envelope.d.ts.map +1 -1
  49. package/dist/render/envelope.js +71 -0
  50. package/dist/render/envelope.js.map +1 -1
  51. package/dist/render/exercisePort.d.ts +161 -0
  52. package/dist/render/exercisePort.d.ts.map +1 -0
  53. package/dist/render/exercisePort.js +395 -0
  54. package/dist/render/exercisePort.js.map +1 -0
  55. package/dist/render/goal.d.ts.map +1 -1
  56. package/dist/render/goal.js +13 -2
  57. package/dist/render/goal.js.map +1 -1
  58. package/dist/render/goalPlate.d.ts +1 -1
  59. package/dist/render/goalPlate.d.ts.map +1 -1
  60. package/dist/render/goalPlate.js +5 -1
  61. package/dist/render/goalPlate.js.map +1 -1
  62. package/dist/render/helpCenter.d.ts +104 -0
  63. package/dist/render/helpCenter.d.ts.map +1 -0
  64. package/dist/render/helpCenter.js +386 -0
  65. package/dist/render/helpCenter.js.map +1 -0
  66. package/dist/render/html.d.ts.map +1 -1
  67. package/dist/render/html.js +2 -1
  68. package/dist/render/html.js.map +1 -1
  69. package/dist/render/index.d.ts +3 -0
  70. package/dist/render/index.d.ts.map +1 -1
  71. package/dist/render/index.js +2 -0
  72. package/dist/render/index.js.map +1 -1
  73. package/dist/render/nutritionPort.d.ts +89 -0
  74. package/dist/render/nutritionPort.d.ts.map +1 -0
  75. package/dist/render/nutritionPort.js +183 -0
  76. package/dist/render/nutritionPort.js.map +1 -0
  77. package/dist/render/nutritionPortDocs.d.ts +6 -0
  78. package/dist/render/nutritionPortDocs.d.ts.map +1 -0
  79. package/dist/render/nutritionPortDocs.js +317 -0
  80. package/dist/render/nutritionPortDocs.js.map +1 -0
  81. package/dist/render/photo.d.ts.map +1 -1
  82. package/dist/render/photo.js +5 -1
  83. package/dist/render/photo.js.map +1 -1
  84. package/dist/render/planPlate.d.ts +2 -1
  85. package/dist/render/planPlate.d.ts.map +1 -1
  86. package/dist/render/planPlate.js +6 -1
  87. package/dist/render/planPlate.js.map +1 -1
  88. package/dist/render/receipt.d.ts +47 -1
  89. package/dist/render/receipt.d.ts.map +1 -1
  90. package/dist/render/receipt.js +67 -3
  91. package/dist/render/receipt.js.map +1 -1
  92. package/dist/render/sportDocs.d.ts +14 -0
  93. package/dist/render/sportDocs.d.ts.map +1 -0
  94. package/dist/render/sportDocs.js +540 -0
  95. package/dist/render/sportDocs.js.map +1 -0
  96. package/dist/render/sportPortDocs.d.ts +8 -0
  97. package/dist/render/sportPortDocs.d.ts.map +1 -0
  98. package/dist/render/sportPortDocs.js +468 -0
  99. package/dist/render/sportPortDocs.js.map +1 -0
  100. package/dist/render/trendDocs.d.ts +11 -0
  101. package/dist/render/trendDocs.d.ts.map +1 -0
  102. package/dist/render/trendDocs.js +445 -0
  103. package/dist/render/trendDocs.js.map +1 -0
  104. package/dist/render/trendMiscPort.d.ts +127 -0
  105. package/dist/render/trendMiscPort.d.ts.map +1 -0
  106. package/dist/render/trendMiscPort.js +277 -0
  107. package/dist/render/trendMiscPort.js.map +1 -0
  108. package/dist/render/trendMiscPortDocs.d.ts +10 -0
  109. package/dist/render/trendMiscPortDocs.d.ts.map +1 -0
  110. package/dist/render/trendMiscPortDocs.js +397 -0
  111. package/dist/render/trendMiscPortDocs.js.map +1 -0
  112. package/dist/render/wizardPort.d.ts +125 -0
  113. package/dist/render/wizardPort.d.ts.map +1 -0
  114. package/dist/render/wizardPort.js +393 -0
  115. package/dist/render/wizardPort.js.map +1 -0
  116. package/dist/render/wizardPortDocs.d.ts +6 -0
  117. package/dist/render/wizardPortDocs.d.ts.map +1 -0
  118. package/dist/render/wizardPortDocs.js +274 -0
  119. package/dist/render/wizardPortDocs.js.map +1 -0
  120. package/dist/triggers/routing.d.ts +21 -21
  121. package/dist/triggers/routing.d.ts.map +1 -1
  122. package/dist/triggers/routing.js +60 -30
  123. package/dist/triggers/routing.js.map +1 -1
  124. package/package.json +2 -2
  125. package/templates/diet.html +2 -2
  126. package/templates/exercise.html +2 -2
  127. package/templates/goal.html +2 -2
  128. package/templates/help.html +2 -2
  129. package/templates/home.html +2 -2
  130. package/templates/photo-gallery.html +2 -2
@@ -0,0 +1,317 @@
1
+ /** #112 · 营养移植 4 键全文档装配(数据→区块→填充器)。
2
+ *
3
+ * 范围(t71「需移植」之营养 4 项,#108 R4 记账回收):`calorie.view.nutrition-ratio`
4
+ * (nutrition_ratio:蛋白/碳水/脂肪占比+实际 vs 目标)/`calorie.view.nutrition-detail`
5
+ * (nutrition_detail:纤维/钠/糖 vs 推荐)/`calorie.view.source-stats`
6
+ * (source_stats:GROUP BY 来源整表)/`calorie.view.today-water`
7
+ * (today_water:累计/距目标/每杯时间/进度环)。
8
+ * 不碰:批量导入预览/lint_health/营养六因子/nutrition_analysis/calorie_trend/
9
+ * long_trend/process_progress/review_template(→ #113)/47 页已有(#108–#110 已关)/
10
+ * 训练计划写键(#86)/HELP(#88)。
11
+ *
12
+ * 做法(#104 §4 用法,照抄 sportPortDocs 头 90 行):内容 = base-paint/blocks 12 区块
13
+ * (B-01 壳/B-02 KPI/B-03 表/B-04 图/B-05 列表/B-08 折叠/B-09 参数表单/
14
+ * B-11 复制区),文档 = fillTemplate 包裹(资产裸文本+填充器包裹;
15
+ * sharedCss = buildStyleSheet().css + blocksCss(),不走 extraCss;
16
+ * 图表页另加 CHARTS-HELPERS+buildChartsHelpersJs,图表 CSS 由其运行时注入)。
17
+ * 复制文本一律 buildDataText(#77 契约):stat 投影 metrics 只收确定数字。
18
+ * 本层不做取数(数据由 render/nutritionPort.ts 备齐),不返空(缺失由数据层抛 missing-data)。
19
+ */
20
+ import { blocksCss, renderChartBlock, renderCopyBlock, renderDataTable, renderDisclosure, renderKpiGrid, renderListRows, renderPageShell, renderParamForm, } from 'base-paint/blocks';
21
+ import { buildChartsHelpersJs, buildDataText, buildSharedHelpersJs, buildStyleSheet, fillTemplate } from 'base-paint';
22
+ /** envelope 头(值冻结对齐 cli/keys.ts ENVELOPE_VERSION/CALORIE_SKILL;测试钉死一致)。 */
23
+ const DOC_VERSION = '0.1.0';
24
+ const DOC_SKILL = 'calorie';
25
+ /** 内容页壳(裸标记+CONTENT 槽;包裹约定:资产裸文本+填充器包裹,标记不得预包裹)。
26
+ * wrap 带 ilife-page 兼容既有 --html 断言。 */
27
+ const DOC_SHELL = '<!doctype html>\n<html lang="zh-CN">\n<head>\n<meta charset="utf-8">\n' +
28
+ '<meta name="viewport" content="width=device-width,initial-scale=1">\n' +
29
+ '<title>卡路里·营养移植</title>\n<!--SHARED-CSS-->\n</head>\n<body>\n' +
30
+ '<div class="wrap ilife-page">\n<!--CONTENT-->\n</div>\n<!--SHARED-HELPERS-->\n</body>\n</html>';
31
+ /** 图表页壳(多一个 CHARTS-HELPERS 标记,图表 CSS 由 charts helpers 运行时注入)。 */
32
+ const DOC_SHELL_CHARTS = '<!doctype html>\n<html lang="zh-CN">\n<head>\n<meta charset="utf-8">\n' +
33
+ '<meta name="viewport" content="width=device-width,initial-scale=1">\n' +
34
+ '<title>卡路里·营养移植</title>\n<!--SHARED-CSS-->\n</head>\n<body>\n' +
35
+ '<div class="wrap ilife-page">\n<!--CONTENT-->\n</div>\n<!--SHARED-HELPERS-->\n<!--CHARTS-HELPERS-->\n</body>\n</html>';
36
+ function assemble(title, eyebrow, subtitle, content, charts) {
37
+ const assets = {
38
+ sharedCssText: buildStyleSheet().css + '\n' + blocksCss(),
39
+ sharedHelpersJs: buildSharedHelpersJs(),
40
+ };
41
+ if (charts)
42
+ assets.chartsHelpersJs = buildChartsHelpersJs();
43
+ const body = renderPageShell({
44
+ title,
45
+ ...(eyebrow ? { eyebrow } : {}),
46
+ ...(subtitle ? { subtitle } : {}),
47
+ content,
48
+ });
49
+ return fillTemplate({ template: charts ? DOC_SHELL_CHARTS : DOC_SHELL, assets, content: body }).html;
50
+ }
51
+ function copyBlock(title, input) {
52
+ return renderCopyBlock({ title, dataText: buildDataText(input) });
53
+ }
54
+ function fmt(n) {
55
+ if (n === null || n === undefined)
56
+ return '—';
57
+ return String(n);
58
+ }
59
+ /** 复制投影 stat-metrics 只收确定数字(冻结口径:null/undefined 不进投影)。 */
60
+ function metricsOf(obj) {
61
+ const out = {};
62
+ for (const [k, v] of Object.entries(obj)) {
63
+ if (v !== null && v !== undefined)
64
+ out[k] = v;
65
+ }
66
+ return out;
67
+ }
68
+ function windowForm(start, end, extra) {
69
+ return renderParamForm({
70
+ fields: [
71
+ { name: 'start', label: '开始', value: start },
72
+ { name: 'end', label: '结束', value: end },
73
+ ],
74
+ description: extra,
75
+ });
76
+ }
77
+ /* ── 营养配比(nutrition_ratio.html 对照:3 维配比+热量来源占比+推荐范围对比) ── */
78
+ export function buildNutritionRatioDoc(v) {
79
+ const parts = [
80
+ windowForm(v.start, v.end, '蛋白/碳水/脂肪窗内合计占比;水行(宏量全 0)已排除,数值无差'),
81
+ renderKpiGrid([
82
+ { label: '蛋白', value: String(v.proteinG), unit: 'g', detail: v.proteinPct + '% · 目标 ' + fmt(v.targetProteinG) + 'g' },
83
+ { label: '碳水', value: String(v.carbG), unit: 'g', detail: v.carbPct + '% · 目标 ' + fmt(v.targetCarbG) + 'g' },
84
+ { label: '脂肪', value: String(v.fatG), unit: 'g', detail: v.fatPct + '% · 目标 ' + fmt(v.targetFatG) + 'g' },
85
+ {
86
+ label: '总摄入', value: String(v.totalCalorie), unit: '卡',
87
+ detail: v.days + ' 天 · ' + (v.balance === 'good' ? '均衡' : (v.balance === 'warn' ? '失衡' : '严重失衡')),
88
+ status: v.balance === 'good' ? 'ok' : (v.balance === 'warn' ? 'warn' : 'danger'),
89
+ },
90
+ ]),
91
+ ];
92
+ let charts = false;
93
+ if (v.totalCalorie > 0) {
94
+ // 热量来源占比(旧模板饼图→冻结 donut;饼→donut,冻结层有 donut 接口,D8 不新增)。
95
+ parts.push(renderChartBlock({
96
+ kind: 'donut',
97
+ title: '热量来源占比',
98
+ input: {
99
+ items: [
100
+ { label: '蛋白', value: v.proteinG * 4 },
101
+ { label: '碳水', value: v.carbG * 4 },
102
+ { label: '脂肪', value: v.fatG * 9 },
103
+ ],
104
+ options: { showPercent: true },
105
+ },
106
+ }));
107
+ charts = true;
108
+ }
109
+ // 推荐范围对比(下限/上限按总热量占比换算:蛋白/碳水 4kcal/g · 脂肪 9kcal/g;沿旧模板)。
110
+ const kcalPerG = { protein: 4, carb: 4, fat: 9 };
111
+ const rows = ([
112
+ { name: '蛋白', g: v.proteinG, pct: v.proteinPct, r: v.range.protein, perG: kcalPerG.protein },
113
+ { name: '碳水', g: v.carbG, pct: v.carbPct, r: v.range.carb, perG: kcalPerG.carb },
114
+ { name: '脂肪', g: v.fatG, pct: v.fatPct, r: v.range.fat, perG: kcalPerG.fat },
115
+ ]).map((it) => {
116
+ const minG = Math.round((v.totalCalorie * it.r.min) / 100 / it.perG);
117
+ const maxG = Math.round((v.totalCalorie * it.r.max) / 100 / it.perG);
118
+ const inRange = it.pct >= it.r.min && it.pct <= it.r.max;
119
+ const gap = it.g > maxG ? '+' + (it.g - maxG) + 'g' : (it.g < minG ? '-' + (minG - it.g) + 'g' : '✓');
120
+ return {
121
+ name: it.name,
122
+ actual: it.g + 'g(' + it.pct + '%)',
123
+ lower: it.r.min + '%(' + minG + 'g)',
124
+ upper: it.r.max + '%(' + maxG + 'g)',
125
+ gap,
126
+ status: inRange ? '✓ 在范围内' : (it.pct < it.r.min ? '↓ 偏低' : '↑ 偏高'),
127
+ };
128
+ });
129
+ parts.push(renderDataTable({
130
+ columns: [
131
+ { key: 'name', label: '营养素' },
132
+ { key: 'actual', label: '实际', align: 'right' },
133
+ { key: 'lower', label: '下限', align: 'right' },
134
+ { key: 'upper', label: '上限', align: 'right' },
135
+ { key: 'gap', label: '距范围', align: 'right' },
136
+ { key: 'status', label: '状态' },
137
+ ],
138
+ rows,
139
+ caption: '推荐范围对比(' + v.start + ' ~ ' + v.end + ')',
140
+ emptyText: '本窗无配比数据',
141
+ }));
142
+ parts.push(copyBlock('复制数据', {
143
+ envelope: {
144
+ version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.nutrition-ratio',
145
+ data: {
146
+ metrics: metricsOf({
147
+ totalCalorie: v.totalCalorie, proteinG: v.proteinG, proteinPct: v.proteinPct,
148
+ carbG: v.carbG, carbPct: v.carbPct, fatG: v.fatG, fatPct: v.fatPct,
149
+ targetProteinG: v.targetProteinG, targetCarbG: v.targetCarbG, targetFatG: v.targetFatG,
150
+ }),
151
+ },
152
+ },
153
+ }));
154
+ return assemble('营养配比 ' + v.start + ' ~ ' + v.end, 'calorie.view.nutrition-ratio · 营养移植域', '蛋白/碳水/脂肪占比+实际 vs 目标(无目标行即“—”,不编数)', parts.join(''), charts);
155
+ }
156
+ /* ── 营养素深度(nutrition_detail.html 对照:纤维/钠/糖 vs 固定推荐+缺数据盒) ── */
157
+ export function buildNutritionDetailDoc(v) {
158
+ const parts = [
159
+ windowForm(v.start, v.end, 'food_log × nutrition_products 按食物名精确折算(每 100g);库匹配为精确名匹配,不做子串'),
160
+ renderKpiGrid([
161
+ { label: '匹配餐数', value: String(v.matchedMeals), unit: '餐', detail: v.start + ' ~ ' + v.end },
162
+ { label: '缺数据食物', value: String(v.missingFoods.length), unit: '种', detail: '未计入(见下)' },
163
+ { label: '覆盖营养素', value: String(v.items.length), unit: '项', detail: '纤维/钠/糖(固定 DRI)' },
164
+ ]),
165
+ ];
166
+ const charts = false;
167
+ parts.push(renderDataTable({
168
+ columns: [
169
+ { key: 'label', label: '营养素' },
170
+ { key: 'value', label: '累计', align: 'right' },
171
+ { key: 'avg', label: '日均', align: 'right' },
172
+ { key: 'good', label: '推荐' },
173
+ { key: 'pct', label: '占比%', align: 'right' },
174
+ { key: 'status', label: '状态' },
175
+ ],
176
+ rows: v.items.map((it) => ({
177
+ label: it.label,
178
+ value: it.value + it.unit,
179
+ avg: it.avg + it.unit + '/天',
180
+ good: it.good,
181
+ pct: it.pct,
182
+ status: it.status === 'ok' ? '✓' : '↑ 超标',
183
+ })),
184
+ caption: '微量营养素 vs 推荐(百分比=日均 vs 每日推荐,沿旧 D5.4 口径)',
185
+ emptyText: '本窗无营养素数据',
186
+ }));
187
+ if (v.missingFoods.length > 0) {
188
+ parts.push(renderDisclosure({
189
+ title: '缺数据食物(共 ' + v.missingFoods.length + ' 种,未计入)',
190
+ contentHtml: renderListRows({
191
+ items: v.missingFoods.map((name) => ({ left: name, main: '未在食品库找到营养数据', right: '建议用「存食品」补录' })),
192
+ }),
193
+ }));
194
+ }
195
+ parts.push(copyBlock('复制数据', {
196
+ envelope: {
197
+ version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.nutrition-detail',
198
+ data: {
199
+ metrics: metricsOf({
200
+ days: v.days,
201
+ matchedMeals: v.matchedMeals,
202
+ missingFoods: v.missingFoods.length,
203
+ fiberAvg: v.items[0]?.avg,
204
+ sodiumAvg: v.items[1]?.avg,
205
+ sugarAvg: v.items[2]?.avg,
206
+ fiberPct: v.items[0]?.pct,
207
+ sodiumPct: v.items[1]?.pct,
208
+ sugarPct: v.items[2]?.pct,
209
+ }),
210
+ },
211
+ },
212
+ }));
213
+ return assemble('营养素深度 ' + v.start + ' ~ ' + v.end, 'calorie.view.nutrition-detail · 营养移植域', '纤维/钠/糖实际 vs 推荐(缺库食物明示未计入,不编数)', parts.join(''), charts);
214
+ }
215
+ /* ── 食品来源统计(source_stats.html 对照:来源数+总数+按来源分组) ── */
216
+ export function buildSourceStatsDoc(v) {
217
+ const parts = [
218
+ renderKpiGrid([
219
+ { label: '来源数', value: String(v.sources), unit: '个' },
220
+ { label: '食品总数', value: String(v.total), unit: '条', detail: 'nutrition_products(下架已排除)' },
221
+ ]),
222
+ ];
223
+ let charts = false;
224
+ if (v.items.length > 0) {
225
+ parts.push(renderChartBlock({
226
+ kind: 'bar',
227
+ title: '按来源分组',
228
+ input: { items: v.items.map((it) => ({ label: it.source, value: it.count })) },
229
+ }));
230
+ charts = true;
231
+ }
232
+ parts.push(renderDataTable({
233
+ columns: [
234
+ { key: 'source', label: '来源' },
235
+ { key: 'count', label: '条数', align: 'right' },
236
+ { key: 'pct', label: '占比%', align: 'right' },
237
+ ],
238
+ rows: v.items.map((it) => ({ source: it.source, count: it.count, pct: it.pct })),
239
+ caption: '按来源分组(GROUP BY source,下架已排除;空串来源归“未知”)',
240
+ emptyText: '库内无食品记录',
241
+ }));
242
+ parts.push(copyBlock('复制数据', {
243
+ envelope: {
244
+ version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.source-stats',
245
+ data: {
246
+ metrics: metricsOf({ total: v.total, sources: v.sources }),
247
+ },
248
+ },
249
+ }));
250
+ return assemble('食品来源统计', 'calorie.view.source-stats · 营养移植域', '库内食品按来源分组计数(库空即 missing,不编数)', parts.join(''), charts);
251
+ }
252
+ /* ── 今日饮水(today_water.html 对照:进度环+7 天+每杯明细) ── */
253
+ const WEEKDAY = ['日', '一', '二', '三', '四', '五', '六'];
254
+ export function buildTodayWaterDoc(v) {
255
+ const parts = [
256
+ renderParamForm({
257
+ fields: [{ name: 'date', label: '日期', value: v.date }],
258
+ description: '单日视图(7 天窗=当天往前 6 个自然日,不做周一派生)',
259
+ }),
260
+ renderKpiGrid([
261
+ { label: '今日饮水', value: String(v.todayMl), unit: 'ml', detail: v.date },
262
+ { label: '目标', value: String(v.targetMl), unit: 'ml', detail: 'daily_goal.water_goal(缺省 2000)' },
263
+ {
264
+ label: '进度', value: String(v.pct) + '%',
265
+ detail: v.remainMl > 0 ? '还差 ' + v.remainMl + ' ml' : (v.remainMl === 0 ? '已完成目标' : '超出目标 ' + -v.remainMl + ' ml'),
266
+ status: v.pct >= 100 ? 'ok' : (v.pct >= 50 ? 'warn' : 'warn'),
267
+ },
268
+ ]),
269
+ ];
270
+ let charts = false;
271
+ if (v.weekMl.some((ml) => ml > 0)) {
272
+ // 进度环(旧模板 ring→冻结 donut 单段;中心数值由 KPI 承担)+7 天 bar。
273
+ parts.push(renderChartBlock({
274
+ kind: 'donut',
275
+ title: '今日进度',
276
+ input: {
277
+ items: [
278
+ { label: '已喝', value: Math.min(v.todayMl, v.targetMl) },
279
+ { label: '未喝', value: Math.max(v.targetMl - v.todayMl, 0) },
280
+ ],
281
+ options: { showPercent: true },
282
+ },
283
+ }));
284
+ parts.push(renderChartBlock({
285
+ kind: 'bar',
286
+ title: '本周 7 天',
287
+ input: {
288
+ items: v.weekMl.map((ml, i) => ({
289
+ label: (v.weekDates[i] ?? '').slice(5) + '(' + WEEKDAY[new Date((v.weekDates[i] ?? '') + 'T00:00:00').getDay()] + ')',
290
+ value: ml,
291
+ })),
292
+ },
293
+ }));
294
+ charts = true;
295
+ }
296
+ parts.push(renderDataTable({
297
+ columns: [
298
+ { key: 'time', label: '时间' },
299
+ { key: 'ml', label: '饮水量ml', align: 'right' },
300
+ ],
301
+ rows: v.cups.map((c) => ({ time: c.time === '' ? '—' : c.time, ml: c.ml })),
302
+ caption: '今日每杯(共 ' + v.cups.length + ' 杯)',
303
+ emptyText: '今天还没有喝水记录',
304
+ }));
305
+ parts.push(copyBlock('复制数据', {
306
+ envelope: {
307
+ version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.today-water',
308
+ data: {
309
+ metrics: metricsOf({
310
+ todayMl: v.todayMl, targetMl: v.targetMl, pct: v.pct, remainMl: v.remainMl, cups: v.cups.length,
311
+ }),
312
+ },
313
+ },
314
+ }));
315
+ return assemble('今日饮水 ' + v.date, 'calorie.view.today-water · 营养移植域', v.remainMl > 0 ? '还差 ' + v.remainMl + ' ml' : '已达标(' + v.pct + '%)', parts.join(''), charts);
316
+ }
317
+ //# sourceMappingURL=nutritionPortDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nutritionPortDocs.js","sourceRoot":"","sources":["../../src/render/nutritionPortDocs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"photo.d.ts","sourceRoot":"","sources":["../../src/render/photo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"photo.d.ts","sourceRoot":"","sources":["../../src/render/photo.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAEL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,sDAAsD;IACtD,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAkB1E;AAYD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,GAAE,aAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAuCrH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAmBnH;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,CAenG;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,oBAAoB,6IAA+B,CAAC;AAEjE,sDAAsD;AACtD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAClH,OAAO,CA0CT;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EAAE,EACnB,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1F,WAAW,CAeb;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAqBlE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GACjC,WAAW,CA0Bb"}
@@ -142,6 +142,10 @@ export function buildGifTask(db, input) {
142
142
  const want = new Set(input.photoIds);
143
143
  ids = ids.filter((x) => want.has(x));
144
144
  }
145
+ // #100 · 空库阻断:零匹配即 missing-data,不返 photoCount=0 的"共 0 张"合成页(exit 4)。
146
+ if (ids.length === 0) {
147
+ throw new CalorieRenderError('missing-data', '无匹配照片(标签 ' + tag + ',检查标签/日期范围)');
148
+ }
145
149
  let firstDate = plan.dateFrom;
146
150
  let lastDate = plan.dateTo;
147
151
  if (input.photoIds) {
@@ -162,7 +166,7 @@ export function buildGifTask(db, input) {
162
166
  photoIds: ids,
163
167
  firstDate,
164
168
  lastDate,
165
- note: ids.length === 0 ? '无匹配照片(检查标签/日期范围) · ' + GIF_PASSTHROUGH_NOTE : GIF_PASSTHROUGH_NOTE,
169
+ note: GIF_PASSTHROUGH_NOTE,
166
170
  };
167
171
  }
168
172
  /** 存照片回执:单张/含备注/批量(items 逐张状态由调用方按 T4 addPhotos 结果组装)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"photo.js","sourceRoot":"","sources":["../../src/render/photo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"photo.js","sourceRoot":"","sources":["../../src/render/photo.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,8 @@ export interface PlanWizardView {
21
21
  warnings: string[];
22
22
  errorCount: number;
23
23
  warningCount: number;
24
- insertedCount: number;
24
+ /** G15 #102 · 已检查计数(输入计划含的会话数;≠通过数:坏计划也计 N,通过与否看 errorCount;未写库) */
25
+ checkedSessions: number;
25
26
  dryRun: true;
26
27
  }
27
28
  export declare function buildPlanWizardView(plan: unknown, catalog?: unknown): PlanWizardView;
@@ -1 +1 @@
1
- {"version":3,"file":"planPlate.d.ts","sourceRoot":"","sources":["../../src/render/planPlate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,QAAQ,CAcxD;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,IAAI,CAAC;CACd;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAiBpF;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CA0BpG"}
1
+ {"version":3,"file":"planPlate.d.ts","sourceRoot":"","sources":["../../src/render/planPlate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,QAAQ,CAcxD;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,IAAI,CAAC;CACd;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAoBpF;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CA0BpG"}
@@ -39,7 +39,12 @@ export function buildPlanWizardView(plan, catalog) {
39
39
  cats = catalog;
40
40
  }
41
41
  const { errors, warnings } = validatePlan(p, cats ? { catalog: cats } : {});
42
- return { errors, warnings, errorCount: errors.length, warningCount: warnings.length, insertedCount: 0, dryRun: true };
42
+ // G15 #102 · 诚实计数:只统计输入含的会话数,不触库(已检查≠已通过:坏计划也计 N;原 insertedCount: 0 恒零且暗示已落库)。
43
+ let checkedSessions = 0;
44
+ for (const week of p.weeks ?? [])
45
+ for (const day of week.days ?? [])
46
+ checkedSessions += (day.sessions ?? []).length;
47
+ return { errors, warnings, errorCount: errors.length, warningCount: warnings.length, checkedSessions, dryRun: true };
43
48
  }
44
49
  export function buildExerciseGoalView(db, start, end) {
45
50
  assertDate(start);
@@ -1 +1 @@
1
- {"version":3,"file":"planPlate.js","sourceRoot":"","sources":["../../src/render/planPlate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planPlate.js","sourceRoot":"","sources":["../../src/render/planPlate.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export interface ReceiptMeta {
22
22
  wakeWord: string;
23
23
  source: string;
24
24
  }
25
- export interface CrudReceipt {
25
+ export interface CrudReceipt extends M5Fields {
26
26
  scene: string;
27
27
  action: string;
28
28
  op: 'create' | 'update' | 'delete';
@@ -44,6 +44,47 @@ export interface ErrorReceipt {
44
44
  fixPrompt: string;
45
45
  meta: ReceiptMeta;
46
46
  }
47
+ /** M5 契约版本(回执自证:探针/测试据此断言「本回执满足哪一版 M5」)。 */
48
+ export declare const M5_CONTRACT: "1";
49
+ /** 影响行数来源:SQLite `total_changes()` 在本键写库前后的增量(真实库行数,非自报)。 */
50
+ export declare const M5_AFFECTED_SOURCE: "sqlite:total_changes";
51
+ /** id 口径(旧版 `id=<N>`;条件/批量写旧版为 `id=n/a`)。
52
+ * - `record`:单条记录 id(`recordId` 或 `ids` 非空)
53
+ * - `singleton`:单例行表(user_profile/daily_goal),固定 id=1
54
+ * - `condition`:按条件/批量的写(旧版 `id=n/a`,`ids` 为空数组)
55
+ * - `none`:本次无写入且无 id 可指(如重复跳过且拿不到原 id)
56
+ */
57
+ export type M5IdSource = 'record' | 'singleton' | 'condition' | 'none';
58
+ export interface M5Fields {
59
+ m5Contract: '1';
60
+ affectedRows: number;
61
+ affectedRowsSource: 'sqlite:total_changes';
62
+ ids: number[];
63
+ idSource: M5IdSource;
64
+ writtenFields: string[];
65
+ m5Line: string;
66
+ }
67
+ export interface M5Input {
68
+ recordId: number | null;
69
+ ids?: number[];
70
+ idSource?: M5IdSource;
71
+ affectedRows?: number;
72
+ writtenFields?: string[];
73
+ actionAt: string;
74
+ noChange?: boolean;
75
+ }
76
+ /** 旧版整行文本等价物:`id=<N|n/a> | 日期 <YYYY-MM-DD HH:MM:SS> | 影响 N 行 | 字段 a,b`。 */
77
+ export declare function m5LineOf(input: {
78
+ recordId: number | null;
79
+ ids: number[];
80
+ actionAt: string;
81
+ affectedRows: number;
82
+ writtenFields: string[];
83
+ }): string;
84
+ /** M5 字段派生(单一来源:`buildCrudReceipt` 与 `withM5` 都走这里)。 */
85
+ export declare function buildM5(input: M5Input): M5Fields;
86
+ /** 只追加:把 M5 字段补进既有回执(photo.ts 三回执与本层同一入口,既有字段一字不改)。 */
87
+ export declare function withM5(receipt: CrudReceipt, patch?: Omit<M5Input, 'recordId' | 'actionAt'>): CrudReceipt;
47
88
  export declare function buildReceiptMeta(entityType: string, wakeWord: string, source: string): ReceiptMeta;
48
89
  export declare function buildCrudReceipt(input: {
49
90
  scene: string;
@@ -57,6 +98,11 @@ export declare function buildCrudReceipt(input: {
57
98
  noChange?: boolean;
58
99
  wakeWord: string;
59
100
  source: string;
101
+ /** #97 · M5 追加字段(缺省:ids 由 recordId 派生、affectedRows=0、writtenFields=[])。 */
102
+ ids?: number[];
103
+ idSource?: M5IdSource;
104
+ affectedRows?: number;
105
+ writtenFields?: string[];
60
106
  }): CrudReceipt;
61
107
  export declare function buildErrorReceipt(input: {
62
108
  sceneName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../src/render/receipt.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB;AAQD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAIlG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,WAAW,CAkBd;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAsBf"}
1
+ {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../src/render/receipt.ts"],"names":[],"mappings":"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"}