@ankhorage/templates 1.4.0 → 1.6.0

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 (25) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +7 -8
  3. package/dist/templates/shared/route.d.ts +1 -0
  4. package/dist/templates/shared/route.d.ts.map +1 -1
  5. package/dist/templates/shared/route.js +1 -0
  6. package/dist/templates/shared/route.js.map +1 -1
  7. package/dist/templates/starter/categories/food-drink/content.nutrition-catalog-scan.d.ts +79 -0
  8. package/dist/templates/starter/categories/food-drink/content.nutrition-catalog-scan.d.ts.map +1 -1
  9. package/dist/templates/starter/categories/food-drink/content.nutrition-catalog-scan.js +172 -49
  10. package/dist/templates/starter/categories/food-drink/content.nutrition-catalog-scan.js.map +1 -1
  11. package/dist/templates/starter/categories/food-drink/data.nutrition-catalog-scan.d.ts +294 -0
  12. package/dist/templates/starter/categories/food-drink/data.nutrition-catalog-scan.d.ts.map +1 -0
  13. package/dist/templates/starter/categories/food-drink/data.nutrition-catalog-scan.js +211 -0
  14. package/dist/templates/starter/categories/food-drink/data.nutrition-catalog-scan.js.map +1 -0
  15. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan.template.d.ts.map +1 -1
  16. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan.template.js +48 -1
  17. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan.template.js.map +1 -1
  18. package/dist/templates/starter/categories/food-drink/routes.nutrition-catalog-scan.d.ts +5 -0
  19. package/dist/templates/starter/categories/food-drink/routes.nutrition-catalog-scan.d.ts.map +1 -1
  20. package/dist/templates/starter/categories/food-drink/routes.nutrition-catalog-scan.js +27 -1
  21. package/dist/templates/starter/categories/food-drink/routes.nutrition-catalog-scan.js.map +1 -1
  22. package/dist/templates/starter/categories/food-drink/screens.nutrition-catalog-scan.d.ts.map +1 -1
  23. package/dist/templates/starter/categories/food-drink/screens.nutrition-catalog-scan.js +65 -15
  24. package/dist/templates/starter/categories/food-drink/screens.nutrition-catalog-scan.js.map +1 -1
  25. package/package.json +2 -2
