@shophost/rest-api 2.0.31 → 2.0.33

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 (348) hide show
  1. package/package.json +13 -14
  2. package/src/app.js +53 -1
  3. package/src/app.js.map +1 -0
  4. package/src/core/auth/auth.schema.js +41 -1
  5. package/src/core/auth/auth.schema.js.map +1 -0
  6. package/src/core/auth/auth.util.js +44 -1
  7. package/src/core/auth/auth.util.js.map +1 -0
  8. package/src/core/auth/better-auth.lib.js +100 -1
  9. package/src/core/auth/better-auth.lib.js.map +1 -0
  10. package/src/core/auth/generate-password-hash.util.d.ts +3 -0
  11. package/src/core/auth/generate-password-hash.util.js +30 -1
  12. package/src/core/auth/generate-password-hash.util.js.map +1 -0
  13. package/src/core/auth/headers.schema.js +22 -1
  14. package/src/core/auth/headers.schema.js.map +1 -0
  15. package/src/core/auth/user.schema.js +30 -1
  16. package/src/core/auth/user.schema.js.map +1 -0
  17. package/src/core/db/__generated__/client/browser.d.ts +128 -0
  18. package/src/core/db/__generated__/client/browser.js +18 -1
  19. package/src/core/db/__generated__/client/browser.js.map +1 -0
  20. package/src/core/db/__generated__/client/client.d.ts +143 -0
  21. package/src/core/db/__generated__/client/client.js +35 -1
  22. package/src/core/db/__generated__/client/client.js.map +1 -0
  23. package/src/core/db/__generated__/client/commonInputTypes.js +11 -1
  24. package/src/core/db/__generated__/client/commonInputTypes.js.map +1 -0
  25. package/src/core/db/__generated__/client/enums.js +200 -1
  26. package/src/core/db/__generated__/client/enums.js.map +1 -0
  27. package/src/core/db/__generated__/client/internal/class.d.ts +343 -0
  28. package/src/core/db/__generated__/client/internal/class.js +55 -1
  29. package/src/core/db/__generated__/client/internal/class.js.map +1 -0
  30. package/src/core/db/__generated__/client/internal/prismaNamespace.d.ts +234 -0
  31. package/src/core/db/__generated__/client/internal/prismaNamespace.js +541 -1
  32. package/src/core/db/__generated__/client/internal/prismaNamespace.js.map +1 -0
  33. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.d.ts +15 -0
  34. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js +512 -1
  35. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js.map +1 -0
  36. package/src/core/db/__generated__/client/models/Account.d.ts +633 -0
  37. package/src/core/db/__generated__/client/models/Account.js +2 -1
  38. package/src/core/db/__generated__/client/models/Account.js.map +1 -0
  39. package/src/core/db/__generated__/client/models/Address.d.ts +706 -0
  40. package/src/core/db/__generated__/client/models/Address.js +2 -1
  41. package/src/core/db/__generated__/client/models/Address.js.map +1 -0
  42. package/src/core/db/__generated__/client/models/Campaign.d.ts +643 -0
  43. package/src/core/db/__generated__/client/models/Campaign.js +2 -1
  44. package/src/core/db/__generated__/client/models/Campaign.js.map +1 -0
  45. package/src/core/db/__generated__/client/models/ClosingTimes.d.ts +639 -0
  46. package/src/core/db/__generated__/client/models/ClosingTimes.js +2 -1
  47. package/src/core/db/__generated__/client/models/ClosingTimes.js.map +1 -0
  48. package/src/core/db/__generated__/client/models/File.d.ts +757 -0
  49. package/src/core/db/__generated__/client/models/File.js +2 -1
  50. package/src/core/db/__generated__/client/models/File.js.map +1 -0
  51. package/src/core/db/__generated__/client/models/Invitation.d.ts +633 -0
  52. package/src/core/db/__generated__/client/models/Invitation.js +2 -1
  53. package/src/core/db/__generated__/client/models/Invitation.js.map +1 -0
  54. package/src/core/db/__generated__/client/models/LegalEntity.d.ts +657 -0
  55. package/src/core/db/__generated__/client/models/LegalEntity.js +2 -1
  56. package/src/core/db/__generated__/client/models/LegalEntity.js.map +1 -0
  57. package/src/core/db/__generated__/client/models/Manufacturer.d.ts +684 -0
  58. package/src/core/db/__generated__/client/models/Manufacturer.js +2 -1
  59. package/src/core/db/__generated__/client/models/Manufacturer.js.map +1 -0
  60. package/src/core/db/__generated__/client/models/ManufacturerTranslation.d.ts +633 -0
  61. package/src/core/db/__generated__/client/models/ManufacturerTranslation.js +2 -1
  62. package/src/core/db/__generated__/client/models/ManufacturerTranslation.js.map +1 -0
  63. package/src/core/db/__generated__/client/models/Member.d.ts +633 -0
  64. package/src/core/db/__generated__/client/models/Member.js +2 -1
  65. package/src/core/db/__generated__/client/models/Member.js.map +1 -0
  66. package/src/core/db/__generated__/client/models/Modifier.d.ts +667 -0
  67. package/src/core/db/__generated__/client/models/Modifier.js +2 -1
  68. package/src/core/db/__generated__/client/models/Modifier.js.map +1 -0
  69. package/src/core/db/__generated__/client/models/ModifierGroup.d.ts +691 -0
  70. package/src/core/db/__generated__/client/models/ModifierGroup.js +2 -1
  71. package/src/core/db/__generated__/client/models/ModifierGroup.js.map +1 -0
  72. package/src/core/db/__generated__/client/models/ModifierGroupTranslation.d.ts +633 -0
  73. package/src/core/db/__generated__/client/models/ModifierGroupTranslation.js +2 -1
  74. package/src/core/db/__generated__/client/models/ModifierGroupTranslation.js.map +1 -0
  75. package/src/core/db/__generated__/client/models/OpeningTimes.d.ts +639 -0
  76. package/src/core/db/__generated__/client/models/OpeningTimes.js +2 -1
  77. package/src/core/db/__generated__/client/models/OpeningTimes.js.map +1 -0
  78. package/src/core/db/__generated__/client/models/Order.d.ts +705 -0
  79. package/src/core/db/__generated__/client/models/Order.js +2 -1
  80. package/src/core/db/__generated__/client/models/Order.js.map +1 -0
  81. package/src/core/db/__generated__/client/models/OrderItem.d.ts +691 -0
  82. package/src/core/db/__generated__/client/models/OrderItem.js +2 -1
  83. package/src/core/db/__generated__/client/models/OrderItem.js.map +1 -0
  84. package/src/core/db/__generated__/client/models/OrderItemTranslation.d.ts +633 -0
  85. package/src/core/db/__generated__/client/models/OrderItemTranslation.js +2 -1
  86. package/src/core/db/__generated__/client/models/OrderItemTranslation.js.map +1 -0
  87. package/src/core/db/__generated__/client/models/Organization.d.ts +816 -0
  88. package/src/core/db/__generated__/client/models/Organization.js +2 -1
  89. package/src/core/db/__generated__/client/models/Organization.js.map +1 -0
  90. package/src/core/db/__generated__/client/models/OrganizationConfiguration.d.ts +681 -0
  91. package/src/core/db/__generated__/client/models/OrganizationConfiguration.js +2 -1
  92. package/src/core/db/__generated__/client/models/OrganizationConfiguration.js.map +1 -0
  93. package/src/core/db/__generated__/client/models/Payment.d.ts +673 -0
  94. package/src/core/db/__generated__/client/models/Payment.js +2 -1
  95. package/src/core/db/__generated__/client/models/Payment.js.map +1 -0
  96. package/src/core/db/__generated__/client/models/PaymentSession.d.ts +643 -0
  97. package/src/core/db/__generated__/client/models/PaymentSession.js +2 -1
  98. package/src/core/db/__generated__/client/models/PaymentSession.js.map +1 -0
  99. package/src/core/db/__generated__/client/models/Product.d.ts +751 -0
  100. package/src/core/db/__generated__/client/models/Product.js +2 -1
  101. package/src/core/db/__generated__/client/models/Product.js.map +1 -0
  102. package/src/core/db/__generated__/client/models/ProductCategory.d.ts +694 -0
  103. package/src/core/db/__generated__/client/models/ProductCategory.js +2 -1
  104. package/src/core/db/__generated__/client/models/ProductCategory.js.map +1 -0
  105. package/src/core/db/__generated__/client/models/ProductCategoryTranslation.d.ts +633 -0
  106. package/src/core/db/__generated__/client/models/ProductCategoryTranslation.js +2 -1
  107. package/src/core/db/__generated__/client/models/ProductCategoryTranslation.js.map +1 -0
  108. package/src/core/db/__generated__/client/models/ProductSnapshot.d.ts +669 -0
  109. package/src/core/db/__generated__/client/models/ProductSnapshot.js +2 -1
  110. package/src/core/db/__generated__/client/models/ProductSnapshot.js.map +1 -0
  111. package/src/core/db/__generated__/client/models/ProductTranslation.d.ts +633 -0
  112. package/src/core/db/__generated__/client/models/ProductTranslation.js +2 -1
  113. package/src/core/db/__generated__/client/models/ProductTranslation.js.map +1 -0
  114. package/src/core/db/__generated__/client/models/Reservation.d.ts +655 -0
  115. package/src/core/db/__generated__/client/models/Reservation.js +2 -1
  116. package/src/core/db/__generated__/client/models/Reservation.js.map +1 -0
  117. package/src/core/db/__generated__/client/models/Session.d.ts +633 -0
  118. package/src/core/db/__generated__/client/models/Session.js +2 -1
  119. package/src/core/db/__generated__/client/models/Session.js.map +1 -0
  120. package/src/core/db/__generated__/client/models/ShippingMethod.d.ts +684 -0
  121. package/src/core/db/__generated__/client/models/ShippingMethod.js +2 -1
  122. package/src/core/db/__generated__/client/models/ShippingMethod.js.map +1 -0
  123. package/src/core/db/__generated__/client/models/ShippingZone.d.ts +643 -0
  124. package/src/core/db/__generated__/client/models/ShippingZone.js +2 -1
  125. package/src/core/db/__generated__/client/models/ShippingZone.js.map +1 -0
  126. package/src/core/db/__generated__/client/models/User.d.ts +741 -0
  127. package/src/core/db/__generated__/client/models/User.js +2 -1
  128. package/src/core/db/__generated__/client/models/User.js.map +1 -0
  129. package/src/core/db/__generated__/client/models/Verification.d.ts +597 -0
  130. package/src/core/db/__generated__/client/models/Verification.js +2 -1
  131. package/src/core/db/__generated__/client/models/Verification.js.map +1 -0
  132. package/src/core/db/__generated__/client/models.js +2 -1
  133. package/src/core/db/__generated__/client/models.js.map +1 -0
  134. package/src/core/db/index.js +2 -1
  135. package/src/core/db/index.js.map +1 -0
  136. package/src/core/exceptions/http-exception.js +9 -1
  137. package/src/core/exceptions/http-exception.js.map +1 -0
  138. package/src/core/hono/hono.js +123 -1
  139. package/src/core/hono/hono.js.map +1 -0
  140. package/src/core/lib/prisma.js +11 -1
  141. package/src/core/lib/prisma.js.map +1 -0
  142. package/src/core/logging/pino.js +5 -1
  143. package/src/core/logging/pino.js.map +1 -0
  144. package/src/core/notifications/email.service.d.ts +15 -0
  145. package/src/core/notifications/email.service.js +116 -1
  146. package/src/core/notifications/email.service.js.map +1 -0
  147. package/src/core/openapi/openapi.lib.js +26 -1
  148. package/src/core/openapi/openapi.lib.js.map +1 -0
  149. package/src/core/types/google-maps.types.js +2 -1
  150. package/src/core/types/google-maps.types.js.map +1 -0
  151. package/src/core/utils/currency.util.js +11 -1
  152. package/src/core/utils/currency.util.js.map +1 -0
  153. package/src/core/utils/env.util.js +8 -1
  154. package/src/core/utils/env.util.js.map +1 -0
  155. package/src/core/utils/object.util.d.ts +10 -0
  156. package/src/core/utils/object.util.js +39 -1
  157. package/src/core/utils/object.util.js.map +1 -0
  158. package/src/core/utils/translations.util.js +2 -0
  159. package/src/core/utils/translations.util.js.map +1 -0
  160. package/src/core/utils/zod.util.d.ts +12 -0
  161. package/src/core/utils/zod.util.js +85 -1
  162. package/src/core/utils/zod.util.js.map +1 -0
  163. package/src/db.js +3 -1
  164. package/src/db.js.map +1 -0
  165. package/src/features/access/access.handler.js +91 -1
  166. package/src/features/access/access.handler.js.map +1 -0
  167. package/src/features/access/access.route.js +220 -1
  168. package/src/features/access/access.route.js.map +1 -0
  169. package/src/features/access/access.schema.js +108 -1
  170. package/src/features/access/access.schema.js.map +1 -0
  171. package/src/features/access/access.service.js +294 -1
  172. package/src/features/access/access.service.js.map +1 -0
  173. package/src/features/cart/cart.handler.js +17 -1
  174. package/src/features/cart/cart.handler.js.map +1 -0
  175. package/src/features/cart/cart.route.js +32 -1
  176. package/src/features/cart/cart.route.js.map +1 -0
  177. package/src/features/cart/cart.schema.js +39 -1
  178. package/src/features/cart/cart.schema.js.map +1 -0
  179. package/src/features/cart/cart.service.d.ts +7 -0
  180. package/src/features/cart/cart.service.js +97 -1
  181. package/src/features/cart/cart.service.js.map +1 -0
  182. package/src/features/cart/cart.util.js +76 -1
  183. package/src/features/cart/cart.util.js.map +1 -0
  184. package/src/features/file/file.handler.js +23 -1
  185. package/src/features/file/file.handler.js.map +1 -0
  186. package/src/features/file/file.route.js +34 -1
  187. package/src/features/file/file.route.js.map +1 -0
  188. package/src/features/file/file.schema.js +77 -1
  189. package/src/features/file/file.schema.js.map +1 -0
  190. package/src/features/file/file.service.d.ts +6 -0
  191. package/src/features/file/file.service.js +66 -1
  192. package/src/features/file/file.service.js.map +1 -0
  193. package/src/features/health/health.handler.js +10 -1
  194. package/src/features/health/health.handler.js.map +1 -0
  195. package/src/features/health/health.route.js +25 -1
  196. package/src/features/health/health.route.js.map +1 -0
  197. package/src/features/index.js +16 -1
  198. package/src/features/index.js.map +1 -0
  199. package/src/features/location/location.handler.js +25 -1
  200. package/src/features/location/location.handler.js.map +1 -0
  201. package/src/features/location/location.route.js +56 -1
  202. package/src/features/location/location.route.js.map +1 -0
  203. package/src/features/location/location.schema.js +50 -1
  204. package/src/features/location/location.schema.js.map +1 -0
  205. package/src/features/location/location.service.d.ts +3 -0
  206. package/src/features/location/location.service.js +141 -1
  207. package/src/features/location/location.service.js.map +1 -0
  208. package/src/features/manufacturer/manufacturer.handler.js +53 -1
  209. package/src/features/manufacturer/manufacturer.handler.js.map +1 -0
  210. package/src/features/manufacturer/manufacturer.route.js +97 -1
  211. package/src/features/manufacturer/manufacturer.route.js.map +1 -0
  212. package/src/features/manufacturer/manufacturer.schema.js +125 -1
  213. package/src/features/manufacturer/manufacturer.schema.js.map +1 -0
  214. package/src/features/manufacturer/manufacturer.service.d.ts +19 -0
  215. package/src/features/manufacturer/manufacturer.service.js +190 -1
  216. package/src/features/manufacturer/manufacturer.service.js.map +1 -0
  217. package/src/features/order/emails/order-confirmation.email.js +229 -1
  218. package/src/features/order/emails/order-confirmation.email.js.map +1 -0
  219. package/src/features/order/emails/order-notification.email.js +229 -1
  220. package/src/features/order/emails/order-notification.email.js.map +1 -0
  221. package/src/features/order/fulfilment.schema.js +3 -1
  222. package/src/features/order/fulfilment.schema.js.map +1 -0
  223. package/src/features/order/order.handler.js +54 -1
  224. package/src/features/order/order.handler.js.map +1 -0
  225. package/src/features/order/order.route.js +111 -1
  226. package/src/features/order/order.route.js.map +1 -0
  227. package/src/features/order/order.schema.js +158 -1
  228. package/src/features/order/order.schema.js.map +1 -0
  229. package/src/features/order/order.service.d.ts +15 -0
  230. package/src/features/order/order.service.js +306 -1
  231. package/src/features/order/order.service.js.map +1 -0
  232. package/src/features/order/recipient.schema.js +38 -1
  233. package/src/features/order/recipient.schema.js.map +1 -0
  234. package/src/features/organization/legal-entity.schema.js +83 -1
  235. package/src/features/organization/legal-entity.schema.js.map +1 -0
  236. package/src/features/organization/organization-configuration.schema.js +115 -1
  237. package/src/features/organization/organization-configuration.schema.js.map +1 -0
  238. package/src/features/organization/organization.handler.js +48 -1
  239. package/src/features/organization/organization.handler.js.map +1 -0
  240. package/src/features/organization/organization.route.js +84 -1
  241. package/src/features/organization/organization.route.js.map +1 -0
  242. package/src/features/organization/organization.schema.js +64 -1
  243. package/src/features/organization/organization.schema.js.map +1 -0
  244. package/src/features/organization/organization.service.d.ts +15 -0
  245. package/src/features/organization/organization.service.js +334 -1
  246. package/src/features/organization/organization.service.js.map +1 -0
  247. package/src/features/payment/payment.handler.js +16 -1
  248. package/src/features/payment/payment.handler.js.map +1 -0
  249. package/src/features/payment/payment.route.js +22 -1
  250. package/src/features/payment/payment.route.js.map +1 -0
  251. package/src/features/payment/payment.schema.js +46 -1
  252. package/src/features/payment/payment.schema.js.map +1 -0
  253. package/src/features/payment/payment.service.js +100 -1
  254. package/src/features/payment/payment.service.js.map +1 -0
  255. package/src/features/payment/stripe.service.js +164 -1
  256. package/src/features/payment/stripe.service.js.map +1 -0
  257. package/src/features/product/product-modifier.schema.js +84 -1
  258. package/src/features/product/product-modifier.schema.js.map +1 -0
  259. package/src/features/product/product.handler.js +87 -1
  260. package/src/features/product/product.handler.js.map +1 -0
  261. package/src/features/product/product.route.js +179 -1
  262. package/src/features/product/product.route.js.map +1 -0
  263. package/src/features/product/product.schema.js +143 -1
  264. package/src/features/product/product.schema.js.map +1 -0
  265. package/src/features/product/product.service.d.ts +25 -0
  266. package/src/features/product/product.service.js +440 -1
  267. package/src/features/product/product.service.js.map +1 -0
  268. package/src/features/product-category/product-category.handler.js +59 -1
  269. package/src/features/product-category/product-category.handler.js.map +1 -0
  270. package/src/features/product-category/product-category.route.js +139 -1
  271. package/src/features/product-category/product-category.route.js.map +1 -0
  272. package/src/features/product-category/product-category.schema.js +86 -1
  273. package/src/features/product-category/product-category.schema.js.map +1 -0
  274. package/src/features/product-category/product-category.service.d.ts +22 -0
  275. package/src/features/product-category/product-category.service.js +220 -1
  276. package/src/features/product-category/product-category.service.js.map +1 -0
  277. package/src/features/reservation/emails/reservation-cancellation.email.js +82 -1
  278. package/src/features/reservation/emails/reservation-cancellation.email.js.map +1 -0
  279. package/src/features/reservation/emails/reservation-confirmation.email.js +82 -1
  280. package/src/features/reservation/emails/reservation-confirmation.email.js.map +1 -0
  281. package/src/features/reservation/emails/reservation-notification.email.js +93 -1
  282. package/src/features/reservation/emails/reservation-notification.email.js.map +1 -0
  283. package/src/features/reservation/reservation.handler.js +65 -1
  284. package/src/features/reservation/reservation.handler.js.map +1 -0
  285. package/src/features/reservation/reservation.route.js +167 -1
  286. package/src/features/reservation/reservation.route.js.map +1 -0
  287. package/src/features/reservation/reservation.schema.js +51 -1
  288. package/src/features/reservation/reservation.schema.js.map +1 -0
  289. package/src/features/reservation/reservation.service.d.ts +18 -0
  290. package/src/features/reservation/reservation.service.js +231 -1
  291. package/src/features/reservation/reservation.service.js.map +1 -0
  292. package/src/features/shipping/shipping.handler.js +32 -1
  293. package/src/features/shipping/shipping.handler.js.map +1 -0
  294. package/src/features/shipping/shipping.route.js +51 -1
  295. package/src/features/shipping/shipping.route.js.map +1 -0
  296. package/src/features/shipping/shipping.service.d.ts +7 -0
  297. package/src/features/shipping/shipping.service.js +96 -1
  298. package/src/features/shipping/shipping.service.js.map +1 -0
  299. package/src/features/shipping-method/shipping-method.handler.js +60 -1
  300. package/src/features/shipping-method/shipping-method.handler.js.map +1 -0
  301. package/src/features/shipping-method/shipping-method.route.js +144 -1
  302. package/src/features/shipping-method/shipping-method.route.js.map +1 -0
  303. package/src/features/shipping-method/shipping-method.schema.js +48 -1
  304. package/src/features/shipping-method/shipping-method.schema.js.map +1 -0
  305. package/src/features/shipping-method/shipping-method.service.d.ts +25 -0
  306. package/src/features/shipping-method/shipping-method.service.js +229 -1
  307. package/src/features/shipping-method/shipping-method.service.js.map +1 -0
  308. package/src/features/shipping-method/shipping-zone.schema.js +31 -1
  309. package/src/features/shipping-method/shipping-zone.schema.js.map +1 -0
  310. package/src/features/webhook/webhook.handler.js +50 -1
  311. package/src/features/webhook/webhook.handler.js.map +1 -0
  312. package/src/features/webhook/webhook.route.js +33 -1
  313. package/src/features/webhook/webhook.route.js.map +1 -0
  314. package/src/index.js +6 -1
  315. package/src/index.js.map +1 -0
  316. package/src/integrations/next.js +82 -1
  317. package/src/integrations/next.js.map +1 -0
  318. package/src/schemas/address.schema.d.ts +8 -0
  319. package/src/schemas/address.schema.js +112 -1
  320. package/src/schemas/address.schema.js.map +1 -0
  321. package/src/schemas/currency.schema.d.ts +42 -0
  322. package/src/schemas/currency.schema.js +118 -1
  323. package/src/schemas/currency.schema.js.map +1 -0
  324. package/src/schemas/error.schema.js +12 -1
  325. package/src/schemas/error.schema.js.map +1 -0
  326. package/src/schemas/index.js +29 -1
  327. package/src/schemas/index.js.map +1 -0
  328. package/src/schemas/locales.schema.js +238 -1
  329. package/src/schemas/locales.schema.js.map +1 -0
  330. package/src/schemas/number.schema.js +29 -1
  331. package/src/schemas/number.schema.js.map +1 -0
  332. package/src/schemas/pagination.schema.js +54 -1
  333. package/src/schemas/pagination.schema.js.map +1 -0
  334. package/src/schemas/params.schema.js +20 -1
  335. package/src/schemas/params.schema.js.map +1 -0
  336. package/src/schemas/queries.schema.js +6 -1
  337. package/src/schemas/queries.schema.js.map +1 -0
  338. package/src/test/global-setup.js +37 -1
  339. package/src/test/global-setup.js.map +1 -0
  340. package/src/test/integration/api-fixtures.js +160 -1
  341. package/src/test/integration/api-fixtures.js.map +1 -0
  342. package/src/test/integration/seed.js +368 -1
  343. package/src/test/integration/seed.js.map +1 -0
  344. package/src/test/integration/test-helpers.js +154 -1
  345. package/src/test/integration/test-helpers.js.map +1 -0
  346. package/src/test/setup-test-env.js +7 -1
  347. package/src/test/setup-test-env.js.map +1 -0
  348. package/scripts/minify.mjs +0 -110
