@rovela-ai/sdk 0.1.79 → 0.1.80

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.
Files changed (47) hide show
  1. package/dist/admin/api/index.d.ts +7 -0
  2. package/dist/admin/api/index.d.ts.map +1 -1
  3. package/dist/admin/api/index.js +8 -0
  4. package/dist/admin/api/index.js.map +1 -1
  5. package/dist/admin/api/settings.d.ts +3 -2
  6. package/dist/admin/api/settings.d.ts.map +1 -1
  7. package/dist/admin/api/settings.js +6 -9
  8. package/dist/admin/api/settings.js.map +1 -1
  9. package/dist/admin/api/tax-zones.d.ts +97 -0
  10. package/dist/admin/api/tax-zones.d.ts.map +1 -0
  11. package/dist/admin/api/tax-zones.js +267 -0
  12. package/dist/admin/api/tax-zones.js.map +1 -0
  13. package/dist/admin/components/PaymentSettings.d.ts +4 -3
  14. package/dist/admin/components/PaymentSettings.d.ts.map +1 -1
  15. package/dist/admin/components/PaymentSettings.js +6 -14
  16. package/dist/admin/components/PaymentSettings.js.map +1 -1
  17. package/dist/admin/components/TaxSettings.d.ts +12 -0
  18. package/dist/admin/components/TaxSettings.d.ts.map +1 -0
  19. package/dist/admin/components/TaxSettings.js +299 -0
  20. package/dist/admin/components/TaxSettings.js.map +1 -0
  21. package/dist/admin/components/index.d.ts +1 -0
  22. package/dist/admin/components/index.d.ts.map +1 -1
  23. package/dist/admin/components/index.js +4 -0
  24. package/dist/admin/components/index.js.map +1 -1
  25. package/dist/admin/index.d.ts +3 -3
  26. package/dist/admin/index.d.ts.map +1 -1
  27. package/dist/admin/index.js +5 -1
  28. package/dist/admin/index.js.map +1 -1
  29. package/dist/admin/types.d.ts +42 -4
  30. package/dist/admin/types.d.ts.map +1 -1
  31. package/dist/checkout/server/create-checkout-session.d.ts +0 -6
  32. package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
  33. package/dist/checkout/server/create-checkout-session.js +79 -54
  34. package/dist/checkout/server/create-checkout-session.js.map +1 -1
  35. package/dist/core/api/settings.d.ts +1 -2
  36. package/dist/core/api/settings.d.ts.map +1 -1
  37. package/dist/core/api/settings.js +2 -4
  38. package/dist/core/api/settings.js.map +1 -1
  39. package/dist/core/db/queries.d.ts +82 -9
  40. package/dist/core/db/queries.d.ts.map +1 -1
  41. package/dist/core/db/queries.js +130 -8
  42. package/dist/core/db/queries.js.map +1 -1
  43. package/dist/core/db/schema.d.ts +218 -19
  44. package/dist/core/db/schema.d.ts.map +1 -1
  45. package/dist/core/db/schema.js +19 -2
  46. package/dist/core/db/schema.js.map +1 -1
  47. package/package.json +1 -1
@@ -68,6 +68,12 @@
68
68
  *
69
69
  * // app/api/admin/shipping/rates/[id]/route.ts
70
70
  * export { updateRate as PUT, deleteRate as DELETE } from '@rovela/sdk/admin/api/shipping'
