@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
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { authApi } from "./auth/api/user-data.js";
|
|
2
|
+
import { productApi } from "./catalog/api/product.js";
|
|
3
|
+
import { categoryApi } from "./catalog/api/category.js";
|
|
4
|
+
import { sizeGuideApi } from "./catalog/api/size-guide.js";
|
|
5
|
+
import { ToastHandler as ToastHandler$1 } from "./core/react/mutation.factory.js";
|
|
6
|
+
import { cartApi } from "./sales/api/cart.js";
|
|
7
|
+
import { orderApi } from "./sales/api/order.js";
|
|
8
|
+
import { customerApi } from "./sales/api/customer.js";
|
|
9
|
+
import { posApi } from "./sales/api/pos.js";
|
|
10
|
+
import { availabilityApi } from "./inventory/api/availability.js";
|
|
11
|
+
import { reservationApi } from "./inventory/api/reservation.js";
|
|
12
|
+
import { scanApi } from "./inventory/api/scan.js";
|
|
13
|
+
import { purchaseApi } from "./inventory/api/purchase.js";
|
|
14
|
+
import { transferApi } from "./inventory/api/transfer.js";
|
|
15
|
+
import { requestApi } from "./inventory/api/request.js";
|
|
16
|
+
import { movementApi } from "./inventory/api/movement.js";
|
|
17
|
+
import { adjustmentApi } from "./inventory/api/adjustment.js";
|
|
18
|
+
import { supplierApi } from "./inventory/api/supplier.js";
|
|
19
|
+
import { auditApi, locationApi, nodeApi } from "./inventory/api/warehouse.js";
|
|
20
|
+
import { logisticsApi } from "./logistics/api/logistics.js";
|
|
21
|
+
import { financeApi } from "./finance/api/finance.js";
|
|
22
|
+
import { transactionApi } from "./transaction/api/transaction.js";
|
|
23
|
+
import { cmsApi } from "./content/api/cms.js";
|
|
24
|
+
import { mediaApi } from "./content/api/media.js";
|
|
25
|
+
import { platformConfigApi } from "./platform/api/config.js";
|
|
26
|
+
import { branchApi } from "./platform/api/branch.js";
|
|
27
|
+
import { userApi } from "./platform/api/user.js";
|
|
28
|
+
import { evaluationApi, programApi, voucherApi } from "./platform/api/promo.js";
|
|
29
|
+
import { paymentApi } from "./payments/api/payment.js";
|
|
30
|
+
import { UseRouterHook } from "@classytic/arc-next/client";
|
|
31
|
+
|
|
32
|
+
//#region src/client.d.ts
|
|
33
|
+
/**
|
|
34
|
+
* SDK Client Configuration Options
|
|
35
|
+
*/
|
|
36
|
+
interface CommerceSDKConfig {
|
|
37
|
+
/** Base URL for API requests (e.g., "https://api.example.com") */
|
|
38
|
+
baseUrl: string;
|
|
39
|
+
/** Default organization ID for multi-tenant support */
|
|
40
|
+
organizationId?: string;
|
|
41
|
+
/** Function to get current auth token */
|
|
42
|
+
getToken?: () => string | null | Promise<string | null>;
|
|
43
|
+
/** Default request cache mode */
|
|
44
|
+
cache?: RequestCache;
|
|
45
|
+
/** Default headers to include in all requests */
|
|
46
|
+
headers?: Record<string, string>;
|
|
47
|
+
/** Toast handler for mutation feedback */
|
|
48
|
+
toast?: ToastHandler$1;
|
|
49
|
+
/** Router hook for navigation (e.g., Next.js useRouter) */
|
|
50
|
+
navigation?: UseRouterHook;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Commerce SDK Client
|
|
54
|
+
*
|
|
55
|
+
* Provides typed access to all commerce APIs.
|
|
56
|
+
*/
|
|
57
|
+
interface CommerceSDKClient {
|
|
58
|
+
auth: typeof authApi;
|
|
59
|
+
product: typeof productApi;
|
|
60
|
+
category: typeof categoryApi;
|
|
61
|
+
sizeGuide: typeof sizeGuideApi;
|
|
62
|
+
cart: typeof cartApi;
|
|
63
|
+
order: typeof orderApi;
|
|
64
|
+
promo: {
|
|
65
|
+
program: typeof programApi;
|
|
66
|
+
voucher: typeof voucherApi;
|
|
67
|
+
evaluation: typeof evaluationApi;
|
|
68
|
+
};
|
|
69
|
+
customer: typeof customerApi;
|
|
70
|
+
user: typeof userApi;
|
|
71
|
+
branch: typeof branchApi;
|
|
72
|
+
media: typeof mediaApi;
|
|
73
|
+
payment: typeof paymentApi;
|
|
74
|
+
transaction: typeof transactionApi;
|
|
75
|
+
finance: typeof financeApi;
|
|
76
|
+
logistics: typeof logisticsApi;
|
|
77
|
+
platform: typeof platformConfigApi;
|
|
78
|
+
cms: typeof cmsApi;
|
|
79
|
+
pos: typeof posApi;
|
|
80
|
+
inventory: {
|
|
81
|
+
availability: typeof availabilityApi;
|
|
82
|
+
reservation: typeof reservationApi;
|
|
83
|
+
scan: typeof scanApi;
|
|
84
|
+
purchase: typeof purchaseApi;
|
|
85
|
+
transfer: typeof transferApi;
|
|
86
|
+
adjustment: typeof adjustmentApi;
|
|
87
|
+
movement: typeof movementApi;
|
|
88
|
+
request: typeof requestApi;
|
|
89
|
+
supplier: typeof supplierApi;
|
|
90
|
+
node: typeof nodeApi;
|
|
91
|
+
location: typeof locationApi;
|
|
92
|
+
audit: typeof auditApi;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create a configured Commerce SDK client
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* import { createCommerceSDK } from '@classytic/commerce-sdk';
|
|
101
|
+
* import { useRouter } from 'next/navigation';
|
|
102
|
+
* import { toast } from 'sonner';
|
|
103
|
+
*
|
|
104
|
+
* const sdk = createCommerceSDK({
|
|
105
|
+
* baseUrl: process.env.NEXT_PUBLIC_API_URL!,
|
|
106
|
+
* getToken: () => getCookie('token'),
|
|
107
|
+
* organizationId: 'org_123',
|
|
108
|
+
* toast: { success: toast.success, error: toast.error },
|
|
109
|
+
* navigation: useRouter,
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* // Use the SDK
|
|
113
|
+
* const products = await sdk.product.getAll({ params: { page: 1 } });
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
declare function createCommerceSDK(config: CommerceSDKConfig): CommerceSDKClient;
|
|
117
|
+
/**
|
|
118
|
+
* Initialize SDK configuration without creating a client
|
|
119
|
+
*
|
|
120
|
+
* Useful when you want to configure the SDK globally and use
|
|
121
|
+
* individual API instances directly.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* import { initCommerceSDK, productApi } from '@classytic/commerce-sdk';
|
|
126
|
+
*
|
|
127
|
+
* // Initialize once at app startup
|
|
128
|
+
* initCommerceSDK({
|
|
129
|
+
* baseUrl: process.env.NEXT_PUBLIC_API_URL!,
|
|
130
|
+
* });
|
|
131
|
+
*
|
|
132
|
+
* // Use APIs directly
|
|
133
|
+
* const products = await productApi.getAll({ params: { page: 1 } });
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
declare function initCommerceSDK(config: CommerceSDKConfig): void;
|
|
137
|
+
//#endregion
|
|
138
|
+
export { CommerceSDKClient, CommerceSDKConfig, createCommerceSDK, createCommerceSDK as default, initCommerceSDK };
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { configureSDK } from "./core/api-handler.js";
|
|
2
|
+
import { configureToast } from "./core/react/mutation.factory.js";
|
|
3
|
+
import { configureNavigation } from "./core/react/crud.factory.js";
|
|
4
|
+
import authApi from "./auth/api/user-data.js";
|
|
5
|
+
import { productApi } from "./catalog/api/product.js";
|
|
6
|
+
import { categoryApi } from "./catalog/api/category.js";
|
|
7
|
+
import { sizeGuideApi } from "./catalog/api/size-guide.js";
|
|
8
|
+
import { cartApi } from "./sales/api/cart.js";
|
|
9
|
+
import orderApi from "./sales/api/order.js";
|
|
10
|
+
import { customerApi } from "./sales/api/customer.js";
|
|
11
|
+
import posApi from "./sales/api/pos.js";
|
|
12
|
+
import transactionApi from "./transaction/api/transaction.js";
|
|
13
|
+
import { platformConfigApi } from "./platform/api/config.js";
|
|
14
|
+
import { branchApi } from "./platform/api/branch.js";
|
|
15
|
+
import { userApi } from "./platform/api/user.js";
|
|
16
|
+
import { evaluationApi, programApi, voucherApi } from "./platform/api/promo.js";
|
|
17
|
+
import { cmsApi } from "./content/api/cms.js";
|
|
18
|
+
import { mediaApi } from "./content/api/media.js";
|
|
19
|
+
import { paymentApi } from "./payments/api/payment.js";
|
|
20
|
+
import { financeApi } from "./finance/api/finance.js";
|
|
21
|
+
import { logisticsApi } from "./logistics/api/logistics.js";
|
|
22
|
+
import { availabilityApi } from "./inventory/api/availability.js";
|
|
23
|
+
import { reservationApi } from "./inventory/api/reservation.js";
|
|
24
|
+
import { scanApi } from "./inventory/api/scan.js";
|
|
25
|
+
import { purchaseApi } from "./inventory/api/purchase.js";
|
|
26
|
+
import { transferApi } from "./inventory/api/transfer.js";
|
|
27
|
+
import { requestApi } from "./inventory/api/request.js";
|
|
28
|
+
import { movementApi } from "./inventory/api/movement.js";
|
|
29
|
+
import { adjustmentApi } from "./inventory/api/adjustment.js";
|
|
30
|
+
import { supplierApi } from "./inventory/api/supplier.js";
|
|
31
|
+
import { auditApi, locationApi, nodeApi } from "./inventory/api/warehouse.js";
|
|
32
|
+
|
|
33
|
+
//#region src/client.ts
|
|
34
|
+
/**
|
|
35
|
+
* @classytic/commerce-sdk - SDK Client Factory
|
|
36
|
+
*
|
|
37
|
+
* Create a configured SDK client instance for use in Next.js applications.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* Create a configured Commerce SDK client
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* import { createCommerceSDK } from '@classytic/commerce-sdk';
|
|
45
|
+
* import { useRouter } from 'next/navigation';
|
|
46
|
+
* import { toast } from 'sonner';
|
|
47
|
+
*
|
|
48
|
+
* const sdk = createCommerceSDK({
|
|
49
|
+
* baseUrl: process.env.NEXT_PUBLIC_API_URL!,
|
|
50
|
+
* getToken: () => getCookie('token'),
|
|
51
|
+
* organizationId: 'org_123',
|
|
52
|
+
* toast: { success: toast.success, error: toast.error },
|
|
53
|
+
* navigation: useRouter,
|
|
54
|
+
* });
|
|
55
|
+
*
|
|
56
|
+
* // Use the SDK
|
|
57
|
+
* const products = await sdk.product.getAll({ params: { page: 1 } });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
function createCommerceSDK(config) {
|
|
61
|
+
configureSDK(config);
|
|
62
|
+
if (config.toast) configureToast(config.toast);
|
|
63
|
+
if (config.navigation) configureNavigation(config.navigation);
|
|
64
|
+
return {
|
|
65
|
+
auth: authApi,
|
|
66
|
+
product: productApi,
|
|
67
|
+
category: categoryApi,
|
|
68
|
+
sizeGuide: sizeGuideApi,
|
|
69
|
+
cart: cartApi,
|
|
70
|
+
order: orderApi,
|
|
71
|
+
promo: {
|
|
72
|
+
program: programApi,
|
|
73
|
+
voucher: voucherApi,
|
|
74
|
+
evaluation: evaluationApi
|
|
75
|
+
},
|
|
76
|
+
customer: customerApi,
|
|
77
|
+
user: userApi,
|
|
78
|
+
branch: branchApi,
|
|
79
|
+
media: mediaApi,
|
|
80
|
+
payment: paymentApi,
|
|
81
|
+
transaction: transactionApi,
|
|
82
|
+
finance: financeApi,
|
|
83
|
+
logistics: logisticsApi,
|
|
84
|
+
platform: platformConfigApi,
|
|
85
|
+
cms: cmsApi,
|
|
86
|
+
pos: posApi,
|
|
87
|
+
inventory: {
|
|
88
|
+
availability: availabilityApi,
|
|
89
|
+
reservation: reservationApi,
|
|
90
|
+
scan: scanApi,
|
|
91
|
+
purchase: purchaseApi,
|
|
92
|
+
transfer: transferApi,
|
|
93
|
+
adjustment: adjustmentApi,
|
|
94
|
+
movement: movementApi,
|
|
95
|
+
request: requestApi,
|
|
96
|
+
supplier: supplierApi,
|
|
97
|
+
node: nodeApi,
|
|
98
|
+
location: locationApi,
|
|
99
|
+
audit: auditApi
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Initialize SDK configuration without creating a client
|
|
105
|
+
*
|
|
106
|
+
* Useful when you want to configure the SDK globally and use
|
|
107
|
+
* individual API instances directly.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* import { initCommerceSDK, productApi } from '@classytic/commerce-sdk';
|
|
112
|
+
*
|
|
113
|
+
* // Initialize once at app startup
|
|
114
|
+
* initCommerceSDK({
|
|
115
|
+
* baseUrl: process.env.NEXT_PUBLIC_API_URL!,
|
|
116
|
+
* });
|
|
117
|
+
*
|
|
118
|
+
* // Use APIs directly
|
|
119
|
+
* const products = await productApi.getAll({ params: { page: 1 } });
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
function initCommerceSDK(config) {
|
|
123
|
+
configureSDK(config);
|
|
124
|
+
if (config.toast) configureToast(config.toast);
|
|
125
|
+
if (config.navigation) configureNavigation(config.navigation);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
//#endregion
|
|
129
|
+
export { createCommerceSDK, createCommerceSDK as default, initCommerceSDK };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ApiResponse, BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
import { CMSPage, CMSPagePayload } from "../types/cms.js";
|
|
3
|
+
|
|
4
|
+
//#region src/content/api/cms.d.ts
|
|
5
|
+
declare class CmsApi extends BaseApi<CMSPage> {
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* Get CMS page by slug (public).
|
|
9
|
+
* Returns null data gracefully on 404.
|
|
10
|
+
*/
|
|
11
|
+
getPage({
|
|
12
|
+
slug
|
|
13
|
+
}: {
|
|
14
|
+
slug: string;
|
|
15
|
+
}): Promise<ApiResponse<CMSPage | null>>;
|
|
16
|
+
/** Update CMS page by slug (admin). Auto-creates if missing. */
|
|
17
|
+
updatePage({
|
|
18
|
+
slug,
|
|
19
|
+
data
|
|
20
|
+
}: {
|
|
21
|
+
slug: string;
|
|
22
|
+
data: CMSPagePayload;
|
|
23
|
+
}): Promise<ApiResponse<CMSPage>>;
|
|
24
|
+
}
|
|
25
|
+
declare const cmsApi: CmsApi;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { CmsApi, cmsApi };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
|
|
3
|
+
//#region src/content/api/cms.ts
|
|
4
|
+
/**
|
|
5
|
+
* CMS API — Slug-based content management
|
|
6
|
+
*
|
|
7
|
+
* Endpoints:
|
|
8
|
+
* - GET /api/v1/cms/:slug — Fetch page (public)
|
|
9
|
+
* - PATCH /api/v1/cms/:slug — Update page (admin, auto-creates if missing)
|
|
10
|
+
*/
|
|
11
|
+
var CmsApi = class extends BaseApi {
|
|
12
|
+
constructor() {
|
|
13
|
+
super("cms");
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get CMS page by slug (public).
|
|
17
|
+
* Returns null data gracefully on 404.
|
|
18
|
+
*/
|
|
19
|
+
async getPage({ slug }) {
|
|
20
|
+
if (!slug) throw new Error("Slug is required");
|
|
21
|
+
try {
|
|
22
|
+
return await this.request("GET", `${this.baseUrl}/${slug}`);
|
|
23
|
+
} catch (error) {
|
|
24
|
+
const msg = error?.message || "";
|
|
25
|
+
const jsonError = (error?.json)?.error || "";
|
|
26
|
+
if (msg.includes("Document not found") || jsonError.includes("Document not found") || error?.status === 404) return {
|
|
27
|
+
success: false,
|
|
28
|
+
data: null,
|
|
29
|
+
message: "CMS page not found, using static fallback"
|
|
30
|
+
};
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Update CMS page by slug (admin). Auto-creates if missing. */
|
|
35
|
+
async updatePage({ slug, data }) {
|
|
36
|
+
if (!slug) throw new Error("Slug is required");
|
|
37
|
+
return this.request("PATCH", `${this.baseUrl}/${slug}`, { data });
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const cmsApi = new CmsApi();
|
|
41
|
+
|
|
42
|
+
//#endregion
|
|
43
|
+
export { CmsApi, cmsApi };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ApiResponse, BaseApi, DeleteResponse, PaginatedResponse } from "../../core/api-factory.js";
|
|
2
|
+
import { BulkDeleteResult, Media, MediaFolder, MediaQueryParams, MoveFilesPayload, MoveFilesResult, UpdateMediaPayload } from "../types/media.js";
|
|
3
|
+
|
|
4
|
+
//#region src/content/api/media.d.ts
|
|
5
|
+
declare class MediaApi extends BaseApi<Media, FormData, UpdateMediaPayload> {
|
|
6
|
+
constructor();
|
|
7
|
+
/** POST /media/upload — Single file upload */
|
|
8
|
+
uploadFile({
|
|
9
|
+
file,
|
|
10
|
+
folder,
|
|
11
|
+
alt,
|
|
12
|
+
title
|
|
13
|
+
}: {
|
|
14
|
+
file: File | Blob;
|
|
15
|
+
folder?: MediaFolder;
|
|
16
|
+
alt?: string;
|
|
17
|
+
title?: string;
|
|
18
|
+
}): Promise<ApiResponse<Media>>;
|
|
19
|
+
/** POST /media/upload-multiple — Multiple files (max 20) */
|
|
20
|
+
uploadMultiple({
|
|
21
|
+
files,
|
|
22
|
+
folder
|
|
23
|
+
}: {
|
|
24
|
+
files: (File | Blob)[];
|
|
25
|
+
folder?: MediaFolder;
|
|
26
|
+
}): Promise<ApiResponse<Media[]>>;
|
|
27
|
+
/** GET /media — List with filters */
|
|
28
|
+
list({
|
|
29
|
+
params
|
|
30
|
+
}?: {
|
|
31
|
+
params?: MediaQueryParams;
|
|
32
|
+
}): Promise<PaginatedResponse<Media>>;
|
|
33
|
+
/** GET /media/:id — Single media */
|
|
34
|
+
get({
|
|
35
|
+
id
|
|
36
|
+
}: {
|
|
37
|
+
id: string;
|
|
38
|
+
}): Promise<ApiResponse<Media>>;
|
|
39
|
+
/** PATCH /media/:id — Update metadata (alt, title) */
|
|
40
|
+
updateMedia({
|
|
41
|
+
id,
|
|
42
|
+
data
|
|
43
|
+
}: {
|
|
44
|
+
id: string;
|
|
45
|
+
data: UpdateMediaPayload;
|
|
46
|
+
}): Promise<ApiResponse<Media>>;
|
|
47
|
+
/** DELETE /media/:id — Delete single */
|
|
48
|
+
deleteMedia({
|
|
49
|
+
id
|
|
50
|
+
}: {
|
|
51
|
+
id: string;
|
|
52
|
+
}): Promise<DeleteResponse>;
|
|
53
|
+
/** POST /media/bulk-delete — Delete multiple */
|
|
54
|
+
bulkDelete({
|
|
55
|
+
ids
|
|
56
|
+
}: {
|
|
57
|
+
ids: string[];
|
|
58
|
+
}): Promise<ApiResponse<BulkDeleteResult>>;
|
|
59
|
+
/** POST /media/move — Move files to folder */
|
|
60
|
+
moveToFolder({
|
|
61
|
+
data
|
|
62
|
+
}: {
|
|
63
|
+
data: MoveFilesPayload;
|
|
64
|
+
}): Promise<ApiResponse<MoveFilesResult>>;
|
|
65
|
+
/** GET /media/folders — Get allowed folders */
|
|
66
|
+
getFolders(): Promise<ApiResponse<MediaFolder[]>>;
|
|
67
|
+
/** Get variant URL by name, falls back to original */
|
|
68
|
+
getVariantUrl(media: Media, variantName: string): string;
|
|
69
|
+
getThumbnailUrl(media: Media): string;
|
|
70
|
+
getMediumUrl(media: Media): string;
|
|
71
|
+
}
|
|
72
|
+
declare const mediaApi: MediaApi;
|
|
73
|
+
//#endregion
|
|
74
|
+
export { MediaApi, mediaApi };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { BaseApi } from "../../core/api-factory.js";
|
|
2
|
+
|
|
3
|
+
//#region src/content/api/media.ts
|
|
4
|
+
/**
|
|
5
|
+
* Media API — Image upload and management
|
|
6
|
+
*
|
|
7
|
+
* Features: Auto WebP, variants (thumbnail 150x200, medium 600x800), S3+CDN, max 50MB
|
|
8
|
+
*/
|
|
9
|
+
var MediaApi = class extends BaseApi {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("media", { cache: "no-store" });
|
|
12
|
+
}
|
|
13
|
+
/** POST /media/upload — Single file upload */
|
|
14
|
+
async uploadFile({ file, folder, alt, title }) {
|
|
15
|
+
const formData = new FormData();
|
|
16
|
+
if (folder) formData.append("folder", folder);
|
|
17
|
+
if (alt) formData.append("alt", alt);
|
|
18
|
+
if (title) formData.append("title", title);
|
|
19
|
+
formData.append("file", file);
|
|
20
|
+
return this.request("POST", `${this.baseUrl}/upload`, { data: formData });
|
|
21
|
+
}
|
|
22
|
+
/** POST /media/upload-multiple — Multiple files (max 20) */
|
|
23
|
+
async uploadMultiple({ files, folder }) {
|
|
24
|
+
const formData = new FormData();
|
|
25
|
+
if (folder) formData.append("folder", folder);
|
|
26
|
+
files.forEach((file) => formData.append("files[]", file));
|
|
27
|
+
return this.request("POST", `${this.baseUrl}/upload-multiple`, { data: formData });
|
|
28
|
+
}
|
|
29
|
+
/** GET /media — List with filters */
|
|
30
|
+
async list({ params = {} } = {}) {
|
|
31
|
+
return this.request("GET", this.baseUrl, { params });
|
|
32
|
+
}
|
|
33
|
+
/** GET /media/:id — Single media */
|
|
34
|
+
async get({ id }) {
|
|
35
|
+
if (!id) throw new Error("ID is required");
|
|
36
|
+
return this.request("GET", `${this.baseUrl}/${id}`);
|
|
37
|
+
}
|
|
38
|
+
/** PATCH /media/:id — Update metadata (alt, title) */
|
|
39
|
+
async updateMedia({ id, data }) {
|
|
40
|
+
if (!id) throw new Error("ID is required");
|
|
41
|
+
return this.request("PATCH", `${this.baseUrl}/${id}`, { data });
|
|
42
|
+
}
|
|
43
|
+
/** DELETE /media/:id — Delete single */
|
|
44
|
+
async deleteMedia({ id }) {
|
|
45
|
+
if (!id) throw new Error("ID is required");
|
|
46
|
+
return this.request("DELETE", `${this.baseUrl}/${id}`);
|
|
47
|
+
}
|
|
48
|
+
/** POST /media/bulk-delete — Delete multiple */
|
|
49
|
+
async bulkDelete({ ids }) {
|
|
50
|
+
if (!ids.length) throw new Error("IDs array is required");
|
|
51
|
+
return this.request("POST", `${this.baseUrl}/bulk-delete`, { data: { ids } });
|
|
52
|
+
}
|
|
53
|
+
/** POST /media/move — Move files to folder */
|
|
54
|
+
async moveToFolder({ data }) {
|
|
55
|
+
if (!data.ids.length) throw new Error("IDs array is required");
|
|
56
|
+
if (!data.targetFolder) throw new Error("Target folder is required");
|
|
57
|
+
return this.request("POST", `${this.baseUrl}/move`, { data });
|
|
58
|
+
}
|
|
59
|
+
/** GET /media/folders — Get allowed folders */
|
|
60
|
+
async getFolders() {
|
|
61
|
+
return this.request("GET", `${this.baseUrl}/folders`);
|
|
62
|
+
}
|
|
63
|
+
/** Get variant URL by name, falls back to original */
|
|
64
|
+
getVariantUrl(media, variantName) {
|
|
65
|
+
return media.variants?.find((v) => v.name === variantName)?.url || media.url;
|
|
66
|
+
}
|
|
67
|
+
getThumbnailUrl(media) {
|
|
68
|
+
return this.getVariantUrl(media, "thumbnail");
|
|
69
|
+
}
|
|
70
|
+
getMediumUrl(media) {
|
|
71
|
+
return this.getVariantUrl(media, "medium");
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const mediaApi = new MediaApi();
|
|
75
|
+
|
|
76
|
+
//#endregion
|
|
77
|
+
export { MediaApi, mediaApi };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CMSPage, CMSPagePayload } from "../types/cms.js";
|
|
2
|
+
|
|
3
|
+
//#region src/content/hooks/cms.d.ts
|
|
4
|
+
declare const CMS_KEYS: {
|
|
5
|
+
all: readonly ["cms"];
|
|
6
|
+
page: (slug: string) => readonly ["cms", string];
|
|
7
|
+
};
|
|
8
|
+
interface QueryOptions {
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
staleTime?: number;
|
|
11
|
+
}
|
|
12
|
+
interface UseCMSPageReturn {
|
|
13
|
+
page: CMSPage | null;
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
isFetching: boolean;
|
|
16
|
+
error: Error | null;
|
|
17
|
+
refetch: () => void;
|
|
18
|
+
}
|
|
19
|
+
interface UseCMSUpdateReturn {
|
|
20
|
+
updatePage: (params: {
|
|
21
|
+
slug: string;
|
|
22
|
+
data: CMSPagePayload;
|
|
23
|
+
}) => Promise<unknown>;
|
|
24
|
+
isUpdating: boolean;
|
|
25
|
+
}
|
|
26
|
+
/** Fetch CMS page by slug */
|
|
27
|
+
declare function useCMSPage(slug: string, options?: QueryOptions): UseCMSPageReturn;
|
|
28
|
+
/** Update CMS page (admin) */
|
|
29
|
+
declare function useCMSUpdate(): UseCMSUpdateReturn;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { CMS_KEYS, UseCMSPageReturn, UseCMSUpdateReturn, useCMSPage, useCMSUpdate };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useMutationWithTransition } from "../../core/react/mutation.factory.js";
|
|
4
|
+
import { cmsApi } from "../api/cms.js";
|
|
5
|
+
import { useQuery } from "@tanstack/react-query";
|
|
6
|
+
|
|
7
|
+
//#region src/content/hooks/cms.ts
|
|
8
|
+
/**
|
|
9
|
+
* CMS Hooks — Slug-based content pages
|
|
10
|
+
*/
|
|
11
|
+
const CMS_KEYS = {
|
|
12
|
+
all: ["cms"],
|
|
13
|
+
page: (slug) => [...CMS_KEYS.all, slug]
|
|
14
|
+
};
|
|
15
|
+
/** Fetch CMS page by slug */
|
|
16
|
+
function useCMSPage(slug, options = {}) {
|
|
17
|
+
const { data, isLoading, isFetching, error, refetch } = useQuery({
|
|
18
|
+
queryKey: CMS_KEYS.page(slug),
|
|
19
|
+
queryFn: async () => {
|
|
20
|
+
return (await cmsApi.getPage({ slug })).data ?? null;
|
|
21
|
+
},
|
|
22
|
+
enabled: !!slug && options.enabled !== false,
|
|
23
|
+
staleTime: options.staleTime ?? 300 * 1e3
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
page: data ?? null,
|
|
27
|
+
isLoading,
|
|
28
|
+
isFetching,
|
|
29
|
+
error,
|
|
30
|
+
refetch
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Update CMS page (admin) */
|
|
34
|
+
function useCMSUpdate() {
|
|
35
|
+
const mutation = useMutationWithTransition({
|
|
36
|
+
mutationFn: ({ slug, data }) => cmsApi.updatePage({
|
|
37
|
+
slug,
|
|
38
|
+
data
|
|
39
|
+
}),
|
|
40
|
+
messages: {
|
|
41
|
+
success: "Page saved successfully",
|
|
42
|
+
error: "Failed to save page"
|
|
43
|
+
},
|
|
44
|
+
onSuccess: (_data, { slug }) => {
|
|
45
|
+
if (typeof window !== "undefined") fetch("/revalidate", {
|
|
46
|
+
method: "POST",
|
|
47
|
+
headers: { "Content-Type": "application/json" },
|
|
48
|
+
body: JSON.stringify({
|
|
49
|
+
slug,
|
|
50
|
+
type: "both"
|
|
51
|
+
})
|
|
52
|
+
}).catch(() => {});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
updatePage: mutation.mutateAsync,
|
|
57
|
+
isUpdating: mutation.isPending
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//#endregion
|
|
62
|
+
export { CMS_KEYS, useCMSPage, useCMSUpdate };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { MEDIA_KEYS, UseMediaBulkDeleteReturn, UseMediaListOptions, UseMediaMoveReturn, UseMediaUpdateReturn, UseMediaUploadReturn, getMediaMediumUrl, getMediaThumbnailUrl, getMediaVariantUrl, useMediaBulkDelete, useMediaDetail, useMediaFolders, useMediaList, useMediaMove, useMediaUpdate, useMediaUpload } from "./media.js";
|
|
2
|
+
import { CMS_KEYS, UseCMSPageReturn, UseCMSUpdateReturn, useCMSPage, useCMSUpdate } from "./cms.js";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Media, MediaFolder, MediaQueryParams, MoveFilesPayload, UpdateMediaPayload } from "../types/media.js";
|
|
2
|
+
import * as _tanstack_react_query0 from "@tanstack/react-query";
|
|
3
|
+
import * as _classytic_arc_next_api0 from "@classytic/arc-next/api";
|
|
4
|
+
|
|
5
|
+
//#region src/content/hooks/media.d.ts
|
|
6
|
+
declare const MEDIA_KEYS: {
|
|
7
|
+
all: readonly ["media"];
|
|
8
|
+
lists: () => readonly ["media", "list"];
|
|
9
|
+
list: (params: MediaQueryParams) => readonly ["media", "list", MediaQueryParams];
|
|
10
|
+
details: () => readonly ["media", "detail"];
|
|
11
|
+
detail: (id: string) => readonly ["media", "detail", string];
|
|
12
|
+
folders: () => readonly ["media", "folders"];
|
|
13
|
+
};
|
|
14
|
+
interface UseMediaListOptions {
|
|
15
|
+
enabled?: boolean;
|
|
16
|
+
staleTime?: number;
|
|
17
|
+
gcTime?: number;
|
|
18
|
+
refetchOnWindowFocus?: boolean;
|
|
19
|
+
}
|
|
20
|
+
interface UseMediaUploadReturn {
|
|
21
|
+
upload: (params: {
|
|
22
|
+
files: (File | Blob)[];
|
|
23
|
+
folder?: MediaFolder;
|
|
24
|
+
}) => void;
|
|
25
|
+
uploadAsync: (params: {
|
|
26
|
+
files: (File | Blob)[];
|
|
27
|
+
folder?: MediaFolder;
|
|
28
|
+
}) => Promise<Media[]>;
|
|
29
|
+
isUploading: boolean;
|
|
30
|
+
error: Error | null;
|
|
31
|
+
}
|
|
32
|
+
interface UseMediaBulkDeleteReturn {
|
|
33
|
+
bulkDelete: (ids: string[]) => void;
|
|
34
|
+
bulkDeleteAsync: (ids: string[]) => Promise<unknown>;
|
|
35
|
+
isDeleting: boolean;
|
|
36
|
+
error: Error | null;
|
|
37
|
+
}
|
|
38
|
+
interface UseMediaMoveReturn {
|
|
39
|
+
move: (data: MoveFilesPayload) => void;
|
|
40
|
+
moveAsync: (data: MoveFilesPayload) => Promise<unknown>;
|
|
41
|
+
isMoving: boolean;
|
|
42
|
+
error: Error | null;
|
|
43
|
+
}
|
|
44
|
+
interface UseMediaUpdateReturn {
|
|
45
|
+
update: (params: {
|
|
46
|
+
id: string;
|
|
47
|
+
data: UpdateMediaPayload;
|
|
48
|
+
}) => void;
|
|
49
|
+
updateAsync: (params: {
|
|
50
|
+
id: string;
|
|
51
|
+
data: UpdateMediaPayload;
|
|
52
|
+
}) => Promise<unknown>;
|
|
53
|
+
isUpdating: boolean;
|
|
54
|
+
error: Error | null;
|
|
55
|
+
}
|
|
56
|
+
/** List media with filtering */
|
|
57
|
+
declare function useMediaList(params?: MediaQueryParams, options?: UseMediaListOptions): _tanstack_react_query0.UseQueryResult<_classytic_arc_next_api0.PaginatedResponse<Media>, Error>;
|
|
58
|
+
/** Get single media by ID */
|
|
59
|
+
declare function useMediaDetail(id: string | null, options?: UseMediaListOptions): _tanstack_react_query0.UseQueryResult<_classytic_arc_next_api0.ApiResponse<Media>, Error>;
|
|
60
|
+
/** Get allowed folders */
|
|
61
|
+
declare function useMediaFolders(options?: UseMediaListOptions): _tanstack_react_query0.UseQueryResult<_classytic_arc_next_api0.ApiResponse<MediaFolder[]>, Error>;
|
|
62
|
+
/** Upload multiple media files */
|
|
63
|
+
declare function useMediaUpload(): UseMediaUploadReturn;
|
|
64
|
+
/** Bulk delete media with optimistic update */
|
|
65
|
+
declare function useMediaBulkDelete(): UseMediaBulkDeleteReturn;
|
|
66
|
+
/** Move media to different folder */
|
|
67
|
+
declare function useMediaMove(): UseMediaMoveReturn;
|
|
68
|
+
/** Update media metadata with optimistic update */
|
|
69
|
+
declare function useMediaUpdate(): UseMediaUpdateReturn;
|
|
70
|
+
declare function getMediaVariantUrl(media: Media, variantName: string): string;
|
|
71
|
+
declare function getMediaThumbnailUrl(media: Media): string;
|
|
72
|
+
declare function getMediaMediumUrl(media: Media): string;
|
|
73
|
+
//#endregion
|
|
74
|
+
export { MEDIA_KEYS, UseMediaBulkDeleteReturn, UseMediaListOptions, UseMediaMoveReturn, UseMediaUpdateReturn, UseMediaUploadReturn, getMediaMediumUrl, getMediaThumbnailUrl, getMediaVariantUrl, useMediaBulkDelete, useMediaDetail, useMediaFolders, useMediaList, useMediaMove, useMediaUpdate, useMediaUpload };
|