@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,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 @@
|
|
|
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":"AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAOjD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,IAAI,gBAAgB,EAClC,cAAc,IAAI,gBAAgB,EAClC,aAAa,EACb,eAAe,EACf,aAAa,IAAI,eAAe,EAChC,aAAa,IAAI,eAAe,EAChC,aAAa,IAAI,eAAe,GACjC,MAAM,sBAAsB,CAAA;AAE7B,MAAM,UAAU,qBAAqB;IACnC,kCAAkC;IAClC,KAAK,UAAU,WAAW,CAAC,GAAQ;QACjC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE7C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;YAC9B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;YACpC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;YAC9C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAA;IACH,CAAC;IAED,SAAS,UAAU,CAAC,GAAQ;QAC1B,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;YAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;YAC9B,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI;YAC5C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;YAC9C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;SAClC,CAAA;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,iBAAiB,GAAkB,IAAI,CAAA;IAE3C,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,QAAgB;YACzC,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAE5C,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAEtD,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;YACrD,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAExD,iBAAiB,GAAG,GAAG,CAAC,EAAE,CAAA;YAC1B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,KAAoB;YACjC,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACvD,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAEzD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;YAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAEjD,MAAM,gBAAgB,CAAC;gBACrB,EAAE;gBACF,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,YAAY;gBACZ,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;gBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;gBAChC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;gBAC1B,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf,CAAC,CAAA;YAEF,iBAAiB,GAAG,EAAE,CAAA;YACtB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAA;YACtC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QAED,KAAK,CAAC,WAAW;YACf,IAAI,CAAC,iBAAiB;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC5D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;YACrD,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;YAC/C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,KAA0B;YAC7C,IAAI,CAAC,iBAAiB;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAE5D,MAAM,OAAO,GAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAA;YAC5D,IAAI,KAAK,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YAC5C,IAAI,KAAK,CAAC,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACxD,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YACrD,IAAI,KAAK,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YAE5C,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;YAClD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;QAC3B,CAAC;QAED,KAAK,CAAC,MAAM;YACV,iBAAiB,GAAG,IAAI,CAAA;QAC1B,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,MAAc;YACjC,4DAA4D;QAC9D,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,YAAoB;YACtD,+EAA+E;QACjF,CAAC;QAED,yBAAyB;QAEzB,KAAK,CAAC,YAAY;YAChB,IAAI,CAAC,iBAAiB;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC5D,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,CAAA;YACnD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC7B,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,OAA4B;YAC3C,IAAI,CAAC,iBAAiB;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC5D,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;YAE9B,MAAM,eAAe,CAAC;gBACpB,EAAE;gBACF,UAAU,EAAE,iBAAiB;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;gBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;gBACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBAClC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;gBAChD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;gBAClD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;aACtC,CAAC,CAAA;YAEF,yDAAyD;YACzD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAA;YACrE,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAA;YACrC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,OAAqC;YAC1E,MAAM,OAAO,GAAQ,EAAE,CAAA;YACvB,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI;gBAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;YACpE,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI;gBAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YACjE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;YAC9D,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI;gBAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YAC3D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YACpE,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACrD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;YAC9D,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI;gBAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YAC9D,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;YAC7E,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YACvE,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI;gBAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;YAEpE,MAAM,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAEzC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAA;YAC5C,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,SAAiB;YACnC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC;QAED,sEAAsE;QACtE,kBAAkB,CAAC,EAAiB;YAClC,iBAAiB,GAAG,EAAE,CAAA;QACxB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -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"}
|