@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.
- package/README.md +156 -0
- package/dist/__tests__/platform.drizzle.test.d.ts +2 -0
- package/dist/__tests__/platform.drizzle.test.d.ts.map +1 -0
- package/dist/__tests__/platform.drizzle.test.js +27 -0
- package/dist/__tests__/platform.drizzle.test.js.map +1 -0
- package/dist/__tests__/platform.prisma.test.d.ts +2 -0
- package/dist/__tests__/platform.prisma.test.d.ts.map +1 -0
- package/dist/__tests__/platform.prisma.test.js +27 -0
- package/dist/__tests__/platform.prisma.test.js.map +1 -0
- package/dist/__tests__/platform.suite.d.ts +8 -0
- package/dist/__tests__/platform.suite.d.ts.map +1 -0
- package/dist/__tests__/platform.suite.js +406 -0
- package/dist/__tests__/platform.suite.js.map +1 -0
- package/dist/adapter.d.ts +20 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +122 -0
- package/dist/adapter.js.map +1 -0
- package/dist/database/drizzle/client.d.ts +13 -0
- package/dist/database/drizzle/client.d.ts.map +1 -0
- package/dist/database/drizzle/client.js +29 -0
- package/dist/database/drizzle/client.js.map +1 -0
- package/dist/database/drizzle/index.d.ts +5 -0
- package/dist/database/drizzle/index.d.ts.map +1 -0
- package/dist/database/drizzle/index.js +7 -0
- package/dist/database/drizzle/index.js.map +1 -0
- package/dist/database/drizzle/migrate.d.ts +9 -0
- package/dist/database/drizzle/migrate.d.ts.map +1 -0
- package/dist/database/drizzle/migrate.js +317 -0
- package/dist/database/drizzle/migrate.js.map +1 -0
- package/dist/database/drizzle/queries/brands.d.ts +26 -0
- package/dist/database/drizzle/queries/brands.d.ts.map +1 -0
- package/dist/database/drizzle/queries/brands.js +19 -0
- package/dist/database/drizzle/queries/brands.js.map +1 -0
- package/dist/database/drizzle/queries/cart.d.ts +61 -0
- package/dist/database/drizzle/queries/cart.d.ts.map +1 -0
- package/dist/database/drizzle/queries/cart.js +57 -0
- package/dist/database/drizzle/queries/cart.js.map +1 -0
- package/dist/database/drizzle/queries/catalog.d.ts +149 -0
- package/dist/database/drizzle/queries/catalog.d.ts.map +1 -0
- package/dist/database/drizzle/queries/catalog.js +88 -0
- package/dist/database/drizzle/queries/catalog.js.map +1 -0
- package/dist/database/drizzle/queries/countries.d.ts +22 -0
- package/dist/database/drizzle/queries/countries.d.ts.map +1 -0
- package/dist/database/drizzle/queries/countries.js +19 -0
- package/dist/database/drizzle/queries/countries.js.map +1 -0
- package/dist/database/drizzle/queries/customers.d.ts +87 -0
- package/dist/database/drizzle/queries/customers.d.ts.map +1 -0
- package/dist/database/drizzle/queries/customers.js +41 -0
- package/dist/database/drizzle/queries/customers.js.map +1 -0
- package/dist/database/drizzle/queries/index.d.ts +12 -0
- package/dist/database/drizzle/queries/index.d.ts.map +1 -0
- package/dist/database/drizzle/queries/index.js +28 -0
- package/dist/database/drizzle/queries/index.js.map +1 -0
- package/dist/database/drizzle/queries/orders.d.ts +74 -0
- package/dist/database/drizzle/queries/orders.d.ts.map +1 -0
- package/dist/database/drizzle/queries/orders.js +39 -0
- package/dist/database/drizzle/queries/orders.js.map +1 -0
- package/dist/database/drizzle/queries/promotions.d.ts +61 -0
- package/dist/database/drizzle/queries/promotions.d.ts.map +1 -0
- package/dist/database/drizzle/queries/promotions.js +39 -0
- package/dist/database/drizzle/queries/promotions.js.map +1 -0
- package/dist/database/drizzle/queries/returns.d.ts +62 -0
- package/dist/database/drizzle/queries/returns.d.ts.map +1 -0
- package/dist/database/drizzle/queries/returns.js +58 -0
- package/dist/database/drizzle/queries/returns.js.map +1 -0
- package/dist/database/drizzle/queries/reviews.d.ts +25 -0
- package/dist/database/drizzle/queries/reviews.d.ts.map +1 -0
- package/dist/database/drizzle/queries/reviews.js +57 -0
- package/dist/database/drizzle/queries/reviews.js.map +1 -0
- package/dist/database/drizzle/queries/store.d.ts +22 -0
- package/dist/database/drizzle/queries/store.d.ts.map +1 -0
- package/dist/database/drizzle/queries/store.js +14 -0
- package/dist/database/drizzle/queries/store.js.map +1 -0
- package/dist/database/drizzle/queries/wishlists.d.ts +31 -0
- package/dist/database/drizzle/queries/wishlists.d.ts.map +1 -0
- package/dist/database/drizzle/queries/wishlists.js +44 -0
- package/dist/database/drizzle/queries/wishlists.js.map +1 -0
- package/dist/database/drizzle/schema/brands.d.ts +196 -0
- package/dist/database/drizzle/schema/brands.d.ts.map +1 -0
- package/dist/database/drizzle/schema/brands.js +17 -0
- package/dist/database/drizzle/schema/brands.js.map +1 -0
- package/dist/database/drizzle/schema/carts.d.ts +294 -0
- package/dist/database/drizzle/schema/carts.d.ts.map +1 -0
- package/dist/database/drizzle/schema/carts.js +28 -0
- package/dist/database/drizzle/schema/carts.js.map +1 -0
- package/dist/database/drizzle/schema/categories.d.ts +215 -0
- package/dist/database/drizzle/schema/categories.d.ts.map +1 -0
- package/dist/database/drizzle/schema/categories.js +18 -0
- package/dist/database/drizzle/schema/categories.js.map +1 -0
- package/dist/database/drizzle/schema/countries.d.ts +158 -0
- package/dist/database/drizzle/schema/countries.d.ts.map +1 -0
- package/dist/database/drizzle/schema/countries.js +15 -0
- package/dist/database/drizzle/schema/countries.js.map +1 -0
- package/dist/database/drizzle/schema/customers.d.ts +469 -0
- package/dist/database/drizzle/schema/customers.d.ts.map +1 -0
- package/dist/database/drizzle/schema/customers.js +33 -0
- package/dist/database/drizzle/schema/customers.js.map +1 -0
- package/dist/database/drizzle/schema/index.d.ts +13 -0
- package/dist/database/drizzle/schema/index.d.ts.map +1 -0
- package/dist/database/drizzle/schema/index.js +16 -0
- package/dist/database/drizzle/schema/index.js.map +1 -0
- package/dist/database/drizzle/schema/orders.d.ts +722 -0
- package/dist/database/drizzle/schema/orders.d.ts.map +1 -0
- package/dist/database/drizzle/schema/orders.js +63 -0
- package/dist/database/drizzle/schema/orders.js.map +1 -0
- package/dist/database/drizzle/schema/products.d.ts +1180 -0
- package/dist/database/drizzle/schema/products.d.ts.map +1 -0
- package/dist/database/drizzle/schema/products.js +99 -0
- package/dist/database/drizzle/schema/products.js.map +1 -0
- package/dist/database/drizzle/schema/promotions.d.ts +474 -0
- package/dist/database/drizzle/schema/promotions.d.ts.map +1 -0
- package/dist/database/drizzle/schema/promotions.js +34 -0
- package/dist/database/drizzle/schema/promotions.js.map +1 -0
- package/dist/database/drizzle/schema/returns.d.ts +467 -0
- package/dist/database/drizzle/schema/returns.d.ts.map +1 -0
- package/dist/database/drizzle/schema/returns.js +34 -0
- package/dist/database/drizzle/schema/returns.js.map +1 -0
- package/dist/database/drizzle/schema/reviews.d.ts +175 -0
- package/dist/database/drizzle/schema/reviews.d.ts.map +1 -0
- package/dist/database/drizzle/schema/reviews.js +17 -0
- package/dist/database/drizzle/schema/reviews.js.map +1 -0
- package/dist/database/drizzle/schema/store.d.ts +350 -0
- package/dist/database/drizzle/schema/store.d.ts.map +1 -0
- package/dist/database/drizzle/schema/store.js +25 -0
- package/dist/database/drizzle/schema/store.js.map +1 -0
- package/dist/database/drizzle/schema/wishlists.d.ts +167 -0
- package/dist/database/drizzle/schema/wishlists.d.ts.map +1 -0
- package/dist/database/drizzle/schema/wishlists.js +19 -0
- package/dist/database/drizzle/schema/wishlists.js.map +1 -0
- package/dist/database/drizzle/seed.d.ts +6 -0
- package/dist/database/drizzle/seed.d.ts.map +1 -0
- package/dist/database/drizzle/seed.js +166 -0
- package/dist/database/drizzle/seed.js.map +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +12 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/prisma/client.d.ts +13 -0
- package/dist/database/prisma/client.d.ts.map +1 -0
- package/dist/database/prisma/client.js +25 -0
- package/dist/database/prisma/client.js.map +1 -0
- package/dist/database/prisma/generated/browser.d.ts +135 -0
- package/dist/database/prisma/generated/browser.d.ts.map +1 -0
- package/dist/database/prisma/generated/browser.js +18 -0
- package/dist/database/prisma/generated/browser.js.map +1 -0
- package/dist/database/prisma/generated/client.d.ts +152 -0
- package/dist/database/prisma/generated/client.d.ts.map +1 -0
- package/dist/database/prisma/generated/client.js +33 -0
- package/dist/database/prisma/generated/client.js.map +1 -0
- package/dist/database/prisma/generated/commonInputTypes.d.ts +344 -0
- package/dist/database/prisma/generated/commonInputTypes.d.ts.map +1 -0
- package/dist/database/prisma/generated/commonInputTypes.js +11 -0
- package/dist/database/prisma/generated/commonInputTypes.js.map +1 -0
- package/dist/database/prisma/generated/enums.d.ts +2 -0
- package/dist/database/prisma/generated/enums.d.ts.map +1 -0
- package/dist/database/prisma/generated/enums.js +11 -0
- package/dist/database/prisma/generated/enums.js.map +1 -0
- package/dist/database/prisma/generated/internal/class.d.ts +402 -0
- package/dist/database/prisma/generated/internal/class.d.ts.map +1 -0
- package/dist/database/prisma/generated/internal/class.js +42 -0
- package/dist/database/prisma/generated/internal/class.js.map +1 -0
- package/dist/database/prisma/generated/internal/prismaNamespace.d.ts +2735 -0
- package/dist/database/prisma/generated/internal/prismaNamespace.d.ts.map +1 -0
- package/dist/database/prisma/generated/internal/prismaNamespace.js +415 -0
- package/dist/database/prisma/generated/internal/prismaNamespace.js.map +1 -0
- package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.d.ts +400 -0
- package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -0
- package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.js +386 -0
- package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
- package/dist/database/prisma/generated/models/Brand.d.ts +1141 -0
- package/dist/database/prisma/generated/models/Brand.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Brand.js +2 -0
- package/dist/database/prisma/generated/models/Brand.js.map +1 -0
- package/dist/database/prisma/generated/models/Cart.d.ts +1464 -0
- package/dist/database/prisma/generated/models/Cart.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Cart.js +2 -0
- package/dist/database/prisma/generated/models/Cart.js.map +1 -0
- package/dist/database/prisma/generated/models/CartItem.d.ts +1487 -0
- package/dist/database/prisma/generated/models/CartItem.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/CartItem.js +2 -0
- package/dist/database/prisma/generated/models/CartItem.js.map +1 -0
- package/dist/database/prisma/generated/models/Category.d.ts +1717 -0
- package/dist/database/prisma/generated/models/Category.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Category.js +2 -0
- package/dist/database/prisma/generated/models/Category.js.map +1 -0
- package/dist/database/prisma/generated/models/Country.d.ts +1076 -0
- package/dist/database/prisma/generated/models/Country.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Country.js +2 -0
- package/dist/database/prisma/generated/models/Country.js.map +1 -0
- package/dist/database/prisma/generated/models/Coupon.d.ts +1242 -0
- package/dist/database/prisma/generated/models/Coupon.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Coupon.js +2 -0
- package/dist/database/prisma/generated/models/Coupon.js.map +1 -0
- package/dist/database/prisma/generated/models/Customer.d.ts +1536 -0
- package/dist/database/prisma/generated/models/Customer.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Customer.js +2 -0
- package/dist/database/prisma/generated/models/Customer.js.map +1 -0
- package/dist/database/prisma/generated/models/CustomerAddress.d.ts +1519 -0
- package/dist/database/prisma/generated/models/CustomerAddress.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/CustomerAddress.js +2 -0
- package/dist/database/prisma/generated/models/CustomerAddress.js.map +1 -0
- package/dist/database/prisma/generated/models/Order.d.ts +2136 -0
- package/dist/database/prisma/generated/models/Order.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Order.js +2 -0
- package/dist/database/prisma/generated/models/Order.js.map +1 -0
- package/dist/database/prisma/generated/models/OrderHistory.d.ts +1204 -0
- package/dist/database/prisma/generated/models/OrderHistory.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/OrderHistory.js +2 -0
- package/dist/database/prisma/generated/models/OrderHistory.js.map +1 -0
- package/dist/database/prisma/generated/models/OrderItem.d.ts +1464 -0
- package/dist/database/prisma/generated/models/OrderItem.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/OrderItem.js +2 -0
- package/dist/database/prisma/generated/models/OrderItem.js.map +1 -0
- package/dist/database/prisma/generated/models/Product.d.ts +2969 -0
- package/dist/database/prisma/generated/models/Product.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Product.js +2 -0
- package/dist/database/prisma/generated/models/Product.js.map +1 -0
- package/dist/database/prisma/generated/models/ProductAttribute.d.ts +1239 -0
- package/dist/database/prisma/generated/models/ProductAttribute.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ProductAttribute.js +2 -0
- package/dist/database/prisma/generated/models/ProductAttribute.js.map +1 -0
- package/dist/database/prisma/generated/models/ProductCategory.d.ts +1154 -0
- package/dist/database/prisma/generated/models/ProductCategory.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ProductCategory.js +2 -0
- package/dist/database/prisma/generated/models/ProductCategory.js.map +1 -0
- package/dist/database/prisma/generated/models/ProductImage.d.ts +1242 -0
- package/dist/database/prisma/generated/models/ProductImage.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ProductImage.js +2 -0
- package/dist/database/prisma/generated/models/ProductImage.js.map +1 -0
- package/dist/database/prisma/generated/models/ProductOption.d.ts +1328 -0
- package/dist/database/prisma/generated/models/ProductOption.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ProductOption.js +2 -0
- package/dist/database/prisma/generated/models/ProductOption.js.map +1 -0
- package/dist/database/prisma/generated/models/ProductOptionValue.d.ts +1207 -0
- package/dist/database/prisma/generated/models/ProductOptionValue.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ProductOptionValue.js +2 -0
- package/dist/database/prisma/generated/models/ProductOptionValue.js.map +1 -0
- package/dist/database/prisma/generated/models/ProductTag.d.ts +1099 -0
- package/dist/database/prisma/generated/models/ProductTag.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ProductTag.js +2 -0
- package/dist/database/prisma/generated/models/ProductTag.js.map +1 -0
- package/dist/database/prisma/generated/models/ProductVariant.d.ts +1543 -0
- package/dist/database/prisma/generated/models/ProductVariant.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ProductVariant.js +2 -0
- package/dist/database/prisma/generated/models/ProductVariant.js.map +1 -0
- package/dist/database/prisma/generated/models/Promotion.d.ts +1658 -0
- package/dist/database/prisma/generated/models/Promotion.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Promotion.js +2 -0
- package/dist/database/prisma/generated/models/Promotion.js.map +1 -0
- package/dist/database/prisma/generated/models/Return.d.ts +1448 -0
- package/dist/database/prisma/generated/models/Return.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Return.js +2 -0
- package/dist/database/prisma/generated/models/Return.js.map +1 -0
- package/dist/database/prisma/generated/models/ReturnItem.d.ts +1417 -0
- package/dist/database/prisma/generated/models/ReturnItem.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/ReturnItem.js +2 -0
- package/dist/database/prisma/generated/models/ReturnItem.js.map +1 -0
- package/dist/database/prisma/generated/models/Review.d.ts +1142 -0
- package/dist/database/prisma/generated/models/Review.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Review.js +2 -0
- package/dist/database/prisma/generated/models/Review.js.map +1 -0
- package/dist/database/prisma/generated/models/StoreInfo.d.ts +1356 -0
- package/dist/database/prisma/generated/models/StoreInfo.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/StoreInfo.js +2 -0
- package/dist/database/prisma/generated/models/StoreInfo.js.map +1 -0
- package/dist/database/prisma/generated/models/Wishlist.d.ts +1090 -0
- package/dist/database/prisma/generated/models/Wishlist.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/Wishlist.js +2 -0
- package/dist/database/prisma/generated/models/Wishlist.js.map +1 -0
- package/dist/database/prisma/generated/models/WishlistItem.d.ts +1169 -0
- package/dist/database/prisma/generated/models/WishlistItem.d.ts.map +1 -0
- package/dist/database/prisma/generated/models/WishlistItem.js +2 -0
- package/dist/database/prisma/generated/models/WishlistItem.js.map +1 -0
- package/dist/database/prisma/generated/models.d.ts +28 -0
- package/dist/database/prisma/generated/models.d.ts.map +1 -0
- package/dist/database/prisma/generated/models.js +2 -0
- package/dist/database/prisma/generated/models.js.map +1 -0
- package/dist/database/prisma/index.d.ts +5 -0
- package/dist/database/prisma/index.d.ts.map +1 -0
- package/dist/database/prisma/index.js +7 -0
- package/dist/database/prisma/index.js.map +1 -0
- package/dist/database/prisma/migrate.d.ts +8 -0
- package/dist/database/prisma/migrate.d.ts.map +1 -0
- package/dist/database/prisma/migrate.js +323 -0
- package/dist/database/prisma/migrate.js.map +1 -0
- package/dist/database/prisma/queries/brands.d.ts +26 -0
- package/dist/database/prisma/queries/brands.d.ts.map +1 -0
- package/dist/database/prisma/queries/brands.js +17 -0
- package/dist/database/prisma/queries/brands.js.map +1 -0
- package/dist/database/prisma/queries/cart.d.ts +61 -0
- package/dist/database/prisma/queries/cart.d.ts.map +1 -0
- package/dist/database/prisma/queries/cart.js +68 -0
- package/dist/database/prisma/queries/cart.js.map +1 -0
- package/dist/database/prisma/queries/catalog.d.ts +149 -0
- package/dist/database/prisma/queries/catalog.d.ts.map +1 -0
- package/dist/database/prisma/queries/catalog.js +94 -0
- package/dist/database/prisma/queries/catalog.js.map +1 -0
- package/dist/database/prisma/queries/countries.d.ts +22 -0
- package/dist/database/prisma/queries/countries.d.ts.map +1 -0
- package/dist/database/prisma/queries/countries.js +17 -0
- package/dist/database/prisma/queries/countries.js.map +1 -0
- package/dist/database/prisma/queries/customers.d.ts +87 -0
- package/dist/database/prisma/queries/customers.d.ts.map +1 -0
- package/dist/database/prisma/queries/customers.js +32 -0
- package/dist/database/prisma/queries/customers.js.map +1 -0
- package/dist/database/prisma/queries/index.d.ts +12 -0
- package/dist/database/prisma/queries/index.d.ts.map +1 -0
- package/dist/database/prisma/queries/index.js +28 -0
- package/dist/database/prisma/queries/index.js.map +1 -0
- package/dist/database/prisma/queries/orders.d.ts +74 -0
- package/dist/database/prisma/queries/orders.d.ts.map +1 -0
- package/dist/database/prisma/queries/orders.js +49 -0
- package/dist/database/prisma/queries/orders.js.map +1 -0
- package/dist/database/prisma/queries/promotions.d.ts +81 -0
- package/dist/database/prisma/queries/promotions.d.ts.map +1 -0
- package/dist/database/prisma/queries/promotions.js +31 -0
- package/dist/database/prisma/queries/promotions.js.map +1 -0
- package/dist/database/prisma/queries/returns.d.ts +102 -0
- package/dist/database/prisma/queries/returns.d.ts.map +1 -0
- package/dist/database/prisma/queries/returns.js +50 -0
- package/dist/database/prisma/queries/returns.js.map +1 -0
- package/dist/database/prisma/queries/reviews.d.ts +25 -0
- package/dist/database/prisma/queries/reviews.d.ts.map +1 -0
- package/dist/database/prisma/queries/reviews.js +50 -0
- package/dist/database/prisma/queries/reviews.js.map +1 -0
- package/dist/database/prisma/queries/store.d.ts +22 -0
- package/dist/database/prisma/queries/store.d.ts.map +1 -0
- package/dist/database/prisma/queries/store.js +31 -0
- package/dist/database/prisma/queries/store.js.map +1 -0
- package/dist/database/prisma/queries/wishlists.d.ts +37 -0
- package/dist/database/prisma/queries/wishlists.d.ts.map +1 -0
- package/dist/database/prisma/queries/wishlists.js +37 -0
- package/dist/database/prisma/queries/wishlists.js.map +1 -0
- package/dist/database/prisma/seed.d.ts +5 -0
- package/dist/database/prisma/seed.d.ts.map +1 -0
- package/dist/database/prisma/seed.js +127 -0
- package/dist/database/prisma/seed.js.map +1 -0
- package/dist/domains/brands.d.ts +5 -0
- package/dist/domains/brands.d.ts.map +1 -0
- package/dist/domains/brands.js +21 -0
- package/dist/domains/brands.js.map +1 -0
- package/dist/domains/cart.d.ts +11 -0
- package/dist/domains/cart.d.ts.map +1 -0
- package/dist/domains/cart.js +110 -0
- package/dist/domains/cart.js.map +1 -0
- package/dist/domains/catalog.d.ts +7 -0
- package/dist/domains/catalog.d.ts.map +1 -0
- package/dist/domains/catalog.js +157 -0
- package/dist/domains/catalog.js.map +1 -0
- package/dist/domains/checkout.d.ts +11 -0
- package/dist/domains/checkout.d.ts.map +1 -0
- package/dist/domains/checkout.js +174 -0
- package/dist/domains/checkout.js.map +1 -0
- package/dist/domains/countries.d.ts +5 -0
- package/dist/domains/countries.d.ts.map +1 -0
- package/dist/domains/countries.js +21 -0
- package/dist/domains/countries.js.map +1 -0
- package/dist/domains/customers.d.ts +17 -0
- package/dist/domains/customers.d.ts.map +1 -0
- package/dist/domains/customers.js +179 -0
- package/dist/domains/customers.js.map +1 -0
- package/dist/domains/helpers.d.ts +14 -0
- package/dist/domains/helpers.d.ts.map +1 -0
- package/dist/domains/helpers.js +46 -0
- package/dist/domains/helpers.js.map +1 -0
- package/dist/domains/not-supported.d.ts +31 -0
- package/dist/domains/not-supported.d.ts.map +1 -0
- package/dist/domains/not-supported.js +43 -0
- package/dist/domains/not-supported.js.map +1 -0
- package/dist/domains/orders.d.ts +12 -0
- package/dist/domains/orders.d.ts.map +1 -0
- package/dist/domains/orders.js +184 -0
- package/dist/domains/orders.js.map +1 -0
- package/dist/domains/promotions.d.ts +6 -0
- package/dist/domains/promotions.d.ts.map +1 -0
- package/dist/domains/promotions.js +56 -0
- package/dist/domains/promotions.js.map +1 -0
- package/dist/domains/returns.d.ts +15 -0
- package/dist/domains/returns.d.ts.map +1 -0
- package/dist/domains/returns.js +83 -0
- package/dist/domains/returns.js.map +1 -0
- package/dist/domains/reviews.d.ts +16 -0
- package/dist/domains/reviews.d.ts.map +1 -0
- package/dist/domains/reviews.js +60 -0
- package/dist/domains/reviews.js.map +1 -0
- package/dist/domains/store.d.ts +5 -0
- package/dist/domains/store.d.ts.map +1 -0
- package/dist/domains/store.js +45 -0
- package/dist/domains/store.js.map +1 -0
- package/dist/domains/wishlist.d.ts +9 -0
- package/dist/domains/wishlist.d.ts.map +1 -0
- package/dist/domains/wishlist.js +76 -0
- package/dist/domains/wishlist.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- 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":"AAAA,8EAA8E;AAC9E,+DAA+D;AAC/D,8EAA8E;AAE9E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,KAAK,EAAE,CAAA;IACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAEpC,kBAAkB;IAClB,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5B,IAAI,EAAE;YACJ,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,mBAAmB;YAC3B,WAAW,EAAE,8CAA8C;YAC3D,aAAa,EAAE,sCAAsC;YACrD,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,aAAa;YACvB,mBAAmB,EAAE,qBAAqB;YAC1C,gBAAgB,EAAE,aAAa;YAC/B,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf;KACF,CAAC,CAAA;IAEF,uBAAuB;IACvB,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;QACzF,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE;QACvG,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE;KACvG,CAAA;IAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAG;QACf;YACE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,kBAAkB;YACxE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,2DAA2D;YACxE,aAAa,EAAE,+CAA+C;YAC9D,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;YACjE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG;YAC9D,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACtD,UAAU,EAAE,cAAc;SAC3B;QACD;YACE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,uBAAuB;YACjF,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,qEAAqE;YAClF,aAAa,EAAE,uDAAuD;YACtE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;YAC7C,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE;YAC7D,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACtD,UAAU,EAAE,iBAAiB;SAC9B;QACD;YACE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,uBAAuB;YAC5E,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,wDAAwD;YACrE,aAAa,EAAE,oDAAoD;YACnE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;YAClE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE;YAC7D,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACtD,UAAU,EAAE,iBAAiB;SAC9B;KACF,CAAA;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAA;QAC9C,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;QACzF,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;IACtF,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG;QACb,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,sDAAsD,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;QAC9I,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,yDAAyD,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;QACnJ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,kDAAkD,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;KACxI,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,2CAA2C;IAC3C,MAAM,QAAQ,GAAG;QACf,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;QACtH,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;QACvH,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;KACvH,CAAA;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzH,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvF,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9G,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QACxH,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAChI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAChG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAClG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC5F,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC7F,CAAA;IAED,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,oBAAoB;IACpB,MAAM,OAAO,GAAG;QACd,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,iEAAiE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;QACjN,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,4CAA4C,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;QAClL,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;QAClK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,8DAA8D,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;QAC3M,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,8CAA8C,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;QACpL,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,0CAA0C,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;KACvL,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -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":"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"}
|
|
@@ -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"}
|