@commercejs/platform 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/README.md +156 -0
  2. package/dist/__tests__/platform.drizzle.test.d.ts +2 -0
  3. package/dist/__tests__/platform.drizzle.test.d.ts.map +1 -0
  4. package/dist/__tests__/platform.drizzle.test.js +27 -0
  5. package/dist/__tests__/platform.drizzle.test.js.map +1 -0
  6. package/dist/__tests__/platform.prisma.test.d.ts +2 -0
  7. package/dist/__tests__/platform.prisma.test.d.ts.map +1 -0
  8. package/dist/__tests__/platform.prisma.test.js +27 -0
  9. package/dist/__tests__/platform.prisma.test.js.map +1 -0
  10. package/dist/__tests__/platform.suite.d.ts +8 -0
  11. package/dist/__tests__/platform.suite.d.ts.map +1 -0
  12. package/dist/__tests__/platform.suite.js +406 -0
  13. package/dist/__tests__/platform.suite.js.map +1 -0
  14. package/dist/adapter.d.ts +20 -0
  15. package/dist/adapter.d.ts.map +1 -0
  16. package/dist/adapter.js +122 -0
  17. package/dist/adapter.js.map +1 -0
  18. package/dist/database/drizzle/client.d.ts +13 -0
  19. package/dist/database/drizzle/client.d.ts.map +1 -0
  20. package/dist/database/drizzle/client.js +29 -0
  21. package/dist/database/drizzle/client.js.map +1 -0
  22. package/dist/database/drizzle/index.d.ts +5 -0
  23. package/dist/database/drizzle/index.d.ts.map +1 -0
  24. package/dist/database/drizzle/index.js +7 -0
  25. package/dist/database/drizzle/index.js.map +1 -0
  26. package/dist/database/drizzle/migrate.d.ts +9 -0
  27. package/dist/database/drizzle/migrate.d.ts.map +1 -0
  28. package/dist/database/drizzle/migrate.js +317 -0
  29. package/dist/database/drizzle/migrate.js.map +1 -0
  30. package/dist/database/drizzle/queries/brands.d.ts +26 -0
  31. package/dist/database/drizzle/queries/brands.d.ts.map +1 -0
  32. package/dist/database/drizzle/queries/brands.js +19 -0
  33. package/dist/database/drizzle/queries/brands.js.map +1 -0
  34. package/dist/database/drizzle/queries/cart.d.ts +61 -0
  35. package/dist/database/drizzle/queries/cart.d.ts.map +1 -0
  36. package/dist/database/drizzle/queries/cart.js +57 -0
  37. package/dist/database/drizzle/queries/cart.js.map +1 -0
  38. package/dist/database/drizzle/queries/catalog.d.ts +149 -0
  39. package/dist/database/drizzle/queries/catalog.d.ts.map +1 -0
  40. package/dist/database/drizzle/queries/catalog.js +88 -0
  41. package/dist/database/drizzle/queries/catalog.js.map +1 -0
  42. package/dist/database/drizzle/queries/countries.d.ts +22 -0
  43. package/dist/database/drizzle/queries/countries.d.ts.map +1 -0
  44. package/dist/database/drizzle/queries/countries.js +19 -0
  45. package/dist/database/drizzle/queries/countries.js.map +1 -0
  46. package/dist/database/drizzle/queries/customers.d.ts +87 -0
  47. package/dist/database/drizzle/queries/customers.d.ts.map +1 -0
  48. package/dist/database/drizzle/queries/customers.js +41 -0
  49. package/dist/database/drizzle/queries/customers.js.map +1 -0
  50. package/dist/database/drizzle/queries/index.d.ts +12 -0
  51. package/dist/database/drizzle/queries/index.d.ts.map +1 -0
  52. package/dist/database/drizzle/queries/index.js +28 -0
  53. package/dist/database/drizzle/queries/index.js.map +1 -0
  54. package/dist/database/drizzle/queries/orders.d.ts +74 -0
  55. package/dist/database/drizzle/queries/orders.d.ts.map +1 -0
  56. package/dist/database/drizzle/queries/orders.js +39 -0
  57. package/dist/database/drizzle/queries/orders.js.map +1 -0
  58. package/dist/database/drizzle/queries/promotions.d.ts +61 -0
  59. package/dist/database/drizzle/queries/promotions.d.ts.map +1 -0
  60. package/dist/database/drizzle/queries/promotions.js +39 -0
  61. package/dist/database/drizzle/queries/promotions.js.map +1 -0
  62. package/dist/database/drizzle/queries/returns.d.ts +62 -0
  63. package/dist/database/drizzle/queries/returns.d.ts.map +1 -0
  64. package/dist/database/drizzle/queries/returns.js +58 -0
  65. package/dist/database/drizzle/queries/returns.js.map +1 -0
  66. package/dist/database/drizzle/queries/reviews.d.ts +25 -0
  67. package/dist/database/drizzle/queries/reviews.d.ts.map +1 -0
  68. package/dist/database/drizzle/queries/reviews.js +57 -0
  69. package/dist/database/drizzle/queries/reviews.js.map +1 -0
  70. package/dist/database/drizzle/queries/store.d.ts +22 -0
  71. package/dist/database/drizzle/queries/store.d.ts.map +1 -0
  72. package/dist/database/drizzle/queries/store.js +14 -0
  73. package/dist/database/drizzle/queries/store.js.map +1 -0
  74. package/dist/database/drizzle/queries/wishlists.d.ts +31 -0
  75. package/dist/database/drizzle/queries/wishlists.d.ts.map +1 -0
  76. package/dist/database/drizzle/queries/wishlists.js +44 -0
  77. package/dist/database/drizzle/queries/wishlists.js.map +1 -0
  78. package/dist/database/drizzle/schema/brands.d.ts +196 -0
  79. package/dist/database/drizzle/schema/brands.d.ts.map +1 -0
  80. package/dist/database/drizzle/schema/brands.js +17 -0
  81. package/dist/database/drizzle/schema/brands.js.map +1 -0
  82. package/dist/database/drizzle/schema/carts.d.ts +294 -0
  83. package/dist/database/drizzle/schema/carts.d.ts.map +1 -0
  84. package/dist/database/drizzle/schema/carts.js +28 -0
  85. package/dist/database/drizzle/schema/carts.js.map +1 -0
  86. package/dist/database/drizzle/schema/categories.d.ts +215 -0
  87. package/dist/database/drizzle/schema/categories.d.ts.map +1 -0
  88. package/dist/database/drizzle/schema/categories.js +18 -0
  89. package/dist/database/drizzle/schema/categories.js.map +1 -0
  90. package/dist/database/drizzle/schema/countries.d.ts +158 -0
  91. package/dist/database/drizzle/schema/countries.d.ts.map +1 -0
  92. package/dist/database/drizzle/schema/countries.js +15 -0
  93. package/dist/database/drizzle/schema/countries.js.map +1 -0
  94. package/dist/database/drizzle/schema/customers.d.ts +469 -0
  95. package/dist/database/drizzle/schema/customers.d.ts.map +1 -0
  96. package/dist/database/drizzle/schema/customers.js +33 -0
  97. package/dist/database/drizzle/schema/customers.js.map +1 -0
  98. package/dist/database/drizzle/schema/index.d.ts +13 -0
  99. package/dist/database/drizzle/schema/index.d.ts.map +1 -0
  100. package/dist/database/drizzle/schema/index.js +16 -0
  101. package/dist/database/drizzle/schema/index.js.map +1 -0
  102. package/dist/database/drizzle/schema/orders.d.ts +722 -0
  103. package/dist/database/drizzle/schema/orders.d.ts.map +1 -0
  104. package/dist/database/drizzle/schema/orders.js +63 -0
  105. package/dist/database/drizzle/schema/orders.js.map +1 -0
  106. package/dist/database/drizzle/schema/products.d.ts +1180 -0
  107. package/dist/database/drizzle/schema/products.d.ts.map +1 -0
  108. package/dist/database/drizzle/schema/products.js +99 -0
  109. package/dist/database/drizzle/schema/products.js.map +1 -0
  110. package/dist/database/drizzle/schema/promotions.d.ts +474 -0
  111. package/dist/database/drizzle/schema/promotions.d.ts.map +1 -0
  112. package/dist/database/drizzle/schema/promotions.js +34 -0
  113. package/dist/database/drizzle/schema/promotions.js.map +1 -0
  114. package/dist/database/drizzle/schema/returns.d.ts +467 -0
  115. package/dist/database/drizzle/schema/returns.d.ts.map +1 -0
  116. package/dist/database/drizzle/schema/returns.js +34 -0
  117. package/dist/database/drizzle/schema/returns.js.map +1 -0
  118. package/dist/database/drizzle/schema/reviews.d.ts +175 -0
  119. package/dist/database/drizzle/schema/reviews.d.ts.map +1 -0
  120. package/dist/database/drizzle/schema/reviews.js +17 -0
  121. package/dist/database/drizzle/schema/reviews.js.map +1 -0
  122. package/dist/database/drizzle/schema/store.d.ts +350 -0
  123. package/dist/database/drizzle/schema/store.d.ts.map +1 -0
  124. package/dist/database/drizzle/schema/store.js +25 -0
  125. package/dist/database/drizzle/schema/store.js.map +1 -0
  126. package/dist/database/drizzle/schema/wishlists.d.ts +167 -0
  127. package/dist/database/drizzle/schema/wishlists.d.ts.map +1 -0
  128. package/dist/database/drizzle/schema/wishlists.js +19 -0
  129. package/dist/database/drizzle/schema/wishlists.js.map +1 -0
  130. package/dist/database/drizzle/seed.d.ts +6 -0
  131. package/dist/database/drizzle/seed.d.ts.map +1 -0
  132. package/dist/database/drizzle/seed.js +166 -0
  133. package/dist/database/drizzle/seed.js.map +1 -0
  134. package/dist/database/index.d.ts +8 -0
  135. package/dist/database/index.d.ts.map +1 -0
  136. package/dist/database/index.js +12 -0
  137. package/dist/database/index.js.map +1 -0
  138. package/dist/database/prisma/client.d.ts +13 -0
  139. package/dist/database/prisma/client.d.ts.map +1 -0
  140. package/dist/database/prisma/client.js +25 -0
  141. package/dist/database/prisma/client.js.map +1 -0
  142. package/dist/database/prisma/generated/browser.d.ts +135 -0
  143. package/dist/database/prisma/generated/browser.d.ts.map +1 -0
  144. package/dist/database/prisma/generated/browser.js +18 -0
  145. package/dist/database/prisma/generated/browser.js.map +1 -0
  146. package/dist/database/prisma/generated/client.d.ts +152 -0
  147. package/dist/database/prisma/generated/client.d.ts.map +1 -0
  148. package/dist/database/prisma/generated/client.js +33 -0
  149. package/dist/database/prisma/generated/client.js.map +1 -0
  150. package/dist/database/prisma/generated/commonInputTypes.d.ts +344 -0
  151. package/dist/database/prisma/generated/commonInputTypes.d.ts.map +1 -0
  152. package/dist/database/prisma/generated/commonInputTypes.js +11 -0
  153. package/dist/database/prisma/generated/commonInputTypes.js.map +1 -0
  154. package/dist/database/prisma/generated/enums.d.ts +2 -0
  155. package/dist/database/prisma/generated/enums.d.ts.map +1 -0
  156. package/dist/database/prisma/generated/enums.js +11 -0
  157. package/dist/database/prisma/generated/enums.js.map +1 -0
  158. package/dist/database/prisma/generated/internal/class.d.ts +402 -0
  159. package/dist/database/prisma/generated/internal/class.d.ts.map +1 -0
  160. package/dist/database/prisma/generated/internal/class.js +42 -0
  161. package/dist/database/prisma/generated/internal/class.js.map +1 -0
  162. package/dist/database/prisma/generated/internal/prismaNamespace.d.ts +2735 -0
  163. package/dist/database/prisma/generated/internal/prismaNamespace.d.ts.map +1 -0
  164. package/dist/database/prisma/generated/internal/prismaNamespace.js +415 -0
  165. package/dist/database/prisma/generated/internal/prismaNamespace.js.map +1 -0
  166. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.d.ts +400 -0
  167. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -0
  168. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.js +386 -0
  169. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
  170. package/dist/database/prisma/generated/models/Brand.d.ts +1141 -0
  171. package/dist/database/prisma/generated/models/Brand.d.ts.map +1 -0
  172. package/dist/database/prisma/generated/models/Brand.js +2 -0
  173. package/dist/database/prisma/generated/models/Brand.js.map +1 -0
  174. package/dist/database/prisma/generated/models/Cart.d.ts +1464 -0
  175. package/dist/database/prisma/generated/models/Cart.d.ts.map +1 -0
  176. package/dist/database/prisma/generated/models/Cart.js +2 -0
  177. package/dist/database/prisma/generated/models/Cart.js.map +1 -0
  178. package/dist/database/prisma/generated/models/CartItem.d.ts +1487 -0
  179. package/dist/database/prisma/generated/models/CartItem.d.ts.map +1 -0
  180. package/dist/database/prisma/generated/models/CartItem.js +2 -0
  181. package/dist/database/prisma/generated/models/CartItem.js.map +1 -0
  182. package/dist/database/prisma/generated/models/Category.d.ts +1717 -0
  183. package/dist/database/prisma/generated/models/Category.d.ts.map +1 -0
  184. package/dist/database/prisma/generated/models/Category.js +2 -0
  185. package/dist/database/prisma/generated/models/Category.js.map +1 -0
  186. package/dist/database/prisma/generated/models/Country.d.ts +1076 -0
  187. package/dist/database/prisma/generated/models/Country.d.ts.map +1 -0
  188. package/dist/database/prisma/generated/models/Country.js +2 -0
  189. package/dist/database/prisma/generated/models/Country.js.map +1 -0
  190. package/dist/database/prisma/generated/models/Coupon.d.ts +1242 -0
  191. package/dist/database/prisma/generated/models/Coupon.d.ts.map +1 -0
  192. package/dist/database/prisma/generated/models/Coupon.js +2 -0
  193. package/dist/database/prisma/generated/models/Coupon.js.map +1 -0
  194. package/dist/database/prisma/generated/models/Customer.d.ts +1536 -0
  195. package/dist/database/prisma/generated/models/Customer.d.ts.map +1 -0
  196. package/dist/database/prisma/generated/models/Customer.js +2 -0
  197. package/dist/database/prisma/generated/models/Customer.js.map +1 -0
  198. package/dist/database/prisma/generated/models/CustomerAddress.d.ts +1519 -0
  199. package/dist/database/prisma/generated/models/CustomerAddress.d.ts.map +1 -0
  200. package/dist/database/prisma/generated/models/CustomerAddress.js +2 -0
  201. package/dist/database/prisma/generated/models/CustomerAddress.js.map +1 -0
  202. package/dist/database/prisma/generated/models/Order.d.ts +2136 -0
  203. package/dist/database/prisma/generated/models/Order.d.ts.map +1 -0
  204. package/dist/database/prisma/generated/models/Order.js +2 -0
  205. package/dist/database/prisma/generated/models/Order.js.map +1 -0
  206. package/dist/database/prisma/generated/models/OrderHistory.d.ts +1204 -0
  207. package/dist/database/prisma/generated/models/OrderHistory.d.ts.map +1 -0
  208. package/dist/database/prisma/generated/models/OrderHistory.js +2 -0
  209. package/dist/database/prisma/generated/models/OrderHistory.js.map +1 -0
  210. package/dist/database/prisma/generated/models/OrderItem.d.ts +1464 -0
  211. package/dist/database/prisma/generated/models/OrderItem.d.ts.map +1 -0
  212. package/dist/database/prisma/generated/models/OrderItem.js +2 -0
  213. package/dist/database/prisma/generated/models/OrderItem.js.map +1 -0
  214. package/dist/database/prisma/generated/models/Product.d.ts +2969 -0
  215. package/dist/database/prisma/generated/models/Product.d.ts.map +1 -0
  216. package/dist/database/prisma/generated/models/Product.js +2 -0
  217. package/dist/database/prisma/generated/models/Product.js.map +1 -0
  218. package/dist/database/prisma/generated/models/ProductAttribute.d.ts +1239 -0
  219. package/dist/database/prisma/generated/models/ProductAttribute.d.ts.map +1 -0
  220. package/dist/database/prisma/generated/models/ProductAttribute.js +2 -0
  221. package/dist/database/prisma/generated/models/ProductAttribute.js.map +1 -0
  222. package/dist/database/prisma/generated/models/ProductCategory.d.ts +1154 -0
  223. package/dist/database/prisma/generated/models/ProductCategory.d.ts.map +1 -0
  224. package/dist/database/prisma/generated/models/ProductCategory.js +2 -0
  225. package/dist/database/prisma/generated/models/ProductCategory.js.map +1 -0
  226. package/dist/database/prisma/generated/models/ProductImage.d.ts +1242 -0
  227. package/dist/database/prisma/generated/models/ProductImage.d.ts.map +1 -0
  228. package/dist/database/prisma/generated/models/ProductImage.js +2 -0
  229. package/dist/database/prisma/generated/models/ProductImage.js.map +1 -0
  230. package/dist/database/prisma/generated/models/ProductOption.d.ts +1328 -0
  231. package/dist/database/prisma/generated/models/ProductOption.d.ts.map +1 -0
  232. package/dist/database/prisma/generated/models/ProductOption.js +2 -0
  233. package/dist/database/prisma/generated/models/ProductOption.js.map +1 -0
  234. package/dist/database/prisma/generated/models/ProductOptionValue.d.ts +1207 -0
  235. package/dist/database/prisma/generated/models/ProductOptionValue.d.ts.map +1 -0
  236. package/dist/database/prisma/generated/models/ProductOptionValue.js +2 -0
  237. package/dist/database/prisma/generated/models/ProductOptionValue.js.map +1 -0
  238. package/dist/database/prisma/generated/models/ProductTag.d.ts +1099 -0
  239. package/dist/database/prisma/generated/models/ProductTag.d.ts.map +1 -0
  240. package/dist/database/prisma/generated/models/ProductTag.js +2 -0
  241. package/dist/database/prisma/generated/models/ProductTag.js.map +1 -0
  242. package/dist/database/prisma/generated/models/ProductVariant.d.ts +1543 -0
  243. package/dist/database/prisma/generated/models/ProductVariant.d.ts.map +1 -0
  244. package/dist/database/prisma/generated/models/ProductVariant.js +2 -0
  245. package/dist/database/prisma/generated/models/ProductVariant.js.map +1 -0
  246. package/dist/database/prisma/generated/models/Promotion.d.ts +1658 -0
  247. package/dist/database/prisma/generated/models/Promotion.d.ts.map +1 -0
  248. package/dist/database/prisma/generated/models/Promotion.js +2 -0
  249. package/dist/database/prisma/generated/models/Promotion.js.map +1 -0
  250. package/dist/database/prisma/generated/models/Return.d.ts +1448 -0
  251. package/dist/database/prisma/generated/models/Return.d.ts.map +1 -0
  252. package/dist/database/prisma/generated/models/Return.js +2 -0
  253. package/dist/database/prisma/generated/models/Return.js.map +1 -0
  254. package/dist/database/prisma/generated/models/ReturnItem.d.ts +1417 -0
  255. package/dist/database/prisma/generated/models/ReturnItem.d.ts.map +1 -0
  256. package/dist/database/prisma/generated/models/ReturnItem.js +2 -0
  257. package/dist/database/prisma/generated/models/ReturnItem.js.map +1 -0
  258. package/dist/database/prisma/generated/models/Review.d.ts +1142 -0
  259. package/dist/database/prisma/generated/models/Review.d.ts.map +1 -0
  260. package/dist/database/prisma/generated/models/Review.js +2 -0
  261. package/dist/database/prisma/generated/models/Review.js.map +1 -0
  262. package/dist/database/prisma/generated/models/StoreInfo.d.ts +1356 -0
  263. package/dist/database/prisma/generated/models/StoreInfo.d.ts.map +1 -0
  264. package/dist/database/prisma/generated/models/StoreInfo.js +2 -0
  265. package/dist/database/prisma/generated/models/StoreInfo.js.map +1 -0
  266. package/dist/database/prisma/generated/models/Wishlist.d.ts +1090 -0
  267. package/dist/database/prisma/generated/models/Wishlist.d.ts.map +1 -0
  268. package/dist/database/prisma/generated/models/Wishlist.js +2 -0
  269. package/dist/database/prisma/generated/models/Wishlist.js.map +1 -0
  270. package/dist/database/prisma/generated/models/WishlistItem.d.ts +1169 -0
  271. package/dist/database/prisma/generated/models/WishlistItem.d.ts.map +1 -0
  272. package/dist/database/prisma/generated/models/WishlistItem.js +2 -0
  273. package/dist/database/prisma/generated/models/WishlistItem.js.map +1 -0
  274. package/dist/database/prisma/generated/models.d.ts +28 -0
  275. package/dist/database/prisma/generated/models.d.ts.map +1 -0
  276. package/dist/database/prisma/generated/models.js +2 -0
  277. package/dist/database/prisma/generated/models.js.map +1 -0
  278. package/dist/database/prisma/index.d.ts +5 -0
  279. package/dist/database/prisma/index.d.ts.map +1 -0
  280. package/dist/database/prisma/index.js +7 -0
  281. package/dist/database/prisma/index.js.map +1 -0
  282. package/dist/database/prisma/migrate.d.ts +8 -0
  283. package/dist/database/prisma/migrate.d.ts.map +1 -0
  284. package/dist/database/prisma/migrate.js +323 -0
  285. package/dist/database/prisma/migrate.js.map +1 -0
  286. package/dist/database/prisma/queries/brands.d.ts +26 -0
  287. package/dist/database/prisma/queries/brands.d.ts.map +1 -0
  288. package/dist/database/prisma/queries/brands.js +17 -0
  289. package/dist/database/prisma/queries/brands.js.map +1 -0
  290. package/dist/database/prisma/queries/cart.d.ts +61 -0
  291. package/dist/database/prisma/queries/cart.d.ts.map +1 -0
  292. package/dist/database/prisma/queries/cart.js +68 -0
  293. package/dist/database/prisma/queries/cart.js.map +1 -0
  294. package/dist/database/prisma/queries/catalog.d.ts +149 -0
  295. package/dist/database/prisma/queries/catalog.d.ts.map +1 -0
  296. package/dist/database/prisma/queries/catalog.js +94 -0
  297. package/dist/database/prisma/queries/catalog.js.map +1 -0
  298. package/dist/database/prisma/queries/countries.d.ts +22 -0
  299. package/dist/database/prisma/queries/countries.d.ts.map +1 -0
  300. package/dist/database/prisma/queries/countries.js +17 -0
  301. package/dist/database/prisma/queries/countries.js.map +1 -0
  302. package/dist/database/prisma/queries/customers.d.ts +87 -0
  303. package/dist/database/prisma/queries/customers.d.ts.map +1 -0
  304. package/dist/database/prisma/queries/customers.js +32 -0
  305. package/dist/database/prisma/queries/customers.js.map +1 -0
  306. package/dist/database/prisma/queries/index.d.ts +12 -0
  307. package/dist/database/prisma/queries/index.d.ts.map +1 -0
  308. package/dist/database/prisma/queries/index.js +28 -0
  309. package/dist/database/prisma/queries/index.js.map +1 -0
  310. package/dist/database/prisma/queries/orders.d.ts +74 -0
  311. package/dist/database/prisma/queries/orders.d.ts.map +1 -0
  312. package/dist/database/prisma/queries/orders.js +49 -0
  313. package/dist/database/prisma/queries/orders.js.map +1 -0
  314. package/dist/database/prisma/queries/promotions.d.ts +81 -0
  315. package/dist/database/prisma/queries/promotions.d.ts.map +1 -0
  316. package/dist/database/prisma/queries/promotions.js +31 -0
  317. package/dist/database/prisma/queries/promotions.js.map +1 -0
  318. package/dist/database/prisma/queries/returns.d.ts +102 -0
  319. package/dist/database/prisma/queries/returns.d.ts.map +1 -0
  320. package/dist/database/prisma/queries/returns.js +50 -0
  321. package/dist/database/prisma/queries/returns.js.map +1 -0
  322. package/dist/database/prisma/queries/reviews.d.ts +25 -0
  323. package/dist/database/prisma/queries/reviews.d.ts.map +1 -0
  324. package/dist/database/prisma/queries/reviews.js +50 -0
  325. package/dist/database/prisma/queries/reviews.js.map +1 -0
  326. package/dist/database/prisma/queries/store.d.ts +22 -0
  327. package/dist/database/prisma/queries/store.d.ts.map +1 -0
  328. package/dist/database/prisma/queries/store.js +31 -0
  329. package/dist/database/prisma/queries/store.js.map +1 -0
  330. package/dist/database/prisma/queries/wishlists.d.ts +37 -0
  331. package/dist/database/prisma/queries/wishlists.d.ts.map +1 -0
  332. package/dist/database/prisma/queries/wishlists.js +37 -0
  333. package/dist/database/prisma/queries/wishlists.js.map +1 -0
  334. package/dist/database/prisma/seed.d.ts +5 -0
  335. package/dist/database/prisma/seed.d.ts.map +1 -0
  336. package/dist/database/prisma/seed.js +127 -0
  337. package/dist/database/prisma/seed.js.map +1 -0
  338. package/dist/domains/brands.d.ts +5 -0
  339. package/dist/domains/brands.d.ts.map +1 -0
  340. package/dist/domains/brands.js +21 -0
  341. package/dist/domains/brands.js.map +1 -0
  342. package/dist/domains/cart.d.ts +11 -0
  343. package/dist/domains/cart.d.ts.map +1 -0
  344. package/dist/domains/cart.js +110 -0
  345. package/dist/domains/cart.js.map +1 -0
  346. package/dist/domains/catalog.d.ts +7 -0
  347. package/dist/domains/catalog.d.ts.map +1 -0
  348. package/dist/domains/catalog.js +157 -0
  349. package/dist/domains/catalog.js.map +1 -0
  350. package/dist/domains/checkout.d.ts +11 -0
  351. package/dist/domains/checkout.d.ts.map +1 -0
  352. package/dist/domains/checkout.js +174 -0
  353. package/dist/domains/checkout.js.map +1 -0
  354. package/dist/domains/countries.d.ts +5 -0
  355. package/dist/domains/countries.d.ts.map +1 -0
  356. package/dist/domains/countries.js +21 -0
  357. package/dist/domains/countries.js.map +1 -0
  358. package/dist/domains/customers.d.ts +17 -0
  359. package/dist/domains/customers.d.ts.map +1 -0
  360. package/dist/domains/customers.js +179 -0
  361. package/dist/domains/customers.js.map +1 -0
  362. package/dist/domains/helpers.d.ts +14 -0
  363. package/dist/domains/helpers.d.ts.map +1 -0
  364. package/dist/domains/helpers.js +46 -0
  365. package/dist/domains/helpers.js.map +1 -0
  366. package/dist/domains/not-supported.d.ts +31 -0
  367. package/dist/domains/not-supported.d.ts.map +1 -0
  368. package/dist/domains/not-supported.js +43 -0
  369. package/dist/domains/not-supported.js.map +1 -0
  370. package/dist/domains/orders.d.ts +12 -0
  371. package/dist/domains/orders.d.ts.map +1 -0
  372. package/dist/domains/orders.js +184 -0
  373. package/dist/domains/orders.js.map +1 -0
  374. package/dist/domains/promotions.d.ts +6 -0
  375. package/dist/domains/promotions.d.ts.map +1 -0
  376. package/dist/domains/promotions.js +56 -0
  377. package/dist/domains/promotions.js.map +1 -0
  378. package/dist/domains/returns.d.ts +15 -0
  379. package/dist/domains/returns.d.ts.map +1 -0
  380. package/dist/domains/returns.js +83 -0
  381. package/dist/domains/returns.js.map +1 -0
  382. package/dist/domains/reviews.d.ts +16 -0
  383. package/dist/domains/reviews.d.ts.map +1 -0
  384. package/dist/domains/reviews.js +60 -0
  385. package/dist/domains/reviews.js.map +1 -0
  386. package/dist/domains/store.d.ts +5 -0
  387. package/dist/domains/store.d.ts.map +1 -0
  388. package/dist/domains/store.js +45 -0
  389. package/dist/domains/store.js.map +1 -0
  390. package/dist/domains/wishlist.d.ts +9 -0
  391. package/dist/domains/wishlist.d.ts.map +1 -0
  392. package/dist/domains/wishlist.js +76 -0
  393. package/dist/domains/wishlist.js.map +1 -0
  394. package/dist/index.d.ts +9 -0
  395. package/dist/index.d.ts.map +1 -0
  396. package/dist/index.js +15 -0
  397. package/dist/index.js.map +1 -0
  398. package/dist/types.d.ts +8 -0
  399. package/dist/types.d.ts.map +1 -0
  400. package/dist/types.js +5 -0
  401. package/dist/types.js.map +1 -0
  402. package/package.json +49 -0