71
+ *
72
+ * // app/api/admin/tax-zones/route.ts
73
+ * export { getTaxZones as GET, createTaxZone as POST } from '@rovela/sdk/admin/api'
74
+ *
75
+ * // app/api/admin/tax-zones/[id]/route.ts
76
+ * export { getTaxZone as GET, updateTaxZone as PUT, deleteTaxZone as DELETE } from '@rovela/sdk/admin/api'
71
77
  * ```
72
78
  */
73
79
  export { createAdminAuthHandlers } from './auth';
@@ -83,4 +89,5 @@ export { GET as getSettings, PUT as updateSettings } from './settings';
83
89
  export { GET as getStripeStatus } from './stripe-status';
84
90
  export { getCarriers as getShippingCarriers, createCarrier as createShippingCarrier, getCarrier as getShippingCarrier, updateCarrier as updateShippingCarrier, deleteCarrier as deleteShippingCarrier, } from './shipping';
85
91
  export { getZones as getShippingZones, createZone as createShippingZone, getZone as getShippingZone, updateZone as updateShippingZone, deleteZone as deleteShippingZone, createRate as createShippingRate, updateRate as updateShippingRate, deleteRate as deleteShippingRate, validateShippoApiKey, saveShippoApiKey, deleteShippoApiKey, } from './shipping';
92
+ export { getTaxZones, createTaxZone, getTaxZone, updateTaxZone, deleteTaxZone, } from './tax-zones';
86
93
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAGhD,OAAO,EACL,GAAG,IAAI,WAAW,EAClB,IAAI,IAAI,aAAa,EACrB,UAAU,EACV,GAAG,IAAI,aAAa,EACpB,MAAM,IAAI,aAAa,EACvB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,GAAG,IAAI,SAAS,EAChB,QAAQ,EACR,GAAG,IAAI,WAAW,GACnB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGzC,OAAO,EACL,GAAG,IAAI,aAAa,EACpB,IAAI,IAAI,cAAc,EACtB,WAAW,EACX,GAAG,IAAI,cAAc,EACrB,MAAM,IAAI,cAAc,GACzB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,GAAG,IAAI,YAAY,EACnB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,YAAY,CAAA;AAGtE,OAAO,EAAE,GAAG,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EACL,WAAW,IAAI,mBAAmB,EAClC,aAAa,IAAI,qBAAqB,EACtC,UAAU,IAAI,kBAAkB,EAChC,aAAa,IAAI,qBAAqB,EACtC,aAAa,IAAI,qBAAqB,GACvC,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,UAAU,IAAI,kBAAkB,EAChC,OAAO,IAAI,eAAe,EAC1B,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAGhD,OAAO,EACL,GAAG,IAAI,WAAW,EAClB,IAAI,IAAI,aAAa,EACrB,UAAU,EACV,GAAG,IAAI,aAAa,EACpB,MAAM,IAAI,aAAa,EACvB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,GAAG,IAAI,SAAS,EAChB,QAAQ,EACR,GAAG,IAAI,WAAW,GACnB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGzC,OAAO,EACL,GAAG,IAAI,aAAa,EACpB,IAAI,IAAI,cAAc,EACtB,WAAW,EACX,GAAG,IAAI,cAAc,EACrB,MAAM,IAAI,cAAc,GACzB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,GAAG,IAAI,YAAY,EACnB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,YAAY,CAAA;AAGtE,OAAO,EAAE,GAAG,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EACL,WAAW,IAAI,mBAAmB,EAClC,aAAa,IAAI,qBAAqB,EACtC,UAAU,IAAI,kBAAkB,EAChC,aAAa,IAAI,qBAAqB,EACtC,aAAa,IAAI,qBAAqB,GACvC,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,UAAU,IAAI,kBAAkB,EAChC,OAAO,IAAI,eAAe,EAC1B,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAA"}
@@ -68,6 +68,12 @@
68
68
  *
69
69
  * // app/api/admin/shipping/rates/[id]/route.ts
70
70
  * export { updateRate as PUT, deleteRate as DELETE } from '@rovela/sdk/admin/api/shipping'
71
+ *
72
+ * // app/api/admin/tax-zones/route.ts
73
+ * export { getTaxZones as GET, createTaxZone as POST } from '@rovela/sdk/admin/api'
74
+ *
75
+ * // app/api/admin/tax-zones/[id]/route.ts
76
+ * export { getTaxZone as GET, updateTaxZone as PUT, deleteTaxZone as DELETE } from '@rovela/sdk/admin/api'
71
77
  * ```
72
78
  */
73
79
  // Auth
@@ -96,4 +102,6 @@ export { GET as getStripeStatus } from './stripe-status';
96
102
  export { getCarriers as getShippingCarriers, createCarrier as createShippingCarrier, getCarrier as getShippingCarrier, updateCarrier as updateShippingCarrier, deleteCarrier as deleteShippingCarrier, } from './shipping';
97
103
  // Shipping Zones & Rates
