@classytic/commerce-sdk 0.1.1 → 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 +187 -74
- 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 -587
- 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-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-ANYGZ6O5.js +0 -830
- package/dist/chunk-ANYGZ6O5.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-J4JBQET2.js +0 -76
- package/dist/chunk-J4JBQET2.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-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-Cs7E_usr.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-CrpKadKE.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-B3dCvHgK.d.ts +0 -360
- 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-BCqkx2-K.d.ts +0 -527
- 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,182 @@
|
|
|
1
|
+
//#region src/inventory/types/warehouse.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Warehouse Types — Node, Location, Audit
|
|
4
|
+
*/
|
|
5
|
+
interface WarehouseNode {
|
|
6
|
+
_id: string;
|
|
7
|
+
organizationId: string;
|
|
8
|
+
code: string;
|
|
9
|
+
name: string;
|
|
10
|
+
type: "warehouse" | "store" | "fulfillment_center" | "returns_center";
|
|
11
|
+
status: "active" | "inactive";
|
|
12
|
+
timezone?: string;
|
|
13
|
+
currency?: string;
|
|
14
|
+
address?: {
|
|
15
|
+
street?: string;
|
|
16
|
+
city?: string;
|
|
17
|
+
state?: string;
|
|
18
|
+
postalCode?: string;
|
|
19
|
+
country?: string;
|
|
20
|
+
coordinates?: {
|
|
21
|
+
lat: number;
|
|
22
|
+
lng: number;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
capabilities?: string[];
|
|
26
|
+
isDefault?: boolean;
|
|
27
|
+
metadata?: Record<string, unknown>;
|
|
28
|
+
createdAt?: string;
|
|
29
|
+
updatedAt?: string;
|
|
30
|
+
}
|
|
31
|
+
interface CreateNodePayload {
|
|
32
|
+
code: string;
|
|
33
|
+
name: string;
|
|
34
|
+
type?: WarehouseNode["type"];
|
|
35
|
+
timezone?: string;
|
|
36
|
+
currency?: string;
|
|
37
|
+
address?: WarehouseNode["address"];
|
|
38
|
+
capabilities?: string[];
|
|
39
|
+
isDefault?: boolean;
|
|
40
|
+
metadata?: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
interface UpdateNodePayload {
|
|
43
|
+
name?: string;
|
|
44
|
+
type?: WarehouseNode["type"];
|
|
45
|
+
status?: "active" | "inactive";
|
|
46
|
+
timezone?: string;
|
|
47
|
+
address?: WarehouseNode["address"];
|
|
48
|
+
capabilities?: string[];
|
|
49
|
+
metadata?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
interface LocationCoordinates {
|
|
52
|
+
zone?: string;
|
|
53
|
+
aisle?: number;
|
|
54
|
+
bay?: number;
|
|
55
|
+
level?: number;
|
|
56
|
+
bin?: string;
|
|
57
|
+
}
|
|
58
|
+
type LocationType = "storage" | "receiving" | "shipping" | "picking" | "packing" | "transit" | "returns" | "quality_hold" | "damaged" | "internal" | "production" | "view" | "vendor" | "customer" | "scrap" | "inventory_loss";
|
|
59
|
+
interface WarehouseLocation {
|
|
60
|
+
_id: string;
|
|
61
|
+
organizationId: string;
|
|
62
|
+
nodeId: string;
|
|
63
|
+
parentLocationId?: string;
|
|
64
|
+
code: string;
|
|
65
|
+
name: string;
|
|
66
|
+
type: LocationType;
|
|
67
|
+
status: "active" | "inactive";
|
|
68
|
+
barcode?: string;
|
|
69
|
+
coordinates?: LocationCoordinates;
|
|
70
|
+
maxWeight?: number;
|
|
71
|
+
maxVolume?: number;
|
|
72
|
+
sortOrder?: number;
|
|
73
|
+
allowReservations?: boolean;
|
|
74
|
+
allowNegativeStock?: boolean;
|
|
75
|
+
metadata?: Record<string, unknown>;
|
|
76
|
+
createdAt?: string;
|
|
77
|
+
updatedAt?: string;
|
|
78
|
+
}
|
|
79
|
+
interface CreateLocationPayload {
|
|
80
|
+
nodeId: string;
|
|
81
|
+
parentLocationId?: string;
|
|
82
|
+
code: string;
|
|
83
|
+
name: string;
|
|
84
|
+
type?: LocationType;
|
|
85
|
+
barcode?: string;
|
|
86
|
+
coordinates?: LocationCoordinates;
|
|
87
|
+
maxWeight?: number;
|
|
88
|
+
maxVolume?: number;
|
|
89
|
+
sortOrder?: number;
|
|
90
|
+
allowReservations?: boolean;
|
|
91
|
+
allowNegativeStock?: boolean;
|
|
92
|
+
metadata?: Record<string, unknown>;
|
|
93
|
+
}
|
|
94
|
+
interface BulkCreateLocationPayload {
|
|
95
|
+
nodeId: string;
|
|
96
|
+
locations: Array<Omit<CreateLocationPayload, "nodeId"> & {
|
|
97
|
+
type?: string;
|
|
98
|
+
}>;
|
|
99
|
+
}
|
|
100
|
+
interface UpdateLocationPayload {
|
|
101
|
+
name?: string;
|
|
102
|
+
status?: "active" | "inactive";
|
|
103
|
+
barcode?: string;
|
|
104
|
+
coordinates?: LocationCoordinates;
|
|
105
|
+
maxWeight?: number;
|
|
106
|
+
maxVolume?: number;
|
|
107
|
+
sortOrder?: number;
|
|
108
|
+
parentLocationId?: string | null;
|
|
109
|
+
allowReservations?: boolean;
|
|
110
|
+
allowNegativeStock?: boolean;
|
|
111
|
+
metadata?: Record<string, unknown>;
|
|
112
|
+
}
|
|
113
|
+
interface WarehouseLayout {
|
|
114
|
+
nodeId: string;
|
|
115
|
+
totalLocations: number;
|
|
116
|
+
zones: Array<{
|
|
117
|
+
zone: string;
|
|
118
|
+
aisles: Array<{
|
|
119
|
+
aisle: number;
|
|
120
|
+
locations: WarehouseLocation[];
|
|
121
|
+
}>;
|
|
122
|
+
}>;
|
|
123
|
+
}
|
|
124
|
+
type AuditCountType = "full" | "cycle" | "spot";
|
|
125
|
+
type AuditStatus = "draft" | "in_progress" | "pending_review" | "reconciled" | "done" | "cancelled";
|
|
126
|
+
interface AuditSession {
|
|
127
|
+
_id: string;
|
|
128
|
+
organizationId: string;
|
|
129
|
+
countNumber: string;
|
|
130
|
+
countType: AuditCountType;
|
|
131
|
+
status: AuditStatus;
|
|
132
|
+
scope: {
|
|
133
|
+
nodeId?: string;
|
|
134
|
+
locationId?: string;
|
|
135
|
+
skuRefs?: string[];
|
|
136
|
+
};
|
|
137
|
+
freezePolicy?: "hard_freeze" | "soft_freeze" | "none";
|
|
138
|
+
lineCount?: number;
|
|
139
|
+
createdAt?: string;
|
|
140
|
+
updatedAt?: string;
|
|
141
|
+
}
|
|
142
|
+
interface AuditCountLine {
|
|
143
|
+
skuRef: string;
|
|
144
|
+
locationId: string;
|
|
145
|
+
lotId?: string;
|
|
146
|
+
serialCode?: string;
|
|
147
|
+
countedQuantity: number;
|
|
148
|
+
varianceReason?: string;
|
|
149
|
+
}
|
|
150
|
+
interface AuditVarianceLine {
|
|
151
|
+
skuRef: string;
|
|
152
|
+
locationId: string;
|
|
153
|
+
expected: number;
|
|
154
|
+
counted: number;
|
|
155
|
+
variance: number;
|
|
156
|
+
variancePercent: number;
|
|
157
|
+
}
|
|
158
|
+
interface AuditVarianceReport {
|
|
159
|
+
countId: string;
|
|
160
|
+
totalLines: number;
|
|
161
|
+
matchedLines: number;
|
|
162
|
+
varianceLines: number;
|
|
163
|
+
lines: AuditVarianceLine[];
|
|
164
|
+
}
|
|
165
|
+
interface AuditReconcileResult {
|
|
166
|
+
countId: string;
|
|
167
|
+
totalLines: number;
|
|
168
|
+
varianceLines: number;
|
|
169
|
+
autoApproved: number;
|
|
170
|
+
needsManualReview: number;
|
|
171
|
+
}
|
|
172
|
+
interface CreateAuditPayload {
|
|
173
|
+
countType: AuditCountType;
|
|
174
|
+
scope?: {
|
|
175
|
+
nodeId?: string;
|
|
176
|
+
locationId?: string;
|
|
177
|
+
skuRefs?: string[];
|
|
178
|
+
};
|
|
179
|
+
freezePolicy?: "hard_freeze" | "soft_freeze" | "none";
|
|
180
|
+
}
|
|
181
|
+
//#endregion
|
|
182
|
+
export { AuditCountLine, AuditCountType, AuditReconcileResult, AuditSession, AuditStatus, AuditVarianceLine, AuditVarianceReport, BulkCreateLocationPayload, CreateAuditPayload, CreateLocationPayload, CreateNodePayload, LocationCoordinates, LocationType, UpdateLocationPayload, UpdateNodePayload, WarehouseLayout, WarehouseLocation, WarehouseNode };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { LogisticsApi, logisticsApi } from "./logistics.js";
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { ApiResponse, BaseApi, RequestOptions } from "../../core/api-factory.js";
|
|
2
|
+
import { OrderShipping } from "../../sales/types/order.js";
|
|
3
|
+
import { CancelShipmentPayload, CancelShipmentResult, CreateShipmentPayload, LogisticsConfig, PickupStore, ProviderCharges, ProviderName, TrackingResult, UpdateShipmentStatusPayload } from "../types/logistics.js";
|
|
4
|
+
|
|
5
|
+
//#region src/logistics/api/logistics.d.ts
|
|
6
|
+
type FetchOptions = Omit<RequestOptions, 'token' | 'organizationId'>;
|
|
7
|
+
/**
|
|
8
|
+
* Logistics API
|
|
9
|
+
*
|
|
10
|
+
* Manages logistics utilities and delivery charge calculation.
|
|
11
|
+
*
|
|
12
|
+
* NOTE: For area data (divisions, districts, areas), use @classytic/bd-areas directly:
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { searchAreas, getAreasByDistrict, getArea } from '@classytic/bd-areas';
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Public Endpoints:
|
|
18
|
+
* - GET /logistics/charge - Calculate delivery charge via provider (RedX)
|
|
19
|
+
*
|
|
20
|
+
* Shipping Endpoints (Admin/Store Manager):
|
|
21
|
+
* - POST /orders/:id/shipping - Request shipping (manual or provider API)
|
|
22
|
+
* - PATCH /orders/:id/shipping - Update shipping status
|
|
23
|
+
* - GET /orders/:id/shipping - Get shipping info
|
|
24
|
+
* - GET /logistics/shipments/:id/track - Track shipment
|
|
25
|
+
* - POST /logistics/shipments/:id/cancel - Cancel shipment
|
|
26
|
+
*
|
|
27
|
+
* Admin Endpoints:
|
|
28
|
+
* - GET /logistics/config - Get config (read-only)
|
|
29
|
+
* - GET /logistics/pickup-stores - List pickup stores
|
|
30
|
+
* - GET /logistics/health/circuit-status - Get circuit breaker status
|
|
31
|
+
* - POST /logistics/health/circuit-reset/:provider - Reset circuit breaker
|
|
32
|
+
*/
|
|
33
|
+
declare class LogisticsApi extends BaseApi<OrderShipping, CreateShipmentPayload> {
|
|
34
|
+
constructor(config?: {});
|
|
35
|
+
/**
|
|
36
|
+
* Calculate delivery charge via provider API (e.g., RedX)
|
|
37
|
+
* GET /logistics/charge
|
|
38
|
+
*
|
|
39
|
+
* Use this to get real-time delivery charges from the logistics provider
|
|
40
|
+
* before creating an order.
|
|
41
|
+
*
|
|
42
|
+
* @param deliveryAreaId - Area internalId from @classytic/bd-areas
|
|
43
|
+
* @param amount - COD amount in BDT (use 0 for prepaid orders)
|
|
44
|
+
* @param weight - Parcel weight in grams (default: 500g)
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* import { searchAreas } from '@classytic/bd-areas';
|
|
48
|
+
*
|
|
49
|
+
* // 1. User selects area
|
|
50
|
+
* const areas = searchAreas('mohamm');
|
|
51
|
+
* const selectedArea = areas[0]; // { internalId: 1206, name: 'Mohammadpur', ... }
|
|
52
|
+
*
|
|
53
|
+
* // 2. Calculate delivery charge
|
|
54
|
+
* const { data } = await logisticsApi.calculateCharge({
|
|
55
|
+
* deliveryAreaId: selectedArea.internalId,
|
|
56
|
+
* amount: isCOD ? cartTotal : 0,
|
|
57
|
+
* });
|
|
58
|
+
* // { deliveryCharge: 60, codCharge: 15, totalCharge: 75 }
|
|
59
|
+
*/
|
|
60
|
+
calculateCharge({
|
|
61
|
+
deliveryAreaId,
|
|
62
|
+
pickupAreaId,
|
|
63
|
+
amount,
|
|
64
|
+
weight,
|
|
65
|
+
provider,
|
|
66
|
+
options
|
|
67
|
+
}: {
|
|
68
|
+
deliveryAreaId: number;
|
|
69
|
+
pickupAreaId?: number;
|
|
70
|
+
amount: number;
|
|
71
|
+
weight?: number;
|
|
72
|
+
provider?: ProviderName;
|
|
73
|
+
options?: FetchOptions;
|
|
74
|
+
}): Promise<ApiResponse<ProviderCharges>>;
|
|
75
|
+
/**
|
|
76
|
+
* Get logistics configuration (read-only from .env)
|
|
77
|
+
* GET /logistics/config
|
|
78
|
+
*
|
|
79
|
+
* NOTE: Configuration is managed via environment variables.
|
|
80
|
+
* To change settings, update .env file and restart server.
|
|
81
|
+
*/
|
|
82
|
+
getConfig({
|
|
83
|
+
token,
|
|
84
|
+
options
|
|
85
|
+
}: {
|
|
86
|
+
token: string;
|
|
87
|
+
options?: FetchOptions;
|
|
88
|
+
}): Promise<ApiResponse<LogisticsConfig>>;
|
|
89
|
+
/**
|
|
90
|
+
* Get pickup stores from RedX API
|
|
91
|
+
* GET /logistics/pickup-stores
|
|
92
|
+
*
|
|
93
|
+
* Pickup stores are created by admin in RedX dashboard.
|
|
94
|
+
* Use this to list available pickup locations when creating shipments.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* // Admin: List pickup stores for shipment creation
|
|
98
|
+
* const { data: stores } = await logisticsApi.getPickupStores({ token });
|
|
99
|
+
*
|
|
100
|
+
* // Display in dropdown for admin to select
|
|
101
|
+
* stores.forEach(store => {
|
|
102
|
+
* console.log(`${store.name} - ${store.areaName} (ID: ${store.id})`);
|
|
103
|
+
* });
|
|
104
|
+
*
|
|
105
|
+
* // Use selected store when creating shipment
|
|
106
|
+
* await logisticsApi.createShipment({
|
|
107
|
+
* token,
|
|
108
|
+
* data: {
|
|
109
|
+
* orderId: order._id,
|
|
110
|
+
* pickupStoreId: selectedStore.id, // From dropdown
|
|
111
|
+
* },
|
|
112
|
+
* });
|
|
113
|
+
*/
|
|
114
|
+
getPickupStores({
|
|
115
|
+
token,
|
|
116
|
+
provider,
|
|
117
|
+
options
|
|
118
|
+
}: {
|
|
119
|
+
token: string;
|
|
120
|
+
provider?: string;
|
|
121
|
+
options?: FetchOptions;
|
|
122
|
+
}): Promise<ApiResponse<PickupStore[]>>;
|
|
123
|
+
/**
|
|
124
|
+
* Request shipping for an order (manual or provider API)
|
|
125
|
+
* POST /orders/:id/shipping
|
|
126
|
+
*
|
|
127
|
+
* This updates the order.shipping object and optionally triggers
|
|
128
|
+
* provider API shipment creation when useProviderApi=true.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* // Manual: Record tracking details
|
|
132
|
+
* const shipping = await logisticsApi.createShipment({
|
|
133
|
+
* token,
|
|
134
|
+
* orderId: order._id,
|
|
135
|
+
* data: {
|
|
136
|
+
* provider: "other",
|
|
137
|
+
* trackingNumber: "COURIER123456",
|
|
138
|
+
* trackingUrl: "https://courier-website.com/track/COURIER123456",
|
|
139
|
+
* },
|
|
140
|
+
* });
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* // Provider API: Create shipment with pickup store
|
|
144
|
+
* const { data: stores } = await logisticsApi.getPickupStores({ token });
|
|
145
|
+
* const shipping = await logisticsApi.createShipment({
|
|
146
|
+
* token,
|
|
147
|
+
* orderId: order._id,
|
|
148
|
+
* data: {
|
|
149
|
+
* provider: "redx",
|
|
150
|
+
* useProviderApi: true,
|
|
151
|
+
* pickupStoreId: stores[0].id, // Select pickup location
|
|
152
|
+
* weight: 500, // Parcel weight in grams
|
|
153
|
+
* instructions: 'Handle with care',
|
|
154
|
+
* },
|
|
155
|
+
* });
|
|
156
|
+
*/
|
|
157
|
+
createShipment({
|
|
158
|
+
token,
|
|
159
|
+
orderId,
|
|
160
|
+
data,
|
|
161
|
+
options
|
|
162
|
+
}: {
|
|
163
|
+
token: string;
|
|
164
|
+
orderId: string;
|
|
165
|
+
data: CreateShipmentPayload;
|
|
166
|
+
options?: FetchOptions;
|
|
167
|
+
}): Promise<ApiResponse<OrderShipping>>;
|
|
168
|
+
/**
|
|
169
|
+
* Get shipping info for an order
|
|
170
|
+
* GET /orders/:id/shipping
|
|
171
|
+
*/
|
|
172
|
+
getShipment({
|
|
173
|
+
token,
|
|
174
|
+
id,
|
|
175
|
+
options
|
|
176
|
+
}: {
|
|
177
|
+
token: string;
|
|
178
|
+
id: string;
|
|
179
|
+
options?: FetchOptions;
|
|
180
|
+
}): Promise<ApiResponse<OrderShipping | null>>;
|
|
181
|
+
/**
|
|
182
|
+
* Track shipment (fetch latest from provider)
|
|
183
|
+
* GET /logistics/shipments/:id/track
|
|
184
|
+
*
|
|
185
|
+
* @param id - Order ID or tracking number
|
|
186
|
+
*/
|
|
187
|
+
trackShipment({
|
|
188
|
+
token,
|
|
189
|
+
id,
|
|
190
|
+
options
|
|
191
|
+
}: {
|
|
192
|
+
token: string;
|
|
193
|
+
id: string;
|
|
194
|
+
options?: FetchOptions;
|
|
195
|
+
}): Promise<ApiResponse<TrackingResult>>;
|
|
196
|
+
/**
|
|
197
|
+
* Update shipping status for an order
|
|
198
|
+
* PATCH /orders/:id/shipping
|
|
199
|
+
*/
|
|
200
|
+
updateShipmentStatus({
|
|
201
|
+
token,
|
|
202
|
+
id,
|
|
203
|
+
data,
|
|
204
|
+
options
|
|
205
|
+
}: {
|
|
206
|
+
token: string;
|
|
207
|
+
id: string;
|
|
208
|
+
data: UpdateShipmentStatusPayload;
|
|
209
|
+
options?: FetchOptions;
|
|
210
|
+
}): Promise<ApiResponse<OrderShipping>>;
|
|
211
|
+
/**
|
|
212
|
+
* Cancel shipment
|
|
213
|
+
* POST /logistics/shipments/:id/cancel
|
|
214
|
+
*
|
|
215
|
+
* @param id - Order ID or tracking number
|
|
216
|
+
*/
|
|
217
|
+
cancelShipment({
|
|
218
|
+
token,
|
|
219
|
+
id,
|
|
220
|
+
data,
|
|
221
|
+
options
|
|
222
|
+
}: {
|
|
223
|
+
token: string;
|
|
224
|
+
id: string;
|
|
225
|
+
data?: CancelShipmentPayload;
|
|
226
|
+
options?: FetchOptions;
|
|
227
|
+
}): Promise<ApiResponse<CancelShipmentResult>>;
|
|
228
|
+
/**
|
|
229
|
+
* Get circuit breaker status for all providers
|
|
230
|
+
* GET /logistics/health/circuit-status
|
|
231
|
+
*/
|
|
232
|
+
getCircuitStatus({
|
|
233
|
+
token,
|
|
234
|
+
options
|
|
235
|
+
}: {
|
|
236
|
+
token: string;
|
|
237
|
+
options?: FetchOptions;
|
|
238
|
+
}): Promise<ApiResponse<Record<string, {
|
|
239
|
+
state: string;
|
|
240
|
+
failureCount: number;
|
|
241
|
+
}>>>;
|
|
242
|
+
/**
|
|
243
|
+
* Reset circuit breaker for a provider
|
|
244
|
+
* POST /logistics/health/circuit-reset/:provider
|
|
245
|
+
*/
|
|
246
|
+
resetProviderCircuit({
|
|
247
|
+
token,
|
|
248
|
+
provider,
|
|
249
|
+
options
|
|
250
|
+
}: {
|
|
251
|
+
token: string;
|
|
252
|
+
provider: string;
|
|
253
|
+
options?: FetchOptions;
|
|
254
|
+
}): Promise<ApiResponse<{
|
|
255
|
+
message: string;
|
|
256
|
+
}>>;
|
|
257
|
+
}
|
|
258
|
+
declare const logisticsApi: LogisticsApi;
|
|
259
|
+
//#endregion
|
|
260
|
+
export { LogisticsApi, logisticsApi };
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { handleApiRequest } from "../../core/api-handler.js";
|
|
2
|
+
import { BaseApi } from "../../core/api-factory.js";
|
|
3
|
+
|
|
4
|
+
//#region src/logistics/api/logistics.ts
|
|
5
|
+
/**
|
|
6
|
+
* Logistics API
|
|
7
|
+
*
|
|
8
|
+
* Manages logistics utilities and delivery charge calculation.
|
|
9
|
+
*
|
|
10
|
+
* NOTE: For area data (divisions, districts, areas), use @classytic/bd-areas directly:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { searchAreas, getAreasByDistrict, getArea } from '@classytic/bd-areas';
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Public Endpoints:
|
|
16
|
+
* - GET /logistics/charge - Calculate delivery charge via provider (RedX)
|
|
17
|
+
*
|
|
18
|
+
* Shipping Endpoints (Admin/Store Manager):
|
|
19
|
+
* - POST /orders/:id/shipping - Request shipping (manual or provider API)
|
|
20
|
+
* - PATCH /orders/:id/shipping - Update shipping status
|
|
21
|
+
* - GET /orders/:id/shipping - Get shipping info
|
|
22
|
+
* - GET /logistics/shipments/:id/track - Track shipment
|
|
23
|
+
* - POST /logistics/shipments/:id/cancel - Cancel shipment
|
|
24
|
+
*
|
|
25
|
+
* Admin Endpoints:
|
|
26
|
+
* - GET /logistics/config - Get config (read-only)
|
|
27
|
+
* - GET /logistics/pickup-stores - List pickup stores
|
|
28
|
+
* - GET /logistics/health/circuit-status - Get circuit breaker status
|
|
29
|
+
* - POST /logistics/health/circuit-reset/:provider - Reset circuit breaker
|
|
30
|
+
*/
|
|
31
|
+
var LogisticsApi = class extends BaseApi {
|
|
32
|
+
constructor(config = {}) {
|
|
33
|
+
super("logistics", config);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Calculate delivery charge via provider API (e.g., RedX)
|
|
37
|
+
* GET /logistics/charge
|
|
38
|
+
*
|
|
39
|
+
* Use this to get real-time delivery charges from the logistics provider
|
|
40
|
+
* before creating an order.
|
|
41
|
+
*
|
|
42
|
+
* @param deliveryAreaId - Area internalId from @classytic/bd-areas
|
|
43
|
+
* @param amount - COD amount in BDT (use 0 for prepaid orders)
|
|
44
|
+
* @param weight - Parcel weight in grams (default: 500g)
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* import { searchAreas } from '@classytic/bd-areas';
|
|
48
|
+
*
|
|
49
|
+
* // 1. User selects area
|
|
50
|
+
* const areas = searchAreas('mohamm');
|
|
51
|
+
* const selectedArea = areas[0]; // { internalId: 1206, name: 'Mohammadpur', ... }
|
|
52
|
+
*
|
|
53
|
+
* // 2. Calculate delivery charge
|
|
54
|
+
* const { data } = await logisticsApi.calculateCharge({
|
|
55
|
+
* deliveryAreaId: selectedArea.internalId,
|
|
56
|
+
* amount: isCOD ? cartTotal : 0,
|
|
57
|
+
* });
|
|
58
|
+
* // { deliveryCharge: 60, codCharge: 15, totalCharge: 75 }
|
|
59
|
+
*/
|
|
60
|
+
async calculateCharge({ deliveryAreaId, pickupAreaId, amount, weight, provider, options = {} }) {
|
|
61
|
+
if (!deliveryAreaId || amount === void 0) throw new Error("deliveryAreaId and amount are required");
|
|
62
|
+
const queryString = this.createQueryString({
|
|
63
|
+
deliveryAreaId,
|
|
64
|
+
pickupAreaId,
|
|
65
|
+
amount,
|
|
66
|
+
weight,
|
|
67
|
+
provider
|
|
68
|
+
});
|
|
69
|
+
return handleApiRequest("GET", `${this.baseUrl}/charge?${queryString}`, {
|
|
70
|
+
cache: "no-store",
|
|
71
|
+
...options
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get logistics configuration (read-only from .env)
|
|
76
|
+
* GET /logistics/config
|
|
77
|
+
*
|
|
78
|
+
* NOTE: Configuration is managed via environment variables.
|
|
79
|
+
* To change settings, update .env file and restart server.
|
|
80
|
+
*/
|
|
81
|
+
async getConfig({ token, options = {} }) {
|
|
82
|
+
return handleApiRequest("GET", `${this.baseUrl}/config`, {
|
|
83
|
+
token,
|
|
84
|
+
cache: "no-store",
|
|
85
|
+
...options
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get pickup stores from RedX API
|
|
90
|
+
* GET /logistics/pickup-stores
|
|
91
|
+
*
|
|
92
|
+
* Pickup stores are created by admin in RedX dashboard.
|
|
93
|
+
* Use this to list available pickup locations when creating shipments.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* // Admin: List pickup stores for shipment creation
|
|
97
|
+
* const { data: stores } = await logisticsApi.getPickupStores({ token });
|
|
98
|
+
*
|
|
99
|
+
* // Display in dropdown for admin to select
|
|
100
|
+
* stores.forEach(store => {
|
|
101
|
+
* console.log(`${store.name} - ${store.areaName} (ID: ${store.id})`);
|
|
102
|
+
* });
|
|
103
|
+
*
|
|
104
|
+
* // Use selected store when creating shipment
|
|
105
|
+
* await logisticsApi.createShipment({
|
|
106
|
+
* token,
|
|
107
|
+
* data: {
|
|
108
|
+
* orderId: order._id,
|
|
109
|
+
* pickupStoreId: selectedStore.id, // From dropdown
|
|
110
|
+
* },
|
|
111
|
+
* });
|
|
112
|
+
*/
|
|
113
|
+
async getPickupStores({ token, provider, options = {} }) {
|
|
114
|
+
const queryString = provider ? `?provider=${provider}` : "";
|
|
115
|
+
return handleApiRequest("GET", `${this.baseUrl}/pickup-stores${queryString}`, {
|
|
116
|
+
token,
|
|
117
|
+
cache: "no-store",
|
|
118
|
+
...options
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Request shipping for an order (manual or provider API)
|
|
123
|
+
* POST /orders/:id/shipping
|
|
124
|
+
*
|
|
125
|
+
* This updates the order.shipping object and optionally triggers
|
|
126
|
+
* provider API shipment creation when useProviderApi=true.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* // Manual: Record tracking details
|
|
130
|
+
* const shipping = await logisticsApi.createShipment({
|
|
131
|
+
* token,
|
|
132
|
+
* orderId: order._id,
|
|
133
|
+
* data: {
|
|
134
|
+
* provider: "other",
|
|
135
|
+
* trackingNumber: "COURIER123456",
|
|
136
|
+
* trackingUrl: "https://courier-website.com/track/COURIER123456",
|
|
137
|
+
* },
|
|
138
|
+
* });
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* // Provider API: Create shipment with pickup store
|
|
142
|
+
* const { data: stores } = await logisticsApi.getPickupStores({ token });
|
|
143
|
+
* const shipping = await logisticsApi.createShipment({
|
|
144
|
+
* token,
|
|
145
|
+
* orderId: order._id,
|
|
146
|
+
* data: {
|
|
147
|
+
* provider: "redx",
|
|
148
|
+
* useProviderApi: true,
|
|
149
|
+
* pickupStoreId: stores[0].id, // Select pickup location
|
|
150
|
+
* weight: 500, // Parcel weight in grams
|
|
151
|
+
* instructions: 'Handle with care',
|
|
152
|
+
* },
|
|
153
|
+
* });
|
|
154
|
+
*/
|
|
155
|
+
async createShipment({ token, orderId, data, options = {} }) {
|
|
156
|
+
if (!orderId) throw new Error("Order ID is required");
|
|
157
|
+
const response = await handleApiRequest("POST", `${this.config.basePath}/orders/${orderId}/shipping`, {
|
|
158
|
+
token,
|
|
159
|
+
body: data,
|
|
160
|
+
...options
|
|
161
|
+
});
|
|
162
|
+
const normalizedData = response.data && typeof response.data === "object" && "shipping" in response.data ? response.data.shipping : response.data;
|
|
163
|
+
return {
|
|
164
|
+
success: response.success,
|
|
165
|
+
message: response.message,
|
|
166
|
+
...normalizedData ? { data: normalizedData } : {}
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get shipping info for an order
|
|
171
|
+
* GET /orders/:id/shipping
|
|
172
|
+
*/
|
|
173
|
+
async getShipment({ token, id, options = {} }) {
|
|
174
|
+
if (!id) throw new Error("Order ID is required");
|
|
175
|
+
return handleApiRequest("GET", `${this.config.basePath}/orders/${id}/shipping`, {
|
|
176
|
+
token,
|
|
177
|
+
cache: "no-store",
|
|
178
|
+
...options
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Track shipment (fetch latest from provider)
|
|
183
|
+
* GET /logistics/shipments/:id/track
|
|
184
|
+
*
|
|
185
|
+
* @param id - Order ID or tracking number
|
|
186
|
+
*/
|
|
187
|
+
async trackShipment({ token, id, options = {} }) {
|
|
188
|
+
if (!id) throw new Error("Shipment ID or tracking number is required");
|
|
189
|
+
return handleApiRequest("GET", `${this.baseUrl}/shipments/${id}/track`, {
|
|
190
|
+
token,
|
|
191
|
+
cache: "no-store",
|
|
192
|
+
...options
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Update shipping status for an order
|
|
197
|
+
* PATCH /orders/:id/shipping
|
|
198
|
+
*/
|
|
199
|
+
async updateShipmentStatus({ token, id, data, options = {} }) {
|
|
200
|
+
if (!id) throw new Error("Order ID is required");
|
|
201
|
+
if (!data?.status) throw new Error("Status is required");
|
|
202
|
+
return handleApiRequest("PATCH", `${this.config.basePath}/orders/${id}/shipping`, {
|
|
203
|
+
token,
|
|
204
|
+
body: data,
|
|
205
|
+
...options
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Cancel shipment
|
|
210
|
+
* POST /logistics/shipments/:id/cancel
|
|
211
|
+
*
|
|
212
|
+
* @param id - Order ID or tracking number
|
|
213
|
+
*/
|
|
214
|
+
async cancelShipment({ token, id, data, options = {} }) {
|
|
215
|
+
if (!id) throw new Error("Shipment ID or tracking number is required");
|
|
216
|
+
return handleApiRequest("POST", `${this.baseUrl}/shipments/${id}/cancel`, {
|
|
217
|
+
token,
|
|
218
|
+
body: data || {},
|
|
219
|
+
...options
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get circuit breaker status for all providers
|
|
224
|
+
* GET /logistics/health/circuit-status
|
|
225
|
+
*/
|
|
226
|
+
async getCircuitStatus({ token, options = {} }) {
|
|
227
|
+
return handleApiRequest("GET", `${this.baseUrl}/health/circuit-status`, {
|
|
228
|
+
token,
|
|
229
|
+
cache: "no-store",
|
|
230
|
+
...options
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Reset circuit breaker for a provider
|
|
235
|
+
* POST /logistics/health/circuit-reset/:provider
|
|
236
|
+
*/
|
|
237
|
+
async resetProviderCircuit({ token, provider, options = {} }) {
|
|
238
|
+
if (!provider) throw new Error("Provider name is required");
|
|
239
|
+
return handleApiRequest("POST", `${this.baseUrl}/health/circuit-reset/${provider}`, {
|
|
240
|
+
token,
|
|
241
|
+
body: {},
|
|
242
|
+
...options
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
const logisticsApi = new LogisticsApi();
|
|
247
|
+
|
|
248
|
+
//#endregion
|
|
249
|
+
export { LogisticsApi, logisticsApi };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { LOGISTICS_KEYS, UseDeliveryChargeReturn, UseLogisticsActionsReturn, useCancelShipment, useCreateShipment, useDeliveryCharge, useDeliveryChargeCalculation, useLogisticsActions, usePickupStores, useShipment, useTrackShipment, useUpdateShipmentStatus } from "./logistics.js";
|