@@ -0,0 +1,294 @@
1
+ export declare const nutritionCatalogScanData: {
2
+ apis: {
3
+ nutritionProducts: {
4
+ id: string;
5
+ kind: "generated";
6
+ preset: "crud";
7
+ label: string;
8
+ description: string;
9
+ basePath: string;
10
+ auth: {
11
+ readonly required: true;
12
+ };
13
+ resource: {
14
+ kind: "collection";
15
+ collection: {
16
+ name: string;
17
+ schema: string;
18
+ primaryKey: string;
19
+ fields: ({
20
+ name: string;
21
+ type: "uuid";
22
+ required: true;
23
+ unique?: never;
24
+ defaultValue?: never;
25
+ } | {
26
+ name: string;
27
+ type: "text";
28
+ required: true;
29
+ unique: true;
30
+ defaultValue?: never;
31
+ } | {
32
+ name: string;
33
+ type: "text";
34
+ required: true;
35
+ unique?: never;
36
+ defaultValue?: never;
37
+ } | {
38
+ name: string;
39
+ type: "text";
40
+ required?: never;
41
+ unique?: never;
42
+ defaultValue?: never;
43
+ } | {
44
+ name: string;
45
+ type: "text";
46
+ required: true;
47
+ defaultValue: string;
48
+ unique?: never;
49
+ } | {
50
+ name: string;
51
+ type: "json";
52
+ required?: never;
53
+ unique?: never;
54
+ defaultValue?: never;
55
+ } | {
56
+ name: string;
57
+ type: "number";
58
+ defaultValue: number;
59
+ required?: never;
60
+ unique?: never;
61
+ } | {
62
+ name: string;
63
+ type: "datetime";
64
+ required: true;
65
+ unique?: never;
66
+ defaultValue?: never;
67
+ })[];
68
+ };
69
+ };
70
+ endpoints: ({
71
+ id: string;
72
+ label: string;
73
+ method: "GET";
74
+ path: string;
75
+ intent: "list";
76
+ auth: {
77
+ readonly required: true;
78
+ };
79
+ } | {
80
+ id: string;
81
+ label: string;
82
+ method: "GET";
83
+ path: string;
84
+ intent: "read";
85
+ auth: {
86
+ readonly required: true;
87
+ };
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
+ } | {
149
+ id: string;
150
+ label: string;
151
+ method: "POST";
152
+ path: string;
153
+ intent: "create";
154
+ auth: {
155
+ readonly required: true;
156
+ };
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
+ } | {
218
+ id: string;
219
+ 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";
276
+ path: string;
277
+ intent: "list";
278
+ auth: {
279
+ readonly required: true;
280
+ };
281
+ } | {
282
+ id: string;
283
+ label: string;
284
+ method: "POST";
285
+ path: string;
286
+ intent: "create";
287
+ auth: {
288
+ readonly required: true;
289
+ };
290
+ })[];
291
+ };
292
+ };
293
+ };
294
+ //# sourceMappingURL=data.nutrition-catalog-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.nutrition-catalog-scan.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/data.nutrition-catalog-scan.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNN,CAAC"}
@@ -0,0 +1,211 @@
1
+ const authRequired = { required: true };
2
+ export const nutritionCatalogScanData = {
3
+ apis: {
4
+ nutritionProducts: {
5
+ id: 'nutritionProducts',
6
+ kind: 'generated',
7
+ preset: 'crud',
8
+ label: 'Nutrition products',
9
+ description: 'Published product catalog entries available to signed-in challenge scanners.',
10
+ basePath: '/v1/nutrition/products',
11
+ auth: authRequired,
12
+ resource: {
13
+ kind: 'collection',
14
+ collection: {
15
+ name: 'nutrition_products',
16
+ schema: 'public',
17
+ primaryKey: 'id',
18
+ fields: [
19
+ { name: 'id', type: 'uuid', required: true },
20
+ { name: 'barcode', type: 'text', required: true, unique: true },
21
+ { name: 'name', type: 'text', required: true },
22
+ { name: 'brand', type: 'text' },
23
+ { name: 'quantity', type: 'text' },
24
+ { name: 'country', type: 'text', required: true, defaultValue: 'CH' },
25
+ { name: 'nutritionFacts', type: 'json' },
26
+ { name: 'confidence', type: 'number', defaultValue: 0 },
27
+ { name: 'createdAt', type: 'datetime', required: true },
28
+ { name: 'updatedAt', type: 'datetime', required: true },
29
+ ],
30
+ },
31
+ },
32
+ endpoints: [
33
+ {
34
+ id: 'listNutritionProducts',
35
+ label: 'List products',
36
+ method: 'GET',
37
+ path: '/',
38
+ intent: 'list',
39
+ auth: authRequired,
40
+ },
41
+ {
42
+ id: 'getNutritionProductById',
43
+ label: 'Get product',
44
+ method: 'GET',
45
+ path: '/:id',
46
+ intent: 'read',
47
+ auth: authRequired,
48
+ },
49
+ {
50
+ id: 'getNutritionProductByBarcode',
51
+ label: 'Get product by barcode',
52
+ method: 'GET',
53
+ path: '/by-barcode/:barcode',
54
+ intent: 'read',
55
+ auth: authRequired,
56
+ },
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
+ {
100
+ id: 'createNutritionProductCapture',
101
+ label: 'Create capture',
102
+ method: 'POST',
103
+ path: '/',
104
+ intent: 'create',
105
+ auth: authRequired,
106
+ },
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
+ {
137
+ id: 'listNutritionScanChallenges',
138
+ label: 'List challenges',
139
+ method: 'GET',
140
+ path: '/',
141
+ intent: 'list',
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',
197
+ auth: authRequired,
198
+ },
199
+ {
200
+ id: 'createNutritionScanEvent',
201
+ label: 'Create scan event',
202
+ method: 'POST',
203
+ path: '/',
204
+ intent: 'create',
205
+ auth: authRequired,
206
+ },
207
+ ],
208
+ },
209
+ },
210
+ };
211
+ //# sourceMappingURL=data.nutrition-catalog-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.nutrition-catalog-scan.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/data.nutrition-catalog-scan.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,8EAA8E;YAC3F,QAAQ,EAAE,wBAAwB;YAClC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE;oBACV,IAAI,EAAE,oBAAoB;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;wBAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;wBAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;wBACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;wBACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE;wBACvD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACvD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;qBACxD;iBACF;aACF;YACD,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,uBAAuB;oBAC3B,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;gBACD;oBACE,EAAE,EAAE,yBAAyB;oBAC7B,KAAK,EAAE,aAAa;oBACpB,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;gBACD;oBACE,EAAE,EAAE,8BAA8B;oBAClC,KAAK,EAAE,wBAAwB;oBAC/B,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,sBAAsB;oBAC5B,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;aACF;SACF;QACD,wBAAwB,EAAE;YACxB,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,mEAAmE;YAChF,QAAQ,EAAE,iCAAiC;YAC3C,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE;oBACV,IAAI,EAAE,4BAA4B;oBAClC,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAChD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACjD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACrD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;wBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;wBACpC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;wBACrE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;wBACxE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;wBACnC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC9D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACvD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;qBACxD;iBACF;aACF;YACD,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,8BAA8B;oBAClC,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;gBACD;oBACE,EAAE,EAAE,+BAA+B;oBACnC,KAAK,EAAE,gBAAgB;oBACvB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,YAAY;iBACnB;aACF;SACF;QACD,uBAAuB,EAAE;YACvB,EAAE,EAAE,yBAAyB;YAC7B,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE,yEAAyE;YACtF,QAAQ,EAAE,0BAA0B;YACpC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE;oBACV,IAAI,EAAE,2BAA2B;oBACjC,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC/C,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;wBACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACtD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACpD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;wBACzE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;wBACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;qBACxD;iBACF;aACF;YACD,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,6BAA6B;oBACjC,KAAK,EAAE,iBAAiB;oBACxB,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;gBACD;oBACE,EAAE,EAAE,kCAAkC;oBACtC,KAAK,EAAE,uBAAuB;oBAC9B,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;gBACD;oBACE,EAAE,EAAE,oCAAoC;oBACxC,KAAK,EAAE,yBAAyB;oBAChC,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,sBAAsB;oBAC5B,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;aACF;SACF;QACD,mBAAmB,EAAE;YACnB,EAAE,EAAE,qBAAqB;YACzB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,2EAA2E;YACxF,QAAQ,EAAE,2BAA2B;YACrC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE;oBACV,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC5C,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAChD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACjD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;wBACnC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;wBACnC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;wBACnE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC9D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;qBACxD;iBACF;aACF;YACD,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,yBAAyB;oBAC7B,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;iBACnB;gBACD;oBACE,EAAE,EAAE,0BAA0B;oBAC9B,KAAK,EAAE,mBAAmB;oBAC1B,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,YAAY;iBACnB;aACF;SACF;KACF;CAC4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nutrition-catalog-scan.template.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOxD,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAYzF"}
1
+ {"version":3,"file":"nutrition-catalog-scan.template.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQxD,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CA0DzF"}
@@ -1,17 +1,64 @@
1
1
  import { DEFAULT_TEMPLATE_VERSION } from '../../../../internal/defaults';
