@classytic/commerce-sdk 0.1.2 → 0.2.1
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 +277 -146
- package/dist/accounting/api/account.d.ts +49 -0
- package/dist/accounting/api/account.js +45 -0
- package/dist/accounting/api/budget.d.ts +76 -0
- package/dist/accounting/api/budget.js +82 -0
- package/dist/accounting/api/constants.d.ts +58 -0
- package/dist/accounting/api/constants.js +79 -0
- package/dist/accounting/api/fiscal-period.d.ts +31 -0
- package/dist/accounting/api/fiscal-period.js +30 -0
- package/dist/accounting/api/index.d.ts +7 -0
- package/dist/accounting/api/journal-entry.d.ts +66 -0
- package/dist/accounting/api/journal-entry.js +72 -0
- package/dist/accounting/api/posting.d.ts +55 -0
- package/dist/accounting/api/posting.js +70 -0
- package/dist/accounting/api/reports.d.ts +63 -0
- package/dist/accounting/api/reports.js +81 -0
- package/dist/accounting/hooks/account.d.ts +29 -0
- package/dist/accounting/hooks/account.js +102 -0
- package/dist/accounting/hooks/budget.d.ts +39 -0
- package/dist/accounting/hooks/budget.js +106 -0
- package/dist/accounting/hooks/fiscal-period.d.ts +22 -0
- package/dist/accounting/hooks/fiscal-period.js +52 -0
- package/dist/accounting/hooks/index.d.ts +6 -0
- package/dist/accounting/hooks/journal-entry.d.ts +37 -0
- package/dist/accounting/hooks/journal-entry.js +89 -0
- package/dist/accounting/hooks/posting.d.ts +128 -0
- package/dist/accounting/hooks/posting.js +119 -0
- package/dist/accounting/hooks/reports.d.ts +32 -0
- package/dist/accounting/hooks/reports.js +131 -0
- package/dist/accounting/index.d.ts +15 -0
- package/dist/accounting/index.js +15 -0
- package/dist/accounting/types/index.d.ts +375 -0
- package/dist/analytics/api/analytics.d.ts +16 -0
- package/dist/analytics/api/analytics.js +27 -0
- package/dist/analytics/api/index.d.ts +1 -0
- package/dist/analytics/hooks/analytics.d.ts +12 -0
- package/dist/analytics/hooks/analytics.js +33 -0
- package/dist/analytics/hooks/index.d.ts +1 -0
- package/dist/analytics/index.d.ts +4 -27
- package/dist/analytics/index.js +4 -6
- package/dist/analytics/types.d.ts +46 -0
- package/dist/audit/api/audit.d.ts +17 -0
- package/dist/audit/api/audit.js +21 -0
- package/dist/audit/hooks/audit.d.ts +17 -0
- package/dist/audit/hooks/audit.js +38 -0
- package/dist/audit/index.d.ts +4 -0
- package/dist/audit/index.js +4 -0
- package/dist/audit/types/index.d.ts +32 -0
- package/dist/auth/api/user-data.d.ts +30 -0
- package/dist/auth/api/user-data.js +70 -0
- package/dist/auth/hooks/user-search.d.ts +32 -0
- package/dist/auth/hooks/user-search.js +51 -0
- package/dist/auth/index.d.ts +4 -39
- package/dist/auth/index.js +5 -5
- package/dist/auth/types.d.ts +46 -0
- package/dist/auth/types.js +27 -0
- package/dist/catalog/api/category.d.ts +97 -0
- package/dist/catalog/api/category.js +109 -0
- package/dist/catalog/api/index.d.ts +4 -0
- package/dist/catalog/api/product.d.ts +136 -0
- package/dist/catalog/api/product.js +142 -0
- package/dist/catalog/api/review.d.ts +32 -0
- package/dist/catalog/api/review.js +41 -0
- package/dist/catalog/api/size-guide.d.ts +46 -0
- package/dist/catalog/api/size-guide.js +58 -0
- package/dist/catalog/hooks/category.d.ts +201 -0
- package/dist/catalog/hooks/category.js +295 -0
- package/dist/catalog/hooks/index.d.ts +4 -0
- package/dist/catalog/hooks/product.d.ts +165 -0
- package/dist/catalog/hooks/product.js +267 -0
- package/dist/catalog/hooks/review.d.ts +18 -0
- package/dist/catalog/hooks/review.js +38 -0
- package/dist/catalog/hooks/size-guide.d.ts +136 -0
- package/dist/catalog/hooks/size-guide.js +173 -0
- package/dist/catalog/index.d.ts +13 -571
- package/dist/catalog/index.js +10 -9
- package/dist/catalog/prefetch.d.ts +29 -0
- package/dist/catalog/prefetch.js +32 -0
- package/dist/catalog/types/category.d.ts +168 -0
- package/dist/catalog/types/index.d.ts +4 -0
- package/dist/catalog/types/product.d.ts +261 -0
- package/dist/catalog/types/review.d.ts +48 -0
- package/dist/catalog/types/size-guide.d.ts +118 -0
- package/dist/client.d.ts +138 -0
- package/dist/client.js +129 -0
- package/dist/content/api/cms.d.ts +27 -0
- package/dist/content/api/cms.js +43 -0
- package/dist/content/api/index.d.ts +2 -0
- package/dist/content/api/media.d.ts +74 -0
- package/dist/content/api/media.js +77 -0
- package/dist/content/hooks/cms.d.ts +31 -0
- package/dist/content/hooks/cms.js +62 -0
- package/dist/content/hooks/index.d.ts +2 -0
- package/dist/content/hooks/media.d.ts +74 -0
- package/dist/content/hooks/media.js +153 -0
- package/dist/content/index.d.ts +7 -309
- package/dist/content/index.js +6 -6
- package/dist/content/types/cms.d.ts +390 -0
- package/dist/content/types/media.d.ts +110 -0
- package/dist/core/api-factory.d.ts +17 -0
- package/dist/core/api-factory.js +39 -0
- package/dist/core/api-handler.d.ts +53 -0
- package/dist/core/api-handler.js +89 -0
- package/dist/core/index.d.ts +4 -166
- package/dist/core/index.js +4 -5
- package/dist/core/prefetch.d.ts +2 -0
- package/dist/core/prefetch.js +3 -0
- package/dist/core/react/crud.factory.d.ts +3 -0
- package/dist/core/react/crud.factory.js +5 -0
- package/dist/core/react/index.d.ts +4 -0
- package/dist/core/react/index.js +7 -0
- package/dist/core/react/mutation.factory.d.ts +9 -0
- package/dist/core/react/mutation.factory.js +21 -0
- package/dist/core/react/query.factory.d.ts +12 -0
- package/dist/core/react/query.factory.js +5 -0
- package/dist/core/server-context.d.ts +6 -0
- package/dist/core/server-context.js +12 -0
- package/dist/core/types/shared.d.ts +29 -0
- package/dist/finance/api/finance.d.ts +22 -0
- package/dist/finance/api/finance.js +29 -0
- package/dist/finance/api/index.d.ts +1 -0
- package/dist/finance/hooks/finance.d.ts +32 -0
- package/dist/finance/hooks/finance.js +66 -0
- package/dist/finance/hooks/index.d.ts +1 -0
- package/dist/finance/index.d.ts +4 -81
- package/dist/finance/index.js +4 -5
- package/dist/finance/types/finance.d.ts +82 -0
- package/dist/index.d.ts +139 -32
- package/dist/index.js +113 -29
- package/dist/inventory/api/adjustment.d.ts +123 -0
- package/dist/inventory/api/adjustment.js +120 -0
- package/dist/inventory/api/availability.d.ts +70 -0
- package/dist/inventory/api/availability.js +47 -0
- package/dist/inventory/api/cost.d.ts +58 -0
- package/dist/inventory/api/cost.js +34 -0
- package/dist/inventory/api/index.d.ts +18 -0
- package/dist/inventory/api/lot.d.ts +82 -0
- package/dist/inventory/api/lot.js +46 -0
- package/dist/inventory/api/movement.d.ts +71 -0
- package/dist/inventory/api/movement.js +75 -0
- package/dist/inventory/api/package.d.ts +97 -0
- package/dist/inventory/api/package.js +56 -0
- package/dist/inventory/api/procurement.d.ts +110 -0
- package/dist/inventory/api/procurement.js +59 -0
- package/dist/inventory/api/purchase.d.ts +106 -0
- package/dist/inventory/api/purchase.js +115 -0
- package/dist/inventory/api/replenishment.d.ts +145 -0
- package/dist/inventory/api/replenishment.js +63 -0
- package/dist/inventory/api/report.d.ts +102 -0
- package/dist/inventory/api/report.js +54 -0
- package/dist/inventory/api/request.d.ts +157 -0
- package/dist/inventory/api/request.js +140 -0
- package/dist/inventory/api/reservation.d.ts +77 -0
- package/dist/inventory/api/reservation.js +51 -0
- package/dist/inventory/api/scan.d.ts +29 -0
- package/dist/inventory/api/scan.js +30 -0
- package/dist/inventory/api/supplier.d.ts +9 -0
- package/dist/inventory/api/supplier.js +24 -0
- package/dist/inventory/api/trace.d.ts +71 -0
- package/dist/inventory/api/trace.js +39 -0
- package/dist/inventory/api/transfer.d.ts +162 -0
- package/dist/inventory/api/transfer.js +155 -0
- package/dist/inventory/api/warehouse.d.ts +199 -0
- package/dist/inventory/api/warehouse.js +155 -0
- package/dist/inventory/hooks/adjustment.d.ts +24 -0
- package/dist/inventory/hooks/adjustment.js +30 -0
- package/dist/inventory/hooks/availability.d.ts +16 -0
- package/dist/inventory/hooks/availability.js +35 -0
- package/dist/inventory/hooks/cost.d.ts +21 -0
- package/dist/inventory/hooks/cost.js +50 -0
- package/dist/inventory/hooks/index.d.ts +18 -0
- package/dist/inventory/hooks/inventory.d.ts +130 -0
- package/dist/inventory/hooks/inventory.js +267 -0
- package/dist/inventory/hooks/lot.d.ts +26 -0
- package/dist/inventory/hooks/lot.js +67 -0
- package/dist/inventory/hooks/movement.d.ts +68 -0
- package/dist/inventory/hooks/movement.js +106 -0
- package/dist/inventory/hooks/package.d.ts +32 -0
- package/dist/inventory/hooks/package.js +80 -0
- package/dist/inventory/hooks/procurement.d.ts +28 -0
- package/dist/inventory/hooks/procurement.js +87 -0
- package/dist/inventory/hooks/purchase.d.ts +63 -0
- package/dist/inventory/hooks/purchase.js +119 -0
- package/dist/inventory/hooks/replenishment.d.ts +34 -0
- package/dist/inventory/hooks/replenishment.js +87 -0
- package/dist/inventory/hooks/report.d.ts +37 -0
- package/dist/inventory/hooks/report.js +79 -0
- package/dist/inventory/hooks/request.d.ts +113 -0
- package/dist/inventory/hooks/request.js +218 -0
- package/dist/inventory/hooks/reservation.d.ts +25 -0
- package/dist/inventory/hooks/reservation.js +56 -0
- package/dist/inventory/hooks/scan.d.ts +14 -0
- package/dist/inventory/hooks/scan.js +22 -0
- package/dist/inventory/hooks/supplier.d.ts +24 -0
- package/dist/inventory/hooks/supplier.js +30 -0
- package/dist/inventory/hooks/trace.d.ts +19 -0
- package/dist/inventory/hooks/trace.js +55 -0
- package/dist/inventory/hooks/transfer.d.ts +90 -0
- package/dist/inventory/hooks/transfer.js +197 -0
- package/dist/inventory/hooks/warehouse.d.ts +87 -0
- package/dist/inventory/hooks/warehouse.js +240 -0
- package/dist/inventory/index.d.ts +39 -512
- package/dist/inventory/index.js +37 -16
- package/dist/inventory/types/index.d.ts +3 -0
- package/dist/inventory/types/inventory.d.ts +485 -0
- package/dist/inventory/types/supplier.d.ts +90 -0
- package/dist/inventory/types/warehouse.d.ts +182 -0
- package/dist/logistics/api/index.d.ts +1 -0
- package/dist/logistics/api/logistics.d.ts +260 -0
- package/dist/logistics/api/logistics.js +249 -0
- package/dist/logistics/hooks/index.d.ts +1 -0
- package/dist/logistics/hooks/logistics.d.ts +252 -0
- package/dist/logistics/hooks/logistics.js +370 -0
- package/dist/logistics/index.d.ts +4 -248
- package/dist/logistics/index.js +4 -7
- package/dist/logistics/types/logistics.d.ts +188 -0
- package/dist/node_modules/@tanstack/query-core/build/modern/hydration-C-jfQLut.d.ts +270 -0
- package/dist/notifications/api/notification.d.ts +15 -0
- package/dist/notifications/api/notification.js +43 -0
- package/dist/notifications/hooks/notification.d.ts +34 -0
- package/dist/notifications/hooks/notification.js +86 -0
- package/dist/notifications/hooks/stream.d.ts +22 -0
- package/dist/notifications/hooks/stream.js +80 -0
- package/dist/notifications/index.d.ts +5 -0
- package/dist/notifications/index.js +5 -0
- package/dist/notifications/types/index.d.ts +57 -0
- package/dist/payments/api/index.d.ts +1 -0
- package/dist/payments/api/payment.d.ts +89 -0
- package/dist/payments/api/payment.js +93 -0
- package/dist/payments/hooks/payment.d.ts +53 -0
- package/dist/payments/hooks/payment.js +93 -0
- package/dist/payments/index.d.ts +4 -55
- package/dist/payments/index.js +4 -6
- package/dist/payments/types/payment.d.ts +50 -0
- package/dist/permissions/checker.d.ts +125 -0
- package/dist/permissions/checker.js +150 -0
- package/dist/permissions/index.d.ts +3 -0
- package/dist/permissions/index.js +4 -0
- package/dist/permissions/roles.d.ts +39 -0
- package/dist/permissions/roles.js +66 -0
- package/dist/platform/api/branch.d.ts +57 -0
- package/dist/platform/api/branch.js +73 -0
- package/dist/platform/api/config.d.ts +67 -0
- package/dist/platform/api/config.js +83 -0
- package/dist/platform/api/features.d.ts +15 -0
- package/dist/platform/api/features.js +20 -0
- package/dist/platform/api/index.d.ts +6 -0
- package/dist/platform/api/promo.d.ts +286 -0
- package/dist/platform/api/promo.js +276 -0
- package/dist/platform/api/user.d.ts +10 -0
- package/dist/platform/api/user.js +29 -0
- package/dist/platform/api/webhook.d.ts +102 -0
- package/dist/platform/api/webhook.js +124 -0
- package/dist/platform/hooks/branch.d.ts +24 -0
- package/dist/platform/hooks/branch.js +31 -0
- package/dist/platform/hooks/config.d.ts +61 -0
- package/dist/platform/hooks/config.js +100 -0
- package/dist/platform/hooks/features.d.ts +22 -0
- package/dist/platform/hooks/features.js +75 -0
- package/dist/platform/hooks/index.d.ts +6 -0
- package/dist/platform/hooks/promo.d.ts +218 -0
- package/dist/platform/hooks/promo.js +451 -0
- package/dist/platform/hooks/user.d.ts +24 -0
- package/dist/platform/hooks/user.js +30 -0
- package/dist/platform/index.d.ts +18 -645
- package/dist/platform/index.js +14 -8
- package/dist/platform/prefetch.d.ts +9 -0
- package/dist/platform/prefetch.js +11 -0
- package/dist/platform/types/branch.d.ts +110 -0
- package/dist/platform/types/branch.js +16 -0
- package/dist/platform/types/config.d.ts +137 -0
- package/dist/platform/types/features.d.ts +46 -0
- package/dist/platform/types/promo.d.ts +260 -0
- package/dist/platform/types/user.d.ts +72 -0
- package/dist/platform/types/webhook.d.ts +165 -0
- package/dist/sales/api/cart.d.ts +34 -0
- package/dist/sales/api/cart.js +38 -0
- package/dist/sales/api/customer.d.ts +40 -0
- package/dist/sales/api/customer.js +52 -0
- package/dist/sales/api/earning-rules.d.ts +54 -0
- package/dist/sales/api/earning-rules.js +56 -0
- package/dist/sales/api/index.d.ts +9 -0
- package/dist/sales/api/loyalty.d.ts +54 -0
- package/dist/sales/api/loyalty.js +57 -0
- package/dist/sales/api/order.d.ts +147 -0
- package/dist/sales/api/order.js +69 -0
- package/dist/sales/api/pos.d.ts +81 -0
- package/dist/sales/api/pos.js +95 -0
- package/dist/sales/api/referrals.d.ts +63 -0
- package/dist/sales/api/referrals.js +62 -0
- package/dist/sales/api/tiers.d.ts +66 -0
- package/dist/sales/api/tiers.js +59 -0
- package/dist/sales/hooks/cart.d.ts +50 -0
- package/dist/sales/hooks/cart.js +161 -0
- package/dist/sales/hooks/customer.d.ts +100 -0
- package/dist/sales/hooks/customer.js +130 -0
- package/dist/sales/hooks/earning-rules.d.ts +31 -0
- package/dist/sales/hooks/earning-rules.js +112 -0
- package/dist/sales/hooks/index.d.ts +8 -0
- package/dist/sales/hooks/loyalty.d.ts +51 -0
- package/dist/sales/hooks/loyalty.js +122 -0
- package/dist/sales/hooks/order.d.ts +219 -0
- package/dist/sales/hooks/order.js +401 -0
- package/dist/sales/hooks/pos.d.ts +87 -0
- package/dist/sales/hooks/pos.js +222 -0
- package/dist/sales/hooks/referrals.d.ts +34 -0
- package/dist/sales/hooks/referrals.js +132 -0
- package/dist/sales/hooks/tiers.d.ts +32 -0
- package/dist/sales/hooks/tiers.js +144 -0
- package/dist/sales/index.d.ts +25 -620
- package/dist/sales/index.js +19 -9
- package/dist/sales/prefetch.d.ts +10 -0
- package/dist/sales/prefetch.js +13 -0
- package/dist/sales/types/cart.d.ts +123 -0
- package/dist/sales/types/customer.d.ts +119 -0
- package/dist/sales/types/earning-rules.d.ts +75 -0
- package/dist/sales/types/index.d.ts +8 -0
- package/dist/sales/types/loyalty.d.ts +120 -0
- package/dist/sales/types/order.d.ts +487 -0
- package/dist/sales/types/order.js +22 -0
- package/dist/sales/types/pos.d.ts +227 -0
- package/dist/sales/types/referrals.d.ts +51 -0
- package/dist/sales/types/tiers.d.ts +56 -0
- package/dist/server.d.ts +41 -23
- package/dist/server.js +41 -36
- package/dist/transaction/api/index.d.ts +1 -0
- package/dist/transaction/api/transaction.d.ts +63 -0
- package/dist/transaction/api/transaction.js +84 -0
- package/dist/transaction/hooks/index.d.ts +1 -0
- package/dist/transaction/hooks/transaction.d.ts +106 -0
- package/dist/transaction/hooks/transaction.js +156 -0
- package/dist/transaction/index.d.ts +4 -104
- package/dist/transaction/index.js +5 -8
- package/dist/transaction/types/transaction.d.ts +440 -0
- package/dist/transaction/types/transaction.js +86 -0
- package/package.json +36 -25
- package/dist/adjustment-MNH3AT6S.js +0 -5
- package/dist/adjustment-MNH3AT6S.js.map +0 -1
- package/dist/analytics/index.js.map +0 -1
- package/dist/analytics-DMcD-o8w.d.ts +0 -76
- package/dist/api-factory-B_h4RKBm.d.ts +0 -280
- package/dist/auth/index.js.map +0 -1
- package/dist/catalog/index.js.map +0 -1
- package/dist/chunk-24FDD6UR.js +0 -75
- package/dist/chunk-24FDD6UR.js.map +0 -1
- package/dist/chunk-2TF7QNYV.js +0 -159
- package/dist/chunk-2TF7QNYV.js.map +0 -1
- package/dist/chunk-2YAZ5WG6.js +0 -479
- package/dist/chunk-2YAZ5WG6.js.map +0 -1
- package/dist/chunk-36NLLAVH.js +0 -177
- package/dist/chunk-36NLLAVH.js.map +0 -1
- package/dist/chunk-3OYSJB3P.js +0 -126
- package/dist/chunk-3OYSJB3P.js.map +0 -1
- package/dist/chunk-4IYW6RF3.js +0 -862
- package/dist/chunk-4IYW6RF3.js.map +0 -1
- package/dist/chunk-5E57JODA.js +0 -135
- package/dist/chunk-5E57JODA.js.map +0 -1
- package/dist/chunk-7LZCW4VF.js +0 -13
- package/dist/chunk-7LZCW4VF.js.map +0 -1
- package/dist/chunk-AQAISI4F.js +0 -183
- package/dist/chunk-AQAISI4F.js.map +0 -1
- package/dist/chunk-B6MPVOV7.js +0 -328
- package/dist/chunk-B6MPVOV7.js.map +0 -1
- package/dist/chunk-CILP56G2.js +0 -94
- package/dist/chunk-CILP56G2.js.map +0 -1
- package/dist/chunk-ERQ52WHY.js +0 -534
- package/dist/chunk-ERQ52WHY.js.map +0 -1
- package/dist/chunk-FOTUJPM4.js +0 -640
- package/dist/chunk-FOTUJPM4.js.map +0 -1
- package/dist/chunk-IHCBBLLW.js +0 -198
- package/dist/chunk-IHCBBLLW.js.map +0 -1
- package/dist/chunk-L4OEI4VZ.js +0 -123
- package/dist/chunk-L4OEI4VZ.js.map +0 -1
- package/dist/chunk-LRV7MWWX.js +0 -616
- package/dist/chunk-LRV7MWWX.js.map +0 -1
- package/dist/chunk-M3B4DFTT.js +0 -76
- package/dist/chunk-M3B4DFTT.js.map +0 -1
- package/dist/chunk-N43VE355.js +0 -126
- package/dist/chunk-N43VE355.js.map +0 -1
- package/dist/chunk-PYYLHUV6.js +0 -3
- package/dist/chunk-PYYLHUV6.js.map +0 -1
- package/dist/chunk-QCTXAMLA.js +0 -261
- package/dist/chunk-QCTXAMLA.js.map +0 -1
- package/dist/chunk-RIKAPJNG.js +0 -40
- package/dist/chunk-RIKAPJNG.js.map +0 -1
- package/dist/chunk-U3XT35GZ.js +0 -202
- package/dist/chunk-U3XT35GZ.js.map +0 -1
- package/dist/chunk-W22WB3WZ.js +0 -148
- package/dist/chunk-W22WB3WZ.js.map +0 -1
- package/dist/chunk-WTIJMKML.js +0 -27
- package/dist/chunk-WTIJMKML.js.map +0 -1
- package/dist/chunk-X2CQFJPR.js +0 -75
- package/dist/chunk-X2CQFJPR.js.map +0 -1
- package/dist/chunk-YYFKLOKO.js +0 -769
- package/dist/chunk-YYFKLOKO.js.map +0 -1
- package/dist/client-BPG8fbae.d.ts +0 -113
- package/dist/content/index.js.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/react.d.ts +0 -107
- package/dist/core/react.js +0 -5
- package/dist/core/react.js.map +0 -1
- package/dist/coupon-BZSZ0y3n.d.ts +0 -129
- package/dist/coupon-CDzL4bJG.d.ts +0 -655
- package/dist/crud.factory-DyKaPHcU.d.ts +0 -181
- package/dist/finance/index.js.map +0 -1
- package/dist/finance-BJdfKRw0.d.ts +0 -135
- package/dist/index.js.map +0 -1
- package/dist/inventory/index.js.map +0 -1
- package/dist/inventory-B5pssqRx.d.ts +0 -748
- package/dist/logistics/index.js.map +0 -1
- package/dist/logistics-REVDorcc.d.ts +0 -410
- package/dist/media-CNLJK93J.d.ts +0 -721
- package/dist/movement-R3CERFAM.js +0 -5
- package/dist/movement-R3CERFAM.js.map +0 -1
- package/dist/order-BfdPxZiA.d.ts +0 -412
- package/dist/payment-BRboLqvU.d.ts +0 -127
- package/dist/payments/index.js.map +0 -1
- package/dist/platform/index.js.map +0 -1
- package/dist/pos-C-sBzevg.d.ts +0 -538
- package/dist/product-p09zXkXB.d.ts +0 -260
- package/dist/purchase-54PER2PY.js +0 -5
- package/dist/purchase-54PER2PY.js.map +0 -1
- package/dist/request-MP6NV5ZE.js +0 -5
- package/dist/request-MP6NV5ZE.js.map +0 -1
- package/dist/sales/index.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/size-guide-DgjzjM5P.d.ts +0 -554
- package/dist/stock-2LP4HJSB.js +0 -5
- package/dist/stock-2LP4HJSB.js.map +0 -1
- package/dist/stock-CfrU5_Wr.d.ts +0 -632
- package/dist/supplier-BWJTRZ5Z.js +0 -5
- package/dist/supplier-BWJTRZ5Z.js.map +0 -1
- package/dist/transaction/index.js.map +0 -1
- package/dist/transaction-Bf6WjYCh.d.ts +0 -84
- package/dist/transaction-dL3WW-er.d.ts +0 -442
- package/dist/transfer-4XSS6HWT.js +0 -5
- package/dist/transfer-4XSS6HWT.js.map +0 -1
- package/dist/user-data-DdLjAGwO.d.ts +0 -132
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { ApiResponse, BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
import { Category, CategoryTreeResponse, CreateCategoryPayload, UpdateCategoryPayload } from "../types/category.js";
|
|
3
|
+
//#region src/catalog/api/category.d.ts
|
|
4
|
+
type FetchOptions = {
|
|
5
|
+
cache?: RequestCache;
|
|
6
|
+
revalidate?: number;
|
|
7
|
+
tags?: string[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Category API Client
|
|
11
|
+
* Extends BaseApi with category-specific endpoints
|
|
12
|
+
*/
|
|
13
|
+
declare class CategoryApi extends BaseApi<Category, CreateCategoryPayload, UpdateCategoryPayload> {
|
|
14
|
+
constructor(config?: {});
|
|
15
|
+
/**
|
|
16
|
+
* Get category tree (nested structure)
|
|
17
|
+
* GET /categories/tree
|
|
18
|
+
*
|
|
19
|
+
* **This is the main endpoint - FE should cache this and derive everything else from it.**
|
|
20
|
+
*
|
|
21
|
+
* Returns nested tree structure with children. Use helper functions to flatten, search, or extract children.
|
|
22
|
+
*
|
|
23
|
+
* @param token - Auth token (optional, public endpoint)
|
|
24
|
+
* @param options - Additional fetch options
|
|
25
|
+
* @returns Nested category tree
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const { data } = await categoryApi.getTree({ token: null });
|
|
30
|
+
* // data = [{ slug: "clothing", name: "Clothing", children: [...] }]
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
getTree({
|
|
34
|
+
token,
|
|
35
|
+
options
|
|
36
|
+
}?: {
|
|
37
|
+
token?: string | null;
|
|
38
|
+
options?: FetchOptions;
|
|
39
|
+
}): Promise<CategoryTreeResponse>;
|
|
40
|
+
/**
|
|
41
|
+
* Get category by slug
|
|
42
|
+
* GET /categories/slug/:slug
|
|
43
|
+
*
|
|
44
|
+
* For URL resolution when you need full category details.
|
|
45
|
+
*
|
|
46
|
+
* @param token - Auth token (optional, public endpoint)
|
|
47
|
+
* @param slug - Category slug (e.g., "electronics", "t-shirts")
|
|
48
|
+
* @param options - Additional fetch options
|
|
49
|
+
* @returns Category object
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const { data } = await categoryApi.getBySlug({
|
|
54
|
+
* token: null,
|
|
55
|
+
* slug: 'electronics'
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
getBySlug({
|
|
60
|
+
token,
|
|
61
|
+
slug,
|
|
62
|
+
options
|
|
63
|
+
}: {
|
|
64
|
+
token?: string | null;
|
|
65
|
+
slug: string;
|
|
66
|
+
options?: FetchOptions;
|
|
67
|
+
}): Promise<ApiResponse<Category>>;
|
|
68
|
+
/**
|
|
69
|
+
* Sync product counts for all categories
|
|
70
|
+
* POST /categories/sync-product-count
|
|
71
|
+
*
|
|
72
|
+
* Recalculates `productCount` for all categories based on current products.
|
|
73
|
+
* Use when manual data fixes or migrations may have desynced counts.
|
|
74
|
+
*
|
|
75
|
+
* @param token - Auth token (admin or inventory staff required)
|
|
76
|
+
* @param options - Additional fetch options
|
|
77
|
+
* @returns Number of categories updated
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const { data } = await categoryApi.syncProductCount({ token });
|
|
82
|
+
* // data = { updated: 42 }
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
syncProductCount({
|
|
86
|
+
token,
|
|
87
|
+
options
|
|
88
|
+
}: {
|
|
89
|
+
token: string;
|
|
90
|
+
options?: FetchOptions;
|
|
91
|
+
}): Promise<ApiResponse<{
|
|
92
|
+
updated: number;
|
|
93
|
+
}>>;
|
|
94
|
+
}
|
|
95
|
+
declare const categoryApi: CategoryApi;
|
|
96
|
+
//#endregion
|
|
97
|
+
export { CategoryApi, categoryApi };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
|
|
3
|
+
//#region src/catalog/api/category.ts
|
|
4
|
+
/**
|
|
5
|
+
* Category API Client
|
|
6
|
+
*
|
|
7
|
+
* **Authentication:**
|
|
8
|
+
* - Public: List, Get, Tree, GetBySlug
|
|
9
|
+
* - Admin: Create, Update, Delete
|
|
10
|
+
*
|
|
11
|
+
* **Base URL:** `/api/v1/categories`
|
|
12
|
+
*
|
|
13
|
+
* **Slug-Based Design:**
|
|
14
|
+
* - Categories use slugs as identifiers (not ObjectIds)
|
|
15
|
+
* - Products store category as slug string for fast queries
|
|
16
|
+
* - Example: `db.products.find({ category: "electronics" })`
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Category API Client
|
|
20
|
+
* Extends BaseApi with category-specific endpoints
|
|
21
|
+
*/
|
|
22
|
+
var CategoryApi = class extends BaseApi {
|
|
23
|
+
constructor(config = {}) {
|
|
24
|
+
super("categories", config);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get category tree (nested structure)
|
|
28
|
+
* GET /categories/tree
|
|
29
|
+
*
|
|
30
|
+
* **This is the main endpoint - FE should cache this and derive everything else from it.**
|
|
31
|
+
*
|
|
32
|
+
* Returns nested tree structure with children. Use helper functions to flatten, search, or extract children.
|
|
33
|
+
*
|
|
34
|
+
* @param token - Auth token (optional, public endpoint)
|
|
35
|
+
* @param options - Additional fetch options
|
|
36
|
+
* @returns Nested category tree
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const { data } = await categoryApi.getTree({ token: null });
|
|
41
|
+
* // data = [{ slug: "clothing", name: "Clothing", children: [...] }]
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
async getTree({ token = null, options = {} } = {}) {
|
|
45
|
+
return this.request("GET", `${this.baseUrl}/tree`, {
|
|
46
|
+
token: token || void 0,
|
|
47
|
+
options: {
|
|
48
|
+
cache: this.config.cache,
|
|
49
|
+
...options
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get category by slug
|
|
55
|
+
* GET /categories/slug/:slug
|
|
56
|
+
*
|
|
57
|
+
* For URL resolution when you need full category details.
|
|
58
|
+
*
|
|
59
|
+
* @param token - Auth token (optional, public endpoint)
|
|
60
|
+
* @param slug - Category slug (e.g., "electronics", "t-shirts")
|
|
61
|
+
* @param options - Additional fetch options
|
|
62
|
+
* @returns Category object
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const { data } = await categoryApi.getBySlug({
|
|
67
|
+
* token: null,
|
|
68
|
+
* slug: 'electronics'
|
|
69
|
+
* });
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
async getBySlug({ token = null, slug, options = {} }) {
|
|
73
|
+
if (!slug) throw new Error("Category slug is required");
|
|
74
|
+
return this.request("GET", `${this.baseUrl}/slug/${slug}`, {
|
|
75
|
+
token: token || void 0,
|
|
76
|
+
options: {
|
|
77
|
+
cache: this.config.cache,
|
|
78
|
+
...options
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Sync product counts for all categories
|
|
84
|
+
* POST /categories/sync-product-count
|
|
85
|
+
*
|
|
86
|
+
* Recalculates `productCount` for all categories based on current products.
|
|
87
|
+
* Use when manual data fixes or migrations may have desynced counts.
|
|
88
|
+
*
|
|
89
|
+
* @param token - Auth token (admin or inventory staff required)
|
|
90
|
+
* @param options - Additional fetch options
|
|
91
|
+
* @returns Number of categories updated
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const { data } = await categoryApi.syncProductCount({ token });
|
|
96
|
+
* // data = { updated: 42 }
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
async syncProductCount({ token, options = {} }) {
|
|
100
|
+
return this.request("POST", `${this.baseUrl}/sync-product-count`, {
|
|
101
|
+
token,
|
|
102
|
+
options
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const categoryApi = new CategoryApi();
|
|
107
|
+
|
|
108
|
+
//#endregion
|
|
109
|
+
export { CategoryApi, categoryApi };
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { ApiResponse, BaseApi, PaginatedResponse } from "../../core/api-factory.js";
|
|
2
|
+
import { CreateProductPayload, Product, ProductSyncStockResponse, UpdateProductPayload } from "../types/product.js";
|
|
3
|
+
//#region src/catalog/api/product.d.ts
|
|
4
|
+
type FetchOptions = {
|
|
5
|
+
cache?: RequestCache;
|
|
6
|
+
revalidate?: number;
|
|
7
|
+
tags?: string[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Product API Client
|
|
11
|
+
* Extends BaseApi with product-specific endpoints
|
|
12
|
+
*/
|
|
13
|
+
declare class ProductApi extends BaseApi<Product, CreateProductPayload, UpdateProductPayload> {
|
|
14
|
+
constructor(config?: {});
|
|
15
|
+
/**
|
|
16
|
+
* Get product by slug
|
|
17
|
+
* GET /products/slug/:slug
|
|
18
|
+
* (Public endpoint)
|
|
19
|
+
*
|
|
20
|
+
* @param token - Auth token (optional, public endpoint)
|
|
21
|
+
* @param slug - Product slug
|
|
22
|
+
* @param options - Additional fetch options
|
|
23
|
+
* @returns Product object
|
|
24
|
+
*/
|
|
25
|
+
getBySlug({
|
|
26
|
+
token,
|
|
27
|
+
slug,
|
|
28
|
+
options
|
|
29
|
+
}: {
|
|
30
|
+
token?: string | null;
|
|
31
|
+
slug: string;
|
|
32
|
+
options?: FetchOptions;
|
|
33
|
+
}): Promise<ApiResponse<Product>>;
|
|
34
|
+
/**
|
|
35
|
+
* Get product recommendations
|
|
36
|
+
* GET /products/:id/recommendations
|
|
37
|
+
* (Public endpoint)
|
|
38
|
+
*
|
|
39
|
+
* @param token - Auth token (optional)
|
|
40
|
+
* @param productId - Product ID to get recommendations for
|
|
41
|
+
* @param options - Additional fetch options
|
|
42
|
+
* @returns List of recommended products
|
|
43
|
+
*/
|
|
44
|
+
getRecommendations({
|
|
45
|
+
token,
|
|
46
|
+
productId,
|
|
47
|
+
options
|
|
48
|
+
}: {
|
|
49
|
+
token?: string | null;
|
|
50
|
+
productId: string;
|
|
51
|
+
options?: FetchOptions;
|
|
52
|
+
}): Promise<ApiResponse<Product[]>>;
|
|
53
|
+
/**
|
|
54
|
+
* Get soft-deleted products (Recycle Bin)
|
|
55
|
+
* GET /products/deleted
|
|
56
|
+
* (Admin only)
|
|
57
|
+
*
|
|
58
|
+
* @param token - Auth token (required)
|
|
59
|
+
* @param params - Query parameters for pagination/filtering
|
|
60
|
+
* @param options - Additional fetch options
|
|
61
|
+
* @returns Paginated list of deleted products
|
|
62
|
+
*/
|
|
63
|
+
getDeleted({
|
|
64
|
+
token,
|
|
65
|
+
params,
|
|
66
|
+
options
|
|
67
|
+
}: {
|
|
68
|
+
token: string;
|
|
69
|
+
params?: Record<string, unknown>;
|
|
70
|
+
options?: FetchOptions;
|
|
71
|
+
}): Promise<PaginatedResponse<Product>>;
|
|
72
|
+
/**
|
|
73
|
+
* Restore a soft-deleted product
|
|
74
|
+
* POST /products/:id/restore
|
|
75
|
+
* (Admin only)
|
|
76
|
+
*
|
|
77
|
+
* @param token - Auth token (required)
|
|
78
|
+
* @param id - Product ID to restore
|
|
79
|
+
* @param options - Additional fetch options
|
|
80
|
+
* @returns Restored product
|
|
81
|
+
*/
|
|
82
|
+
restore({
|
|
83
|
+
token,
|
|
84
|
+
id,
|
|
85
|
+
options
|
|
86
|
+
}: {
|
|
87
|
+
token: string;
|
|
88
|
+
id: string;
|
|
89
|
+
options?: FetchOptions;
|
|
90
|
+
}): Promise<ApiResponse<Product>>;
|
|
91
|
+
/**
|
|
92
|
+
* Permanently delete a product (Hard delete)
|
|
93
|
+
* DELETE /products/:id?hard=true
|
|
94
|
+
* (Admin only - use with caution)
|
|
95
|
+
*
|
|
96
|
+
* @param token - Auth token (required)
|
|
97
|
+
* @param id - Product ID to permanently delete
|
|
98
|
+
* @param options - Additional fetch options
|
|
99
|
+
* @returns Delete confirmation
|
|
100
|
+
*/
|
|
101
|
+
hardDelete({
|
|
102
|
+
token,
|
|
103
|
+
id,
|
|
104
|
+
options
|
|
105
|
+
}: {
|
|
106
|
+
token: string;
|
|
107
|
+
id: string;
|
|
108
|
+
options?: FetchOptions;
|
|
109
|
+
}): Promise<ApiResponse<{
|
|
110
|
+
deleted: boolean;
|
|
111
|
+
}>>;
|
|
112
|
+
/**
|
|
113
|
+
* Sync product stock quantity
|
|
114
|
+
* POST /products/:id/sync-stock
|
|
115
|
+
*
|
|
116
|
+
* Recomputes product.quantity by summing all StockEntry quantities across branches.
|
|
117
|
+
* (Requires: admin, warehouse-admin, warehouse-staff, or store-manager role)
|
|
118
|
+
*
|
|
119
|
+
* @param token - Auth token (required)
|
|
120
|
+
* @param id - Product ID to sync stock for
|
|
121
|
+
* @param options - Additional fetch options
|
|
122
|
+
* @returns Sync result with new quantity
|
|
123
|
+
*/
|
|
124
|
+
syncStock({
|
|
125
|
+
token,
|
|
126
|
+
id,
|
|
127
|
+
options
|
|
128
|
+
}: {
|
|
129
|
+
token: string;
|
|
130
|
+
id: string;
|
|
131
|
+
options?: FetchOptions;
|
|
132
|
+
}): Promise<ProductSyncStockResponse>;
|
|
133
|
+
}
|
|
134
|
+
declare const productApi: ProductApi;
|
|
135
|
+
//#endregion
|
|
136
|
+
export { ProductApi, productApi };
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
|
|
3
|
+
//#region src/catalog/api/product.ts
|
|
4
|
+
/**
|
|
5
|
+
* Product API Client
|
|
6
|
+
*
|
|
7
|
+
* **Authentication:**
|
|
8
|
+
* - Public: List, Get, GetBySlug, GetRecommendations
|
|
9
|
+
* - Admin: Create, Update, Delete, GetDeleted, Restore, HardDelete, SyncStock
|
|
10
|
+
*
|
|
11
|
+
* **Base URL:** `/api/v1/products`
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Product API Client
|
|
15
|
+
* Extends BaseApi with product-specific endpoints
|
|
16
|
+
*/
|
|
17
|
+
var ProductApi = class extends BaseApi {
|
|
18
|
+
constructor(config = {}) {
|
|
19
|
+
super("products", config);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get product by slug
|
|
23
|
+
* GET /products/slug/:slug
|
|
24
|
+
* (Public endpoint)
|
|
25
|
+
*
|
|
26
|
+
* @param token - Auth token (optional, public endpoint)
|
|
27
|
+
* @param slug - Product slug
|
|
28
|
+
* @param options - Additional fetch options
|
|
29
|
+
* @returns Product object
|
|
30
|
+
*/
|
|
31
|
+
async getBySlug({ token = null, slug, options = {} }) {
|
|
32
|
+
if (!slug) throw new Error("Product slug is required");
|
|
33
|
+
return this.request("GET", `${this.baseUrl}/slug/${slug}`, {
|
|
34
|
+
token: token || void 0,
|
|
35
|
+
options: {
|
|
36
|
+
cache: this.config.cache,
|
|
37
|
+
...options
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get product recommendations
|
|
43
|
+
* GET /products/:id/recommendations
|
|
44
|
+
* (Public endpoint)
|
|
45
|
+
*
|
|
46
|
+
* @param token - Auth token (optional)
|
|
47
|
+
* @param productId - Product ID to get recommendations for
|
|
48
|
+
* @param options - Additional fetch options
|
|
49
|
+
* @returns List of recommended products
|
|
50
|
+
*/
|
|
51
|
+
async getRecommendations({ token = null, productId, options = {} }) {
|
|
52
|
+
if (!productId) throw new Error("Product ID is required");
|
|
53
|
+
return this.request("GET", `${this.baseUrl}/${productId}/recommendations`, {
|
|
54
|
+
token: token || void 0,
|
|
55
|
+
options: {
|
|
56
|
+
cache: this.config.cache,
|
|
57
|
+
...options
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get soft-deleted products (Recycle Bin)
|
|
63
|
+
* GET /products/deleted
|
|
64
|
+
* (Admin only)
|
|
65
|
+
*
|
|
66
|
+
* @param token - Auth token (required)
|
|
67
|
+
* @param params - Query parameters for pagination/filtering
|
|
68
|
+
* @param options - Additional fetch options
|
|
69
|
+
* @returns Paginated list of deleted products
|
|
70
|
+
*/
|
|
71
|
+
async getDeleted({ token, params = {}, options = {} }) {
|
|
72
|
+
return this.request("GET", `${this.baseUrl}/deleted`, {
|
|
73
|
+
token,
|
|
74
|
+
params,
|
|
75
|
+
options: {
|
|
76
|
+
cache: this.config.cache,
|
|
77
|
+
...options
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Restore a soft-deleted product
|
|
83
|
+
* POST /products/:id/restore
|
|
84
|
+
* (Admin only)
|
|
85
|
+
*
|
|
86
|
+
* @param token - Auth token (required)
|
|
87
|
+
* @param id - Product ID to restore
|
|
88
|
+
* @param options - Additional fetch options
|
|
89
|
+
* @returns Restored product
|
|
90
|
+
*/
|
|
91
|
+
async restore({ token, id, options = {} }) {
|
|
92
|
+
if (!id) throw new Error("Product ID is required");
|
|
93
|
+
return this.request("POST", `${this.baseUrl}/${id}/restore`, {
|
|
94
|
+
token,
|
|
95
|
+
options
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Permanently delete a product (Hard delete)
|
|
100
|
+
* DELETE /products/:id?hard=true
|
|
101
|
+
* (Admin only - use with caution)
|
|
102
|
+
*
|
|
103
|
+
* @param token - Auth token (required)
|
|
104
|
+
* @param id - Product ID to permanently delete
|
|
105
|
+
* @param options - Additional fetch options
|
|
106
|
+
* @returns Delete confirmation
|
|
107
|
+
*/
|
|
108
|
+
async hardDelete({ token, id, options = {} }) {
|
|
109
|
+
if (!id) throw new Error("Product ID is required");
|
|
110
|
+
return this.delete({
|
|
111
|
+
token,
|
|
112
|
+
id,
|
|
113
|
+
options: {
|
|
114
|
+
...options,
|
|
115
|
+
params: { hard: "true" }
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Sync product stock quantity
|
|
121
|
+
* POST /products/:id/sync-stock
|
|
122
|
+
*
|
|
123
|
+
* Recomputes product.quantity by summing all StockEntry quantities across branches.
|
|
124
|
+
* (Requires: admin, warehouse-admin, warehouse-staff, or store-manager role)
|
|
125
|
+
*
|
|
126
|
+
* @param token - Auth token (required)
|
|
127
|
+
* @param id - Product ID to sync stock for
|
|
128
|
+
* @param options - Additional fetch options
|
|
129
|
+
* @returns Sync result with new quantity
|
|
130
|
+
*/
|
|
131
|
+
async syncStock({ token, id, options = {} }) {
|
|
132
|
+
if (!id) throw new Error("Product ID is required");
|
|
133
|
+
return this.request("POST", `${this.baseUrl}/${id}/sync-stock`, {
|
|
134
|
+
token,
|
|
135
|
+
options
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const productApi = new ProductApi();
|
|
140
|
+
|
|
141
|
+
//#endregion
|
|
142
|
+
export { ProductApi, productApi };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ApiResponse, BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
import { CreateReviewPayload, Review, UpdateReviewPayload } from "../types/review.js";
|
|
3
|
+
//#region src/catalog/api/review.d.ts
|
|
4
|
+
type FetchOptions = {
|
|
5
|
+
cache?: RequestCache;
|
|
6
|
+
revalidate?: number;
|
|
7
|
+
tags?: string[];
|
|
8
|
+
};
|
|
9
|
+
declare class ReviewApi extends BaseApi<Review, CreateReviewPayload, UpdateReviewPayload> {
|
|
10
|
+
constructor(config?: {});
|
|
11
|
+
/**
|
|
12
|
+
* Get current user's review for a product
|
|
13
|
+
* GET /reviews/my/:productId
|
|
14
|
+
*
|
|
15
|
+
* @param token - Auth token (required)
|
|
16
|
+
* @param productId - Product ID
|
|
17
|
+
* @param options - Additional fetch options
|
|
18
|
+
* @returns Review or null
|
|
19
|
+
*/
|
|
20
|
+
getMyReview({
|
|
21
|
+
token,
|
|
22
|
+
productId,
|
|
23
|
+
options
|
|
24
|
+
}: {
|
|
25
|
+
token: string;
|
|
26
|
+
productId: string;
|
|
27
|
+
options?: FetchOptions;
|
|
28
|
+
}): Promise<ApiResponse<Review | null>>;
|
|
29
|
+
}
|
|
30
|
+
declare const reviewApi: ReviewApi;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { ReviewApi, reviewApi };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
|
|
3
|
+
//#region src/catalog/api/review.ts
|
|
4
|
+
/**
|
|
5
|
+
* Review API Client
|
|
6
|
+
*
|
|
7
|
+
* **Authentication:**
|
|
8
|
+
* - Public: List, Get
|
|
9
|
+
* - User/Admin: Create, Update, Get My Review
|
|
10
|
+
* - Admin: Delete
|
|
11
|
+
*
|
|
12
|
+
* **Base URL:** `/api/v1/reviews`
|
|
13
|
+
*/
|
|
14
|
+
var ReviewApi = class extends BaseApi {
|
|
15
|
+
constructor(config = {}) {
|
|
16
|
+
super("reviews", config);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get current user's review for a product
|
|
20
|
+
* GET /reviews/my/:productId
|
|
21
|
+
*
|
|
22
|
+
* @param token - Auth token (required)
|
|
23
|
+
* @param productId - Product ID
|
|
24
|
+
* @param options - Additional fetch options
|
|
25
|
+
* @returns Review or null
|
|
26
|
+
*/
|
|
27
|
+
async getMyReview({ token, productId, options = {} }) {
|
|
28
|
+
if (!productId) throw new Error("Product ID is required");
|
|
29
|
+
return this.request("GET", `${this.baseUrl}/my/${productId}`, {
|
|
30
|
+
token,
|
|
31
|
+
options: {
|
|
32
|
+
cache: this.config.cache,
|
|
33
|
+
...options
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const reviewApi = new ReviewApi();
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
export { ReviewApi, reviewApi };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ApiResponse, BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
import { CreateSizeGuidePayload, SizeGuide, UpdateSizeGuidePayload } from "../types/size-guide.js";
|
|
3
|
+
//#region src/catalog/api/size-guide.d.ts
|
|
4
|
+
type FetchOptions = {
|
|
5
|
+
cache?: RequestCache;
|
|
6
|
+
revalidate?: number;
|
|
7
|
+
tags?: string[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Size Guide API Client
|
|
11
|
+
* Extends BaseApi with size-guide-specific endpoints
|
|
12
|
+
*/
|
|
13
|
+
declare class SizeGuideApi extends BaseApi<SizeGuide, CreateSizeGuidePayload, UpdateSizeGuidePayload> {
|
|
14
|
+
constructor(config?: {});
|
|
15
|
+
/**
|
|
16
|
+
* Get size guide by slug
|
|
17
|
+
* GET /size-guides/slug/:slug
|
|
18
|
+
*
|
|
19
|
+
* For product detail pages to fetch the appropriate size guide.
|
|
20
|
+
*
|
|
21
|
+
* @param token - Auth token (optional, public endpoint)
|
|
22
|
+
* @param slug - Size guide slug (e.g., "t-shirts-tops")
|
|
23
|
+
* @param options - Additional fetch options
|
|
24
|
+
* @returns Size guide object
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const { data } = await sizeGuideApi.getBySlug({
|
|
29
|
+
* token: null,
|
|
30
|
+
* slug: 't-shirts-tops'
|
|
31
|
+
* });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
getBySlug({
|
|
35
|
+
token,
|
|
36
|
+
slug,
|
|
37
|
+
options
|
|
38
|
+
}: {
|
|
39
|
+
token?: string | null;
|
|
40
|
+
slug: string;
|
|
41
|
+
options?: FetchOptions;
|
|
42
|
+
}): Promise<ApiResponse<SizeGuide>>;
|
|
43
|
+
}
|
|
44
|
+
declare const sizeGuideApi: SizeGuideApi;
|
|
45
|
+
//#endregion
|
|
46
|
+
export { SizeGuideApi, sizeGuideApi };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
|
|
3
|
+
//#region src/catalog/api/size-guide.ts
|
|
4
|
+
/**
|
|
5
|
+
* Size Guide API Client
|
|
6
|
+
*
|
|
7
|
+
* **Authentication:**
|
|
8
|
+
* - Public: List, Get, GetBySlug
|
|
9
|
+
* - Admin: Create, Update, Delete
|
|
10
|
+
*
|
|
11
|
+
* **Base URL:** `/api/v1/size-guides`
|
|
12
|
+
*
|
|
13
|
+
* **Slug-Based Design:**
|
|
14
|
+
* - Size guides use slugs as identifiers
|
|
15
|
+
* - Products store `sizeGuideSlug` to reference a size guide
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Size Guide API Client
|
|
19
|
+
* Extends BaseApi with size-guide-specific endpoints
|
|
20
|
+
*/
|
|
21
|
+
var SizeGuideApi = class extends BaseApi {
|
|
22
|
+
constructor(config = {}) {
|
|
23
|
+
super("size-guides", config);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get size guide by slug
|
|
27
|
+
* GET /size-guides/slug/:slug
|
|
28
|
+
*
|
|
29
|
+
* For product detail pages to fetch the appropriate size guide.
|
|
30
|
+
*
|
|
31
|
+
* @param token - Auth token (optional, public endpoint)
|
|
32
|
+
* @param slug - Size guide slug (e.g., "t-shirts-tops")
|
|
33
|
+
* @param options - Additional fetch options
|
|
34
|
+
* @returns Size guide object
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const { data } = await sizeGuideApi.getBySlug({
|
|
39
|
+
* token: null,
|
|
40
|
+
* slug: 't-shirts-tops'
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
async getBySlug({ token = null, slug, options = {} }) {
|
|
45
|
+
if (!slug) throw new Error("Size guide slug is required");
|
|
46
|
+
return this.request("GET", `${this.baseUrl}/slug/${slug}`, {
|
|
47
|
+
token: token || void 0,
|
|
48
|
+
options: {
|
|
49
|
+
cache: this.config.cache,
|
|
50
|
+
...options
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const sizeGuideApi = new SizeGuideApi();
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
export { SizeGuideApi, sizeGuideApi };
|