create-auto-app 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/dist/index.js +7 -7
  2. package/dist/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/shopping-app/auto.config.ts +6 -6
  5. package/templates/shopping-app/client/auto-configure.ts +1 -1
  6. package/templates/shopping-app/client/package.json +1 -1
  7. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-build.log +4 -0
  8. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-format.log +12 -0
  9. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-lint.log +4 -0
  10. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-test.log +12 -0
  11. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-type-check.log +5 -0
  12. package/templates/shopping-app/example-integrations/ai-chat-completion/CHANGELOG.md +134 -0
  13. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.d.ts +23 -0
  14. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.d.ts.map +1 -0
  15. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.js +41 -0
  16. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.js.map +1 -0
  17. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.d.ts +2 -0
  18. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.d.ts.map +1 -0
  19. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.js +2 -0
  20. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.js.map +1 -0
  21. package/templates/shopping-app/example-integrations/ai-chat-completion/eslint.config.ts +12 -0
  22. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/eslint +21 -0
  23. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/jiti +21 -0
  24. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/msw +21 -0
  25. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/tsc +21 -0
  26. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/tsserver +21 -0
  27. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/vite +21 -0
  28. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/vitest +21 -0
  29. package/templates/shopping-app/example-integrations/ai-chat-completion/package.json +29 -0
  30. package/templates/shopping-app/example-integrations/ai-chat-completion/src/ai-integration.ts +76 -0
  31. package/templates/shopping-app/example-integrations/ai-chat-completion/src/index.ts +1 -0
  32. package/templates/shopping-app/example-integrations/ai-chat-completion/tsconfig.json +10 -0
  33. package/templates/shopping-app/example-integrations/ai-chat-completion/tsconfig.test.json +7 -0
  34. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-build.log +4 -0
  35. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-format.log +12 -0
  36. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-lint.log +5 -0
  37. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-test.log +12 -0
  38. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-type-check.log +5 -0
  39. package/templates/shopping-app/example-integrations/cart/CHANGELOG.md +124 -0
  40. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.d.ts +30 -0
  41. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.d.ts.map +1 -0
  42. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.js +134 -0
  43. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.js.map +1 -0
  44. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.d.ts +3 -0
  45. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.d.ts.map +1 -0
  46. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.js +149 -0
  47. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.js.map +1 -0
  48. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.d.ts +8 -0
  49. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.d.ts.map +1 -0
  50. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.js +6 -0
  51. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.js.map +1 -0
  52. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.d.ts +123 -0
  53. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.d.ts.map +1 -0
  54. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.js +3 -0
  55. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.js.map +1 -0
  56. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.d.ts +46 -0
  57. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.d.ts.map +1 -0
  58. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.js +285 -0
  59. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.js.map +1 -0
  60. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.d.ts +13 -0
  61. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.d.ts.map +1 -0
  62. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.js +6 -0
  63. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.js.map +1 -0
  64. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.d.ts +19 -0
  65. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.d.ts.map +1 -0
  66. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.js +15 -0
  67. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.js.map +1 -0
  68. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.d.ts +18 -0
  69. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.d.ts.map +1 -0
  70. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.js +58 -0
  71. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.js.map +1 -0
  72. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.d.ts +34 -0
  73. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.d.ts.map +1 -0
  74. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.js +89 -0
  75. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.js.map +1 -0
  76. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.d.ts +34 -0
  77. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.d.ts.map +1 -0
  78. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.js +115 -0
  79. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.js.map +1 -0
  80. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.d.ts +79 -0
  81. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.d.ts.map +1 -0
  82. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.js +3 -0
  83. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.js.map +1 -0
  84. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.d.ts +2 -0
  85. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.d.ts.map +1 -0
  86. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.js +3 -0
  87. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.js.map +1 -0
  88. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.d.ts +158 -0
  89. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.d.ts.map +1 -0
  90. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.js +3 -0
  91. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.js.map +1 -0
  92. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.d.ts +382 -0
  93. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.d.ts.map +1 -0
  94. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.js +68 -0
  95. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.js.map +1 -0
  96. package/templates/shopping-app/example-integrations/cart/dist/index.d.ts +2 -0
  97. package/templates/shopping-app/example-integrations/cart/dist/index.d.ts.map +1 -0
  98. package/templates/shopping-app/example-integrations/cart/dist/index.js +2 -0
  99. package/templates/shopping-app/example-integrations/cart/dist/index.js.map +1 -0
  100. package/templates/shopping-app/example-integrations/cart/eslint.config.ts +12 -0
  101. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/eslint +21 -0
  102. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/jiti +21 -0
  103. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/msw +21 -0
  104. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/tsc +21 -0
  105. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/tsserver +21 -0
  106. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/vitest +21 -0
  107. package/templates/shopping-app/example-integrations/cart/package.json +31 -0
  108. package/templates/shopping-app/example-integrations/cart/src/cart-integration.ts +198 -0
  109. package/templates/shopping-app/example-integrations/cart/src/generated/cart/client/client.gen.ts +199 -0
  110. package/templates/shopping-app/example-integrations/cart/src/generated/cart/client/index.ts +25 -0
  111. package/templates/shopping-app/example-integrations/cart/src/generated/cart/client/types.gen.ts +232 -0
  112. package/templates/shopping-app/example-integrations/cart/src/generated/cart/client/utils.gen.ts +419 -0
  113. package/templates/shopping-app/example-integrations/cart/src/generated/cart/client.gen.ts +18 -0
  114. package/templates/shopping-app/example-integrations/cart/src/generated/cart/core/auth.gen.ts +42 -0
  115. package/templates/shopping-app/example-integrations/cart/src/generated/cart/core/bodySerializer.gen.ts +92 -0
  116. package/templates/shopping-app/example-integrations/cart/src/generated/cart/core/params.gen.ts +153 -0
  117. package/templates/shopping-app/example-integrations/cart/src/generated/cart/core/pathSerializer.gen.ts +181 -0
  118. package/templates/shopping-app/example-integrations/cart/src/generated/cart/core/types.gen.ts +120 -0
  119. package/templates/shopping-app/example-integrations/cart/src/generated/cart/index.ts +2 -0
  120. package/templates/shopping-app/example-integrations/cart/src/generated/cart/types.gen.ts +175 -0
  121. package/templates/shopping-app/example-integrations/cart/src/generated/cart/zod.gen.ts +78 -0
  122. package/templates/shopping-app/example-integrations/cart/src/index.ts +1 -0
  123. package/templates/shopping-app/example-integrations/cart/tsconfig.json +10 -0
  124. package/templates/shopping-app/example-integrations/cart/tsconfig.test.json +7 -0
  125. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-build.log +4 -0
  126. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-format.log +10 -0
  127. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-lint.log +4 -0
  128. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-test.log +12 -0
  129. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-type-check.log +4 -0
  130. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.d.ts +18 -0
  131. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.d.ts.map +1 -0
  132. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.js +28 -0
  133. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.js.map +1 -0
  134. package/templates/shopping-app/example-integrations/cart-api/dist/index.d.ts +4 -0
  135. package/templates/shopping-app/example-integrations/cart-api/dist/index.d.ts.map +1 -0
  136. package/templates/shopping-app/example-integrations/cart-api/dist/index.js +49 -0
  137. package/templates/shopping-app/example-integrations/cart-api/dist/index.js.map +1 -0
  138. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.d.ts +4 -0
  139. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.d.ts.map +1 -0
  140. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.js +261 -0
  141. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.js.map +1 -0
  142. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/nodemon +21 -0
  143. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/swagger-jsdoc +21 -0
  144. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node +21 -0
  145. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-cwd +21 -0
  146. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-esm +21 -0
  147. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-script +21 -0
  148. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-transpile-only +21 -0
  149. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-script +21 -0
  150. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/tsc +21 -0
  151. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/tsserver +21 -0
  152. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/tsx +21 -0
  153. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/vitest +21 -0
  154. package/templates/shopping-app/example-integrations/cart-api/package.json +49 -0
  155. package/templates/shopping-app/example-integrations/cart-api/src/data/cart.ts +45 -0
  156. package/templates/shopping-app/example-integrations/cart-api/src/index.ts +59 -0
  157. package/templates/shopping-app/example-integrations/cart-api/src/routes/cart.ts +289 -0
  158. package/templates/shopping-app/example-integrations/cart-api/tsconfig.json +9 -0
  159. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-build.log +4 -0
  160. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-format.log +12 -0
  161. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-lint.log +5 -0
  162. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-test.log +12 -0
  163. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-type-check.log +5 -0
  164. package/templates/shopping-app/example-integrations/product-catalogue/CHANGELOG.md +124 -0
  165. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.d.ts +3 -0
  166. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.d.ts.map +1 -0
  167. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.js +149 -0
  168. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.js.map +1 -0
  169. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.d.ts +8 -0
  170. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.d.ts.map +1 -0
  171. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.js +6 -0
  172. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.js.map +1 -0
  173. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.d.ts +123 -0
  174. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.d.ts.map +1 -0
  175. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.js +3 -0
  176. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.js.map +1 -0
  177. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.d.ts +46 -0
  178. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.d.ts.map +1 -0
  179. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.js +285 -0
  180. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.js.map +1 -0
  181. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.d.ts +13 -0
  182. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.d.ts.map +1 -0
  183. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.js +6 -0
  184. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.js.map +1 -0
  185. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.d.ts +19 -0
  186. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.d.ts.map +1 -0
  187. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.js +15 -0
  188. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.js.map +1 -0
  189. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.d.ts +18 -0
  190. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.d.ts.map +1 -0
  191. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.js +58 -0
  192. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.js.map +1 -0
  193. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.d.ts +34 -0
  194. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.d.ts.map +1 -0
  195. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.js +89 -0
  196. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.js.map +1 -0
  197. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.d.ts +34 -0
  198. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.d.ts.map +1 -0
  199. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.js +115 -0
  200. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.js.map +1 -0
  201. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.d.ts +79 -0
  202. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.d.ts.map +1 -0
  203. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.js +3 -0
  204. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.js.map +1 -0
  205. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.d.ts +2 -0
  206. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.d.ts.map +1 -0
  207. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.js +3 -0
  208. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.js.map +1 -0
  209. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.d.ts +115 -0
  210. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.d.ts.map +1 -0
  211. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.js +3 -0
  212. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.js.map +1 -0
  213. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.d.ts +206 -0
  214. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.d.ts.map +1 -0
  215. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.js +53 -0
  216. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.js.map +1 -0
  217. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.d.ts +2 -0
  218. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.d.ts.map +1 -0
  219. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.js +2 -0
  220. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.js.map +1 -0
  221. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.d.ts +32 -0
  222. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.d.ts.map +1 -0
  223. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.js +163 -0
  224. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.js.map +1 -0
  225. package/templates/shopping-app/example-integrations/product-catalogue/eslint.config.ts +12 -0
  226. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/eslint +21 -0
  227. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/jiti +21 -0
  228. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/msw +21 -0
  229. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/tsc +21 -0
  230. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/tsserver +21 -0
  231. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/vitest +21 -0
  232. package/templates/shopping-app/example-integrations/product-catalogue/package.json +31 -0
  233. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/client/client.gen.ts +199 -0
  234. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/client/index.ts +25 -0
  235. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/client/types.gen.ts +232 -0
  236. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/client/utils.gen.ts +419 -0
  237. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/client.gen.ts +18 -0
  238. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/core/auth.gen.ts +42 -0
  239. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/core/bodySerializer.gen.ts +92 -0
  240. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/core/params.gen.ts +153 -0
  241. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/core/pathSerializer.gen.ts +181 -0
  242. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/core/types.gen.ts +120 -0
  243. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/index.ts +2 -0
  244. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/types.gen.ts +133 -0
  245. package/templates/shopping-app/example-integrations/product-catalogue/src/generated/product-catalog/zod.gen.ts +62 -0
  246. package/templates/shopping-app/example-integrations/product-catalogue/src/index.ts +1 -0
  247. package/templates/shopping-app/example-integrations/product-catalogue/src/product-catalogue-integration.ts +225 -0
  248. package/templates/shopping-app/example-integrations/product-catalogue/tsconfig.json +10 -0
  249. package/templates/shopping-app/example-integrations/product-catalogue/tsconfig.test.json +7 -0
  250. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-build.log +4 -0
  251. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-format.log +10 -0
  252. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-lint.log +5 -0
  253. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-test.log +13 -0
  254. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-type-check.log +5 -0
  255. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.d.ts +10 -0
  256. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.d.ts.map +1 -0
  257. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.js +75 -0
  258. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.js.map +1 -0
  259. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.d.ts +4 -0
  260. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.d.ts.map +1 -0
  261. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.js +49 -0
  262. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.js.map +1 -0
  263. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.d.ts +4 -0
  264. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.d.ts.map +1 -0
  265. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.js +170 -0
  266. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.js.map +1 -0
  267. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/nodemon +21 -0
  268. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/swagger-jsdoc +21 -0
  269. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node +21 -0
  270. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-cwd +21 -0
  271. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-esm +21 -0
  272. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-script +21 -0
  273. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-transpile-only +21 -0
  274. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-script +21 -0
  275. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/tsc +21 -0
  276. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/tsserver +21 -0
  277. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/tsx +21 -0
  278. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/vitest +21 -0
  279. package/templates/shopping-app/example-integrations/product-catalogue-api/package.json +51 -0
  280. package/templates/shopping-app/example-integrations/product-catalogue-api/src/data/products.ts +90 -0
  281. package/templates/shopping-app/example-integrations/product-catalogue-api/src/index.ts +59 -0
  282. package/templates/shopping-app/example-integrations/product-catalogue-api/src/routes/products.ts +181 -0
  283. package/templates/shopping-app/example-integrations/product-catalogue-api/tsconfig.json +9 -0
  284. package/templates/shopping-app/flows/shopping-assistant.flow.ts +1 -3
  285. package/templates/shopping-app/package.json +10 -6
  286. package/templates/shopping-app/server/package.json +1 -1
  287. package/templates/shopping-app/server/src/integrations/ai-integration.ts +1 -1
  288. package/templates/shopping-app/server/src/integrations/cart-integration.ts +1 -1
  289. package/templates/shopping-app/server/src/integrations/product-catalogue-integration.ts +1 -1
