@osise/api-client 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +474 -0
  2. package/dist/cjs/api/admin.js +277 -0
  3. package/dist/cjs/api/admin.js.map +1 -0
  4. package/dist/cjs/api/artisans.js +277 -0
  5. package/dist/cjs/api/artisans.js.map +1 -0
  6. package/dist/cjs/api/auth.js +83 -0
  7. package/dist/cjs/api/auth.js.map +1 -0
  8. package/dist/cjs/api/consumers.js +170 -0
  9. package/dist/cjs/api/consumers.js.map +1 -0
  10. package/dist/cjs/api/index.js +22 -0
  11. package/dist/cjs/api/index.js.map +1 -0
  12. package/dist/cjs/api/jobs.js +202 -0
  13. package/dist/cjs/api/jobs.js.map +1 -0
  14. package/dist/cjs/hooks/index.js +435 -0
  15. package/dist/cjs/hooks/index.js.map +1 -0
  16. package/dist/cjs/index.js +189 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/cjs/types/admin.js +6 -0
  19. package/dist/cjs/types/admin.js.map +1 -0
  20. package/dist/cjs/types/artisan.js +6 -0
  21. package/dist/cjs/types/artisan.js.map +1 -0
  22. package/dist/cjs/types/auth.js +6 -0
  23. package/dist/cjs/types/auth.js.map +1 -0
  24. package/dist/cjs/types/common.js +6 -0
  25. package/dist/cjs/types/common.js.map +1 -0
  26. package/dist/cjs/types/consumer.js +6 -0
  27. package/dist/cjs/types/consumer.js.map +1 -0
  28. package/dist/cjs/types/enums.js +226 -0
  29. package/dist/cjs/types/enums.js.map +1 -0
  30. package/dist/cjs/types/index.js +35 -0
  31. package/dist/cjs/types/index.js.map +1 -0
  32. package/dist/cjs/types/job.js +6 -0
  33. package/dist/cjs/types/job.js.map +1 -0
  34. package/dist/cjs/utils/http-client.js +214 -0
  35. package/dist/cjs/utils/http-client.js.map +1 -0
  36. package/dist/cjs/utils/index.js +19 -0
  37. package/dist/cjs/utils/index.js.map +1 -0
  38. package/dist/cjs/utils/storage.js +105 -0
  39. package/dist/cjs/utils/storage.js.map +1 -0
  40. package/dist/esm/api/admin.js +269 -0
  41. package/dist/esm/api/admin.js.map +1 -0
  42. package/dist/esm/api/artisans.js +270 -0
  43. package/dist/esm/api/artisans.js.map +1 -0
  44. package/dist/esm/api/auth.js +79 -0
  45. package/dist/esm/api/auth.js.map +1 -0
  46. package/dist/esm/api/consumers.js +165 -0
  47. package/dist/esm/api/consumers.js.map +1 -0
  48. package/dist/esm/api/index.js +6 -0
  49. package/dist/esm/api/index.js.map +1 -0
  50. package/dist/esm/api/jobs.js +197 -0
  51. package/dist/esm/api/jobs.js.map +1 -0
  52. package/dist/esm/hooks/index.js +408 -0
  53. package/dist/esm/hooks/index.js.map +1 -0
  54. package/dist/esm/index.js +165 -0
  55. package/dist/esm/index.js.map +1 -0
  56. package/dist/esm/types/admin.js +5 -0
  57. package/dist/esm/types/admin.js.map +1 -0
  58. package/dist/esm/types/artisan.js +5 -0
  59. package/dist/esm/types/artisan.js.map +1 -0
  60. package/dist/esm/types/auth.js +5 -0
  61. package/dist/esm/types/auth.js.map +1 -0
  62. package/dist/esm/types/common.js +5 -0
  63. package/dist/esm/types/common.js.map +1 -0
  64. package/dist/esm/types/consumer.js +5 -0
  65. package/dist/esm/types/consumer.js.map +1 -0
  66. package/dist/esm/types/enums.js +223 -0
  67. package/dist/esm/types/enums.js.map +1 -0
  68. package/dist/esm/types/index.js +19 -0
  69. package/dist/esm/types/index.js.map +1 -0
  70. package/dist/esm/types/job.js +5 -0
  71. package/dist/esm/types/job.js.map +1 -0
  72. package/dist/esm/utils/http-client.js +208 -0
  73. package/dist/esm/utils/http-client.js.map +1 -0
  74. package/dist/esm/utils/index.js +3 -0
  75. package/dist/esm/utils/index.js.map +1 -0
  76. package/dist/esm/utils/storage.js +99 -0
  77. package/dist/esm/utils/storage.js.map +1 -0
  78. package/dist/types/api/admin.d.ts +188 -0
  79. package/dist/types/api/admin.d.ts.map +1 -0
  80. package/dist/types/api/artisans.d.ts +183 -0
  81. package/dist/types/api/artisans.d.ts.map +1 -0
  82. package/dist/types/api/auth.d.ts +58 -0
  83. package/dist/types/api/auth.d.ts.map +1 -0
  84. package/dist/types/api/consumers.d.ts +113 -0
  85. package/dist/types/api/consumers.d.ts.map +1 -0
  86. package/dist/types/api/index.d.ts +6 -0
  87. package/dist/types/api/index.d.ts.map +1 -0
  88. package/dist/types/api/jobs.d.ts +136 -0
  89. package/dist/types/api/jobs.d.ts.map +1 -0
  90. package/dist/types/hooks/index.d.ts +225 -0
  91. package/dist/types/hooks/index.d.ts.map +1 -0
  92. package/dist/types/index.d.ts +127 -0
  93. package/dist/types/index.d.ts.map +1 -0
  94. package/dist/types/types/admin.d.ts +226 -0
  95. package/dist/types/types/admin.d.ts.map +1 -0
  96. package/dist/types/types/artisan.d.ts +438 -0
  97. package/dist/types/types/artisan.d.ts.map +1 -0
  98. package/dist/types/types/auth.d.ts +92 -0
  99. package/dist/types/types/auth.d.ts.map +1 -0
  100. package/dist/types/types/common.d.ts +105 -0
  101. package/dist/types/types/common.d.ts.map +1 -0
  102. package/dist/types/types/consumer.d.ts +144 -0
  103. package/dist/types/types/consumer.d.ts.map +1 -0
  104. package/dist/types/types/enums.d.ts +199 -0
  105. package/dist/types/types/enums.d.ts.map +1 -0
  106. package/dist/types/types/index.d.ts +12 -0
  107. package/dist/types/types/index.d.ts.map +1 -0
  108. package/dist/types/types/job.d.ts +226 -0
  109. package/dist/types/types/job.d.ts.map +1 -0
  110. package/dist/types/utils/http-client.d.ts +65 -0
  111. package/dist/types/utils/http-client.d.ts.map +1 -0
  112. package/dist/types/utils/index.d.ts +3 -0
  113. package/dist/types/utils/index.d.ts.map +1 -0
  114. package/dist/types/utils/storage.d.ts +48 -0
  115. package/dist/types/utils/storage.d.ts.map +1 -0
  116. package/package.json +78 -0
