@exyconn/common 2.1.0 → 2.3.3

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 (142) hide show
  1. package/README.md +969 -261
  2. package/dist/client/hooks/index.d.mts +1042 -0
  3. package/dist/client/hooks/index.d.ts +1042 -0
  4. package/dist/client/hooks/index.js +2276 -0
  5. package/dist/client/hooks/index.js.map +1 -0
  6. package/dist/client/hooks/index.mjs +2217 -0
  7. package/dist/client/hooks/index.mjs.map +1 -0
  8. package/dist/client/http/index.d.mts +217 -49
  9. package/dist/client/http/index.d.ts +217 -49
  10. package/dist/client/http/index.js +473 -94
  11. package/dist/client/http/index.js.map +1 -1
  12. package/dist/client/http/index.mjs +441 -84
  13. package/dist/client/http/index.mjs.map +1 -1
  14. package/dist/client/index.d.mts +6 -4
  15. package/dist/client/index.d.ts +6 -4
  16. package/dist/client/index.js +481 -319
  17. package/dist/client/index.js.map +1 -1
  18. package/dist/client/index.mjs +449 -290
  19. package/dist/client/index.mjs.map +1 -1
  20. package/dist/client/utils/index.d.mts +3 -279
  21. package/dist/client/utils/index.d.ts +3 -279
  22. package/dist/client/web/index.d.mts +1461 -0
  23. package/dist/client/web/index.d.ts +1461 -0
  24. package/dist/client/web/index.js +2681 -0
  25. package/dist/client/web/index.js.map +1 -0
  26. package/dist/client/web/index.mjs +2618 -0
  27. package/dist/client/web/index.mjs.map +1 -0
  28. package/dist/data/brand-identity.d.mts +149 -0
  29. package/dist/data/brand-identity.d.ts +149 -0
  30. package/dist/data/brand-identity.js +235 -0
  31. package/dist/data/brand-identity.js.map +1 -0
  32. package/dist/data/brand-identity.mjs +220 -0
  33. package/dist/data/brand-identity.mjs.map +1 -0
  34. package/dist/data/countries.d.mts +61 -0
  35. package/dist/data/countries.d.ts +61 -0
  36. package/dist/data/countries.js +987 -0
  37. package/dist/data/countries.js.map +1 -0
  38. package/dist/data/countries.mjs +971 -0
  39. package/dist/data/countries.mjs.map +1 -0
  40. package/dist/data/currencies.d.mts +19 -0
  41. package/dist/data/currencies.d.ts +19 -0
  42. package/dist/data/currencies.js +162 -0
  43. package/dist/data/currencies.js.map +1 -0
  44. package/dist/data/currencies.mjs +153 -0
  45. package/dist/data/currencies.mjs.map +1 -0
  46. package/dist/data/index.d.mts +7 -0
  47. package/dist/data/index.d.ts +7 -0
  48. package/dist/data/index.js +2087 -0
  49. package/dist/data/index.js.map +1 -0
  50. package/dist/data/index.mjs +1948 -0
  51. package/dist/data/index.mjs.map +1 -0
  52. package/dist/data/phone-codes.d.mts +15 -0
  53. package/dist/data/phone-codes.d.ts +15 -0
  54. package/dist/data/phone-codes.js +219 -0
  55. package/dist/data/phone-codes.js.map +1 -0
  56. package/dist/data/phone-codes.mjs +211 -0
  57. package/dist/data/phone-codes.mjs.map +1 -0
  58. package/dist/data/regex.d.mts +287 -0
  59. package/dist/data/regex.d.ts +287 -0
  60. package/dist/data/regex.js +306 -0
  61. package/dist/data/regex.js.map +1 -0
  62. package/dist/data/regex.mjs +208 -0
  63. package/dist/data/regex.mjs.map +1 -0
  64. package/dist/data/timezones.d.mts +16 -0
  65. package/dist/data/timezones.d.ts +16 -0
  66. package/dist/data/timezones.js +98 -0
  67. package/dist/data/timezones.js.map +1 -0
  68. package/dist/data/timezones.mjs +89 -0
  69. package/dist/data/timezones.mjs.map +1 -0
  70. package/dist/index-BZf42T3R.d.mts +305 -0
  71. package/dist/index-CF0D8PGE.d.ts +305 -0
  72. package/dist/index-Ckhm_HaX.d.mts +138 -0
  73. package/dist/index-DKn4raO7.d.ts +222 -0
  74. package/dist/index-NS8dS0p9.d.mts +222 -0
  75. package/dist/index-Nqm5_lwT.d.ts +188 -0
  76. package/dist/index-br6POSyA.d.ts +138 -0
  77. package/dist/index-jBi3V6e5.d.mts +188 -0
  78. package/dist/index.d.mts +21 -580
  79. package/dist/index.d.ts +21 -580
  80. package/dist/index.js +1839 -347
  81. package/dist/index.js.map +1 -1
  82. package/dist/index.mjs +1850 -359
  83. package/dist/index.mjs.map +1 -1
  84. package/dist/packageCheck-B_qfsD6R.d.ts +280 -0
  85. package/dist/packageCheck-C2_FT_Rl.d.mts +280 -0
  86. package/dist/server/configs/index.d.mts +602 -0
  87. package/dist/server/configs/index.d.ts +602 -0
  88. package/dist/server/configs/index.js +707 -0
  89. package/dist/server/configs/index.js.map +1 -0
  90. package/dist/server/configs/index.mjs +665 -0
  91. package/dist/server/configs/index.mjs.map +1 -0
  92. package/dist/server/index.d.mts +4 -1
  93. package/dist/server/index.d.ts +4 -1
  94. package/dist/server/index.js +1330 -0
  95. package/dist/server/index.js.map +1 -1
  96. package/dist/server/index.mjs +1286 -2
  97. package/dist/server/index.mjs.map +1 -1
  98. package/dist/server/middleware/index.d.mts +283 -2
  99. package/dist/server/middleware/index.d.ts +283 -2
  100. package/dist/server/middleware/index.js +761 -0
  101. package/dist/server/middleware/index.js.map +1 -1
  102. package/dist/server/middleware/index.mjs +751 -1
  103. package/dist/server/middleware/index.mjs.map +1 -1
  104. package/dist/shared/config/index.d.mts +40 -0
  105. package/dist/shared/config/index.d.ts +40 -0
  106. package/dist/shared/config/index.js +58 -0
  107. package/dist/shared/config/index.js.map +1 -0
  108. package/dist/shared/config/index.mjs +51 -0
  109. package/dist/shared/config/index.mjs.map +1 -0
  110. package/dist/shared/constants/index.d.mts +593 -0
  111. package/dist/shared/constants/index.d.ts +593 -0
  112. package/dist/shared/constants/index.js +391 -0
  113. package/dist/shared/constants/index.js.map +1 -0
  114. package/dist/shared/constants/index.mjs +360 -0
  115. package/dist/shared/constants/index.mjs.map +1 -0
  116. package/dist/shared/index.d.mts +5 -1
  117. package/dist/shared/index.d.ts +5 -1
  118. package/dist/shared/types/index.d.mts +140 -0
  119. package/dist/shared/types/index.d.ts +140 -0
  120. package/dist/shared/types/index.js +4 -0
  121. package/dist/shared/types/index.js.map +1 -0
  122. package/dist/shared/types/index.mjs +3 -0
  123. package/dist/shared/types/index.mjs.map +1 -0
  124. package/dist/shared/utils/index.d.mts +255 -0
  125. package/dist/shared/utils/index.d.ts +255 -0
  126. package/dist/shared/utils/index.js +623 -0
  127. package/dist/shared/utils/index.js.map +1 -0
  128. package/dist/shared/utils/index.mjs +324 -0
  129. package/dist/shared/utils/index.mjs.map +1 -0
  130. package/dist/shared/validation/index.d.mts +258 -0
  131. package/dist/shared/validation/index.d.ts +258 -0
  132. package/dist/shared/validation/index.js +185 -0
  133. package/dist/shared/validation/index.js.map +1 -0
  134. package/dist/shared/validation/index.mjs +172 -0
  135. package/dist/shared/validation/index.mjs.map +1 -0
  136. package/package.json +127 -62
  137. package/dist/index-BcxL4_V4.d.ts +0 -2946
  138. package/dist/index-DEzgM15j.d.ts +0 -67
  139. package/dist/index-DNFVgQx8.d.ts +0 -1375
  140. package/dist/index-DbV04Dx8.d.mts +0 -67
  141. package/dist/index-DfqEP6Oe.d.mts +0 -1375
  142. package/dist/index-bvvCev9Q.d.mts +0 -2946
