@instockng/api-client 1.0.6 → 1.0.8

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 (178) hide show
  1. package/dist/apps/backend/src/generated/zod/index.d.ts +1114 -0
  2. package/dist/apps/backend/src/generated/zod/index.js +670 -0
  3. package/dist/apps/backend/src/http-app.d.ts +40 -0
  4. package/dist/apps/backend/src/http-app.js +134 -0
  5. package/dist/apps/backend/src/lib/brand-response.d.ts +14 -0
  6. package/dist/apps/backend/src/lib/brand-response.js +8 -0
  7. package/dist/apps/backend/src/lib/cart-helpers.d.ts +282 -0
  8. package/dist/apps/backend/src/lib/cart-helpers.js +121 -0
  9. package/dist/apps/backend/src/lib/cart-recovery.d.ts +30 -0
  10. package/dist/apps/backend/src/lib/cart-recovery.js +147 -0
  11. package/dist/apps/backend/src/lib/cart-response.d.ts +121 -0
  12. package/dist/apps/backend/src/lib/cart-response.js +150 -0
  13. package/dist/apps/backend/src/lib/clerk.d.ts +18 -0
  14. package/dist/apps/backend/src/lib/clerk.js +190 -0
  15. package/dist/apps/backend/src/lib/delivery-zone-response.d.ts +64 -0
  16. package/dist/apps/backend/src/lib/delivery-zone-response.js +24 -0
  17. package/dist/apps/backend/src/lib/discount-code-response.d.ts +42 -0
  18. package/dist/apps/backend/src/lib/discount-code-response.js +19 -0
  19. package/dist/apps/backend/src/lib/discount.d.ts +20 -0
  20. package/dist/apps/backend/src/lib/discount.js +35 -0
  21. package/dist/apps/backend/src/lib/inventory.d.ts +26 -0
  22. package/dist/apps/backend/src/lib/inventory.js +160 -0
  23. package/dist/apps/backend/src/lib/meta-capi.d.ts +53 -0
  24. package/dist/apps/backend/src/lib/meta-capi.js +151 -0
  25. package/dist/apps/backend/src/lib/openapi.d.ts +36 -0
  26. package/dist/apps/backend/src/lib/openapi.js +69 -0
  27. package/dist/apps/backend/src/lib/order-recovery.d.ts +459 -0
  28. package/dist/apps/backend/src/lib/order-recovery.js +378 -0
  29. package/dist/apps/backend/src/lib/order-response.d.ts +138 -0
  30. package/dist/apps/backend/src/lib/order-response.js +61 -0
  31. package/dist/apps/backend/src/lib/pricing.d.ts +39 -0
  32. package/dist/apps/backend/src/lib/pricing.js +62 -0
  33. package/dist/apps/backend/src/lib/prisma.d.ts +9 -0
  34. package/dist/apps/backend/src/lib/prisma.js +30 -0
  35. package/dist/apps/backend/src/lib/product-response.d.ts +82 -0
  36. package/dist/apps/backend/src/lib/product-response.js +29 -0
  37. package/dist/apps/backend/src/lib/sentry.d.ts +48 -0
  38. package/dist/apps/backend/src/lib/sentry.js +180 -0
  39. package/dist/apps/backend/src/lib/utils.d.ts +32 -0
  40. package/dist/apps/backend/src/lib/utils.js +63 -0
  41. package/dist/apps/backend/src/middleware/clerk-auth.d.ts +8 -0
  42. package/dist/apps/backend/src/middleware/clerk-auth.js +89 -0
  43. package/dist/apps/backend/src/middleware/cors.d.ts +8 -0
  44. package/dist/apps/backend/src/middleware/cors.js +11 -0
  45. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.d.ts +62 -0
  46. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.js +180 -0
  47. package/dist/apps/backend/src/notifications/producers/order-notification.d.ts +9 -0
  48. package/dist/apps/backend/src/notifications/producers/order-notification.js +18 -0
  49. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.d.ts +10 -0
  50. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.js +11 -0
  51. package/dist/apps/backend/src/routes/admin/abandoned-carts.d.ts +605 -0
  52. package/dist/apps/backend/src/routes/admin/abandoned-carts.js +194 -0
  53. package/dist/apps/backend/src/routes/admin/brands.d.ts +175 -0
  54. package/dist/apps/backend/src/routes/admin/brands.js +118 -0
  55. package/dist/apps/backend/src/routes/admin/customers.d.ts +308 -0
  56. package/dist/apps/backend/src/routes/admin/customers.js +39 -0
  57. package/dist/apps/backend/src/routes/admin/delivery-zones.d.ts +446 -0
  58. package/dist/apps/backend/src/routes/admin/delivery-zones.js +300 -0
  59. package/dist/apps/backend/src/routes/admin/discount-codes.d.ts +478 -0
  60. package/dist/apps/backend/src/routes/admin/discount-codes.js +418 -0
  61. package/dist/apps/backend/src/routes/admin/inventory.d.ts +273 -0
  62. package/dist/apps/backend/src/routes/admin/inventory.js +199 -0
  63. package/dist/apps/backend/src/routes/admin/orders.d.ts +1780 -0
  64. package/dist/apps/backend/src/routes/admin/orders.js +552 -0
  65. package/dist/apps/backend/src/routes/admin/products.d.ts +860 -0
  66. package/dist/apps/backend/src/routes/admin/products.js +126 -0
  67. package/dist/apps/backend/src/routes/admin/stats.d.ts +290 -0
  68. package/dist/apps/backend/src/routes/admin/stats.js +55 -0
  69. package/dist/apps/backend/src/routes/admin/variants.d.ts +239 -0
  70. package/dist/apps/backend/src/routes/admin/variants.js +197 -0
  71. package/dist/apps/backend/src/routes/admin/warehouses.d.ts +373 -0
  72. package/dist/apps/backend/src/routes/admin/warehouses.js +123 -0
  73. package/dist/apps/backend/src/routes/public/brands.d.ts +40 -0
  74. package/dist/apps/backend/src/routes/public/brands.js +38 -0
  75. package/dist/apps/backend/src/routes/public/carts.d.ts +2657 -0
  76. package/dist/apps/backend/src/routes/public/carts.js +778 -0
  77. package/dist/apps/backend/src/routes/public/delivery-zones.d.ts +37 -0
  78. package/dist/apps/backend/src/routes/public/delivery-zones.js +64 -0
  79. package/dist/apps/backend/src/routes/public/orders.d.ts +609 -0
  80. package/dist/apps/backend/src/routes/public/orders.js +184 -0
  81. package/dist/apps/backend/src/routes/public/products.d.ts +449 -0
  82. package/dist/apps/backend/src/routes/public/products.js +133 -0
  83. package/dist/apps/backend/src/types/index.d.ts +43 -0
  84. package/dist/apps/backend/src/types/index.js +2 -0
  85. package/dist/apps/backend/src/validators/brand.d.ts +17 -0
  86. package/dist/apps/backend/src/validators/brand.js +15 -0
  87. package/dist/apps/backend/src/validators/delivery-zone.d.ts +35 -0
  88. package/dist/apps/backend/src/validators/delivery-zone.js +55 -0
  89. package/dist/apps/backend/src/validators/discount-code.d.ts +74 -0
  90. package/dist/apps/backend/src/validators/discount-code.js +50 -0
  91. package/dist/apps/backend/src/validators/inventory.d.ts +20 -0
  92. package/dist/apps/backend/src/validators/inventory.js +15 -0
  93. package/dist/apps/backend/src/validators/order.d.ts +58 -0
  94. package/dist/apps/backend/src/validators/order.js +62 -0
  95. package/dist/apps/backend/src/validators/product.d.ts +18 -0
  96. package/dist/apps/backend/src/validators/product.js +19 -0
  97. package/dist/apps/backend/src/validators/variant.d.ts +19 -0
  98. package/dist/apps/backend/src/validators/variant.js +19 -0
  99. package/dist/apps/backend/src/validators/warehouse.d.ts +15 -0
  100. package/dist/apps/backend/src/validators/warehouse.js +15 -0
  101. package/dist/fetchers/orders.d.ts +258 -1
  102. package/dist/hooks/admin/orders.d.ts +285 -3
  103. package/dist/hooks/admin/orders.js +7 -4
  104. package/dist/hooks/public/orders.d.ts +258 -1
  105. package/dist/packages/api-client/src/backend-types.d.ts +10 -0
  106. package/dist/packages/api-client/src/backend-types.js +10 -0
  107. package/dist/packages/api-client/src/client.d.ts +20 -0
  108. package/dist/packages/api-client/src/client.js +40 -0
  109. package/dist/packages/api-client/src/enum-types.d.ts +8 -0
  110. package/dist/packages/api-client/src/enum-types.js +5 -0
  111. package/dist/packages/api-client/src/fetchers/brands.d.ts +25 -0
  112. package/dist/packages/api-client/src/fetchers/brands.js +26 -0
  113. package/dist/packages/api-client/src/fetchers/carts.d.ts +2337 -0
  114. package/dist/packages/api-client/src/fetchers/carts.js +174 -0
  115. package/dist/packages/api-client/src/fetchers/delivery-zones.d.ts +30 -0
  116. package/dist/packages/api-client/src/fetchers/delivery-zones.js +26 -0
  117. package/dist/packages/api-client/src/fetchers/index.d.ts +22 -0
  118. package/dist/packages/api-client/src/fetchers/index.js +22 -0
  119. package/dist/packages/api-client/src/fetchers/orders.d.ts +544 -0
  120. package/dist/packages/api-client/src/fetchers/orders.js +44 -0
  121. package/dist/packages/api-client/src/fetchers/products.d.ts +386 -0
  122. package/dist/packages/api-client/src/fetchers/products.js +42 -0
  123. package/dist/packages/api-client/src/hooks/admin/abandoned-carts.d.ts +535 -0
  124. package/dist/packages/api-client/src/hooks/admin/abandoned-carts.js +83 -0
  125. package/dist/packages/api-client/src/hooks/admin/brands.d.ts +79 -0
  126. package/dist/packages/api-client/src/hooks/admin/brands.js +108 -0
  127. package/dist/packages/api-client/src/hooks/admin/customers.d.ts +280 -0
  128. package/dist/packages/api-client/src/hooks/admin/customers.js +26 -0
  129. package/dist/packages/api-client/src/hooks/admin/delivery-zones.d.ts +278 -0
  130. package/dist/packages/api-client/src/hooks/admin/delivery-zones.js +176 -0
  131. package/dist/packages/api-client/src/hooks/admin/discount-codes.d.ts +299 -0
  132. package/dist/packages/api-client/src/hooks/admin/discount-codes.js +165 -0
  133. package/dist/packages/api-client/src/hooks/admin/index.d.ts +16 -0
  134. package/dist/packages/api-client/src/hooks/admin/index.js +16 -0
  135. package/dist/packages/api-client/src/hooks/admin/inventory.d.ts +224 -0
  136. package/dist/packages/api-client/src/hooks/admin/inventory.js +107 -0
  137. package/dist/packages/api-client/src/hooks/admin/orders.d.ts +1674 -0
  138. package/dist/packages/api-client/src/hooks/admin/orders.js +178 -0
  139. package/dist/packages/api-client/src/hooks/admin/products.d.ts +374 -0
  140. package/dist/packages/api-client/src/hooks/admin/products.js +89 -0
  141. package/dist/packages/api-client/src/hooks/admin/stats.d.ts +279 -0
  142. package/dist/packages/api-client/src/hooks/admin/stats.js +25 -0
  143. package/dist/packages/api-client/src/hooks/admin/variants.d.ts +115 -0
  144. package/dist/packages/api-client/src/hooks/admin/variants.js +127 -0
  145. package/dist/packages/api-client/src/hooks/admin/warehouses.d.ts +277 -0
  146. package/dist/packages/api-client/src/hooks/admin/warehouses.js +108 -0
  147. package/dist/packages/api-client/src/hooks/public/brands.d.ts +33 -0
  148. package/dist/packages/api-client/src/hooks/public/brands.js +30 -0
  149. package/dist/packages/api-client/src/hooks/public/carts.d.ts +2407 -0
  150. package/dist/packages/api-client/src/hooks/public/carts.js +213 -0
  151. package/dist/packages/api-client/src/hooks/public/delivery-zones.d.ts +36 -0
  152. package/dist/packages/api-client/src/hooks/public/delivery-zones.js +28 -0
  153. package/dist/packages/api-client/src/hooks/public/index.d.ts +10 -0
  154. package/dist/packages/api-client/src/hooks/public/index.js +10 -0
  155. package/dist/packages/api-client/src/hooks/public/orders.d.ts +563 -0
  156. package/dist/packages/api-client/src/hooks/public/orders.js +50 -0
  157. package/dist/packages/api-client/src/hooks/public/products.d.ts +398 -0
  158. package/dist/packages/api-client/src/hooks/public/products.js +47 -0
  159. package/dist/packages/api-client/src/hooks/use-query-unwrapped.d.ts +20 -0
  160. package/dist/packages/api-client/src/hooks/use-query-unwrapped.js +22 -0
  161. package/dist/packages/api-client/src/hooks/useApiConfig.d.ts +12 -0
  162. package/dist/packages/api-client/src/hooks/useApiConfig.js +14 -0
  163. package/dist/packages/api-client/src/index.d.ts +20 -0
  164. package/dist/packages/api-client/src/index.js +25 -0
  165. package/dist/packages/api-client/src/provider.d.ts +36 -0
  166. package/dist/packages/api-client/src/provider.js +54 -0
  167. package/dist/packages/api-client/src/rpc-client.d.ts +9639 -0
  168. package/dist/packages/api-client/src/rpc-client.js +78 -0
  169. package/dist/packages/api-client/src/rpc-types.d.ts +76 -0
  170. package/dist/packages/api-client/src/rpc-types.js +7 -0
  171. package/dist/packages/api-client/src/types.d.ts +34 -0
  172. package/dist/packages/api-client/src/types.js +16 -0
  173. package/dist/packages/api-client/src/utils/query-keys.d.ts +106 -0
  174. package/dist/packages/api-client/src/utils/query-keys.js +108 -0
  175. package/dist/rpc-client.d.ts +891 -319
  176. package/dist/utils/query-keys.d.ts +1 -1
  177. package/dist/utils/query-keys.js +1 -1
  178. package/package.json +1 -1
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Cart fetcher functions
3
+ *
4
+ * These are the actual data-fetching functions used by hooks.
5
+ * They can also be imported directly in Server Components.
6
+ *
7
+ * API URL is hardcoded to https://oms-api.instock.ng
8
+ */
9
+ import { createRpcClients } from '../rpc-client';
10
+ const API_URL = 'https://oms-api.instock.ng';
11
+ /**
12
+ * Fetch a cart by ID
13
+ *
14
+ * @param cartId - Cart UUID
15
+ * @returns Cart with items, brand, and delivery zone
16
+ */
17
+ export async function fetchCart(cartId) {
18
+ const clients = createRpcClients(API_URL);
19
+ const res = await clients.carts[':id'].$get({
20
+ param: { id: cartId },
21
+ });
22
+ if (!res.ok) {
23
+ throw new Error(`Failed to fetch cart: ${res.statusText}`);
24
+ }
25
+ return res.json();
26
+ }
27
+ /**
28
+ * Create a new cart
29
+ *
30
+ * @param brandSlug - Brand slug
31
+ * @returns Newly created cart
32
+ */
33
+ export async function createCart(brandSlug) {
34
+ const clients = createRpcClients(API_URL);
35
+ const res = await clients.carts.index.$post({
36
+ json: { brandSlug },
37
+ });
38
+ if (!res.ok) {
39
+ throw new Error(`Failed to create cart: ${res.statusText}`);
40
+ }
41
+ return res.json();
42
+ }
43
+ /**
44
+ * Update a cart
45
+ *
46
+ * @param cartId - Cart UUID
47
+ * @param data - Cart update data (customer info, deliveryZoneId, etc.)
48
+ * @returns Updated cart
49
+ */
50
+ export async function updateCart(cartId, data) {
51
+ const clients = createRpcClients(API_URL);
52
+ const res = await clients.carts[':id'].$patch({
53
+ param: { id: cartId },
54
+ // @ts-expect-error - Hono RPC type inference issue
55
+ json: data,
56
+ });
57
+ if (!res.ok) {
58
+ throw new Error(`Failed to update cart: ${res.statusText}`);
59
+ }
60
+ return res.json();
61
+ }
62
+ /**
63
+ * Add an item to cart
64
+ *
65
+ * @param cartId - Cart UUID
66
+ * @param sku - Product variant SKU
67
+ * @param quantity - Quantity to add
68
+ * @param fbc - Facebook Click ID (optional)
69
+ * @param fbp - Facebook Browser ID (optional)
70
+ * @returns Updated cart
71
+ */
72
+ export async function addCartItem(cartId, sku, quantity, fbc, fbp) {
73
+ const clients = createRpcClients(API_URL);
74
+ const res = await clients.carts[':id'].items.$post({
75
+ param: { id: cartId },
76
+ // @ts-expect-error - Hono RPC type inference issue
77
+ json: { sku, quantity, fbc, fbp },
78
+ });
79
+ if (!res.ok) {
80
+ throw new Error(`Failed to add item to cart: ${res.statusText}`);
81
+ }
82
+ return res.json();
83
+ }
84
+ /**
85
+ * Update a cart item quantity
86
+ *
87
+ * @param cartId - Cart UUID
88
+ * @param itemId - Cart item UUID
89
+ * @param quantity - New quantity
90
+ * @returns Updated cart
91
+ */
92
+ export async function updateCartItem(cartId, itemId, quantity) {
93
+ const clients = createRpcClients(API_URL);
94
+ const res = await clients.carts[':id'].items[':itemId'].$patch({
95
+ param: { id: cartId, itemId },
96
+ // @ts-expect-error - Hono RPC type inference issue
97
+ json: { quantity },
98
+ });
99
+ if (!res.ok) {
100
+ throw new Error(`Failed to update cart item: ${res.statusText}`);
101
+ }
102
+ return res.json();
103
+ }
104
+ /**
105
+ * Remove an item from cart
106
+ *
107
+ * @param cartId - Cart UUID
108
+ * @param itemId - Cart item UUID
109
+ * @returns Updated cart
110
+ */
111
+ export async function removeCartItem(cartId, itemId) {
112
+ const clients = createRpcClients(API_URL);
113
+ const res = await clients.carts[':id'].items[':itemId'].$delete({
114
+ param: { id: cartId, itemId },
115
+ });
116
+ if (!res.ok) {
117
+ throw new Error(`Failed to remove cart item: ${res.statusText}`);
118
+ }
119
+ return res.json();
120
+ }
121
+ /**
122
+ * Apply a discount code to cart
123
+ *
124
+ * @param cartId - Cart UUID
125
+ * @param code - Discount code
126
+ * @returns Updated cart
127
+ */
128
+ export async function applyDiscount(cartId, code) {
129
+ const clients = createRpcClients(API_URL);
130
+ const res = await clients.carts[':id']['apply-discount'].$post({
131
+ param: { id: cartId },
132
+ // @ts-expect-error - Hono RPC type inference issue
133
+ json: { code },
134
+ });
135
+ if (!res.ok) {
136
+ throw new Error(`Failed to apply discount: ${res.statusText}`);
137
+ }
138
+ return res.json();
139
+ }
140
+ /**
141
+ * Remove discount from cart
142
+ *
143
+ * @param cartId - Cart UUID
144
+ * @returns Updated cart
145
+ */
146
+ export async function removeDiscount(cartId) {
147
+ const clients = createRpcClients(API_URL);
148
+ const res = await clients.carts[':id']['remove-discount'].$post({
149
+ param: { id: cartId },
150
+ });
151
+ if (!res.ok) {
152
+ throw new Error(`Failed to remove discount: ${res.statusText}`);
153
+ }
154
+ return res.json();
155
+ }
156
+ /**
157
+ * Checkout a cart
158
+ *
159
+ * @param cartId - Cart UUID
160
+ * @param checkoutData - Checkout information (customer details, delivery, payment)
161
+ * @returns Created order
162
+ */
163
+ export async function checkoutCart(cartId, checkoutData) {
164
+ const clients = createRpcClients(API_URL);
165
+ const res = await clients.carts[':id'].checkout.$post({
166
+ param: { id: cartId },
167
+ // @ts-expect-error - Hono RPC type inference issue
168
+ json: checkoutData,
169
+ });
170
+ if (!res.ok) {
171
+ throw new Error(`Failed to checkout cart: ${res.statusText}`);
172
+ }
173
+ return res.json();
174
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Delivery zone fetcher functions
3
+ *
4
+ * These are the actual data-fetching functions used by hooks.
5
+ * They can also be imported directly in Server Components.
6
+ *
7
+ * API URL is hardcoded to https://oms-api.instock.ng
8
+ */
9
+ /**
10
+ * Fetch delivery zones
11
+ *
12
+ * @param brandId - Optional brand UUID to filter brand-specific zones
13
+ * @returns List of delivery zones with states
14
+ */
15
+ export declare function fetchDeliveryZones(brandId?: string): Promise<{
16
+ id: string;
17
+ name: string;
18
+ zones: {
19
+ id: string;
20
+ name: string;
21
+ deliveryCost: number;
22
+ freeShippingThreshold: number;
23
+ allowCOD: boolean;
24
+ allowOnline: boolean;
25
+ waybillOnly: boolean;
26
+ estimatedDays: number;
27
+ noteTitle: string;
28
+ noteContent: string;
29
+ }[];
30
+ }[]>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Delivery zone fetcher functions
3
+ *
4
+ * These are the actual data-fetching functions used by hooks.
5
+ * They can also be imported directly in Server Components.
6
+ *
7
+ * API URL is hardcoded to https://oms-api.instock.ng
8
+ */
9
+ import { createRpcClients } from '../rpc-client';
10
+ const API_URL = 'https://oms-api.instock.ng';
11
+ /**
12
+ * Fetch delivery zones
13
+ *
14
+ * @param brandId - Optional brand UUID to filter brand-specific zones
15
+ * @returns List of delivery zones with states
16
+ */
17
+ export async function fetchDeliveryZones(brandId) {
18
+ const clients = createRpcClients(API_URL);
19
+ const res = await clients.deliveryZones.index.$get({
20
+ query: brandId ? { brandId } : {},
21
+ });
22
+ if (!res.ok) {
23
+ throw new Error(`Failed to fetch delivery zones: ${res.statusText}`);
24
+ }
25
+ return res.json();
26
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Data fetcher functions for Server Components
3
+ *
4
+ * These functions can be used directly in Next.js Server Components
5
+ * without needing React hooks. They use the same underlying logic
6
+ * as the client-side hooks, ensuring no code duplication.
7
+ *
8
+ * @example Server Component
9
+ * ```tsx
10
+ * import { fetchProductBySlug, fetchCart } from '@oms/api-client/fetchers';
11
+ *
12
+ * export default async function ProductPage({ params }) {
13
+ * const product = await fetchProductBySlug(params.slug);
14
+ * return <div>{product.name}</div>;
15
+ * }
16
+ * ```
17
+ */
18
+ export * from './products';
19
+ export * from './carts';
20
+ export * from './orders';
21
+ export * from './delivery-zones';
22
+ export * from './brands';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Data fetcher functions for Server Components
3
+ *
4
+ * These functions can be used directly in Next.js Server Components
5
+ * without needing React hooks. They use the same underlying logic
6
+ * as the client-side hooks, ensuring no code duplication.
7
+ *
8
+ * @example Server Component
9
+ * ```tsx
10
+ * import { fetchProductBySlug, fetchCart } from '@oms/api-client/fetchers';
11
+ *
12
+ * export default async function ProductPage({ params }) {
13
+ * const product = await fetchProductBySlug(params.slug);
14
+ * return <div>{product.name}</div>;
15
+ * }
16
+ * ```
17
+ */
18
+ export * from './products';
19
+ export * from './carts';
20
+ export * from './orders';
21
+ export * from './delivery-zones';
22
+ export * from './brands';