@@ -0,0 +1,127 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Seed — populate the database with demo data (Prisma version)
3
+ // ---------------------------------------------------------------------------
4
+ import { getDb } from './client.js';
5
+ /**
6
+ * Seed the database with demo products, categories, and store info via Prisma.
7
+ */
8
+ export async function seedPrisma() {
9
+ const prisma = getDb();
10
+ const now = new Date().toISOString();
11
+ // ---- Store ----
12
+ await prisma.storeInfo.create({
13
+ data: {
14
+ id: 'default',
15
+ name: 'CommerceJS Demo Store',
16
+ nameAr: 'متجر كوميرس جي إس',
17
+ description: 'A demo store powered by @commercejs/platform',
18
+ descriptionAr: 'متجر تجريبي يعمل بواسطة كوميرس جي إس',
19
+ currency: 'SAR',
20
+ locale: 'en',
21
+ timezone: 'Asia/Riyadh',
22
+ supportedCurrencies: '["SAR","AED","USD"]',
23
+ supportedLocales: '["en","ar"]',
24
+ createdAt: now,
25
+ updatedAt: now,
26
+ },
27
+ });
28
+ // ---- Categories ----
29
+ const categories = [
30
+ { id: 'cat-clothing', name: 'Clothing', nameAr: 'ملابس', slug: 'clothing', sortOrder: 1 },
31
+ { id: 'cat-electronics', name: 'Electronics', nameAr: 'إلكترونيات', slug: 'electronics', sortOrder: 2 },
32
+ { id: 'cat-accessories', name: 'Accessories', nameAr: 'إكسسوارات', slug: 'accessories', sortOrder: 3 },
33
+ ];
34
+ for (const cat of categories) {
35
+ await prisma.category.create({ data: { ...cat, createdAt: now, updatedAt: now } });
36
+ }
37
+ // ---- Products ----
38
+ const products = [
39
+ {
40
+ id: 'prod-1', name: 'Premium Cotton T-Shirt', nameAr: 'تي شيرت قطن فاخر',
41
+ slug: 'premium-cotton-t-shirt',
42
+ description: 'Ultra-soft 100% organic cotton t-shirt with a modern fit.',
43
+ descriptionAr: 'تي شيرت من القطن العضوي بنسبة 100٪ بقصة عصرية',
44
+ price: 89, compareAtPrice: 120, currency: 'SAR', status: 'active',
45
+ productType: 'physical', inStock: true, inventoryQuantity: 150,
46
+ requiresShipping: true, vatIncluded: true, vatRate: 15,
47
+ categoryId: 'cat-clothing',
48
+ },
49
+ {
50
+ id: 'prod-2', name: 'Wireless Bluetooth Earbuds', nameAr: 'سماعات بلوتوث لاسلكية',
51
+ slug: 'wireless-bluetooth-earbuds',
52
+ description: 'High-fidelity audio with active noise cancellation and 30h battery.',
53
+ descriptionAr: 'صوت عالي الدقة مع إلغاء الضوضاء النشط وبطارية 30 ساعة',
54
+ price: 249, currency: 'SAR', status: 'active',
55
+ productType: 'physical', inStock: true, inventoryQuantity: 75,
56
+ requiresShipping: true, vatIncluded: true, vatRate: 15,
57
+ categoryId: 'cat-electronics',
58
+ },
59
+ {
60
+ id: 'prod-3', name: 'Leather Crossbody Bag', nameAr: 'حقيبة جلدية كروس بودي',
61
+ slug: 'leather-crossbody-bag',
62
+ description: 'Handcrafted genuine leather bag with adjustable strap.',
63
+ descriptionAr: 'حقيبة جلد طبيعي مصنوعة يدويًا مع حزام قابل للتعديل',
64
+ price: 350, compareAtPrice: 450, currency: 'SAR', status: 'active',
65
+ productType: 'physical', inStock: true, inventoryQuantity: 30,
66
+ requiresShipping: true, vatIncluded: true, vatRate: 15,
67
+ categoryId: 'cat-accessories',
68
+ },
69
+ ];
70
+ for (const product of products) {
71
+ const { categoryId, ...productData } = product;
72
+ await prisma.product.create({ data: { ...productData, createdAt: now, updatedAt: now } });
73
+ await prisma.productCategory.create({ data: { productId: product.id, categoryId } });
74
+ }
75
+ // ---- Product Images ----
76
+ const images = [
77
+ { productId: 'prod-1', url: 'https://placehold.co/600x600/f0f0f0/333?text=T-Shirt', altText: 'Cotton T-Shirt', isPrimary: true, sortOrder: 1 },
78
+ { productId: 'prod-2', url: 'https://placehold.co/600x600/1a1a2e/e0e0e0?text=Earbuds', altText: 'Wireless Earbuds', isPrimary: true, sortOrder: 1 },
79
+ { productId: 'prod-3', url: 'https://placehold.co/600x600/8b4513/fff?text=Bag', altText: 'Leather Bag', isPrimary: true, sortOrder: 1 },
80
+ ];
81
+ for (const image of images) {
82
+ await prisma.productImage.create({ data: image });
83
+ }
84
+ // ---- Product Variants (for t-shirt) ----
85
+ const variants = [
86
+ { productId: 'prod-1', name: 'Small', sku: 'TSHIRT-S', price: 89, inStock: true, inventoryQuantity: 50, sortOrder: 1 },
87
+ { productId: 'prod-1', name: 'Medium', sku: 'TSHIRT-M', price: 89, inStock: true, inventoryQuantity: 60, sortOrder: 2 },
88
+ { productId: 'prod-1', name: 'Large', sku: 'TSHIRT-L', price: 99, inStock: true, inventoryQuantity: 40, sortOrder: 3 },
89
+ ];
90
+ for (const v of variants) {
91
+ await prisma.productVariant.create({ data: v });
92
+ }
93
+ // ---- Brands ----
94
+ const brands = [
95
+ { id: 'brand-1', name: 'CommerceJS Essentials', nameAr: 'أساسيات كوميرس', slug: 'commercejs-essentials', isActive: true },
96
+ { id: 'brand-2', name: 'TechWave', nameAr: 'تك ويف', slug: 'techwave', isActive: true },
97
+ { id: 'brand-3', name: 'Artisan Leather', nameAr: 'الجلود الحرفية', slug: 'artisan-leather', isActive: true },
98
+ ];
99
+ for (const brand of brands) {
100
+ await prisma.brand.create({ data: { ...brand, createdAt: now, updatedAt: now } });
101
+ }
102
+ // ---- Countries ----
103
+ const countries = [
104
+ { id: 'sa', code: 'SA', name: 'Saudi Arabia', nameAr: 'المملكة العربية السعودية', callingCode: '+966', currency: 'SAR' },
105
+ { id: 'ae', code: 'AE', name: 'United Arab Emirates', nameAr: 'الإمارات العربية المتحدة', callingCode: '+971', currency: 'AED' },
106
+ { id: 'kw', code: 'KW', name: 'Kuwait', nameAr: 'الكويت', callingCode: '+965', currency: 'KWD' },
107
+ { id: 'bh', code: 'BH', name: 'Bahrain', nameAr: 'البحرين', callingCode: '+973', currency: 'BHD' },
108
+ { id: 'om', code: 'OM', name: 'Oman', nameAr: 'عمان', callingCode: '+968', currency: 'OMR' },
109
+ { id: 'qa', code: 'QA', name: 'Qatar', nameAr: 'قطر', callingCode: '+974', currency: 'QAR' },
110
+ ];
111
+ for (const country of countries) {
112
+ await prisma.country.create({ data: country });
113
+ }
114
+ // ---- Reviews ----
115
+ const reviews = [
116
+ { productId: 'prod-1', authorName: 'Ahmed', rating: 5, title: 'Excellent quality', body: 'Best t-shirt I have ever bought. The cotton is incredibly soft.', verified: true, status: 'published', createdAt: now },
117
+ { productId: 'prod-1', authorName: 'Sara', rating: 4, title: 'Good fit', body: 'Nice shirt, true to size. Would buy again.', verified: true, status: 'published', createdAt: now },
118
+ { productId: 'prod-1', authorName: 'Omar', rating: 5, title: 'Love it', body: 'Perfect for everyday wear.', verified: false, status: 'published', createdAt: now },
119
+ { productId: 'prod-2', authorName: 'Fatima', rating: 5, title: 'Amazing sound', body: 'Crystal clear audio and the noise cancellation is top-notch.', verified: true, status: 'published', createdAt: now },
120
+ { productId: 'prod-2', authorName: 'Khalid', rating: 3, title: 'Decent', body: 'Good sound but battery life could be better.', verified: true, status: 'published', createdAt: now },
121
+ { productId: 'prod-3', authorName: 'Noura', rating: 4, title: 'Beautiful bag', body: 'Gorgeous leather, arrived well-packaged.', verified: true, status: 'published', createdAt: now },
122
+ ];
123
+ for (const review of reviews) {
124
+ await prisma.review.create({ data: review });
125
+ }
126
+ }
127
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/database/prisma/seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Brand } from '@commercejs/types';
2
+ export declare function createBrandsDomain(): {
3
+ getBrands(): Promise<Brand[]>;
4
+ };
5
+ //# sourceMappingURL=brands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/domains/brands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAI9C,wBAAgB,kBAAkB;iBAEX,OAAO,CAAC,KAAK,EAAE,CAAC;EAYtC"}
@@ -0,0 +1,21 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Brands domain — product brand listing
3
+ // ---------------------------------------------------------------------------
4
+ import { findBrands } from '../database/index.js';
5
+ import { localized, img } from './helpers.js';
6
+ export function createBrandsDomain() {
7
+ return {
8
+ async getBrands() {
9
+ const rows = await findBrands();
10
+ return rows.map((row) => ({
11
+ id: row.id,
12
+ name: localized(row.name, row.nameAr),
13
+ slug: row.slug,
14
+ logo: row.logo ? img(row.logo, row.name) : null,
15
+ description: row.description ? localized(row.description, row.descriptionAr) : null,
16
+ isActive: row.isActive ?? true,
17
+ }));
18
+ },
19
+ };
20
+ }
21
+ //# sourceMappingURL=brands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/domains/brands.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,KAAK,CAAC,SAAS;YACb,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAA;YAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;gBACrC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC/C,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;aAC/B,CAAC,CAAC,CAAA;QACL,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Cart, AddToCartInput } from '@commercejs/types';
2
+ export declare function createCartDomain(currency: string): {
3
+ createCart(): Promise<Cart>;
4
+ getCart(cartId: string): Promise<Cart>;
5
+ addToCart(cartId: string, item: AddToCartInput): Promise<Cart>;
6
+ updateCartItem(cartId: string, itemId: string, quantity: number): Promise<Cart>;
7
+ removeFromCart(cartId: string, itemId: string): Promise<Cart>;
8
+ applyCoupon(cartId: string, code: string): Promise<Cart>;
9
+ removeCoupon(cartId: string): Promise<Cart>;
10
+ };
11
+ //# sourceMappingURL=cart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../../src/domains/cart.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAiB7D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM;kBA4DzB,OAAO,CAAC,IAAI,CAAC;oBAOX,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;sBAIpB,MAAM,QAAQ,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;2BAmBvC,MAAM,UAAU,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;2BAUxD,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;wBAMzC,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;yBAKnC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;EAKpD"}
@@ -0,0 +1,110 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Cart domain — cart CRUD and item management
3
+ // ---------------------------------------------------------------------------
4
+ import { createCart as dbCreateCart, findCart, findCartItems, findExistingCartItem, insertCartItem, updateCartItemQuantity, deleteCartItem, updateCart, findProductById, findVariantById, findPrimaryImage, } from '../database/index.js';
5
+ import { localized, discountablePrice, priceRequired, img } from './helpers.js';
6
+ export function createCartDomain(currency) {
7
+ /** Build a full Cart object from cart row + items + product data */
8
+ async function buildCart(cartId) {
9
+ const cartRow = await findCart(cartId);
10
+ if (!cartRow)
11
+ throw new Error(`Cart not found: ${cartId}`);
12
+ const items = await findCartItems(cartId);
13
+ const cartItems = await Promise.all(items.map(async (item) => {
14
+ const product = await findProductById(item.productId);
15
+ const primaryImg = await findPrimaryImage(item.productId);
16
+ let itemPrice = product?.price ?? 0;
17
+ let compareAt = product?.compareAtPrice ?? null;
18
+ if (item.variantId) {
19
+ const variant = await findVariantById(item.variantId);
20
+ if (variant?.price != null) {
21
+ itemPrice = variant.price;
22
+ compareAt = variant.compareAtPrice ?? null;
23
+ }
24
+ }
25
+ return {
26
+ id: item.id,
27
+ productId: item.productId,
28
+ variantId: item.variantId ?? null,
29
+ name: product ? localized(product.name, product.nameAr) : localized('Unknown', null),
30
+ image: primaryImg ? img(primaryImg.url, primaryImg.altText) : null,
31
+ quantity: item.quantity,
32
+ price: discountablePrice(itemPrice, compareAt, currency),
33
+ totalPrice: priceRequired(itemPrice * item.quantity, currency),
34
+ };
35
+ }));
36
+ const subtotal = cartItems.reduce((sum, item) => sum + item.totalPrice.amount, 0);
37
+ return {
38
+ id: cartRow.id,
39
+ items: cartItems,
40
+ totals: {
41
+ subtotal: priceRequired(subtotal, currency),
42
+ shipping: null,
43
+ tax: null,
44
+ discount: null,
45
+ total: priceRequired(subtotal, currency),
46
+ },
47
+ shippingAddress: cartRow.shippingAddress ?? null,
48
+ billingAddress: cartRow.billingAddress ?? null,
49
+ shippingMethod: null,
50
+ paymentMethod: null,
51
+ couponCode: cartRow.couponCode ?? null,
52
+ customerId: cartRow.customerId ?? null,
53
+ itemCount: cartItems.reduce((sum, item) => sum + item.quantity, 0),
54
+ createdAt: cartRow.createdAt,
55
+ updatedAt: cartRow.updatedAt,
56
+ };
57
+ }
58
+ return {
59
+ async createCart() {
60
+ const id = crypto.randomUUID();
61
+ const now = new Date().toISOString();
62
+ await dbCreateCart(id, now);
63
+ return buildCart(id);
64
+ },
65
+ async getCart(cartId) {
66
+ return buildCart(cartId);
67
+ },
68
+ async addToCart(cartId, item) {
69
+ const existing = await findExistingCartItem(cartId, item.productId, item.variantId);
70
+ if (existing) {
71
+ await updateCartItemQuantity(existing.id, existing.quantity + item.quantity);
72
+ }
73
+ else {
74
+ await insertCartItem({
75
+ cartId,
76
+ productId: item.productId,
77
+ variantId: item.variantId ?? null,
78
+ quantity: item.quantity,
79
+ createdAt: new Date().toISOString(),
80
+ });
81
+ }
82
+ await updateCart(cartId, { updatedAt: new Date().toISOString() });
83
+ return buildCart(cartId);
84
+ },
85
+ async updateCartItem(cartId, itemId, quantity) {
86
+ if (quantity <= 0) {
87
+ await deleteCartItem(itemId);
88
+ }
89
+ else {
90
+ await updateCartItemQuantity(itemId, quantity);
91
+ }
92
+ await updateCart(cartId, { updatedAt: new Date().toISOString() });
93
+ return buildCart(cartId);
94
+ },
95
+ async removeFromCart(cartId, itemId) {
96
+ await deleteCartItem(itemId);
97
+ await updateCart(cartId, { updatedAt: new Date().toISOString() });
98
+ return buildCart(cartId);
99
+ },
100
+ async applyCoupon(cartId, code) {
101
+ await updateCart(cartId, { couponCode: code, updatedAt: new Date().toISOString() });
102
+ return buildCart(cartId);
103
+ },
104
+ async removeCoupon(cartId) {
105
+ await updateCart(cartId, { couponCode: null, updatedAt: new Date().toISOString() });
106
+ return buildCart(cartId);
107
+ },
108
+ };
109
+ }
110
+ //# sourceMappingURL=cart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart.js","sourceRoot":"","sources":["../../src/domains/cart.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAG9E,OAAO,EACL,UAAU,IAAI,YAAY,EAC1B,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,UAAU,EAEV,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAE/E,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,oEAAoE;IACpE,KAAK,UAAU,SAAS,CAAC,MAAc;QACrC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAE1D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QAEzC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE;YAChE,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAEzD,IAAI,SAAS,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAA;YACnC,IAAI,SAAS,GAAG,OAAO,EAAE,cAAc,IAAI,IAAI,CAAA;YAE/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACrD,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;oBAC3B,SAAS,GAAG,OAAO,CAAC,KAAK,CAAA;oBACzB,SAAS,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAA;gBAC5C,CAAC;YACH,CAAC;YAED,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;gBACjC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC;gBACpF,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;gBAClE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAE;gBACzD,UAAU,EAAE,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC/D,CAAA;QACH,CAAC,CAAC,CAAC,CAAA;QAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAEjF,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE;gBACN,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC3C,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,IAAI;gBACT,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACzC;YACD,eAAe,EAAE,OAAO,CAAC,eAAsB,IAAI,IAAI;YACvD,cAAc,EAAE,OAAO,CAAC,cAAqB,IAAI,IAAI;YACrD,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClE,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAA;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,UAAU;YACd,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;YAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YACpC,MAAM,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAC3B,OAAO,SAAS,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,MAAc;YAC1B,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAoB;YAClD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YAEnF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,sBAAsB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,CAAC;oBACnB,MAAM;oBACN,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACjE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,QAAgB;YACnE,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAChD,CAAC;YACD,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACjE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,MAAc;YACjD,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;YAC5B,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACjE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAAY;YAC5C,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACnF,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,MAAc;YAC/B,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACnF,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Product, Category, SearchResult, SearchParams, GetProductParams, GetCategoriesParams } from '@commercejs/types';
2
+ export declare function createCatalogDomain(currency: string): {
3
+ getProduct(params: GetProductParams): Promise<Product>;
4
+ getProducts(params: SearchParams): Promise<SearchResult>;
5
+ getCategories(params?: GetCategoriesParams): Promise<Category[]>;
6
+ };
7
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/domains/catalog.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAgB1B,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM;uBAwFvB,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;wBAelC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;2BAwDjC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;EAezE"}
@@ -0,0 +1,157 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Catalog domain — product and category retrieval
3
+ // ---------------------------------------------------------------------------
4
+ import { findProductById, findProductBySlug, findProducts, findCategories, findProductImages, findProductVariants, findProductAttributes, findProductCategoryIds, findProductTags, findCategoryById, findProductIdsByCategory, } from '../database/index.js';
5
+ import { localized, discountablePrice, img } from './helpers.js';
6
+ export function createCatalogDomain(currency) {
7
+ /** Map a raw product row + relations to the unified Product type */
8
+ function mapProduct(row, related = {}) {
9
+ const primaryImg = related.images?.find((i) => i.isPrimary) ?? related.images?.[0];
10
+ return {
11
+ id: row.id,
12
+ sku: row.sku ?? null,
13
+ name: localized(row.name, row.nameAr),
14
+ slug: row.slug,
15
+ description: localized(row.description, row.descriptionAr),
16
+ shortDescription: localized(row.shortDescription, row.shortDescriptionAr),
17
+ price: discountablePrice(row.price, row.compareAtPrice, row.currency ?? currency),
18
+ primaryImage: primaryImg ? img(primaryImg.url, primaryImg.altText) : null,
19
+ gallery: (related.images ?? []).map((i) => img(i.url, i.altText)),
20
+ rating: null,
21
+ variants: (related.variants ?? []).map((v) => ({
22
+ id: v.id,
23
+ sku: v.sku ?? null,
24
+ name: v.name ? localized(v.name, v.nameAr) : null,
25
+ price: discountablePrice(v.price, v.compareAtPrice, row.currency ?? currency),
26
+ attributes: [],
27
+ inStock: Boolean(v.inStock),
28
+ inventoryQuantity: v.inventoryQuantity ?? null,
29
+ })),
30
+ options: [],
31
+ attributes: (related.attributes ?? []).map((a) => ({
32
+ code: a.code,
33
+ name: localized(a.name, a.nameAr),
34
+ value: localized(a.value, a.valueAr),
35
+ })),
36
+ quantityLimit: row.quantityLimit ?? null,
37
+ categories: (related.categories ?? []).map((c) => ({
38
+ id: c.id,
39
+ name: localized(c.name, c.nameAr),
40
+ slug: c.slug,
41
+ description: c.description ? localized(c.description, c.descriptionAr) : null,
42
+ image: c.image ? img(c.image, null) : null,
43
+ parentId: c.parentId ?? null,
44
+ children: [],
45
+ productCount: null,
46
+ })),
47
+ inStock: Boolean(row.inStock),
48
+ vatIncluded: Boolean(row.vatIncluded),
49
+ vatRate: row.vatRate ?? null,
50
+ tags: related.tags ?? [],
51
+ createdAt: row.createdAt,
52
+ updatedAt: row.updatedAt,
53
+ productType: row.productType ?? 'physical',
54
+ digital: null,
55
+ service: null,
56
+ event: null,
57
+ subscription: null,
58
+ auction: null,
59
+ rental: null,
60
+ preOrder: null,
61
+ requiresShipping: Boolean(row.requiresShipping),
62
+ minOrderQuantity: null,
63
+ priceTiers: null,
64
+ customerGroupPricing: null,
65
+ isDropshipped: Boolean(row.isDropshipped),
66
+ };
67
+ }
68
+ /** Fetch full product relations */
69
+ async function fetchProductRelations(productId) {
70
+ const [images, variants, attributes, categoryIds, tags] = await Promise.all([
71
+ findProductImages(productId),
72
+ findProductVariants(productId),
73
+ findProductAttributes(productId),
74
+ findProductCategoryIds(productId),
75
+ findProductTags(productId),
76
+ ]);
77
+ const categories = categoryIds.length > 0
78
+ ? (await Promise.all(categoryIds.map(id => findCategoryById(id)))).filter(Boolean)
79
+ : [];
80
+ return { images, variants, attributes, categories, tags };
81
+ }
82
+ return {
83
+ async getProduct(params) {
84
+ const row = params.id
85
+ ? await findProductById(params.id)
86
+ : params.slug
87
+ ? await findProductBySlug(params.slug)
88
+ : null;
89
+ if (!row) {
90
+ throw new Error(`Product not found: ${params.id ?? params.slug}`);
91
+ }
92
+ const related = await fetchProductRelations(row.id);
93
+ return mapProduct(row, related);
94
+ },
95
+ async getProducts(params) {
96
+ const conditions = [
97
+ { field: 'status', op: 'eq', value: 'active' },
98
+ ];
99
+ if (params.query) {
100
+ conditions.push({ field: 'name', op: 'like', value: `%${params.query}%` });
101
+ }
102
+ if (params.categoryId) {
103
+ const productIds = await findProductIdsByCategory(params.categoryId);
104
+ if (productIds.length === 0) {
105
+ return { products: { items: [], total: 0, page: params.page ?? 1, perPage: params.perPage ?? 20, hasMore: false }, facets: [], suggestions: null };
106
+ }
107
+ conditions.push({ field: 'id', op: 'in', value: productIds });
108
+ }
109
+ const minPrice = params.filters?.['minPrice'];
110
+ const maxPrice = params.filters?.['maxPrice'];
111
+ if (minPrice) {
112
+ conditions.push({ field: 'price', op: 'gte', value: Number(minPrice) });
113
+ }
114
+ if (maxPrice) {
115
+ conditions.push({ field: 'price', op: 'lte', value: Number(maxPrice) });
116
+ }
117
+ const page = params.page ?? 1;
118
+ const perPage = params.perPage ?? 20;
119
+ const offset = (page - 1) * perPage;
120
+ const { rows, total } = await findProducts({
121
+ conditions,
122
+ orderBy: params.sort ? { field: params.sort.field, direction: params.sort.direction } : undefined,
123
+ limit: perPage,
124
+ offset,
125
+ });
126
+ const products = await Promise.all(rows.map(async (row) => {
127
+ const related = await fetchProductRelations(row.id);
128
+ return mapProduct(row, related);
129
+ }));
130
+ return {
131
+ products: {
132
+ items: products,
133
+ total,
134
+ page,
135
+ perPage,
136
+ hasMore: offset + perPage < total,
137
+ },
138
+ facets: [],
139
+ suggestions: null,
140
+ };
141
+ },
142
+ async getCategories(params) {
143
+ const rows = await findCategories(params?.parentId);
144
+ return rows.map(row => ({
145
+ id: row.id,
146
+ name: localized(row.name, row.nameAr),
147
+ slug: row.slug,
148
+ description: row.description ? localized(row.description, row.descriptionAr) : null,
149
+ image: row.image ? img(row.image, null) : null,
150
+ parentId: row.parentId ?? null,
151
+ children: [],
152
+ productCount: null,
153
+ }));
154
+ },
155
+ };
156
+ }
157
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domains/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Cart, Order, ShippingMethod, PaymentMethod, Address } from '@commercejs/types';
2
+ export declare function createCheckoutDomain(currency: string): {
3
+ getShippingMethods(_cartId: string): Promise<ShippingMethod[]>;
4
+ setShippingAddress(cartId: string, address: Omit<Address, "id" | "isDefault">): Promise<Cart>;
5
+ setBillingAddress(cartId: string, address: Omit<Address, "id" | "isDefault">): Promise<Cart>;
6
+ setShippingMethod(cartId: string, methodId: string): Promise<Cart>;
7
+ getPaymentMethods(_cartId: string): Promise<PaymentMethod[]>;
8
+ setPaymentMethod(cartId: string, methodId: string): Promise<Cart>;
9
+ placeOrder(cartId: string): Promise<Order>;
10
+ };
11
+ //# sourceMappingURL=checkout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/domains/checkout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,IAAI,EACJ,KAAK,EACL,cAAc,EACd,aAAa,EACb,OAAO,EACR,MAAM,mBAAmB,CAAA;AAc1B,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM;gCAIf,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;+BAqBnC,MAAM,WAAW,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;8BAKnE,MAAM,WAAW,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;8BAKlE,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;+BAKvC,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;6BAqBnC,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;uBAK9C,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;EAmHnD"}