@@ -1 +1,368 @@
1
- import{__awaiter as e}from"tslib";export const SEED={users:{owner:{id:"test-owner-user-00000001",email:"owner@shophost.test",firstname:"Test",lastname:"Owner",name:"Test Owner",image:null},outsider:{id:"test-outsider-user-00002",email:"outsider@shophost.test",firstname:"Test",lastname:"Outsider",name:"Test Outsider",image:null}},organizations:{primary:{id:"cseedorgprimary000001",slug:"test-primary",name:"Test Primary Organization",email:"primary@shophost.test",phone:"+15550001111",addressId:"cseedaddrorgprim00001",configurationId:"cseedcfgprimary000001"},secondary:{id:"cseedorgsecondary0001",slug:"test-secondary",name:"Test Secondary Organization",email:"secondary@shophost.test",phone:"+15550002222",addressId:"cseedaddrorgsec000001",configurationId:"cseedcfgsecondary0001"}},memberships:{ownerPrimary:{id:"cseedmbrownerprim0001"},ownerSecondary:{id:"cseedmbrownersec00001"}},catalog:{primary:{categoryId:"cseedcatprimary000001",manufacturerId:"cseedmfgprimary000001",productId:"cseedprdprimary000001",productSnapshotId:"cseedsnpprimary000001"},secondary:{categoryId:"cseedcatsecondary0001",manufacturerId:"cseedmfgsecondary0001",productId:"cseedprdsecondary0001",productSnapshotId:"cseedsnpsecondary0001"}},shipping:{primary:{methodId:"cseedshpprimary000001",zoneId:"cseedzneprimary000001"},secondary:{methodId:"cseedshpsecondary0001",zoneId:"cseedznrsecondary0001"}},addresses:{defaultShipping:{id:"cseedaddrshipping0001"}}};const a=new Date,r=SEED.users.owner.id;export const seedDatabase=t=>e(void 0,void 0,void 0,function*(){yield t.user.createMany({data:[{id:SEED.users.owner.id,email:SEED.users.owner.email,emailVerified:!1,firstname:SEED.users.owner.firstname,lastname:SEED.users.owner.lastname,name:SEED.users.owner.name,image:null,createdAt:a,updatedAt:a},{id:SEED.users.outsider.id,email:SEED.users.outsider.email,emailVerified:!1,firstname:SEED.users.outsider.firstname,lastname:SEED.users.outsider.lastname,name:SEED.users.outsider.name,image:null,createdAt:a,updatedAt:a}]}),yield t.address.createMany({data:[{id:SEED.organizations.primary.addressId,addressLineOne:"123 Main Street",addressLineTwo:"Suite 10",city:"New York",country:"US",doorNumber:"10A",latitude:40.7128,longitude:-74.006,zipCode:"10001",isDefault:!1,createdBy:r},{id:SEED.organizations.secondary.addressId,addressLineOne:"500 Lake Shore Drive",addressLineTwo:"Floor 4",city:"Chicago",country:"US",doorNumber:"4B",latitude:41.8781,longitude:-87.6298,zipCode:"60601",isDefault:!1,createdBy:r},{id:SEED.addresses.defaultShipping.id,firstname:"Test",lastname:"Owner",phone:"+15550009999",addressLineOne:"500 Market Street",addressLineTwo:"Suite A",city:"New York",country:"US",doorNumber:"10A",latitude:40.713,longitude:-74.0055,zipCode:"10001",placeId:"seed-shipping-address",deliveryInstructions:"Leave at reception",isDefault:!0,createdBy:r}]}),yield t.user.update({where:{id:r},data:{shippingAddresses:{connect:{id:SEED.addresses.defaultShipping.id}}}}),yield t.organizationConfiguration.createMany({data:[{id:SEED.organizations.primary.configurationId,countriesShipping:["US"],defaultCurrency:"USD",defaultLocale:"en",enableHostCheckout:!0,enableHostTracking:!0,hostname:"test-primary.shophost.test",isAcceptingOrders:!0,supportedLocales:["en","pl"],createdBy:r,updatedBy:r},{id:SEED.organizations.secondary.configurationId,countriesShipping:["US"],defaultCurrency:"USD",defaultLocale:"en",enableHostCheckout:!0,enableHostTracking:!0,hostname:"test-secondary.shophost.test",isAcceptingOrders:!0,supportedLocales:["en","pl"],createdBy:r,updatedBy:r}]}),yield t.organization.createMany({data:[{id:SEED.organizations.primary.id,name:SEED.organizations.primary.name,slug:SEED.organizations.primary.slug,email:SEED.organizations.primary.email,phone:SEED.organizations.primary.phone,addressId:SEED.organizations.primary.addressId,configurationId:SEED.organizations.primary.configurationId,createdBy:r},{id:SEED.organizations.secondary.id,name:SEED.organizations.secondary.name,slug:SEED.organizations.secondary.slug,email:SEED.organizations.secondary.email,phone:SEED.organizations.secondary.phone,addressId:SEED.organizations.secondary.addressId,configurationId:SEED.organizations.secondary.configurationId,createdBy:r}]}),yield t.member.createMany({data:[{id:SEED.memberships.ownerPrimary.id,organizationId:SEED.organizations.primary.id,userId:r,role:"owner"},{id:SEED.memberships.ownerSecondary.id,organizationId:SEED.organizations.secondary.id,userId:r,role:"owner"}]});for(const[e,d]of Object.entries(SEED.catalog)){const i=SEED.organizations[e].id;yield t.manufacturer.create({data:{id:d.manufacturerId,name:`Seed Manufacturer ${e}`,organizationId:i,createdBy:r,translations:{create:[{locale:"en",about:`About seed manufacturer ${e}`,createdBy:r},{locale:"pl",about:`O producencie ${e}`,createdBy:r}]}}}),yield t.productCategory.create({data:{id:d.categoryId,slug:`seed-category-${e}`,organizationId:i,createdBy:r,translations:{create:[{locale:"en",title:`Seed Category ${e}`,description:`Seed category ${e} in English`,createdBy:r},{locale:"pl",title:`Kategoria ${e}`,description:`Kategoria ${e} po polsku`,createdBy:r}]}}}),yield t.product.create({data:{id:d.productId,slug:`seed-product-${e}`,sku:`seed-sku-${e}`,basePrice:24.99,discountedBasePrice:19.99,currency:"USD",organizationId:i,manufacturerId:d.manufacturerId,tags:[],metadata:{seed:"true",variant:e},publishedAt:a,createdBy:r,categories:{connect:{id:d.categoryId}},translations:{create:[{locale:"en",title:`Seed Product ${e}`,description:`Seed product ${e} in English`,createdBy:r},{locale:"pl",title:`Produkt ${e}`,description:`Produkt ${e} po polsku`,createdBy:r}]}}}),yield t.productSnapshot.create({data:{id:d.productSnapshotId,productId:d.productId,data:{id:d.productId,sku:`seed-sku-${e}`,title:`Seed Product ${e}`},createdBy:r}}),yield t.product.update({where:{id:d.productId},data:{latestSnapshotId:d.productSnapshotId}});const o=SEED.shipping[e];yield t.shippingMethod.create({data:{id:o.methodId,title:`Seed Shipping ${e}`,providerName:`Seed Provider ${e}`,requireDateOfDelivery:!1,organizationId:i,createdBy:r,shippingZones:{create:{id:o.zoneId,title:`Seed Zone ${e}`,distanceUpto:10,price:4.99,minimumOrderAmount:0,eta:"30-45 min"}}}})}});export const TABLES=["OrderItemTranslation","OrderItem","Order","PaymentSession","Payment","Reservation","Campaign","ShippingZone","ShippingMethod","ProductSnapshot","ProductTranslation","Modifier","ModifierGroupTranslation","ModifierGroup","Product","ProductCategoryTranslation","ProductCategory","ManufacturerTranslation","Manufacturer","File","Invitation","Member","Organization","OrganizationConfiguration","OpeningTimes","ClosingTimes","LegalEntity","Address","Session","Account","Verification","User"];export const resetToSeed=a=>e(void 0,void 0,void 0,function*(){const e=TABLES.map(e=>`"${e}"`).join(", ");yield a.$executeRawUnsafe(`TRUNCATE TABLE ${e} CASCADE`),yield seedDatabase(a)});
1
+ import { __awaiter } from "tslib";
2
+ export const SEED = {
3
+ users: {
4
+ owner: {
5
+ id: "test-owner-user-00000001",
6
+ email: "owner@shophost.test",
7
+ firstname: "Test",
8
+ lastname: "Owner",
9
+ name: "Test Owner",
10
+ image: null,
11
+ },
12
+ outsider: {
13
+ id: "test-outsider-user-00002",
14
+ email: "outsider@shophost.test",
15
+ firstname: "Test",
16
+ lastname: "Outsider",
17
+ name: "Test Outsider",
18
+ image: null,
19
+ },
20
+ },
21
+ organizations: {
22
+ primary: {
23
+ id: "cseedorgprimary000001",
24
+ slug: "test-primary",
25
+ name: "Test Primary Organization",
26
+ email: "primary@shophost.test",
27
+ phone: "+15550001111",
28
+ addressId: "cseedaddrorgprim00001",
29
+ configurationId: "cseedcfgprimary000001",
30
+ },
31
+ secondary: {
32
+ id: "cseedorgsecondary0001",
33
+ slug: "test-secondary",
34
+ name: "Test Secondary Organization",
35
+ email: "secondary@shophost.test",
36
+ phone: "+15550002222",
37
+ addressId: "cseedaddrorgsec000001",
38
+ configurationId: "cseedcfgsecondary0001",
39
+ },
40
+ },
41
+ memberships: {
42
+ ownerPrimary: { id: "cseedmbrownerprim0001" },
43
+ ownerSecondary: { id: "cseedmbrownersec00001" },
44
+ },
45
+ catalog: {
46
+ primary: {
47
+ categoryId: "cseedcatprimary000001",
48
+ manufacturerId: "cseedmfgprimary000001",
49
+ productId: "cseedprdprimary000001",
50
+ productSnapshotId: "cseedsnpprimary000001",
51
+ },
52
+ secondary: {
53
+ categoryId: "cseedcatsecondary0001",
54
+ manufacturerId: "cseedmfgsecondary0001",
55
+ productId: "cseedprdsecondary0001",
56
+ productSnapshotId: "cseedsnpsecondary0001",
57
+ },
58
+ },
59
+ shipping: {
60
+ primary: {
61
+ methodId: "cseedshpprimary000001",
62
+ zoneId: "cseedzneprimary000001",
63
+ },
64
+ secondary: {
65
+ methodId: "cseedshpsecondary0001",
66
+ zoneId: "cseedznrsecondary0001",
67
+ },
68
+ },
69
+ addresses: {
70
+ defaultShipping: {
71
+ id: "cseedaddrshipping0001",
72
+ },
73
+ },
74
+ };
75
+ const now = new Date();
76
+ const userId = SEED.users.owner.id;
77
+ export const seedDatabase = (prisma) => __awaiter(void 0, void 0, void 0, function* () {
78
+ // Users
79
+ yield prisma.user.createMany({
80
+ data: [
81
+ {
82
+ id: SEED.users.owner.id,
83
+ email: SEED.users.owner.email,
84
+ emailVerified: false,
85
+ firstname: SEED.users.owner.firstname,
86
+ lastname: SEED.users.owner.lastname,
87
+ name: SEED.users.owner.name,
88
+ image: null,
89
+ createdAt: now,
90
+ updatedAt: now,
91
+ },
92
+ {
93
+ id: SEED.users.outsider.id,
94
+ email: SEED.users.outsider.email,
95
+ emailVerified: false,
96
+ firstname: SEED.users.outsider.firstname,
97
+ lastname: SEED.users.outsider.lastname,
98
+ name: SEED.users.outsider.name,
99
+ image: null,
100
+ createdAt: now,
101
+ updatedAt: now,
102
+ },
103
+ ],
104
+ });
105
+ // Addresses (for organizations)
106
+ yield prisma.address.createMany({
107
+ data: [
108
+ {
109
+ id: SEED.organizations.primary.addressId,
110
+ addressLineOne: "123 Main Street",
111
+ addressLineTwo: "Suite 10",
112
+ city: "New York",
113
+ country: "US",
114
+ doorNumber: "10A",
115
+ latitude: 40.7128,
116
+ longitude: -74.006,
117
+ zipCode: "10001",
118
+ isDefault: false,
119
+ createdBy: userId,
120
+ },
121
+ {
122
+ id: SEED.organizations.secondary.addressId,
123
+ addressLineOne: "500 Lake Shore Drive",
124
+ addressLineTwo: "Floor 4",
125
+ city: "Chicago",
126
+ country: "US",
127
+ doorNumber: "4B",
128
+ latitude: 41.8781,
129
+ longitude: -87.6298,
130
+ zipCode: "60601",
131
+ isDefault: false,
132
+ createdBy: userId,
133
+ },
134
+ {
135
+ id: SEED.addresses.defaultShipping.id,
136
+ firstname: "Test",
137
+ lastname: "Owner",
138
+ phone: "+15550009999",
139
+ addressLineOne: "500 Market Street",
140
+ addressLineTwo: "Suite A",
141
+ city: "New York",
142
+ country: "US",
143
+ doorNumber: "10A",
144
+ latitude: 40.713,
145
+ longitude: -74.0055,
146
+ zipCode: "10001",
147
+ placeId: "seed-shipping-address",
148
+ deliveryInstructions: "Leave at reception",
149
+ isDefault: true,
150
+ createdBy: userId,
151
+ },
152
+ ],
153
+ });
154
+ // Link shipping address to owner user
155
+ yield prisma.user.update({
156
+ where: { id: userId },
157
+ data: {
158
+ shippingAddresses: {
159
+ connect: { id: SEED.addresses.defaultShipping.id },
160
+ },
161
+ },
162
+ });
163
+ // Organization configurations
164
+ yield prisma.organizationConfiguration.createMany({
165
+ data: [
166
+ {
167
+ id: SEED.organizations.primary.configurationId,
168
+ countriesShipping: ["US"],
169
+ defaultCurrency: "USD",
170
+ defaultLocale: "en",
171
+ enableHostCheckout: true,
172
+ enableHostTracking: true,
173
+ hostname: "test-primary.shophost.test",
174
+ isAcceptingOrders: true,
175
+ supportedLocales: ["en", "pl"],
176
+ createdBy: userId,
177
+ updatedBy: userId,
178
+ },
179
+ {
180
+ id: SEED.organizations.secondary.configurationId,
181
+ countriesShipping: ["US"],
182
+ defaultCurrency: "USD",
183
+ defaultLocale: "en",
184
+ enableHostCheckout: true,
185
+ enableHostTracking: true,
186
+ hostname: "test-secondary.shophost.test",
187
+ isAcceptingOrders: true,
188
+ supportedLocales: ["en", "pl"],
189
+ createdBy: userId,
190
+ updatedBy: userId,
191
+ },
192
+ ],
193
+ });
194
+ // Organizations
195
+ yield prisma.organization.createMany({
196
+ data: [
197
+ {
198
+ id: SEED.organizations.primary.id,
199
+ name: SEED.organizations.primary.name,
200
+ slug: SEED.organizations.primary.slug,
201
+ email: SEED.organizations.primary.email,
202
+ phone: SEED.organizations.primary.phone,
203
+ addressId: SEED.organizations.primary.addressId,
204
+ configurationId: SEED.organizations.primary.configurationId,
205
+ createdBy: userId,
206
+ },
207
+ {
208
+ id: SEED.organizations.secondary.id,
209
+ name: SEED.organizations.secondary.name,
210
+ slug: SEED.organizations.secondary.slug,
211
+ email: SEED.organizations.secondary.email,
212
+ phone: SEED.organizations.secondary.phone,
213
+ addressId: SEED.organizations.secondary.addressId,
214
+ configurationId: SEED.organizations.secondary.configurationId,
215
+ createdBy: userId,
216
+ },
217
+ ],
218
+ });
219
+ // Memberships (owner belongs to both orgs)
220
+ yield prisma.member.createMany({
221
+ data: [
222
+ {
223
+ id: SEED.memberships.ownerPrimary.id,
224
+ organizationId: SEED.organizations.primary.id,
225
+ userId,
226
+ role: "owner",
227
+ },
228
+ {
229
+ id: SEED.memberships.ownerSecondary.id,
230
+ organizationId: SEED.organizations.secondary.id,
231
+ userId,
232
+ role: "owner",
233
+ },
234
+ ],
235
+ });
236
+ // Manufacturers
237
+ for (const [variant, catalog] of Object.entries(SEED.catalog)) {
238
+ const orgId = SEED.organizations[variant].id;
239
+ yield prisma.manufacturer.create({
240
+ data: {
241
+ id: catalog.manufacturerId,
242
+ name: `Seed Manufacturer ${variant}`,
243
+ organizationId: orgId,
244
+ createdBy: userId,
245
+ translations: {
246
+ create: [
247
+ { locale: "en", about: `About seed manufacturer ${variant}`, createdBy: userId },
248
+ { locale: "pl", about: `O producencie ${variant}`, createdBy: userId },
249
+ ],
250
+ },
251
+ },
252
+ });
253
+ // Product categories
254
+ yield prisma.productCategory.create({
255
+ data: {
256
+ id: catalog.categoryId,
257
+ slug: `seed-category-${variant}`,
258
+ organizationId: orgId,
259
+ createdBy: userId,
260
+ translations: {
261
+ create: [
262
+ { locale: "en", title: `Seed Category ${variant}`, description: `Seed category ${variant} in English`, createdBy: userId },
263
+ { locale: "pl", title: `Kategoria ${variant}`, description: `Kategoria ${variant} po polsku`, createdBy: userId },
264
+ ],
265
+ },
266
+ },
267
+ });
268
+ // Products
269
+ yield prisma.product.create({
270
+ data: {
271
+ id: catalog.productId,
272
+ slug: `seed-product-${variant}`,
273
+ sku: `seed-sku-${variant}`,
274
+ basePrice: 24.99,
275
+ discountedBasePrice: 19.99,
276
+ currency: "USD",
277
+ organizationId: orgId,
278
+ manufacturerId: catalog.manufacturerId,
279
+ tags: [],
280
+ metadata: { seed: "true", variant },
281
+ publishedAt: now,
282
+ createdBy: userId,
283
+ categories: { connect: { id: catalog.categoryId } },
284
+ translations: {
285
+ create: [
286
+ { locale: "en", title: `Seed Product ${variant}`, description: `Seed product ${variant} in English`, createdBy: userId },
287
+ { locale: "pl", title: `Produkt ${variant}`, description: `Produkt ${variant} po polsku`, createdBy: userId },
288
+ ],
289
+ },
290
+ },
291
+ });
292
+ // Product snapshot
293
+ yield prisma.productSnapshot.create({
294
+ data: {
295
+ id: catalog.productSnapshotId,
296
+ productId: catalog.productId,
297
+ data: { id: catalog.productId, sku: `seed-sku-${variant}`, title: `Seed Product ${variant}` },
298
+ createdBy: userId,
299
+ },
300
+ });
301
+ yield prisma.product.update({
302
+ where: { id: catalog.productId },
303
+ data: { latestSnapshotId: catalog.productSnapshotId },
304
+ });
305
+ // Shipping methods
306
+ const shipping = SEED.shipping[variant];
307
+ yield prisma.shippingMethod.create({
308
+ data: {
309
+ id: shipping.methodId,
310
+ title: `Seed Shipping ${variant}`,
311
+ providerName: `Seed Provider ${variant}`,
312
+ requireDateOfDelivery: false,
313
+ organizationId: orgId,
314
+ createdBy: userId,
315
+ shippingZones: {
316
+ create: {
317
+ id: shipping.zoneId,
318
+ title: `Seed Zone ${variant}`,
319
+ distanceUpto: 10,
320
+ price: 4.99,
321
+ minimumOrderAmount: 0,
322
+ eta: "30-45 min",
323
+ },
324
+ },
325
+ },
326
+ });
327
+ }
328
+ });
329
+ export const TABLES = [
330
+ "OrderItemTranslation",
331
+ "OrderItem",
332
+ "Order",
333
+ "PaymentSession",
334
+ "Payment",
335
+ "Reservation",
336
+ "Campaign",
337
+ "ShippingZone",
338
+ "ShippingMethod",
339
+ "ProductSnapshot",
340
+ "ProductTranslation",
341
+ "Modifier",
342
+ "ModifierGroupTranslation",
343
+ "ModifierGroup",
344
+ "Product",
345
+ "ProductCategoryTranslation",
346
+ "ProductCategory",
347
+ "ManufacturerTranslation",
348
+ "Manufacturer",
349
+ "File",
350
+ "Invitation",
351
+ "Member",
352
+ "Organization",
353
+ "OrganizationConfiguration",
354
+ "OpeningTimes",
355
+ "ClosingTimes",
356
+ "LegalEntity",
357
+ "Address",
358
+ "Session",
359
+ "Account",
360
+ "Verification",
361
+ "User",
362
+ ];
363
+ export const resetToSeed = (prisma) => __awaiter(void 0, void 0, void 0, function* () {
364
+ const tableNames = TABLES.map((t) => `"${t}"`).join(", ");
365
+ yield prisma.$executeRawUnsafe(`TRUNCATE TABLE ${tableNames} CASCADE`);
366
+ yield seedDatabase(prisma);
367
+ });
368
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/test/integration/seed.ts"],"names":[],"mappings":"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"}
@@ -1 +1,154 @@
1
- import{__awaiter as e}from"tslib";import{randomUUID as r}from"node:crypto";import{PrismaPg as t}from"@prisma/adapter-pg";import{buildApiApp as o}from"../../app";import{HttpException as i}from"../../core/exceptions/http-exception";import{createPrismaClient as a}from"../../core/lib/prisma";import{SEED as n,resetToSeed as s}from"./seed";export{SEED}from"./seed";let d=null;const p=()=>(d||(d=a({adapter:new t({connectionString:"postgresql://shophost:shophost@localhost:5555/shophost_test"}),log:["warn","error"]})),d);export const resetToSeed=()=>s(p());export const createTestApp=(r=n.users.owner,t={})=>{const a=p(),s={id:(d=r).id,email:d.email,firstname:d.firstname,lastname:d.lastname,name:d.name,image:d.image};var d;return o(Object.assign(Object.assign({},t),{maps:Object.assign({google:{key:"test-google-maps-key"}},t.maps),prisma:a,resolveAuth:(r,t)=>({getCurrentUser:()=>e(void 0,void 0,void 0,function*(){return s}),isGranted:()=>e(void 0,void 0,void 0,function*(){const e=(e=>{var r,t;const o=e.split("/").filter(Boolean);return"organizations"===o[0]?null!==(r=o[1])&&void 0!==r?r:"":null!==(t=o[0])&&void 0!==t?t:""})(t);if(!e)return s;if(!(yield a.member.findFirst({where:{organizationId:e,userId:s.id}})))throw new i(403,"Forbidden");return s})})}))};export const primaryContext=e=>({app:createTestApp(n.users.owner,e),user:n.users.owner,org:n.organizations.primary,catalog:n.catalog.primary,shipping:n.shipping.primary});export const secondaryContext=e=>({app:createTestApp(n.users.owner,e),user:n.users.owner,org:n.organizations.secondary,catalog:n.catalog.secondary,shipping:n.shipping.secondary});export const outsiderContext=e=>({app:createTestApp(n.users.outsider,e),user:n.users.outsider});export const createAdditionalUser=(...t)=>e(void 0,[...t],void 0,function*(e={}){var t,o,i,a;const n=p(),s=r(),d=null!==(t=e.firstname)&&void 0!==t?t:"Extra",m=null!==(o=e.lastname)&&void 0!==o?o:"User",l=null!==(i=e.name)&&void 0!==i?i:`${d} ${m}`,u=null!==(a=e.email)&&void 0!==a?a:`extra-${s}@shophost.test`,c=yield n.user.create({data:{id:s,email:u,emailVerified:!1,firstname:d,image:null,lastname:m,name:l,createdAt:new Date,updatedAt:new Date}}),g={id:c.id,email:c.email,firstname:c.firstname,lastname:c.lastname,name:c.name,image:c.image};return{app:createTestApp(g),user:g,dbUser:c}});export const seedMember=r=>e(void 0,void 0,void 0,function*(){var e;return p().member.create({data:{organizationId:r.organizationId,role:null!==(e=r.role)&&void 0!==e?e:"member",userId:r.userId},include:{user:{select:{id:!0,firstname:!0,lastname:!0,email:!0,image:!0}}}})});export const seedInvitation=t=>e(void 0,void 0,void 0,function*(){var e,o,i;return p().invitation.create({data:{id:r(),organizationId:t.organizationId,email:t.email,role:null!==(e=t.role)&&void 0!==e?e:"member",status:null!==(o=t.status)&&void 0!==o?o:"pending",expiresAt:null!==(i=t.expiresAt)&&void 0!==i?i:new Date(Date.now()+6048e5),inviterId:n.users.owner.id}})});
1
+ import { __awaiter } from "tslib";
2
+ import { randomUUID } from "node:crypto";
3
+ import { PrismaPg } from "@prisma/adapter-pg";
4
+ import { buildApiApp } from "../../app";
5
+ import { HttpException } from "../../core/exceptions/http-exception";
6
+ import { createPrismaClient, } from "../../core/lib/prisma";
7
+ import { SEED, resetToSeed as resetToSeedImpl } from "./seed";
8
+ export { SEED } from "./seed";
9
+ const TEST_DATABASE_URL = "postgresql://shophost:shophost@localhost:5555/shophost_test";
10
+ const GOOGLE_MAPS_TEST_KEY = "test-google-maps-key";
11
+ // ── Prisma (internal, never exposed to test files) ──
12
+ let _prisma = null;
13
+ const getTestPrisma = () => {
14
+ if (!_prisma) {
15
+ _prisma = createPrismaClient({
16
+ adapter: new PrismaPg({ connectionString: TEST_DATABASE_URL }),
17
+ log: ["warn", "error"],
18
+ });
19
+ }
20
+ return _prisma;
21
+ };
22
+ // ── Reset ──
23
+ export const resetToSeed = () => resetToSeedImpl(getTestPrisma());
24
+ // ── Auth app ──
25
+ const getOrganizationIdFromPath = (path) => {
26
+ var _a, _b;
27
+ const segments = path.split("/").filter(Boolean);
28
+ if (segments[0] === "organizations") {
29
+ return (_a = segments[1]) !== null && _a !== void 0 ? _a : "";
30
+ }
31
+ return (_b = segments[0]) !== null && _b !== void 0 ? _b : "";
32
+ };
33
+ const toUser = (seed) => ({
34
+ id: seed.id,
35
+ email: seed.email,
36
+ firstname: seed.firstname,
37
+ lastname: seed.lastname,
38
+ name: seed.name,
39
+ image: seed.image,
40
+ });
41
+ export const createTestApp = (user = SEED.users.owner, options = {}) => {
42
+ const prisma = getTestPrisma();
43
+ const authUser = toUser(user);
44
+ return buildApiApp(Object.assign(Object.assign({}, options), { maps: Object.assign({ google: { key: GOOGLE_MAPS_TEST_KEY } }, options.maps), prisma, resolveAuth: (_request, path) => ({
45
+ getCurrentUser: () => __awaiter(void 0, void 0, void 0, function* () { return authUser; }),
46
+ isGranted: () => __awaiter(void 0, void 0, void 0, function* () {
47
+ const organizationId = getOrganizationIdFromPath(path);
48
+ if (!organizationId) {
49
+ return authUser;
50
+ }
51
+ const membership = yield prisma.member.findFirst({
52
+ where: { organizationId, userId: authUser.id },
53
+ });
54
+ if (!membership) {
55
+ throw new HttpException(403, "Forbidden");
56
+ }
57
+ return authUser;
58
+ }),
59
+ }) }));
60
+ };
61
+ // ── Context factories ──
62
+ export const primaryContext = (options) => ({
63
+ app: createTestApp(SEED.users.owner, options),
64
+ user: SEED.users.owner,
65
+ org: SEED.organizations.primary,
66
+ catalog: SEED.catalog.primary,
67
+ shipping: SEED.shipping.primary,
68
+ });
69
+ export const secondaryContext = (options) => ({
70
+ app: createTestApp(SEED.users.owner, options),
71
+ user: SEED.users.owner,
72
+ org: SEED.organizations.secondary,
73
+ catalog: SEED.catalog.secondary,
74
+ shipping: SEED.shipping.secondary,
75
+ });
76
+ export const outsiderContext = (options) => ({
77
+ app: createTestApp(SEED.users.outsider, options),
78
+ user: SEED.users.outsider,
79
+ });
80
+ // ── Additional users (for access tests) ──
81
+ export const createAdditionalUser = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (overrides = {}) {
82
+ var _a, _b, _c, _d;
83
+ const prisma = getTestPrisma();
84
+ const id = randomUUID();
85
+ const firstname = (_a = overrides.firstname) !== null && _a !== void 0 ? _a : "Extra";
86
+ const lastname = (_b = overrides.lastname) !== null && _b !== void 0 ? _b : "User";
87
+ const name = (_c = overrides.name) !== null && _c !== void 0 ? _c : `${firstname} ${lastname}`;
88
+ const email = (_d = overrides.email) !== null && _d !== void 0 ? _d : `extra-${id}@shophost.test`;
89
+ const dbUser = yield prisma.user.create({
90
+ data: {
91
+ id,
92
+ email,
93
+ emailVerified: false,
94
+ firstname,
95
+ image: null,
96
+ lastname,
97
+ name,
98
+ createdAt: new Date(),
99
+ updatedAt: new Date(),
100
+ },
101
+ });
102
+ const user = {
103
+ id: dbUser.id,
104
+ email: dbUser.email,
105
+ firstname: dbUser.firstname,
106
+ lastname: dbUser.lastname,
107
+ name: dbUser.name,
108
+ image: dbUser.image,
109
+ };
110
+ return {
111
+ app: createTestApp(user),
112
+ user,
113
+ dbUser,
114
+ };
115
+ });
116
+ // ── Seed helpers (for access tests that need members/invitations) ──
117
+ export const seedMember = (input) => __awaiter(void 0, void 0, void 0, function* () {
118
+ var _a;
119
+ const prisma = getTestPrisma();
120
+ return prisma.member.create({
121
+ data: {
122
+ organizationId: input.organizationId,
123
+ role: (_a = input.role) !== null && _a !== void 0 ? _a : "member",
124
+ userId: input.userId,
125
+ },
126
+ include: {
127
+ user: {
128
+ select: {
129
+ id: true,
130
+ firstname: true,
131
+ lastname: true,
132
+ email: true,
133
+ image: true,
134
+ },
135
+ },
136
+ },
137
+ });
138
+ });
139
+ export const seedInvitation = (input) => __awaiter(void 0, void 0, void 0, function* () {
140
+ var _a, _b, _c;
141
+ const prisma = getTestPrisma();
142
+ return prisma.invitation.create({
143
+ data: {
144
+ id: randomUUID(),
145
+ organizationId: input.organizationId,
146
+ email: input.email,
147
+ role: (_a = input.role) !== null && _a !== void 0 ? _a : "member",
148
+ status: (_b = input.status) !== null && _b !== void 0 ? _b : "pending",
149
+ expiresAt: (_c = input.expiresAt) !== null && _c !== void 0 ? _c : new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
150
+ inviterId: SEED.users.owner.id,
151
+ },
152
+ });
153
+ });
154
+ //# sourceMappingURL=test-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/test/integration/test-helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1,7 @@
1
- var s,o,t,e;null!==(s=(t=process.env).DATABASE_URL)&&void 0!==s||(t.DATABASE_URL="postgresql://shophost:shophost@localhost:5555/shophost_test"),null!==(o=(e=process.env).NODE_ENV)&&void 0!==o||(e.NODE_ENV="test");
1
+ "use strict";
2
+ var _a, _b;
3
+ var _c, _d;
4
+ const TEST_DATABASE_URL = "postgresql://shophost:shophost@localhost:5555/shophost_test";
5
+ (_a = (_c = process.env).DATABASE_URL) !== null && _a !== void 0 ? _a : (_c.DATABASE_URL = TEST_DATABASE_URL);
6
+ (_b = (_d = process.env).NODE_ENV) !== null && _b !== void 0 ? _b : (_d.NODE_ENV = "test");
7
+ //# sourceMappingURL=setup-test-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-test-env.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/test/setup-test-env.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GACrB,6DAA6D,CAAC;AAEhE,YAAA,OAAO,CAAC,GAAG,EAAC,YAAY,uCAAZ,YAAY,GAAK,iBAAiB,EAAC;AAC/C,YAAA,OAAO,CAAC,GAAG,EAAC,QAAQ,uCAAR,QAAQ,GAAK,MAAM,EAAC"}