@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,223 @@
1
+ /**
2
+ * Osise API Enums
3
+ * These match the backend C# enums exactly
4
+ */
5
+ /** User roles for RBAC */
6
+ export var UserRole;
7
+ (function (UserRole) {
8
+ UserRole["Consumer"] = "Consumer";
9
+ UserRole["ConsumerB2B"] = "ConsumerB2B";
10
+ UserRole["Artisan"] = "Artisan";
11
+ UserRole["Dispatcher"] = "Dispatcher";
12
+ UserRole["FieldAgent"] = "FieldAgent";
13
+ UserRole["CustomerSupport"] = "CustomerSupport";
14
+ UserRole["AccountManager"] = "AccountManager";
15
+ UserRole["OperationsManager"] = "OperationsManager";
16
+ UserRole["Finance"] = "Finance";
17
+ UserRole["Admin"] = "Admin";
18
+ })(UserRole || (UserRole = {}));
19
+ /** Service categories available on the platform (MVP) */
20
+ export var ServiceCategory;
21
+ (function (ServiceCategory) {
22
+ ServiceCategory["Electrical"] = "Electrical";
23
+ ServiceCategory["Plumbing"] = "Plumbing";
24
+ ServiceCategory["AcRefrigeration"] = "AcRefrigeration";
25
+ ServiceCategory["Generator"] = "Generator";
26
+ ServiceCategory["Carpentry"] = "Carpentry";
27
+ ServiceCategory["Painting"] = "Painting";
28
+ })(ServiceCategory || (ServiceCategory = {}));
29
+ /** Consumer account type */
30
+ export var AccountType;
31
+ (function (AccountType) {
32
+ AccountType["Individual"] = "Individual";
33
+ AccountType["Business"] = "Business";
34
+ })(AccountType || (AccountType = {}));
35
+ /**
36
+ * Artisan verification workflow status
37
+ * IMPORTANT: Must follow this order - stages cannot be skipped
38
+ */
39
+ export var VerificationStatus;
40
+ (function (VerificationStatus) {
41
+ VerificationStatus["DocumentsPending"] = "DocumentsPending";
42
+ VerificationStatus["DocumentsReview"] = "DocumentsReview";
43
+ VerificationStatus["GuarantorVerification"] = "GuarantorVerification";
44
+ VerificationStatus["FieldVisitPending"] = "FieldVisitPending";
45
+ VerificationStatus["FieldVisitScheduled"] = "FieldVisitScheduled";
46
+ VerificationStatus["SkillTestPending"] = "SkillTestPending";
47
+ VerificationStatus["SkillTestScheduled"] = "SkillTestScheduled";
48
+ VerificationStatus["TrainingPending"] = "TrainingPending";
49
+ VerificationStatus["TrainingScheduled"] = "TrainingScheduled";
50
+ VerificationStatus["FinalReview"] = "FinalReview";
51
+ VerificationStatus["Approved"] = "Approved";
52
+ VerificationStatus["Rejected"] = "Rejected";
53
+ })(VerificationStatus || (VerificationStatus = {}));
54
+ /** Document types for artisan verification */
55
+ export var DocumentType;
56
+ (function (DocumentType) {
57
+ DocumentType["Nin"] = "Nin";
58
+ DocumentType["AddressProof"] = "AddressProof";
59
+ DocumentType["TradeCertificate"] = "TradeCertificate";
60
+ DocumentType["PassportPhoto"] = "PassportPhoto";
61
+ DocumentType["Other"] = "Other";
62
+ })(DocumentType || (DocumentType = {}));
63
+ /** Document review status */
64
+ export var DocumentStatus;
65
+ (function (DocumentStatus) {
66
+ DocumentStatus["Pending"] = "Pending";
67
+ DocumentStatus["Approved"] = "Approved";
68
+ DocumentStatus["Rejected"] = "Rejected";
69
+ })(DocumentStatus || (DocumentStatus = {}));
70
+ /** Guarantor verification status */
71
+ export var GuarantorStatus;
72
+ (function (GuarantorStatus) {
73
+ GuarantorStatus["Pending"] = "Pending";
74
+ GuarantorStatus["Verified"] = "Verified";
75
+ GuarantorStatus["Rejected"] = "Rejected";
76
+ })(GuarantorStatus || (GuarantorStatus = {}));
77
+ /** Artisan availability status */
78
+ export var AvailabilityStatus;
79
+ (function (AvailabilityStatus) {
80
+ AvailabilityStatus["Online"] = "Online";
81
+ AvailabilityStatus["Offline"] = "Offline";
82
+ AvailabilityStatus["Busy"] = "Busy";
83
+ AvailabilityStatus["OnBreak"] = "OnBreak";
84
+ })(AvailabilityStatus || (AvailabilityStatus = {}));
85
+ /** Strike types for artisan performance tracking */
86
+ export var StrikeType;
87
+ (function (StrikeType) {
88
+ StrikeType["QualityIssue"] = "QualityIssue";
89
+ StrikeType["PunctualityIssue"] = "PunctualityIssue";
90
+ StrikeType["CancellationIssue"] = "CancellationIssue";
91
+ StrikeType["DisputeIssue"] = "DisputeIssue";
92
+ })(StrikeType || (StrikeType = {}));
93
+ /** Badge types for artisan achievements */
94
+ export var BadgeType;
95
+ (function (BadgeType) {
96
+ BadgeType["TopRated"] = "TopRated";
97
+ BadgeType["Reliable"] = "Reliable";
98
+ BadgeType["Fast"] = "Fast";
99
+ BadgeType["Expert"] = "Expert";
100
+ BadgeType["Verified"] = "Verified";
101
+ BadgeType["NewArtisan"] = "NewArtisan";
102
+ })(BadgeType || (BadgeType = {}));
103
+ /** Skill test result */
104
+ export var SkillTestResult;
105
+ (function (SkillTestResult) {
106
+ SkillTestResult["Passed"] = "Passed";
107
+ SkillTestResult["Failed"] = "Failed";
108
+ SkillTestResult["Pending"] = "Pending";
109
+ })(SkillTestResult || (SkillTestResult = {}));
110
+ /** Days of the week */
111
+ export var DayOfWeek;
112
+ (function (DayOfWeek) {
113
+ DayOfWeek["Sunday"] = "Sunday";
114
+ DayOfWeek["Monday"] = "Monday";
115
+ DayOfWeek["Tuesday"] = "Tuesday";
116
+ DayOfWeek["Wednesday"] = "Wednesday";
117
+ DayOfWeek["Thursday"] = "Thursday";
118
+ DayOfWeek["Friday"] = "Friday";
119
+ DayOfWeek["Saturday"] = "Saturday";
120
+ })(DayOfWeek || (DayOfWeek = {}));
121
+ /** Artisan account status */
122
+ export var ArtisanStatus;
123
+ (function (ArtisanStatus) {
124
+ ArtisanStatus["Active"] = "Active";
125
+ ArtisanStatus["Inactive"] = "Inactive";
126
+ ArtisanStatus["OnBreak"] = "OnBreak";
127
+ ArtisanStatus["Suspended"] = "Suspended";
128
+ ArtisanStatus["Deleted"] = "Deleted";
129
+ })(ArtisanStatus || (ArtisanStatus = {}));
130
+ /** Preferred contact method */
131
+ export var ContactMethod;
132
+ (function (ContactMethod) {
133
+ ContactMethod["InApp"] = "InApp";
134
+ ContactMethod["Phone"] = "Phone";
135
+ ContactMethod["Email"] = "Email";
136
+ })(ContactMethod || (ContactMethod = {}));
137
+ /** Supported languages */
138
+ export var Language;
139
+ (function (Language) {
140
+ Language["English"] = "English";
141
+ Language["Yoruba"] = "Yoruba";
142
+ Language["Pidgin"] = "Pidgin";
143
+ })(Language || (Language = {}));
144
+ /** OTP purpose */
145
+ export var OtpPurpose;
146
+ (function (OtpPurpose) {
147
+ OtpPurpose["Login"] = "Login";
148
+ OtpPurpose["Registration"] = "Registration";
149
+ OtpPurpose["PasswordReset"] = "PasswordReset";
150
+ OtpPurpose["PhoneVerification"] = "PhoneVerification";
151
+ })(OtpPurpose || (OtpPurpose = {}));
152
+ /** Device type for sessions */
153
+ export var DeviceType;
154
+ (function (DeviceType) {
155
+ DeviceType["iOS"] = "iOS";
156
+ DeviceType["Android"] = "Android";
157
+ DeviceType["Web"] = "Web";
158
+ DeviceType["Unknown"] = "Unknown";
159
+ })(DeviceType || (DeviceType = {}));
160
+ /**
161
+ * Job workflow status
162
+ * IMPORTANT: Must follow this order for job lifecycle
163
+ */
164
+ export var JobStatus;
165
+ (function (JobStatus) {
166
+ JobStatus["Pending"] = "Pending";
167
+ JobStatus["Assigned"] = "Assigned";
168
+ JobStatus["ArtisanEnRoute"] = "ArtisanEnRoute";
169
+ JobStatus["Arrived"] = "Arrived";
170
+ JobStatus["QuotePending"] = "QuotePending";
171
+ JobStatus["InProgress"] = "InProgress";
172
+ JobStatus["Completed"] = "Completed";
173
+ JobStatus["Cancelled"] = "Cancelled";
174
+ JobStatus["Disputed"] = "Disputed";
175
+ })(JobStatus || (JobStatus = {}));
176
+ /** Payment method types */
177
+ export var PaymentMethod;
178
+ (function (PaymentMethod) {
179
+ PaymentMethod["Card"] = "Card";
180
+ PaymentMethod["BankTransfer"] = "BankTransfer";
181
+ PaymentMethod["Cash"] = "Cash";
182
+ })(PaymentMethod || (PaymentMethod = {}));
183
+ /** Payment status */
184
+ export var PaymentStatus;
185
+ (function (PaymentStatus) {
186
+ PaymentStatus["Pending"] = "Pending";
187
+ PaymentStatus["Processing"] = "Processing";
188
+ PaymentStatus["Completed"] = "Completed";
189
+ PaymentStatus["Failed"] = "Failed";
190
+ PaymentStatus["Refunded"] = "Refunded";
191
+ })(PaymentStatus || (PaymentStatus = {}));
192
+ /** Payout status for artisan earnings */
193
+ export var PayoutStatus;
194
+ (function (PayoutStatus) {
195
+ PayoutStatus["Pending"] = "Pending";
196
+ PayoutStatus["Processing"] = "Processing";
197
+ PayoutStatus["Completed"] = "Completed";
198
+ PayoutStatus["Failed"] = "Failed";
199
+ })(PayoutStatus || (PayoutStatus = {}));
200
+ /** B2B contract type */
201
+ export var ContractType;
202
+ (function (ContractType) {
203
+ ContractType["Basic"] = "Basic";
204
+ ContractType["Standard"] = "Standard";
205
+ ContractType["Premium"] = "Premium";
206
+ })(ContractType || (ContractType = {}));
207
+ /** Alert severity for performance alerts */
208
+ export var AlertSeverity;
209
+ (function (AlertSeverity) {
210
+ AlertSeverity["Info"] = "Info";
211
+ AlertSeverity["Warning"] = "Warning";
212
+ AlertSeverity["Critical"] = "Critical";
213
+ })(AlertSeverity || (AlertSeverity = {}));
214
+ /** Consumer block reason */
215
+ export var BlockReason;
216
+ (function (BlockReason) {
217
+ BlockReason["Fraud"] = "Fraud";
218
+ BlockReason["Abuse"] = "Abuse";
219
+ BlockReason["NonPayment"] = "NonPayment";
220
+ BlockReason["ViolationOfTerms"] = "ViolationOfTerms";
221
+ BlockReason["Other"] = "Other";
222
+ })(BlockReason || (BlockReason = {}));
223
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/types/enums.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Osise API Types
3
+ * Export all types for easy consumption
4
+ */
5
+ // Enums
6
+ export * from './enums';
7
+ // Common types
8
+ export * from './common';
9
+ // Auth types
10
+ export * from './auth';
11
+ // Consumer types
12
+ export * from './consumer';
13
+ // Artisan types
14
+ export * from './artisan';
15
+ // Admin types
16
+ export * from './admin';
17
+ // Job types
18
+ export * from './job';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,eAAe;AACf,cAAc,UAAU,CAAC;AAEzB,aAAa;AACb,cAAc,QAAQ,CAAC;AAEvB,iBAAiB;AACjB,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,WAAW,CAAC;AAE1B,cAAc;AACd,cAAc,SAAS,CAAC;AAExB,YAAY;AACZ,cAAc,OAAO,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Job DTOs
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/types/job.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * HTTP Client for Osise API
3
+ * Zero-dependency fetch wrapper with interceptors
4
+ */
5
+ export class OsiseApiError extends Error {
6
+ constructor(message, statusCode, errors = null, timestamp = new Date().toISOString(), options = {}) {
7
+ super(message);
8
+ this.name = 'OsiseApiError';
9
+ this.statusCode = statusCode;
10
+ this.errors = errors;
11
+ this.timestamp = timestamp;
12
+ this.isNetworkError = options.isNetworkError ?? false;
13
+ this.isTimeoutError = options.isTimeoutError ?? false;
14
+ this.isUnauthorized = statusCode === 401;
15
+ this.isForbidden = statusCode === 403;
16
+ this.isNotFound = statusCode === 404;
17
+ this.isValidationError = statusCode === 422;
18
+ this.isRateLimited = statusCode === 429;
19
+ }
20
+ static fromApiError(apiError) {
21
+ return new OsiseApiError(apiError.message, apiError.statusCode, apiError.errors, apiError.timestamp);
22
+ }
23
+ static networkError(message = 'Network error') {
24
+ return new OsiseApiError(message, 0, null, new Date().toISOString(), {
25
+ isNetworkError: true,
26
+ });
27
+ }
28
+ static timeoutError(message = 'Request timeout') {
29
+ return new OsiseApiError(message, 0, null, new Date().toISOString(), {
30
+ isTimeoutError: true,
31
+ });
32
+ }
33
+ }
34
+ export class HttpClient {
35
+ constructor(config) {
36
+ this.isRefreshing = false;
37
+ this.refreshPromise = null;
38
+ this.config = {
39
+ timeout: 30000,
40
+ ...config,
41
+ };
42
+ }
43
+ buildUrl(url, params) {
44
+ const fullUrl = new URL(url, this.config.baseUrl);
45
+ if (params) {
46
+ Object.entries(params).forEach(([key, value]) => {
47
+ if (value !== undefined && value !== null) {
48
+ fullUrl.searchParams.append(key, String(value));
49
+ }
50
+ });
51
+ }
52
+ return fullUrl.toString();
53
+ }
54
+ async refreshTokenIfNeeded() {
55
+ if (!this.config.onTokenRefresh) {
56
+ return null;
57
+ }
58
+ if (this.isRefreshing && this.refreshPromise) {
59
+ return this.refreshPromise;
60
+ }
61
+ this.isRefreshing = true;
62
+ this.refreshPromise = this.config.onTokenRefresh();
63
+ try {
64
+ const newToken = await this.refreshPromise;
65
+ return newToken;
66
+ }
67
+ finally {
68
+ this.isRefreshing = false;
69
+ this.refreshPromise = null;
70
+ }
71
+ }
72
+ async request(config) {
73
+ const timeout = config.timeout ?? this.config.timeout ?? 30000;
74
+ const controller = new AbortController();
75
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
76
+ const headers = {
77
+ 'Content-Type': 'application/json',
78
+ 'Accept': 'application/json',
79
+ ...this.config.headers,
80
+ ...config.headers,
81
+ };
82
+ // Add auth token if available
83
+ const token = this.config.getAccessToken?.();
84
+ if (token) {
85
+ headers['Authorization'] = `Bearer ${token}`;
86
+ }
87
+ let requestConfig = {
88
+ ...config,
89
+ headers,
90
+ signal: config.signal ?? controller.signal,
91
+ };
92
+ // Apply request interceptor
93
+ if (this.config.onRequest) {
94
+ requestConfig = await this.config.onRequest(requestConfig);
95
+ }
96
+ const url = this.buildUrl(requestConfig.url, requestConfig.params);
97
+ try {
98
+ const response = await fetch(url, {
99
+ method: requestConfig.method,
100
+ headers: requestConfig.headers,
101
+ body: requestConfig.body ? JSON.stringify(requestConfig.body) : undefined,
102
+ signal: requestConfig.signal,
103
+ });
104
+ clearTimeout(timeoutId);
105
+ const data = await response.json();
106
+ // Handle 401 with token refresh
107
+ if (response.status === 401 && this.config.onTokenRefresh) {
108
+ const newToken = await this.refreshTokenIfNeeded();
109
+ if (newToken) {
110
+ // Retry the request with new token
111
+ headers['Authorization'] = `Bearer ${newToken}`;
112
+ const retryResponse = await fetch(url, {
113
+ method: requestConfig.method,
114
+ headers,
115
+ body: requestConfig.body ? JSON.stringify(requestConfig.body) : undefined,
116
+ });
117
+ const retryData = await retryResponse.json();
118
+ if (!retryData.success) {
119
+ const error = OsiseApiError.fromApiError(retryData);
120
+ await this.config.onError?.(error);
121
+ throw error;
122
+ }
123
+ // Apply response interceptor
124
+ if (this.config.onResponse) {
125
+ return await this.config.onResponse(retryData);
126
+ }
127
+ return retryData;
128
+ }
129
+ }
130
+ if (!data.success) {
131
+ const error = OsiseApiError.fromApiError(data);
132
+ await this.config.onError?.(error);
133
+ throw error;
134
+ }
135
+ // Apply response interceptor
136
+ if (this.config.onResponse) {
137
+ return await this.config.onResponse(data);
138
+ }
139
+ return data;
140
+ }
141
+ catch (error) {
142
+ clearTimeout(timeoutId);
143
+ if (error instanceof OsiseApiError) {
144
+ throw error;
145
+ }
146
+ if (error instanceof Error) {
147
+ if (error.name === 'AbortError') {
148
+ const timeoutError = OsiseApiError.timeoutError();
149
+ await this.config.onError?.(timeoutError);
150
+ throw timeoutError;
151
+ }
152
+ const networkError = OsiseApiError.networkError(error.message);
153
+ await this.config.onError?.(networkError);
154
+ throw networkError;
155
+ }
156
+ throw error;
157
+ }
158
+ }
159
+ async get(url, params, config) {
160
+ return this.request({
161
+ ...config,
162
+ url,
163
+ method: 'GET',
164
+ params,
165
+ });
166
+ }
167
+ async post(url, body, config) {
168
+ return this.request({
169
+ ...config,
170
+ url,
171
+ method: 'POST',
172
+ body,
173
+ });
174
+ }
175
+ async put(url, body, config) {
176
+ return this.request({
177
+ ...config,
178
+ url,
179
+ method: 'PUT',
180
+ body,
181
+ });
182
+ }
183
+ async patch(url, body, config) {
184
+ return this.request({
185
+ ...config,
186
+ url,
187
+ method: 'PATCH',
188
+ body,
189
+ });
190
+ }
191
+ async delete(url, config) {
192
+ return this.request({
193
+ ...config,
194
+ url,
195
+ method: 'DELETE',
196
+ });
197
+ }
198
+ updateConfig(config) {
199
+ this.config = { ...this.config, ...config };
200
+ }
201
+ getConfig() {
202
+ return { ...this.config };
203
+ }
204
+ }
205
+ export function createHttpClient(config) {
206
+ return new HttpClient(config);
207
+ }
208
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2BH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAYtC,YACE,OAAe,EACf,UAAkB,EAClB,SAA0B,IAAI,EAC9B,YAAoB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAC5C,UAGI,EAAE;QAEN,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,UAAU,KAAK,GAAG,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,UAAU,KAAK,GAAG,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,UAAU,KAAK,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,UAAU,KAAK,GAAG,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,UAAU,KAAK,GAAG,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,QAAkB;QACpC,OAAO,IAAI,aAAa,CACtB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,SAAS,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,UAAkB,eAAe;QACnD,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;YACnE,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,UAAkB,iBAAiB;QACrD,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;YACnE,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,UAAU;IAKrB,YAAY,MAAwB;QAH5B,iBAAY,GAAG,KAAK,CAAC;QACrB,mBAAc,GAAkC,IAAI,CAAC;QAG3D,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,KAAK;YACd,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,GAAW,EAAE,MAA8D;QAC1F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1C,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YAC3C,OAAO,QAAQ,CAAC;QAClB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,MAA6E;QAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,kBAAkB;YAC5B,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;YACtB,GAAG,MAAM,CAAC,OAAO;SAClB,CAAC;QAEF,8BAA8B;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,aAAa,GAAkB;YACjC,GAAG,MAAM;YACT,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM;SAC3C,CAAC;QAEF,4BAA4B;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACzE,MAAM,EAAE,aAAa,CAAC,MAAM;aAC7B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyB,CAAC;YAE1D,gCAAgC;YAChC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACnD,IAAI,QAAQ,EAAE,CAAC;oBACb,mCAAmC;oBACnC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,EAAE,CAAC;oBAChD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;wBACrC,MAAM,EAAE,aAAa,CAAC,MAAM;wBAC5B,OAAO;wBACP,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;qBAC1E,CAAC,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAyB,CAAC;oBAEpE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,SAAgC,CAAC,CAAC;wBAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;wBACnC,MAAM,KAAK,CAAC;oBACd,CAAC;oBAED,6BAA6B;oBAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;wBAC3B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACjD,CAAC;oBACD,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,IAA2B,CAAC,CAAC;gBACtE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC3B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBACnC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;oBAClD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;oBAC1C,MAAM,YAAY,CAAC;gBACrB,CAAC;gBAED,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC1C,MAAM,YAAY,CAAC;YACrB,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,MAA8D,EAAE,MAA+B;QACvH,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG,MAAM;YACT,GAAG;YACH,MAAM,EAAE,KAAK;YACb,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAc,EAAE,MAA+B;QACxE,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG,MAAM;YACT,GAAG;YACH,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,IAAc,EAAE,MAA+B;QACvE,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG,MAAM;YACT,GAAG;YACH,MAAM,EAAE,KAAK;YACb,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,IAAc,EAAE,MAA+B;QACzE,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG,MAAM;YACT,GAAG;YACH,MAAM,EAAE,OAAO;YACf,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,MAA+B;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG,MAAM;YACT,GAAG;YACH,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,MAAiC;QAC5C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './http-client';
2
+ export * from './storage';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Token Storage Utilities
3
+ * Platform-agnostic storage interface
4
+ */
5
+ /** In-memory storage for environments without persistent storage */
6
+ export class MemoryTokenStorage {
7
+ constructor() {
8
+ this.accessToken = null;
9
+ this.refreshToken = null;
10
+ }
11
+ getAccessToken() {
12
+ return this.accessToken;
13
+ }
14
+ getRefreshToken() {
15
+ return this.refreshToken;
16
+ }
17
+ setTokens(accessToken, refreshToken) {
18
+ this.accessToken = accessToken;
19
+ this.refreshToken = refreshToken;
20
+ }
21
+ clearTokens() {
22
+ this.accessToken = null;
23
+ this.refreshToken = null;
24
+ }
25
+ }
26
+ /** Browser localStorage-based storage */
27
+ export class BrowserTokenStorage {
28
+ constructor(keyPrefix = 'osise') {
29
+ this.accessTokenKey = `${keyPrefix}_access_token`;
30
+ this.refreshTokenKey = `${keyPrefix}_refresh_token`;
31
+ }
32
+ getAccessToken() {
33
+ if (typeof window === 'undefined')
34
+ return null;
35
+ return localStorage.getItem(this.accessTokenKey);
36
+ }
37
+ getRefreshToken() {
38
+ if (typeof window === 'undefined')
39
+ return null;
40
+ return localStorage.getItem(this.refreshTokenKey);
41
+ }
42
+ setTokens(accessToken, refreshToken) {
43
+ if (typeof window === 'undefined')
44
+ return;
45
+ localStorage.setItem(this.accessTokenKey, accessToken);
46
+ localStorage.setItem(this.refreshTokenKey, refreshToken);
47
+ }
48
+ clearTokens() {
49
+ if (typeof window === 'undefined')
50
+ return;
51
+ localStorage.removeItem(this.accessTokenKey);
52
+ localStorage.removeItem(this.refreshTokenKey);
53
+ }
54
+ }
55
+ /** Secure storage wrapper for React Native (uses async storage) */
56
+ export class SecureTokenStorage {
57
+ constructor(storage, keyPrefix = 'osise') {
58
+ this.initialized = false;
59
+ this.storage = storage;
60
+ this.memoryCache = new MemoryTokenStorage();
61
+ this.accessTokenKey = `${keyPrefix}_access_token`;
62
+ this.refreshTokenKey = `${keyPrefix}_refresh_token`;
63
+ }
64
+ async initialize() {
65
+ if (this.initialized)
66
+ return;
67
+ const [accessToken, refreshToken] = await Promise.all([
68
+ this.storage.getItem(this.accessTokenKey),
69
+ this.storage.getItem(this.refreshTokenKey),
70
+ ]);
71
+ if (accessToken && refreshToken) {
72
+ this.memoryCache.setTokens(accessToken, refreshToken);
73
+ }
74
+ this.initialized = true;
75
+ }
76
+ getAccessToken() {
77
+ return this.memoryCache.getAccessToken();
78
+ }
79
+ getRefreshToken() {
80
+ return this.memoryCache.getRefreshToken();
81
+ }
82
+ setTokens(accessToken, refreshToken) {
83
+ this.memoryCache.setTokens(accessToken, refreshToken);
84
+ // Fire and forget async storage update
85
+ Promise.all([
86
+ this.storage.setItem(this.accessTokenKey, accessToken),
87
+ this.storage.setItem(this.refreshTokenKey, refreshToken),
88
+ ]).catch(console.error);
89
+ }
90
+ clearTokens() {
91
+ this.memoryCache.clearTokens();
92
+ // Fire and forget async storage removal
93
+ Promise.all([
94
+ this.storage.removeItem(this.accessTokenKey),
95
+ this.storage.removeItem(this.refreshTokenKey),
96
+ ]).catch(console.error);
97
+ }
98
+ }
99
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/utils/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,oEAAoE;AACpE,MAAM,OAAO,kBAAkB;IAA/B;QACU,gBAAW,GAAkB,IAAI,CAAC;QAClC,iBAAY,GAAkB,IAAI,CAAC;IAmB7C,CAAC;IAjBC,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,YAAoB;QACjD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;CACF;AAED,yCAAyC;AACzC,MAAM,OAAO,mBAAmB;IAI9B,YAAY,YAAoB,OAAO;QACrC,IAAI,CAAC,cAAc,GAAG,GAAG,SAAS,eAAe,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,GAAG,SAAS,gBAAgB,CAAC;IACtD,CAAC;IAED,cAAc;QACZ,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,eAAe;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,YAAoB;QACjD,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACvD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,WAAW;QACT,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;CACF;AAED,mEAAmE;AACnE,MAAM,OAAO,kBAAkB;IAW7B,YACE,OAIC,EACD,YAAoB,OAAO;QARrB,gBAAW,GAAG,KAAK,CAAC;QAU1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,GAAG,SAAS,eAAe,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,GAAG,SAAS,gBAAgB,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;SAC3C,CAAC,CAAC;QAEH,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,YAAoB;QACjD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACtD,uCAAuC;QACvC,OAAO,CAAC,GAAG,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;SACzD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/B,wCAAwC;QACxC,OAAO,CAAC,GAAG,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;SAC9C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}