@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/inventory/api/index.ts","../src/inventory/hooks/inventory.ts","../src/inventory/hooks/stock.ts","../src/inventory/hooks/purchase.ts","../src/inventory/hooks/transfer.ts","../src/inventory/hooks/adjustment.ts","../src/inventory/hooks/movement.ts","../src/inventory/hooks/request.ts","../src/inventory/hooks/supplier.ts"],"names":["useStockActions","useQueryClient","useMutation","useQuery","useMemo"],"mappings":"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","file":"chunk-LRV7MWWX.js","sourcesContent":["/**\r\n * Inventory API - Barrel Export\r\n *\r\n * Modular inventory API following Bangladesh retail flow:\r\n * - Head Office purchases stock (purchaseApi)\r\n * - Transfers distribute to sub-branches (transferApi)\r\n * - Sub-branches request stock (requestApi)\r\n * - Stock movements tracked for audit (movementApi)\r\n * - Manual corrections via adjustments (adjustmentApi)\r\n * - Supplier management (supplierApi)\r\n */\r\n\r\n// Stock Entry\r\nexport { stockApi, StockApi } from \"./stock\";\r\n\r\n// Purchases\r\nexport { purchaseApi, PurchaseApi } from \"./purchase\";\r\n\r\n// Transfers (Challan)\r\nexport { transferApi, TransferApi } from \"./transfer\";\r\n\r\n// Stock Requests\r\nexport { requestApi, RequestApi } from \"./request\";\r\n\r\n// Stock Movements (Audit)\r\nexport { movementApi, MovementApi } from \"./movement\";\r\n\r\n// Adjustments\r\nexport { adjustmentApi, AdjustmentApi } from \"./adjustment\";\r\n\r\n// Suppliers\r\nexport { supplierApi, SupplierApi } from \"./supplier\";\r\nexport type { SupplierQueryParams } from \"./supplier\";\r\n\r\n// Legacy compatibility - unified API object\r\n// (Use individual APIs for new code)\r\nexport const inventoryApis = {\r\n stock: () => import(\"./stock\").then((m) => m.stockApi),\r\n purchase: () => import(\"./purchase\").then((m) => m.purchaseApi),\r\n transfer: () => import(\"./transfer\").then((m) => m.transferApi),\r\n request: () => import(\"./request\").then((m) => m.requestApi),\r\n movement: () => import(\"./movement\").then((m) => m.movementApi),\r\n adjustment: () => import(\"./adjustment\").then((m) => m.adjustmentApi),\r\n supplier: () => import(\"./supplier\").then((m) => m.supplierApi),\r\n} as const;\r\n","\"use client\";\r\n\r\n/**\r\n * Inventory Hooks\r\n *\r\n * React hooks for inventory management with branch-specific stock.\r\n * These hooks use the POS API internally for product/stock data.\r\n */\r\n\r\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\r\nimport { posApi } from \"../../sales/api/pos\";\r\nimport { adjustmentApi } from \"../api/adjustment\";\r\nimport { getToastHandler } from \"../../core/react/mutation.factory\";\r\nimport type { PosProduct, PosProductsResponse, PosLookupResponse } from \"../../sales/types/pos\";\r\nimport type { CreateAdjustmentPayload, BulkAdjustmentPayload } from \"../types\";\r\n\r\n// ============================================\r\n// Query Keys\r\n// ============================================\r\n\r\nexport const INVENTORY_KEYS = {\r\n all: [\"inventory\"] as const,\r\n products: (branchId?: string) => [...INVENTORY_KEYS.all, \"products\", branchId] as const,\r\n productsList: (branchId?: string, params?: Record<string, unknown>) =>\r\n [...INVENTORY_KEYS.products(branchId), params] as const,\r\n lookup: (code: string, branchId?: string) =>\r\n [...INVENTORY_KEYS.all, \"lookup\", code, branchId] as const,\r\n};\r\n\r\n// ============================================\r\n// Types\r\n// ============================================\r\n\r\nexport interface InventoryFilters {\r\n category?: string;\r\n parentCategory?: string;\r\n search?: string;\r\n inStockOnly?: boolean;\r\n lowStockOnly?: boolean;\r\n outOfStockOnly?: boolean;\r\n after?: string;\r\n limit?: number;\r\n sort?: string;\r\n [key: string]: unknown;\r\n}\r\n\r\nexport interface InventorySummary {\r\n totalItems: number;\r\n totalQuantity: number;\r\n lowStockCount: number;\r\n outOfStockCount: number;\r\n}\r\n\r\nexport interface UseInventoryReturn {\r\n items: PosProduct[];\r\n summary: InventorySummary;\r\n branch: PosProductsResponse[\"branch\"];\r\n hasMore: boolean;\r\n nextCursor: string | null;\r\n isLoading: boolean;\r\n isFetching: boolean;\r\n error: Error | null;\r\n refetch: () => void;\r\n}\r\n\r\nexport interface UseStockActionsReturn {\r\n adjust: (data: CreateAdjustmentPayload) => Promise<unknown>;\r\n isAdjusting: boolean;\r\n setStock: (params: {\r\n productId: string;\r\n quantity: number;\r\n branchId?: string;\r\n variantSku?: string;\r\n notes?: string;\r\n }) => Promise<unknown>;\r\n isSettingStock: boolean;\r\n bulkAdjust: (data: BulkAdjustmentPayload) => Promise<unknown>;\r\n isBulkAdjusting: boolean;\r\n isLoading: boolean;\r\n}\r\n\r\ninterface QueryOptions {\r\n enabled?: boolean;\r\n}\r\n\r\n// ============================================\r\n// Hooks\r\n// ============================================\r\n\r\n/**\r\n * Hook to fetch inventory products with branch stock\r\n * Uses POS API: GET /pos/products\r\n *\r\n * @param token - Auth token\r\n * @param branchId - Branch to get stock for\r\n * @param filters - Product filters\r\n * @param options - Query options\r\n *\r\n * @example\r\n * ```tsx\r\n * function InventoryTable({ branchId }) {\r\n * const { items, summary, isLoading } = useInventory(token, branchId, {\r\n * category: 'electronics',\r\n * lowStockOnly: true,\r\n * });\r\n *\r\n * return (\r\n * <Table data={items} />\r\n * );\r\n * }\r\n * ```\r\n */\r\nexport function useInventory(\r\n token: string,\r\n branchId: string | undefined,\r\n filters: InventoryFilters = {},\r\n options: QueryOptions = {}\r\n): UseInventoryReturn {\r\n const queryKey = INVENTORY_KEYS.productsList(branchId, filters);\r\n\r\n const { data, isLoading, isFetching, error, refetch } = useQuery({\r\n queryKey,\r\n queryFn: () =>\r\n posApi.getProducts({\r\n token,\r\n branchId,\r\n category: filters.category,\r\n search: filters.search,\r\n inStockOnly: filters.inStockOnly,\r\n lowStockOnly: filters.lowStockOnly,\r\n after: filters.after,\r\n limit: filters.limit || 50,\r\n sort: filters.sort || \"name\",\r\n }),\r\n enabled: !!token && options.enabled !== false,\r\n staleTime: 30 * 1000, // 30 seconds - inventory changes frequently\r\n refetchOnWindowFocus: true,\r\n });\r\n\r\n return {\r\n items: data?.docs || [],\r\n summary: data?.summary || { totalItems: 0, totalQuantity: 0, lowStockCount: 0, outOfStockCount: 0 },\r\n branch: data?.branch || { _id: \"\", code: \"\", name: \"\" },\r\n hasMore: data?.hasMore || false,\r\n nextCursor: data?.next || null,\r\n isLoading,\r\n isFetching,\r\n error: error as Error | null,\r\n refetch,\r\n };\r\n}\r\n\r\n/**\r\n * Hook for barcode/SKU lookup\r\n *\r\n * @param token - Auth token\r\n * @param code - Barcode or SKU to lookup\r\n * @param branchId - Branch for stock info\r\n * @param options - Query options\r\n *\r\n * @example\r\n * ```tsx\r\n * function BarcodeScanner({ branchId }) {\r\n * const [code, setCode] = useState('');\r\n * const { data, isFetching } = useInventoryLookup(token, code, branchId, {\r\n * enabled: code.length >= 2,\r\n * });\r\n *\r\n * return <Input value={code} onChange={e => setCode(e.target.value)} />;\r\n * }\r\n * ```\r\n */\r\nexport function useInventoryLookup(\r\n token: string,\r\n code: string,\r\n branchId?: string,\r\n options: QueryOptions = {}\r\n) {\r\n return useQuery<PosLookupResponse>({\r\n queryKey: INVENTORY_KEYS.lookup(code, branchId),\r\n queryFn: () => posApi.lookup({ token, code, branchId }),\r\n enabled: !!token && !!code && code.length >= 2 && options.enabled !== false,\r\n staleTime: 10 * 1000, // 10 seconds\r\n retry: false,\r\n });\r\n}\r\n\r\n/**\r\n * Hook for stock adjustment actions\r\n *\r\n * @param token - Auth token\r\n *\r\n * @example\r\n * ```tsx\r\n * function StockAdjuster({ product, branchId }) {\r\n * const { adjust, isAdjusting } = useStockActions(token);\r\n *\r\n * const handleAdjust = async (quantity: number) => {\r\n * await adjust({\r\n * productId: product._id,\r\n * quantity,\r\n * mode: 'set',\r\n * branchId,\r\n * });\r\n * };\r\n *\r\n * return <Button onClick={() => handleAdjust(10)} disabled={isAdjusting}>Set Stock</Button>;\r\n * }\r\n * ```\r\n */\r\nexport function useStockActions(token: string): UseStockActionsReturn {\r\n const queryClient = useQueryClient();\r\n const toast = getToastHandler();\r\n\r\n /**\r\n * Invalidate all queries affected by stock adjustments.\r\n */\r\n const invalidateStockQueries = (branchId?: string) => {\r\n queryClient.invalidateQueries({\r\n queryKey: INVENTORY_KEYS.products(branchId),\r\n });\r\n // Also invalidate POS queries for consistency\r\n queryClient.invalidateQueries({\r\n queryKey: [\"pos\", \"products\", branchId],\r\n });\r\n };\r\n\r\n // Single item adjustment\r\n const adjustMutation = useMutation({\r\n mutationFn: (data: CreateAdjustmentPayload) =>\r\n adjustmentApi.create({ token, data }),\r\n onSuccess: (_, variables) => {\r\n invalidateStockQueries(variables.branchId);\r\n toast.success(\"Stock adjusted successfully\");\r\n },\r\n onError: (error: Error) => {\r\n toast.error(error.message || \"Failed to adjust stock\");\r\n },\r\n });\r\n\r\n // Set stock directly\r\n const setStockMutation = useMutation({\r\n mutationFn: ({\r\n productId,\r\n quantity,\r\n branchId,\r\n variantSku,\r\n notes,\r\n }: {\r\n productId: string;\r\n quantity: number;\r\n branchId?: string;\r\n variantSku?: string;\r\n notes?: string;\r\n }) =>\r\n adjustmentApi.create({\r\n token,\r\n data: {\r\n productId,\r\n quantity,\r\n branchId,\r\n variantSku,\r\n mode: \"set\",\r\n notes,\r\n },\r\n }),\r\n onSuccess: (_, variables) => {\r\n invalidateStockQueries(variables.branchId);\r\n toast.success(\"Stock level updated\");\r\n },\r\n onError: (error: Error) => {\r\n toast.error(error.message || \"Failed to update stock\");\r\n },\r\n });\r\n\r\n // Bulk adjustment\r\n const bulkAdjustMutation = useMutation({\r\n mutationFn: (data: BulkAdjustmentPayload) =>\r\n adjustmentApi.create({\r\n token,\r\n data: {\r\n adjustments: data.adjustments,\r\n branchId: data.branchId,\r\n reason: data.reason,\r\n },\r\n }),\r\n onSuccess: (_, variables) => {\r\n invalidateStockQueries(variables.branchId);\r\n toast.success(\"Bulk adjustment completed\");\r\n },\r\n onError: (error: Error) => {\r\n toast.error(error.message || \"Failed to bulk adjust stock\");\r\n },\r\n });\r\n\r\n return {\r\n // Adjust stock (add/remove/set)\r\n adjust: adjustMutation.mutateAsync,\r\n isAdjusting: adjustMutation.isPending,\r\n\r\n // Set stock directly\r\n setStock: setStockMutation.mutateAsync,\r\n isSettingStock: setStockMutation.isPending,\r\n\r\n // Bulk operations\r\n bulkAdjust: bulkAdjustMutation.mutateAsync,\r\n isBulkAdjusting: bulkAdjustMutation.isPending,\r\n\r\n // Combined loading state\r\n isLoading: adjustMutation.isPending || setStockMutation.isPending || bulkAdjustMutation.isPending,\r\n };\r\n}\r\n\r\n/**\r\n * Helper to determine stock status\r\n */\r\nexport function getStockStatus(quantity: number, lowThreshold = 10): \"out\" | \"low\" | \"ok\" {\r\n if (quantity === 0) return \"out\";\r\n if (quantity <= lowThreshold) return \"low\";\r\n return \"ok\";\r\n}\r\n\r\n/**\r\n * Helper to format stock status badge props\r\n */\r\nexport function getStockStatusBadge(status: \"out\" | \"low\" | \"ok\") {\r\n switch (status) {\r\n case \"out\":\r\n return { variant: \"destructive\" as const, label: \"Out of Stock\" };\r\n case \"low\":\r\n return { variant: \"warning\" as const, label: \"Low Stock\" };\r\n case \"ok\":\r\n return { variant: \"success\" as const, label: \"In Stock\" };\r\n }\r\n}\r\n","\"use client\";\n\n/**\n * Stock Hooks\n *\n * React hooks for stock entry operations using the factory pattern.\n */\n\nimport { createCrudHooks, type CrudApi } from \"../../core/react\";\nimport { stockApi } from \"../api/stock\";\nimport type { StockEntry } from \"../types\";\n\n// Type helper for API compatibility\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyApi = CrudApi<any, any, any>;\n\n/**\n * Stock hooks using createCrudHooks factory\n *\n * Provides:\n * - useStock: List stock entries with filtering/pagination\n * - useStockDetail: Get single stock entry\n * - useStockActions: CRUD mutations (limited for stock)\n * - useStockNavigation: Navigation between stock entries\n */\nexport const stockHooks = createCrudHooks<StockEntry, Partial<StockEntry>, Partial<StockEntry>>({\n api: stockApi as AnyApi,\n entityKey: \"stock\",\n singular: \"Stock Entry\",\n plural: \"Stock Entries\",\n defaults: {\n staleTime: 2 * 60 * 1000, // 2 minutes\n },\n});\n\nexport const {\n KEYS: STOCK_KEYS,\n useList: useStock,\n useDetail: useStockDetail,\n useActions: useStockActions,\n useNavigation: useStockNavigation,\n} = stockHooks;\n","\"use client\";\n\n/**\n * Purchase Hooks\n *\n * React hooks for purchase CRUD operations using the factory pattern.\n */\n\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { createCrudHooks, type CrudApi } from \"../../core/react\";\nimport { getToastHandler } from \"../../core/react/mutation.factory\";\nimport { purchaseApi } from \"../api/purchase\";\nimport type { Purchase, CreatePurchasePayload, UpdatePurchasePayload } from \"../types\";\n\n// Type helper for API compatibility\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyApi = CrudApi<any, any, any>;\n\n/**\n * Purchase hooks using createCrudHooks factory\n *\n * Provides:\n * - usePurchases: List purchases with filtering/pagination\n * - usePurchaseDetail: Get single purchase\n * - usePurchaseActions: Create, update, delete mutations (basic CRUD)\n * - usePurchaseNavigation: Navigation between purchases\n */\nexport const purchaseHooks = createCrudHooks<Purchase, CreatePurchasePayload, UpdatePurchasePayload>({\n api: purchaseApi as AnyApi,\n entityKey: \"purchases\",\n singular: \"Purchase\",\n plural: \"Purchases\",\n});\n\nexport const {\n KEYS: PURCHASE_KEYS,\n useList: usePurchases,\n useDetail: usePurchaseDetail,\n useActions: usePurchaseActions,\n useNavigation: usePurchaseNavigation,\n} = purchaseHooks;\n\n// ============================================\n// Purchase State Actions Hook (receive, pay, cancel)\n// ============================================\n\nexport interface UsePurchaseStateActionsReturn {\n receive: ReturnType<typeof useMutation<Purchase, Error, string>>;\n pay: ReturnType<typeof useMutation<Purchase, Error, {\n id: string;\n amount: number;\n method: string;\n reference?: string;\n }>>;\n cancel: ReturnType<typeof useMutation<Purchase, Error, { id: string; reason?: string }>>;\n isReceiving: boolean;\n isPaying: boolean;\n isCancelling: boolean;\n isLoading: boolean;\n}\n\n/**\n * Hook for purchase state actions (receive, pay, cancel)\n *\n * @param token - Auth token\n * @returns Purchase state action mutations\n *\n * @example\n * ```tsx\n * const { receive, pay, cancel, isReceiving } = usePurchaseStateActions(token);\n *\n * // Receive a purchase (adds stock)\n * await receive.mutateAsync(purchaseId);\n *\n * // Record payment\n * await pay.mutateAsync({ id: purchaseId, amount: 1000, method: 'cash' });\n *\n * // Cancel purchase\n * await cancel.mutateAsync({ id: purchaseId, reason: 'Duplicate entry' });\n * ```\n */\nexport function usePurchaseStateActions(token: string): UsePurchaseStateActionsReturn {\n const queryClient = useQueryClient();\n const toast = getToastHandler();\n\n const invalidateAll = () => {\n queryClient.invalidateQueries({ queryKey: PURCHASE_KEYS.all });\n // Also invalidate inventory queries that might be affected\n queryClient.invalidateQueries({ queryKey: [\"inventory\"] });\n queryClient.invalidateQueries({ queryKey: [\"stock\"] });\n };\n\n const receive = useMutation<Purchase, Error, string>({\n mutationFn: async (id: string) => {\n const response = await purchaseApi.receive({ token, id });\n return response.data as Purchase;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Purchase received - stock added\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to receive purchase\");\n },\n });\n\n const pay = useMutation<Purchase, Error, {\n id: string;\n amount: number;\n method: string;\n reference?: string;\n }>({\n mutationFn: async ({ id, amount, method, reference }) => {\n const response = await purchaseApi.pay({ token, id, amount, method, reference });\n return response.data as Purchase;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Payment recorded\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to record payment\");\n },\n });\n\n const cancel = useMutation<Purchase, Error, { id: string; reason?: string }>({\n mutationFn: async ({ id, reason }) => {\n const response = await purchaseApi.cancel({ token, id, reason });\n return response.data as Purchase;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Purchase cancelled\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to cancel purchase\");\n },\n });\n\n return {\n receive,\n pay,\n cancel,\n isReceiving: receive.isPending,\n isPaying: pay.isPending,\n isCancelling: cancel.isPending,\n isLoading: receive.isPending || pay.isPending || cancel.isPending,\n };\n}\n","\"use client\";\n\n/**\n * Transfer Hooks\n *\n * React hooks for inventory transfer (challan) operations using the factory pattern.\n */\n\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { createCrudHooks, type CrudApi } from \"../../core/react\";\nimport { getToastHandler } from \"../../core/react/mutation.factory\";\nimport { transferApi } from \"../api/transfer\";\nimport type { Transfer, CreateTransferPayload, UpdateTransferPayload, DispatchTransferPayload, ReceiveTransferPayload, TransferStats } from \"../types\";\n\n// Type helper for API compatibility\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyApi = CrudApi<any, any, any>;\n\n/**\n * Transfer hooks using createCrudHooks factory\n *\n * Provides:\n * - useTransfers: List transfers with filtering/pagination\n * - useTransferDetail: Get single transfer\n * - useTransferActions: Create, update, delete mutations (basic CRUD)\n * - useTransferNavigation: Navigation between transfers\n */\nexport const transferHooks = createCrudHooks<Transfer, CreateTransferPayload, UpdateTransferPayload>({\n api: transferApi as AnyApi,\n entityKey: \"transfers\",\n singular: \"Transfer\",\n plural: \"Transfers\",\n});\n\nexport const {\n KEYS: TRANSFER_KEYS,\n useList: useTransfers,\n useDetail: useTransferDetail,\n useActions: useTransferActions,\n useNavigation: useTransferNavigation,\n} = transferHooks;\n\n// ============================================\n// Transfer State Actions Hook (approve, dispatch, inTransit, receive, cancel)\n// ============================================\n\nexport interface UseTransferStateActionsReturn {\n approve: (id: string) => Promise<Transfer>;\n isApproving: boolean;\n dispatch: (params: { id: string; data?: DispatchTransferPayload }) => Promise<Transfer>;\n isDispatching: boolean;\n inTransit: (id: string) => Promise<Transfer>;\n isMarkingInTransit: boolean;\n receive: (params: { id: string; data?: ReceiveTransferPayload }) => Promise<Transfer>;\n isReceiving: boolean;\n cancel: (params: { id: string; reason?: string }) => Promise<Transfer>;\n isCancelling: boolean;\n isLoading: boolean;\n}\n\n/**\n * Hook for transfer state actions (approve, dispatch, inTransit, receive, cancel)\n *\n * @param token - Auth token\n * @returns Transfer state action functions\n *\n * @example\n * ```tsx\n * const { approve, dispatch, receive, cancel, isApproving } = useTransferStateActions(token);\n *\n * // Approve a transfer\n * await approve(transferId);\n *\n * // Dispatch with transport details\n * await dispatch({ id: transferId, data: { transport: { vehicleNumber: 'ABC123' } } });\n *\n * // Receive a transfer\n * await receive({ id: transferId, data: {} });\n *\n * // Cancel transfer\n * await cancel({ id: transferId, reason: 'Duplicate entry' });\n * ```\n */\nexport function useTransferStateActions(token: string): UseTransferStateActionsReturn {\n const queryClient = useQueryClient();\n const toast = getToastHandler();\n\n const invalidateAll = () => {\n queryClient.invalidateQueries({ queryKey: TRANSFER_KEYS.all });\n queryClient.invalidateQueries({ queryKey: [\"inventory\"] });\n queryClient.invalidateQueries({ queryKey: [\"stock\"] });\n };\n\n const approveMutation = useMutation<Transfer, Error, string>({\n mutationFn: async (id: string) => {\n const response = await transferApi.approve({ token, id });\n return response.data as Transfer;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Transfer approved\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to approve transfer\");\n },\n });\n\n const dispatchMutation = useMutation<Transfer, Error, { id: string; data?: DispatchTransferPayload }>({\n mutationFn: async ({ id, data }) => {\n const response = await transferApi.dispatch({ token, id, data });\n return response.data as Transfer;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Transfer dispatched - stock deducted\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to dispatch transfer\");\n },\n });\n\n const inTransitMutation = useMutation<Transfer, Error, string>({\n mutationFn: async (id: string) => {\n const response = await transferApi.markInTransit({ token, id });\n return response.data as Transfer;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Transfer marked in transit\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to mark transfer in transit\");\n },\n });\n\n const receiveMutation = useMutation<Transfer, Error, { id: string; data?: ReceiveTransferPayload }>({\n mutationFn: async ({ id, data }) => {\n const response = await transferApi.receive({ token, id, data });\n return response.data as Transfer;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Transfer received - stock added\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to receive transfer\");\n },\n });\n\n const cancelMutation = useMutation<Transfer, Error, { id: string; reason?: string }>({\n mutationFn: async ({ id, reason }) => {\n const response = await transferApi.cancel({ token, id, reason });\n return response.data as Transfer;\n },\n onSuccess: () => {\n invalidateAll();\n toast.success(\"Transfer cancelled\");\n },\n onError: (err: Error) => {\n toast.error(err.message || \"Failed to cancel transfer\");\n },\n });\n\n return {\n approve: async (id) => {\n return approveMutation.mutateAsync(id);\n },\n isApproving: approveMutation.isPending,\n dispatch: async (params) => {\n return dispatchMutation.mutateAsync(params);\n },\n isDispatching: dispatchMutation.isPending,\n inTransit: async (id) => {\n return inTransitMutation.mutateAsync(id);\n },\n isMarkingInTransit: inTransitMutation.isPending,\n receive: async (params) => {\n return receiveMutation.mutateAsync(params);\n },\n isReceiving: receiveMutation.isPending,\n cancel: async (params) => {\n return cancelMutation.mutateAsync(params);\n },\n isCancelling: cancelMutation.isPending,\n isLoading:\n approveMutation.isPending ||\n dispatchMutation.isPending ||\n inTransitMutation.isPending ||\n receiveMutation.isPending ||\n cancelMutation.isPending,\n };\n}\n\n// ============================================\n// Transfer Stats Hook\n// ============================================\n\n// Query keys for transfer stats\nexport const TRANSFER_STATS_KEYS = {\n all: [\"transfers\", \"stats\"] as const,\n byBranch: (branchId?: string) => [\"transfers\", \"stats\", branchId] as const,\n};\n\n/**\n * Hook to fetch transfer statistics\n *\n * @param token - Auth token\n * @param branchId - Optional branch filter\n * @param options - React Query options\n *\n * @example\n * ```tsx\n * const { data: stats, isLoading } = useTransferStats(token, branchId);\n * ```\n */\nexport function useTransferStats(\n token: string,\n branchId?: string,\n options: { enabled?: boolean } = {}\n) {\n return useQuery({\n queryKey: TRANSFER_STATS_KEYS.byBranch(branchId),\n queryFn: () => transferApi.stats({ token, params: branchId ? { branchId } : {} }),\n enabled: !!token && options.enabled !== false,\n staleTime: 30 * 1000, // 30 seconds\n select: (data) => data?.data as TransferStats,\n });\n}\n","\"use client\";\n\n/**\n * Adjustment Hooks\n *\n * React hooks for stock adjustment operations using the factory pattern.\n */\n\nimport { createCrudHooks, type CrudApi } from \"../../core/react\";\nimport { adjustmentApi } from \"../api/adjustment\";\nimport type { AdjustStockResult, CreateAdjustmentPayload } from \"../types\";\n\n// Type helper for API compatibility\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyApi = CrudApi<any, any, any>;\n\n/**\n * Adjustment hooks using createCrudHooks factory\n *\n * Provides:\n * - useAdjustments: List adjustments with filtering/pagination\n * - useAdjustmentDetail: Get single adjustment\n * - useAdjustmentActions: Create mutations\n * - useAdjustmentNavigation: Navigation between adjustments\n */\nexport const adjustmentHooks = createCrudHooks<AdjustStockResult, CreateAdjustmentPayload, Partial<CreateAdjustmentPayload>>({\n api: adjustmentApi as AnyApi,\n entityKey: \"adjustments\",\n singular: \"Adjustment\",\n plural: \"Adjustments\",\n});\n\nexport const {\n KEYS: ADJUSTMENT_KEYS,\n useList: useAdjustments,\n useDetail: useAdjustmentDetail,\n useActions: useAdjustmentActions,\n useNavigation: useAdjustmentNavigation,\n} = adjustmentHooks;\n","\"use client\";\r\n\r\n/**\r\n * Movement Hooks\r\n *\r\n * React hooks for stock movement (audit trail) queries.\r\n */\r\n\r\nimport { useMemo } from \"react\";\r\nimport { useQuery } from \"@tanstack/react-query\";\r\nimport { movementApi } from \"../api/movement\";\r\nimport type { StockMovement, MovementQueryParams, LowStockItem } from \"../types\";\r\nimport type { PaginatedResponse, ApiResponse } from \"../../core/api-factory\";\r\n\r\n// ============================================\r\n// Query Keys\r\n// ============================================\r\n\r\nexport const MOVEMENT_KEYS = {\r\n all: [\"inventory\", \"movements\"] as const,\r\n list: (params?: Record<string, unknown>) => [...MOVEMENT_KEYS.all, \"list\", params] as const,\r\n lowStock: (params?: Record<string, unknown>) => [...MOVEMENT_KEYS.all, \"low-stock\", params] as const,\r\n};\r\n\r\n// ============================================\r\n// Types\r\n// ============================================\r\n\r\ninterface QueryOptions {\r\n enabled?: boolean;\r\n staleTime?: number;\r\n}\r\n\r\ninterface PaginationData {\r\n page: number;\r\n limit: number;\r\n total: number;\r\n pages: number;\r\n hasNext: boolean;\r\n hasPrev: boolean;\r\n}\r\n\r\nexport interface UseMovementsReturn {\r\n movements: StockMovement[];\r\n pagination: PaginationData | null;\r\n isLoading: boolean;\r\n isFetching: boolean;\r\n error: Error | null;\r\n refetch: () => void;\r\n}\r\n\r\n// ============================================\r\n// Movement Hooks\r\n// ============================================\r\n\r\n/**\r\n * Fetch stock movements (audit trail)\r\n *\r\n * @param token - Auth token\r\n * @param params - Query parameters (productId, branchId, type, dates, etc.)\r\n * @param options - Query options\r\n *\r\n * @example\r\n * ```tsx\r\n * function MovementHistory({ productId }) {\r\n * const { movements, isLoading } = useMovements(token, {\r\n * productId,\r\n * limit: 50,\r\n * });\r\n *\r\n * return <Timeline events={movements} />;\r\n * }\r\n * ```\r\n */\r\nexport function useMovements(\r\n token: string,\r\n params?: MovementQueryParams,\r\n options: QueryOptions = {}\r\n): UseMovementsReturn {\r\n const { data, isLoading, isFetching, error, refetch } = useQuery<PaginatedResponse<StockMovement>>({\r\n queryKey: MOVEMENT_KEYS.list(params as Record<string, unknown>),\r\n queryFn: () => movementApi.list({ token, params }),\r\n enabled: !!token && options.enabled !== false,\r\n staleTime: options.staleTime ?? 15 * 1000, // 15 seconds\r\n });\r\n\r\n const movements = useMemo(() => {\r\n if (!data) return [];\r\n // Handle both { docs: [...] } and { data: [...] } response formats\r\n return (data as { docs?: StockMovement[] }).docs ||\r\n (data as unknown as { data?: StockMovement[] }).data ||\r\n [];\r\n }, [data]);\r\n\r\n const pagination = useMemo(() => {\r\n if (!data) return null;\r\n const d = data as { page?: number; limit?: number; total?: number; pages?: number; hasNext?: boolean; hasPrev?: boolean };\r\n if (d.page === undefined) return null;\r\n return {\r\n page: d.page || 1,\r\n limit: d.limit || 20,\r\n total: d.total || 0,\r\n pages: d.pages || 1,\r\n hasNext: d.hasNext || false,\r\n hasPrev: d.hasPrev || false,\r\n };\r\n }, [data]);\r\n\r\n return {\r\n movements,\r\n pagination,\r\n isLoading,\r\n isFetching,\r\n error: error as Error | null,\r\n refetch,\r\n };\r\n}\r\n\r\n/**\r\n * Fetch low stock items\r\n *\r\n * @param token - Auth token\r\n * @param params - Query parameters (branchId, threshold)\r\n * @param options - Query options\r\n */\r\nexport function useLowStock(\r\n token: string,\r\n params?: { branchId?: string; threshold?: number },\r\n options: QueryOptions = {}\r\n) {\r\n return useQuery<ApiResponse<LowStockItem[]>>({\r\n queryKey: MOVEMENT_KEYS.lowStock(params),\r\n queryFn: () => movementApi.lowStock({ token, params }),\r\n enabled: !!token && options.enabled !== false,\r\n staleTime: options.staleTime ?? 60 * 1000, // 1 minute\r\n });\r\n}\r\n\r\n// ============================================\r\n// Invalidation Helpers\r\n// ============================================\r\n\r\n/**\r\n * Get all keys that should be invalidated when stock quantities change.\r\n * Use for: receive transfer, dispatch, adjustments, purchases.\r\n */\r\nexport function getStockChangeInvalidationKeys() {\r\n return [\r\n [\"inventory\"] as const, // All inventory product queries\r\n MOVEMENT_KEYS.all, // Audit trail (new movements created)\r\n ];\r\n}\r\n","\"use client\";\n\n/**\n * Stock Request Hooks\n *\n * React hooks for stock request operations.\n */\n\nimport { useMemo } from \"react\";\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { requestApi } from \"../api/request\";\nimport { getToastHandler } from \"../../core/react/mutation.factory\";\nimport type { StockRequest, CreateStockRequestPayload } from \"../types\";\nimport type { PaginatedResponse, ApiResponse } from \"../../core/api-factory\";\nimport { TRANSFER_KEYS } from \"./transfer\";\n\n// ============================================\n// Query Keys\n// ============================================\n\nexport const REQUEST_KEYS = {\n all: [\"inventory\", \"requests\"] as const,\n list: (params?: Record<string, unknown>) => [...REQUEST_KEYS.all, \"list\", params] as const,\n pending: () => [...REQUEST_KEYS.all, \"pending\"] as const,\n detail: (id: string) => [...REQUEST_KEYS.all, \"detail\", id] as const,\n};\n\n// ============================================\n// Types\n// ============================================\n\ninterface QueryOptions {\n enabled?: boolean;\n staleTime?: number;\n}\n\nexport interface UseStockRequestsReturn {\n requests: StockRequest[];\n isLoading: boolean;\n isFetching: boolean;\n error: Error | null;\n refetch: () => void;\n}\n\nexport interface UseStockRequestActionsReturn {\n create: (data: CreateStockRequestPayload) => Promise<StockRequest>;\n isCreating: boolean;\n approve: (params: {\n id: string;\n items?: { productId: string; variantSku?: string; quantityApproved: number }[];\n reviewNotes?: string;\n }) => Promise<StockRequest>;\n isApproving: boolean;\n reject: (params: { id: string; reason: string }) => Promise<StockRequest>;\n isRejecting: boolean;\n fulfill: (params: {\n id: string;\n remarks?: string;\n items?: { productId: string; variantSku?: string; quantity: number; cartonNumber?: string }[];\n transport?: { vehicleNumber?: string; driverName?: string; driverPhone?: string };\n }) => Promise<StockRequest>;\n isFulfilling: boolean;\n cancel: (params: { id: string; reason?: string }) => Promise<StockRequest>;\n isCancelling: boolean;\n isLoading: boolean;\n}\n\n// ============================================\n// Stock Request Hooks\n// ============================================\n\n/**\n * Fetch stock requests\n *\n * @param token - Auth token\n * @param params - Query parameters (status, branchId, etc.)\n * @param options - Query options\n */\nexport function useStockRequests(\n token: string,\n params?: Record<string, unknown>,\n options: QueryOptions = {}\n): UseStockRequestsReturn {\n const { data, isLoading, isFetching, error, refetch } = useQuery<PaginatedResponse<StockRequest>>({\n queryKey: REQUEST_KEYS.list(params),\n queryFn: () => requestApi.list({ token, params }),\n enabled: !!token && options.enabled !== false,\n staleTime: options.staleTime ?? 15 * 1000,\n });\n\n const requests = useMemo(() => {\n if (!data) return [];\n return (data as { docs?: StockRequest[] }).docs ||\n (data as unknown as { data?: StockRequest[] }).data ||\n [];\n }, [data]);\n\n return {\n requests,\n isLoading,\n isFetching,\n error: error as Error | null,\n refetch,\n };\n}\n\n/**\n * Fetch pending stock requests\n *\n * @param token - Auth token\n * @param options - Query options\n */\nexport function usePendingStockRequests(\n token: string,\n options: QueryOptions = {}\n): UseStockRequestsReturn {\n const { data, isLoading, isFetching, error, refetch } = useQuery<PaginatedResponse<StockRequest>>({\n queryKey: REQUEST_KEYS.pending(),\n queryFn: () => requestApi.listPending({ token }),\n enabled: !!token && options.enabled !== false,\n staleTime: options.staleTime ?? 15 * 1000,\n });\n\n const requests = useMemo(() => {\n if (!data) return [];\n return (data as { docs?: StockRequest[] }).docs ||\n (data as unknown as { data?: StockRequest[] }).data ||\n [];\n }, [data]);\n\n return {\n requests,\n isLoading,\n isFetching,\n error: error as Error | null,\n refetch,\n };\n}\n\n/**\n * Stock request detail\n *\n * @param token - Auth token\n * @param id - Request ID\n * @param options - Query options\n */\nexport function useStockRequestDetail(\n token: string,\n id: string | null,\n options: QueryOptions = {}\n) {\n return useQuery<ApiResponse<StockRequest>>({\n queryKey: REQUEST_KEYS.detail(id || \"\"),\n queryFn: () => requestApi.getById({ token, id: id! }),\n enabled: !!token && !!id && options.enabled !== false,\n staleTime: options.staleTime ?? 30 * 1000,\n });\n}\n\n/**\n * Stock request actions (create, approve, reject, fulfill, cancel)\n *\n * @param token - Auth token\n *\n * @example\n * ```tsx\n * function RequestActions({ request }) {\n * const { approve, reject, fulfill, isLoading } = useStockRequestActions(token);\n *\n * return (\n * <>\n * <Button onClick={() => approve({ id: request._id })}>Approve</Button>\n * <Button onClick={() => reject({ id: request._id, reason: 'Out of stock' })}>Reject</Button>\n * </>\n * );\n * }\n * ```\n */\nexport function useStockRequestActions(token: string): UseStockRequestActionsReturn {\n const queryClient = useQueryClient();\n const toast = getToastHandler();\n\n const createMutation = useMutation({\n mutationFn: (data: CreateStockRequestPayload) => requestApi.create({ token, data }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: REQUEST_KEYS.all });\n toast.success(\"Stock request created\");\n },\n onError: (err: Error) => toast.error(err.message || \"Failed to create request\"),\n });\n\n const approveMutation = useMutation({\n mutationFn: ({\n id,\n items,\n reviewNotes,\n }: {\n id: string;\n items?: { productId: string; variantSku?: string; quantityApproved: number }[];\n reviewNotes?: string;\n }) => requestApi.approve({ token, id, items, reviewNotes }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: REQUEST_KEYS.all });\n toast.success(\"Request approved\");\n },\n onError: (err: Error) => toast.error(err.message || \"Failed to approve request\"),\n });\n\n const rejectMutation = useMutation({\n mutationFn: ({ id, reason }: { id: string; reason: string }) =>\n requestApi.reject({ token, id, reason }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: REQUEST_KEYS.all });\n toast.success(\"Request rejected\");\n },\n onError: (err: Error) => toast.error(err.message || \"Failed to reject request\"),\n });\n\n const fulfillMutation = useMutation({\n mutationFn: ({\n id,\n remarks,\n items,\n transport,\n }: {\n id: string;\n remarks?: string;\n items?: { productId: string; variantSku?: string; quantity: number; cartonNumber?: string }[];\n transport?: { vehicleNumber?: string; driverName?: string; driverPhone?: string };\n }) =>\n requestApi.fulfill({\n token,\n id,\n remarks,\n items,\n transport,\n documentType: \"delivery_challan\",\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: REQUEST_KEYS.all });\n queryClient.invalidateQueries({ queryKey: TRANSFER_KEYS.all });\n toast.success(\"Request fulfilled (transfer created)\");\n },\n onError: (err: Error) => toast.error(err.message || \"Failed to fulfill request\"),\n });\n\n const cancelMutation = useMutation({\n mutationFn: ({ id, reason }: { id: string; reason?: string }) =>\n requestApi.cancel({ token, id, reason }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: REQUEST_KEYS.all });\n toast.success(\"Request cancelled\");\n },\n onError: (err: Error) => toast.error(err.message || \"Failed to cancel request\"),\n });\n\n return {\n create: async (data) => {\n const result = await createMutation.mutateAsync(data);\n return result.data as StockRequest;\n },\n isCreating: createMutation.isPending,\n approve: async (params) => {\n const result = await approveMutation.mutateAsync(params);\n return result.data as StockRequest;\n },\n isApproving: approveMutation.isPending,\n reject: async (params) => {\n const result = await rejectMutation.mutateAsync(params);\n return result.data as StockRequest;\n },\n isRejecting: rejectMutation.isPending,\n fulfill: async (params) => {\n const result = await fulfillMutation.mutateAsync(params);\n return result.data as StockRequest;\n },\n isFulfilling: fulfillMutation.isPending,\n cancel: async (params) => {\n const result = await cancelMutation.mutateAsync(params);\n return result.data as StockRequest;\n },\n isCancelling: cancelMutation.isPending,\n isLoading:\n createMutation.isPending ||\n approveMutation.isPending ||\n rejectMutation.isPending ||\n fulfillMutation.isPending ||\n cancelMutation.isPending,\n };\n}\n\n// ============================================\n// Invalidation Helpers\n// ============================================\n\n/**\n * Get all keys that should be invalidated when a transfer state changes.\n * Use for: approve, dispatch, receive, cancel.\n */\nexport function getTransferStateInvalidationKeys() {\n return [\n TRANSFER_KEYS.all, // Transfer list and details\n REQUEST_KEYS.all, // If transfer was from request fulfillment\n ];\n}\n","\"use client\";\n\n/**\n * Supplier Hooks\n *\n * React hooks for supplier CRUD operations using the factory pattern.\n */\n\nimport { createCrudHooks, type CrudApi } from \"../../core/react\";\nimport { supplierApi } from \"../api/supplier\";\nimport type { Supplier, SupplierCreatePayload, SupplierUpdatePayload } from \"../types\";\n\n// Type helper for API compatibility\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyApi = CrudApi<any, any, any>;\n\n/**\n * Supplier hooks using createCrudHooks factory\n *\n * Provides:\n * - useSuppliers: List suppliers with filtering/pagination\n * - useSupplierDetail: Get single supplier\n * - useSupplierActions: Create, update, delete mutations\n * - useSupplierNavigation: Navigation between suppliers\n */\nexport const supplierHooks = createCrudHooks<Supplier, SupplierCreatePayload, SupplierUpdatePayload>({\n api: supplierApi as AnyApi,\n entityKey: \"suppliers\",\n singular: \"Supplier\",\n plural: \"Suppliers\",\n});\n\nexport const {\n KEYS: SUPPLIER_KEYS,\n useList: useSuppliers,\n useDetail: useSupplierDetail,\n useActions: useSupplierActions,\n useNavigation: useSupplierNavigation,\n} = supplierHooks;\n"]}
|
package/dist/chunk-M3B4DFTT.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { logisticsApi } from './chunk-2YAZ5WG6.js';
|
|
2
|
-
import { financeApi } from './chunk-N43VE355.js';
|
|
3
|
-
import { transactionApi } from './chunk-AQAISI4F.js';
|
|
4
|
-
import { updateCmsPage, getCmsPage, mediaApi } from './chunk-ERQ52WHY.js';
|
|
5
|
-
import { platformConfigApi, branchApi, userApi, couponApi } from './chunk-YYFKLOKO.js';
|
|
6
|
-
import { paymentApi } from './chunk-5E57JODA.js';
|
|
7
|
-
import { authApi } from './chunk-W22WB3WZ.js';
|
|
8
|
-
import { sizeGuideApi, categoryApi, productApi } from './chunk-FOTUJPM4.js';
|
|
9
|
-
import { customerApi, orderApi, cartApi } from './chunk-4IYW6RF3.js';
|
|
10
|
-
import { purchaseApi } from './chunk-L4OEI4VZ.js';
|
|
11
|
-
import { transferApi } from './chunk-36NLLAVH.js';
|
|
12
|
-
import { requestApi } from './chunk-2TF7QNYV.js';
|
|
13
|
-
import { movementApi } from './chunk-24FDD6UR.js';
|
|
14
|
-
import { adjustmentApi } from './chunk-3OYSJB3P.js';
|
|
15
|
-
import { supplierApi } from './chunk-7LZCW4VF.js';
|
|
16
|
-
import { stockApi } from './chunk-X2CQFJPR.js';
|
|
17
|
-
import { posApi } from './chunk-CILP56G2.js';
|
|
18
|
-
import { configureSDK } from './chunk-IHCBBLLW.js';
|
|
19
|
-
|
|
20
|
-
// src/client.ts
|
|
21
|
-
var cmsApi = {
|
|
22
|
-
getPage: getCmsPage,
|
|
23
|
-
updatePage: updateCmsPage
|
|
24
|
-
};
|
|
25
|
-
function createCommerceSDK(config) {
|
|
26
|
-
configureSDK(config);
|
|
27
|
-
return {
|
|
28
|
-
// Auth
|
|
29
|
-
auth: authApi,
|
|
30
|
-
// Product & Catalog
|
|
31
|
-
product: productApi,
|
|
32
|
-
category: categoryApi,
|
|
33
|
-
sizeGuide: sizeGuideApi,
|
|
34
|
-
// Cart & Checkout
|
|
35
|
-
cart: cartApi,
|
|
36
|
-
order: orderApi,
|
|
37
|
-
coupon: couponApi,
|
|
38
|
-
// Customer & Users
|
|
39
|
-
customer: customerApi,
|
|
40
|
-
user: userApi,
|
|
41
|
-
// Branch & Location
|
|
42
|
-
branch: branchApi,
|
|
43
|
-
// Media
|
|
44
|
-
media: mediaApi,
|
|
45
|
-
// Payment & Finance
|
|
46
|
-
payment: paymentApi,
|
|
47
|
-
transaction: transactionApi,
|
|
48
|
-
finance: financeApi,
|
|
49
|
-
// Logistics & Shipping
|
|
50
|
-
logistics: logisticsApi,
|
|
51
|
-
// Platform Configuration
|
|
52
|
-
platform: platformConfigApi,
|
|
53
|
-
// CMS
|
|
54
|
-
cms: cmsApi,
|
|
55
|
-
// POS
|
|
56
|
-
pos: posApi,
|
|
57
|
-
// Inventory (grouped)
|
|
58
|
-
inventory: {
|
|
59
|
-
stock: stockApi,
|
|
60
|
-
purchase: purchaseApi,
|
|
61
|
-
transfer: transferApi,
|
|
62
|
-
adjustment: adjustmentApi,
|
|
63
|
-
movement: movementApi,
|
|
64
|
-
request: requestApi,
|
|
65
|
-
supplier: supplierApi
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
function initCommerceSDK(config) {
|
|
70
|
-
configureSDK(config);
|
|
71
|
-
}
|
|
72
|
-
var client_default = createCommerceSDK;
|
|
73
|
-
|
|
74
|
-
export { client_default, createCommerceSDK, initCommerceSDK };
|
|
75
|
-
//# sourceMappingURL=chunk-M3B4DFTT.js.map
|
|
76
|
-
//# sourceMappingURL=chunk-M3B4DFTT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAiBA,IAAM,MAAA,GAAS;AAAA,EACb,OAAA,EAAS,UAAA;AAAA,EACT,UAAA,EAAY;AACd,CAAA;AA2GO,SAAS,kBACd,MAAA,EACmB;AAEnB,EAAA,YAAA,CAAa,MAAmB,CAAA;AAGhC,EAAA,OAAO;AAAA;AAAA,IAEL,IAAA,EAAM,OAAA;AAAA;AAAA,IAGN,OAAA,EAAS,UAAA;AAAA,IACT,QAAA,EAAU,WAAA;AAAA,IACV,SAAA,EAAW,YAAA;AAAA;AAAA,IAGX,IAAA,EAAM,OAAA;AAAA,IACN,KAAA,EAAO,QAAA;AAAA,IACP,MAAA,EAAQ,SAAA;AAAA;AAAA,IAGR,QAAA,EAAU,WAAA;AAAA,IACV,IAAA,EAAM,OAAA;AAAA;AAAA,IAGN,MAAA,EAAQ,SAAA;AAAA;AAAA,IAGR,KAAA,EAAO,QAAA;AAAA;AAAA,IAGP,OAAA,EAAS,UAAA;AAAA,IACT,WAAA,EAAa,cAAA;AAAA,IACb,OAAA,EAAS,UAAA;AAAA;AAAA,IAGT,SAAA,EAAW,YAAA;AAAA;AAAA,IAGX,QAAA,EAAU,iBAAA;AAAA;AAAA,IAGV,GAAA,EAAK,MAAA;AAAA;AAAA,IAGL,GAAA,EAAK,MAAA;AAAA;AAAA,IAGL,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,QAAA;AAAA,MACP,QAAA,EAAU,WAAA;AAAA,MACV,QAAA,EAAU,WAAA;AAAA,MACV,UAAA,EAAY,aAAA;AAAA,MACZ,QAAA,EAAU,WAAA;AAAA,MACV,OAAA,EAAS,UAAA;AAAA,MACT,QAAA,EAAU;AAAA;AACZ,GACF;AACF;AAqBO,SAAS,gBAAgB,MAAA,EAAiC;AAC/D,EAAA,YAAA,CAAa,MAAmB,CAAA;AAClC;AAEA,IAAO,cAAA,GAAQ","file":"chunk-M3B4DFTT.js","sourcesContent":["/**\r\n * @classytic/commerce-sdk - SDK Client Factory\r\n *\r\n * Create a configured SDK client instance for use in Next.js applications.\r\n */\r\n\r\nimport { configureSDK, type SDKConfig } from \"./core/api-handler\";\r\n\r\n// Import APIs from domain modules\r\nimport { authApi } from \"./auth\";\r\nimport { productApi, categoryApi, sizeGuideApi } from \"./catalog\";\r\nimport { cartApi, orderApi, customerApi, posApi } from \"./sales\";\r\nimport { transactionApi } from \"./transaction\";\r\nimport { couponApi, userApi, branchApi, platformConfigApi } from \"./platform\";\r\nimport { mediaApi, getCmsPage, updateCmsPage } from \"./content\";\r\n\r\n// Create CMS API wrapper\r\nconst cmsApi = {\r\n getPage: getCmsPage,\r\n updatePage: updateCmsPage,\r\n};\r\nimport { paymentApi } from \"./payments\";\r\nimport { financeApi } from \"./finance\";\r\nimport { logisticsApi } from \"./logistics\";\r\nimport {\r\n stockApi,\r\n purchaseApi,\r\n transferApi,\r\n adjustmentApi,\r\n movementApi,\r\n requestApi,\r\n supplierApi,\r\n} from \"./inventory\";\r\n\r\n/**\r\n * SDK Client Configuration Options\r\n */\r\nexport interface CommerceSDKConfig {\r\n /** Base URL for API requests (e.g., \"https://api.example.com\") */\r\n baseUrl: string;\r\n /** Default organization ID for multi-tenant support */\r\n organizationId?: string;\r\n /** Function to get current auth token */\r\n getToken?: () => string | null | Promise<string | null>;\r\n /** Default request cache mode */\r\n cache?: RequestCache;\r\n /** Default headers to include in all requests */\r\n headers?: Record<string, string>;\r\n}\r\n\r\n/**\r\n * Commerce SDK Client\r\n *\r\n * Provides typed access to all commerce APIs.\r\n */\r\nexport interface CommerceSDKClient {\r\n // Auth\r\n auth: typeof authApi;\r\n\r\n // Product & Catalog\r\n product: typeof productApi;\r\n category: typeof categoryApi;\r\n sizeGuide: typeof sizeGuideApi;\r\n\r\n // Cart & Checkout\r\n cart: typeof cartApi;\r\n order: typeof orderApi;\r\n coupon: typeof couponApi;\r\n\r\n // Customer & Users\r\n customer: typeof customerApi;\r\n user: typeof userApi;\r\n\r\n // Branch & Location\r\n branch: typeof branchApi;\r\n\r\n // Media\r\n media: typeof mediaApi;\r\n\r\n // Payment & Finance\r\n payment: typeof paymentApi;\r\n transaction: typeof transactionApi;\r\n finance: typeof financeApi;\r\n\r\n // Logistics & Shipping\r\n logistics: typeof logisticsApi;\r\n\r\n // Platform Configuration\r\n platform: typeof platformConfigApi;\r\n\r\n // CMS\r\n cms: typeof cmsApi;\r\n\r\n // POS\r\n pos: typeof posApi;\r\n\r\n // Inventory\r\n inventory: {\r\n stock: typeof stockApi;\r\n purchase: typeof purchaseApi;\r\n transfer: typeof transferApi;\r\n adjustment: typeof adjustmentApi;\r\n movement: typeof movementApi;\r\n request: typeof requestApi;\r\n supplier: typeof supplierApi;\r\n };\r\n}\r\n\r\n/**\r\n * Create a configured Commerce SDK client\r\n *\r\n * @example\r\n * ```typescript\r\n * // In your app initialization\r\n * import { createCommerceSDK } from '@classytic/commerce-sdk';\r\n *\r\n * const sdk = createCommerceSDK({\r\n * baseUrl: process.env.NEXT_PUBLIC_API_URL!,\r\n * getToken: () => getCookie('token'),\r\n * organizationId: 'org_123',\r\n * });\r\n *\r\n * // Use the SDK\r\n * const products = await sdk.product.getAll({ params: { page: 1 } });\r\n * const order = await sdk.order.create({ token, data: orderData });\r\n * ```\r\n */\r\nexport function createCommerceSDK(\r\n config: CommerceSDKConfig\r\n): CommerceSDKClient {\r\n // Configure the global SDK settings\r\n configureSDK(config as SDKConfig);\r\n\r\n // Return the client with all APIs\r\n return {\r\n // Auth\r\n auth: authApi,\r\n\r\n // Product & Catalog\r\n product: productApi,\r\n category: categoryApi,\r\n sizeGuide: sizeGuideApi,\r\n\r\n // Cart & Checkout\r\n cart: cartApi,\r\n order: orderApi,\r\n coupon: couponApi,\r\n\r\n // Customer & Users\r\n customer: customerApi,\r\n user: userApi,\r\n\r\n // Branch & Location\r\n branch: branchApi,\r\n\r\n // Media\r\n media: mediaApi,\r\n\r\n // Payment & Finance\r\n payment: paymentApi,\r\n transaction: transactionApi,\r\n finance: financeApi,\r\n\r\n // Logistics & Shipping\r\n logistics: logisticsApi,\r\n\r\n // Platform Configuration\r\n platform: platformConfigApi,\r\n\r\n // CMS\r\n cms: cmsApi,\r\n\r\n // POS\r\n pos: posApi,\r\n\r\n // Inventory (grouped)\r\n inventory: {\r\n stock: stockApi,\r\n purchase: purchaseApi,\r\n transfer: transferApi,\r\n adjustment: adjustmentApi,\r\n movement: movementApi,\r\n request: requestApi,\r\n supplier: supplierApi,\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Initialize SDK configuration without creating a client\r\n *\r\n * Useful when you want to configure the SDK globally and use\r\n * individual API instances directly.\r\n *\r\n * @example\r\n * ```typescript\r\n * import { initCommerceSDK, productApi } from '@classytic/commerce-sdk';\r\n *\r\n * // Initialize once at app startup\r\n * initCommerceSDK({\r\n * baseUrl: process.env.NEXT_PUBLIC_API_URL!,\r\n * });\r\n *\r\n * // Use APIs directly\r\n * const products = await productApi.getAll({ params: { page: 1 } });\r\n * ```\r\n */\r\nexport function initCommerceSDK(config: CommerceSDKConfig): void {\r\n configureSDK(config as SDKConfig);\r\n}\r\n\r\nexport default createCommerceSDK;\r\n"]}
|
package/dist/chunk-N43VE355.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { handleApiRequest } from './chunk-IHCBBLLW.js';
|
|
2
|
-
import { useQuery } from '@tanstack/react-query';
|
|
3
|
-
|
|
4
|
-
// src/finance/api/finance.ts
|
|
5
|
-
var FinanceApi = class {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.baseUrl = "/api/v1/finance";
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Get finance statements (export)
|
|
11
|
-
* GET /finance/statements
|
|
12
|
-
*
|
|
13
|
-
* Query params:
|
|
14
|
-
* - startDate, endDate (ISO datetime) - required
|
|
15
|
-
* - branchId (optional)
|
|
16
|
-
* - source = web|pos|api (optional)
|
|
17
|
-
* - status (optional)
|
|
18
|
-
* - format = csv|json (default: csv)
|
|
19
|
-
* - page, limit (for JSON pagination)
|
|
20
|
-
*/
|
|
21
|
-
async getStatements({
|
|
22
|
-
token,
|
|
23
|
-
params,
|
|
24
|
-
options = {}
|
|
25
|
-
}) {
|
|
26
|
-
if (!token) {
|
|
27
|
-
throw new Error("Authentication required");
|
|
28
|
-
}
|
|
29
|
-
const queryParams = new URLSearchParams();
|
|
30
|
-
if (params.startDate) queryParams.append("startDate", params.startDate);
|
|
31
|
-
if (params.endDate) queryParams.append("endDate", params.endDate);
|
|
32
|
-
if (params.branchId) queryParams.append("branchId", params.branchId);
|
|
33
|
-
if (params.source) queryParams.append("source", params.source);
|
|
34
|
-
if (params.status) queryParams.append("status", params.status);
|
|
35
|
-
if (params.format) queryParams.append("format", params.format);
|
|
36
|
-
if (params.page) queryParams.append("page", params.page.toString());
|
|
37
|
-
if (params.limit) queryParams.append("limit", params.limit.toString());
|
|
38
|
-
const url = `${this.baseUrl}/statements${queryParams.toString() ? `?${queryParams}` : ""}`;
|
|
39
|
-
return handleApiRequest("GET", url, {
|
|
40
|
-
token,
|
|
41
|
-
...options
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get finance summary (dashboard)
|
|
46
|
-
* GET /finance/summary
|
|
47
|
-
*
|
|
48
|
-
* Query params:
|
|
49
|
-
* - startDate, endDate (ISO datetime) - required
|
|
50
|
-
* - branchId (optional)
|
|
51
|
-
* - source = web|pos|api (optional)
|
|
52
|
-
* - status (optional)
|
|
53
|
-
*
|
|
54
|
-
* Response:
|
|
55
|
-
* - data.totals: overall income/expense/net/count
|
|
56
|
-
* - data.byMethod: breakdown by payment method
|
|
57
|
-
* - data.byDay: per-day breakdown by branch
|
|
58
|
-
*/
|
|
59
|
-
async getSummary({
|
|
60
|
-
token,
|
|
61
|
-
params,
|
|
62
|
-
options = {}
|
|
63
|
-
}) {
|
|
64
|
-
if (!token) {
|
|
65
|
-
throw new Error("Authentication required");
|
|
66
|
-
}
|
|
67
|
-
const queryParams = new URLSearchParams();
|
|
68
|
-
if (params.startDate) queryParams.append("startDate", params.startDate);
|
|
69
|
-
if (params.endDate) queryParams.append("endDate", params.endDate);
|
|
70
|
-
if (params.branchId) queryParams.append("branchId", params.branchId);
|
|
71
|
-
if (params.source) queryParams.append("source", params.source);
|
|
72
|
-
if (params.status) queryParams.append("status", params.status);
|
|
73
|
-
const url = `${this.baseUrl}/summary${queryParams.toString() ? `?${queryParams}` : ""}`;
|
|
74
|
-
return handleApiRequest("GET", url, {
|
|
75
|
-
token,
|
|
76
|
-
...options
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
var financeApi = new FinanceApi();
|
|
81
|
-
var FINANCE_KEYS = {
|
|
82
|
-
all: ["finance"],
|
|
83
|
-
statements: () => [...FINANCE_KEYS.all, "statements"],
|
|
84
|
-
statementList: (params) => [...FINANCE_KEYS.statements(), params],
|
|
85
|
-
summary: () => [...FINANCE_KEYS.all, "summary"],
|
|
86
|
-
summaryData: (params) => [...FINANCE_KEYS.summary(), params]
|
|
87
|
-
};
|
|
88
|
-
function useFinanceStatements(token, params, options = {}) {
|
|
89
|
-
const { data, isLoading, isFetching, error, refetch } = useQuery({
|
|
90
|
-
queryKey: FINANCE_KEYS.statementList(params),
|
|
91
|
-
queryFn: () => financeApi.getStatements({ token, params }),
|
|
92
|
-
enabled: !!token && !!params.startDate && !!params.endDate && options.enabled !== false,
|
|
93
|
-
staleTime: options.staleTime ?? 2 * 60 * 1e3
|
|
94
|
-
// 2 minutes
|
|
95
|
-
});
|
|
96
|
-
return {
|
|
97
|
-
statements: data?.data || [],
|
|
98
|
-
isLoading,
|
|
99
|
-
isFetching,
|
|
100
|
-
error,
|
|
101
|
-
refetch
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
function useFinanceSummary(token, params, options = {}) {
|
|
105
|
-
const { data, isLoading, isFetching, error, refetch } = useQuery({
|
|
106
|
-
queryKey: FINANCE_KEYS.summaryData(params),
|
|
107
|
-
queryFn: () => financeApi.getSummary({ token, params }),
|
|
108
|
-
enabled: !!token && !!params.startDate && !!params.endDate && options.enabled !== false,
|
|
109
|
-
staleTime: options.staleTime ?? 2 * 60 * 1e3
|
|
110
|
-
// 2 minutes
|
|
111
|
-
});
|
|
112
|
-
return {
|
|
113
|
-
summary: data?.data || null,
|
|
114
|
-
totals: data?.data?.totals || null,
|
|
115
|
-
byMethod: data?.data?.byMethod || [],
|
|
116
|
-
byDay: data?.data?.byDay || [],
|
|
117
|
-
isLoading,
|
|
118
|
-
isFetching,
|
|
119
|
-
error,
|
|
120
|
-
refetch
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export { FINANCE_KEYS, FinanceApi, financeApi, useFinanceStatements, useFinanceSummary };
|
|
125
|
-
//# sourceMappingURL=chunk-N43VE355.js.map
|
|
126
|
-
//# sourceMappingURL=chunk-N43VE355.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/finance/api/finance.ts","../src/finance/hooks/finance.ts"],"names":[],"mappings":"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","file":"chunk-N43VE355.js","sourcesContent":["// finance/api/finance.ts\r\nimport { handleApiRequest } from \"../../core/api-handler\";\r\nimport type { ApiResponse, RequestOptions } from \"../../core/api-factory\";\r\nimport type {\r\n FinanceStatement,\r\n FinanceStatementParams,\r\n FinanceSummary,\r\n FinanceSummaryParams,\r\n} from \"../types\";\r\n\r\ntype FetchOptions = Omit<RequestOptions, \"token\" | \"organizationId\">;\r\n\r\n/**\r\n * Finance API - Statements and summaries for backoffice\r\n *\r\n * Endpoints:\r\n * - getStatements({ token, params }) - Export statements (CSV/JSON)\r\n * - getSummary({ token, params }) - Get summary with breakdowns\r\n *\r\n * Roles:\r\n * - admin, superadmin, finance-admin, finance-manager\r\n */\r\nclass FinanceApi {\r\n private baseUrl: string;\r\n\r\n constructor() {\r\n this.baseUrl = \"/api/v1/finance\";\r\n }\r\n\r\n /**\r\n * Get finance statements (export)\r\n * GET /finance/statements\r\n *\r\n * Query params:\r\n * - startDate, endDate (ISO datetime) - required\r\n * - branchId (optional)\r\n * - source = web|pos|api (optional)\r\n * - status (optional)\r\n * - format = csv|json (default: csv)\r\n * - page, limit (for JSON pagination)\r\n */\r\n async getStatements({\r\n token,\r\n params,\r\n options = {},\r\n }: {\r\n token: string;\r\n params: FinanceStatementParams;\r\n options?: FetchOptions;\r\n }): Promise<ApiResponse<FinanceStatement[]>> {\r\n if (!token) {\r\n throw new Error(\"Authentication required\");\r\n }\r\n\r\n const queryParams = new URLSearchParams();\r\n\r\n if (params.startDate) queryParams.append(\"startDate\", params.startDate);\r\n if (params.endDate) queryParams.append(\"endDate\", params.endDate);\r\n if (params.branchId) queryParams.append(\"branchId\", params.branchId);\r\n if (params.source) queryParams.append(\"source\", params.source);\r\n if (params.status) queryParams.append(\"status\", params.status);\r\n if (params.format) queryParams.append(\"format\", params.format);\r\n if (params.page) queryParams.append(\"page\", params.page.toString());\r\n if (params.limit) queryParams.append(\"limit\", params.limit.toString());\r\n\r\n const url = `${this.baseUrl}/statements${queryParams.toString() ? `?${queryParams}` : \"\"}`;\r\n\r\n return handleApiRequest(\"GET\", url, {\r\n token,\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * Get finance summary (dashboard)\r\n * GET /finance/summary\r\n *\r\n * Query params:\r\n * - startDate, endDate (ISO datetime) - required\r\n * - branchId (optional)\r\n * - source = web|pos|api (optional)\r\n * - status (optional)\r\n *\r\n * Response:\r\n * - data.totals: overall income/expense/net/count\r\n * - data.byMethod: breakdown by payment method\r\n * - data.byDay: per-day breakdown by branch\r\n */\r\n async getSummary({\r\n token,\r\n params,\r\n options = {},\r\n }: {\r\n token: string;\r\n params: FinanceSummaryParams;\r\n options?: FetchOptions;\r\n }): Promise<ApiResponse<FinanceSummary>> {\r\n if (!token) {\r\n throw new Error(\"Authentication required\");\r\n }\r\n\r\n const queryParams = new URLSearchParams();\r\n\r\n if (params.startDate) queryParams.append(\"startDate\", params.startDate);\r\n if (params.endDate) queryParams.append(\"endDate\", params.endDate);\r\n if (params.branchId) queryParams.append(\"branchId\", params.branchId);\r\n if (params.source) queryParams.append(\"source\", params.source);\r\n if (params.status) queryParams.append(\"status\", params.status);\r\n\r\n const url = `${this.baseUrl}/summary${queryParams.toString() ? `?${queryParams}` : \"\"}`;\r\n\r\n return handleApiRequest(\"GET\", url, {\r\n token,\r\n ...options,\r\n });\r\n }\r\n}\r\n\r\nexport const financeApi = new FinanceApi();\r\nexport { FinanceApi };\r\n","\"use client\";\r\n\r\nimport { useQuery } from \"@tanstack/react-query\";\r\nimport { financeApi } from \"../api\";\r\nimport type {\r\n FinanceStatement,\r\n FinanceStatementParams,\r\n FinanceSummary,\r\n FinanceSummaryParams,\r\n} from \"../types\";\r\nimport type { ApiResponse } from \"../../core/api-factory\";\r\n\r\n// ============================================\r\n// Query Keys\r\n// ============================================\r\n\r\nexport const FINANCE_KEYS = {\r\n all: [\"finance\"] as const,\r\n statements: () => [...FINANCE_KEYS.all, \"statements\"] as const,\r\n statementList: (params: FinanceStatementParams) =>\r\n [...FINANCE_KEYS.statements(), params] as const,\r\n summary: () => [...FINANCE_KEYS.all, \"summary\"] as const,\r\n summaryData: (params: FinanceSummaryParams) =>\r\n [...FINANCE_KEYS.summary(), params] as const,\r\n};\r\n\r\n// ============================================\r\n// Types\r\n// ============================================\r\n\r\ninterface QueryOptions {\r\n enabled?: boolean;\r\n staleTime?: number;\r\n}\r\n\r\nexport interface UseFinanceStatementsReturn {\r\n statements: FinanceStatement[];\r\n isLoading: boolean;\r\n isFetching: boolean;\r\n error: Error | null;\r\n refetch: () => void;\r\n}\r\n\r\nexport interface UseFinanceSummaryReturn {\r\n summary: FinanceSummary | null;\r\n totals: FinanceSummary[\"totals\"] | null;\r\n byMethod: FinanceSummary[\"byMethod\"];\r\n byDay: FinanceSummary[\"byDay\"];\r\n isLoading: boolean;\r\n isFetching: boolean;\r\n error: Error | null;\r\n refetch: () => void;\r\n}\r\n\r\n// ============================================\r\n// Hooks\r\n// ============================================\r\n\r\n/**\r\n * Fetch finance statements for a date range\r\n *\r\n * @param token - Auth token (admin/finance roles)\r\n * @param params - Query parameters (startDate, endDate required)\r\n * @param options - Query options\r\n *\r\n * @example\r\n * ```tsx\r\n * function StatementTable() {\r\n * const { statements, isLoading } = useFinanceStatements(token, {\r\n * startDate: '2024-01-01T00:00:00Z',\r\n * endDate: '2024-01-31T23:59:59Z',\r\n * branchId: selectedBranch,\r\n * });\r\n *\r\n * return <DataTable data={statements} loading={isLoading} />;\r\n * }\r\n * ```\r\n */\r\nexport function useFinanceStatements(\r\n token: string,\r\n params: FinanceStatementParams,\r\n options: QueryOptions = {}\r\n): UseFinanceStatementsReturn {\r\n const { data, isLoading, isFetching, error, refetch } = useQuery<ApiResponse<FinanceStatement[]>>({\r\n queryKey: FINANCE_KEYS.statementList(params),\r\n queryFn: () => financeApi.getStatements({ token, params }),\r\n enabled: !!token && !!params.startDate && !!params.endDate && options.enabled !== false,\r\n staleTime: options.staleTime ?? 2 * 60 * 1000, // 2 minutes\r\n });\r\n\r\n return {\r\n statements: data?.data || [],\r\n isLoading,\r\n isFetching,\r\n error: error as Error | null,\r\n refetch,\r\n };\r\n}\r\n\r\n/**\r\n * Fetch finance summary with breakdowns\r\n *\r\n * @param token - Auth token (admin/finance roles)\r\n * @param params - Query parameters (startDate, endDate required)\r\n * @param options - Query options\r\n *\r\n * @example\r\n * ```tsx\r\n * function FinanceDashboard() {\r\n * const { totals, byMethod, byDay, isLoading } = useFinanceSummary(token, {\r\n * startDate: '2024-01-01T00:00:00Z',\r\n * endDate: '2024-01-31T23:59:59Z',\r\n * });\r\n *\r\n * return (\r\n * <>\r\n * <SummaryCards totals={totals} />\r\n * <MethodBreakdown data={byMethod} />\r\n * <DailyChart data={byDay} />\r\n * </>\r\n * );\r\n * }\r\n * ```\r\n */\r\nexport function useFinanceSummary(\r\n token: string,\r\n params: FinanceSummaryParams,\r\n options: QueryOptions = {}\r\n): UseFinanceSummaryReturn {\r\n const { data, isLoading, isFetching, error, refetch } = useQuery<ApiResponse<FinanceSummary>>({\r\n queryKey: FINANCE_KEYS.summaryData(params),\r\n queryFn: () => financeApi.getSummary({ token, params }),\r\n enabled: !!token && !!params.startDate && !!params.endDate && options.enabled !== false,\r\n staleTime: options.staleTime ?? 2 * 60 * 1000, // 2 minutes\r\n });\r\n\r\n return {\r\n summary: data?.data || null,\r\n totals: data?.data?.totals || null,\r\n byMethod: data?.data?.byMethod || [],\r\n byDay: data?.data?.byDay || [],\r\n isLoading,\r\n isFetching,\r\n error: error as Error | null,\r\n refetch,\r\n };\r\n}\r\n"]}
|
package/dist/chunk-PYYLHUV6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-PYYLHUV6.js"}
|