@cravery/core 0.0.24 → 0.0.26

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 (294) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +0 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/ai/embedding.d.ts +2 -1
  6. package/dist/lib/ai/embedding.d.ts.map +1 -1
  7. package/dist/lib/ai/embedding.js +4 -17
  8. package/dist/lib/ai/embedding.js.map +1 -1
  9. package/dist/lib/ai/genkit.d.ts +1 -0
  10. package/dist/lib/ai/genkit.d.ts.map +1 -1
  11. package/dist/lib/ai/genkit.js +14 -1
  12. package/dist/lib/ai/genkit.js.map +1 -1
  13. package/dist/types/ai/recipe.d.ts +1 -244
  14. package/dist/types/ai/recipe.d.ts.map +1 -1
  15. package/dist/types/ai/recipe.js +0 -28
  16. package/dist/types/ai/recipe.js.map +1 -1
  17. package/dist/types/ai/translation.d.ts +1 -107
  18. package/dist/types/ai/translation.d.ts.map +1 -1
  19. package/dist/types/ai/translation.js +0 -11
  20. package/dist/types/ai/translation.js.map +1 -1
  21. package/dist/types/core/api.d.ts +4 -4
  22. package/dist/types/core/api.d.ts.map +1 -1
  23. package/dist/types/core/asset.d.ts +2 -22
  24. package/dist/types/core/asset.d.ts.map +1 -1
  25. package/dist/types/core/asset.js +0 -9
  26. package/dist/types/core/asset.js.map +1 -1
  27. package/dist/types/core/entity.d.ts +7 -0
  28. package/dist/types/core/entity.d.ts.map +1 -0
  29. package/dist/types/core/entity.js +3 -0
  30. package/dist/types/core/entity.js.map +1 -0
  31. package/dist/types/core/index.d.ts +5 -1
  32. package/dist/types/core/index.d.ts.map +1 -1
  33. package/dist/types/core/index.js +5 -1
  34. package/dist/types/core/index.js.map +1 -1
  35. package/dist/types/core/locale.d.ts +3 -0
  36. package/dist/types/core/locale.d.ts.map +1 -0
  37. package/dist/types/core/locale.js +5 -0
  38. package/dist/types/core/locale.js.map +1 -0
  39. package/dist/types/core/measurement_system.d.ts +3 -0
  40. package/dist/types/core/measurement_system.d.ts.map +1 -0
  41. package/dist/types/core/measurement_system.js +5 -0
  42. package/dist/types/core/measurement_system.js.map +1 -0
  43. package/dist/types/core/settings.d.ts +5 -88
  44. package/dist/types/core/settings.d.ts.map +1 -1
  45. package/dist/types/core/settings.js +0 -25
  46. package/dist/types/core/settings.js.map +1 -1
  47. package/dist/types/core/theme.d.ts +3 -0
  48. package/dist/types/core/theme.d.ts.map +1 -0
  49. package/dist/types/core/theme.js +5 -0
  50. package/dist/types/core/theme.js.map +1 -0
  51. package/dist/types/core/timestamp.d.ts +5 -0
  52. package/dist/types/core/timestamp.d.ts.map +1 -0
  53. package/dist/types/core/timestamp.js +3 -0
  54. package/dist/types/core/timestamp.js.map +1 -0
  55. package/dist/types/iam/index.d.ts +6 -1
  56. package/dist/types/iam/index.d.ts.map +1 -1
  57. package/dist/types/iam/index.js +6 -1
  58. package/dist/types/iam/index.js.map +1 -1
  59. package/dist/types/iam/profile.d.ts +2 -56
  60. package/dist/types/iam/profile.d.ts.map +1 -1
  61. package/dist/types/iam/profile.js +0 -22
  62. package/dist/types/iam/profile.js.map +1 -1
  63. package/dist/types/iam/profile_status.d.ts +3 -0
  64. package/dist/types/iam/profile_status.d.ts.map +1 -0
  65. package/dist/types/iam/profile_status.js +10 -0
  66. package/dist/types/iam/profile_status.js.map +1 -0
  67. package/dist/types/iam/subscription.d.ts +4 -80
  68. package/dist/types/iam/subscription.d.ts.map +1 -1
  69. package/dist/types/iam/subscription.js +0 -19
  70. package/dist/types/iam/subscription.js.map +1 -1
  71. package/dist/types/iam/subscription_role.d.ts +3 -0
  72. package/dist/types/iam/subscription_role.d.ts.map +1 -0
  73. package/dist/types/iam/subscription_role.js +5 -0
  74. package/dist/types/iam/subscription_role.js.map +1 -0
  75. package/dist/types/iam/subscription_status.d.ts +3 -0
  76. package/dist/types/iam/subscription_status.d.ts.map +1 -0
  77. package/dist/types/iam/subscription_status.js +10 -0
  78. package/dist/types/iam/subscription_status.js.map +1 -0
  79. package/dist/types/iam/subscription_tier.d.ts +3 -0
  80. package/dist/types/iam/subscription_tier.d.ts.map +1 -0
  81. package/dist/types/iam/subscription_tier.js +5 -0
  82. package/dist/types/iam/subscription_tier.js.map +1 -0
  83. package/dist/types/iam/user.d.ts +3 -42
  84. package/dist/types/iam/user.d.ts.map +1 -1
  85. package/dist/types/iam/user.js +0 -16
  86. package/dist/types/iam/user.js.map +1 -1
  87. package/dist/types/iam/user_role.d.ts +5 -0
  88. package/dist/types/iam/user_role.d.ts.map +1 -0
  89. package/dist/types/iam/user_role.js +16 -0
  90. package/dist/types/iam/user_role.js.map +1 -0
  91. package/dist/types/iam/user_status.d.ts +3 -0
  92. package/dist/types/iam/user_status.d.ts.map +1 -0
  93. package/dist/types/iam/user_status.js +10 -0
  94. package/dist/types/iam/user_status.js.map +1 -0
  95. package/dist/types/moderation/index.d.ts +4 -1
  96. package/dist/types/moderation/index.d.ts.map +1 -1
  97. package/dist/types/moderation/index.js +4 -1
  98. package/dist/types/moderation/index.js.map +1 -1
  99. package/dist/types/moderation/moderation.d.ts +5 -137
  100. package/dist/types/moderation/moderation.d.ts.map +1 -1
  101. package/dist/types/moderation/moderation.js +0 -37
  102. package/dist/types/moderation/moderation.js.map +1 -1
  103. package/dist/types/moderation/moderation_status.d.ts +3 -0
  104. package/dist/types/moderation/moderation_status.d.ts.map +1 -0
  105. package/dist/types/moderation/moderation_status.js +9 -0
  106. package/dist/types/moderation/moderation_status.js.map +1 -0
  107. package/dist/types/moderation/priority.d.ts +3 -0
  108. package/dist/types/moderation/priority.d.ts.map +1 -0
  109. package/dist/types/moderation/priority.js +5 -0
  110. package/dist/types/moderation/priority.js.map +1 -0
  111. package/dist/types/moderation/severity.d.ts +3 -0
  112. package/dist/types/moderation/severity.d.ts.map +1 -0
  113. package/dist/types/moderation/severity.js +5 -0
  114. package/dist/types/moderation/severity.js.map +1 -0
  115. package/dist/types/moderation/suggestion_category.d.ts +3 -0
  116. package/dist/types/moderation/suggestion_category.d.ts.map +1 -0
  117. package/dist/types/moderation/suggestion_category.js +11 -0
  118. package/dist/types/moderation/suggestion_category.js.map +1 -0
  119. package/dist/types/recipe/allergen.d.ts +3 -0
  120. package/dist/types/recipe/allergen.d.ts.map +1 -0
  121. package/dist/types/recipe/allergen.js +19 -0
  122. package/dist/types/recipe/allergen.js.map +1 -0
  123. package/dist/types/recipe/cuisine.d.ts +3 -0
  124. package/dist/types/recipe/cuisine.d.ts.map +1 -0
  125. package/dist/types/recipe/cuisine.js +39 -0
  126. package/dist/types/recipe/cuisine.js.map +1 -0
  127. package/dist/types/recipe/dietary_tag.d.ts +3 -0
  128. package/dist/types/recipe/dietary_tag.d.ts.map +1 -0
  129. package/dist/types/recipe/dietary_tag.js +21 -0
  130. package/dist/types/recipe/dietary_tag.js.map +1 -0
  131. package/dist/types/recipe/difficulty.d.ts +3 -0
  132. package/dist/types/recipe/difficulty.d.ts.map +1 -0
  133. package/dist/types/recipe/difficulty.js +10 -0
  134. package/dist/types/recipe/difficulty.js.map +1 -0
  135. package/dist/types/recipe/equipment.d.ts +0 -40
  136. package/dist/types/recipe/equipment.d.ts.map +1 -1
  137. package/dist/types/recipe/equipment.js +0 -12
  138. package/dist/types/recipe/equipment.js.map +1 -1
  139. package/dist/types/recipe/filters.d.ts +5 -30
  140. package/dist/types/recipe/filters.d.ts.map +1 -1
  141. package/dist/types/recipe/filters.js +0 -13
  142. package/dist/types/recipe/filters.js.map +1 -1
  143. package/dist/types/recipe/index.d.ts +10 -1
  144. package/dist/types/recipe/index.d.ts.map +1 -1
  145. package/dist/types/recipe/index.js +10 -1
  146. package/dist/types/recipe/index.js.map +1 -1
  147. package/dist/types/recipe/ingredient.d.ts +1 -169
  148. package/dist/types/recipe/ingredient.d.ts.map +1 -1
  149. package/dist/types/recipe/ingredient.js +0 -29
  150. package/dist/types/recipe/ingredient.js.map +1 -1
  151. package/dist/types/recipe/instruction.d.ts +2 -72
  152. package/dist/types/recipe/instruction.d.ts.map +1 -1
  153. package/dist/types/recipe/instruction.js +0 -13
  154. package/dist/types/recipe/instruction.js.map +1 -1
  155. package/dist/types/recipe/meal_type.d.ts +3 -0
  156. package/dist/types/recipe/meal_type.d.ts.map +1 -0
  157. package/dist/types/recipe/meal_type.js +14 -0
  158. package/dist/types/recipe/meal_type.js.map +1 -0
  159. package/dist/types/recipe/nutrition.d.ts +0 -36
  160. package/dist/types/recipe/nutrition.d.ts.map +1 -1
  161. package/dist/types/recipe/nutrition.js +0 -13
  162. package/dist/types/recipe/nutrition.js.map +1 -1
  163. package/dist/types/recipe/recipe.d.ts +14 -525
  164. package/dist/types/recipe/recipe.d.ts.map +1 -1
  165. package/dist/types/recipe/recipe.js +0 -80
  166. package/dist/types/recipe/recipe.js.map +1 -1
  167. package/dist/types/recipe/recipe_source.d.ts +3 -0
  168. package/dist/types/recipe/recipe_source.d.ts.map +1 -0
  169. package/dist/types/recipe/recipe_source.js +5 -0
  170. package/dist/types/recipe/recipe_source.js.map +1 -0
  171. package/dist/types/recipe/recipe_status.d.ts +3 -0
  172. package/dist/types/recipe/recipe_status.d.ts.map +1 -0
  173. package/dist/types/recipe/recipe_status.js +12 -0
  174. package/dist/types/recipe/recipe_status.js.map +1 -0
  175. package/dist/types/recipe/spiciness.d.ts +3 -0
  176. package/dist/types/recipe/spiciness.d.ts.map +1 -0
  177. package/dist/types/recipe/spiciness.js +5 -0
  178. package/dist/types/recipe/spiciness.js.map +1 -0
  179. package/dist/types/recipe/temperature.d.ts +1 -12
  180. package/dist/types/recipe/temperature.d.ts.map +1 -1
  181. package/dist/types/recipe/temperature.js +0 -7
  182. package/dist/types/recipe/temperature.js.map +1 -1
  183. package/dist/types/recipe/temperature_unit.d.ts +3 -0
  184. package/dist/types/recipe/temperature_unit.d.ts.map +1 -0
  185. package/dist/types/recipe/temperature_unit.js +5 -0
  186. package/dist/types/recipe/temperature_unit.js.map +1 -0
  187. package/dist/types/recipe/unit.d.ts +3 -0
  188. package/dist/types/recipe/unit.d.ts.map +1 -0
  189. package/dist/types/recipe/unit.js +51 -0
  190. package/dist/types/recipe/unit.js.map +1 -0
  191. package/dist/types/report/index.d.ts +4 -1
  192. package/dist/types/report/index.d.ts.map +1 -1
  193. package/dist/types/report/index.js +4 -1
  194. package/dist/types/report/index.js.map +1 -1
  195. package/dist/types/report/report.d.ts +5 -94
  196. package/dist/types/report/report.d.ts.map +1 -1
  197. package/dist/types/report/report.js +0 -29
  198. package/dist/types/report/report.js.map +1 -1
  199. package/dist/types/report/report_priority.d.ts +3 -0
  200. package/dist/types/report/report_priority.d.ts.map +1 -0
  201. package/dist/types/report/report_priority.js +10 -0
  202. package/dist/types/report/report_priority.js.map +1 -0
  203. package/dist/types/report/report_status.d.ts +3 -0
  204. package/dist/types/report/report_status.d.ts.map +1 -0
  205. package/dist/types/report/report_status.js +10 -0
  206. package/dist/types/report/report_status.js.map +1 -0
  207. package/dist/types/report/report_target_type.d.ts +3 -0
  208. package/dist/types/report/report_target_type.d.ts.map +1 -0
  209. package/dist/types/report/report_target_type.js +10 -0
  210. package/dist/types/report/report_target_type.js.map +1 -0
  211. package/dist/types/report/report_type.d.ts +3 -0
  212. package/dist/types/report/report_type.d.ts.map +1 -0
  213. package/dist/types/report/report_type.js +12 -0
  214. package/dist/types/report/report_type.js.map +1 -0
  215. package/package.json +3 -14
  216. package/src/index.ts +0 -1
  217. package/src/types/ai/recipe.ts +10 -47
  218. package/src/types/ai/translation.ts +1 -18
  219. package/src/types/core/api.ts +4 -4
  220. package/src/types/core/asset.ts +2 -14
  221. package/src/types/core/entity.ts +7 -0
  222. package/src/types/core/index.ts +5 -1
  223. package/src/types/core/{enums/locale.ts → locale.ts} +0 -3
  224. package/src/types/core/{enums/measurement_system.ts → measurement_system.ts} +0 -3
  225. package/src/types/core/settings.ts +9 -43
  226. package/src/types/core/{enums/theme.ts → theme.ts} +0 -3
  227. package/src/types/core/timestamp.ts +4 -0
  228. package/src/types/iam/index.ts +6 -1
  229. package/src/types/iam/profile.ts +2 -24
  230. package/src/types/iam/{enums/profile_status.ts → profile_status.ts} +0 -3
  231. package/src/types/iam/subscription.ts +4 -28
  232. package/src/types/iam/{enums/subscription_role.ts → subscription_role.ts} +0 -3
  233. package/src/types/iam/{enums/subscription_status.ts → subscription_status.ts} +0 -3
  234. package/src/types/iam/subscription_tier.ts +2 -0
  235. package/src/types/iam/user.ts +3 -22
  236. package/src/types/iam/user_role.ts +15 -0
  237. package/src/types/iam/{enums/user_status.ts → user_status.ts} +0 -3
  238. package/src/types/moderation/index.ts +4 -1
  239. package/src/types/moderation/moderation.ts +5 -50
  240. package/src/types/moderation/{enums/moderation_status.ts → moderation_status.ts} +0 -3
  241. package/src/types/moderation/{enums/priority.ts → priority.ts} +0 -3
  242. package/src/types/moderation/{enums/severity.ts → severity.ts} +0 -3
  243. package/src/types/moderation/suggestion_category.ts +8 -0
  244. package/src/types/recipe/{enums/allergen.ts → allergen.ts} +0 -3
  245. package/src/types/recipe/{enums/cuisine.ts → cuisine.ts} +0 -3
  246. package/src/types/recipe/{enums/dietary_tag.ts → dietary_tag.ts} +0 -3
  247. package/src/types/recipe/{enums/difficulty.ts → difficulty.ts} +0 -3
  248. package/src/types/recipe/equipment.ts +0 -18
  249. package/src/types/recipe/filters.ts +5 -24
  250. package/src/types/recipe/index.ts +10 -1
  251. package/src/types/recipe/ingredient.ts +1 -37
  252. package/src/types/recipe/instruction.ts +2 -19
  253. package/src/types/recipe/{enums/meal_type.ts → meal_type.ts} +0 -3
  254. package/src/types/recipe/nutrition.ts +0 -18
  255. package/src/types/recipe/recipe.ts +18 -118
  256. package/src/types/recipe/{enums/recipe_source.ts → recipe_source.ts} +0 -3
  257. package/src/types/recipe/{enums/recipe_status.ts → recipe_status.ts} +0 -3
  258. package/src/types/recipe/{enums/spiciness.ts → spiciness.ts} +0 -3
  259. package/src/types/recipe/temperature.ts +1 -7
  260. package/src/types/recipe/{enums/temperature_unit.ts → temperature_unit.ts} +0 -3
  261. package/src/types/recipe/{enums/unit.ts → unit.ts} +0 -3
  262. package/src/types/report/index.ts +4 -1
  263. package/src/types/report/report.ts +5 -40
  264. package/src/types/report/{enums/report_priority.ts → report_priority.ts} +0 -3
  265. package/src/types/report/{enums/report_status.ts → report_status.ts} +0 -3
  266. package/src/types/report/{enums/report_target_type.ts → report_target_type.ts} +0 -3
  267. package/src/types/report/{enums/report_type.ts → report_type.ts} +0 -3
  268. package/src/lib/ai/cost.ts +0 -82
  269. package/src/lib/ai/embedding.ts +0 -64
  270. package/src/lib/ai/errors.ts +0 -43
  271. package/src/lib/ai/flow.ts +0 -134
  272. package/src/lib/ai/genkit.ts +0 -24
  273. package/src/lib/ai/image.ts +0 -27
  274. package/src/lib/ai/index.ts +0 -6
  275. package/src/lib/api.ts +0 -103
  276. package/src/lib/firebase.ts +0 -5
  277. package/src/lib/iam.ts +0 -37
  278. package/src/lib/index.ts +0 -7
  279. package/src/lib/storage.ts +0 -60
  280. package/src/lib/usage/index.ts +0 -1
  281. package/src/lib/usage/usage.service.ts +0 -192
  282. package/src/lib/utils/index.ts +0 -2
  283. package/src/lib/utils/sanitize.ts +0 -38
  284. package/src/lib/utils/slug.ts +0 -33
  285. package/src/types/core/enums/image_type.ts +0 -5
  286. package/src/types/core/enums/index.ts +0 -5
  287. package/src/types/core/enums/url_type.ts +0 -13
  288. package/src/types/iam/enums/index.ts +0 -6
  289. package/src/types/iam/enums/subscription_tier.ts +0 -4
  290. package/src/types/iam/enums/user_role.ts +0 -11
  291. package/src/types/moderation/enums/index.ts +0 -4
  292. package/src/types/moderation/enums/suggestion_category.ts +0 -11
  293. package/src/types/recipe/enums/index.ts +0 -10
  294. package/src/types/report/enums/index.ts +0 -4
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from "./config";
2
- export * from "./lib";
3
2
  export * from "./types";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -15,6 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./config"), exports);
