@instockng/api-client 1.0.0 → 1.0.2

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 (90) hide show
  1. package/dist/backend-types.d.ts +10 -0
  2. package/dist/backend-types.js +10 -0
  3. package/dist/client.d.ts +20 -0
  4. package/dist/client.js +40 -0
  5. package/dist/fetchers/brands.d.ts +25 -0
  6. package/dist/fetchers/brands.js +26 -0
  7. package/dist/fetchers/carts.d.ts +2339 -0
  8. package/dist/fetchers/carts.js +167 -0
  9. package/dist/fetchers/delivery-zones.d.ts +28 -0
  10. package/{src/fetchers/delivery-zones.ts → dist/fetchers/delivery-zones.js} +9 -12
  11. package/{src/fetchers/index.ts → dist/fetchers/index.d.ts} +1 -1
  12. package/dist/fetchers/index.js +22 -0
  13. package/dist/fetchers/orders.d.ts +283 -0
  14. package/dist/fetchers/orders.js +44 -0
  15. package/dist/fetchers/products.d.ts +386 -0
  16. package/dist/fetchers/products.js +42 -0
  17. package/dist/hooks/admin/abandoned-carts.d.ts +535 -0
  18. package/dist/hooks/admin/abandoned-carts.js +79 -0
  19. package/dist/hooks/admin/brands.d.ts +79 -0
  20. package/dist/hooks/admin/brands.js +103 -0
  21. package/dist/hooks/admin/customers.d.ts +278 -0
  22. package/dist/hooks/admin/customers.js +25 -0
  23. package/dist/hooks/admin/delivery-zones.d.ts +270 -0
  24. package/dist/hooks/admin/delivery-zones.js +168 -0
  25. package/dist/hooks/admin/discount-codes.d.ts +299 -0
  26. package/dist/hooks/admin/discount-codes.js +157 -0
  27. package/{src/hooks/admin/index.ts → dist/hooks/admin/index.d.ts} +0 -1
  28. package/dist/hooks/admin/index.js +16 -0
  29. package/dist/hooks/admin/inventory.d.ts +224 -0
  30. package/dist/hooks/admin/inventory.js +102 -0
  31. package/dist/hooks/admin/orders.d.ts +1380 -0
  32. package/dist/hooks/admin/orders.js +169 -0
  33. package/dist/hooks/admin/products.d.ts +374 -0
  34. package/dist/hooks/admin/products.js +84 -0
  35. package/dist/hooks/admin/stats.d.ts +277 -0
  36. package/dist/hooks/admin/stats.js +24 -0
  37. package/dist/hooks/admin/variants.d.ts +115 -0
  38. package/dist/hooks/admin/variants.js +121 -0
  39. package/dist/hooks/admin/warehouses.d.ts +277 -0
  40. package/dist/hooks/admin/warehouses.js +103 -0
  41. package/dist/hooks/public/brands.d.ts +33 -0
  42. package/dist/hooks/public/brands.js +30 -0
  43. package/dist/hooks/public/carts.d.ts +2407 -0
  44. package/dist/hooks/public/carts.js +213 -0
  45. package/dist/hooks/public/delivery-zones.d.ts +34 -0
  46. package/{src/hooks/public/delivery-zones.ts → dist/hooks/public/delivery-zones.js} +6 -12
  47. package/{src/hooks/public/index.ts → dist/hooks/public/index.d.ts} +1 -1
  48. package/dist/hooks/public/index.js +10 -0
  49. package/dist/hooks/public/orders.d.ts +302 -0
  50. package/{src/hooks/public/orders.ts → dist/hooks/public/orders.js} +12 -28
  51. package/dist/hooks/public/products.d.ts +398 -0
  52. package/{src/hooks/public/products.ts → dist/hooks/public/products.js} +12 -22
  53. package/dist/hooks/use-query-unwrapped.d.ts +20 -0
  54. package/dist/hooks/use-query-unwrapped.js +22 -0
  55. package/dist/hooks/useApiConfig.d.ts +11 -0
  56. package/dist/hooks/useApiConfig.js +14 -0
  57. package/dist/index.d.ts +20 -0
  58. package/{src/index.ts → dist/index.js} +0 -17
  59. package/dist/provider.d.ts +33 -0
  60. package/dist/provider.js +52 -0
  61. package/dist/rpc-client.d.ts +9043 -0
  62. package/dist/rpc-client.js +78 -0
  63. package/{src/rpc-types.ts → dist/rpc-types.d.ts} +35 -80
  64. package/dist/rpc-types.js +7 -0
  65. package/{src/types.ts → dist/types.d.ts} +0 -6
  66. package/dist/types.js +16 -0
  67. package/dist/utils/query-keys.d.ts +106 -0
  68. package/dist/utils/query-keys.js +108 -0
  69. package/package.json +24 -13
  70. package/src/client.ts +0 -57
  71. package/src/fetchers/carts.ts +0 -202
  72. package/src/fetchers/orders.ts +0 -48
  73. package/src/fetchers/products.ts +0 -46
  74. package/src/hooks/admin/abandoned-carts.ts +0 -102
  75. package/src/hooks/admin/brands.ts +0 -134
  76. package/src/hooks/admin/customers.ts +0 -31
  77. package/src/hooks/admin/delivery-zones.ts +0 -236
  78. package/src/hooks/admin/discount-codes.ts +0 -222
  79. package/src/hooks/admin/inventory.ts +0 -137
  80. package/src/hooks/admin/orders.ts +0 -229
  81. package/src/hooks/admin/products.ts +0 -116
  82. package/src/hooks/admin/stats.ts +0 -30
  83. package/src/hooks/admin/variants.ts +0 -173
  84. package/src/hooks/admin/warehouses.ts +0 -143
  85. package/src/hooks/public/carts.ts +0 -298
  86. package/src/hooks/use-query-unwrapped.ts +0 -30
  87. package/src/hooks/useApiConfig.ts +0 -22
  88. package/src/provider.tsx +0 -89
  89. package/src/rpc-client.ts +0 -106
  90. package/src/utils/query-keys.ts +0 -121