@@ -6,122 +6,501 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
6
 
7
7
  var axios__default = /*#__PURE__*/_interopDefault(axios);
8
8
 
9
- // src/client/http/axios-instance.ts
10
- var createHttpClient = (options) => {
11
- const {
12
- baseURL,
13
- timeout = 3e4,
14
- withCredentials = true,
15
- getAuthToken,
16
- onUnauthorized,
17
- onServerError
18
- } = options;
19
- const instance = axios__default.default.create({
20
- baseURL,
21
- timeout,
22
- withCredentials,
23
- headers: {
24
- "Content-Type": "application/json"
25
- }
26
- });
27
- instance.interceptors.request.use(
28
- (config) => {
29
- if (getAuthToken) {
30
- const token = getAuthToken();
31
- if (token && config.headers) {
32
- config.headers.Authorization = `Bearer ${token}`;
33
- }
9
+ // src/client/http/http.ts
10
+
11
+ // src/client/http/logger.ts
12
+ var Logger = class {
13
+ constructor() {
14
+ this.isDevelopment = typeof window !== "undefined" && window.location.hostname === "localhost";
15
+ }
16
+ /**
17
+ * Log informational messages
18
+ */
19
+ info(message, data, options) {
20
+ if (this.isDevelopment) {
21
+ const prefix = options?.context ? `[${options.context}]` : "";
22
+ console.log(`${prefix} ${message}`, data ?? "");
23
+ }
24
+ }
25
+ /**
26
+ * Log warning messages
27
+ */
28
+ warn(message, data, options) {
29
+ if (this.isDevelopment) {
30
+ const prefix = options?.context ? `[${options.context}]` : "";
31
+ console.warn(`${prefix} ${message}`, data ?? "");
32
+ }
33
+ }
34
+ /**
35
+ * Log error messages
36
+ */
37
+ error(message, error, options) {
38
+ const prefix = options?.context ? `[${options.context}]` : "";
39
+ if (this.isDevelopment) {
40
+ console.error(`${prefix} ${message}`, error, options?.metadata || "");
41
+ }
42
+ }
43
+ /**
44
+ * Log debug messages (only in development)
45
+ */
46
+ debug(message, data, options) {
47
+ if (this.isDevelopment) {
48
+ const prefix = options?.context ? `[${options.context}]` : "";
49
+ console.debug(`${prefix} ${message}`, data || "");
50
+ }
51
+ }
52
+ /**
53
+ * Log API errors with structured information
54
+ */
55
+ apiError(endpoint, error, metadata) {
56
+ this.error(`API Error: ${endpoint}`, error, {
57
+ context: "API",
58
+ metadata: {
59
+ endpoint,
60
+ ...metadata
34
61
  }
35
- return config;
36
- },
37
- (error) => Promise.reject(error)
38
- );
39
- instance.interceptors.response.use(
40
- (response) => response,
41
- (error) => {
42
- if (error.response) {
43
- const status = error.response.status;
44
- if (status === 401 && onUnauthorized) {
45
- onUnauthorized();
46
- }
47
- if (status >= 500 && onServerError) {
48
- onServerError(error);
49
- }
62
+ });
63
+ }
64
+ };
65
+ var logger = new Logger();
66
+
67
+ // src/client/http/response-parser.ts
68
+ var STATUS_CODES = {
69
+ SUCCESS: 200,
70
+ CREATED: 201,
71
+ NO_CONTENT: 204,
72
+ BAD_REQUEST: 400,
73
+ UNAUTHORIZED: 401,
74
+ FORBIDDEN: 403,
75
+ NOT_FOUND: 404,
76
+ CONFLICT: 409,
77
+ ERROR: 500
78
+ };
79
+ var STATUS_MESSAGES = {
80
+ SUCCESS: "success",
81
+ CREATED: "created",
82
+ NO_CONTENT: "no_content",
83
+ BAD_REQUEST: "bad_request",
84
+ UNAUTHORIZED: "unauthorized",
85
+ FORBIDDEN: "forbidden",
86
+ NOT_FOUND: "not_found",
87
+ CONFLICT: "conflict",
88
+ ERROR: "error"
89
+ };
90
+ var SUCCESS_CODES = [200, 201, 204];
91
+ var ERROR_CODES = [400, 401, 403, 404, 409, 500];
92
+ var parseResponseData = (response, fallback = null) => {
93
+ try {
94
+ if (!response || typeof response !== "object") {
95
+ return fallback;
96
+ }
97
+ const resp = response;
98
+ if ("data" in resp) {
99
+ return resp["data"] ?? fallback;
100
+ }
101
+ return response;
102
+ } catch (error) {
103
+ logger.error("Error parsing response data", error);
104
+ return fallback;
105
+ }
106
+ };
107
+ var parseResponseMessage = (response, fallback = "") => {
108
+ try {
109
+ if (!response || typeof response !== "object") {
110
+ return fallback;
111
+ }
112
+ const resp = response;
113
+ if ("message" in resp && typeof resp["message"] === "string") {
114
+ return resp["message"];
115
+ }
116
+ return fallback;
117
+ } catch (error) {
118
+ logger.error("Error parsing response message", error);
119
+ return fallback;
120
+ }
121
+ };
122
+ var parseResponseStatus = (response) => {
123
+ try {
124
+ if (!response || typeof response !== "object") {
125
+ return null;
126
+ }
127
+ const resp = response;
128
+ if ("statusCode" in resp && typeof resp["statusCode"] === "number") {
129
+ return resp["statusCode"];
130
+ }
131
+ if ("status" in resp && typeof resp["status"] === "number") {
132
+ return resp["status"];
133
+ }
134
+ return null;
135
+ } catch (error) {
136
+ logger.error("Error parsing response status", error);
137
+ return null;
138
+ }
139
+ };
140
+ var parseResponseStatusMessage = (response, fallback = "") => {
141
+ try {
142
+ if (!response || typeof response !== "object") {
143
+ return fallback;
144
+ }
145
+ const resp = response;
146
+ if ("status" in resp && typeof resp["status"] === "string") {
147
+ return resp["status"];
148
+ }
149
+ return fallback;
150
+ } catch (error) {
151
+ logger.error("Error parsing response status message", error);
152
+ return fallback;
153
+ }
154
+ };
155
+ var isSuccessResponse = (response) => {
156
+ try {
157
+ const statusCode = parseResponseStatus(response);
158
+ if (statusCode !== null) {
159
+ return SUCCESS_CODES.includes(statusCode);
160
+ }
161
+ const status = parseResponseStatusMessage(response);
162
+ return [STATUS_MESSAGES.SUCCESS, STATUS_MESSAGES.CREATED, STATUS_MESSAGES.NO_CONTENT].includes(
163
+ status
164
+ );
165
+ } catch (error) {
166
+ logger.error("Error checking response success", error);
167
+ return false;
168
+ }
169
+ };
170
+ var isErrorResponse = (response) => {
171
+ try {
172
+ const statusCode = parseResponseStatus(response);
173
+ if (statusCode !== null) {
174
+ return ERROR_CODES.includes(statusCode);
175
+ }
176
+ return false;
177
+ } catch (error) {
178
+ logger.error("Error checking response error", error);
179
+ return false;
180
+ }
181
+ };
182
+ var parsePaginatedResponse = (response) => {
183
+ try {
184
+ if (!response || typeof response !== "object") {
185
+ return { items: [], total: 0, page: 1, limit: 10 };
186
+ }
187
+ const resp = response;
188
+ let items = [];
189
+ if ("data" in resp && Array.isArray(resp["data"])) {
190
+ items = resp["data"];
191
+ }
192
+ let total = items.length;
193
+ let page = 1;
194
+ let limit = 10;
195
+ let totalPages;
196
+ if ("paginationData" in resp && resp["paginationData"] && typeof resp["paginationData"] === "object") {
197
+ const paginationData = resp["paginationData"];
198
+ if ("total" in paginationData && typeof paginationData["total"] === "number") {
199
+ total = paginationData["total"];
200
+ }
201
+ if ("page" in paginationData && typeof paginationData["page"] === "number") {
202
+ page = paginationData["page"];
203
+ }
204
+ if ("limit" in paginationData && typeof paginationData["limit"] === "number") {
205
+ limit = paginationData["limit"];
206
+ }
207
+ if ("totalPages" in paginationData && typeof paginationData["totalPages"] === "number") {
208
+ totalPages = paginationData["totalPages"];
50
209
  }
51
- return Promise.reject(error);
52
210
  }
53
- );
54
- return instance;
211
+ let columns;
212
+ if ("columns" in resp && Array.isArray(resp["columns"])) {
213
+ columns = resp["columns"];
214
+ }
215
+ return {
216
+ items,
217
+ total,
218
+ page,
219
+ limit,
220
+ ...totalPages !== void 0 && { totalPages },
221
+ ...columns !== void 0 && { columns }
222
+ };
223
+ } catch (error) {
224
+ logger.error("Error parsing paginated response", error);
225
+ return { items: [], total: 0, page: 1, limit: 10 };
226
+ }
55
227
  };
56
- var withFormData = () => ({
57
- headers: {
58
- "Content-Type": "multipart/form-data"
228
+ var extractNestedData = (response, path, fallback = null) => {
229
+ try {
230
+ const keys = path.split(".");
231
+ let current = response;
232
+ for (const key of keys) {
233
+ if (current && typeof current === "object" && key in current) {
234
+ current = current[key];
235
+ } else {
236
+ return fallback;
237
+ }
238
+ }
239
+ return current;
240
+ } catch (error) {
241
+ logger.error("Error extracting nested data", error);
242
+ return fallback;
59
243
  }
60
- });
61
- var withTimeout = (ms) => ({
62
- timeout: ms
63
- });
64
- var withAbortSignal = (signal) => ({
65
- signal
66
- });
67
-
68
- // src/client/http/response-parser.ts
69
- var parseResponse = (response) => {
70
- if (response.data?.success && response.data?.data !== void 0) {
71
- return response.data.data;
244
+ };
245
+ var safeJsonParse = (json, fallback = null) => {
246
+ try {
247
+ return JSON.parse(json);
248
+ } catch (error) {
249
+ logger.error("Error parsing JSON", error);
250
+ return fallback;
72
251
  }
73
- return null;
74
252
  };
75
- var parseFullResponse = (response) => {
76
- return response.data;
253
+ var parseAxiosErrorMessage = (error) => {
254
+ try {
255
+ if (!error || typeof error !== "object") {
256
+ return "An unexpected error occurred";
257
+ }
258
+ const err = error;
259
+ if ("response" in err && err["response"] && typeof err["response"] === "object") {
260
+ const response = err["response"];
261
+ if ("data" in response && response["data"] && typeof response["data"] === "object") {
262
+ const data = response["data"];
263
+ if ("data" in data && data["data"] && typeof data["data"] === "object") {
264
+ const nestedData = data["data"];
265
+ if ("message" in nestedData && typeof nestedData["message"] === "string") {
266
+ return nestedData["message"];
267
+ }
268
+ }
269
+ if ("message" in data && typeof data["message"] === "string") {
270
+ return data["message"];
271
+ }
272
+ if ("error" in data && typeof data["error"] === "string") {
273
+ return data["error"];
274
+ }
275
+ }
276
+ }
277
+ if ("message" in err && typeof err["message"] === "string") {
278
+ return err["message"];
279
+ }
280
+ if (typeof error === "string") {
281
+ return error;
282
+ }
283
+ return "An unexpected error occurred";
284
+ } catch (parseError2) {
285
+ logger.error("Error parsing axios error message", parseError2);
286
+ return "An unexpected error occurred";
287
+ }
77
288
  };
78
289
  var parseError = (error) => {
79
- if (error.response?.data?.message) {
80
- return error.response.data.message;
290
+ try {
291
+ if (!error || typeof error !== "object") {
292
+ return {
293
+ message: "An unexpected error occurred",
294
+ statusCode: null,
295
+ data: null
296
+ };
297
+ }
298
+ const err = error;
299
+ let statusCode = null;
300
+ let data = null;
301
+ let status;
302
+ if ("response" in err && err["response"] && typeof err["response"] === "object") {
303
+ const response = err["response"];
304
+ if ("status" in response && typeof response["status"] === "number") {
305
+ statusCode = response["status"];
306
+ }
307
+ if ("data" in response && response["data"] !== void 0) {
308
+ data = response["data"];
309
+ if (data && typeof data === "object" && "status" in data) {
310
+ const dataObj = data;
311
+ if (typeof dataObj["status"] === "string") {
312
+ status = dataObj["status"];
313
+ }
314
+ }
315
+ }
316
+ }
317
+ if (statusCode === null && "statusCode" in err && typeof err["statusCode"] === "number") {
318
+ statusCode = err["statusCode"];
319
+ }
320
+ if (data === null && "data" in err && err["data"] !== void 0) {
321
+ data = err["data"];
322
+ }
323
+ if (!status && "status" in err && typeof err["status"] === "string") {
324
+ status = err["status"];
325
+ }
326
+ return {
327
+ message: parseAxiosErrorMessage(error),
328
+ statusCode,
329
+ data,
330
+ ...status !== void 0 && { status }
331
+ };
332
+ } catch (err) {
333
+ logger.error("Error parsing error object", err);
334
+ return {
335
+ message: "An unexpected error occurred",
336
+ statusCode: null,
337
+ data: null
338
+ };
81
339
  }
82
- if (error.response?.data?.error) {
83
- return error.response.data.error;
340
+ };
341
+ var simpleParseResponse = (response) => {
342
+ return response?.data?.data?.data;
343
+ };
344
+ var simpleMetaParseResponse = (response) => {
345
+ return response?.data?.data?.meta;
346
+ };
347
+ var simpleParseDualDataResponse = (response) => {
348
+ return response?.data?.data;
349
+ };
350
+
351
+ // src/client/http/http.ts
352
+ var isDevelopment = typeof window !== "undefined" && window.location.hostname === "localhost";
353
+ var API_BASE_URL = isDevelopment ? "http://localhost:4002" : "https://service-api.exyconn.com";
354
+ var API_PREFIX = "/v1/api";
355
+ var axiosInstance = axios__default.default.create({
356
+ baseURL: API_BASE_URL,
357
+ timeout: 3e4,
358
+ // 30 seconds
359
+ headers: {
360
+ "Content-Type": "application/json"
84
361
  }
85
- if (error.code === "ERR_NETWORK") {
86
- return "Network error. Please check your connection.";
362
+ });
363
+ axiosInstance.interceptors.request.use(
364
+ (config) => {
365
+ try {
366
+ if (typeof window !== "undefined" && window.localStorage) {
367
+ const selectedOrg = localStorage.getItem("selectedOrganization");
368
+ if (selectedOrg) {
369
+ const org = JSON.parse(selectedOrg);
370
+ if (org && org._id) {
371
+ config.headers["x-organization-id"] = org._id;
372
+ }
373
+ }
374
+ }
375
+ } catch (error) {
376
+ logger.warn("Failed to read organization from localStorage", error);
377
+ }
378
+ return config;
379
+ },
380
+ (error) => {
381
+ return Promise.reject(error);
87
382
  }
88
- if (error.code === "ECONNABORTED") {
89
- return "Request timed out. Please try again.";
383
+ );
384
+ axiosInstance.interceptors.response.use(
385
+ (response) => response,
386
+ (error) => {
387
+ const parsedError = parseError(error);
388
+ logger.error("API Error", parsedError);
389
+ return Promise.reject(parsedError);
90
390
  }
91
- return error.message || "An unexpected error occurred.";
391
+ );
392
+ var buildHeaders = (customHeaders) => {
393
+ const headers = {
394
+ "Content-Type": "application/json",
395
+ ...customHeaders
396
+ };
397
+ return headers;
92
398
  };
93
- var isSuccess = (response) => {
94
- return response.data?.success === true;
399
+ var buildConfig = (params, customHeaders) => {
400
+ const config = {
401
+ headers: buildHeaders(customHeaders)
402
+ };
403
+ if (params) {
404
+ config.params = params;
405
+ }
406
+ return config;
407
+ };
408
+ var getRequest = async (url, params, customHeaders) => {
409
+ const config = buildConfig(params, customHeaders);
410
+ return axiosInstance.get(url, config);
95
411
  };
96
- var isStatusError = (error, statusCode) => {
97
- return error.response?.status === statusCode;
412
+ var postRequest = async (url, data, customHeaders) => {
413
+ const config = buildConfig(void 0, customHeaders);
414
+ return axiosInstance.post(url, data, config);
98
415
  };
99
- var isUnauthorized = (error) => {
100
- return isStatusError(error, 401);
416
+ var putRequest = async (url, data, customHeaders) => {
417
+ const config = buildConfig(void 0, customHeaders);
418
+ return axiosInstance.put(url, data, config);
101
419
  };
102
- var isForbidden = (error) => {
103
- return isStatusError(error, 403);
420
+ var patchRequest = async (url, data, customHeaders) => {
421
+ const config = buildConfig(void 0, customHeaders);
422
+ return axiosInstance.patch(url, data, config);
423
+ };
424
+ var deleteRequest = async (url, params, customHeaders) => {
425
+ const config = buildConfig(params, customHeaders);
426
+ return axiosInstance.delete(url, config);
427
+ };
428
+ var uploadFile = async (url, file, additionalData) => {
429
+ const formData = new FormData();
430
+ formData.append("file", file);
431
+ if (additionalData) {
432
+ Object.entries(additionalData).forEach(([key, value]) => {
433
+ formData.append(key, String(value));
434
+ });
435
+ }
436
+ const config = {
437
+ headers: {
438
+ "Content-Type": "multipart/form-data"
439
+ }
440
+ };
441
+ return axiosInstance.post(url, formData, config);
442
+ };
443
+ var extractData = (response) => {
444
+ return parseResponseData(response.data);
445
+ };
446
+ var extractMessage = (response) => {
447
+ return parseResponseMessage(response, "");
448
+ };
449
+ var isSuccess = (response) => {
450
+ return response.status >= 200 && response.status < 300;
451
+ };
452
+ var extractPaginatedData = (response) => {
453
+ return parsePaginatedResponse(response.data);
454
+ };
455
+
456
+ // src/client/http/slug.ts
457
+ var generateSlug = (text) => {
458
+ if (!text) return "";
459
+ return text.trim().replace(/[^\w\s]/g, "").replace(/\s+(.)/g, (_, char) => char.toUpperCase()).replace(/\s+/g, "").replace(/^(.)/, (_, char) => char.toLowerCase());
104
460
  };
105
- var isNotFound = (error) => {
106
- return isStatusError(error, 404);
461
+ var generateUrlSlug = (text) => {
462
+ if (!text) return "";
463
+ return text.trim().toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
107
464
  };
108
- var isServerError = (error) => {
109
- const status = error.response?.status;
110
- return status !== void 0 && status >= 500;
465
+ var generateSnakeSlug = (text) => {
466
+ if (!text) return "";
467
+ return text.trim().toLowerCase().replace(/[^\w\s]/g, "").replace(/\s+/g, "_").replace(/_+/g, "_").replace(/^_|_$/g, "");
111
468
  };
112
469
 
113
- exports.createHttpClient = createHttpClient;
114
- exports.isForbidden = isForbidden;
115
- exports.isNotFound = isNotFound;
116
- exports.isServerError = isServerError;
117
- exports.isStatusError = isStatusError;
470
+ exports.API_BASE_URL = API_BASE_URL;
471
+ exports.API_PREFIX = API_PREFIX;
472
+ exports.ERROR_CODES = ERROR_CODES;
473
+ exports.STATUS_CODES = STATUS_CODES;
474
+ exports.STATUS_MESSAGES = STATUS_MESSAGES;
475
+ exports.SUCCESS_CODES = SUCCESS_CODES;
476
+ exports.axios = axiosInstance;
477
+ exports.deleteRequest = deleteRequest;
478
+ exports.extractData = extractData;
479
+ exports.extractMessage = extractMessage;
480
+ exports.extractNestedData = extractNestedData;
481
+ exports.extractPaginatedData = extractPaginatedData;
482
+ exports.generateSlug = generateSlug;
483
+ exports.generateSnakeSlug = generateSnakeSlug;
484
+ exports.generateUrlSlug = generateUrlSlug;
485
+ exports.getRequest = getRequest;
486
+ exports.isErrorResponse = isErrorResponse;
118
487
  exports.isSuccess = isSuccess;
119
- exports.isUnauthorized = isUnauthorized;
488
+ exports.isSuccessResponse = isSuccessResponse;
489
+ exports.logger = logger;
490
+ exports.parseAxiosErrorMessage = parseAxiosErrorMessage;
120
491
  exports.parseError = parseError;
121
- exports.parseFullResponse = parseFullResponse;
122
- exports.parseResponse = parseResponse;
123
- exports.withAbortSignal = withAbortSignal;
124
- exports.withFormData = withFormData;
125
- exports.withTimeout = withTimeout;
492
+ exports.parsePaginatedResponse = parsePaginatedResponse;
493
+ exports.parseResponseData = parseResponseData;
494
+ exports.parseResponseMessage = parseResponseMessage;
495
+ exports.parseResponseStatus = parseResponseStatus;
496
+ exports.parseResponseStatusMessage = parseResponseStatusMessage;
497
+ exports.patchRequest = patchRequest;
498
+ exports.postRequest = postRequest;
499
+ exports.putRequest = putRequest;
500
+ exports.safeJsonParse = safeJsonParse;
501
+ exports.simpleMetaParseResponse = simpleMetaParseResponse;
502
+ exports.simpleParseDualDataResponse = simpleParseDualDataResponse;
503
+ exports.simpleParseResponse = simpleParseResponse;
504
+ exports.uploadFile = uploadFile;
126
505
  //# sourceMappingURL=index.js.map
127
506
  //# sourceMappingURL=index.js.map