@ankhorage/templates 1.8.2 → 1.8.4

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 (32) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +8 -7
  3. package/dist/templates/shared/route.d.ts +5 -3
  4. package/dist/templates/shared/route.d.ts.map +1 -1
  5. package/dist/templates/shared/route.js +4 -2
  6. package/dist/templates/shared/route.js.map +1 -1
  7. package/dist/templates/starter/categories/food-drink/index.js +1 -1
  8. package/dist/templates/starter/categories/food-drink/index.js.map +1 -1
  9. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.d.ts.map +1 -1
  10. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.js +180 -100
  11. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.js.map +1 -1
  12. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.d.ts +2 -44
  13. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.d.ts.map +1 -1
  14. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.js +64 -138
  15. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/content.js.map +1 -1
  16. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.d.ts +10 -193
  17. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.d.ts.map +1 -1
  18. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.js +19 -142
  19. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/data.js.map +1 -1
  20. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.d.ts.map +1 -1
  21. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.js +52 -15
  22. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.js.map +1 -1
  23. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.d.ts +2 -5
  24. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.d.ts.map +1 -1
  25. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.js +29 -21
  26. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/routes.js.map +1 -1
  27. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.d.ts.map +1 -1
  28. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.js +141 -46
  29. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.js.map +1 -1
  30. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/template.js +2 -2
  31. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/template.js.map +1 -1
  32. package/package.json +1 -1
