@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,174 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Checkout domain — shipping, addresses, and order placement
3
+ // ---------------------------------------------------------------------------
4
+ import { updateCart, deleteCart, createOrder as dbCreateOrder, createOrderItem, createOrderHistory, findOrderById, findOrderItems, } from '../database/index.js';
5
+ import { generateOrderNumber, localized, price, priceRequired, img } from './helpers.js';
6
+ import { createCartDomain } from './cart.js';
7
+ export function createCheckoutDomain(currency) {
8
+ const cartDomain = createCartDomain(currency);
9
+ return {
10
+ async getShippingMethods(_cartId) {
11
+ return [
12
+ {
13
+ id: 'standard',
14
+ name: localized('Standard Shipping', 'شحن عادي'),
15
+ provider: 'custom',
16
+ price: priceRequired(15, currency),
17
+ estimatedDays: { min: 5, max: 7 },
18
+ cashOnDelivery: false,
19
+ },
20
+ {
21
+ id: 'express',
22
+ name: localized('Express Shipping', 'شحن سريع'),
23
+ provider: 'custom',
24
+ price: priceRequired(35, currency),
25
+ estimatedDays: { min: 1, max: 2 },
26
+ cashOnDelivery: false,
27
+ },
28
+ ];
29
+ },
30
+ async setShippingAddress(cartId, address) {
31
+ await updateCart(cartId, { shippingAddress: address, updatedAt: new Date().toISOString() });
32
+ return cartDomain.getCart(cartId);
33
+ },
34
+ async setBillingAddress(cartId, address) {
35
+ await updateCart(cartId, { billingAddress: address, updatedAt: new Date().toISOString() });
36
+ return cartDomain.getCart(cartId);
37
+ },
38
+ async setShippingMethod(cartId, methodId) {
39
+ await updateCart(cartId, { shippingMethodId: methodId, updatedAt: new Date().toISOString() });
40
+ return cartDomain.getCart(cartId);
41
+ },
42
+ async getPaymentMethods(_cartId) {
43
+ return [
44
+ {
45
+ id: 'card',
46
+ type: 'card',
47
+ name: localized('Credit / Debit Card', 'بطاقة ائتمان'),
48
+ provider: 'platform',
49
+ installments: null,
50
+ icon: null,
51
+ },
52
+ {
53
+ id: 'cod',
54
+ type: 'cash_on_delivery',
55
+ name: localized('Cash on Delivery', 'الدفع عند الاستلام'),
56
+ provider: 'platform',
57
+ installments: null,
58
+ icon: null,
59
+ },
60
+ ];
61
+ },
62
+ async setPaymentMethod(cartId, methodId) {
63
+ await updateCart(cartId, { paymentMethodId: methodId, updatedAt: new Date().toISOString() });
64
+ return cartDomain.getCart(cartId);
65
+ },
66
+ async placeOrder(cartId) {
67
+ const cart = await cartDomain.getCart(cartId);
68
+ if (cart.items.length === 0) {
69
+ throw new Error('Cannot place order with empty cart');
70
+ }
71
+ const now = new Date().toISOString();
72
+ const orderId = crypto.randomUUID();
73
+ const orderNumber = generateOrderNumber();
74
+ const subtotal = cart.totals.subtotal.amount;
75
+ const shippingCost = cart.totals.shipping?.amount ?? 0;
76
+ const tax = cart.totals.tax?.amount ?? 0;
77
+ const discount = cart.totals.discount?.amount ?? 0;
78
+ const total = subtotal + shippingCost + tax - discount;
79
+ await dbCreateOrder({
80
+ id: orderId,
81
+ orderNumber,
82
+ customerId: cart.customerId ?? null,
83
+ status: 'pending',
84
+ subtotal,
85
+ shippingCost,
86
+ tax,
87
+ discount,
88
+ total,
89
+ currency,
90
+ shippingAddress: cart.shippingAddress,
91
+ billingAddress: cart.billingAddress,
92
+ shippingMethod: cart.shippingMethod?.name ? JSON.stringify(cart.shippingMethod.name) : null,
93
+ paymentMethod: cart.paymentMethod?.name ? JSON.stringify(cart.paymentMethod.name) : null,
94
+ requiresShipping: true,
95
+ createdAt: now,
96
+ updatedAt: now,
97
+ });
98
+ for (const item of cart.items) {
99
+ await createOrderItem({
100
+ orderId,
101
+ productId: item.productId,
102
+ variantId: item.variantId ?? null,
103
+ name: typeof item.name === 'object' ? item.name.en : String(item.name),
104
+ quantity: item.quantity,
105
+ price: item.price.amount,
106
+ totalPrice: item.totalPrice.amount,
107
+ productType: 'physical',
108
+ fulfillmentStatus: 'unfulfilled',
109
+ });
110
+ }
111
+ await createOrderHistory({
112
+ orderId,
113
+ fromStatus: null,
114
+ toStatus: 'pending',
115
+ note: 'Order placed',
116
+ createdAt: now,
117
+ });
118
+ // Delete cart after order placement
119
+ await deleteCart(cartId);
120
+ // Build and return the order
121
+ const order = await findOrderById(orderId);
122
+ if (!order)
123
+ throw new Error(`Order not found after creation: ${orderId}`);
124
+ const items = await findOrderItems(orderId);
125
+ return {
126
+ id: order.id,
127
+ orderNumber: order.orderNumber,
128
+ status: order.status,
129
+ items: items.map((i) => ({
130
+ id: i.id,
131
+ productId: i.productId,
132
+ variantId: i.variantId ?? null,
133
+ name: localized(i.name, i.nameAr),
134
+ image: i.image ? img(i.image, null) : null,
135
+ quantity: i.quantity,
136
+ price: priceRequired(i.price, currency),
137
+ totalPrice: priceRequired(i.totalPrice, currency),
138
+ fulfillmentStatus: i.fulfillmentStatus,
139
+ productType: i.productType,
140
+ digital: null,
141
+ event: null,
142
+ })),
143
+ totals: {
144
+ subtotal: priceRequired(order.subtotal, currency),
145
+ shipping: price(order.shippingCost, currency),
146
+ tax: price(order.tax, currency),
147
+ discount: price(order.discount, currency),
148
+ total: priceRequired(order.total, currency),
149
+ },
150
+ shippingAddress: order.shippingAddress ?? null,
151
+ billingAddress: order.billingAddress ?? null,
152
+ shippingMethod: order.shippingMethod
153
+ ? { id: 'default', name: localized(order.shippingMethod, null), provider: 'custom', price: priceRequired(0, currency), estimatedDays: { min: 1, max: 7 }, cashOnDelivery: false }
154
+ : null,
155
+ paymentMethod: order.paymentMethod
156
+ ? { id: 'default', type: 'card', name: localized(order.paymentMethod, null), provider: 'platform', installments: null, icon: null }
157
+ : null,
158
+ trackingNumber: order.trackingNumber ?? null,
159
+ trackingUrl: order.trackingUrl ?? null,
160
+ note: order.note ?? null,
161
+ customerId: order.customerId ?? null,
162
+ requiresShipping: Boolean(order.requiresShipping),
163
+ createdAt: order.createdAt,
164
+ updatedAt: order.updatedAt,
165
+ paymentTerms: null,
166
+ purchaseOrderNumber: null,
167
+ companyName: null,
168
+ giftCardCodesApplied: [],
169
+ giftCardAmountApplied: null,
170
+ };
171
+ },
172
+ };
173
+ }
174
+ //# sourceMappingURL=checkout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/domains/checkout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Country } from '@commercejs/types';
2
+ export declare function createCountriesDomain(): {
3
+ getCountries(): Promise<Country[]>;
4
+ };
5
+ //# sourceMappingURL=countries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countries.d.ts","sourceRoot":"","sources":["../../src/domains/countries.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAIhD,wBAAgB,qBAAqB;oBAEX,OAAO,CAAC,OAAO,EAAE,CAAC;EAY3C"}
@@ -0,0 +1,21 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Countries domain — country listing for address forms
3
+ // ---------------------------------------------------------------------------
4
+ import { findCountries } from '../database/index.js';
5
+ import { localized } from './helpers.js';
6
+ export function createCountriesDomain() {
7
+ return {
8
+ async getCountries() {
9
+ const rows = await findCountries();
10
+ return rows.map((row) => ({
11
+ id: row.id,
12
+ code: row.code,
13
+ name: localized(row.name, row.nameAr),
14
+ callingCode: row.callingCode ?? null,
15
+ currency: row.currency ?? null,
16
+ capital: row.capital ?? null,
17
+ }));
18
+ },
19
+ };
20
+ }
21
+ //# sourceMappingURL=countries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countries.js","sourceRoot":"","sources":["../../src/domains/countries.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAG9E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,CAAC,YAAY;YAChB,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAA;YAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;gBACrC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;gBACpC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;gBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;aAC7B,CAAC,CAAC,CAAA;QACL,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Customer, Address, RegisterInput, UpdateCustomerInput } from '@commercejs/types';
2
+ export declare function createCustomersDomain(): {
3
+ login(email: string, password: string): Promise<Customer>;
4
+ register(input: RegisterInput): Promise<Customer>;
5
+ getCustomer(): Promise<Customer>;
6
+ updateCustomer(input: UpdateCustomerInput): Promise<Customer>;
7
+ logout(): Promise<void>;
8
+ forgotPassword(_email: string): Promise<void>;
9
+ resetPassword(_token: string, _newPassword: string): Promise<void>;
10
+ getAddresses(): Promise<Address[]>;
11
+ addAddress(address: Omit<Address, "id">): Promise<Address>;
12
+ updateAddress(addressId: string, address: Partial<Omit<Address, "id">>): Promise<Address>;
13
+ deleteAddress(addressId: string): Promise<void>;
14
+ /** Set the current customer ID (for adapter-level auth management) */
15
+ setCurrentCustomer(id: string | null): void;
16
+ };
17
+ //# sourceMappingURL=customers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../src/domains/customers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAa1B,wBAAgB,qBAAqB;iBAyCd,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;oBAYzC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;mBAyBlC,OAAO,CAAC,QAAQ,CAAC;0BAOV,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;cAanD,OAAO,CAAC,IAAI,CAAC;2BAIA,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;0BAIvB,MAAM,gBAAgB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;oBAMlD,OAAO,CAAC,OAAO,EAAE,CAAC;wBAMd,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;6BA+BjC,MAAM,WAAW,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;6BAoBhE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,sEAAsE;2BAC/C,MAAM,GAAG,IAAI;EAIvC"}
@@ -0,0 +1,179 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Customers domain — registration, auth, and address book
3
+ // ---------------------------------------------------------------------------
4
+ import { hashSync, compareSync } from 'bcrypt-ts';
5
+ import { findCustomerByEmail, findCustomerById, createCustomer as dbCreateCustomer, updateCustomer as dbUpdateCustomer, findAddresses, findAddressById, createAddress as dbCreateAddress, updateAddress as dbUpdateAddress, deleteAddress as dbDeleteAddress, } from '../database/index.js';
6
+ export function createCustomersDomain() {
7
+ /** Map DB row to Customer type */
8
+ async function mapCustomer(row) {
9
+ const addresses = await findAddresses(row.id);
10
+ return {
11
+ id: row.id,
12
+ email: row.email,
13
+ firstName: row.firstName ?? null,
14
+ lastName: row.lastName ?? null,
15
+ phone: row.phone ?? null,
16
+ addresses: addresses.map(mapAddress),
17
+ defaultAddressId: row.defaultAddressId ?? null,
18
+ createdAt: row.createdAt,
19
+ updatedAt: row.updatedAt,
20
+ };
21
+ }
22
+ function mapAddress(row) {
23
+ return {
24
+ id: row.id,
25
+ firstName: row.firstName,
26
+ lastName: row.lastName,
27
+ phone: row.phone ?? null,
28
+ street: row.street,
29
+ street2: row.street2 ?? null,
30
+ city: row.city,
31
+ state: row.state ?? null,
32
+ country: row.country,
33
+ postalCode: row.postalCode ?? null,
34
+ district: row.district ?? null,
35
+ nationalAddress: row.nationalAddress ?? null,
36
+ additionalNumber: row.additionalNumber ?? null,
37
+ isDefault: Boolean(row.isDefault),
38
+ };
39
+ }
40
+ // Track current customer (per-instance state — app manages sessions)
41
+ let currentCustomerId = null;
42
+ return {
43
+ async login(email, password) {
44
+ const row = await findCustomerByEmail(email);
45
+ if (!row)
46
+ throw new Error('Invalid email or password');
47
+ const valid = compareSync(password, row.passwordHash);
48
+ if (!valid)
49
+ throw new Error('Invalid email or password');
50
+ currentCustomerId = row.id;
51
+ return mapCustomer(row);
52
+ },
53
+ async register(input) {
54
+ // Check for existing email
55
+ const existing = await findCustomerByEmail(input.email);
56
+ if (existing)
57
+ throw new Error('Email already registered');
58
+ const id = crypto.randomUUID();
59
+ const now = new Date().toISOString();
60
+ const passwordHash = hashSync(input.password, 10);
61
+ await dbCreateCustomer({
62
+ id,
63
+ email: input.email,
64
+ passwordHash,
65
+ firstName: input.firstName ?? null,
66
+ lastName: input.lastName ?? null,
67
+ phone: input.phone ?? null,
68
+ createdAt: now,
69
+ updatedAt: now,
70
+ });
71
+ currentCustomerId = id;
72
+ const row = await findCustomerById(id);
73
+ return mapCustomer(row);
74
+ },
75
+ async getCustomer() {
76
+ if (!currentCustomerId)
77
+ throw new Error('Not authenticated');
78
+ const row = await findCustomerById(currentCustomerId);
79
+ if (!row)
80
+ throw new Error('Customer not found');
81
+ return mapCustomer(row);
82
+ },
83
+ async updateCustomer(input) {
84
+ if (!currentCustomerId)
85
+ throw new Error('Not authenticated');
86
+ const updates = { updatedAt: new Date().toISOString() };
87
+ if (input.email)
88
+ updates.email = input.email;
89
+ if (input.firstName)
90
+ updates.firstName = input.firstName;
91
+ if (input.lastName)
92
+ updates.lastName = input.lastName;
93
+ if (input.phone)
94
+ updates.phone = input.phone;
95
+ await dbUpdateCustomer(currentCustomerId, updates);
96
+ return this.getCustomer();
97
+ },
98
+ async logout() {
99
+ currentCustomerId = null;
100
+ },
101
+ async forgotPassword(_email) {
102
+ // Stub — in a real implementation, this would send an email
103
+ },
104
+ async resetPassword(_token, _newPassword) {
105
+ // Stub — in a real implementation, this would verify token and update password
106
+ },
107
+ // ---- Address Book ----
108
+ async getAddresses() {
109
+ if (!currentCustomerId)
110
+ throw new Error('Not authenticated');
111
+ const rows = await findAddresses(currentCustomerId);
112
+ return rows.map(mapAddress);
113
+ },
114
+ async addAddress(address) {
115
+ if (!currentCustomerId)
116
+ throw new Error('Not authenticated');
117
+ const id = crypto.randomUUID();
118
+ await dbCreateAddress({
119
+ id,
120
+ customerId: currentCustomerId,
121
+ firstName: address.firstName,
122
+ lastName: address.lastName,
123
+ phone: address.phone ?? null,
124
+ street: address.street,
125
+ street2: address.street2 ?? null,
126
+ city: address.city,
127
+ state: address.state ?? null,
128
+ country: address.country,
129
+ postalCode: address.postalCode ?? null,
130
+ district: address.district ?? null,
131
+ nationalAddress: address.nationalAddress ?? null,
132
+ additionalNumber: address.additionalNumber ?? null,
133
+ isDefault: address.isDefault ?? false,
134
+ });
135
+ // If this is the default address, update customer record
136
+ if (address.isDefault) {
137
+ await dbUpdateCustomer(currentCustomerId, { defaultAddressId: id });
138
+ }
139
+ const row = await findAddressById(id);
140
+ return mapAddress(row);
141
+ },
142
+ async updateAddress(addressId, address) {
143
+ const updates = {};
144
+ if (address.firstName != null)
145
+ updates.firstName = address.firstName;
146
+ if (address.lastName != null)
147
+ updates.lastName = address.lastName;
148
+ if (address.phone !== undefined)
149
+ updates.phone = address.phone;
150
+ if (address.street != null)
151
+ updates.street = address.street;
152
+ if (address.street2 !== undefined)
153
+ updates.street2 = address.street2;
154
+ if (address.city != null)
155
+ updates.city = address.city;
156
+ if (address.state !== undefined)
157
+ updates.state = address.state;
158
+ if (address.country != null)
159
+ updates.country = address.country;
160
+ if (address.postalCode !== undefined)
161
+ updates.postalCode = address.postalCode;
162
+ if (address.district !== undefined)
163
+ updates.district = address.district;
164
+ if (address.isDefault != null)
165
+ updates.isDefault = address.isDefault;
166
+ await dbUpdateAddress(addressId, updates);
167
+ const row = await findAddressById(addressId);
168
+ return mapAddress(row);
169
+ },
170
+ async deleteAddress(addressId) {
171
+ await dbDeleteAddress(addressId);
172
+ },
173
+ /** Set the current customer ID (for adapter-level auth management) */
174
+ setCurrentCustomer(id) {
175
+ currentCustomerId = id;
176
+ },
177
+ };
178
+ }
179
+ //# sourceMappingURL=customers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/domains/customers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { LocalizedString, Maybe, Price, DiscountablePrice, Image } from '@commercejs/types';
2
+ /** Create a bilingual LocalizedString from en/ar columns */
3
+ export declare function localized(en: string | null, ar: string | null): LocalizedString;
4
+ /** Create a Price from a numeric value + currency */
5
+ export declare function price(amount: number | null | undefined, currency: string): Maybe<Price>;
6
+ /** Create a non-null Price (for required fields) */
7
+ export declare function priceRequired(amount: number, currency: string): Price;
8
+ /** Create a DiscountablePrice from price + compareAt */
9
+ export declare function discountablePrice(amount: number | null, compareAt: number | null, currency: string): Maybe<DiscountablePrice>;
10
+ /** Create an Image from url + altText */
11
+ export declare function img(url: string, altText: string | null): Image;
12
+ /** Generate an order number like ORD-20260211-XXXX */
13
+ export declare function generateOrderNumber(): string;
14
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/domains/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEhG,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe,CAE/E;AAED,qDAAqD;AACrD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAGvF;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAErE;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC,iBAAiB,CAAC,CAY1B;AAED,yCAAyC;AACzC,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAK9D;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C"}
@@ -0,0 +1,46 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Shared helpers for domain implementations
3
+ // ---------------------------------------------------------------------------
4
+ /** Create a bilingual LocalizedString from en/ar columns */
5
+ export function localized(en, ar) {
6
+ return { en: en ?? '', ar: ar ?? '' };
7
+ }
8
+ /** Create a Price from a numeric value + currency */
9
+ export function price(amount, currency) {
10
+ if (amount == null)
11
+ return null;
12
+ return { amount, currency, formatted: `${amount} ${currency}` };
13
+ }
14
+ /** Create a non-null Price (for required fields) */
15
+ export function priceRequired(amount, currency) {
16
+ return { amount, currency, formatted: `${amount} ${currency}` };
17
+ }
18
+ /** Create a DiscountablePrice from price + compareAt */
19
+ export function discountablePrice(amount, compareAt, currency) {
20
+ if (amount == null)
21
+ return null;
22
+ const base = {
23
+ amount,
24
+ currency,
25
+ formatted: `${amount} ${currency}`,
26
+ };
27
+ if (compareAt != null && compareAt > amount) {
28
+ base.originalAmount = compareAt;
29
+ base.discountPercent = Math.round(((compareAt - amount) / compareAt) * 100);
30
+ }
31
+ return base;
32
+ }
33
+ /** Create an Image from url + altText */
34
+ export function img(url, altText) {
35
+ return {
36
+ url,
37
+ alt: altText ?? '',
38
+ };
39
+ }
40
+ /** Generate an order number like ORD-20260211-XXXX */
41
+ export function generateOrderNumber() {
42
+ const date = new Date().toISOString().slice(0, 10).replace(/-/g, '');
43
+ const random = Math.random().toString(36).substring(2, 6).toUpperCase();
44
+ return `ORD-${date}-${random}`;
45
+ }
46
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/domains/helpers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAI9E,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CAAC,EAAiB,EAAE,EAAiB;IAC5D,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;AACvC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,KAAK,CAAC,MAAiC,EAAE,QAAgB;IACvE,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAA;AACjE,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAgB;IAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAA;AACjE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,SAAwB,EACxB,QAAgB;IAEhB,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,IAAI,GAAsB;QAC9B,MAAM;QACN,QAAQ;QACR,SAAS,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE;KACnC,CAAA;IACD,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,OAAsB;IACrD,OAAO;QACL,GAAG;QACH,GAAG,EAAE,OAAO,IAAI,EAAE;KACnB,CAAA;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,mBAAmB;IACjC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACvE,OAAO,OAAO,IAAI,IAAI,MAAM,EAAE,CAAA;AAChC,CAAC"}
@@ -0,0 +1,31 @@
1
+ export declare const wholesaleStubs: {
2
+ getCustomerGroups: () => never;
3
+ createQuote: () => never;
4
+ getQuotes: () => never;
5
+ getQuote: () => never;
6
+ acceptQuote: () => never;
7
+ rejectQuote: () => never;
8
+ };
9
+ export declare const auctionStubs: {
10
+ placeBid: () => never;
11
+ getBids: () => never;
12
+ getWinningBid: () => never;
13
+ };
14
+ export declare const rentalStubs: {
15
+ checkAvailability: () => never;
16
+ createBooking: () => never;
17
+ getBookings: () => never;
18
+ getBooking: () => never;
19
+ cancelBooking: () => never;
20
+ };
21
+ export declare const giftCardStubs: {
22
+ purchaseGiftCard: () => never;
23
+ getGiftCardBalance: () => never;
24
+ redeemGiftCard: () => never;
25
+ getMyGiftCards: () => never;
26
+ getGiftCardTransactions: () => never;
27
+ };
28
+ export declare const locationStubs: {
29
+ getStoreLocations: () => never;
30
+ };
31
+ //# sourceMappingURL=not-supported.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-supported.d.ts","sourceRoot":"","sources":["../../src/domains/not-supported.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,cAAc;;;;;;;CAO1B,CAAA;AAED,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAA;AAED,eAAO,MAAM,aAAa;;CAEzB,CAAA"}
@@ -0,0 +1,43 @@
1
+ // ---------------------------------------------------------------------------
2
+ // NOT_SUPPORTED stubs — domains not yet implemented
3
+ // ---------------------------------------------------------------------------
4
+ // These throw CommerceError with code NOT_SUPPORTED (HTTP 501).
5
+ // They'll be replaced with real implementations in future phases.
6
+ // ---------------------------------------------------------------------------
7
+ function notSupported(domain, method) {
8
+ const error = new Error(`${domain}.${method} is not supported by @commercejs/platform yet`);
9
+ error.code = 'NOT_SUPPORTED';
10
+ error.statusCode = 501;
11
+ throw error;
12
+ }
13
+ export const wholesaleStubs = {
14
+ getCustomerGroups: () => notSupported('wholesale', 'getCustomerGroups'),
15
+ createQuote: () => notSupported('wholesale', 'createQuote'),
16
+ getQuotes: () => notSupported('wholesale', 'getQuotes'),
17
+ getQuote: () => notSupported('wholesale', 'getQuote'),
18
+ acceptQuote: () => notSupported('wholesale', 'acceptQuote'),
19
+ rejectQuote: () => notSupported('wholesale', 'rejectQuote'),
20
+ };
21
+ export const auctionStubs = {
22
+ placeBid: () => notSupported('auctions', 'placeBid'),
23
+ getBids: () => notSupported('auctions', 'getBids'),
24
+ getWinningBid: () => notSupported('auctions', 'getWinningBid'),
25
+ };
26
+ export const rentalStubs = {
27
+ checkAvailability: () => notSupported('rentals', 'checkAvailability'),
28
+ createBooking: () => notSupported('rentals', 'createBooking'),
29
+ getBookings: () => notSupported('rentals', 'getBookings'),
30
+ getBooking: () => notSupported('rentals', 'getBooking'),
31
+ cancelBooking: () => notSupported('rentals', 'cancelBooking'),
32
+ };
33
+ export const giftCardStubs = {
34
+ purchaseGiftCard: () => notSupported('gift-cards', 'purchaseGiftCard'),
35
+ getGiftCardBalance: () => notSupported('gift-cards', 'getGiftCardBalance'),
36
+ redeemGiftCard: () => notSupported('gift-cards', 'redeemGiftCard'),
37
+ getMyGiftCards: () => notSupported('gift-cards', 'getMyGiftCards'),
38
+ getGiftCardTransactions: () => notSupported('gift-cards', 'getGiftCardTransactions'),
39
+ };
40
+ export const locationStubs = {
41
+ getStoreLocations: () => notSupported('locations', 'getStoreLocations'),
42
+ };
43
+ //# sourceMappingURL=not-supported.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-supported.js","sourceRoot":"","sources":["../../src/domains/not-supported.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,oDAAoD;AACpD,8EAA8E;AAC9E,gEAAgE;AAChE,kEAAkE;AAClE,8EAA8E;AAE9E,SAAS,YAAY,CAAC,MAAc,EAAE,MAAc;IAClD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,MAAM,+CAA+C,CAAC,CAC1F;IAAC,KAAa,CAAC,IAAI,GAAG,eAAe,CACrC;IAAC,KAAa,CAAC,UAAU,GAAG,GAAG,CAAA;IAChC,MAAM,KAAK,CAAA;AACb,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,iBAAiB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,mBAAmB,CAAC;IACvE,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC;IAC3D,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC;IACvD,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC;IACrD,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC;IAC3D,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC;CAC5D,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;IACpD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC;IAClD,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC;CAC/D,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,iBAAiB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACrE,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC;IAC7D,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC;IACzD,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC;IACvD,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC;CAC9D,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAkB,CAAC;IACtE,kBAAkB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC1E,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAClE,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAClE,uBAAuB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,yBAAyB,CAAC;CACrF,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,iBAAiB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,mBAAmB,CAAC;CACxE,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { Order, CreateOrderInput, PaginationParams, PaginatedResult, OrderStatusInfo, OrderHistoryEntry, UpdateOrderStatusInput } from '@commercejs/types';
2
+ export declare function createOrdersDomain(currency: string): {
3
+ createOrder(input: CreateOrderInput): Promise<Order>;
4
+ getOrder(orderId: string): Promise<Order>;
5
+ getCustomerOrders(params?: PaginationParams): Promise<PaginatedResult<Order>>;
6
+ getOrderStatuses(): Promise<OrderStatusInfo[]>;
7
+ updateOrderStatus(orderId: string, input: UpdateOrderStatusInput): Promise<void>;
8
+ cancelOrder(orderId: string, note?: string): Promise<void>;
9
+ duplicateOrder(orderId: string): Promise<Order>;
10
+ getOrderHistory(orderId: string): Promise<OrderHistoryEntry[]>;
11
+ };
12
+ //# sourceMappingURL=orders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/domains/orders.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,mBAAmB,CAAA;AAa1B,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;uBAsDtB,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;sBA6ClC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;+BAMd,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAiBzD,OAAO,CAAC,eAAe,EAAE,CAAC;+BAwBnB,MAAM,SAAS,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;yBAiB3D,MAAM,SAAS,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;4BAIlC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;6BAgBtB,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;EAYvE"}