98
104
  export { getZones as getShippingZones, createZone as createShippingZone, getZone as getShippingZone, updateZone as updateShippingZone, deleteZone as deleteShippingZone, createRate as createShippingRate, updateRate as updateShippingRate, deleteRate as deleteShippingRate, validateShippoApiKey, saveShippoApiKey, deleteShippoApiKey, } from './shipping';
105
+ // Tax Zones
106
+ export { getTaxZones, createTaxZone, getTaxZone, updateTaxZone, deleteTaxZone, } from './tax-zones';
99
107
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAEH,OAAO;AACP,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAEhD,WAAW;AACX,OAAO,EACL,GAAG,IAAI,WAAW,EAClB,IAAI,IAAI,aAAa,EACrB,UAAU,EACV,GAAG,IAAI,aAAa,EACpB,MAAM,IAAI,aAAa,EACvB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAEnB,SAAS;AACT,OAAO,EACL,GAAG,IAAI,SAAS,EAChB,QAAQ,EACR,GAAG,IAAI,WAAW,GACnB,MAAM,UAAU,CAAA;AAEjB,SAAS;AACT,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,UAAU,CAAA;AAEhD,QAAQ;AACR,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEzC,aAAa;AACb,OAAO,EACL,GAAG,IAAI,aAAa,EACpB,IAAI,IAAI,cAAc,EACtB,WAAW,EACX,GAAG,IAAI,cAAc,EACrB,MAAM,IAAI,cAAc,GACzB,MAAM,cAAc,CAAA;AAErB,YAAY;AACZ,OAAO,EACL,GAAG,IAAI,YAAY,EACnB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAA;AAEpB,oCAAoC;AACpC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,gCAAgC;AAChC,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAEjD,WAAW;AACX,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,YAAY,CAAA;AAEtE,gBAAgB;AAChB,OAAO,EAAE,GAAG,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAExD,oBAAoB;AACpB,OAAO,EACL,WAAW,IAAI,mBAAmB,EAClC,aAAa,IAAI,qBAAqB,EACtC,UAAU,IAAI,kBAAkB,EAChC,aAAa,IAAI,qBAAqB,EACtC,aAAa,IAAI,qBAAqB,GACvC,MAAM,YAAY,CAAA;AAEnB,yBAAyB;AACzB,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,UAAU,IAAI,kBAAkB,EAChC,OAAO,IAAI,eAAe,EAC1B,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAEH,OAAO;AACP,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAEhD,WAAW;AACX,OAAO,EACL,GAAG,IAAI,WAAW,EAClB,IAAI,IAAI,aAAa,EACrB,UAAU,EACV,GAAG,IAAI,aAAa,EACpB,MAAM,IAAI,aAAa,EACvB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAEnB,SAAS;AACT,OAAO,EACL,GAAG,IAAI,SAAS,EAChB,QAAQ,EACR,GAAG,IAAI,WAAW,GACnB,MAAM,UAAU,CAAA;AAEjB,SAAS;AACT,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,UAAU,CAAA;AAEhD,QAAQ;AACR,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEzC,aAAa;AACb,OAAO,EACL,GAAG,IAAI,aAAa,EACpB,IAAI,IAAI,cAAc,EACtB,WAAW,EACX,GAAG,IAAI,cAAc,EACrB,MAAM,IAAI,cAAc,GACzB,MAAM,cAAc,CAAA;AAErB,YAAY;AACZ,OAAO,EACL,GAAG,IAAI,YAAY,EACnB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAA;AAEpB,oCAAoC;AACpC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,gCAAgC;AAChC,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAEjD,WAAW;AACX,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,YAAY,CAAA;AAEtE,gBAAgB;AAChB,OAAO,EAAE,GAAG,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAExD,oBAAoB;AACpB,OAAO,EACL,WAAW,IAAI,mBAAmB,EAClC,aAAa,IAAI,qBAAqB,EACtC,UAAU,IAAI,kBAAkB,EAChC,aAAa,IAAI,qBAAqB,EACtC,aAAa,IAAI,qBAAqB,GACvC,MAAM,YAAY,CAAA;AAEnB,yBAAyB;AACzB,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,UAAU,IAAI,kBAAkB,EAChC,OAAO,IAAI,eAAe,EAC1B,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAEnB,YAAY;AACZ,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAA"}
@@ -35,13 +35,14 @@ export declare function GET(): Promise<NextResponse<SettingsResponse | AdminApiE
35
35
  * "storeEmail": "support@example.com",
