@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 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Consumer DTOs
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../../src/types/consumer.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /**
3
+ * Osise API Enums
4
+ * These match the backend C# enums exactly
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BlockReason = exports.AlertSeverity = exports.ContractType = exports.PayoutStatus = exports.PaymentStatus = exports.PaymentMethod = exports.JobStatus = exports.DeviceType = exports.OtpPurpose = exports.Language = exports.ContactMethod = exports.ArtisanStatus = exports.DayOfWeek = exports.SkillTestResult = exports.BadgeType = exports.StrikeType = exports.AvailabilityStatus = exports.GuarantorStatus = exports.DocumentStatus = exports.DocumentType = exports.VerificationStatus = exports.AccountType = exports.ServiceCategory = exports.UserRole = void 0;
8
+ /** User roles for RBAC */
9
+ var UserRole;
10
+ (function (UserRole) {
11
+ UserRole["Consumer"] = "Consumer";
12
+ UserRole["ConsumerB2B"] = "ConsumerB2B";
13
+ UserRole["Artisan"] = "Artisan";
14
+ UserRole["Dispatcher"] = "Dispatcher";
15
+ UserRole["FieldAgent"] = "FieldAgent";
16
+ UserRole["CustomerSupport"] = "CustomerSupport";
17
+ UserRole["AccountManager"] = "AccountManager";
18
+ UserRole["OperationsManager"] = "OperationsManager";
19
+ UserRole["Finance"] = "Finance";
20
+ UserRole["Admin"] = "Admin";
21
+ })(UserRole || (exports.UserRole = UserRole = {}));
22
+ /** Service categories available on the platform (MVP) */
23
+ var ServiceCategory;
24
+ (function (ServiceCategory) {
25
+ ServiceCategory["Electrical"] = "Electrical";
26
+ ServiceCategory["Plumbing"] = "Plumbing";
27
+ ServiceCategory["AcRefrigeration"] = "AcRefrigeration";
28
+ ServiceCategory["Generator"] = "Generator";
29
+ ServiceCategory["Carpentry"] = "Carpentry";
30
+ ServiceCategory["Painting"] = "Painting";
31
+ })(ServiceCategory || (exports.ServiceCategory = ServiceCategory = {}));
32
+ /** Consumer account type */
33
+ var AccountType;
34
+ (function (AccountType) {
35
+ AccountType["Individual"] = "Individual";
36
+ AccountType["Business"] = "Business";
37
+ })(AccountType || (exports.AccountType = AccountType = {}));
38
+ /**
39
+ * Artisan verification workflow status
40
+ * IMPORTANT: Must follow this order - stages cannot be skipped
41
+ */
42
+ var VerificationStatus;
43
+ (function (VerificationStatus) {
44
+ VerificationStatus["DocumentsPending"] = "DocumentsPending";
45
+ VerificationStatus["DocumentsReview"] = "DocumentsReview";
46
+ VerificationStatus["GuarantorVerification"] = "GuarantorVerification";
47
+ VerificationStatus["FieldVisitPending"] = "FieldVisitPending";
48
+ VerificationStatus["FieldVisitScheduled"] = "FieldVisitScheduled";
49
+ VerificationStatus["SkillTestPending"] = "SkillTestPending";
50
+ VerificationStatus["SkillTestScheduled"] = "SkillTestScheduled";
51
+ VerificationStatus["TrainingPending"] = "TrainingPending";
52
+ VerificationStatus["TrainingScheduled"] = "TrainingScheduled";
53
+ VerificationStatus["FinalReview"] = "FinalReview";
54
+ VerificationStatus["Approved"] = "Approved";
55
+ VerificationStatus["Rejected"] = "Rejected";
56
+ })(VerificationStatus || (exports.VerificationStatus = VerificationStatus = {}));
57
+ /** Document types for artisan verification */
58
+ var DocumentType;
59
+ (function (DocumentType) {
60
+ DocumentType["Nin"] = "Nin";
61
+ DocumentType["AddressProof"] = "AddressProof";
62
+ DocumentType["TradeCertificate"] = "TradeCertificate";
63
+ DocumentType["PassportPhoto"] = "PassportPhoto";
64
+ DocumentType["Other"] = "Other";
65
+ })(DocumentType || (exports.DocumentType = DocumentType = {}));
66
+ /** Document review status */
67
+ var DocumentStatus;
68
+ (function (DocumentStatus) {
69
+ DocumentStatus["Pending"] = "Pending";
70
+ DocumentStatus["Approved"] = "Approved";
71
+ DocumentStatus["Rejected"] = "Rejected";
72
+ })(DocumentStatus || (exports.DocumentStatus = DocumentStatus = {}));
73
+ /** Guarantor verification status */
74
+ var GuarantorStatus;
75
+ (function (GuarantorStatus) {
76
+ GuarantorStatus["Pending"] = "Pending";
77
+ GuarantorStatus["Verified"] = "Verified";
78
+ GuarantorStatus["Rejected"] = "Rejected";
79
+ })(GuarantorStatus || (exports.GuarantorStatus = GuarantorStatus = {}));
80
+ /** Artisan availability status */
81
+ var AvailabilityStatus;
82
+ (function (AvailabilityStatus) {
83
+ AvailabilityStatus["Online"] = "Online";
84
+ AvailabilityStatus["Offline"] = "Offline";
85
+ AvailabilityStatus["Busy"] = "Busy";
86
+ AvailabilityStatus["OnBreak"] = "OnBreak";
87
+ })(AvailabilityStatus || (exports.AvailabilityStatus = AvailabilityStatus = {}));
88
+ /** Strike types for artisan performance tracking */
89
+ var StrikeType;
90
+ (function (StrikeType) {
91
+ StrikeType["QualityIssue"] = "QualityIssue";
92
+ StrikeType["PunctualityIssue"] = "PunctualityIssue";
93
+ StrikeType["CancellationIssue"] = "CancellationIssue";
94
+ StrikeType["DisputeIssue"] = "DisputeIssue";
95
+ })(StrikeType || (exports.StrikeType = StrikeType = {}));
96
+ /** Badge types for artisan achievements */
97
+ var BadgeType;
98
+ (function (BadgeType) {
99
+ BadgeType["TopRated"] = "TopRated";
100
+ BadgeType["Reliable"] = "Reliable";
101
+ BadgeType["Fast"] = "Fast";
102
+ BadgeType["Expert"] = "Expert";
103
+ BadgeType["Verified"] = "Verified";
104
+ BadgeType["NewArtisan"] = "NewArtisan";
105
+ })(BadgeType || (exports.BadgeType = BadgeType = {}));
106
+ /** Skill test result */
107
+ var SkillTestResult;
108
+ (function (SkillTestResult) {
109
+ SkillTestResult["Passed"] = "Passed";
110
+ SkillTestResult["Failed"] = "Failed";
111
+ SkillTestResult["Pending"] = "Pending";
112
+ })(SkillTestResult || (exports.SkillTestResult = SkillTestResult = {}));
113
+ /** Days of the week */
114
+ var DayOfWeek;
115
+ (function (DayOfWeek) {
116
+ DayOfWeek["Sunday"] = "Sunday";
117
+ DayOfWeek["Monday"] = "Monday";
118
+ DayOfWeek["Tuesday"] = "Tuesday";
119
+ DayOfWeek["Wednesday"] = "Wednesday";
120
+ DayOfWeek["Thursday"] = "Thursday";
121
+ DayOfWeek["Friday"] = "Friday";
122
+ DayOfWeek["Saturday"] = "Saturday";
123
+ })(DayOfWeek || (exports.DayOfWeek = DayOfWeek = {}));
124
+ /** Artisan account status */
125
+ var ArtisanStatus;
126
+ (function (ArtisanStatus) {
127
+ ArtisanStatus["Active"] = "Active";
128
+ ArtisanStatus["Inactive"] = "Inactive";
129
+ ArtisanStatus["OnBreak"] = "OnBreak";
130
+ ArtisanStatus["Suspended"] = "Suspended";
131
+ ArtisanStatus["Deleted"] = "Deleted";
132
+ })(ArtisanStatus || (exports.ArtisanStatus = ArtisanStatus = {}));
133
+ /** Preferred contact method */
134
+ var ContactMethod;
135
+ (function (ContactMethod) {
136
+ ContactMethod["InApp"] = "InApp";
137
+ ContactMethod["Phone"] = "Phone";
138
+ ContactMethod["Email"] = "Email";
139
+ })(ContactMethod || (exports.ContactMethod = ContactMethod = {}));
140
+ /** Supported languages */
141
+ var Language;
142
+ (function (Language) {
143
+ Language["English"] = "English";
144
+ Language["Yoruba"] = "Yoruba";
145
+ Language["Pidgin"] = "Pidgin";
146
+ })(Language || (exports.Language = Language = {}));
147
+ /** OTP purpose */
148
+ var OtpPurpose;
149
+ (function (OtpPurpose) {
150
+ OtpPurpose["Login"] = "Login";
151
+ OtpPurpose["Registration"] = "Registration";
152
+ OtpPurpose["PasswordReset"] = "PasswordReset";
153
+ OtpPurpose["PhoneVerification"] = "PhoneVerification";
154
+ })(OtpPurpose || (exports.OtpPurpose = OtpPurpose = {}));
155
+ /** Device type for sessions */
156
+ var DeviceType;
157
+ (function (DeviceType) {
158
+ DeviceType["iOS"] = "iOS";
159
+ DeviceType["Android"] = "Android";
160
+ DeviceType["Web"] = "Web";
161
+ DeviceType["Unknown"] = "Unknown";
162
+ })(DeviceType || (exports.DeviceType = DeviceType = {}));
163
+ /**
164
+ * Job workflow status
165
+ * IMPORTANT: Must follow this order for job lifecycle
166
+ */
167
+ var JobStatus;
168
+ (function (JobStatus) {
169
+ JobStatus["Pending"] = "Pending";
170
+ JobStatus["Assigned"] = "Assigned";
171
+ JobStatus["ArtisanEnRoute"] = "ArtisanEnRoute";
172
+ JobStatus["Arrived"] = "Arrived";
173
+ JobStatus["QuotePending"] = "QuotePending";
174
+ JobStatus["InProgress"] = "InProgress";
175
+ JobStatus["Completed"] = "Completed";
176
+ JobStatus["Cancelled"] = "Cancelled";
177
+ JobStatus["Disputed"] = "Disputed";
178
+ })(JobStatus || (exports.JobStatus = JobStatus = {}));
179
+ /** Payment method types */
180
+ var PaymentMethod;
181
+ (function (PaymentMethod) {
182
+ PaymentMethod["Card"] = "Card";
183
+ PaymentMethod["BankTransfer"] = "BankTransfer";
184
+ PaymentMethod["Cash"] = "Cash";
185
+ })(PaymentMethod || (exports.PaymentMethod = PaymentMethod = {}));
186
+ /** Payment status */
187
+ var PaymentStatus;
188
+ (function (PaymentStatus) {
189
+ PaymentStatus["Pending"] = "Pending";
190
+ PaymentStatus["Processing"] = "Processing";
191
+ PaymentStatus["Completed"] = "Completed";
192
+ PaymentStatus["Failed"] = "Failed";
193
+ PaymentStatus["Refunded"] = "Refunded";
194
+ })(PaymentStatus || (exports.PaymentStatus = PaymentStatus = {}));
195
+ /** Payout status for artisan earnings */
196
+ var PayoutStatus;
197
+ (function (PayoutStatus) {
198
+ PayoutStatus["Pending"] = "Pending";
199
+ PayoutStatus["Processing"] = "Processing";
200
+ PayoutStatus["Completed"] = "Completed";
201
+ PayoutStatus["Failed"] = "Failed";
202
+ })(PayoutStatus || (exports.PayoutStatus = PayoutStatus = {}));
203
+ /** B2B contract type */
204
+ var ContractType;
205
+ (function (ContractType) {
206
+ ContractType["Basic"] = "Basic";
207
+ ContractType["Standard"] = "Standard";
208
+ ContractType["Premium"] = "Premium";
209
+ })(ContractType || (exports.ContractType = ContractType = {}));
210
+ /** Alert severity for performance alerts */
211
+ var AlertSeverity;
212
+ (function (AlertSeverity) {
213
+ AlertSeverity["Info"] = "Info";
214
+ AlertSeverity["Warning"] = "Warning";
215
+ AlertSeverity["Critical"] = "Critical";
216
+ })(AlertSeverity || (exports.AlertSeverity = AlertSeverity = {}));
217
+ /** Consumer block reason */
218
+ var BlockReason;
219
+ (function (BlockReason) {
220
+ BlockReason["Fraud"] = "Fraud";
221
+ BlockReason["Abuse"] = "Abuse";
222
+ BlockReason["NonPayment"] = "NonPayment";
223
+ BlockReason["ViolationOfTerms"] = "ViolationOfTerms";
224
+ BlockReason["Other"] = "Other";
225
+ })(BlockReason || (exports.BlockReason = BlockReason = {}));
226
+ //# 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,35 @@
1
+ "use strict";
2
+ /**
3
+ * Osise API Types
4
+ * Export all types for easy consumption
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ // Enums
22
+ __exportStar(require("./enums"), exports);
23
+ // Common types
24
+ __exportStar(require("./common"), exports);
25
+ // Auth types
26
+ __exportStar(require("./auth"), exports);
27
+ // Consumer types
28
+ __exportStar(require("./consumer"), exports);
29
+ // Artisan types
30
+ __exportStar(require("./artisan"), exports);
31
+ // Admin types
32
+ __exportStar(require("./admin"), exports);
33
+ // Job types
34
+ __exportStar(require("./job"), exports);
35
+ //# 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,0CAAwB;AAExB,eAAe;AACf,2CAAyB;AAEzB,aAAa;AACb,yCAAuB;AAEvB,iBAAiB;AACjB,6CAA2B;AAE3B,gBAAgB;AAChB,4CAA0B;AAE1B,cAAc;AACd,0CAAwB;AAExB,YAAY;AACZ,wCAAsB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Job DTOs
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# 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,214 @@
1
+ "use strict";
2
+ /**
3
+ * HTTP Client for Osise API
4
+ * Zero-dependency fetch wrapper with interceptors
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.HttpClient = exports.OsiseApiError = void 0;
8
+ exports.createHttpClient = createHttpClient;
9
+ class OsiseApiError extends Error {
10
+ constructor(message, statusCode, errors = null, timestamp = new Date().toISOString(), options = {}) {
11
+ super(message);
12
+ this.name = 'OsiseApiError';
13
+ this.statusCode = statusCode;
14
+ this.errors = errors;
15
+ this.timestamp = timestamp;
16
+ this.isNetworkError = options.isNetworkError ?? false;
17
+ this.isTimeoutError = options.isTimeoutError ?? false;
18
+ this.isUnauthorized = statusCode === 401;
19
+ this.isForbidden = statusCode === 403;
20
+ this.isNotFound = statusCode === 404;
21
+ this.isValidationError = statusCode === 422;
22
+ this.isRateLimited = statusCode === 429;
23
+ }
24
+ static fromApiError(apiError) {
25
+ return new OsiseApiError(apiError.message, apiError.statusCode, apiError.errors, apiError.timestamp);
26
+ }
27
+ static networkError(message = 'Network error') {
28
+ return new OsiseApiError(message, 0, null, new Date().toISOString(), {
29
+ isNetworkError: true,
30
+ });
31
+ }
32
+ static timeoutError(message = 'Request timeout') {
33
+ return new OsiseApiError(message, 0, null, new Date().toISOString(), {
34
+ isTimeoutError: true,
35
+ });
36
+ }
37
+ }
38
+ exports.OsiseApiError = OsiseApiError;
39
+ class HttpClient {
40
+ constructor(config) {
41
+ this.isRefreshing = false;
42
+ this.refreshPromise = null;
43
+ this.config = {
44
+ timeout: 30000,
45
+ ...config,
46
+ };
47
+ }
48
+ buildUrl(url, params) {
49
+ const fullUrl = new URL(url, this.config.baseUrl);
50
+ if (params) {
51
+ Object.entries(params).forEach(([key, value]) => {
52
+ if (value !== undefined && value !== null) {
53
+ fullUrl.searchParams.append(key, String(value));
54
+ }
55
+ });
56
+ }
57
+ return fullUrl.toString();
58
+ }
59
+ async refreshTokenIfNeeded() {
60
+ if (!this.config.onTokenRefresh) {
61
+ return null;
62
+ }
63
+ if (this.isRefreshing && this.refreshPromise) {
64
+ return this.refreshPromise;
65
+ }
66
+ this.isRefreshing = true;
67
+ this.refreshPromise = this.config.onTokenRefresh();
68
+ try {
69
+ const newToken = await this.refreshPromise;
70
+ return newToken;
71
+ }
72
+ finally {
73
+ this.isRefreshing = false;
74
+ this.refreshPromise = null;
75
+ }
76
+ }
77
+ async request(config) {
78
+ const timeout = config.timeout ?? this.config.timeout ?? 30000;
79
+ const controller = new AbortController();
80
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
81
+ const headers = {
82
+ 'Content-Type': 'application/json',
83
+ 'Accept': 'application/json',
84
+ ...this.config.headers,
85
+ ...config.headers,
86
+ };
87
+ // Add auth token if available
88
+ const token = this.config.getAccessToken?.();
89
+ if (token) {
90
+ headers['Authorization'] = `Bearer ${token}`;
91
+ }
92
+ let requestConfig = {
93
+ ...config,
94
+ headers,
95
+ signal: config.signal ?? controller.signal,
96
+ };
97
+ // Apply request interceptor
98
+ if (this.config.onRequest) {
99
+ requestConfig = await this.config.onRequest(requestConfig);
100
+ }
101
+ const url = this.buildUrl(requestConfig.url, requestConfig.params);
102
+ try {
103
+ const response = await fetch(url, {
104
+ method: requestConfig.method,
105
+ headers: requestConfig.headers,
106
+ body: requestConfig.body ? JSON.stringify(requestConfig.body) : undefined,
107
+ signal: requestConfig.signal,
108
+ });
109
+ clearTimeout(timeoutId);
110
+ const data = await response.json();
111
+ // Handle 401 with token refresh
112
+ if (response.status === 401 && this.config.onTokenRefresh) {
113
+ const newToken = await this.refreshTokenIfNeeded();
114
+ if (newToken) {
115
+ // Retry the request with new token
116
+ headers['Authorization'] = `Bearer ${newToken}`;
117
+ const retryResponse = await fetch(url, {
118
+ method: requestConfig.method,
119
+ headers,
120
+ body: requestConfig.body ? JSON.stringify(requestConfig.body) : undefined,
121
+ });
122
+ const retryData = await retryResponse.json();
123
+ if (!retryData.success) {
124
+ const error = OsiseApiError.fromApiError(retryData);
125
+ await this.config.onError?.(error);
126
+ throw error;
127
+ }
128
+ // Apply response interceptor
129
+ if (this.config.onResponse) {
130
+ return await this.config.onResponse(retryData);
131
+ }
132
+ return retryData;
133
+ }
134
+ }
135
+ if (!data.success) {
136
+ const error = OsiseApiError.fromApiError(data);
137
+ await this.config.onError?.(error);
138
+ throw error;
139
+ }
140
+ // Apply response interceptor
141
+ if (this.config.onResponse) {
142
+ return await this.config.onResponse(data);
143
+ }
144
+ return data;
145
+ }
146
+ catch (error) {
147
+ clearTimeout(timeoutId);
148
+ if (error instanceof OsiseApiError) {
149
+ throw error;
150
+ }
151
+ if (error instanceof Error) {
152
+ if (error.name === 'AbortError') {
153
+ const timeoutError = OsiseApiError.timeoutError();
154
+ await this.config.onError?.(timeoutError);
155
+ throw timeoutError;
156
+ }
157
+ const networkError = OsiseApiError.networkError(error.message);
158
+ await this.config.onError?.(networkError);
159
+ throw networkError;
160
+ }
161
+ throw error;
162
+ }
163
+ }
164
+ async get(url, params, config) {
165
+ return this.request({
166
+ ...config,
167
+ url,
168
+ method: 'GET',
169
+ params,
170
+ });
171
+ }
172
+ async post(url, body, config) {
173
+ return this.request({
174
+ ...config,
175
+ url,
176
+ method: 'POST',
177
+ body,
178
+ });
179
+ }
180
+ async put(url, body, config) {
181
+ return this.request({
182
+ ...config,
183
+ url,
184
+ method: 'PUT',
185
+ body,
186
+ });
187
+ }
188
+ async patch(url, body, config) {
189
+ return this.request({
190
+ ...config,
191
+ url,
192
+ method: 'PATCH',
193
+ body,
194
+ });
195
+ }
196
+ async delete(url, config) {
197
+ return this.request({
198
+ ...config,
199
+ url,
200
+ method: 'DELETE',
201
+ });
202
+ }
203
+ updateConfig(config) {
204
+ this.config = { ...this.config, ...config };
205
+ }
206
+ getConfig() {
207
+ return { ...this.config };
208
+ }
209
+ }
210
+ exports.HttpClient = HttpClient;
211
+ function createHttpClient(config) {
212
+ return new HttpClient(config);
213
+ }
214
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./http-client"), exports);
18
+ __exportStar(require("./storage"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,4CAA0B"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * Token Storage Utilities
4
+ * Platform-agnostic storage interface
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SecureTokenStorage = exports.BrowserTokenStorage = exports.MemoryTokenStorage = void 0;
8
+ /** In-memory storage for environments without persistent storage */
9
+ class MemoryTokenStorage {
10
+ constructor() {
11
+ this.accessToken = null;
12
+ this.refreshToken = null;
13
+ }
14
+ getAccessToken() {
15
+ return this.accessToken;
16
+ }
17
+ getRefreshToken() {
18
+ return this.refreshToken;
19
+ }
20
+ setTokens(accessToken, refreshToken) {
21
+ this.accessToken = accessToken;
22
+ this.refreshToken = refreshToken;
23
+ }
24
+ clearTokens() {
25
+ this.accessToken = null;
26
+ this.refreshToken = null;
27
+ }
28
+ }
29
+ exports.MemoryTokenStorage = MemoryTokenStorage;
30
+ /** Browser localStorage-based storage */
31
+ class BrowserTokenStorage {
32
+ constructor(keyPrefix = 'osise') {
33
+ this.accessTokenKey = `${keyPrefix}_access_token`;
34
+ this.refreshTokenKey = `${keyPrefix}_refresh_token`;
35
+ }
36
+ getAccessToken() {
37
+ if (typeof window === 'undefined')
38
+ return null;
39
+ return localStorage.getItem(this.accessTokenKey);
40
+ }
41
+ getRefreshToken() {
42
+ if (typeof window === 'undefined')
43
+ return null;
44
+ return localStorage.getItem(this.refreshTokenKey);
45
+ }
46
+ setTokens(accessToken, refreshToken) {
47
+ if (typeof window === 'undefined')
48
+ return;
49
+ localStorage.setItem(this.accessTokenKey, accessToken);
50
+ localStorage.setItem(this.refreshTokenKey, refreshToken);
51
+ }
52
+ clearTokens() {
53
+ if (typeof window === 'undefined')
54
+ return;
55
+ localStorage.removeItem(this.accessTokenKey);
56
+ localStorage.removeItem(this.refreshTokenKey);
57
+ }
58
+ }
59
+ exports.BrowserTokenStorage = BrowserTokenStorage;
60
+ /** Secure storage wrapper for React Native (uses async storage) */
61
+ class SecureTokenStorage {
62
+ constructor(storage, keyPrefix = 'osise') {
63
+ this.initialized = false;
64
+ this.storage = storage;
65
+ this.memoryCache = new MemoryTokenStorage();
66
+ this.accessTokenKey = `${keyPrefix}_access_token`;
67
+ this.refreshTokenKey = `${keyPrefix}_refresh_token`;
68
+ }
69
+ async initialize() {
70
+ if (this.initialized)
71
+ return;
72
+ const [accessToken, refreshToken] = await Promise.all([
73
+ this.storage.getItem(this.accessTokenKey),
74
+ this.storage.getItem(this.refreshTokenKey),
75
+ ]);
76
+ if (accessToken && refreshToken) {
77
+ this.memoryCache.setTokens(accessToken, refreshToken);
78
+ }
79
+ this.initialized = true;
80
+ }
81
+ getAccessToken() {
82
+ return this.memoryCache.getAccessToken();
83
+ }
84
+ getRefreshToken() {
85
+ return this.memoryCache.getRefreshToken();
86
+ }
87
+ setTokens(accessToken, refreshToken) {
88
+ this.memoryCache.setTokens(accessToken, refreshToken);
89
+ // Fire and forget async storage update
90
+ Promise.all([
91
+ this.storage.setItem(this.accessTokenKey, accessToken),
92
+ this.storage.setItem(this.refreshTokenKey, refreshToken),
93
+ ]).catch(console.error);
94
+ }
95
+ clearTokens() {
96
+ this.memoryCache.clearTokens();
97
+ // Fire and forget async storage removal
98
+ Promise.all([
99
+ this.storage.removeItem(this.accessTokenKey),
100
+ this.storage.removeItem(this.refreshTokenKey),
101
+ ]).catch(console.error);
102
+ }
103
+ }
104
+ exports.SecureTokenStorage = SecureTokenStorage;
105
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/utils/storage.ts"],"names":[],"mappings":"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"}