2
2
  import { createManifestShell, createTheme } from '../../../shared';
3
+ import { nutritionCatalogScanData } from './data.nutrition-catalog-scan';
3
4
  import { createNutritionCatalogScanNavigator, createNutritionCatalogScanScreenIds, } from './routes.nutrition-catalog-scan';
4
5
  import { createNutritionCatalogScanScreens } from './screens.nutrition-catalog-scan';
5
6
  export function createNutritionCatalogScanStarterTemplate(seed) {
6
7
  const idPrefix = `${seed.category}-nutrition-catalog-scan`;
7
8
  const theme = createTheme(seed);
8
9
  const screenIds = createNutritionCatalogScanScreenIds(idPrefix);
9
- return createManifestShell({
10
+ const manifest = createManifestShell({
10
11
  seed,
11
12
  theme,
12
13
  version: seed.version ?? DEFAULT_TEMPLATE_VERSION,
13
14
  navigator: createNutritionCatalogScanNavigator(screenIds),
14
15
  screens: createNutritionCatalogScanScreens(seed, idPrefix, screenIds),
15
16
  });
17
+ return {
18
+ ...manifest,
19
+ data: nutritionCatalogScanData,
20
+ infra: {
21
+ ...manifest.infra,
22
+ auth: {
23
+ scope: 'global',
24
+ provider: 'supabase',
25
+ authorization: {
26
+ kind: 'RBAC',
27
+ engine: 'native',
28
+ },
29
+ flow: {
30
+ signInRoute: 'sign-in',
31
+ signUpRoute: 'sign-up',
32
+ signOutRoute: 'sign-out',
33
+ postSignInRoute: 'challenge',
34
+ unauthorizedRoute: 'sign-in',
35
+ },
36
+ signIn: {
37
+ identifiers: ['email'],
38
+ },
39
+ signUp: {
40
+ requiredFields: ['email', 'password', 'displayName'],
41
+ signUpPolicy: 'requireVerification',
42
+ },
43
+ profile: {
44
+ fields: ['email', 'displayName', 'avatarUrl'],
45
+ table: 'profiles',
46
+ primaryKey: 'authUserId',
47
+ createStrategy: 'trigger',
48
+ updateStrategy: 'api',
49
+ },
50
+ },
51
+ },
52
+ settings: {
53
+ ...manifest.settings,
54
+ authFlow: {
55
+ signInRoute: 'sign-in',
56
+ signUpRoute: 'sign-up',
57
+ signOutRoute: 'sign-out',
58
+ postSignInRoute: 'challenge',
59
+ unauthorizedRoute: 'sign-in',
60
+ },
61
+ },
62
+ };
16
63
  }
17
64
  //# sourceMappingURL=nutrition-catalog-scan.template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nutrition-catalog-scan.template.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EACL,mCAAmC,EACnC,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAErF,MAAM,UAAU,yCAAyC,CAAC,IAAkB;IAC1E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,yBAAyB,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IAEhE,OAAO,mBAAmB,CAAC;QACzB,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,iCAAiC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"nutrition-catalog-scan.template.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,mCAAmC,EACnC,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAErF,MAAM,UAAU,yCAAyC,CAAC,IAAkB;IAC1E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,yBAAyB,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,iCAAiC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE;oBACb,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,QAAQ;iBACjB;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,UAAU;oBACxB,eAAe,EAAE,WAAW;oBAC5B,iBAAiB,EAAE,SAAS;iBAC7B;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,CAAC,OAAO,CAAC;iBACvB;gBACD,MAAM,EAAE;oBACN,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC;oBACpD,YAAY,EAAE,qBAAqB;iBACpC;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC;oBAC7C,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE,YAAY;oBACxB,cAAc,EAAE,SAAS;oBACzB,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;QACD,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,QAAQ;YACpB,QAAQ,EAAE;gBACR,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,SAAS;gBACtB,YAAY,EAAE,UAAU;gBACxB,eAAe,EAAE,WAAW;gBAC5B,iBAAiB,EAAE,SAAS;aAC7B;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -6,6 +6,11 @@ export interface NutritionCatalogScanScreenIds {
6
6
  readonly capture: string;
7
7
  readonly success: string;
8
8
  readonly queue: string;
9
+ readonly challenge: string;
10
+ readonly leaderboard: string;
11
+ readonly profile: string;
12
+ readonly signIn: string;
13
+ readonly signUp: string;
9
14
  readonly settings: string;
10
15
  }
11
16
  export declare function createNutritionCatalogScanScreenIds(idPrefix: string): NutritionCatalogScanScreenIds;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.nutrition-catalog-scan.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/routes.nutrition-catalog-scan.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,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,MAAM,GACf,6BAA6B,CAU/B;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,6BAA6B,GACvC,WAAW,CAAC,WAAW,CAAC,CAqC1B"}
1
+ {"version":3,"file":"routes.nutrition-catalog-scan.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/routes.nutrition-catalog-scan.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,SAAS,EAAE,MAAM,CAAC;IAC3B,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,CAe/B;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,6BAA6B,GACvC,WAAW,CAAC,WAAW,CAAC,CA0D1B"}