@@ -0,0 +1,435 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OsiseProvider = OsiseProvider;
4
+ exports.useOsiseClient = useOsiseClient;
5
+ exports.useIsAuthenticated = useIsAuthenticated;
6
+ exports.useQuery = useQuery;
7
+ exports.useMutation = useMutation;
8
+ exports.useRequestOtp = useRequestOtp;
9
+ exports.useVerifyOtp = useVerifyOtp;
10
+ exports.useLogout = useLogout;
11
+ exports.useCurrentUser = useCurrentUser;
12
+ exports.useConsumerProfile = useConsumerProfile;
13
+ exports.useConsumerAddresses = useConsumerAddresses;
14
+ exports.useFavoriteArtisans = useFavoriteArtisans;
15
+ exports.useArtisanProfile = useArtisanProfile;
16
+ exports.useApplicationStatus = useApplicationStatus;
17
+ exports.useArtisanDocuments = useArtisanDocuments;
18
+ exports.useArtisanAvailability = useArtisanAvailability;
19
+ exports.useArtisanEarnings = useArtisanEarnings;
20
+ exports.useArtisanPerformance = useArtisanPerformance;
21
+ exports.useConsumerJobs = useConsumerJobs;
22
+ exports.useArtisanJobs = useArtisanJobs;
23
+ exports.useJob = useJob;
24
+ exports.useDashboardStats = useDashboardStats;
25
+ exports.useAdminArtisans = useAdminArtisans;
26
+ exports.useAdminConsumers = useAdminConsumers;
27
+ exports.usePendingApplications = usePendingApplications;
28
+ const jsx_runtime_1 = require("react/jsx-runtime");
29
+ const react_1 = require("react");
30
+ const index_1 = require("../index");
31
+ const OsiseContext = (0, react_1.createContext)(null);
32
+ function OsiseProvider({ config, children }) {
33
+ const [isAuthenticated, setAuthenticated] = (0, react_1.useState)(false);
34
+ const client = (0, react_1.useMemo)(() => {
35
+ const osiseClient = new index_1.OsiseClient({
36
+ ...config,
37
+ onAuthRequired: () => {
38
+ setAuthenticated(false);
39
+ config.onAuthRequired?.();
40
+ },
41
+ onTokenRefresh: (accessToken, refreshToken) => {
42
+ setAuthenticated(true);
43
+ config.onTokenRefresh?.(accessToken, refreshToken);
44
+ },
45
+ });
46
+ // Check initial auth state
47
+ setAuthenticated(osiseClient.isAuthenticated());
48
+ return osiseClient;
49
+ // eslint-disable-next-line react-hooks/exhaustive-deps
50
+ }, [config.baseUrl]);
51
+ const contextValue = (0, react_1.useMemo)(() => ({ client, isAuthenticated, setAuthenticated }), [client, isAuthenticated]);
52
+ return ((0, jsx_runtime_1.jsx)(OsiseContext.Provider, { value: contextValue, children: children }));
53
+ }
54
+ function useOsiseContext() {
55
+ const context = (0, react_1.useContext)(OsiseContext);
56
+ if (!context) {
57
+ throw new Error('useOsiseClient must be used within an OsiseProvider');
58
+ }
59
+ return context;
60
+ }
61
+ /**
62
+ * Hook to access the Osise client
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * function MyComponent() {
67
+ * const client = useOsiseClient();
68
+ *
69
+ * const handleLogin = async () => {
70
+ * await client.auth.requestOtp({ phoneNumber: '+234...' });
71
+ * };
72
+ * }
73
+ * ```
74
+ */
75
+ function useOsiseClient() {
76
+ return useOsiseContext().client;
77
+ }
78
+ /**
79
+ * Hook to check authentication status
80
+ */
81
+ function useIsAuthenticated() {
82
+ return useOsiseContext().isAuthenticated;
83
+ }
84
+ /**
85
+ * Generic query hook for API calls
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * function Profile() {
90
+ * const { data, isLoading, error } = useQuery(
91
+ * () => client.consumers.getProfile(),
92
+ * { enabled: isAuthenticated }
93
+ * );
94
+ *
95
+ * if (isLoading) return <Loading />;
96
+ * if (error) return <Error message={error.message} />;
97
+ * return <div>{data?.firstName}</div>;
98
+ * }
99
+ * ```
100
+ */
101
+ function useQuery(queryFn, options = {}) {
102
+ const { enabled = true, refetchOnMount = true } = options;
103
+ const [state, setState] = (0, react_1.useState)({
104
+ data: null,
105
+ error: null,
106
+ isLoading: enabled,
107
+ isError: false,
108
+ isSuccess: false,
109
+ });
110
+ const execute = (0, react_1.useCallback)(async () => {
111
+ if (!enabled)
112
+ return;
113
+ setState((prev) => ({ ...prev, isLoading: true, error: null }));
114
+ try {
115
+ const response = await queryFn();
116
+ setState({
117
+ data: response.data,
118
+ error: null,
119
+ isLoading: false,
120
+ isError: false,
121
+ isSuccess: true,
122
+ });
123
+ }
124
+ catch (err) {
125
+ const error = err instanceof index_1.OsiseApiError ? err : new index_1.OsiseApiError('Unknown error', 500);
126
+ setState({
127
+ data: null,
128
+ error,
129
+ isLoading: false,
130
+ isError: true,
131
+ isSuccess: false,
132
+ });
133
+ }
134
+ }, [queryFn, enabled]);
135
+ (0, react_1.useEffect)(() => {
136
+ if (refetchOnMount) {
137
+ void execute();
138
+ }
139
+ }, [execute, refetchOnMount]);
140
+ return {
141
+ ...state,
142
+ refetch: execute,
143
+ };
144
+ }
145
+ /**
146
+ * Generic mutation hook for API calls
147
+ *
148
+ * @example
149
+ * ```tsx
150
+ * function RequestOtp() {
151
+ * const { mutate, isLoading } = useMutation(
152
+ * (phone: string) => client.auth.requestOtp({ phoneNumber: phone, purpose: 'Login' }),
153
+ * {
154
+ * onSuccess: () => navigate('/verify-otp'),
155
+ * onError: (error) => toast.error(error.message),
156
+ * }
157
+ * );
158
+ *
159
+ * return (
160
+ * <button onClick={() => mutate('+234...')} disabled={isLoading}>
161
+ * Request OTP
162
+ * </button>
163
+ * );
164
+ * }
165
+ * ```
166
+ */
167
+ function useMutation(mutationFn, options = {}) {
168
+ const [state, setState] = (0, react_1.useState)({
169
+ data: null,
170
+ error: null,
171
+ isLoading: false,
172
+ isError: false,
173
+ isSuccess: false,
174
+ });
175
+ const reset = (0, react_1.useCallback)(() => {
176
+ setState({
177
+ data: null,
178
+ error: null,
179
+ isLoading: false,
180
+ isError: false,
181
+ isSuccess: false,
182
+ });
183
+ }, []);
184
+ const mutateAsync = (0, react_1.useCallback)(async (variables) => {
185
+ setState((prev) => ({ ...prev, isLoading: true, error: null }));
186
+ try {
187
+ const response = await mutationFn(variables);
188
+ const data = response.data;
189
+ setState({
190
+ data,
191
+ error: null,
192
+ isLoading: false,
193
+ isError: false,
194
+ isSuccess: true,
195
+ });
196
+ options.onSuccess?.(data);
197
+ options.onSettled?.();
198
+ return data;
199
+ }
200
+ catch (err) {
201
+ const error = err instanceof index_1.OsiseApiError ? err : new index_1.OsiseApiError('Unknown error', 500);
202
+ setState({
203
+ data: null,
204
+ error,
205
+ isLoading: false,
206
+ isError: true,
207
+ isSuccess: false,
208
+ });
209
+ options.onError?.(error);
210
+ options.onSettled?.();
211
+ throw error;
212
+ }
213
+ }, [mutationFn, options]);
214
+ const mutate = (0, react_1.useCallback)(async (variables) => {
215
+ try {
216
+ return await mutateAsync(variables);
217
+ }
218
+ catch {
219
+ return null;
220
+ }
221
+ }, [mutateAsync]);
222
+ return {
223
+ ...state,
224
+ mutate,
225
+ mutateAsync,
226
+ reset,
227
+ };
228
+ }
229
+ /**
230
+ * Hook for OTP request
231
+ */
232
+ function useRequestOtp() {
233
+ const client = useOsiseClient();
234
+ return useMutation((data) => client.auth.requestOtp(data));
235
+ }
236
+ /**
237
+ * Hook for OTP verification
238
+ */
239
+ function useVerifyOtp() {
240
+ const client = useOsiseClient();
241
+ const { setAuthenticated } = useOsiseContext();
242
+ return useMutation((data) => client.auth.verifyOtp(data), {
243
+ onSuccess: (data) => {
244
+ if (data?.tokens) {
245
+ client.setTokens(data.tokens.accessToken, data.tokens.refreshToken);
246
+ setAuthenticated(true);
247
+ }
248
+ },
249
+ });
250
+ }
251
+ /**
252
+ * Hook for logout
253
+ */
254
+ function useLogout() {
255
+ const client = useOsiseClient();
256
+ const { setAuthenticated } = useOsiseContext();
257
+ return useMutation(() => client.auth.logout(), {
258
+ onSettled: () => {
259
+ client.clearTokens();
260
+ setAuthenticated(false);
261
+ },
262
+ });
263
+ }
264
+ /**
265
+ * Hook for getting current user
266
+ */
267
+ function useCurrentUser() {
268
+ const client = useOsiseClient();
269
+ const isAuthenticated = useIsAuthenticated();
270
+ return useQuery(() => client.auth.getCurrentUser(), {
271
+ enabled: isAuthenticated,
272
+ });
273
+ }
274
+ /**
275
+ * Hook for consumer profile
276
+ */
277
+ function useConsumerProfile() {
278
+ const client = useOsiseClient();
279
+ const isAuthenticated = useIsAuthenticated();
280
+ return useQuery(() => client.consumers.getProfile(), {
281
+ enabled: isAuthenticated,
282
+ });
283
+ }
284
+ /**
285
+ * Hook for consumer addresses
286
+ */
287
+ function useConsumerAddresses() {
288
+ const client = useOsiseClient();
289
+ const isAuthenticated = useIsAuthenticated();
290
+ return useQuery(() => client.consumerAddresses.getAll(), {
291
+ enabled: isAuthenticated,
292
+ });
293
+ }
294
+ /**
295
+ * Hook for favorite artisans
296
+ */
297
+ function useFavoriteArtisans(params) {
298
+ const client = useOsiseClient();
299
+ const isAuthenticated = useIsAuthenticated();
300
+ return useQuery(() => client.consumers.getFavorites(params), {
301
+ enabled: isAuthenticated,
302
+ });
303
+ }
304
+ // ==================== Artisan Hooks ====================
305
+ /**
306
+ * Hook for artisan profile
307
+ */
308
+ function useArtisanProfile() {
309
+ const client = useOsiseClient();
310
+ const isAuthenticated = useIsAuthenticated();
311
+ return useQuery(() => client.artisans.getProfile(), {
312
+ enabled: isAuthenticated,
313
+ });
314
+ }
315
+ /**
316
+ * Hook for artisan application status
317
+ */
318
+ function useApplicationStatus() {
319
+ const client = useOsiseClient();
320
+ const isAuthenticated = useIsAuthenticated();
321
+ return useQuery(() => client.artisans.getApplicationStatus(), {
322
+ enabled: isAuthenticated,
323
+ });
324
+ }
325
+ /**
326
+ * Hook for artisan documents
327
+ */
328
+ function useArtisanDocuments() {
329
+ const client = useOsiseClient();
330
+ const isAuthenticated = useIsAuthenticated();
331
+ return useQuery(() => client.artisans.getDocuments(), {
332
+ enabled: isAuthenticated,
333
+ });
334
+ }
335
+ /**
336
+ * Hook for artisan availability
337
+ */
338
+ function useArtisanAvailability() {
339
+ const client = useOsiseClient();
340
+ const isAuthenticated = useIsAuthenticated();
341
+ return useQuery(() => client.artisanAvailability.getStatus(), {
342
+ enabled: isAuthenticated,
343
+ });
344
+ }
345
+ /**
346
+ * Hook for artisan earnings
347
+ */
348
+ function useArtisanEarnings() {
349
+ const client = useOsiseClient();
350
+ const isAuthenticated = useIsAuthenticated();
351
+ return useQuery(() => client.artisanEarnings.getSummary(), {
352
+ enabled: isAuthenticated,
353
+ });
354
+ }
355
+ /**
356
+ * Hook for artisan performance
357
+ */
358
+ function useArtisanPerformance() {
359
+ const client = useOsiseClient();
360
+ const isAuthenticated = useIsAuthenticated();
361
+ return useQuery(() => client.artisanPerformance.getRating(), {
362
+ enabled: isAuthenticated,
363
+ });
364
+ }
365
+ /**
366
+ * Hook for consumer jobs
367
+ */
368
+ function useConsumerJobs(params) {
369
+ const client = useOsiseClient();
370
+ const isAuthenticated = useIsAuthenticated();
371
+ return useQuery(() => client.jobs.list(params), {
372
+ enabled: isAuthenticated,
373
+ });
374
+ }
375
+ /**
376
+ * Hook for artisan jobs
377
+ */
378
+ function useArtisanJobs(params) {
379
+ const client = useOsiseClient();
380
+ const isAuthenticated = useIsAuthenticated();
381
+ return useQuery(() => client.artisanJobs.list(params), {
382
+ enabled: isAuthenticated,
383
+ });
384
+ }
385
+ /**
386
+ * Hook for a specific job
387
+ */
388
+ function useJob(jobId) {
389
+ const client = useOsiseClient();
390
+ const isAuthenticated = useIsAuthenticated();
391
+ return useQuery(() => client.jobs.get(jobId), {
392
+ enabled: isAuthenticated && !!jobId,
393
+ });
394
+ }
395
+ /**
396
+ * Hook for admin dashboard stats
397
+ */
398
+ function useDashboardStats() {
399
+ const client = useOsiseClient();
400
+ const isAuthenticated = useIsAuthenticated();
401
+ return useQuery(() => client.adminDashboard.getStats(), {
402
+ enabled: isAuthenticated,
403
+ });
404
+ }
405
+ /**
406
+ * Hook for admin artisan list
407
+ */
408
+ function useAdminArtisans(params) {
409
+ const client = useOsiseClient();
410
+ const isAuthenticated = useIsAuthenticated();
411
+ return useQuery(() => client.adminArtisans.list(params), {
412
+ enabled: isAuthenticated,
413
+ });
414
+ }
415
+ /**
416
+ * Hook for admin consumer list
417
+ */
418
+ function useAdminConsumers(params) {
419
+ const client = useOsiseClient();
420
+ const isAuthenticated = useIsAuthenticated();
421
+ return useQuery(() => client.adminConsumers.list(params), {
422
+ enabled: isAuthenticated,
423
+ });
424
+ }
425
+ /**
426
+ * Hook for pending applications
427
+ */
428
+ function usePendingApplications(params) {
429
+ const client = useOsiseClient();
430
+ const isAuthenticated = useIsAuthenticated();
431
+ return useQuery(() => client.adminApplications.list(params), {
432
+ enabled: isAuthenticated,
433
+ });
434
+ }
435
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ /**
3
+ * Osise API Client SDK
4
+ * Official TypeScript SDK for the Osise API
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.OsiseClient = exports.SecureTokenStorage = exports.BrowserTokenStorage = exports.MemoryTokenStorage = exports.HttpClient = exports.OsiseApiError = void 0;
24
+ exports.createOsiseClient = createOsiseClient;
25
+ const http_client_1 = require("./utils/http-client");
26
+ const storage_1 = require("./utils/storage");
27
+ const auth_1 = require("./api/auth");
28
+ const consumers_1 = require("./api/consumers");
29
+ const artisans_1 = require("./api/artisans");
30
+ const jobs_1 = require("./api/jobs");
31
+ const admin_1 = require("./api/admin");
32
+ // Re-export all types
33
+ __exportStar(require("./types"), exports);
34
+ // Re-export utilities
35
+ var http_client_2 = require("./utils/http-client");
36
+ Object.defineProperty(exports, "OsiseApiError", { enumerable: true, get: function () { return http_client_2.OsiseApiError; } });
37
+ var http_client_3 = require("./utils/http-client");
38
+ Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function () { return http_client_3.HttpClient; } });
39
+ var storage_2 = require("./utils/storage");
40
+ Object.defineProperty(exports, "MemoryTokenStorage", { enumerable: true, get: function () { return storage_2.MemoryTokenStorage; } });
41
+ Object.defineProperty(exports, "BrowserTokenStorage", { enumerable: true, get: function () { return storage_2.BrowserTokenStorage; } });
42
+ Object.defineProperty(exports, "SecureTokenStorage", { enumerable: true, get: function () { return storage_2.SecureTokenStorage; } });
43
+ // Re-export API classes for advanced usage
44
+ __exportStar(require("./api"), exports);
45
+ /**
46
+ * Main Osise API Client
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * import { OsiseClient } from '@osise/api-client';
51
+ *
52
+ * const client = new OsiseClient({
53
+ * baseUrl: 'https://api.osise.com',
54
+ * });
55
+ *
56
+ * // Request OTP
57
+ * const response = await client.auth.requestOtp({
58
+ * phoneNumber: '+2348012345678',
59
+ * purpose: 'Login',
60
+ * });
61
+ *
62
+ * // Verify OTP and get tokens
63
+ * const authResponse = await client.auth.verifyOtp({
64
+ * phoneNumber: '+2348012345678',
65
+ * code: '123456',
66
+ * deviceId: 'unique-device-id',
67
+ * });
68
+ *
69
+ * // Access consumer features
70
+ * const profile = await client.consumers.getProfile();
71
+ * ```
72
+ */
73
+ class OsiseClient {
74
+ constructor(config) {
75
+ this.storage = config.storage ?? new storage_1.MemoryTokenStorage();
76
+ const httpConfig = {
77
+ baseUrl: config.baseUrl,
78
+ timeout: config.timeout,
79
+ headers: config.headers,
80
+ getAccessToken: () => this.storage.getAccessToken(),
81
+ getRefreshToken: () => this.storage.getRefreshToken(),
82
+ setTokens: (accessToken, refreshToken) => {
83
+ this.storage.setTokens(accessToken, refreshToken);
84
+ config.onTokenRefresh?.(accessToken, refreshToken);
85
+ },
86
+ onError: async (error) => {
87
+ if (error.isUnauthorized) {
88
+ this.storage.clearTokens();
89
+ config.onAuthRequired?.();
90
+ }
91
+ config.onError?.(error);
92
+ },
93
+ };
94
+ // Add token refresh if enabled
95
+ if (config.autoRefresh !== false) {
96
+ httpConfig.onTokenRefresh = async () => {
97
+ const refreshToken = this.storage.getRefreshToken();
98
+ if (!refreshToken) {
99
+ return null;
100
+ }
101
+ try {
102
+ const response = await this.http.post('/api/v1/auth/token/refresh', { refreshToken });
103
+ if (response.success && response.data) {
104
+ const { accessToken, refreshToken: newRefreshToken } = response.data.tokens;
105
+ this.storage.setTokens(accessToken, newRefreshToken);
106
+ config.onTokenRefresh?.(accessToken, newRefreshToken);
107
+ return accessToken;
108
+ }
109
+ return null;
110
+ }
111
+ catch {
112
+ this.storage.clearTokens();
113
+ config.onAuthRequired?.();
114
+ return null;
115
+ }
116
+ };
117
+ }
118
+ this.http = new http_client_1.HttpClient(httpConfig);
119
+ // Initialize API modules
120
+ this.auth = new auth_1.AuthApi(this.http);
121
+ this.consumers = new consumers_1.ConsumersApi(this.http);
122
+ this.consumerAddresses = new consumers_1.ConsumerAddressesApi(this.http);
123
+ this.artisans = new artisans_1.ArtisansApi(this.http);
124
+ this.artisanAvailability = new artisans_1.ArtisanAvailabilityApi(this.http);
125
+ this.artisanEarnings = new artisans_1.ArtisanEarningsApi(this.http);
126
+ this.artisanPerformance = new artisans_1.ArtisanPerformanceApi(this.http);
127
+ this.jobs = new jobs_1.JobsApi(this.http);
128
+ this.artisanJobs = new jobs_1.ArtisanJobsApi(this.http);
129
+ // Admin modules
130
+ this.adminArtisans = new admin_1.AdminArtisansApi(this.http);
131
+ this.adminApplications = new admin_1.AdminApplicationsApi(this.http);
132
+ this.adminConsumers = new admin_1.AdminConsumersApi(this.http);
133
+ this.adminDashboard = new admin_1.AdminDashboardApi(this.http);
134
+ this.adminJobs = new admin_1.AdminJobsApi(this.http);
135
+ }
136
+ /**
137
+ * Set authentication tokens manually
138
+ */
139
+ setTokens(accessToken, refreshToken) {
140
+ this.storage.setTokens(accessToken, refreshToken);
141
+ }
142
+ /**
143
+ * Clear authentication tokens (logout)
144
+ */
145
+ clearTokens() {
146
+ this.storage.clearTokens();
147
+ }
148
+ /**
149
+ * Check if user is authenticated
150
+ */
151
+ isAuthenticated() {
152
+ return this.storage.getAccessToken() !== null;
153
+ }
154
+ /**
155
+ * Get the current access token
156
+ */
157
+ getAccessToken() {
158
+ return this.storage.getAccessToken();
159
+ }
160
+ /**
161
+ * Get the underlying HTTP client for advanced usage
162
+ */
163
+ getHttpClient() {
164
+ return this.http;
165
+ }
166
+ }
167
+ exports.OsiseClient = OsiseClient;
168
+ /**
169
+ * Create an Osise client instance
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * import { createOsiseClient, BrowserTokenStorage } from '@osise/api-client';
174
+ *
175
+ * const client = createOsiseClient({
176
+ * baseUrl: 'https://api.osise.com',
177
+ * storage: new BrowserTokenStorage(),
178
+ * onAuthRequired: () => {
179
+ * window.location.href = '/login';
180
+ * },
181
+ * });
182
+ * ```
183
+ */
184
+ function createOsiseClient(config) {
185
+ return new OsiseClient(config);
186
+ }
187
+ // Default export
188
+ exports.default = OsiseClient;
189
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Admin DTOs
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/types/admin.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Artisan DTOs
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=artisan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artisan.js","sourceRoot":"","sources":["../../../src/types/artisan.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Authentication DTOs
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/types/auth.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Common types used across the SDK
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=common.js.map