18
- __exportStar(require("./lib"), exports);
19
18
  __exportStar(require("./types"), exports);
20
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,wCAAsB;AACtB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB"}
@@ -1,4 +1,5 @@
1
+ import { recipesRetriever } from "./genkit";
2
+ export { recipesRetriever };
1
3
  export declare const generateEmbedding: (text: string, flowName: string) => Promise<number[]>;
2
4
  export declare const storeEmbedding: (collection: string, docId: string, text: string, flowName?: string, vectorField?: string) => Promise<void>;
3
- export declare let recipesRetriever: any;
4
5
  //# sourceMappingURL=embedding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/embedding.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,EAAE,UAAU,MAAM,sBAmBrE,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,WAAW,MAAM,EACjB,cAAa,MAAoB,kBAYlC,CAAC;AAGF,eAAO,IAAI,gBAAgB,EAAE,GAAG,CAAC"}
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/embedding.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMpE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,EAAE,UAAU,MAAM,sBAmBrE,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,WAAW,MAAM,EACjB,cAAa,MAAoB,kBAYlC,CAAC"}
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recipesRetriever = exports.storeEmbedding = exports.generateEmbedding = void 0;
3
+ exports.storeEmbedding = exports.generateEmbedding = exports.recipesRetriever = void 0;
4
4
  const firestore_1 = require("firebase-admin/firestore");