@@ -0,0 +1,170 @@
1
+ import { Router } from 'express';
2
+ import { mockProducts } from '../data/products';
3
+ const router = Router();
4
+ /**
5
+ * @swagger
6
+ * components:
7
+ * schemas:
8
+ * ProductCatalogItem:
9
+ * type: object
10
+ * required:
11
+ * - productId
12
+ * - name
13
+ * - category
14
+ * - price
15
+ * - tags
16
+ * - imageUrl
17
+ * properties:
18
+ * productId:
19
+ * type: string
20
+ * description: Unique identifier for the product
21
+ * name:
22
+ * type: string
23
+ * description: Product name
24
+ * category:
25
+ * type: string
26
+ * description: Product category
27
+ * price:
28
+ * type: number
29
+ * description: Product price in dollars
30
+ * tags:
31
+ * type: array
32
+ * items:
33
+ * type: string
34
+ * description: Array of tags associated with the product
35
+ * imageUrl:
36
+ * type: string
37
+ * description: URL of the product image
38
+ */
39
+ /**
40
+ * @swagger
41
+ * /api/products:
42
+ * get:
43
+ * summary: Get all products
44
+ * description: Retrieve a list of all products in the catalog
45
+ * tags: [Products]
46
+ * responses:
47
+ * 200:
48
+ * description: List of all products
49
+ * content:
50
+ * application/json:
51
+ * schema:
52
+ * type: array
53
+ * items:
54
+ * $ref: '#/components/schemas/ProductCatalogItem'
55
+ */
56
+ router.get('/', (_req, res) => {
57
+ res.json(mockProducts);
58
+ });
59
+ /**
60
+ * @swagger
61
+ * /api/products/search:
62
+ * get:
63
+ * summary: Search products
64
+ * description: Search products by name or tags
65
+ * tags: [Products]
66
+ * parameters:
67
+ * - in: query
68
+ * name: q
69
+ * required: true
70
+ * schema:
71
+ * type: string
72
+ * description: Search query for product name or tags
73
+ * responses:
74
+ * 200:
75
+ * description: List of matching products
76
+ * content:
77
+ * application/json:
78
+ * schema:
79
+ * type: array
80
+ * items:
81
+ * $ref: '#/components/schemas/ProductCatalogItem'
82
+ * 400:
83
+ * description: Query parameter is missing
84
+ * content:
85
+ * application/json:
86
+ * schema:
87
+ * type: object
88
+ * properties:
89
+ * error:
90
+ * type: string
91
+ */
92
+ router.get('/search', (req, res) => {
93
+ const query = req.query.q;
94
+ if (!query) {
95
+ return res.status(400).json({ error: 'Query parameter "q" is required' });
96
+ }
97
+ const products = mockProducts.filter((p) => p.name.toLowerCase().includes(query.toLowerCase()) ||
98
+ p.tags.some((tag) => tag.toLowerCase().includes(query.toLowerCase())));
99
+ res.json(products);
100
+ });
101
+ /**
102
+ * @swagger
103
+ * /api/products/category/{category}:
104
+ * get:
105
+ * summary: Get products by category
106
+ * description: Retrieve all products in a specific category
107
+ * tags: [Products]
108
+ * parameters:
109
+ * - in: path
110
+ * name: category
111
+ * required: true
112
+ * schema:
113
+ * type: string
114
+ * description: Category name to filter by
115
+ * responses:
116
+ * 200:
117
+ * description: List of products in the category
118
+ * content:
119
+ * application/json:
120
+ * schema:
121
+ * type: array
122
+ * items:
123
+ * $ref: '#/components/schemas/ProductCatalogItem'
124
+ */
125
+ router.get('/category/:category', (req, res) => {
126
+ const { category } = req.params;
127
+ const products = mockProducts.filter((p) => p.category.toLowerCase() === category.toLowerCase());
128
+ res.json(products);
129
+ });
130
+ /**
131
+ * @swagger
132
+ * /api/products/{id}:
133
+ * get:
134
+ * summary: Get product by ID
135
+ * description: Retrieve a specific product by its ID
136
+ * tags: [Products]
137
+ * parameters:
138
+ * - in: path
139
+ * name: id
140
+ * required: true
141
+ * schema:
142
+ * type: string
143
+ * description: Product ID
144
+ * responses:
145
+ * 200:
146
+ * description: Product details
147
+ * content:
148
+ * application/json:
149
+ * schema:
150
+ * $ref: '#/components/schemas/ProductCatalogItem'
151
+ * 404:
152
+ * description: Product not found
153
+ * content:
154
+ * application/json:
155
+ * schema:
156
+ * type: object
157
+ * properties:
158
+ * error:
159
+ * type: string
160
+ */
161
+ router.get('/:id', (req, res) => {
162
+ const { id } = req.params;
163
+ const product = mockProducts.find((p) => p.productId === id);
164
+ if (!product) {
165
+ return res.status(404).json({ error: 'Product not found' });
166
+ }
167
+ res.json(product);
168
+ });
169
+ export default router;
170
+ //# sourceMappingURL=products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/routes/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA+B,MAAM,SAAS,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,MAAM,GAAkB,MAAM,EAAE,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;IAC/C,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAW,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CACxE,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IAChE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAA8B,CAAC;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACjG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACjD,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAwB,CAAC;IAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/nodemon@3.1.10/node_modules/nodemon/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/nodemon@3.1.10/node_modules/nodemon/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/nodemon@3.1.10/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/nodemon@3.1.10/node_modules/nodemon/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/nodemon@3.1.10/node_modules/nodemon/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/nodemon@3.1.10/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@"
19
+ else
20
+ exec node "$basedir/../nodemon/bin/nodemon.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/swagger-jsdoc@6.2.8_openapi-types@12.1.3/node_modules/swagger-jsdoc/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/swagger-jsdoc@6.2.8_openapi-types@12.1.3/node_modules/swagger-jsdoc/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/swagger-jsdoc@6.2.8_openapi-types@12.1.3/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/swagger-jsdoc@6.2.8_openapi-types@12.1.3/node_modules/swagger-jsdoc/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/swagger-jsdoc@6.2.8_openapi-types@12.1.3/node_modules/swagger-jsdoc/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/swagger-jsdoc@6.2.8_openapi-types@12.1.3/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../swagger-jsdoc/bin/swagger-jsdoc.js" "$@"
19
+ else
20
+ exec node "$basedir/../swagger-jsdoc/bin/swagger-jsdoc.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin.js" "$@"
19
+ else
20
+ exec node "$basedir/../ts-node/dist/bin.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-cwd.js" "$@"
19
+ else
20
+ exec node "$basedir/../ts-node/dist/bin-cwd.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-esm.js" "$@"
19
+ else
20
+ exec node "$basedir/../ts-node/dist/bin-esm.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-script.js" "$@"
19
+ else
20
+ exec node "$basedir/../ts-node/dist/bin-script.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-transpile.js" "$@"
19
+ else
20
+ exec node "$basedir/../ts-node/dist/bin-transpile.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules/ts-node/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/ts-node@10.9.2_@types+node@20.19.11_typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-script-deprecated.js" "$@"
19
+ else
20
+ exec node "$basedir/../ts-node/dist/bin-script-deprecated.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsc" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/tsx@4.20.5/node_modules/tsx/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/tsx@4.20.5/node_modules/tsx/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/tsx@4.20.5/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/tsx@4.20.5/node_modules/tsx/dist/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/tsx@4.20.5/node_modules/tsx/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/tsx@4.20.5/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../tsx/dist/cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../tsx/dist/cli.mjs" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.11_jsdom@26.1.0/node_modules/vitest/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.11_jsdom@26.1.0/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.11_jsdom@26.1.0/node_modules/vitest/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.11_jsdom@26.1.0/node_modules:/Users/sam/WebstormProjects/top/auto-engineer/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../vitest/vitest.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../vitest/vitest.mjs" "$@"
21
+ fi
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@examples/product-catalogue-service",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "description": "Example product catalog service with REST API",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "clean": "rm -rf dist",
11
+ "dev": "tsx watch src/index.ts",
12
+ "start": "tsx src/index.ts",
13
+ "test": "vitest run",
14
+ "test:watch": "vitest",
15
+ "lint": "eslint 'src/**/*.ts' --max-warnings 0 --config ../../eslint.config.ts",
16
+ "type-check": "tsc --noEmit",
17
+ "format": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../.prettierignore",
18
+ "lint:fix": "eslint 'src/**/*.ts' --fix --config ../../eslint.config.ts",
19
+ "format:fix": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../.prettierignore"
20
+ },
21
+ "dependencies": {
22
+ "cors": "^2.8.5",
23
+ "express": "^4.18.2",
24
+ "swagger-jsdoc": "^6.2.8",
25
+ "swagger-ui-express": "^5.0.1"
26
+ },
27
+ "devDependencies": {
28
+ "@types/cors": "^2.8.17",
29
+ "@types/express": "^4.17.21",
30
+ "@types/node": "^20.11.19",
31
+ "@types/supertest": "^2.0.16",
32
+ "@types/swagger-jsdoc": "^6.0.4",
33
+ "@types/swagger-ui-express": "^4.1.8",
34
+ "nodemon": "^3.0.2",
35
+ "supertest": "^6.3.3",
36
+ "ts-node": "^10.9.1",
37
+ "tsx": "^4.20.3",
38
+ "typescript": "^5.3.3",
39
+ "vitest": "^1.0.0"
40
+ },
41
+ "keywords": [
42
+ "product",
43
+ "catalog",
44
+ "service",
45
+ "example",
46
+ "rest",
47
+ "api"
48
+ ],
49
+ "author": "",
50
+ "license": "MIT"
51
+ }
@@ -0,0 +1,90 @@
1
+ export interface ProductCatalogItem {
2
+ productId: string;
3
+ name: string;
4
+ category: string;
5
+ price: number;
6
+ tags: string[];
7
+ imageUrl: string;
8
+ }
9
+
10
+ export const mockProducts: ProductCatalogItem[] = [
11
+ {
12
+ productId: 'prod-soccer-ball',
13
+ name: 'Super Soccer Ball',
14
+ category: 'Sports',
15
+ price: 10,
16
+ tags: ['soccer', 'sports'],
17
+ imageUrl:
18
+ 'https://plus.unsplash.com/premium_photo-1658506638118-524a66dc5cee?q=80&w=3544&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
19
+ },
20
+ {
21
+ productId: 'prod-craft-kit',
22
+ name: 'Deluxe Craft Kit',
23
+ category: 'Arts & Crafts',
24
+ price: 25,
25
+ tags: ['crafts', 'art', 'creative'],
26
+ imageUrl: 'https://m.media-amazon.com/images/I/81ekd9gpb5L._UF894,1000_QL80_.jpg',
27
+ },
28
+ {
29
+ productId: 'prod-laptop-bag',
30
+ name: 'Tech Laptop Backpack',
31
+ category: 'School Supplies',
32
+ price: 45,
33
+ tags: ['computers', 'tech', 'school'],
34
+ imageUrl:
35
+ 'https://images.unsplash.com/photo-1630522521764-9ec0064a7e6e?q=80&w=1587&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
36
+ },
37
+ {
38
+ productId: 'prod-mtg-starter',
39
+ name: 'Magic the Gathering Starter Set',
40
+ category: 'Games',
41
+ price: 30,
42
+ tags: ['magic', 'tcg', 'games'],
43
+ imageUrl: 'https://www.steelcitycollectibles.com/storage/img/uploads/products/full/mtgbloomstarterbox90586.jpg',
44
+ },
45
+ {
46
+ productId: 'prod-pencils',
47
+ name: 'Colorful Pencil Set',
48
+ category: 'School Supplies',
49
+ price: 8,
50
+ tags: ['school', 'art', 'writing'],
51
+ imageUrl:
52
+ 'https://images.unsplash.com/photo-1616014578457-c7f3cd043291?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
53
+ },
54
+ {
55
+ productId: 'prod-notebook',
56
+ name: 'Spiral Notebook',
57
+ category: 'School Supplies',
58
+ price: 5,
59
+ tags: ['school', 'writing', 'paper'],
60
+ imageUrl:
61
+ 'https://images.unsplash.com/photo-1598620616337-cb8f766489bd?q=80&w=1943&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
62
+ },
63
+ {
64
+ productId: 'prod-running-shoes',
65
+ name: 'Kids Running Shoes',
66
+ category: 'Sports',
67
+ price: 35,
68
+ tags: ['sports', 'running', 'shoes'],
69
+ imageUrl:
70
+ 'https://images.unsplash.com/photo-1571395770221-867c6e2251bc?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
71
+ },
72
+ {
73
+ productId: 'prod-paint-set',
74
+ name: 'Watercolor Paint Set',
75
+ category: 'Arts & Crafts',
76
+ price: 15,
77
+ tags: ['art', 'paint', 'creative'],
78
+ imageUrl:
79
+ 'https://images.unsplash.com/photo-1748100377329-429f657842de?q=80&w=3534&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
80
+ },
81
+ {
82
+ productId: 'prod-craft-glue',
83
+ name: 'All-Purpose Craft Glue',
84
+ category: 'Arts & Crafts',
85
+ price: 6,
86
+ tags: ['crafts', 'glue', 'art'],
87
+ imageUrl:
88
+ 'https://images.unsplash.com/photo-1511944239253-86eb39473667?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
89
+ },
90
+ ];