36
36
  * "storeCurrency": "USD",
37
37
  * "storeTimezone": "America/New_York",
38
- * "taxEnabled": true,
39
- * "taxRate": 8.5,
38
+ * "taxIncludedInPrices": true,
40
39
  * "shippingEnabled": true,
41
40
  * "freeShippingThreshold": 100,
42
41
  * "shippingCountries": ["US", "CA", "MX"]
43
42
  * }
44
43
  * ```
44
+ *
45
+ * Note: Tax rates are managed via /api/admin/tax-zones (zone-based system)
45
46
  */
46
47
  export declare function PUT(request: NextRequest): Promise<NextResponse<SettingsResponse | AdminApiError>>;
47
48
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/admin/api/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGvD,OAAO,EAAgC,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAM7C,UAAU,gBAAgB;IACxB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B;AAoCD;;;;;GAKG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,CAAC,CA6BnF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,GAAG,CACvB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAuHzD"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/admin/api/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGvD,OAAO,EAAgC,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAM7C,UAAU,gBAAgB;IACxB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B;AAmCD;;;;;GAKG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,CAAC,CA6BnF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,GAAG,CACvB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAoHzD"}
@@ -32,8 +32,7 @@ function getDefaultSettings() {
32
32
  storeEmail: process.env.SUPPORT_EMAIL || process.env.RESEND_FROM_EMAIL || '',
33
33
  storeCurrency: process.env.STORE_CURRENCY || 'USD',
34
34
  storeTimezone: process.env.STORE_TIMEZONE || 'America/New_York',
35
- taxEnabled: false,
36
- taxRate: 0,
35
+ taxIncludedInPrices: true, // Default: prices include tax
37
36
  shippingEnabled: true,
38
37
  freeShippingThreshold: 0,
39
38
  shippingCountries: ['US', 'CA'],
@@ -85,13 +84,14 @@ export async function GET() {
85
84
  * "storeEmail": "support@example.com",
86
85
  * "storeCurrency": "USD",
87
86
  * "storeTimezone": "America/New_York",
88
- * "taxEnabled": true,
89
- * "taxRate": 8.5,
87
+ * "taxIncludedInPrices": true,
90
88
  * "shippingEnabled": true,
91
89
  * "freeShippingThreshold": 100,
92
90
  * "shippingCountries": ["US", "CA", "MX"]
93
91
  * }
94
92
  * ```
93
+ *
94
+ * Note: Tax rates are managed via /api/admin/tax-zones (zone-based system)
95
95
  */