5
- const firebase_1 = require("@genkit-ai/firebase");
6
- const core_1 = require("firebase-functions/v2/core");
7
- const firebase_2 = require("../firebase");
5
+ const firebase_1 = require("../firebase");
8
6
  const genkit_1 = require("./genkit");
7
+ Object.defineProperty(exports, "recipesRetriever", { enumerable: true, get: function () { return genkit_1.recipesRetriever; } });
9
8
  const cost_1 = require("./cost");
10
9
  const ai_1 = require("../../config/ai");
11
10
  const types_1 = require("../../types");
@@ -33,7 +32,7 @@ const generateEmbedding = async (text, flowName) => {
33
32
  exports.generateEmbedding = generateEmbedding;
34
33
  const storeEmbedding = async (collection, docId, text, flowName, vectorField = "embedding") => {
35
34
  const embedding = await (0, exports.generateEmbedding)(text, flowName || `${collection}:embedding`);
36
- await firebase_2.firestore
35
+ await firebase_1.firestore
37
36
  .collection(collection)
38
37
  .doc(docId)
39
38
  .update({
@@ -41,16 +40,4 @@ const storeEmbedding = async (collection, docId, text, flowName, vectorField = "
41
40
  });
42
41
  };
43
42
  exports.storeEmbedding = storeEmbedding;
44
- (0, core_1.onInit)(() => {
45
- exports.recipesRetriever = (0, firebase_1.defineFirestoreRetriever)(genkit_1.ai, {
46
- name: "recipesRetriever",
47
- firestore: firebase_2.firestore,
48
- collection: "recipes",
49
- contentField: "searchTerms",
50
- vectorField: "titleEmbedding",
51
- embedder: genkit_1.geminiEmbedding001,
52
- distanceMeasure: "COSINE",
53
- distanceResultField: "distance",
54
- });
55
- });
56
43
  //# sourceMappingURL=embedding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../../src/lib/ai/embedding.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AACtD,kDAA+D;AAC/D,qDAAoD;AACpD,0CAAwC;AACxC,qCAAkD;AAClD,iCAAoC;AACpC,wCAA4C;AAC5C,uCAA8C;AAEvC,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE;;IACxE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,uBAAe,CAAC,4CAA4C,EAAE;YACtE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,WAAE,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE,2BAAkB;QAC5B,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAA,iBAAU,EAAC;QACT,IAAI,EAAE,WAAW;QACjB,QAAQ;QACR,KAAK,EAAE,cAAS,CAAC,kBAAkB;QACnC,UAAU,EAAE,IAAI,CAAC,MAAM;KACxB,CAAC,CAAC;IACH,OAAO,MAAA,QAAQ,CAAC,CAAC,CAAC,0CAAE,SAAS,CAAC;AAChC,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B;AAEK,MAAM,cAAc,GAAG,KAAK,EACjC,UAAkB,EAClB,KAAa,EACb,IAAY,EACZ,QAAiB,EACjB,cAAsB,WAAW,EACjC,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,IAAA,yBAAiB,EACvC,IAAI,EACJ,QAAQ,IAAI,GAAG,UAAU,YAAY,CACtC,CAAC;IACF,MAAM,oBAAS;SACZ,UAAU,CAAC,UAAU,CAAC;SACtB,GAAG,CAAC,KAAK,CAAC;SACV,MAAM,CAAC;QACN,CAAC,WAAW,CAAC,EAAE,sBAAU,CAAC,MAAM,CAAC,SAAS,CAAC;KAC5C,CAAC,CAAC;AACP,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAKF,IAAA,aAAM,EAAC,GAAG,EAAE;IACV,wBAAgB,GAAG,IAAA,mCAAwB,EAAC,WAAE,EAAE;QAC9C,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAT,oBAAS;QACT,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,2BAAkB;QAC5B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,UAAU;KAChC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../../src/lib/ai/embedding.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AACtD,0CAAwC;AACxC,qCAAoE;AAM3D,iGANwB,yBAAgB,OAMxB;AALzB,iCAAoC;AACpC,wCAA4C;AAC5C,uCAA8C;AAKvC,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE;;IACxE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,uBAAe,CAAC,4CAA4C,EAAE;YACtE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,WAAE,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE,2BAAkB;QAC5B,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAA,iBAAU,EAAC;QACT,IAAI,EAAE,WAAW;QACjB,QAAQ;QACR,KAAK,EAAE,cAAS,CAAC,kBAAkB;QACnC,UAAU,EAAE,IAAI,CAAC,MAAM;KACxB,CAAC,CAAC;IACH,OAAO,MAAA,QAAQ,CAAC,CAAC,CAAC,0CAAE,SAAS,CAAC;AAChC,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B;AAEK,MAAM,cAAc,GAAG,KAAK,EACjC,UAAkB,EAClB,KAAa,EACb,IAAY,EACZ,QAAiB,EACjB,cAAsB,WAAW,EACjC,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,IAAA,yBAAiB,EACvC,IAAI,EACJ,QAAQ,IAAI,GAAG,UAAU,YAAY,CACtC,CAAC;IACF,MAAM,oBAAS;SACZ,UAAU,CAAC,UAAU,CAAC;SACtB,GAAG,CAAC,KAAK,CAAC;SACV,MAAM,CAAC;QACN,CAAC,WAAW,CAAC,EAAE,sBAAU,CAAC,MAAM,CAAC,SAAS,CAAC;KAC5C,CAAC,CAAC;AACP,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB"}
@@ -1,4 +1,5 @@
1
1
  import { EmbedderReference, Genkit } from "genkit";
2
2
  export declare let ai: Genkit;
3
3
  export declare let geminiEmbedding001: EmbedderReference;
4
+ export declare let recipesRetriever: any;
4
5
  //# sourceMappingURL=genkit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genkit.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/genkit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQ3D,eAAO,IAAI,EAAE,EAAE,MAAM,CAAC;AACtB,eAAO,IAAI,kBAAkB,EAAE,iBAAiB,CAAC"}
1
+ {"version":3,"file":"genkit.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/genkit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAU3D,eAAO,IAAI,EAAE,EAAE,MAAM,CAAC;AACtB,eAAO,IAAI,kBAAkB,EAAE,iBAAiB,CAAC;AACjD,eAAO,IAAI,gBAAgB,EAAE,GAAG,CAAC"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.geminiEmbedding001 = exports.ai = void 0;
3
+ exports.recipesRetriever = exports.geminiEmbedding001 = exports.ai = void 0;
4
4
  const genkit_1 = require("genkit");
5
5
  const google_genai_1 = require("@genkit-ai/google-genai");
6
+ const firebase_1 = require("@genkit-ai/firebase");
6
7
  const core_1 = require("firebase-functions/v2/core");
8
+ const firebase_2 = require("../firebase");
7
9
  const projectId = process.env.GCLOUD_PROJECT || process.env.GCP_PROJECT || "canary-cravery";
8
10
  // Initialize during Firebase Functions init phase, not at module load
9
11
  (0, core_1.onInit)(() => {
@@ -16,5 +18,16 @@ const projectId = process.env.GCLOUD_PROJECT || process.env.GCP_PROJECT || "cana
16
18
  ],
17
19
  });
18
20
  exports.geminiEmbedding001 = google_genai_1.vertexAI.embedder("gemini-embedding-001");
21
+ // Initialize retriever after ai is set up
22
+ exports.recipesRetriever = (0, firebase_1.defineFirestoreRetriever)(exports.ai, {
23
+ name: "recipesRetriever",
24
+ firestore: firebase_2.firestore,
25
+ collection: "recipes",
26
+ contentField: "searchTerms",
27
+ vectorField: "titleEmbedding",
28
+ embedder: exports.geminiEmbedding001,
29
+ distanceMeasure: "COSINE",
30
+ distanceResultField: "distance",
31
+ });
19
32
  });