@@ -1,43 +1,43 @@
1
1
  export const nutritionCatalogScanContent = {
2
2
  catalog: {
3
- eyebrow: 'Friends-only scanner challenge',
4
- title: 'Challenge products',
5
- description: 'Signed-in scanners browse the shared Swiss product catalog, scan new products, and collect points for the active challenge.',
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 nutrition API.',
6
6
  sections: [
7
7
  {
8
- title: 'Restricted catalog',
9
- description: 'The whole app is protected by global auth. Product browsing happens after sign-in inside the challenge app.',
8
+ title: 'Product catalog',
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, quantity, barcode, and confidence metadata.',
14
+ description: 'Example product card with brand, package label, barcode, and nutritionFacts metadata.',
15
15
  },
16
16
  {
17
17
  eyebrow: 'Known product',
18
18
  title: 'Haferdrink Barista 1 l',
19
- description: 'Products are read through the API Gateway, not directly from Supabase.',
19
+ description: 'Products are read through the nutrition API, not directly from Supabase.',
20
20
  },
21
21
  {
22
- eyebrow: 'Contribution target',
22
+ eyebrow: 'Catalog growth',
23
23
  title: 'Missing supermarket products',
24
- description: 'Scanners earn more points when a missing barcode becomes a queued capture submission.',
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: 'Challenge loop',
30
- description: 'Friends sign in, scan products, submit missing products, and climb the leaderboard.',
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, then record a scan event for the signed-in user.',
35
+ description: 'Open the scanner, normalize barcode digits, and look up the product through the nutrition API.',
36
36
  },
37
37
  {
38
- eyebrow: 'Ranking',
39
- title: 'Points and leaderboard',
40
- description: 'Known product scans, missing product captures, and accepted captures can use different point values.',
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 any intermediate queue.',
41
41
  },
42
42
  ],
43
43
  },
@@ -46,21 +46,21 @@ export const nutritionCatalogScanContent = {
46
46
  detail: {
47
47
  eyebrow: 'Published product',
48
48
  title: 'Product detail',
49
- description: 'Show barcode, brand, quantity, confidence, store observations, and nutrition facts from the API Gateway.',
49
+ description: 'Show barcode, brand, packageLabel, imageRefs, and nutritionFacts from the nutrition API.',
50
50
  sections: [
51
51
  {
52
52
  title: 'Product summary',
53
- description: 'A product detail screen for data returned by the API Gateway.',
53
+ description: 'A product detail screen for the current NutritionProduct DTO.',
54
54
  cards: [
55
55
  {
56
56
  eyebrow: 'Primary barcode',
57
- title: '7612345678901 · EAN-13',
57
+ title: '7612345678901 · ean_13',
58
58
  description: 'Barcode values are normalized by removing non-digits before lookup.',
59
59
  },
60
60
  {
61
- eyebrow: 'Challenge value',
62
- title: 'Known scan: 1 point',
63
- description: 'The backend should avoid duplicate point farming with per-user barcode limits.',
61
+ eyebrow: 'Stable DTO',
62
+ title: 'Product-centric response shape',
63
+ description: 'The detail payload exposes packageLabel, nutritionFacts, imageRefs, createdAt, updatedAt, and optional soft-delete metadata.',
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 create signed-in scan events.',
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',
@@ -83,102 +83,74 @@ export const nutritionCatalogScanContent = {
83
83
  {
84
84
  eyebrow: 'Fallback',
85
85
  title: 'Manual barcode entry',
86
- description: 'Useful on web, simulator, denied camera permission, or damaged retail labels.',
86
+ description: 'Manual entry should use the same lookup path as the scanner on web, simulator, denied camera permission, or damaged retail labels.',
87
87
  },
88
88
  ],
89
89
  },
90
90
  {
91
91
  title: 'Lookup branch',
92
- description: 'After scanning, call GET /v1/nutrition/products/by-barcode/{barcode}.',
92
+ description: 'After scanning, call GET /products/by-barcode/:barcode.',
93
93
  cards: [
94
94
  {
95
95
  eyebrow: 'Found',
96
- title: 'Record known scan',
97
- description: 'A known barcode creates a scan event and can open the product detail screen.',
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 capture',
102
- description: 'A missing barcode opens the capture form and can earn more challenge points.',
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
- capture: {
109
- eyebrow: 'Challenge contribution',
110
- title: 'Capture missing product',
111
- description: 'Collect the minimal data needed to create a queued capture submission for the signed-in scanner.',
108
+ create: {
109
+ eyebrow: 'Direct create flow',
110
+ title: 'Create product',
111
+ description: 'Collect the minimal data needed to create a nutrition product directly through the nutrition API.',
112
112
  sections: [
113
113
  {
114
114
  title: 'Required fields',
115
- description: 'Keep in-store entry fast and reward useful missing-product captures.',
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: 'Name, brand, quantity',
119
+ title: 'barcode, name, brand',
120
120
  description: 'The barcode is prefilled from the scanner or manual input.',
121
121
  },
122
122
  {
123
- eyebrow: 'Store observation',
124
- title: 'Store chain and location label',
125
- description: 'Country defaults to CH with de-CH client locale for the Swiss MVP.',
123
+ eyebrow: 'Packaging',
124
+ title: 'packageLabel',
125
+ description: 'Store package text such as 500ml, 1L, or 6 x 33cl.',
126
126
  },
127
127
  {
128
- eyebrow: 'Photos placeholder',
129
- title: 'Front, nutrition, ingredients, barcode',
130
- description: 'Real image upload can be added after the first challenge flow works.',
128
+ eyebrow: 'Structured data',
129
+ title: 'nutritionFacts and imageRefs',
130
+ description: 'Use the current DTO fields directly so create requests can match the live product contract.',
131
131
  },
132
132
  ],
133
133
  },
134
134
  ],
135
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.',
136
+ stats: {
137
+ eyebrow: 'Catalog progress',
138
+ title: 'Stats',
139
+ description: 'Use this screen for catalog growth, scan throughput, and contributor-facing nutrition app metrics.',
140
140
  sections: [
141
141
  {
142
- title: 'Scoring rules',
143
- description: 'Point rules should reward useful scans and discourage duplicate barcode farming.',
142
+ title: 'Suggested metrics',
143
+ description: 'This starter keeps metrics focused on the product catalog and scanner flow.',
144
144
  cards: [
145
145
  {
146
- eyebrow: 'Known scan',
147
- title: '1 point',
148
- description: 'Awarded for a valid known product scan within the duplicate limits.',
146
+ eyebrow: 'Catalog',
147
+ title: 'Products added',
148
+ description: 'Track how many products were created or enriched through the app.',
149
149
  },
150
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.',
159
- },
160
- ],
161
- },
162
- ],
163
- },
164
- leaderboard: {
165
- eyebrow: 'Friends ranking',
166
- title: 'Leaderboard',
167
- description: 'Rank signed-in scanners by challenge points, then scan count as a tie breaker.',
168
- sections: [
169
- {
170
- title: 'Top scanners',
171
- description: 'The API Gateway should expose leaderboard rows for the active challenge.',
172
- cards: [
173
- {
174
- eyebrow: '#1',
175
- title: 'Scanner with most points',
176
- description: 'Show display name, points, scan count, accepted captures, and current rank.',
177
- },
178
- {
179
- eyebrow: 'Anti-spam',
180
- title: 'Backend ranking rules',
181
- description: 'Duplicate and rejected captures should not increase score.',
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
  },
@@ -187,7 +159,7 @@ export const nutritionCatalogScanContent = {
187
159
  profile: {
188
160
  eyebrow: 'Scanner profile',
189
161
  title: 'Profile',
190
- description: 'Show signed-in scanner profile, stats, invite status, and sign-out action.',
162
+ description: 'Show signed-in scanner profile, catalog stats, invite status, and sign-out action.',
191
163
  sections: [
192
164
  {
193
165
  title: 'Profile data',
@@ -200,54 +172,8 @@ export const nutritionCatalogScanContent = {
200
172
  },
201
173
  {
202
174
  eyebrow: 'Stats',
203
- title: 'Scans, captures, points',
204
- description: 'Aggregate challenge stats from scan events and capture submissions.',
205
- },
206
- ],
207
- },
208
- ],
209
- },
210
- success: {
211
- eyebrow: 'Submission queued',
212
- title: 'Thanks — product queued',
213
- description: 'The API returns a submission id and queued status. Points can be updated immediately or after review.',
214
- sections: [
215
- {
216
- title: 'Next actions',
217
- description: 'Keep contributors in the scan loop.',
218
- cards: [
219
- {
220
- eyebrow: 'Continue',
221
- title: 'Scan another product',
222
- description: 'Return to the scan screen for fast in-store collection.',
223
- },
224
- {
225
- eyebrow: 'Ranking',
226
- title: 'Open leaderboard',
227
- description: 'Show the scanner how the capture affected their challenge ranking.',
228
- },
229
- ],
230
- },
231
- ],
232
- },
233
- queue: {
234
- eyebrow: 'Offline-ready shell',
235
- title: 'Capture queue',
236
- description: 'A simple local queue abstraction prepares the signed-in app for offline retry without losing field data.',
237
- sections: [
238
- {
239
- title: 'Queue states',
240
- description: 'Use ZORA cards and notices for pending, failed, and submitted items.',
241
- cards: [
242
- {
243
- eyebrow: 'Pending',
244
- title: 'Waiting for connection',
245
- description: 'Submissions can be stored locally with user id and clientCapturedAt.',
246
- },
247
- {
248
- eyebrow: 'Failed',
249
- title: 'Retry required',
250
- description: 'Keep failures visible instead of silently dropping scanner data.',
175
+ title: 'Catalog activity',
176
+ description: 'Aggregate product contributions and lookup activity from app-facing analytics.',
251
177
  },
252
178
  ],
253
179
  },
@@ -256,25 +182,25 @@ export const nutritionCatalogScanContent = {
256
182
  signIn: {
257
183
  eyebrow: 'Restricted access',
258
184
  title: 'Sign in',
259
- description: 'Friends sign in before entering the scanner challenge app.',
185
+ description: 'Friends sign in before entering the nutrition scanner app.',
260
186
  sections: [
261
187
  {
262
- title: 'Challenge access',
188
+ title: 'Scanner access',
263
189
  description: 'This template uses global auth, so app entry is protected.',
264
190
  cards: [
265
191
  {
266
192
  eyebrow: 'Auth provider',
267
193
  title: 'Supabase Auth',
268
- description: 'Email sign-in is the default identity flow for generated challenge apps.',
194
+ description: 'Email sign-in is the default identity flow for generated nutrition scanner apps.',
269
195
  },
270
196
  ],
271
197
  },
272
198
  ],
273
199
  },
274
200
  signUp: {
275
- eyebrow: 'Join challenge',
201
+ eyebrow: 'Join scanner app',
276
202
  title: 'Create scanner account',
277
- description: 'Create an account with display name and optional invite code before scanning.',
203
+ description: 'Create an account with display name before scanning.',
278
204
  sections: [
279
205
  {
280
206
  title: 'Profile creation',
@@ -283,16 +209,16 @@ export const nutritionCatalogScanContent = {
283
209
  {
284
210
  eyebrow: 'Required fields',
285
211
  title: 'Email, password, display name',
286
- description: 'The profile table stores display name and avatar for leaderboard rows.',
212
+ description: 'The profile table stores display name and avatar for shared catalog attribution.',
287
213
  },
288
214
  ],
289
215
  },
290
216
  ],
291
217
  },
292
218
  settings: {
293
- eyebrow: 'Challenge app settings',
219
+ eyebrow: 'Nutrition app settings',
294
220
  title: 'Settings',
295
- description: 'Configuration for API Gateway base URL, locale, profile table, and challenge auth.',
221
+ description: 'Configuration for nutrition API base URL, locale, profile table, and nutrition scanner auth.',
296
222
  sections: [
297
223
  {
298
224
  title: 'Runtime configuration',
@@ -301,7 +227,7 @@ export const nutritionCatalogScanContent = {
301
227
  {
302
228
  eyebrow: 'Auth',
303
229
  title: 'Global Supabase auth',
304
- description: 'Friends sign in before entering the scanner challenge app.',
230
+ description: 'Friends sign in before entering the scanner app.',
305
231
  },
306
232
  ],
307
233
  },
@@ -1 +1 @@
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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"}
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: "number";
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
- defaultValue?: never;
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: "GET";
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: "list";
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: "POST";
101
+ method: "DELETE";
285
102
  path: string;
286
- intent: "create";
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNN,CAAC"}
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"}