96
96
  export async function PUT(request) {
97
97
  try {
@@ -117,11 +117,8 @@ export async function PUT(request) {
117
117
  if (typeof body.storeTimezone === 'string') {
118
118
  data.storeTimezone = body.storeTimezone.slice(0, 100);
119
119
  }
120
- if (typeof body.taxEnabled === 'boolean') {
121
- data.taxEnabled = body.taxEnabled;
122
- }
123
- if (typeof body.taxRate === 'number') {
124
- data.taxRate = Math.max(0, Math.min(100, body.taxRate));
120
+ if (typeof body.taxIncludedInPrices === 'boolean') {
121
+ data.taxIncludedInPrices = body.taxIncludedInPrices;
125
122
  }
126
123
  if (typeof body.shippingEnabled === 'boolean') {
127
124
  data.shippingEnabled = body.shippingEnabled;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/admin/api/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/admin/api/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @rovela/sdk/admin/api/tax-zones
3
+ *
4
+ * API route handlers for admin tax zone management.
5
+ * Tax zones define tax rates by country/state for zone-based tax calculation.
6
+ *
7
+ * Usage:
8
+ * ```typescript
9
+ * // app/api/admin/tax-zones/route.ts
10
+ * export { getTaxZones as GET, createTaxZone as POST } from '@rovela/sdk/admin/api'
11
+ *
12
+ * // app/api/admin/tax-zones/[id]/route.ts
13
+ * export { getTaxZone as GET, updateTaxZone as PUT, deleteTaxZone as DELETE } from '@rovela/sdk/admin/api'
14
+ * ```
15
+ */
16
+ import { NextRequest, NextResponse } from 'next/server';
17
+ import type { AdminApiError, CrudResult } from '../types';
18
+ import type { TaxZoneData } from '../../core/db/queries';
19
+ /**
20
+ * GET /api/admin/tax-zones
21
+ *
22
+ * List all tax zones ordered by priority (sortOrder ascending).
23
+ * Returns zones with their country/state coverage and tax rates.
24
+ */
25
+ export declare function getTaxZones(): Promise<NextResponse<{
26
+ data: TaxZoneData[];
27
+ } | AdminApiError>>;
28
+ /**
29
+ * POST /api/admin/tax-zones
30
+ *
31
+ * Create a new tax zone.
32
+ *
33
+ * Request Body:
34
+ * ```json
35
+ * {
36
+ * "name": "US - California",
37
+ * "countries": ["US"],
38
+ * "states": ["CA"],
39
+ * "taxRate": 8.25,
40
+ * "isActive": true,
41
+ * "sortOrder": 0
42
+ * }
43
+ * ```
44
+ *
45
+ * Notes:
46
+ * - `countries` is an array of ISO-2 country codes or ['*'] for wildcard
47
+ * - `states` is optional, only used when countries includes 'US'
48
+ * - `sortOrder` determines priority (lower = checked first during matching)
49
+ */
50
+ export declare function createTaxZone(request: NextRequest): Promise<NextResponse<CrudResult<TaxZoneData> | AdminApiError>>;
51
+ /**
52
+ * GET /api/admin/tax-zones/[id]
53
+ *
54
+ * Get a single tax zone by ID.
55
+ */
56
+ export declare function getTaxZone(request: NextRequest, { params }: {
57
+ params: Promise<{
58
+ id: string;
59
+ }>;
60
+ }): Promise<NextResponse<{
61
+ data: TaxZoneData;
62
+ } | AdminApiError>>;
63
+ /**
64
+ * PUT /api/admin/tax-zones/[id]
65
+ *
66
+ * Update a tax zone by ID.
67
+ *
68
+ * Request Body (all fields optional):
69
+ * ```json
70
+ * {
71
+ * "name": "US - California (Updated)",
72
+ * "countries": ["US"],
73
+ * "states": ["CA", "NV"],
74
+ * "taxRate": 8.5,
75
+ * "isActive": true,
76
+ * "sortOrder": 1
77
+ * }
78
+ * ```
79
+ */
80
+ export declare function updateTaxZone(request: NextRequest, { params }: {
81
+ params: Promise<{
82
+ id: string;
83
+ }>;
84
+ }): Promise<NextResponse<CrudResult<TaxZoneData> | AdminApiError>>;
85
+ /**
86
+ * DELETE /api/admin/tax-zones/[id]
87
+ *
88
+ * Delete a tax zone by ID.
89
+ */
90
+ export declare function deleteTaxZone(request: NextRequest, { params }: {
91
+ params: Promise<{
92
+ id: string;
93
+ }>;
94
+ }): Promise<NextResponse<{
95
+ success: boolean;
96
+ } | AdminApiError>>;
97
+ //# sourceMappingURL=tax-zones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax-zones.d.ts","sourceRoot":"","sources":["../../../src/admin/api/tax-zones.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAUvD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAsBxD;;;;;GAKG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAAE,IAAI,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAclG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,CAAC,CAmEhE;AAMD;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAC9C,OAAO,CAAC,YAAY,CAAC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CA+B9D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAC9C,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,CAAC,CA4GhE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAC9C,OAAO,CAAC,YAAY,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAwC7D"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * @rovela/sdk/admin/api/tax-zones
3
+ *
4
+ * API route handlers for admin tax zone management.
5
+ * Tax zones define tax rates by country/state for zone-based tax calculation.
6
+ *
7
+ * Usage:
8
+ * ```typescript
9
+ * // app/api/admin/tax-zones/route.ts
10
+ * export { getTaxZones as GET, createTaxZone as POST } from '@rovela/sdk/admin/api'
11
+ *
12
+ * // app/api/admin/tax-zones/[id]/route.ts
13
+ * export { getTaxZone as GET, updateTaxZone as PUT, deleteTaxZone as DELETE } from '@rovela/sdk/admin/api'
14
+ * ```
15
+ */
16
+ import { NextResponse } from 'next/server';
17
+ import { getServerSession } from 'next-auth';
18
+ import { createAuthOptions } from '../../auth/config';
19
+ import { findTaxZones, findTaxZoneById, createTaxZone as createTaxZoneQuery, updateTaxZone as updateTaxZoneQuery, deleteTaxZone as deleteTaxZoneQuery, } from '../../core/db/queries';
20
+ // =============================================================================
21
+ // Auth Helper
22
+ // =============================================================================
23
+ async function requireAdmin() {
24
+ const session = await getServerSession(createAuthOptions());
25
+ const user = session?.user;
26
+ if (!user?.role || !['owner', 'admin'].includes(user.role)) {
27
+ return NextResponse.json({ error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
28
+ }
29
+ return null; // Auth passed
30
+ }
31
+ // =============================================================================
32
+ // Tax Zones - List & Create
33
+ // =============================================================================
34
+ /**
35
+ * GET /api/admin/tax-zones
36
+ *
37
+ * List all tax zones ordered by priority (sortOrder ascending).
38
+ * Returns zones with their country/state coverage and tax rates.
39
+ */
40
+ export async function getTaxZones() {
41
+ const authError = await requireAdmin();
42
+ if (authError)
43
+ return authError;
44
+ try {
45
+ const zones = await findTaxZones();
46
+ return NextResponse.json({ data: zones });
47
+ }
48
+ catch (error) {
49
+ console.error('[Tax Zones API] GET error:', error);
50
+ return NextResponse.json({ error: 'Failed to fetch tax zones', code: 'INTERNAL_ERROR' }, { status: 500 });
51
+ }
52
+ }
53
+ /**
54
+ * POST /api/admin/tax-zones
55
+ *
56
+ * Create a new tax zone.
57
+ *
58
+ * Request Body:
59
+ * ```json
60
+ * {
61
+ * "name": "US - California",
62
+ * "countries": ["US"],
63
+ * "states": ["CA"],
64
+ * "taxRate": 8.25,
65
+ * "isActive": true,
66
+ * "sortOrder": 0
67
+ * }
68
+ * ```
69
+ *
70
+ * Notes:
71
+ * - `countries` is an array of ISO-2 country codes or ['*'] for wildcard
72
+ * - `states` is optional, only used when countries includes 'US'
73
+ * - `sortOrder` determines priority (lower = checked first during matching)
74
+ */
75
+ export async function createTaxZone(request) {
76
+ const authError = await requireAdmin();
77
+ if (authError)
78
+ return authError;
79
+ try {
80
+ const body = await request.json();
81
+ // Validate required fields
82
+ if (!body.name || typeof body.name !== 'string') {
83
+ return NextResponse.json({ error: 'Name is required', code: 'VALIDATION_ERROR' }, { status: 400 });
84
+ }
85
+ if (!Array.isArray(body.countries) || body.countries.length === 0) {
86
+ return NextResponse.json({ error: 'Countries array is required and must not be empty', code: 'VALIDATION_ERROR' }, { status: 400 });
87
+ }
88
+ if (typeof body.taxRate !== 'number' || body.taxRate < 0 || body.taxRate > 100) {
89
+ return NextResponse.json({ error: 'Tax rate must be a number between 0 and 100', code: 'VALIDATION_ERROR' }, { status: 400 });
90
+ }
91
+ // Normalize country codes to uppercase
92
+ const countries = body.countries.map((c) => c.toUpperCase().trim());
93
+ // Normalize state codes if provided
94
+ const states = Array.isArray(body.states)
95
+ ? body.states.map((s) => s.toUpperCase().trim()).filter((s) => s.length > 0)
96
+ : [];
97
+ const zone = await createTaxZoneQuery({
98
+ name: body.name.trim().slice(0, 100),
99
+ countries,
100
+ states,
101
+ taxRate: body.taxRate,
102
+ isActive: body.isActive !== false, // Default true
103
+ sortOrder: typeof body.sortOrder === 'number' ? body.sortOrder : 0,
104
+ });
105
+ // Convert to TaxZoneData format
106
+ const zoneData = {
107
+ id: zone.id,
108
+ name: zone.name,
109
+ countries: zone.countries || [],
110
+ states: zone.states || [],
111
+ taxRate: parseFloat(String(zone.taxRate)),
112
+ isActive: zone.isActive,
113
+ sortOrder: zone.sortOrder,
114
+ createdAt: zone.createdAt,
115
+ updatedAt: zone.updatedAt,
116
+ };
117
+ return NextResponse.json({ success: true, data: zoneData }, { status: 201 });
118
+ }
119
+ catch (error) {
120
+ console.error('[Tax Zones API] POST error:', error);
121
+ return NextResponse.json({ error: 'Failed to create tax zone', code: 'INTERNAL_ERROR' }, { status: 500 });
122
+ }
123
+ }
124
+ // =============================================================================
125
+ // Tax Zones - Get, Update, Delete by ID
126
+ // =============================================================================
127
+ /**
128
+ * GET /api/admin/tax-zones/[id]
129
+ *
130
+ * Get a single tax zone by ID.
131
+ */
132
+ export async function getTaxZone(request, { params }) {
133
+ const authError = await requireAdmin();
134
+ if (authError)
135
+ return authError;
136
+ try {
137
+ const { id } = await params;
138
+ if (!id) {
139
+ return NextResponse.json({ error: 'Zone ID is required', code: 'VALIDATION_ERROR' }, { status: 400 });
140
+ }
141
+ const zone = await findTaxZoneById(id);
142
+ if (!zone) {
143
+ return NextResponse.json({ error: 'Tax zone not found', code: 'NOT_FOUND' }, { status: 404 });
144
+ }
145
+ return NextResponse.json({ data: zone });
146
+ }
147
+ catch (error) {
148
+ console.error('[Tax Zones API] GET by ID error:', error);
149
+ return NextResponse.json({ error: 'Failed to fetch tax zone', code: 'INTERNAL_ERROR' }, { status: 500 });
150
+ }
151
+ }
152
+ /**
153
+ * PUT /api/admin/tax-zones/[id]
154
+ *
155
+ * Update a tax zone by ID.
156
+ *
157
+ * Request Body (all fields optional):
158
+ * ```json
159
+ * {
160
+ * "name": "US - California (Updated)",
161
+ * "countries": ["US"],
162
+ * "states": ["CA", "NV"],
163
+ * "taxRate": 8.5,
164
+ * "isActive": true,
165
+ * "sortOrder": 1
166
+ * }
167
+ * ```
168
+ */
169
+ export async function updateTaxZone(request, { params }) {
170
+ const authError = await requireAdmin();
171
+ if (authError)
172
+ return authError;
173
+ try {
174
+ const { id } = await params;
175
+ const body = await request.json();
176
+ if (!id) {
177
+ return NextResponse.json({ error: 'Zone ID is required', code: 'VALIDATION_ERROR' }, { status: 400 });
178
+ }
179
+ // Check if zone exists
180
+ const existing = await findTaxZoneById(id);
181
+ if (!existing) {
182
+ return NextResponse.json({ error: 'Tax zone not found', code: 'NOT_FOUND' }, { status: 404 });
183
+ }
184
+ // Build update data
185
+ const updateData = {};
186
+ if (typeof body.name === 'string') {
187
+ updateData.name = body.name.trim().slice(0, 100);
188
+ }
189
+ if (Array.isArray(body.countries)) {
190
+ if (body.countries.length === 0) {
191
+ return NextResponse.json({ error: 'Countries array must not be empty', code: 'VALIDATION_ERROR' }, { status: 400 });
192
+ }
193
+ updateData.countries = body.countries.map((c) => c.toUpperCase().trim());
194
+ }
195
+ if (Array.isArray(body.states)) {
196
+ updateData.states = body.states.map((s) => s.toUpperCase().trim()).filter((s) => s.length > 0);
197
+ }
198
+ if (typeof body.taxRate === 'number') {
199
+ if (body.taxRate < 0 || body.taxRate > 100) {
200
+ return NextResponse.json({ error: 'Tax rate must be between 0 and 100', code: 'VALIDATION_ERROR' }, { status: 400 });
201
+ }
202
+ updateData.taxRate = body.taxRate;
203
+ }
204
+ if (typeof body.isActive === 'boolean') {
205
+ updateData.isActive = body.isActive;
206
+ }
207
+ if (typeof body.sortOrder === 'number') {
208
+ updateData.sortOrder = body.sortOrder;
209
+ }
210
+ // Check if there's anything to update
211
+ if (Object.keys(updateData).length === 0) {
212
+ return NextResponse.json({ error: 'No valid fields to update', code: 'VALIDATION_ERROR' }, { status: 400 });
213
+ }
214
+ const zone = await updateTaxZoneQuery(id, updateData);
215
+ if (!zone) {
216
+ return NextResponse.json({ error: 'Failed to update tax zone', code: 'INTERNAL_ERROR' }, { status: 500 });
217
+ }
218
+ // Convert to TaxZoneData format
219
+ const zoneData = {
220
+ id: zone.id,
221
+ name: zone.name,
222
+ countries: zone.countries || [],
223
+ states: zone.states || [],
224
+ taxRate: parseFloat(String(zone.taxRate)),
225
+ isActive: zone.isActive,
226
+ sortOrder: zone.sortOrder,
227
+ createdAt: zone.createdAt,
228
+ updatedAt: zone.updatedAt,
229
+ };
230
+ return NextResponse.json({ success: true, data: zoneData });
231
+ }
232
+ catch (error) {
233
+ console.error('[Tax Zones API] PUT error:', error);
234
+ return NextResponse.json({ error: 'Failed to update tax zone', code: 'INTERNAL_ERROR' }, { status: 500 });
235
+ }
236
+ }
237
+ /**
238
+ * DELETE /api/admin/tax-zones/[id]
239
+ *
240
+ * Delete a tax zone by ID.
241
+ */
242
+ export async function deleteTaxZone(request, { params }) {
243
+ const authError = await requireAdmin();
244
+ if (authError)
245
+ return authError;
246
+ try {
247
+ const { id } = await params;
248
+ if (!id) {
249
+ return NextResponse.json({ error: 'Zone ID is required', code: 'VALIDATION_ERROR' }, { status: 400 });
250
+ }
251
+ // Check if zone exists
252
+ const existing = await findTaxZoneById(id);
253
+ if (!existing) {
254
+ return NextResponse.json({ error: 'Tax zone not found', code: 'NOT_FOUND' }, { status: 404 });
255
+ }
256
+ const deleted = await deleteTaxZoneQuery(id);
257
+ if (!deleted) {
258
+ return NextResponse.json({ error: 'Failed to delete tax zone', code: 'INTERNAL_ERROR' }, { status: 500 });
259
+ }
260
+ return NextResponse.json({ success: true });
261
+ }
262
+ catch (error) {
263
+ console.error('[Tax Zones API] DELETE error:', error);
264
+ return NextResponse.json({ error: 'Failed to delete tax zone', code: 'INTERNAL_ERROR' }, { status: 500 });
265
+ }
266
+ }
267
+ //# sourceMappingURL=tax-zones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax-zones.js","sourceRoot":"","sources":["../../../src/admin/api/tax-zones.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import type { PaymentSettingsProps } from '../types';
2
2
  /**
3
- * PaymentSettings - Self-contained payment and tax configuration component.
3
+ * PaymentSettings - Self-contained payment configuration component.
4
4
  *
5
5
  * Features:
6
6
  * - Stripe connection status display
7
7
  * - Currency selection (from database)
8
- * - Tax configuration with Stripe Tax auto-detection
9
- * - Mutual exclusivity: if Stripe Tax active, manual tax is hidden
8
+ *
9
+ * Note: Tax configuration is now handled by the TaxSettings component
10
+ * which provides zone-based tax rates per country/state.
10
11
  */
11
12
  export declare function PaymentSettings({ className }: PaymentSettingsProps): import("react/jsx-runtime").JSX.Element;
12
13
  //# sourceMappingURL=PaymentSettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentSettings.d.ts","sourceRoot":"","sources":["../../../src/admin/components/PaymentSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAuC,MAAM,UAAU,CAAA;AA0CzF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAwXlE"}
1
+ {"version":3,"file":"PaymentSettings.d.ts","sourceRoot":"","sources":["../../../src/admin/components/PaymentSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAuC,MAAM,UAAU,CAAA;AAwCzF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CA6OlE"}