20
33
  //# sourceMappingURL=genkit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"genkit.js","sourceRoot":"","sources":["../../../src/lib/ai/genkit.ts"],"names":[],"mappings":";;;AAAA,mCAA2D;AAC3D,0DAAmD;AACnD,qDAAoD;AAEpD,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,gBAAgB,CAAC;AAM5E,sEAAsE;AACtE,IAAA,aAAM,EAAC,GAAG,EAAE;IACV,UAAE,GAAG,IAAA,eAAM,EAAC;QACV,OAAO,EAAE;YACP,IAAA,uBAAQ,EAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS;aACV,CAAC;SACH;KACF,CAAC,CAAC;IAEH,0BAAkB,GAAG,uBAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"genkit.js","sourceRoot":"","sources":["../../../src/lib/ai/genkit.ts"],"names":[],"mappings":";;;AAAA,mCAA2D;AAC3D,0DAAmD;AACnD,kDAA+D;AAC/D,qDAAoD;AACpD,0CAAwC;AAExC,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,gBAAgB,CAAC;AAO5E,sEAAsE;AACtE,IAAA,aAAM,EAAC,GAAG,EAAE;IACV,UAAE,GAAG,IAAA,eAAM,EAAC;QACV,OAAO,EAAE;YACP,IAAA,uBAAQ,EAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS;aACV,CAAC;SACH;KACF,CAAC,CAAC;IAEH,0BAAkB,GAAG,uBAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAE/D,0CAA0C;IAC1C,wBAAgB,GAAG,IAAA,mCAAwB,EAAC,UAAE,EAAE;QAC9C,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAT,oBAAS;QACT,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,0BAAkB;QAC5B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,UAAU;KAChC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
