@ankhorage/templates 1.8.1 → 1.8.3
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/CHANGELOG.md +15 -0
- package/dist/templates/starter/categories/food-drink/index.js +1 -1
- package/dist/templates/starter/categories/food-drink/index.js.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.js +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.js.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.d.ts +0 -14
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.d.ts.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.js +59 -87
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.js.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.d.ts +10 -193
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.d.ts.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.js +19 -142
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.js.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.d.ts.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.js +28 -8
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.js.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.d.ts +0 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.d.ts.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.js +0 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.js.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.d.ts.map +1 -1
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.js +27 -17
- package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @ankhorage/templates
|
|
2
2
|
|
|
3
|
+
## 1.8.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 481d13b: Align the food/drink nutrition catalog scanner starter with the current product-centric nutrition API.
|
|
8
|
+
|
|
9
|
+
Generated nutrition scanner manifests now use direct product CRUD operations under `/v1/nutrition/products`, full runtime product operation paths, and `packageLabel`-based product data instead of the legacy capture/challenge/event flow.
|
|
10
|
+
EOF
|
|
11
|
+
|
|
12
|
+
## 1.8.2
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 14e32f8: Fix wrong nutrition api baseUrl
|
|
17
|
+
|
|
3
18
|
## 1.8.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -10,7 +10,7 @@ export const foodDrinkStarterTemplates = [
|
|
|
10
10
|
{
|
|
11
11
|
id: 'nutrition-catalog-scan',
|
|
12
12
|
label: 'Nutrition catalog scan',
|
|
13
|
-
description: 'A Swiss product catalog starter with ZORA-first product browsing and
|
|
13
|
+
description: 'A Swiss product catalog starter with ZORA-first product browsing and direct barcode-to-product creation flow.',
|
|
14
14
|
create: createNutritionCatalogScanStarterTemplate,
|
|
15
15
|
},
|
|
16
16
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,yCAAyC,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,4EAA4E;QACzF,MAAM,EAAE,8BAA8B;KACvC;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,yCAAyC,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,4EAA4E;QACzF,MAAM,EAAE,8BAA8B;KACvC;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,+GAA+G;QACjH,MAAM,EAAE,yCAAyC;KAClD;CACqD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.ts"],"names":[],"mappings":"AAEA,MAAM,sBAAsB,GAAG;IAC7B,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,0BAA0B;CACD,CAAC;AAEzC,SAAS,wBAAwB,CAAC,IAEjC;IACC,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,aAAa;QAC5B,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;iBAClB;aACF;YACD,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,YAAY;iBACnB;aACF;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,20 +55,6 @@ export declare const nutritionCatalogScanContent: {
|
|
|
55
55
|
}[];
|
|
56
56
|
}[];
|
|
57
57
|
};
|
|
58
|
-
challenge: {
|
|
59
|
-
eyebrow: string;
|
|
60
|
-
title: string;
|
|
61
|
-
description: string;
|
|
62
|
-
sections: {
|
|
63
|
-
title: string;
|
|
64
|
-
description: string;
|
|
65
|
-
cards: {
|
|
66
|
-
eyebrow: string;
|
|
67
|
-
title: string;
|
|
68
|
-
description: string;
|
|
69
|
-
}[];
|
|
70
|
-
}[];
|
|
71
|
-
};
|
|
72
58
|
leaderboard: {
|
|
73
59
|
eyebrow: string;
|
|
74
60
|
title: string;
|
package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/content.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/content.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkTiB,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export const nutritionCatalogScanContent = {
|
|
2
2
|
catalog: {
|
|
3
|
-
eyebrow: '
|
|
4
|
-
title: '
|
|
5
|
-
description: 'Signed-in scanners browse the shared Swiss product catalog, scan
|
|
3
|
+
eyebrow: 'Signed-in nutrition catalog',
|
|
4
|
+
title: 'Catalog products',
|
|
5
|
+
description: 'Signed-in scanners browse the shared Swiss product catalog, scan barcodes, and create missing products directly through the gateway.',
|
|
6
6
|
sections: [
|
|
7
7
|
{
|
|
8
8
|
title: 'Restricted catalog',
|
|
9
|
-
description: 'The whole app is protected by global auth. Product browsing happens after sign-in
|
|
9
|
+
description: 'The whole app is protected by global auth. Product browsing happens after sign-in.',
|
|
10
10
|
cards: [
|
|
11
11
|
{
|
|
12
12
|
eyebrow: 'Known product',
|
|
13
13
|
title: 'Bio Greek Yogurt 250 g',
|
|
14
|
-
description: 'Example product card with brand,
|
|
14
|
+
description: 'Example product card with brand, package label, barcode, and typed nutrition metadata.',
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
eyebrow: 'Known product',
|
|
@@ -21,23 +21,23 @@ export const nutritionCatalogScanContent = {
|
|
|
21
21
|
{
|
|
22
22
|
eyebrow: 'Contribution target',
|
|
23
23
|
title: 'Missing supermarket products',
|
|
24
|
-
description: '
|
|
24
|
+
description: 'Missing barcodes can be turned into real products immediately from the create screen.',
|
|
25
25
|
},
|
|
26
26
|
],
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
|
-
title: '
|
|
30
|
-
description: 'Friends sign in, scan products,
|
|
29
|
+
title: 'Scanner loop',
|
|
30
|
+
description: 'Friends sign in, scan products, look up known barcodes, and create missing products when needed.',
|
|
31
31
|
cards: [
|
|
32
32
|
{
|
|
33
33
|
eyebrow: 'Action',
|
|
34
34
|
title: 'Scan barcode',
|
|
35
|
-
description: 'Open the scanner, normalize barcode digits,
|
|
35
|
+
description: 'Open the scanner, normalize barcode digits, and look up the product through the gateway.',
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
|
-
eyebrow: '
|
|
39
|
-
title: '
|
|
40
|
-
description: '
|
|
38
|
+
eyebrow: 'Create path',
|
|
39
|
+
title: 'Direct product creation',
|
|
40
|
+
description: 'When a barcode is unknown, the app opens a direct product create form instead of a capture queue.',
|
|
41
41
|
},
|
|
42
42
|
],
|
|
43
43
|
},
|
|
@@ -46,7 +46,7 @@ export const nutritionCatalogScanContent = {
|
|
|
46
46
|
detail: {
|
|
47
47
|
eyebrow: 'Published product',
|
|
48
48
|
title: 'Product detail',
|
|
49
|
-
description: 'Show barcode, brand,
|
|
49
|
+
description: 'Show barcode, brand, package label, image refs, and nutrition facts from the API Gateway.',
|
|
50
50
|
sections: [
|
|
51
51
|
{
|
|
52
52
|
title: 'Product summary',
|
|
@@ -58,9 +58,9 @@ export const nutritionCatalogScanContent = {
|
|
|
58
58
|
description: 'Barcode values are normalized by removing non-digits before lookup.',
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
eyebrow: '
|
|
62
|
-
title: '
|
|
63
|
-
description: 'The
|
|
61
|
+
eyebrow: 'Stable DTO',
|
|
62
|
+
title: 'Gateway-owned product shape',
|
|
63
|
+
description: 'The detail payload exposes packageLabel, nutritionFacts, imageRefs, and soft-delete-safe product reads.',
|
|
64
64
|
},
|
|
65
65
|
],
|
|
66
66
|
},
|
|
@@ -69,7 +69,7 @@ export const nutritionCatalogScanContent = {
|
|
|
69
69
|
scan: {
|
|
70
70
|
eyebrow: 'Authenticated scan',
|
|
71
71
|
title: 'Scan barcode',
|
|
72
|
-
description: 'Use the ZORA BarcodeScannerView with an app-level camera adapter. Successful scans
|
|
72
|
+
description: 'Use the ZORA BarcodeScannerView with an app-level camera adapter. Successful scans look up products by barcode and branch to detail or create.',
|
|
73
73
|
sections: [
|
|
74
74
|
{
|
|
75
75
|
title: 'Scanner adapter',
|
|
@@ -93,92 +93,64 @@ export const nutritionCatalogScanContent = {
|
|
|
93
93
|
cards: [
|
|
94
94
|
{
|
|
95
95
|
eyebrow: 'Found',
|
|
96
|
-
title: '
|
|
97
|
-
description: 'A known barcode
|
|
96
|
+
title: 'Open product detail',
|
|
97
|
+
description: 'A known barcode opens the product detail screen.',
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
eyebrow: 'Unknown',
|
|
101
|
-
title: 'Create
|
|
102
|
-
description: 'A missing barcode opens the
|
|
101
|
+
title: 'Create product',
|
|
102
|
+
description: 'A missing barcode opens the direct product create form.',
|
|
103
103
|
},
|
|
104
104
|
],
|
|
105
105
|
},
|
|
106
106
|
],
|
|
107
107
|
},
|
|
108
108
|
capture: {
|
|
109
|
-
eyebrow: '
|
|
110
|
-
title: '
|
|
111
|
-
description: 'Collect the minimal data needed to create a
|
|
109
|
+
eyebrow: 'Direct create flow',
|
|
110
|
+
title: 'Create product',
|
|
111
|
+
description: 'Collect the minimal data needed to create a nutrition product directly through the gateway.',
|
|
112
112
|
sections: [
|
|
113
113
|
{
|
|
114
114
|
title: 'Required fields',
|
|
115
|
-
description: 'Keep in-store entry fast
|
|
115
|
+
description: 'Keep in-store entry fast while matching the current product API.',
|
|
116
116
|
cards: [
|
|
117
117
|
{
|
|
118
118
|
eyebrow: 'Product identity',
|
|
119
|
-
title: '
|
|
119
|
+
title: 'Barcode, name, brand',
|
|
120
120
|
description: 'The barcode is prefilled from the scanner or manual input.',
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
|
-
eyebrow: '
|
|
124
|
-
title: '
|
|
125
|
-
description: '
|
|
123
|
+
eyebrow: 'Packaging',
|
|
124
|
+
title: 'Package label',
|
|
125
|
+
description: 'Store package text such as 500ml, 1L, or 6 x 33cl.',
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
eyebrow: 'Photos placeholder',
|
|
129
129
|
title: 'Front, nutrition, ingredients, barcode',
|
|
130
|
-
description: 'Real image upload can be added
|
|
131
|
-
},
|
|
132
|
-
],
|
|
133
|
-
},
|
|
134
|
-
],
|
|
135
|
-
},
|
|
136
|
-
challenge: {
|
|
137
|
-
eyebrow: 'Active challenge',
|
|
138
|
-
title: 'Scanner challenge',
|
|
139
|
-
description: 'Show challenge rules, dates, invite status, scoring, and the signed-in scanner progress.',
|
|
140
|
-
sections: [
|
|
141
|
-
{
|
|
142
|
-
title: 'Scoring rules',
|
|
143
|
-
description: 'Point rules should reward useful scans and discourage duplicate barcode farming.',
|
|
144
|
-
cards: [
|
|
145
|
-
{
|
|
146
|
-
eyebrow: 'Known scan',
|
|
147
|
-
title: '1 point',
|
|
148
|
-
description: 'Awarded for a valid known product scan within the duplicate limits.',
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
eyebrow: 'Missing product',
|
|
152
|
-
title: '5 points',
|
|
153
|
-
description: 'Awarded when a signed-in scanner submits a new missing product capture.',
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
eyebrow: 'Accepted capture',
|
|
157
|
-
title: '20 points',
|
|
158
|
-
description: 'Awarded later when review tooling publishes or accepts the captured product.',
|
|
130
|
+
description: 'Real image upload can be added later through typed imageRefs inputs.',
|
|
159
131
|
},
|
|
160
132
|
],
|
|
161
133
|
},
|
|
162
134
|
],
|
|
163
135
|
},
|
|
164
136
|
leaderboard: {
|
|
165
|
-
eyebrow: '
|
|
166
|
-
title: '
|
|
167
|
-
description: '
|
|
137
|
+
eyebrow: 'Catalog progress',
|
|
138
|
+
title: 'Stats',
|
|
139
|
+
description: 'Use this screen for catalog growth, scan throughput, and contributor-facing nutrition app metrics.',
|
|
168
140
|
sections: [
|
|
169
141
|
{
|
|
170
|
-
title: '
|
|
171
|
-
description: '
|
|
142
|
+
title: 'Suggested metrics',
|
|
143
|
+
description: 'This starter no longer assumes extra event or leaderboard APIs.',
|
|
172
144
|
cards: [
|
|
173
145
|
{
|
|
174
|
-
eyebrow: '
|
|
175
|
-
title: '
|
|
176
|
-
description: '
|
|
146
|
+
eyebrow: 'Catalog',
|
|
147
|
+
title: 'Products added',
|
|
148
|
+
description: 'Track how many products were created or enriched through the app.',
|
|
177
149
|
},
|
|
178
150
|
{
|
|
179
|
-
eyebrow: '
|
|
180
|
-
title: '
|
|
181
|
-
description: '
|
|
151
|
+
eyebrow: 'Quality',
|
|
152
|
+
title: 'Lookup hit rate',
|
|
153
|
+
description: 'Compare known-barcode hits against direct product creation prompts.',
|
|
182
154
|
},
|
|
183
155
|
],
|
|
184
156
|
},
|
|
@@ -200,17 +172,17 @@ export const nutritionCatalogScanContent = {
|
|
|
200
172
|
},
|
|
201
173
|
{
|
|
202
174
|
eyebrow: 'Stats',
|
|
203
|
-
title: '
|
|
204
|
-
description: 'Aggregate
|
|
175
|
+
title: 'Catalog activity',
|
|
176
|
+
description: 'Aggregate product contributions and lookup activity from app-facing analytics.',
|
|
205
177
|
},
|
|
206
178
|
],
|
|
207
179
|
},
|
|
208
180
|
],
|
|
209
181
|
},
|
|
210
182
|
success: {
|
|
211
|
-
eyebrow: '
|
|
212
|
-
title: 'Thanks
|
|
213
|
-
description: 'The API returns
|
|
183
|
+
eyebrow: 'Product created',
|
|
184
|
+
title: 'Thanks - product created',
|
|
185
|
+
description: 'The API returns the created product directly, so the app can open detail or continue scanning immediately.',
|
|
214
186
|
sections: [
|
|
215
187
|
{
|
|
216
188
|
title: 'Next actions',
|
|
@@ -223,8 +195,8 @@ export const nutritionCatalogScanContent = {
|
|
|
223
195
|
},
|
|
224
196
|
{
|
|
225
197
|
eyebrow: 'Ranking',
|
|
226
|
-
title: 'Open
|
|
227
|
-
description: 'Show the
|
|
198
|
+
title: 'Open product detail',
|
|
199
|
+
description: 'Show the freshly created product and let the scanner add more metadata later.',
|
|
228
200
|
},
|
|
229
201
|
],
|
|
230
202
|
},
|
|
@@ -232,8 +204,8 @@ export const nutritionCatalogScanContent = {
|
|
|
232
204
|
},
|
|
233
205
|
queue: {
|
|
234
206
|
eyebrow: 'Offline-ready shell',
|
|
235
|
-
title: '
|
|
236
|
-
description: 'A simple local queue abstraction prepares the signed-in app for offline retry without losing field data.',
|
|
207
|
+
title: 'Create queue',
|
|
208
|
+
description: 'A simple local queue abstraction prepares the signed-in app for offline retry without losing direct-create field data.',
|
|
237
209
|
sections: [
|
|
238
210
|
{
|
|
239
211
|
title: 'Queue states',
|
|
@@ -242,7 +214,7 @@ export const nutritionCatalogScanContent = {
|
|
|
242
214
|
{
|
|
243
215
|
eyebrow: 'Pending',
|
|
244
216
|
title: 'Waiting for connection',
|
|
245
|
-
description: '
|
|
217
|
+
description: 'Create requests can be stored locally until the gateway is reachable again.',
|
|
246
218
|
},
|
|
247
219
|
{
|
|
248
220
|
eyebrow: 'Failed',
|
|
@@ -256,23 +228,23 @@ export const nutritionCatalogScanContent = {
|
|
|
256
228
|
signIn: {
|
|
257
229
|
eyebrow: 'Restricted access',
|
|
258
230
|
title: 'Sign in',
|
|
259
|
-
description: 'Friends sign in before entering the scanner
|
|
231
|
+
description: 'Friends sign in before entering the nutrition scanner app.',
|
|
260
232
|
sections: [
|
|
261
233
|
{
|
|
262
|
-
title: '
|
|
234
|
+
title: 'Scanner access',
|
|
263
235
|
description: 'This template uses global auth, so app entry is protected.',
|
|
264
236
|
cards: [
|
|
265
237
|
{
|
|
266
238
|
eyebrow: 'Auth provider',
|
|
267
239
|
title: 'Supabase Auth',
|
|
268
|
-
description: 'Email sign-in is the default identity flow for generated
|
|
240
|
+
description: 'Email sign-in is the default identity flow for generated nutrition scanner apps.',
|
|
269
241
|
},
|
|
270
242
|
],
|
|
271
243
|
},
|
|
272
244
|
],
|
|
273
245
|
},
|
|
274
246
|
signUp: {
|
|
275
|
-
eyebrow: 'Join
|
|
247
|
+
eyebrow: 'Join scanner app',
|
|
276
248
|
title: 'Create scanner account',
|
|
277
249
|
description: 'Create an account with display name and optional invite code before scanning.',
|
|
278
250
|
sections: [
|
|
@@ -283,16 +255,16 @@ export const nutritionCatalogScanContent = {
|
|
|
283
255
|
{
|
|
284
256
|
eyebrow: 'Required fields',
|
|
285
257
|
title: 'Email, password, display name',
|
|
286
|
-
description: 'The profile table stores display name and avatar for
|
|
258
|
+
description: 'The profile table stores display name and avatar for shared catalog attribution.',
|
|
287
259
|
},
|
|
288
260
|
],
|
|
289
261
|
},
|
|
290
262
|
],
|
|
291
263
|
},
|
|
292
264
|
settings: {
|
|
293
|
-
eyebrow: '
|
|
265
|
+
eyebrow: 'Nutrition app settings',
|
|
294
266
|
title: 'Settings',
|
|
295
|
-
description: 'Configuration for API Gateway base URL, locale, profile table, and
|
|
267
|
+
description: 'Configuration for API Gateway base URL, locale, profile table, and nutrition scanner auth.',
|
|
296
268
|
sections: [
|
|
297
269
|
{
|
|
298
270
|
title: 'Runtime configuration',
|
|
@@ -301,7 +273,7 @@ export const nutritionCatalogScanContent = {
|
|
|
301
273
|
{
|
|
302
274
|
eyebrow: 'Auth',
|
|
303
275
|
title: 'Global Supabase auth',
|
|
304
|
-
description: 'Friends sign in before entering the scanner
|
|
276
|
+
description: 'Friends sign in before entering the scanner app.',
|
|
305
277
|
},
|
|
306
278
|
],
|
|
307
279
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/content.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,OAAO,EAAE;QACP,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,41 +21,29 @@ export declare const nutritionCatalogScanData: {
|
|
|
21
21
|
type: "uuid";
|
|
22
22
|
required: true;
|
|
23
23
|
unique?: never;
|
|
24
|
-
defaultValue?: never;
|
|
25
24
|
} | {
|
|
26
25
|
name: string;
|
|
27
26
|
type: "text";
|
|
28
27
|
required: true;
|
|
29
28
|
unique: true;
|
|
30
|
-
defaultValue?: never;
|
|
31
|
-
} | {
|
|
32
|
-
name: string;
|
|
33
|
-
type: "text";
|
|
34
|
-
required: true;
|
|
35
|
-
unique?: never;
|
|
36
|
-
defaultValue?: never;
|
|
37
29
|
} | {
|
|
38
30
|
name: string;
|
|
39
31
|
type: "text";
|
|
40
32
|
required?: never;
|
|
41
33
|
unique?: never;
|
|
42
|
-
defaultValue?: never;
|
|
43
34
|
} | {
|
|
44
35
|
name: string;
|
|
45
36
|
type: "text";
|
|
46
37
|
required: true;
|
|
47
|
-
defaultValue: string;
|
|
48
38
|
unique?: never;
|
|
49
39
|
} | {
|
|
50
40
|
name: string;
|
|
51
41
|
type: "json";
|
|
52
42
|
required?: never;
|
|
53
43
|
unique?: never;
|
|
54
|
-
defaultValue?: never;
|
|
55
44
|
} | {
|
|
56
45
|
name: string;
|
|
57
|
-
type: "
|
|
58
|
-
defaultValue: number;
|
|
46
|
+
type: "uuid";
|
|
59
47
|
required?: never;
|
|
60
48
|
unique?: never;
|
|
61
49
|
} | {
|
|
@@ -63,7 +51,11 @@ export declare const nutritionCatalogScanData: {
|
|
|
63
51
|
type: "datetime";
|
|
64
52
|
required: true;
|
|
65
53
|
unique?: never;
|
|
66
|
-
|
|
54
|
+
} | {
|
|
55
|
+
name: string;
|
|
56
|
+
type: "datetime";
|
|
57
|
+
required?: never;
|
|
58
|
+
unique?: never;
|
|
67
59
|
})[];
|
|
68
60
|
};
|
|
69
61
|
};
|
|
@@ -85,66 +77,6 @@ export declare const nutritionCatalogScanData: {
|
|
|
85
77
|
auth: {
|
|
86
78
|
readonly required: true;
|
|
87
79
|
};
|
|
88
|
-
})[];
|
|
89
|
-
};
|
|
90
|
-
nutritionProductCaptures: {
|
|
91
|
-
id: string;
|
|
92
|
-
kind: "generated";
|
|
93
|
-
preset: "crud";
|
|
94
|
-
label: string;
|
|
95
|
-
description: string;
|
|
96
|
-
basePath: string;
|
|
97
|
-
auth: {
|
|
98
|
-
readonly required: true;
|
|
99
|
-
};
|
|
100
|
-
resource: {
|
|
101
|
-
kind: "collection";
|
|
102
|
-
collection: {
|
|
103
|
-
name: string;
|
|
104
|
-
schema: string;
|
|
105
|
-
primaryKey: string;
|
|
106
|
-
fields: ({
|
|
107
|
-
name: string;
|
|
108
|
-
type: "uuid";
|
|
109
|
-
required: true;
|
|
110
|
-
defaultValue?: never;
|
|
111
|
-
} | {
|
|
112
|
-
name: string;
|
|
113
|
-
type: "text";
|
|
114
|
-
required: true;
|
|
115
|
-
defaultValue?: never;
|
|
116
|
-
} | {
|
|
117
|
-
name: string;
|
|
118
|
-
type: "text";
|
|
119
|
-
required?: never;
|
|
120
|
-
defaultValue?: never;
|
|
121
|
-
} | {
|
|
122
|
-
name: string;
|
|
123
|
-
type: "text";
|
|
124
|
-
required: true;
|
|
125
|
-
defaultValue: string;
|
|
126
|
-
} | {
|
|
127
|
-
name: string;
|
|
128
|
-
type: "json";
|
|
129
|
-
required?: never;
|
|
130
|
-
defaultValue?: never;
|
|
131
|
-
} | {
|
|
132
|
-
name: string;
|
|
133
|
-
type: "datetime";
|
|
134
|
-
required: true;
|
|
135
|
-
defaultValue?: never;
|
|
136
|
-
})[];
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
endpoints: ({
|
|
140
|
-
id: string;
|
|
141
|
-
label: string;
|
|
142
|
-
method: "GET";
|
|
143
|
-
path: string;
|
|
144
|
-
intent: "list";
|
|
145
|
-
auth: {
|
|
146
|
-
readonly required: true;
|
|
147
|
-
};
|
|
148
80
|
} | {
|
|
149
81
|
id: string;
|
|
150
82
|
label: string;
|
|
@@ -154,136 +86,21 @@ export declare const nutritionCatalogScanData: {
|
|
|
154
86
|
auth: {
|
|
155
87
|
readonly required: true;
|
|
156
88
|
};
|
|
157
|
-
})[];
|
|
158
|
-
};
|
|
159
|
-
nutritionScanChallenges: {
|
|
160
|
-
id: string;
|
|
161
|
-
kind: "generated";
|
|
162
|
-
preset: "crud";
|
|
163
|
-
label: string;
|
|
164
|
-
description: string;
|
|
165
|
-
basePath: string;
|
|
166
|
-
auth: {
|
|
167
|
-
readonly required: true;
|
|
168
|
-
};
|
|
169
|
-
resource: {
|
|
170
|
-
kind: "collection";
|
|
171
|
-
collection: {
|
|
172
|
-
name: string;
|
|
173
|
-
schema: string;
|
|
174
|
-
primaryKey: string;
|
|
175
|
-
fields: ({
|
|
176
|
-
name: string;
|
|
177
|
-
type: "uuid";
|
|
178
|
-
required: true;
|
|
179
|
-
defaultValue?: never;
|
|
180
|
-
} | {
|
|
181
|
-
name: string;
|
|
182
|
-
type: "text";
|
|
183
|
-
required: true;
|
|
184
|
-
defaultValue?: never;
|
|
185
|
-
} | {
|
|
186
|
-
name: string;
|
|
187
|
-
type: "text";
|
|
188
|
-
required?: never;
|
|
189
|
-
defaultValue?: never;
|
|
190
|
-
} | {
|
|
191
|
-
name: string;
|
|
192
|
-
type: "datetime";
|
|
193
|
-
required: true;
|
|
194
|
-
defaultValue?: never;
|
|
195
|
-
} | {
|
|
196
|
-
name: string;
|
|
197
|
-
type: "boolean";
|
|
198
|
-
required: true;
|
|
199
|
-
defaultValue: true;
|
|
200
|
-
} | {
|
|
201
|
-
name: string;
|
|
202
|
-
type: "json";
|
|
203
|
-
required?: never;
|
|
204
|
-
defaultValue?: never;
|
|
205
|
-
})[];
|
|
206
|
-
};
|
|
207
|
-
};
|
|
208
|
-
endpoints: ({
|
|
209
|
-
id: string;
|
|
210
|
-
label: string;
|
|
211
|
-
method: "GET";
|
|
212
|
-
path: string;
|
|
213
|
-
intent: "list";
|
|
214
|
-
auth: {
|
|
215
|
-
readonly required: true;
|
|
216
|
-
};
|
|
217
89
|
} | {
|
|
218
90
|
id: string;
|
|
219
91
|
label: string;
|
|
220
|
-
method: "
|
|
221
|
-
path: string;
|
|
222
|
-
intent: "read";
|
|
223
|
-
auth: {
|
|
224
|
-
readonly required: true;
|
|
225
|
-
};
|
|
226
|
-
})[];
|
|
227
|
-
};
|
|
228
|
-
nutritionScanEvents: {
|
|
229
|
-
id: string;
|
|
230
|
-
kind: "generated";
|
|
231
|
-
preset: "crud";
|
|
232
|
-
label: string;
|
|
233
|
-
description: string;
|
|
234
|
-
basePath: string;
|
|
235
|
-
auth: {
|
|
236
|
-
readonly required: true;
|
|
237
|
-
};
|
|
238
|
-
resource: {
|
|
239
|
-
kind: "collection";
|
|
240
|
-
collection: {
|
|
241
|
-
name: string;
|
|
242
|
-
schema: string;
|
|
243
|
-
primaryKey: string;
|
|
244
|
-
fields: ({
|
|
245
|
-
name: string;
|
|
246
|
-
type: "uuid";
|
|
247
|
-
required: true;
|
|
248
|
-
defaultValue?: never;
|
|
249
|
-
} | {
|
|
250
|
-
name: string;
|
|
251
|
-
type: "text";
|
|
252
|
-
required: true;
|
|
253
|
-
defaultValue?: never;
|
|
254
|
-
} | {
|
|
255
|
-
name: string;
|
|
256
|
-
type: "uuid";
|
|
257
|
-
required?: never;
|
|
258
|
-
defaultValue?: never;
|
|
259
|
-
} | {
|
|
260
|
-
name: string;
|
|
261
|
-
type: "number";
|
|
262
|
-
required: true;
|
|
263
|
-
defaultValue: number;
|
|
264
|
-
} | {
|
|
265
|
-
name: string;
|
|
266
|
-
type: "datetime";
|
|
267
|
-
required: true;
|
|
268
|
-
defaultValue?: never;
|
|
269
|
-
})[];
|
|
270
|
-
};
|
|
271
|
-
};
|
|
272
|
-
endpoints: ({
|
|
273
|
-
id: string;
|
|
274
|
-
label: string;
|
|
275
|
-
method: "GET";
|
|
92
|
+
method: "PATCH";
|
|
276
93
|
path: string;
|
|
277
|
-
intent: "
|
|
94
|
+
intent: "update";
|
|
278
95
|
auth: {
|
|
279
96
|
readonly required: true;
|
|
280
97
|
};
|
|
281
98
|
} | {
|
|
282
99
|
id: string;
|
|
283
100
|
label: string;
|
|
284
|
-
method: "
|
|
101
|
+
method: "DELETE";
|
|
285
102
|
path: string;
|
|
286
|
-
intent: "
|
|
103
|
+
intent: "delete";
|
|
287
104
|
auth: {
|
|
288
105
|
readonly required: true;
|
|
289
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/data.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/data.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFN,CAAC"}
|
|
@@ -6,7 +6,7 @@ export const nutritionCatalogScanData = {
|
|
|
6
6
|
kind: 'generated',
|
|
7
7
|
preset: 'crud',
|
|
8
8
|
label: 'Nutrition products',
|
|
9
|
-
description: '
|
|
9
|
+
description: 'Nutrition product records available to the scanner app through the gateway.',
|
|
10
10
|
basePath: '/v1/nutrition/products',
|
|
11
11
|
auth: authRequired,
|
|
12
12
|
resource: {
|
|
@@ -18,14 +18,17 @@ export const nutritionCatalogScanData = {
|
|
|
18
18
|
fields: [
|
|
19
19
|
{ name: 'id', type: 'uuid', required: true },
|
|
20
20
|
{ name: 'barcode', type: 'text', required: true, unique: true },
|
|
21
|
+
{ name: 'normalizedBarcode', type: 'text', required: true, unique: true },
|
|
22
|
+
{ name: 'barcodeType', type: 'text' },
|
|
21
23
|
{ name: 'name', type: 'text', required: true },
|
|
22
24
|
{ name: 'brand', type: 'text' },
|
|
23
|
-
{ name: '
|
|
24
|
-
{ name: 'country', type: 'text', required: true, defaultValue: 'CH' },
|
|
25
|
+
{ name: 'packageLabel', type: 'text' },
|
|
25
26
|
{ name: 'nutritionFacts', type: 'json' },
|
|
26
|
-
{ name: '
|
|
27
|
+
{ name: 'imageRefs', type: 'json' },
|
|
28
|
+
{ name: 'createdByUserId', type: 'uuid' },
|
|
27
29
|
{ name: 'createdAt', type: 'datetime', required: true },
|
|
28
30
|
{ name: 'updatedAt', type: 'datetime', required: true },
|
|
31
|
+
{ name: 'deletedAt', type: 'datetime' },
|
|
29
32
|
],
|
|
30
33
|
},
|
|
31
34
|
},
|
|
@@ -54,154 +57,28 @@ export const nutritionCatalogScanData = {
|
|
|
54
57
|
intent: 'read',
|
|
55
58
|
auth: authRequired,
|
|
56
59
|
},
|
|
57
|
-
],
|
|
58
|
-
},
|
|
59
|
-
nutritionProductCaptures: {
|
|
60
|
-
id: 'nutritionProductCaptures',
|
|
61
|
-
kind: 'generated',
|
|
62
|
-
preset: 'crud',
|
|
63
|
-
label: 'Nutrition product captures',
|
|
64
|
-
description: 'Queued missing-product submissions created by signed-in scanners.',
|
|
65
|
-
basePath: '/v1/nutrition/products/captures',
|
|
66
|
-
auth: authRequired,
|
|
67
|
-
resource: {
|
|
68
|
-
kind: 'collection',
|
|
69
|
-
collection: {
|
|
70
|
-
name: 'nutrition_product_captures',
|
|
71
|
-
schema: 'public',
|
|
72
|
-
primaryKey: 'id',
|
|
73
|
-
fields: [
|
|
74
|
-
{ name: 'id', type: 'uuid', required: true },
|
|
75
|
-
{ name: 'userId', type: 'uuid', required: true },
|
|
76
|
-
{ name: 'barcode', type: 'text', required: true },
|
|
77
|
-
{ name: 'productName', type: 'text', required: true },
|
|
78
|
-
{ name: 'brand', type: 'text' },
|
|
79
|
-
{ name: 'quantity', type: 'text' },
|
|
80
|
-
{ name: 'storeChain', type: 'text' },
|
|
81
|
-
{ name: 'country', type: 'text', required: true, defaultValue: 'CH' },
|
|
82
|
-
{ name: 'status', type: 'text', required: true, defaultValue: 'queued' },
|
|
83
|
-
{ name: 'photoRefs', type: 'json' },
|
|
84
|
-
{ name: 'clientCapturedAt', type: 'datetime', required: true },
|
|
85
|
-
{ name: 'createdAt', type: 'datetime', required: true },
|
|
86
|
-
{ name: 'updatedAt', type: 'datetime', required: true },
|
|
87
|
-
],
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
endpoints: [
|
|
91
|
-
{
|
|
92
|
-
id: 'listNutritionProductCaptures',
|
|
93
|
-
label: 'List captures',
|
|
94
|
-
method: 'GET',
|
|
95
|
-
path: '/',
|
|
96
|
-
intent: 'list',
|
|
97
|
-
auth: authRequired,
|
|
98
|
-
},
|
|
99
60
|
{
|
|
100
|
-
id: '
|
|
101
|
-
label: 'Create
|
|
61
|
+
id: 'createNutritionProduct',
|
|
62
|
+
label: 'Create product',
|
|
102
63
|
method: 'POST',
|
|
103
64
|
path: '/',
|
|
104
65
|
intent: 'create',
|
|
105
66
|
auth: authRequired,
|
|
106
67
|
},
|
|
107
|
-
],
|
|
108
|
-
},
|
|
109
|
-
nutritionScanChallenges: {
|
|
110
|
-
id: 'nutritionScanChallenges',
|
|
111
|
-
kind: 'generated',
|
|
112
|
-
preset: 'crud',
|
|
113
|
-
label: 'Nutrition scan challenges',
|
|
114
|
-
description: 'Friends-only challenge windows, scoring rules, and leaderboard context.',
|
|
115
|
-
basePath: '/v1/nutrition/challenges',
|
|
116
|
-
auth: authRequired,
|
|
117
|
-
resource: {
|
|
118
|
-
kind: 'collection',
|
|
119
|
-
collection: {
|
|
120
|
-
name: 'nutrition_scan_challenges',
|
|
121
|
-
schema: 'public',
|
|
122
|
-
primaryKey: 'id',
|
|
123
|
-
fields: [
|
|
124
|
-
{ name: 'id', type: 'uuid', required: true },
|
|
125
|
-
{ name: 'title', type: 'text', required: true },
|
|
126
|
-
{ name: 'description', type: 'text' },
|
|
127
|
-
{ name: 'startsAt', type: 'datetime', required: true },
|
|
128
|
-
{ name: 'endsAt', type: 'datetime', required: true },
|
|
129
|
-
{ name: 'isActive', type: 'boolean', required: true, defaultValue: true },
|
|
130
|
-
{ name: 'scoringRules', type: 'json' },
|
|
131
|
-
{ name: 'createdAt', type: 'datetime', required: true },
|
|
132
|
-
],
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
endpoints: [
|
|
136
68
|
{
|
|
137
|
-
id: '
|
|
138
|
-
label: '
|
|
139
|
-
method: '
|
|
140
|
-
path: '
|
|
141
|
-
intent: '
|
|
142
|
-
auth: authRequired,
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
id: 'getCurrentNutritionScanChallenge',
|
|
146
|
-
label: 'Get current challenge',
|
|
147
|
-
method: 'GET',
|
|
148
|
-
path: '/current',
|
|
149
|
-
intent: 'read',
|
|
150
|
-
auth: authRequired,
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
id: 'getCurrentNutritionScanLeaderboard',
|
|
154
|
-
label: 'Get current leaderboard',
|
|
155
|
-
method: 'GET',
|
|
156
|
-
path: '/current/leaderboard',
|
|
157
|
-
intent: 'read',
|
|
158
|
-
auth: authRequired,
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
},
|
|
162
|
-
nutritionScanEvents: {
|
|
163
|
-
id: 'nutritionScanEvents',
|
|
164
|
-
kind: 'generated',
|
|
165
|
-
preset: 'crud',
|
|
166
|
-
label: 'Nutrition scan events',
|
|
167
|
-
description: 'Signed-in scanner actions used for points, duplicate rules, and rankings.',
|
|
168
|
-
basePath: '/v1/nutrition/scan-events',
|
|
169
|
-
auth: authRequired,
|
|
170
|
-
resource: {
|
|
171
|
-
kind: 'collection',
|
|
172
|
-
collection: {
|
|
173
|
-
name: 'nutrition_scan_events',
|
|
174
|
-
schema: 'public',
|
|
175
|
-
primaryKey: 'id',
|
|
176
|
-
fields: [
|
|
177
|
-
{ name: 'id', type: 'uuid', required: true },
|
|
178
|
-
{ name: 'challengeId', type: 'uuid', required: true },
|
|
179
|
-
{ name: 'userId', type: 'uuid', required: true },
|
|
180
|
-
{ name: 'barcode', type: 'text', required: true },
|
|
181
|
-
{ name: 'productId', type: 'uuid' },
|
|
182
|
-
{ name: 'captureId', type: 'uuid' },
|
|
183
|
-
{ name: 'eventType', type: 'text', required: true },
|
|
184
|
-
{ name: 'points', type: 'number', required: true, defaultValue: 0 },
|
|
185
|
-
{ name: 'clientCapturedAt', type: 'datetime', required: true },
|
|
186
|
-
{ name: 'createdAt', type: 'datetime', required: true },
|
|
187
|
-
],
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
endpoints: [
|
|
191
|
-
{
|
|
192
|
-
id: 'listNutritionScanEvents',
|
|
193
|
-
label: 'List scan events',
|
|
194
|
-
method: 'GET',
|
|
195
|
-
path: '/',
|
|
196
|
-
intent: 'list',
|
|
69
|
+
id: 'updateNutritionProduct',
|
|
70
|
+
label: 'Update product',
|
|
71
|
+
method: 'PATCH',
|
|
72
|
+
path: '/:id',
|
|
73
|
+
intent: 'update',
|
|
197
74
|
auth: authRequired,
|
|
198
75
|
},
|
|
199
76
|
{
|
|
200
|
-
id: '
|
|
201
|
-
label: '
|
|
202
|
-
method: '
|
|
203
|
-
path: '
|
|
204
|
-
intent: '
|
|
77
|
+
id: 'deleteNutritionProduct',
|
|
78
|
+
label: 'Delete product',
|
|
79
|
+
method: 'DELETE',
|
|
80
|
+
path: '/:id',
|
|
81
|
+
intent: 'delete',
|
|
205
82
|
auth: authRequired,
|
|
206
83
|
},
|
|
207
84
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/data.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAW,CAAC;AAEjD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE;QACJ,iBAAiB,EAAE;YACjB,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/data.ts"],"names":[],"mappings":"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"}
|
package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSources.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,wBAAgB,qCAAqC,IAAI,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"dataSources.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,wBAAgB,qCAAqC,IAAI,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CA+E/F"}
|
|
@@ -4,8 +4,8 @@ export function createNutritionCatalogScanDataSources() {
|
|
|
4
4
|
id: 'nutrition-api',
|
|
5
5
|
kind: 'rest',
|
|
6
6
|
name: 'Nutrition API',
|
|
7
|
-
description: 'Runtime data-source bindings for product browsing, lookup, and
|
|
8
|
-
baseUrl: '/v1/nutrition',
|
|
7
|
+
description: 'Runtime data-source bindings for nutrition product browsing, lookup, and CRUD.',
|
|
8
|
+
baseUrl: 'https://api.ankhorage.com/v1/nutrition',
|
|
9
9
|
endpoints: {
|
|
10
10
|
products: {
|
|
11
11
|
id: 'products',
|
|
@@ -20,7 +20,7 @@ export function createNutritionCatalogScanDataSources() {
|
|
|
20
20
|
protocol: 'http',
|
|
21
21
|
intent: 'read',
|
|
22
22
|
method: 'GET',
|
|
23
|
-
path: '/',
|
|
23
|
+
path: '/products',
|
|
24
24
|
},
|
|
25
25
|
'products.read': {
|
|
26
26
|
id: 'products.read',
|
|
@@ -30,7 +30,7 @@ export function createNutritionCatalogScanDataSources() {
|
|
|
30
30
|
protocol: 'http',
|
|
31
31
|
intent: 'read',
|
|
32
32
|
method: 'GET',
|
|
33
|
-
path: '/:id',
|
|
33
|
+
path: '/products/:id',
|
|
34
34
|
},
|
|
35
35
|
'products.lookupByBarcode': {
|
|
36
36
|
id: 'products.lookupByBarcode',
|
|
@@ -40,17 +40,37 @@ export function createNutritionCatalogScanDataSources() {
|
|
|
40
40
|
protocol: 'http',
|
|
41
41
|
intent: 'read',
|
|
42
42
|
method: 'GET',
|
|
43
|
-
path: '/by-barcode/:barcode',
|
|
43
|
+
path: '/products/by-barcode/:barcode',
|
|
44
44
|
},
|
|
45
45
|
'products.create': {
|
|
46
46
|
id: 'products.create',
|
|
47
47
|
endpointId: 'products',
|
|
48
|
-
name: 'Create product
|
|
49
|
-
description: 'Creates a
|
|
48
|
+
name: 'Create nutrition product',
|
|
49
|
+
description: 'Creates a product directly from the create screen.',
|
|
50
50
|
protocol: 'http',
|
|
51
51
|
intent: 'create',
|
|
52
52
|
method: 'POST',
|
|
53
|
-
path: '/
|
|
53
|
+
path: '/products',
|
|
54
|
+
},
|
|
55
|
+
'products.update': {
|
|
56
|
+
id: 'products.update',
|
|
57
|
+
endpointId: 'products',
|
|
58
|
+
name: 'Update nutrition product',
|
|
59
|
+
description: 'Updates an existing product by ID.',
|
|
60
|
+
protocol: 'http',
|
|
61
|
+
intent: 'update',
|
|
62
|
+
method: 'PATCH',
|
|
63
|
+
path: '/products/:id',
|
|
64
|
+
},
|
|
65
|
+
'products.delete': {
|
|
66
|
+
id: 'products.delete',
|
|
67
|
+
endpointId: 'products',
|
|
68
|
+
name: 'Delete nutrition product',
|
|
69
|
+
description: 'Soft deletes a product by ID.',
|
|
70
|
+
protocol: 'http',
|
|
71
|
+
intent: 'delete',
|
|
72
|
+
method: 'DELETE',
|
|
73
|
+
path: '/products/:id',
|
|
54
74
|
},
|
|
55
75
|
},
|
|
56
76
|
},
|
package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSources.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qCAAqC;IACnD,OAAO;QACL,eAAe,EAAE;YACf,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"dataSources.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qCAAqC;IACnD,OAAO;QACL,eAAe,EAAE;YACf,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,gFAAgF;YAC7F,OAAO,EAAE,wCAAwC;YACjD,SAAS,EAAE;gBACT,QAAQ,EAAE;oBACR,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE;wBACV,eAAe,EAAE;4BACf,EAAE,EAAE,eAAe;4BACnB,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,+CAA+C;4BAC5D,QAAQ,EAAE,MAAM;4BAChB,MAAM,EAAE,MAAM;4BACd,MAAM,EAAE,KAAK;4BACb,IAAI,EAAE,WAAW;yBAClB;wBACD,eAAe,EAAE;4BACf,EAAE,EAAE,eAAe;4BACnB,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,qBAAqB;4BAC3B,WAAW,EAAE,4CAA4C;4BACzD,QAAQ,EAAE,MAAM;4BAChB,MAAM,EAAE,MAAM;4BACd,MAAM,EAAE,KAAK;4BACb,IAAI,EAAE,eAAe;yBACtB;wBACD,0BAA0B,EAAE;4BAC1B,EAAE,EAAE,0BAA0B;4BAC9B,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,2BAA2B;4BACjC,WAAW,EAAE,wCAAwC;4BACrD,QAAQ,EAAE,MAAM;4BAChB,MAAM,EAAE,MAAM;4BACd,MAAM,EAAE,KAAK;4BACb,IAAI,EAAE,+BAA+B;yBACtC;wBACD,iBAAiB,EAAE;4BACjB,EAAE,EAAE,iBAAiB;4BACrB,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,0BAA0B;4BAChC,WAAW,EAAE,oDAAoD;4BACjE,QAAQ,EAAE,MAAM;4BAChB,MAAM,EAAE,QAAQ;4BAChB,MAAM,EAAE,MAAM;4BACd,IAAI,EAAE,WAAW;yBAClB;wBACD,iBAAiB,EAAE;4BACjB,EAAE,EAAE,iBAAiB;4BACrB,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,0BAA0B;4BAChC,WAAW,EAAE,oCAAoC;4BACjD,QAAQ,EAAE,MAAM;4BAChB,MAAM,EAAE,QAAQ;4BAChB,MAAM,EAAE,OAAO;4BACf,IAAI,EAAE,eAAe;yBACtB;wBACD,iBAAiB,EAAE;4BACjB,EAAE,EAAE,iBAAiB;4BACrB,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,0BAA0B;4BAChC,WAAW,EAAE,+BAA+B;4BAC5C,QAAQ,EAAE,MAAM;4BAChB,MAAM,EAAE,QAAQ;4BAChB,MAAM,EAAE,QAAQ;4BAChB,IAAI,EAAE,eAAe;yBACtB;qBACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,MAAM,GACf,6BAA6B,CAc/B;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,6BAA6B,GACvC,WAAW,CAAC,WAAW,CAAC,CA2C1B"}
|
|
@@ -7,7 +7,6 @@ export function createNutritionCatalogScanScreenIds(idPrefix) {
|
|
|
7
7
|
capture: `${idPrefix}-capture`,
|
|
8
8
|
success: `${idPrefix}-success`,
|
|
9
9
|
queue: `${idPrefix}-queue`,
|
|
10
|
-
challenge: `${idPrefix}-challenge`,
|
|
11
10
|
leaderboard: `${idPrefix}-leaderboard`,
|
|
12
11
|
profile: `${idPrefix}-profile`,
|
|
13
12
|
signIn: `${idPrefix}-sign-in`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,MAAM,UAAU,mCAAmC,CACjD,QAAgB;IAEhB,OAAO;QACL,OAAO,EAAE,GAAG,QAAQ,UAAU;QAC9B,MAAM,EAAE,GAAG,QAAQ,SAAS;QAC5B,IAAI,EAAE,GAAG,QAAQ,OAAO;QACxB,OAAO,EAAE,GAAG,QAAQ,UAAU;QAC9B,OAAO,EAAE,GAAG,QAAQ,UAAU;QAC9B,KAAK,EAAE,GAAG,QAAQ,QAAQ;QAC1B,WAAW,EAAE,GAAG,QAAQ,cAAc;QACtC,OAAO,EAAE,GAAG,QAAQ,UAAU;QAC9B,MAAM,EAAE,GAAG,QAAQ,UAAU;QAC7B,MAAM,EAAE,GAAG,QAAQ,UAAU;QAC7B,QAAQ,EAAE,GAAG,QAAQ,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,SAAwC;IAExC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,gBAAgB,EAAE,OAAO;QACzB,MAAM,EAAE;YACN,WAAW,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,SAAS,CAAC,OAAO;gBAC3B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,wBAAwB,EAAE;aACzE,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,SAAS,CAAC,IAAI;gBACxB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE;aAC/D,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,SAAS,CAAC,WAAW;gBAC/B,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE;aAC5D,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,SAAS,CAAC,OAAO;gBAC3B,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,wBAAwB,EAAE;aACzE,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,SAAS,CAAC,MAAM;gBAC1B,KAAK,EAAE,gBAAgB;gBACvB,YAAY,EAAE,IAAI;aACnB,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,SAAS,CAAC,OAAO;gBAC3B,KAAK,EAAE,gBAAgB;gBACvB,YAAY,EAAE,IAAI;aACnB,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
|
package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AA+L9D,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,6BAA6B,GACvC,WAAW,CAAC,SAAS,CAAC,CA4GxB"}
|
|
@@ -33,7 +33,7 @@ function createProductsBody(idPrefix) {
|
|
|
33
33
|
return [
|
|
34
34
|
createZoraNode(`${idPrefix}-products-search-field`, 'FormField', {
|
|
35
35
|
label: 'Search products',
|
|
36
|
-
description: 'Search by product name, brand, barcode, or
|
|
36
|
+
description: 'Search by product name, brand, barcode, or package label.',
|
|
37
37
|
}),
|
|
38
38
|
createZoraNode(`${idPrefix}-products-search-input`, 'Input', {
|
|
39
39
|
placeholder: 'Search Migros, Coop, barcode...',
|
|
@@ -42,7 +42,7 @@ function createProductsBody(idPrefix) {
|
|
|
42
42
|
}),
|
|
43
43
|
createSection(`${idPrefix}-products-grid-section`, {
|
|
44
44
|
title: 'Products',
|
|
45
|
-
description: 'Available products in the shared
|
|
45
|
+
description: 'Available products in the shared nutrition catalog.',
|
|
46
46
|
}, [
|
|
47
47
|
{
|
|
48
48
|
id: `${idPrefix}-products-grid`,
|
|
@@ -80,8 +80,8 @@ function createScanBody(idPrefix) {
|
|
|
80
80
|
}
|
|
81
81
|
function createCaptureFormPreview(idPrefix) {
|
|
82
82
|
return createZoraNode(`${idPrefix}-capture-form-panel`, 'Panel', {
|
|
83
|
-
title: '
|
|
84
|
-
description: '
|
|
83
|
+
title: 'Direct product create form',
|
|
84
|
+
description: 'Create a product directly when barcode lookup does not find a match.',
|
|
85
85
|
tone: 'subtle',
|
|
86
86
|
}, [
|
|
87
87
|
createZoraNode(`${idPrefix}-capture-barcode-field`, 'FormField', {
|
|
@@ -103,8 +103,24 @@ function createCaptureFormPreview(idPrefix) {
|
|
|
103
103
|
placeholder: 'Product name',
|
|
104
104
|
size: 'm',
|
|
105
105
|
}),
|
|
106
|
+
createZoraNode(`${idPrefix}-capture-brand-field`, 'FormField', {
|
|
107
|
+
label: 'Brand',
|
|
108
|
+
description: 'Optional product brand.',
|
|
109
|
+
}),
|
|
110
|
+
createZoraNode(`${idPrefix}-capture-brand-input`, 'Input', {
|
|
111
|
+
placeholder: 'Brand',
|
|
112
|
+
size: 'm',
|
|
113
|
+
}),
|
|
114
|
+
createZoraNode(`${idPrefix}-capture-package-label-field`, 'FormField', {
|
|
115
|
+
label: 'Package label',
|
|
116
|
+
description: 'Optional package text such as 500ml or 6 x 33cl.',
|
|
117
|
+
}),
|
|
118
|
+
createZoraNode(`${idPrefix}-capture-package-label-input`, 'Input', {
|
|
119
|
+
placeholder: '500ml',
|
|
120
|
+
size: 'm',
|
|
121
|
+
}),
|
|
106
122
|
createZoraNode(`${idPrefix}-capture-submit-button`, 'Button', {
|
|
107
|
-
children: '
|
|
123
|
+
children: 'Create product',
|
|
108
124
|
color: 'primary',
|
|
109
125
|
size: 'm',
|
|
110
126
|
fullWidth: true,
|
|
@@ -143,12 +159,6 @@ export function createNutritionCatalogScanScreens(seed, idPrefix, screenIds) {
|
|
|
143
159
|
name: 'Profile',
|
|
144
160
|
content: nutritionCatalogScanContent.profile,
|
|
145
161
|
}),
|
|
146
|
-
[screenIds.challenge]: createContentScreen({
|
|
147
|
-
idPrefix,
|
|
148
|
-
screenId: screenIds.challenge,
|
|
149
|
-
name: 'Challenge',
|
|
150
|
-
content: nutritionCatalogScanContent.challenge,
|
|
151
|
-
}),
|
|
152
162
|
[screenIds.detail]: createContentScreen({
|
|
153
163
|
idPrefix,
|
|
154
164
|
screenId: screenIds.detail,
|
|
@@ -197,23 +207,23 @@ export function createNutritionCatalogScanScreens(seed, idPrefix, screenIds) {
|
|
|
197
207
|
title: nutritionCatalogScanContent.settings.title,
|
|
198
208
|
description: nutritionCatalogScanContent.settings.description,
|
|
199
209
|
}),
|
|
200
|
-
createSettingsSection(`${idPrefix}-settings-api`, 'API Gateway', 'Runtime product
|
|
210
|
+
createSettingsSection(`${idPrefix}-settings-api`, 'API Gateway', 'Runtime nutrition product lookup and CRUD should go through the API Gateway.', [
|
|
201
211
|
{
|
|
202
212
|
id: 'base-url-row',
|
|
203
213
|
title: 'API base URL',
|
|
204
|
-
description: 'Defaults to https://api
|
|
214
|
+
description: 'Defaults to https://api.ankhorage.com/v1/nutrition.',
|
|
205
215
|
meta: 'runtime',
|
|
206
216
|
},
|
|
207
217
|
{
|
|
208
|
-
id: '
|
|
209
|
-
title: '
|
|
210
|
-
description: 'POST /v1/nutrition/
|
|
218
|
+
id: 'product-create-row',
|
|
219
|
+
title: 'Product create endpoint',
|
|
220
|
+
description: 'POST /v1/nutrition/products creates a product directly from the app.',
|
|
211
221
|
meta: 'auth',
|
|
212
222
|
},
|
|
213
223
|
{
|
|
214
224
|
id: 'client-row',
|
|
215
225
|
title: 'Client defaults',
|
|
216
|
-
description: `${seed.appName}
|
|
226
|
+
description: `${seed.appName} uses de-CH locale and normalizes barcode input before gateway lookup.`,
|
|
217
227
|
meta: 'de-CH',
|
|
218
228
|
},
|
|
219
229
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAsBxD,SAAS,mBAAmB,CAAC,IAO5B;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9F,OAAO,YAAY,CAAC;QAClB,EAAE,EAAE,IAAI,CAAC,QAAQ;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QACzB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;QACrC,IAAI,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAChF,cAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,SAAS,EAAE,eAAe,EAAE;gBACtE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;aACtC,CAAC;YACF,GAAG,IAAI;SACR,CAAC;QACF,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAgB,EAChB,SAAiB,EACjB,QAAmC;IAEnC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAC5C,aAAa,CACX,GAAG,QAAQ,IAAI,SAAS,YAAY,YAAY,GAAG,CAAC,EAAE,EACtD,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,EAC1D;QACE,cAAc,CACZ,GAAG,QAAQ,IAAI,SAAS,UAAU,YAAY,GAAG,CAAC,EAAE,EACpD,OAAO,EACP,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC1E,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CACpC,cAAc,CACZ,GAAG,QAAQ,IAAI,SAAS,SAAS,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,EACpE,MAAM,EACN;YACE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,SAAS;SAChB,CACF,CACF,CACF;KACF,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO;QACL,cAAc,CAAC,GAAG,QAAQ,wBAAwB,EAAE,WAAW,EAAE;YAC/D,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED