@rovela-ai/sdk 0.1.55 → 0.1.57

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 (79) hide show
  1. package/dist/admin/api/index.d.ts +1 -1
  2. package/dist/admin/api/index.d.ts.map +1 -1
  3. package/dist/admin/api/index.js +1 -1
  4. package/dist/admin/api/index.js.map +1 -1
  5. package/dist/admin/api/orders.d.ts +32 -0
  6. package/dist/admin/api/orders.d.ts.map +1 -1
  7. package/dist/admin/api/orders.js +122 -1
  8. package/dist/admin/api/orders.js.map +1 -1
  9. package/dist/admin/api/shipping.d.ts +105 -3
  10. package/dist/admin/api/shipping.d.ts.map +1 -1
  11. package/dist/admin/api/shipping.js +277 -3
  12. package/dist/admin/api/shipping.js.map +1 -1
  13. package/dist/admin/components/OrderDetails.d.ts.map +1 -1
  14. package/dist/admin/components/OrderDetails.js +71 -3
  15. package/dist/admin/components/OrderDetails.js.map +1 -1
  16. package/dist/admin/components/ShippingSettings.d.ts.map +1 -1
  17. package/dist/admin/components/ShippingSettings.js +220 -28
  18. package/dist/admin/components/ShippingSettings.js.map +1 -1
  19. package/dist/admin/index.d.ts +1 -1
  20. package/dist/admin/index.d.ts.map +1 -1
  21. package/dist/admin/index.js.map +1 -1
  22. package/dist/admin/types.d.ts +111 -0
  23. package/dist/admin/types.d.ts.map +1 -1
  24. package/dist/cart/components/CartDrawer.d.ts.map +1 -1
  25. package/dist/cart/components/CartDrawer.js +11 -2
  26. package/dist/cart/components/CartDrawer.js.map +1 -1
  27. package/dist/checkout/api/index.d.ts +1 -0
  28. package/dist/checkout/api/index.d.ts.map +1 -1
  29. package/dist/checkout/api/index.js +1 -0
  30. package/dist/checkout/api/index.js.map +1 -1
  31. package/dist/checkout/api/shipping.d.ts +34 -0
  32. package/dist/checkout/api/shipping.d.ts.map +1 -0
  33. package/dist/checkout/api/shipping.js +187 -0
  34. package/dist/checkout/api/shipping.js.map +1 -0
  35. package/dist/checkout/components/CheckoutFlow.d.ts +53 -0
  36. package/dist/checkout/components/CheckoutFlow.d.ts.map +1 -0
  37. package/dist/checkout/components/CheckoutFlow.js +232 -0
  38. package/dist/checkout/components/CheckoutFlow.js.map +1 -0
  39. package/dist/checkout/components/ShippingOptions.d.ts +51 -0
  40. package/dist/checkout/components/ShippingOptions.d.ts.map +1 -0
  41. package/dist/checkout/components/ShippingOptions.js +93 -0
  42. package/dist/checkout/components/ShippingOptions.js.map +1 -0
  43. package/dist/checkout/components/index.d.ts +2 -0
  44. package/dist/checkout/components/index.d.ts.map +1 -1
  45. package/dist/checkout/components/index.js +2 -0
  46. package/dist/checkout/components/index.js.map +1 -1
  47. package/dist/checkout/hooks/useCheckout.d.ts.map +1 -1
  48. package/dist/checkout/hooks/useCheckout.js +5 -0
  49. package/dist/checkout/hooks/useCheckout.js.map +1 -1
  50. package/dist/checkout/index.d.ts +2 -2
  51. package/dist/checkout/index.d.ts.map +1 -1
  52. package/dist/checkout/index.js +1 -1
  53. package/dist/checkout/index.js.map +1 -1
  54. package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
  55. package/dist/checkout/server/create-checkout-session.js +155 -35
  56. package/dist/checkout/server/create-checkout-session.js.map +1 -1
  57. package/dist/checkout/types.d.ts +178 -4
  58. package/dist/checkout/types.d.ts.map +1 -1
  59. package/dist/core/db/index.d.ts +1 -1
  60. package/dist/core/db/index.d.ts.map +1 -1
  61. package/dist/core/db/index.js +1 -1
  62. package/dist/core/db/index.js.map +1 -1
  63. package/dist/core/db/queries.d.ts +228 -5
  64. package/dist/core/db/queries.d.ts.map +1 -1
  65. package/dist/core/db/queries.js +223 -8
  66. package/dist/core/db/queries.js.map +1 -1
  67. package/dist/core/db/schema.d.ts +394 -2
  68. package/dist/core/db/schema.d.ts.map +1 -1
  69. package/dist/core/db/schema.js +42 -1
  70. package/dist/core/db/schema.js.map +1 -1
  71. package/dist/shipping/index.d.ts +8 -0
  72. package/dist/shipping/index.d.ts.map +1 -0
  73. package/dist/shipping/index.js +8 -0
  74. package/dist/shipping/index.js.map +1 -0
  75. package/dist/shipping/shippo.d.ts +85 -0
  76. package/dist/shipping/shippo.d.ts.map +1 -0
  77. package/dist/shipping/shippo.js +270 -0
  78. package/dist/shipping/shippo.js.map +1 -0
  79. package/package.json +1 -1
@@ -81,5 +81,5 @@ export { POST as setupAdmin } from './setup';
81
81
  export { GET as checkAdminExists } from './check';
82
82
  export { GET as getSettings, PUT as updateSettings } from './settings';
83
83
  export { GET as getStripeStatus } from './stripe-status';
84
- 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, } from './shipping';
84
+ 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, } from './shipping';
85
85
  //# 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,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,GACjC,MAAM,YAAY,CAAA"}
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,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,GACrB,MAAM,YAAY,CAAA"}
@@ -93,5 +93,5 @@ export { GET as getSettings, PUT as updateSettings } from './settings';
93
93
  // Stripe Status
94
94
  export { GET as getStripeStatus } from './stripe-status';
95
95
  // Shipping
96
- 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, } from './shipping';
96
+ 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, } from './shipping';
97
97
  //# 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,WAAW;AACX,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,GACjC,MAAM,YAAY,CAAA"}
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,WAAW;AACX,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,GACrB,MAAM,YAAY,CAAA"}
@@ -13,6 +13,7 @@
13
13
  * ```
14
14
  */
15
15
  import { NextRequest, NextResponse } from 'next/server';
16
+ import type { ShippoRate } from '../types';
16
17
  import type { AdminApiError, PaginatedResponse } from '../types';
17
18
  /**
18
19
  * GET /api/admin/orders
@@ -56,4 +57,35 @@ export declare function PUT(request: NextRequest, { params }: {
56
57
  success: boolean;
57
58
  data?: unknown;
58
59
  } | AdminApiError>>;
60
+ /**
61
+ * GET /api/admin/orders/[id]/shippo-rates
62
+ *
63
+ * Get available Shippo carrier rates for an order.
64
+ * Requires order to have a shipping address.
65
+ */
66
+ export declare function getShippoRatesForOrder(request: NextRequest, { params }: {
67
+ params: Promise<{
68
+ id: string;
69
+ }>;
70
+ }): Promise<NextResponse<{
71
+ rates: ShippoRate[];
72
+ } | AdminApiError>>;
73
+ /**
74
+ * POST /api/admin/orders/[id]/ship-with-shippo
75
+ *
76
+ * Purchase a shipping label from Shippo and update order with tracking info.
77
+ *
78
+ * Body:
79
+ * - rateId: Shippo rate object ID to purchase
80
+ * - notifyCustomer: boolean (default true)
81
+ */
82
+ export declare function shipWithShippo(request: NextRequest, { params }: {
83
+ params: Promise<{
84
+ id: string;
85
+ }>;
86
+ }): Promise<NextResponse<{
87
+ success: boolean;
88
+ trackingNumber?: string;
89
+ labelUrl?: string;
90
+ } | AdminApiError>>;
59
91
  //# sourceMappingURL=orders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../src/admin/api/orders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAgBvD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AA4BhE;;;;;;;;;GASG;AACH,wBAAsB,GAAG,CACvB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAuCnE;AAMD;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,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,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAuB1D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,GAAG,CACvB,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,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAyD7E"}
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../src/admin/api/orders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAevD,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,UAAU,CAAA;AAQzD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AA4BhE;;;;;;;;;GASG;AACH,wBAAsB,GAAG,CACvB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAuCnE;AAMD;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,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,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAuB1D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,GAAG,CACvB,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,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAyD7E;AAwGD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,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,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CA+EhE;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,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,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAmFzG"}
@@ -15,7 +15,8 @@
15
15
  import { NextResponse } from 'next/server';
16
16
  import { getServerSession } from 'next-auth';
17
17
  import { createAuthOptions } from '../../auth/config';
18
- import { findOrders, findOrderById, countOrders, updateOrderStatus, } from '../../core/db/queries';
18
+ import { findOrders, findOrderById, countOrders, updateOrderStatus, updateOrderShipping, findSettings, } from '../../core/db/queries';
19
+ import { getShippoRates, purchaseShippoLabel, } from '../../shipping/shippo';
19
20
  import { sendOrderShippedAsync, sendOrderDeliveredAsync, sendOrderCancelledAsync, formatPrice, formatOrderNumber, } from '../../emails';
20
21
  // =============================================================================
21
22
  // Auth Helper
@@ -223,4 +224,124 @@ function getEstimatedDelivery() {
223
224
  date.setDate(date.getDate() + 7);
224
225
  return date.toLocaleDateString();
225
226
  }
227
+ // =============================================================================
228
+ // Shippo Integration Endpoints
229
+ // =============================================================================
230
+ /**
231
+ * GET /api/admin/orders/[id]/shippo-rates
232
+ *
233
+ * Get available Shippo carrier rates for an order.
234
+ * Requires order to have a shipping address.
235
+ */
236
+ export async function getShippoRatesForOrder(request, { params }) {
237
+ const authError = await requireAdmin();
238
+ if (authError)
239
+ return authError;
240
+ try {
241
+ const { id } = await params;
242
+ // Get order with shipping address
243
+ const order = await findOrderById(id);
244
+ if (!order) {
245
+ return NextResponse.json({ error: 'Order not found', code: 'NOT_FOUND' }, { status: 404 });
246
+ }
247
+ // Validate order has shipping address
248
+ const shippingAddress = order.shippingAddress;
249
+ if (!shippingAddress) {
250
+ return NextResponse.json({ error: 'Order has no shipping address', code: 'VALIDATION_ERROR' }, { status: 400 });
251
+ }
252
+ // Get store settings for ship-from address and parcel dimensions
253
+ const settings = await findSettings();
254
+ if (!settings?.shippoFromAddress) {
255
+ return NextResponse.json({ error: 'Shippo ship-from address not configured', code: 'VALIDATION_ERROR' }, { status: 400 });
256
+ }
257
+ if (!settings?.shippoDefaultParcel) {
258
+ return NextResponse.json({ error: 'Shippo default parcel not configured', code: 'VALIDATION_ERROR' }, { status: 400 });
259
+ }
260
+ // Build "to" address from order shipping address
261
+ const toAddress = {
262
+ name: shippingAddress.name || `${shippingAddress.firstName || ''} ${shippingAddress.lastName || ''}`.trim() || 'Customer',
263
+ street1: shippingAddress.street1 || shippingAddress.line1 || '',
264
+ city: shippingAddress.city,
265
+ state: shippingAddress.state,
266
+ zip: shippingAddress.postalCode,
267
+ country: shippingAddress.country || 'US',
268
+ phone: shippingAddress.phone,
269
+ };
270
+ // Fetch rates from Shippo
271
+ const rates = await getShippoRates({
272
+ fromAddress: settings.shippoFromAddress,
273
+ toAddress,
274
+ parcel: settings.shippoDefaultParcel,
275
+ });
276
+ return NextResponse.json({ rates });
277
+ }
278
+ catch (error) {
279
+ console.error('[Admin Orders API] getShippoRatesForOrder error:', error);
280
+ return NextResponse.json({ error: 'Failed to fetch Shippo rates', code: 'INTERNAL_ERROR' }, { status: 500 });
281
+ }
282
+ }
283
+ /**
284
+ * POST /api/admin/orders/[id]/ship-with-shippo
285
+ *
286
+ * Purchase a shipping label from Shippo and update order with tracking info.
287
+ *
288
+ * Body:
289
+ * - rateId: Shippo rate object ID to purchase
290
+ * - notifyCustomer: boolean (default true)
291
+ */
292
+ export async function shipWithShippo(request, { params }) {
293
+ const authError = await requireAdmin();
294
+ if (authError)
295
+ return authError;
296
+ try {
297
+ const { id } = await params;
298
+ const body = await request.json();
299
+ // Validate rateId
300
+ if (!body.rateId || typeof body.rateId !== 'string') {
301
+ return NextResponse.json({ error: 'rateId is required', code: 'VALIDATION_ERROR' }, { status: 400 });
302
+ }
303
+ // Get order
304
+ const order = await findOrderById(id);
305
+ if (!order) {
306
+ return NextResponse.json({ error: 'Order not found', code: 'NOT_FOUND' }, { status: 404 });
307
+ }
308
+ // Validate order status (should be 'paid' to ship)
309
+ if (order.status !== 'paid') {
310
+ return NextResponse.json({ error: `Cannot ship order with status '${order.status}'. Order must be 'paid'.`, code: 'VALIDATION_ERROR' }, { status: 400 });
311
+ }
312
+ // Purchase label from Shippo
313
+ const labelResult = await purchaseShippoLabel({
314
+ rateId: body.rateId,
315
+ labelFormat: body.labelFormat || 'PDF_4x6',
316
+ });
317
+ // Update order with shipping info and set status to 'shipped'
318
+ const updatedOrder = await updateOrderShipping(id, {
319
+ trackingNumber: labelResult.trackingNumber,
320
+ trackingUrl: labelResult.trackingUrl,
321
+ carrier: labelResult.carrier,
322
+ labelUrl: labelResult.labelUrl,
323
+ shippoRateId: body.rateId,
324
+ shippingMethod: `${labelResult.carrier.toUpperCase()} Label`,
325
+ status: 'shipped',
326
+ });
327
+ if (!updatedOrder) {
328
+ return NextResponse.json({ error: 'Failed to update order', code: 'INTERNAL_ERROR' }, { status: 500 });
329
+ }
330
+ // Send shipped notification email if requested
331
+ const notifyCustomer = body.notifyCustomer !== false;
332
+ if (notifyCustomer && order.email) {
333
+ await sendStatusNotification('shipped', order.email, order.id, order.total, labelResult.trackingNumber, labelResult.trackingUrl);
334
+ }
335
+ return NextResponse.json({
336
+ success: true,
337
+ trackingNumber: labelResult.trackingNumber,
338
+ labelUrl: labelResult.labelUrl,
339
+ });
340
+ }
341
+ catch (error) {
342
+ console.error('[Admin Orders API] shipWithShippo error:', error);
343
+ const errorMessage = error instanceof Error ? error.message : 'Failed to ship with Shippo';
344
+ return NextResponse.json({ error: errorMessage, code: 'INTERNAL_ERROR' }, { status: 500 });
345
+ }
346
+ }
226
347
  //# sourceMappingURL=orders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../src/admin/api/orders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../src/admin/api/orders.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,17 @@
1
1
  /**
2
2
  * @rovela/sdk/admin/api/shipping
3
3
  *
4
- * API route handlers for admin shipping zone and rate management.
4
+ * API route handlers for admin shipping carrier, zone, and rate management.
5
+ * Implements a carrier-first hierarchy: Carrier → Zone → Rate
5
6
  *
6
7
  * Usage:
7
8
  * ```typescript
9
+ * // app/api/admin/shipping/carriers/route.ts
10
+ * export { getCarriers as GET, createCarrier as POST } from '@rovela/sdk/admin/api/shipping'
11
+ *
12
+ * // app/api/admin/shipping/carriers/[id]/route.ts
13
+ * export { getCarrier as GET, updateCarrier as PUT, deleteCarrier as DELETE } from '@rovela/sdk/admin/api/shipping'
14
+ *
8
15
  * // app/api/admin/shipping/zones/route.ts
9
16
  * export { getZones as GET, createZone as POST } from '@rovela/sdk/admin/api/shipping'
10
17
  *
@@ -19,7 +26,80 @@
19
26
  * ```
20
27
  */
21
28
  import { NextRequest, NextResponse } from 'next/server';
22
- import type { AdminApiError, CrudResult, ShippingZoneData } from '../types';
29
+ import type { AdminApiError, CrudResult, ShippingCarrierData, ShippingZoneData } from '../types';
30
+ /**
31
+ * GET /api/admin/shipping/carriers
32
+ *
33
+ * List all shipping carriers with their zones and rates.
34
+ * Returns carriers sorted by sortOrder, each with nested zones/rates.
35
+ */
36
+ export declare function getCarriers(): Promise<NextResponse<{
37
+ data: ShippingCarrierData[];
38
+ } | AdminApiError>>;
39
+ /**
40
+ * POST /api/admin/shipping/carriers
41
+ *
42
+ * Create a new shipping carrier.
43
+ * Store owners define their own carriers (e.g., "Standard Delivery", "Local Pickup").
44
+ *
45
+ * Request Body:
46
+ * ```json
47
+ * {
48
+ * "name": "Standard Delivery",
49
+ * "code": "standard",
50
+ * "description": "Regular shipping via postal service",
51
+ * "isActive": true,
52
+ * "sortOrder": 0
53
+ * }
54
+ * ```
55
+ */
56
+ export declare function createCarrier(request: NextRequest): Promise<NextResponse<CrudResult<unknown> | AdminApiError>>;
57
+ /**
58
+ * GET /api/admin/shipping/carriers/[id]
59
+ *
60
+ * Get a single shipping carrier by ID with its zones and rates.
61
+ */
62
+ export declare function getCarrier(request: NextRequest, { params }: {
63
+ params: Promise<{
64
+ id: string;
65
+ }>;
66
+ }): Promise<NextResponse<{
67
+ data: ShippingCarrierData;
68
+ } | AdminApiError>>;
69
+ /**
70
+ * PUT /api/admin/shipping/carriers/[id]
71
+ *
72
+ * Update a shipping carrier by ID.
73
+ *
74
+ * Request Body:
75
+ * ```json
76
+ * {
77
+ * "name": "Express Delivery",
78
+ * "code": "express",
79
+ * "description": "Fast shipping option",
80
+ * "isActive": true,
81
+ * "sortOrder": 1
82
+ * }
83
+ * ```
84
+ */
85
+ export declare function updateCarrier(request: NextRequest, { params }: {
86
+ params: Promise<{
87
+ id: string;
88
+ }>;
89
+ }): Promise<NextResponse<CrudResult<unknown> | AdminApiError>>;
90
+ /**
91
+ * DELETE /api/admin/shipping/carriers/[id]
92
+ *
93
+ * Delete a shipping carrier by ID.
94
+ * This cascades to delete all zones and rates under this carrier.
95
+ */
96
+ export declare function deleteCarrier(request: NextRequest, { params }: {
97
+ params: Promise<{
98
+ id: string;
99
+ }>;
100
+ }): Promise<NextResponse<{
101
+ success: boolean;
102
+ } | AdminApiError>>;
23
103
  /**
24
104
  * GET /api/admin/shipping/zones
25
105
  *
@@ -31,11 +111,13 @@ export declare function getZones(): Promise<NextResponse<{
31
111
  /**
32
112
  * POST /api/admin/shipping/zones
33
113
  *
34
- * Create a new shipping zone.
114
+ * Create a new shipping zone under a carrier.
115
+ * Zones must belong to a carrier (carrier-first architecture).
35
116
  *
36
117
  * Request Body:
37
118
  * ```json
38
119
  * {
120
+ * "carrierId": "uuid",
39
121
  * "name": "Domestic",
40
122
  * "countries": ["US", "CA"],
41
123
  * "isActive": true,
@@ -60,10 +142,12 @@ export declare function getZone(request: NextRequest, { params }: {
60
142
  * PUT /api/admin/shipping/zones/[id]
61
143
  *
62
144
  * Update a shipping zone by ID.
145
+ * Can move zone to a different carrier by changing carrierId.
63
146
  *
64
147
  * Request Body:
65
148
  * ```json
66
149
  * {
150
+ * "carrierId": "uuid",
67
151
  * "name": "Updated Zone Name",
68
152
  * "countries": ["US", "CA", "MX"],
69
153
  * "isActive": true,
@@ -145,4 +229,22 @@ export declare function deleteRate(request: NextRequest, { params }: {
145
229
  }): Promise<NextResponse<{
146
230
  success: boolean;
147
231
  } | AdminApiError>>;
232
+ /**
233
+ * POST /api/admin/shipping/shippo/validate
234
+ *
235
+ * Validate Shippo API key.
236
+ * Note: The API key should be set in environment (SHIPPO_API_KEY).
237
+ * This endpoint validates that the configured key works.
238
+ *
239
+ * Response:
240
+ * ```json
241
+ * { "valid": true }
242
+ * // or
243
+ * { "valid": false, "error": "Invalid API key" }
244
+ * ```
245
+ */
246
+ export declare function validateShippoApiKey(): Promise<NextResponse<{
247
+ valid: boolean;
248
+ error?: string;
249
+ } | AdminApiError>>;
148
250
  //# sourceMappingURL=shipping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shipping.d.ts","sourceRoot":"","sources":["../../../src/admin/api/shipping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAavD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAsB3E;;;;GAIG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAepG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAkD5D;AAMD;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,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,gBAAgB,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAuBnE;AAED;;;;;;;;;;;;;;GAcG;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,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAiE5D;AAED;;;;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,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAuB7D;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CA8D5D;AAMD;;;;;;;;;;;;;;;;;;GAkBG;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,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAsE5D;AAED;;;;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,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAuB7D"}
1
+ {"version":3,"file":"shipping.d.ts","sourceRoot":"","sources":["../../../src/admin/api/shipping.ts"],"names":[],"mappings":"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"}