- import { z } from "genkit";
2
- import { type Allergen, type Cuisine, type DietaryTag, type Difficulty, type Equipment, type IngredientSection, type Instruction, type MealType, type Nutrition, type Spiciness } from "../recipe";
1
+ import { Allergen, Cuisine, DietaryTag, Difficulty, Equipment, IngredientSection, Instruction, MealType, Nutrition, Spiciness } from "../recipe";
3
2
  export interface AIRecipe {
4
3
  allergens: Allergen[];
5
4
  confidence: number;
@@ -18,246 +17,4 @@ export interface AIRecipe {
18
17
  tips?: string[];
19
18
  title: string;
20
19
  }
21
- export declare const AIRecipeSchema: z.ZodObject<{
22
- allergens: z.ZodArray<z.ZodEnum<["celery", "dairy", "eggs", "fish", "gluten", "lupin", "mustard", "nuts", "peanuts", "sesame", "shellfish", "soy", "sulfites"]>, "many">;
23
- confidence: z.ZodNumber;
24
- cuisine: z.ZodEnum<["african", "american", "brazilian", "british", "caribbean", "chinese", "egyptian", "emirati", "ethiopian", "filipino", "french", "fusion", "german", "greek", "indian", "indonesian", "italian", "japanese", "korean", "lebanese", "malaysian", "mexican", "moroccan", "pakistani", "persian", "russian", "saudi", "spanish", "sudanese", "thai", "turkish", "vietnamese", "other"]>;
25
- description: z.ZodString;
26
- dietaryTags: z.ZodArray<z.ZodEnum<["dairy_free", "egg_free", "gluten_free", "halal", "high_protein", "keto", "low_carb", "low_fat", "low_sodium", "low_sugar", "nut_free", "pescatarian", "soy_free", "vegan", "vegetarian"]>, "many">;
27
- difficulty: z.ZodEnum<["beginner", "intermediate", "advanced", "expert"]>;
28
- equipment: z.ZodOptional<z.ZodArray<z.ZodObject<{
29
- name: z.ZodString;
30
- notes: z.ZodOptional<z.ZodString>;
31
- slug: z.ZodString;
32
- required: z.ZodOptional<z.ZodBoolean>;
33
- }, "strip", z.ZodTypeAny, {
34
- slug: string;
35
- name: string;
36
- required?: boolean | undefined;
37
- notes?: string | undefined;
38
- }, {
39
- slug: string;
40
- name: string;
41
- required?: boolean | undefined;
42
- notes?: string | undefined;
43
- }>, "many">>;
44
- ingredientSections: z.ZodArray<z.ZodObject<{
45
- ingredients: z.ZodArray<z.ZodObject<{
46
- name: z.ZodString;
47
- notes: z.ZodOptional<z.ZodString>;
48
- slug: z.ZodString;
49
- quantity: z.ZodOptional<z.ZodNumber>;
50
- required: z.ZodOptional<z.ZodBoolean>;
51
- unit: z.ZodOptional<z.ZodEnum<["ml", "l", "tsp", "tbsp", "fl_oz", "cup", "pint", "quart", "gallon", "mg", "g", "kg", "oz", "lb", "piece", "whole", "half", "quarter", "slice", "serving", "clove", "stalk", "sprig", "leaf", "bunch", "head", "fillet", "stick", "sheet", "can", "package", "bottle", "jar", "handful", "pinch", "dash", "drop"]>>;
52
- }, "strip", z.ZodTypeAny, {
53
- slug: string;
54
- name: string;
55
- required?: boolean | undefined;
56
- notes?: string | undefined;
57
- quantity?: number | undefined;
58
- unit?: "ml" | "l" | "tsp" | "tbsp" | "fl_oz" | "cup" | "pint" | "quart" | "gallon" | "mg" | "g" | "kg" | "oz" | "lb" | "piece" | "whole" | "half" | "quarter" | "slice" | "serving" | "clove" | "stalk" | "sprig" | "leaf" | "bunch" | "head" | "fillet" | "stick" | "sheet" | "can" | "package" | "bottle" | "jar" | "handful" | "pinch" | "dash" | "drop" | undefined;
59
- }, {
60
- slug: string;
61
- name: string;
62
- required?: boolean | undefined;
63
- notes?: string | undefined;
64
- quantity?: number | undefined;
65
- unit?: "ml" | "l" | "tsp" | "tbsp" | "fl_oz" | "cup" | "pint" | "quart" | "gallon" | "mg" | "g" | "kg" | "oz" | "lb" | "piece" | "whole" | "half" | "quarter" | "slice" | "serving" | "clove" | "stalk" | "sprig" | "leaf" | "bunch" | "head" | "fillet" | "stick" | "sheet" | "can" | "package" | "bottle" | "jar" | "handful" | "pinch" | "dash" | "drop" | undefined;
66
- }>, "many">;
67
- slug: z.ZodString;
68
- title: z.ZodOptional<z.ZodString>;
69
- }, "strip", z.ZodTypeAny, {
70
- slug: string;
71
- ingredients: {
72
- slug: string;
73
- name: string;
74
- required?: boolean | undefined;
75
- notes?: string | undefined;
76
- quantity?: number | undefined;
77
- unit?: "ml" | "l" | "tsp" | "tbsp" | "fl_oz" | "cup" | "pint" | "quart" | "gallon" | "mg" | "g" | "kg" | "oz" | "lb" | "piece" | "whole" | "half" | "quarter" | "slice" | "serving" | "clove" | "stalk" | "sprig" | "leaf" | "bunch" | "head" | "fillet" | "stick" | "sheet" | "can" | "package" | "bottle" | "jar" | "handful" | "pinch" | "dash" | "drop" | undefined;
78
- }[];
79
- title?: string | undefined;
80
- }, {
81
- slug: string;
82
- ingredients: {
83
- slug: string;
84
- name: string;
85
- required?: boolean | undefined;
86
- notes?: string | undefined;
87
- quantity?: number | undefined;
88
- unit?: "ml" | "l" | "tsp" | "tbsp" | "fl_oz" | "cup" | "pint" | "quart" | "gallon" | "mg" | "g" | "kg" | "oz" | "lb" | "piece" | "whole" | "half" | "quarter" | "slice" | "serving" | "clove" | "stalk" | "sprig" | "leaf" | "bunch" | "head" | "fillet" | "stick" | "sheet" | "can" | "package" | "bottle" | "jar" | "handful" | "pinch" | "dash" | "drop" | undefined;
89
- }[];
90
- title?: string | undefined;
91
- }>, "many">;
92
- instructions: z.ZodArray<z.ZodObject<{
93
- step: z.ZodNumber;
94
- text: z.ZodString;
95
- duration: z.ZodOptional<z.ZodNumber>;
96
- temperature: z.ZodOptional<z.ZodObject<{
97
- unit: z.ZodEnum<["celsius", "fahrenheit"]>;
98
- value: z.ZodNumber;
99
- }, "strip", z.ZodTypeAny, {
100
- value: number;
101
- unit: "celsius" | "fahrenheit";
102
- }, {
103
- value: number;
104
- unit: "celsius" | "fahrenheit";
105
- }>>;
106
- }, "strip", z.ZodTypeAny, {
107
- text: string;
108
- step: number;
109
- duration?: number | undefined;
110
- temperature?: {
111
- value: number;
112
- unit: "celsius" | "fahrenheit";
113
- } | undefined;
114
- }, {
115
- text: string;
116
- step: number;
117
- duration?: number | undefined;
118
- temperature?: {
119
- value: number;
120
- unit: "celsius" | "fahrenheit";
121
- } | undefined;
122
- }>, "many">;
123
- mealTypes: z.ZodArray<z.ZodEnum<["appetizer", "breakfast", "brunch", "dessert", "dinner", "drink", "lunch", "snack"]>, "many">;
124
- nutrition: z.ZodOptional<z.ZodObject<{
125
- calories: z.ZodNumber;
126
- carbs: z.ZodOptional<z.ZodNumber>;
127
- cholesterol: z.ZodOptional<z.ZodNumber>;
128
- fat: z.ZodOptional<z.ZodNumber>;
129
- fiber: z.ZodOptional<z.ZodNumber>;
130
- protein: z.ZodOptional<z.ZodNumber>;
131
- saturatedFat: z.ZodOptional<z.ZodNumber>;
132
- sodium: z.ZodOptional<z.ZodNumber>;
133
- sugar: z.ZodOptional<z.ZodNumber>;
134
- }, "strip", z.ZodTypeAny, {
135
- calories: number;
136
- carbs?: number | undefined;
137
- cholesterol?: number | undefined;
138
- fat?: number | undefined;
139
- fiber?: number | undefined;
140
- protein?: number | undefined;
141
- saturatedFat?: number | undefined;
142
- sodium?: number | undefined;
143
- sugar?: number | undefined;
144
- }, {
145
- calories: number;
146
- carbs?: number | undefined;
147
- cholesterol?: number | undefined;
148
- fat?: number | undefined;
149
- fiber?: number | undefined;
150
- protein?: number | undefined;
151
- saturatedFat?: number | undefined;
152
- sodium?: number | undefined;
153
- sugar?: number | undefined;
154
- }>>;
155
- servings: z.ZodNumber;
156
- spiciness: z.ZodEnum<["none", "mild", "medium", "hot"]>;
157
- time: z.ZodNumber;
158
- tips: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
159
- title: z.ZodString;
160
- }, "strip", z.ZodTypeAny, {
161
- dietaryTags: ("dairy_free" | "egg_free" | "gluten_free" | "halal" | "high_protein" | "keto" | "low_carb" | "low_fat" | "low_sodium" | "low_sugar" | "nut_free" | "pescatarian" | "soy_free" | "vegan" | "vegetarian")[];
162
- difficulty: "beginner" | "intermediate" | "advanced" | "expert";
163
- mealTypes: ("appetizer" | "breakfast" | "brunch" | "dessert" | "dinner" | "drink" | "lunch" | "snack")[];
164
- spiciness: "none" | "mild" | "medium" | "hot";
165
- title: string;
166
- allergens: ("celery" | "dairy" | "eggs" | "fish" | "gluten" | "lupin" | "mustard" | "nuts" | "peanuts" | "sesame" | "shellfish" | "soy" | "sulfites")[];
167
- confidence: number;
168
- cuisine: "african" | "american" | "brazilian" | "british" | "caribbean" | "chinese" | "egyptian" | "emirati" | "ethiopian" | "filipino" | "french" | "fusion" | "german" | "greek" | "indian" | "indonesian" | "italian" | "japanese" | "korean" | "lebanese" | "malaysian" | "mexican" | "moroccan" | "pakistani" | "persian" | "russian" | "saudi" | "spanish" | "sudanese" | "thai" | "turkish" | "vietnamese" | "other";
169
- ingredientSections: {
170
- slug: string;
171
- ingredients: {
172
- slug: string;
173
- name: string;
174
- required?: boolean | undefined;
175
- notes?: string | undefined;
176
- quantity?: number | undefined;
177
- unit?: "ml" | "l" | "tsp" | "tbsp" | "fl_oz" | "cup" | "pint" | "quart" | "gallon" | "mg" | "g" | "kg" | "oz" | "lb" | "piece" | "whole" | "half" | "quarter" | "slice" | "serving" | "clove" | "stalk" | "sprig" | "leaf" | "bunch" | "head" | "fillet" | "stick" | "sheet" | "can" | "package" | "bottle" | "jar" | "handful" | "pinch" | "dash" | "drop" | undefined;
178
- }[];
179
- title?: string | undefined;
180
- }[];
181
- instructions: {
182
- text: string;
183
- step: number;
184
- duration?: number | undefined;
185
- temperature?: {
186
- value: number;
187
- unit: "celsius" | "fahrenheit";
188
- } | undefined;
189
- }[];
190
- servings: number;
191
- time: number;
192
- description: string;
193
- equipment?: {
194
- slug: string;
195
- name: string;
196
- required?: boolean | undefined;
197
- notes?: string | undefined;
198
- }[] | undefined;
199
- nutrition?: {
200
- calories: number;
201
- carbs?: number | undefined;
202
- cholesterol?: number | undefined;
203
- fat?: number | undefined;
204
- fiber?: number | undefined;
205
- protein?: number | undefined;
206
- saturatedFat?: number | undefined;
207
- sodium?: number | undefined;
208
- sugar?: number | undefined;
209
- } | undefined;
210
- tips?: string[] | undefined;
211
- }, {
212
- dietaryTags: ("dairy_free" | "egg_free" | "gluten_free" | "halal" | "high_protein" | "keto" | "low_carb" | "low_fat" | "low_sodium" | "low_sugar" | "nut_free" | "pescatarian" | "soy_free" | "vegan" | "vegetarian")[];
213
- difficulty: "beginner" | "intermediate" | "advanced" | "expert";
214
- mealTypes: ("appetizer" | "breakfast" | "brunch" | "dessert" | "dinner" | "drink" | "lunch" | "snack")[];
215
- spiciness: "none" | "mild" | "medium" | "hot";
216
- title: string;
217
- allergens: ("celery" | "dairy" | "eggs" | "fish" | "gluten" | "lupin" | "mustard" | "nuts" | "peanuts" | "sesame" | "shellfish" | "soy" | "sulfites")[];
218
- confidence: number;
219
- cuisine: "african" | "american" | "brazilian" | "british" | "caribbean" | "chinese" | "egyptian" | "emirati" | "ethiopian" | "filipino" | "french" | "fusion" | "german" | "greek" | "indian" | "indonesian" | "italian" | "japanese" | "korean" | "lebanese" | "malaysian" | "mexican" | "moroccan" | "pakistani" | "persian" | "russian" | "saudi" | "spanish" | "sudanese" | "thai" | "turkish" | "vietnamese" | "other";
220
- ingredientSections: {
221
- slug: string;
222
- ingredients: {
223
- slug: string;
224
- name: string;
225
- required?: boolean | undefined;
226
- notes?: string | undefined;
227
- quantity?: number | undefined;
228
- unit?: "ml" | "l" | "tsp" | "tbsp" | "fl_oz" | "cup" | "pint" | "quart" | "gallon" | "mg" | "g" | "kg" | "oz" | "lb" | "piece" | "whole" | "half" | "quarter" | "slice" | "serving" | "clove" | "stalk" | "sprig" | "leaf" | "bunch" | "head" | "fillet" | "stick" | "sheet" | "can" | "package" | "bottle" | "jar" | "handful" | "pinch" | "dash" | "drop" | undefined;
229
- }[];
230
- title?: string | undefined;
231
- }[];
232
- instructions: {
233
- text: string;
234
- step: number;
235
- duration?: number | undefined;
236
- temperature?: {
237
- value: number;
238
- unit: "celsius" | "fahrenheit";
239
- } | undefined;
240
- }[];
241
- servings: number;
242
- time: number;
243
- description: string;
244
- equipment?: {
245
- slug: string;
246
- name: string;
247
- required?: boolean | undefined;
248
- notes?: string | undefined;
249
- }[] | undefined;
250
- nutrition?: {
251
- calories: number;
252
- carbs?: number | undefined;
253
- cholesterol?: number | undefined;
254
- fat?: number | undefined;
255
- fiber?: number | undefined;
256
- protein?: number | undefined;
257
- saturatedFat?: number | undefined;
258
- sodium?: number | undefined;
259
- sugar?: number | undefined;
260
- } | undefined;
261
- tips?: string[] | undefined;
262
- }>;
263
20
  //# sourceMappingURL=recipe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../../src/types/ai/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAWL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AASD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBK,CAAC"}
1
+ {"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../../src/types/ai/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACV,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,31 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AIRecipeSchema = void 0;
4
- const genkit_1 = require("genkit");
5
- const recipe_1 = require("../recipe");
6
- // Simplified schema for Gemini structured output
7
- // Removed complex constraints that cause "too many states" errors:
8
- // - Regex patterns on slugs (removed from nested schemas)
9
- // - High array max limits (instructions max 50, equipment max 20, etc)
10
- // - Numeric min/max bounds (confidence 0-1, servings 1-100, time 1-1440, etc)
11
- // - String length constraints (description 10-2000, title 3-200, etc)
12
- // These validations should be done in application logic if needed
13
- exports.AIRecipeSchema = genkit_1.z.object({
14
- allergens: genkit_1.z.array(recipe_1.AllergenSchema),
15
- confidence: genkit_1.z.number(),
16
- cuisine: recipe_1.CuisineSchema,
17
- description: genkit_1.z.string(),
18
- dietaryTags: genkit_1.z.array(recipe_1.DietaryTagSchema),
19
- difficulty: recipe_1.DifficultySchema,
20
- equipment: genkit_1.z.array(recipe_1.EquipmentSchema).optional(),
21
- ingredientSections: genkit_1.z.array(recipe_1.IngredientSectionSchema),
22
- instructions: genkit_1.z.array(recipe_1.InstructionSchema),
23
- mealTypes: genkit_1.z.array(recipe_1.MealTypeSchema),
24
- nutrition: recipe_1.NutritionSchema.optional(),
25
- servings: genkit_1.z.number(),
26
- spiciness: recipe_1.SpicinessSchema,
27
- time: genkit_1.z.number(),
28
- tips: genkit_1.z.array(genkit_1.z.string()).optional(),
29
- title: genkit_1.z.string(),
30
- });
31
3
  //# sourceMappingURL=recipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/types/ai/recipe.ts"],"names":[],"mappings":";;;AAAA,mCAA2B;AAC3B,sCAqBmB;AAqBnB,iDAAiD;AACjD,mEAAmE;AACnE,0DAA0D;AAC1D,uEAAuE;AACvE,8EAA8E;AAC9E,sEAAsE;AACtE,kEAAkE;AACrD,QAAA,cAAc,GAAG,UAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,UAAC,CAAC,KAAK,CAAC,uBAAc,CAAC;IAClC,UAAU,EAAE,UAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,sBAAa;IACtB,WAAW,EAAE,UAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,UAAC,CAAC,KAAK,CAAC,yBAAgB,CAAC;IACtC,UAAU,EAAE,yBAAgB;IAC5B,SAAS,EAAE,UAAC,CAAC,KAAK,CAAC,wBAAe,CAAC,CAAC,QAAQ,EAAE;IAC9C,kBAAkB,EAAE,UAAC,CAAC,KAAK,CAAC,gCAAuB,CAAC;IACpD,YAAY,EAAE,UAAC,CAAC,KAAK,CAAC,0BAAiB,CAAC;IACxC,SAAS,EAAE,UAAC,CAAC,KAAK,CAAC,uBAAc,CAAC;IAClC,SAAS,EAAE,wBAAe,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,UAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,wBAAe;IAC1B,IAAI,EAAE,UAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,UAAC,CAAC,KAAK,CAAC,UAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,UAAC,CAAC,MAAM,EAAE;CAClB,CAA+B,CAAC"}
1
+ {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/types/ai/recipe.ts"],"names":[],"mappings":""}
@@ -1,5 +1,4 @@
1
- import { z } from "genkit";
2
- import { type EquipmentContent, type IngredientSectionContent, type InstructionContent } from "../recipe";
1
+ import { EquipmentContent, IngredientSectionContent, InstructionContent } from "../recipe";
3
2
  export interface AIRecipeTranslation {
4
3
  description: string;
5
4
  equipment?: EquipmentContent[];
@@ -8,109 +7,4 @@ export interface AIRecipeTranslation {
8
7
  tips?: string[];
9
8
  title: string;
10
9
  }
11
- export declare const AIRecipeTranslationSchema: z.ZodObject<{
12
- description: z.ZodString;
13
- equipment: z.ZodOptional<z.ZodArray<z.ZodObject<{
14
- name: z.ZodString;
15
- notes: z.ZodOptional<z.ZodString>;
16
- slug: z.ZodString;
17
- }, "strip", z.ZodTypeAny, {
18
- slug: string;
19
- name: string;
20
- notes?: string | undefined;
21
- }, {
22
- slug: string;
23
- name: string;
24
- notes?: string | undefined;
25
- }>, "many">>;
26
- ingredientSections: z.ZodArray<z.ZodObject<{
27
- ingredients: z.ZodArray<z.ZodObject<{
28
- name: z.ZodString;
29
- notes: z.ZodOptional<z.ZodString>;
30
- slug: z.ZodString;
31
- }, "strip", z.ZodTypeAny, {
32
- slug: string;
33
- name: string;
34
- notes?: string | undefined;
35
- }, {
36
- slug: string;
37
- name: string;
38
- notes?: string | undefined;
39
- }>, "many">;
40
- slug: z.ZodString;
41
- title: z.ZodOptional<z.ZodString>;
42
- }, "strip", z.ZodTypeAny, {
43
- slug: string;
44
- ingredients: {
45
- slug: string;
46
- name: string;
47
- notes?: string | undefined;
48
- }[];
49
- title?: string | undefined;
50
- }, {
51
- slug: string;
52
- ingredients: {
53
- slug: string;
54
- name: string;
55
- notes?: string | undefined;
56
- }[];
57
- title?: string | undefined;
58
- }>, "many">;
59
- instructions: z.ZodArray<z.ZodObject<{
60
- step: z.ZodNumber;
61
- text: z.ZodString;
62
- }, "strip", z.ZodTypeAny, {
63
- text: string;
64
- step: number;
65
- }, {
66
- text: string;
67
- step: number;
68
- }>, "many">;
69
- tips: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
70
- title: z.ZodString;
71
- }, "strip", z.ZodTypeAny, {
72
- title: string;
73
- ingredientSections: {
74
- slug: string;
75
- ingredients: {
76
- slug: string;
77
- name: string;
78
- notes?: string | undefined;
79
- }[];
80
- title?: string | undefined;
81
- }[];
82
- instructions: {
83
- text: string;
84
- step: number;
85
- }[];
86
- description: string;
87
- equipment?: {
88
- slug: string;
89
- name: string;
90
- notes?: string | undefined;
91
- }[] | undefined;
92
- tips?: string[] | undefined;
93
- }, {
94
- title: string;
95
- ingredientSections: {
96
- slug: string;
97
- ingredients: {
98
- slug: string;
99
- name: string;
100
- notes?: string | undefined;
101
- }[];
102
- title?: string | undefined;
103
- }[];
104
- instructions: {
105
- text: string;
106
- step: number;
107
- }[];
108
- description: string;
109
- equipment?: {
110
- slug: string;
111
- name: string;
112
- notes?: string | undefined;
113
- }[] | undefined;
114
- tips?: string[] | undefined;
115
- }>;
116
10
  //# sourceMappingURL=translation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../src/types/ai/translation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACxB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAC/C,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOK,CAAC"}
1
+ {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../src/types/ai/translation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE3F,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAC/C,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,14 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AIRecipeTranslationSchema = void 0;
4
- const genkit_1 = require("genkit");
5
- const recipe_1 = require("../recipe");
6
- exports.AIRecipeTranslationSchema = genkit_1.z.object({
7
- description: genkit_1.z.string().min(10).max(2000),
8
- equipment: genkit_1.z.array(recipe_1.EquipmentContentSchema).optional(),
9
- ingredientSections: genkit_1.z.array(recipe_1.IngredientSectionContentSchema).min(1),
10
- instructions: genkit_1.z.array(recipe_1.InstructionContentSchema).min(1),
11
- tips: genkit_1.z.array(genkit_1.z.string().max(500)).optional(),
12
- title: genkit_1.z.string().min(3).max(200),
13
- });
14
3
  //# sourceMappingURL=translation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../src/types/ai/translation.ts"],"names":[],"mappings":";;;AAAA,mCAA2B;AAC3B,sCAOmB;AAWN,QAAA,yBAAyB,GAAG,UAAC,CAAC,MAAM,CAAC;IAChD,WAAW,EAAE,UAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACzC,SAAS,EAAE,UAAC,CAAC,KAAK,CAAC,+BAAsB,CAAC,CAAC,QAAQ,EAAE;IACrD,kBAAkB,EAAE,UAAC,CAAC,KAAK,CAAC,uCAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,YAAY,EAAE,UAAC,CAAC,KAAK,CAAC,iCAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,IAAI,EAAE,UAAC,CAAC,KAAK,CAAC,UAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,UAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAClC,CAA0C,CAAC"}
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../src/types/ai/translation.ts"],"names":[],"mappings":""}
@@ -1,15 +1,15 @@
1
- export type ApiSuccessResponse<T> = {
1
+ export interface ApiSuccessResponse<T> {
2
2
  success: true;
3
3
  data: T;
4
- };
5
- export type ApiErrorResponse = {
4
+ }
5
+ export interface ApiErrorResponse {
6
6
  success: false;
7
7
  error: {
8
8
  code: string;
9
9
  message: string;
10
10
  details?: unknown;
11
11
  };
12
- };
12
+ }
13
13
  export type ApiResponse<T> = ApiSuccessResponse<T> | ApiErrorResponse;
14
14
  export declare function success<T>(data: T): ApiSuccessResponse<T>;
15
15
  export declare function failure(code: string, message: string, details?: unknown): ApiErrorResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/core/api.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAEtE,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAEzD;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,gBAAgB,CAKlB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/core/api.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAEtE,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAEzD;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,gBAAgB,CAKlB"}
@@ -1,25 +1,5 @@
1
- import { z } from "genkit";
2
- import type { Timestamp } from "firebase-admin/firestore";
3
- export interface Asset {
4
- createdAt: Timestamp;
5
- id: string;
1
+ import { Entity } from "./entity";
2
+ export interface Asset extends Entity {
6
3
  imageUrl?: string;
7
- updatedAt: Timestamp;
8
4
  }
9
- export declare const AssetSchema: z.ZodObject<{
10
- createdAt: z.ZodType<Timestamp, z.ZodTypeDef, Timestamp>;
11
- id: z.ZodString;
12
- imageUrl: z.ZodOptional<z.ZodString>;
13
- updatedAt: z.ZodType<Timestamp, z.ZodTypeDef, Timestamp>;
14
- }, "strip", z.ZodTypeAny, {
15
- id: string;
16
- createdAt?: any;
17
- imageUrl?: string | undefined;
18
- updatedAt?: any;
19
- }, {
20
- id: string;
21
- createdAt?: any;
22
- imageUrl?: string | undefined;
23
- updatedAt?: any;
24
- }>;
25
5
  //# sourceMappingURL=asset.d.ts.map