@@ -0,0 +1,386 @@
1
+ /**
2
+ * Product 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 products by brand ID
11
+ *
12
+ * @param brandId - Brand UUID
13
+ * @returns Products for the brand with variants and availability
14
+ */
15
+ export declare function fetchProductsByBrand(brandId: string): Promise<{
16
+ brand: {
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ deletedAt: string;
20
+ name: string;
21
+ id: string;
22
+ slug: string;
23
+ logoUrl: string | null;
24
+ siteUrl: string;
25
+ domain: string;
26
+ metaPixelId: string | null;
27
+ };
28
+ variants: {
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ price: number;
32
+ deletedAt: string;
33
+ name: string | null;
34
+ id: string;
35
+ isActive: boolean;
36
+ thumbnailUrl: string | null;
37
+ productId: string;
38
+ sku: string;
39
+ trackInventory: boolean;
40
+ lowStockThreshold: number | null;
41
+ }[];
42
+ name: string;
43
+ id: string;
44
+ slug: string;
45
+ createdAt: string;
46
+ updatedAt: string;
47
+ deletedAt: string;
48
+ brandId: string;
49
+ isActive: boolean;
50
+ description: string | null;
51
+ thumbnailUrl: string | null;
52
+ quantityDiscounts: string | number | boolean | {
53
+ [x: string]: string | number | boolean | /*elided*/ any | {
54
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
55
+ length: number;
56
+ toString: never;
57
+ toLocaleString: never;
58
+ pop: never;
59
+ push: never;
60
+ concat: never;
61
+ join: never;
62
+ reverse: never;
63
+ shift: never;
64
+ slice: never;
65
+ sort: never;
66
+ splice: never;
67
+ unshift: never;
68
+ indexOf: never;
69
+ lastIndexOf: never;
70
+ every: never;
71
+ some: never;
72
+ forEach: never;
73
+ map: never;
74
+ filter: never;
75
+ reduce: never;
76
+ reduceRight: never;
77
+ find: never;
78
+ findIndex: never;
79
+ fill: never;
80
+ copyWithin: never;
81
+ entries: never;
82
+ keys: never;
83
+ values: never;
84
+ includes: never;
85
+ flatMap: never;
86
+ flat: never;
87
+ [Symbol.iterator]: never;
88
+ readonly [Symbol.unscopables]: {
89
+ [x: number]: boolean;
90
+ length?: boolean;
91
+ toString?: boolean;
92
+ toLocaleString?: boolean;
93
+ pop?: boolean;
94
+ push?: boolean;
95
+ concat?: boolean;
96
+ join?: boolean;
97
+ reverse?: boolean;
98
+ shift?: boolean;
99
+ slice?: boolean;
100
+ sort?: boolean;
101
+ splice?: boolean;
102
+ unshift?: boolean;
103
+ indexOf?: boolean;
104
+ lastIndexOf?: boolean;
105
+ every?: boolean;
106
+ some?: boolean;
107
+ forEach?: boolean;
108
+ map?: boolean;
109
+ filter?: boolean;
110
+ reduce?: boolean;
111
+ reduceRight?: boolean;
112
+ find?: boolean;
113
+ findIndex?: boolean;
114
+ fill?: boolean;
115
+ copyWithin?: boolean;
116
+ entries?: boolean;
117
+ keys?: boolean;
118
+ values?: boolean;
119
+ includes?: boolean;
120
+ flatMap?: boolean;
121
+ flat?: boolean;
122
+ };
123
+ };
124
+ } | {
125
+ [x: number]: string | number | boolean | {
126
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
127
+ } | /*elided*/ any;
128
+ length: number;
129
+ toString: never;
130
+ toLocaleString: never;
131
+ pop: never;
132
+ push: never;
133
+ concat: never;
134
+ join: never;
135
+ reverse: never;
136
+ shift: never;
137
+ slice: never;
138
+ sort: never;
139
+ splice: never;
140
+ unshift: never;
141
+ indexOf: never;
142
+ lastIndexOf: never;
143
+ every: never;
144
+ some: never;
145
+ forEach: never;
146
+ map: never;
147
+ filter: never;
148
+ reduce: never;
149
+ reduceRight: never;
150
+ find: never;
151
+ findIndex: never;
152
+ fill: never;
153
+ copyWithin: never;
154
+ entries: never;
155
+ keys: never;
156
+ values: never;
157
+ includes: never;
158
+ flatMap: never;
159
+ flat: never;
160
+ [Symbol.iterator]: never;
161
+ readonly [Symbol.unscopables]: {
162
+ [x: number]: boolean;
163
+ length?: boolean;
164
+ toString?: boolean;
165
+ toLocaleString?: boolean;
166
+ pop?: boolean;
167
+ push?: boolean;
168
+ concat?: boolean;
169
+ join?: boolean;
170
+ reverse?: boolean;
171
+ shift?: boolean;
172
+ slice?: boolean;
173
+ sort?: boolean;
174
+ splice?: boolean;
175
+ unshift?: boolean;
176
+ indexOf?: boolean;
177
+ lastIndexOf?: boolean;
178
+ every?: boolean;
179
+ some?: boolean;
180
+ forEach?: boolean;
181
+ map?: boolean;
182
+ filter?: boolean;
183
+ reduce?: boolean;
184
+ reduceRight?: boolean;
185
+ find?: boolean;
186
+ findIndex?: boolean;
187
+ fill?: boolean;
188
+ copyWithin?: boolean;
189
+ entries?: boolean;
190
+ keys?: boolean;
191
+ values?: boolean;
192
+ includes?: boolean;
193
+ flatMap?: boolean;
194
+ flat?: boolean;
195
+ };
196
+ };
197
+ }[]>;
198
+ /**
199
+ * Fetch a single product by slug
200
+ *
201
+ * @param slug - Product slug (e.g., 'cotton-t-shirt')
202
+ * @returns Product with variants and availability
203
+ */
204
+ export declare function fetchProductBySlug(slug: string): Promise<{
205
+ brand: {
206
+ createdAt: string;
207
+ updatedAt: string;
208
+ deletedAt: string;
209
+ name: string;
210
+ id: string;
211
+ slug: string;
212
+ logoUrl: string | null;
213
+ siteUrl: string;
214
+ domain: string;
215
+ metaPixelId: string | null;
216
+ };
217
+ variants: {
218
+ createdAt: string;
219
+ updatedAt: string;
220
+ price: number;
221
+ deletedAt: string;
222
+ name: string | null;
223
+ id: string;
224
+ isActive: boolean;
225
+ thumbnailUrl: string | null;
226
+ productId: string;
227
+ sku: string;
228
+ trackInventory: boolean;
229
+ lowStockThreshold: number | null;
230
+ }[];
231
+ name: string;
232
+ id: string;
233
+ slug: string;
234
+ createdAt: string;
235
+ updatedAt: string;
236
+ deletedAt: string;
237
+ brandId: string;
238
+ isActive: boolean;
239
+ description: string | null;
240
+ thumbnailUrl: string | null;
241
+ quantityDiscounts: string | number | boolean | {
242
+ [x: string]: string | number | boolean | /*elided*/ any | {
243
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
244
+ length: number;
245
+ toString: never;
246
+ toLocaleString: never;
247
+ pop: never;
248
+ push: never;
249
+ concat: never;
250
+ join: never;
251
+ reverse: never;
252
+ shift: never;
253
+ slice: never;
254
+ sort: never;
255
+ splice: never;
256
+ unshift: never;
257
+ indexOf: never;
258
+ lastIndexOf: never;
259
+ every: never;
260
+ some: never;
261
+ forEach: never;
262
+ map: never;
263
+ filter: never;
264
+ reduce: never;
265
+ reduceRight: never;
266
+ find: never;
267
+ findIndex: never;
268
+ fill: never;
269
+ copyWithin: never;
270
+ entries: never;
271
+ keys: never;
272
+ values: never;
273
+ includes: never;
274
+ flatMap: never;
275
+ flat: never;
276
+ [Symbol.iterator]: never;
277
+ readonly [Symbol.unscopables]: {
278
+ [x: number]: boolean;
279
+ length?: boolean;
280
+ toString?: boolean;
281
+ toLocaleString?: boolean;
282
+ pop?: boolean;
283
+ push?: boolean;
284
+ concat?: boolean;
285
+ join?: boolean;
286
+ reverse?: boolean;
287
+ shift?: boolean;
288
+ slice?: boolean;
289
+ sort?: boolean;
290
+ splice?: boolean;
291
+ unshift?: boolean;
292
+ indexOf?: boolean;
293
+ lastIndexOf?: boolean;
294
+ every?: boolean;
295
+ some?: boolean;
296
+ forEach?: boolean;
297
+ map?: boolean;
298
+ filter?: boolean;
299
+ reduce?: boolean;
300
+ reduceRight?: boolean;
301
+ find?: boolean;
302
+ findIndex?: boolean;
303
+ fill?: boolean;
304
+ copyWithin?: boolean;
305
+ entries?: boolean;
306
+ keys?: boolean;
307
+ values?: boolean;
308
+ includes?: boolean;
309
+ flatMap?: boolean;
310
+ flat?: boolean;
311
+ };
312
+ };
313
+ } | {
314
+ [x: number]: string | number | boolean | {
315
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
316
+ } | /*elided*/ any;
317
+ length: number;
318
+ toString: never;
319
+ toLocaleString: never;
320
+ pop: never;
321
+ push: never;
322
+ concat: never;
323
+ join: never;
324
+ reverse: never;
325
+ shift: never;
326
+ slice: never;
327
+ sort: never;
328
+ splice: never;
329
+ unshift: never;
330
+ indexOf: never;
331
+ lastIndexOf: never;
332
+ every: never;
333
+ some: never;
334
+ forEach: never;
335
+ map: never;
336
+ filter: never;
337
+ reduce: never;
338
+ reduceRight: never;
339
+ find: never;
340
+ findIndex: never;
341
+ fill: never;
342
+ copyWithin: never;
343
+ entries: never;
344
+ keys: never;
345
+ values: never;
346
+ includes: never;
347
+ flatMap: never;
348
+ flat: never;
349
+ [Symbol.iterator]: never;
350
+ readonly [Symbol.unscopables]: {
351
+ [x: number]: boolean;
352
+ length?: boolean;
353
+ toString?: boolean;
354
+ toLocaleString?: boolean;
355
+ pop?: boolean;
356
+ push?: boolean;
357
+ concat?: boolean;
358
+ join?: boolean;
359
+ reverse?: boolean;
360
+ shift?: boolean;
361
+ slice?: boolean;
362
+ sort?: boolean;
363
+ splice?: boolean;
364
+ unshift?: boolean;
365
+ indexOf?: boolean;
366
+ lastIndexOf?: boolean;
367
+ every?: boolean;
368
+ some?: boolean;
369
+ forEach?: boolean;
370
+ map?: boolean;
371
+ filter?: boolean;
372
+ reduce?: boolean;
373
+ reduceRight?: boolean;
374
+ find?: boolean;
375
+ findIndex?: boolean;
376
+ fill?: boolean;
377
+ copyWithin?: boolean;
378
+ entries?: boolean;
379
+ keys?: boolean;
380
+ values?: boolean;
381
+ includes?: boolean;
382
+ flatMap?: boolean;
383
+ flat?: boolean;
384
+ };
385
+ };
386
+ }>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Product 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 products by brand ID
13
+ *
14
+ * @param brandId - Brand UUID
15
+ * @returns Products for the brand with variants and availability
16
+ */
17
+ export async function fetchProductsByBrand(brandId) {
18
+ const clients = createRpcClients(API_URL);
19
+ const res = await clients.products[':brandId'].$get({
20
+ param: { brandId },
21
+ });
22
+ if (!res.ok) {
23
+ throw new Error(`Failed to fetch products: ${res.statusText}`);
24
+ }
25
+ return res.json();
26
+ }
27
+ /**
28
+ * Fetch a single product by slug
29
+ *
30
+ * @param slug - Product slug (e.g., 'cotton-t-shirt')
31
+ * @returns Product with variants and availability
32
+ */
33
+ export async function fetchProductBySlug(slug) {
34
+ const clients = createRpcClients(API_URL);
35
+ const res = await clients.products.product[':slug'].$get({
36
+ param: { slug },
37
+ });
38
+ if (!res.ok) {
39
+ throw new Error(`Failed to fetch product: ${res.statusText}`);
40
+ }
41
+ return res.json();
42
+ }