celitech-sdk 1.3.61 → 1.3.64
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.
- package/LICENSE +1 -1
- package/README.md +7 -7
- package/dist/index.d.ts +602 -41
- package/dist/index.js +695 -19
- package/dist/index.mjs +693 -19
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
// src/http/handlers/handler-chain.ts
|
|
2
2
|
var RequestHandlerChain = class {
|
|
3
3
|
constructor() {
|
|
4
|
+
/** Array of handlers in the chain */
|
|
4
5
|
this.handlers = [];
|
|
5
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Adds a handler to the end of the chain.
|
|
9
|
+
* Links the new handler to the previous one in the chain.
|
|
10
|
+
* @param handler - The request handler to add
|
|
11
|
+
*/
|
|
6
12
|
addHandler(handler) {
|
|
7
13
|
if (this.handlers.length > 0) {
|
|
8
14
|
const previousHandler = this.handlers[this.handlers.length - 1];
|
|
@@ -10,12 +16,26 @@ var RequestHandlerChain = class {
|
|
|
10
16
|
}
|
|
11
17
|
this.handlers.push(handler);
|
|
12
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Executes the handler chain for a standard request.
|
|
21
|
+
* @template T - The expected response data type
|
|
22
|
+
* @param request - The HTTP request to process
|
|
23
|
+
* @returns A promise that resolves to the HTTP response
|
|
24
|
+
* @throws Error if no handlers are added to the chain
|
|
25
|
+
*/
|
|
13
26
|
async callChain(request) {
|
|
14
27
|
if (!this.handlers.length) {
|
|
15
28
|
throw new Error("No handlers added to the chain");
|
|
16
29
|
}
|
|
17
30
|
return this.handlers[0].handle(request);
|
|
18
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Executes the handler chain for a streaming request.
|
|
34
|
+
* @template T - The expected response data type for each chunk
|
|
35
|
+
* @param request - The HTTP request to process
|
|
36
|
+
* @returns An async generator that yields HTTP responses
|
|
37
|
+
* @throws Error if no handlers are added to the chain
|
|
38
|
+
*/
|
|
19
39
|
async *streamChain(request) {
|
|
20
40
|
if (!this.handlers.length) {
|
|
21
41
|
throw new Error("No handlers added to the chain");
|
|
@@ -26,6 +46,12 @@ var RequestHandlerChain = class {
|
|
|
26
46
|
|
|
27
47
|
// src/http/error.ts
|
|
28
48
|
var HttpError = class extends Error {
|
|
49
|
+
/**
|
|
50
|
+
* Creates a new HTTP error.
|
|
51
|
+
* @param metadata - HTTP response metadata
|
|
52
|
+
* @param raw - Raw response object (optional)
|
|
53
|
+
* @param error - Custom error message (optional, defaults to status text)
|
|
54
|
+
*/
|
|
29
55
|
constructor(metadata, raw, error) {
|
|
30
56
|
super(error);
|
|
31
57
|
this.error = metadata.statusText;
|
|
@@ -36,12 +62,35 @@ var HttpError = class extends Error {
|
|
|
36
62
|
|
|
37
63
|
// src/http/hooks/custom-hook.ts
|
|
38
64
|
var CustomHook = class {
|
|
65
|
+
/**
|
|
66
|
+
* Called before an HTTP request is sent.
|
|
67
|
+
* Default implementation returns the request unchanged.
|
|
68
|
+
* @param request - The HTTP request to be sent
|
|
69
|
+
* @param params - Additional custom parameters
|
|
70
|
+
* @returns A promise that resolves to the unmodified request
|
|
71
|
+
*/
|
|
39
72
|
async beforeRequest(request, params) {
|
|
40
73
|
return request;
|
|
41
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Called after a successful HTTP response is received.
|
|
77
|
+
* Default implementation returns the response unchanged.
|
|
78
|
+
* @param request - The original HTTP request
|
|
79
|
+
* @param response - The HTTP response received
|
|
80
|
+
* @param params - Additional custom parameters
|
|
81
|
+
* @returns A promise that resolves to the unmodified response
|
|
82
|
+
*/
|
|
42
83
|
async afterResponse(request, response, params) {
|
|
43
84
|
return response;
|
|
44
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Called when an HTTP request results in an error.
|
|
88
|
+
* Default implementation wraps the error response in an HttpError object.
|
|
89
|
+
* @param request - The original HTTP request
|
|
90
|
+
* @param response - The error response received
|
|
91
|
+
* @param params - Additional custom parameters
|
|
92
|
+
* @returns A promise that resolves to an HttpError object
|
|
93
|
+
*/
|
|
45
94
|
async onError(request, response, params) {
|
|
46
95
|
return new HttpError(response.metadata, response.raw);
|
|
47
96
|
}
|
|
@@ -49,6 +98,11 @@ var CustomHook = class {
|
|
|
49
98
|
|
|
50
99
|
// src/http/serialization/base-serializer.ts
|
|
51
100
|
var Serializer = class {
|
|
101
|
+
/**
|
|
102
|
+
* Serializes a parameter value based on its type and serialization style.
|
|
103
|
+
* @param param - The request parameter to serialize
|
|
104
|
+
* @returns The serialized string representation
|
|
105
|
+
*/
|
|
52
106
|
serializeValue(param) {
|
|
53
107
|
if (Array.isArray(param.value)) {
|
|
54
108
|
return this.serializeArray(param.value, param);
|
|
@@ -58,6 +112,11 @@ var Serializer = class {
|
|
|
58
112
|
}
|
|
59
113
|
return this.serializePrimitive(param);
|
|
60
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Serializes a primitive value (string, number, boolean).
|
|
117
|
+
* @param param - The request parameter containing the primitive value
|
|
118
|
+
* @returns The serialized primitive string
|
|
119
|
+
*/
|
|
61
120
|
serializePrimitive(param) {
|
|
62
121
|
if (param.style === "label" /* LABEL */) {
|
|
63
122
|
return `.${param.value}`;
|
|
@@ -68,6 +127,12 @@ var Serializer = class {
|
|
|
68
127
|
}
|
|
69
128
|
return `${param.value}`;
|
|
70
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Serializes an array value according to the specified style.
|
|
132
|
+
* @param value - The array to serialize
|
|
133
|
+
* @param param - The request parameter configuration
|
|
134
|
+
* @returns The serialized array string
|
|
135
|
+
*/
|
|
71
136
|
serializeArray(value, param) {
|
|
72
137
|
if (param.explode) {
|
|
73
138
|
this.serializeArrayExploded(value, param);
|
|
@@ -88,6 +153,12 @@ var Serializer = class {
|
|
|
88
153
|
}
|
|
89
154
|
return `${value.join(",")}`;
|
|
90
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Serializes an array in exploded format where each value is a separate parameter.
|
|
158
|
+
* @param value - The array to serialize
|
|
159
|
+
* @param param - The request parameter configuration
|
|
160
|
+
* @returns The serialized exploded array string
|
|
161
|
+
*/
|
|
91
162
|
serializeArrayExploded(value, param) {
|
|
92
163
|
if (param.style === "simple" /* SIMPLE */) {
|
|
93
164
|
return value.map((val) => `${val}`).join(",");
|
|
@@ -100,6 +171,12 @@ var Serializer = class {
|
|
|
100
171
|
}
|
|
101
172
|
return `${value.join(",")}`;
|
|
102
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Serializes an object value according to the specified style.
|
|
176
|
+
* @param obj - The object to serialize
|
|
177
|
+
* @param param - The request parameter configuration
|
|
178
|
+
* @returns The serialized object string
|
|
179
|
+
*/
|
|
103
180
|
serializeObject(obj, param) {
|
|
104
181
|
if (param.explode) {
|
|
105
182
|
if (param.style === "simple" /* SIMPLE */) {
|
|
@@ -127,6 +204,11 @@ var Serializer = class {
|
|
|
127
204
|
}
|
|
128
205
|
return Object.entries(obj).map(([key, val]) => `${key}=${val}`).join("&");
|
|
129
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Type guard to check if a value is a non-null object.
|
|
209
|
+
* @param value - The value to check
|
|
210
|
+
* @returns True if the value is an object and not null
|
|
211
|
+
*/
|
|
130
212
|
isNonNullObject(value) {
|
|
131
213
|
return typeof value === "object" && value !== null;
|
|
132
214
|
}
|
|
@@ -137,6 +219,14 @@ var TransportHookAdapter = class {
|
|
|
137
219
|
constructor() {
|
|
138
220
|
this.hook = new CustomHook();
|
|
139
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Invokes the custom hook before sending the request.
|
|
224
|
+
* Converts the Request to HttpRequest format, calls the hook, then converts back.
|
|
225
|
+
*
|
|
226
|
+
* @param request - The internal Request object
|
|
227
|
+
* @param params - Additional parameters to pass to the hook
|
|
228
|
+
* @returns The modified Request after hook processing
|
|
229
|
+
*/
|
|
140
230
|
async beforeRequest(request, params) {
|
|
141
231
|
const hookRequest = this.requestToHookRequest(request);
|
|
142
232
|
const newRequest = await this.hook.beforeRequest(hookRequest, params);
|
|
@@ -151,14 +241,39 @@ var TransportHookAdapter = class {
|
|
|
151
241
|
});
|
|
152
242
|
return newTransportRequest;
|
|
153
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Invokes the custom hook after receiving a response.
|
|
246
|
+
* Converts the Request to HttpRequest format and calls the hook with the response.
|
|
247
|
+
*
|
|
248
|
+
* @param request - The internal Request object
|
|
249
|
+
* @param response - The HTTP response received
|
|
250
|
+
* @param params - Additional parameters to pass to the hook
|
|
251
|
+
* @returns The potentially modified response after hook processing
|
|
252
|
+
*/
|
|
154
253
|
async afterResponse(request, response, params) {
|
|
155
254
|
const hookRequest = this.requestToHookRequest(request);
|
|
156
255
|
return this.hook.afterResponse(hookRequest, response, params);
|
|
157
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
* Invokes the custom hook when an error occurs.
|
|
259
|
+
* Converts the Request to HttpRequest format and calls the error hook.
|
|
260
|
+
*
|
|
261
|
+
* @param request - The internal Request object
|
|
262
|
+
* @param response - The HTTP response that triggered the error
|
|
263
|
+
* @param params - Additional parameters to pass to the hook
|
|
264
|
+
* @returns The HttpError from the hook
|
|
265
|
+
*/
|
|
158
266
|
async onError(request, response, params) {
|
|
159
267
|
const hookRequest = this.requestToHookRequest(request);
|
|
160
268
|
return this.hook.onError(hookRequest, response, params);
|
|
161
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Converts the internal Request representation to the hook's HttpRequest format.
|
|
272
|
+
* Extracts parameter values from RequestParameter wrappers.
|
|
273
|
+
*
|
|
274
|
+
* @param request - The internal Request object
|
|
275
|
+
* @returns An HttpRequest object for hook processing
|
|
276
|
+
*/
|
|
162
277
|
requestToHookRequest(request) {
|
|
163
278
|
const hookHeaders = /* @__PURE__ */ new Map();
|
|
164
279
|
request.headers.forEach((header, key) => {
|
|
@@ -183,6 +298,16 @@ var TransportHookAdapter = class {
|
|
|
183
298
|
};
|
|
184
299
|
return hookRequest;
|
|
185
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Converts hook parameter maps back to RequestParameter format.
|
|
303
|
+
* Preserves serialization metadata from the original parameters.
|
|
304
|
+
*
|
|
305
|
+
* @template T - The parameter value type
|
|
306
|
+
* @param hookParams - The parameter map from hook processing
|
|
307
|
+
* @param originalTransportParams - The original RequestParameter map for metadata
|
|
308
|
+
* @param encode - Whether to encode the parameters
|
|
309
|
+
* @returns A map of RequestParameter objects for transport
|
|
310
|
+
*/
|
|
186
311
|
hookParamsToTransportParams(hookParams, originalTransportParams, encode) {
|
|
187
312
|
const transportParams = /* @__PURE__ */ new Map();
|
|
188
313
|
hookParams.forEach((hookParamValue, hookParamKey) => {
|
|
@@ -244,6 +369,14 @@ var HookHandler = class {
|
|
|
244
369
|
constructor(hook) {
|
|
245
370
|
this.hook = hook;
|
|
246
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Handles a standard HTTP request with hook invocation.
|
|
374
|
+
* Calls beforeRequest hook, processes the request, and calls afterResponse or onError hooks.
|
|
375
|
+
* @template T - The expected response data type
|
|
376
|
+
* @param request - The HTTP request to process
|
|
377
|
+
* @returns A promise that resolves to the HTTP response
|
|
378
|
+
* @throws Error if no next handler is set, or if error handling fails
|
|
379
|
+
*/
|
|
247
380
|
async handle(request) {
|
|
248
381
|
var _a;
|
|
249
382
|
if (!this.next) {
|
|
@@ -277,6 +410,14 @@ StatusCode: ${response.metadata.status}
|
|
|
277
410
|
Body: ${decodedBody}`
|
|
278
411
|
);
|
|
279
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Handles a streaming HTTP request with hook invocation.
|
|
415
|
+
* Calls beforeRequest hook and afterResponse/onError hooks for each chunk.
|
|
416
|
+
* @template T - The expected response data type for each chunk
|
|
417
|
+
* @param request - The HTTP request to process
|
|
418
|
+
* @returns An async generator that yields HTTP responses
|
|
419
|
+
* @throws Error if no next handler is set, or if error handling fails
|
|
420
|
+
*/
|
|
280
421
|
async *stream(request) {
|
|
281
422
|
if (!this.next) {
|
|
282
423
|
throw new Error("No next handler set in hook handler.");
|
|
@@ -293,6 +434,12 @@ Body: ${decodedBody}`
|
|
|
293
434
|
}
|
|
294
435
|
}
|
|
295
436
|
}
|
|
437
|
+
/**
|
|
438
|
+
* Extracts hook parameters from the request configuration.
|
|
439
|
+
* @template T - The response data type
|
|
440
|
+
* @param request - The HTTP request
|
|
441
|
+
* @returns A map of hook parameter names to values
|
|
442
|
+
*/
|
|
296
443
|
getHookParams(_request) {
|
|
297
444
|
const hookParams = /* @__PURE__ */ new Map();
|
|
298
445
|
return hookParams;
|
|
@@ -304,9 +451,19 @@ import { ZodUndefined } from "zod";
|
|
|
304
451
|
|
|
305
452
|
// src/http/utils/response-matcher.ts
|
|
306
453
|
var ResponseMatcher = class {
|
|
454
|
+
/**
|
|
455
|
+
* Creates a new response matcher.
|
|
456
|
+
* @param responses - Array of possible response definitions for an endpoint
|
|
457
|
+
*/
|
|
307
458
|
constructor(responses) {
|
|
308
459
|
this.responses = responses;
|
|
309
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Finds the matching response definition for an HTTP response.
|
|
463
|
+
* Matches based on status code and content type from the response headers.
|
|
464
|
+
* @param response - The HTTP response to match
|
|
465
|
+
* @returns The matching response definition, or undefined if no match found
|
|
466
|
+
*/
|
|
310
467
|
getResponseDefinition(response) {
|
|
311
468
|
var _a;
|
|
312
469
|
const rawContentType = ((_a = response.metadata.headers["content-type"]) == null ? void 0 : _a.toLocaleLowerCase()) || "";
|
|
@@ -326,10 +483,23 @@ var ResponseMatcher = class {
|
|
|
326
483
|
|
|
327
484
|
// src/http/handlers/response-validation-handler.ts
|
|
328
485
|
var ResponseValidationHandler = class {
|
|
486
|
+
/**
|
|
487
|
+
* Handles a standard HTTP request and validates its response.
|
|
488
|
+
* @template T - The expected response data type
|
|
489
|
+
* @param request - The HTTP request to process
|
|
490
|
+
* @returns A promise that resolves to the validated HTTP response
|
|
491
|
+
*/
|
|
329
492
|
async handle(request) {
|
|
330
493
|
const response = await this.next.handle(request);
|
|
331
494
|
return this.decodeBody(request, response);
|
|
332
495
|
}
|
|
496
|
+
/**
|
|
497
|
+
* Handles a streaming HTTP request and validates response chunks.
|
|
498
|
+
* @template T - The expected response data type for each chunk
|
|
499
|
+
* @param request - The HTTP request to process
|
|
500
|
+
* @returns An async generator that yields validated HTTP responses
|
|
501
|
+
* @throws Error if response headers are enabled (streaming not supported with headers)
|
|
502
|
+
*/
|
|
333
503
|
async *stream(request) {
|
|
334
504
|
const stream = this.next.stream(request);
|
|
335
505
|
for await (const response of stream) {
|
|
@@ -423,6 +593,14 @@ var ResponseValidationHandler = class {
|
|
|
423
593
|
data: this.validate(request, responseDefinition, json)
|
|
424
594
|
};
|
|
425
595
|
}
|
|
596
|
+
/**
|
|
597
|
+
* Validates response data against the expected schema if validation is enabled.
|
|
598
|
+
* @template T - The expected data type
|
|
599
|
+
* @param request - The HTTP request containing validation settings
|
|
600
|
+
* @param response - The response definition with schema
|
|
601
|
+
* @param data - The data to validate
|
|
602
|
+
* @returns The validated data (parsed if validation enabled, raw otherwise)
|
|
603
|
+
*/
|
|
426
604
|
validate(request, response, data) {
|
|
427
605
|
var _a;
|
|
428
606
|
if ((_a = request.validation) == null ? void 0 : _a.responseValidation) {
|
|
@@ -430,9 +608,21 @@ var ResponseValidationHandler = class {
|
|
|
430
608
|
}
|
|
431
609
|
return data;
|
|
432
610
|
}
|
|
611
|
+
/**
|
|
612
|
+
* Checks if a response should contain data based on its schema and status.
|
|
613
|
+
* @template T - The response data type
|
|
614
|
+
* @param responseDefinition - The response definition
|
|
615
|
+
* @param response - The HTTP response
|
|
616
|
+
* @returns True if the response should have content, false otherwise
|
|
617
|
+
*/
|
|
433
618
|
hasContent(responseDefinition, response) {
|
|
434
619
|
return !!responseDefinition.schema && !(responseDefinition.schema instanceof ZodUndefined) && response.metadata.status !== 204;
|
|
435
620
|
}
|
|
621
|
+
/**
|
|
622
|
+
* Parses URL-encoded data into an object.
|
|
623
|
+
* @param urlEncodedData - The URL-encoded string
|
|
624
|
+
* @returns An object with decoded key-value pairs
|
|
625
|
+
*/
|
|
436
626
|
fromUrlEncoded(urlEncodedData) {
|
|
437
627
|
const pairs = urlEncodedData.split("&");
|
|
438
628
|
const result = {};
|
|
@@ -444,6 +634,11 @@ var ResponseValidationHandler = class {
|
|
|
444
634
|
});
|
|
445
635
|
return result;
|
|
446
636
|
}
|
|
637
|
+
/**
|
|
638
|
+
* Parses multipart form data into an object.
|
|
639
|
+
* @param arrayBuffer - The raw form data as ArrayBuffer
|
|
640
|
+
* @returns An object with form field names and values
|
|
641
|
+
*/
|
|
447
642
|
fromFormData(arrayBuffer) {
|
|
448
643
|
const decoder = new TextDecoder();
|
|
449
644
|
const text = decoder.decode(arrayBuffer);
|
|
@@ -467,6 +662,11 @@ import { ZodError } from "zod";
|
|
|
467
662
|
|
|
468
663
|
// src/http/errors/validation-error.ts
|
|
469
664
|
var ValidationError = class extends Error {
|
|
665
|
+
/**
|
|
666
|
+
* Creates a new validation error from a Zod error.
|
|
667
|
+
* @param zodError - The Zod validation error containing issue details
|
|
668
|
+
* @param object - The object that failed validation
|
|
669
|
+
*/
|
|
470
670
|
constructor(zodError, object) {
|
|
471
671
|
let actual;
|
|
472
672
|
try {
|
|
@@ -487,6 +687,13 @@ var ValidationError = class extends Error {
|
|
|
487
687
|
|
|
488
688
|
// src/http/handlers/request-validation-handler.ts
|
|
489
689
|
var RequestValidationHandler = class {
|
|
690
|
+
/**
|
|
691
|
+
* Handles a standard HTTP request with validation.
|
|
692
|
+
* @template T - The expected response data type
|
|
693
|
+
* @param request - The HTTP request to validate
|
|
694
|
+
* @returns A promise that resolves to the HTTP response
|
|
695
|
+
* @throws Error if no next handler is set
|
|
696
|
+
*/
|
|
490
697
|
async handle(request) {
|
|
491
698
|
if (!this.next) {
|
|
492
699
|
throw new Error("No next handler set in ContentTypeHandler.");
|
|
@@ -494,6 +701,13 @@ var RequestValidationHandler = class {
|
|
|
494
701
|
this.validateRequest(request);
|
|
495
702
|
return this.next.handle(request);
|
|
496
703
|
}
|
|
704
|
+
/**
|
|
705
|
+
* Handles a streaming HTTP request with validation.
|
|
706
|
+
* @template T - The expected response data type for each chunk
|
|
707
|
+
* @param request - The HTTP request to validate
|
|
708
|
+
* @returns An async generator that yields HTTP responses
|
|
709
|
+
* @throws Error if no next handler is set
|
|
710
|
+
*/
|
|
497
711
|
async *stream(request) {
|
|
498
712
|
if (!this.next) {
|
|
499
713
|
throw new Error("No next handler set in ContentTypeHandler.");
|
|
@@ -501,6 +715,11 @@ var RequestValidationHandler = class {
|
|
|
501
715
|
this.validateRequest(request);
|
|
502
716
|
yield* this.next.stream(request);
|
|
503
717
|
}
|
|
718
|
+
/**
|
|
719
|
+
* Validates and serializes the request body based on its content type.
|
|
720
|
+
* @param request - The HTTP request to validate
|
|
721
|
+
* @throws ValidationError if Zod schema validation fails
|
|
722
|
+
*/
|
|
504
723
|
validateRequest(request) {
|
|
505
724
|
var _a, _b;
|
|
506
725
|
if (request.requestContentType === "json" /* Json */) {
|
|
@@ -523,6 +742,11 @@ var RequestValidationHandler = class {
|
|
|
523
742
|
request.body = JSON.stringify((_b = request.requestSchema) == null ? void 0 : _b.parse(request.body));
|
|
524
743
|
}
|
|
525
744
|
}
|
|
745
|
+
/**
|
|
746
|
+
* Converts request body to URL-encoded form data format.
|
|
747
|
+
* @param request - The HTTP request with body to convert
|
|
748
|
+
* @returns URL-encoded string representation of the body
|
|
749
|
+
*/
|
|
526
750
|
toFormUrlEncoded(request) {
|
|
527
751
|
var _a;
|
|
528
752
|
if (request.body === void 0) {
|
|
@@ -555,6 +779,14 @@ var RequestValidationHandler = class {
|
|
|
555
779
|
}
|
|
556
780
|
return "";
|
|
557
781
|
}
|
|
782
|
+
/**
|
|
783
|
+
* Converts request body to multipart form data format.
|
|
784
|
+
* Handles files (ArrayBuffer), arrays, and regular values.
|
|
785
|
+
* @param body - The request body object
|
|
786
|
+
* @param filename - Optional filename for single file uploads
|
|
787
|
+
* @param filenames - Optional filenames array for array of file uploads
|
|
788
|
+
* @returns FormData object with serialized body
|
|
789
|
+
*/
|
|
558
790
|
toFormData(body, filename, filenames) {
|
|
559
791
|
const formData = new FormData();
|
|
560
792
|
Object.keys(body).forEach((key) => {
|
|
@@ -589,6 +821,9 @@ var LineDecoder = class {
|
|
|
589
821
|
/**
|
|
590
822
|
* Splits the given chunk into lines.
|
|
591
823
|
* Stores incomplete lines in a buffer and returns them when the next chunk arrives.
|
|
824
|
+
*
|
|
825
|
+
* @param chunk - The data chunk to split into lines
|
|
826
|
+
* @returns An array of complete lines as Uint8Array
|
|
592
827
|
*/
|
|
593
828
|
splitLines(chunk) {
|
|
594
829
|
this.lineBuffer += this.decoder.decode(chunk);
|
|
@@ -603,7 +838,12 @@ var LineDecoder = class {
|
|
|
603
838
|
}
|
|
604
839
|
return lines;
|
|
605
840
|
}
|
|
606
|
-
/**
|
|
841
|
+
/**
|
|
842
|
+
* Returns the remaining lines in the buffer.
|
|
843
|
+
* Call this after the stream ends to get any incomplete final line.
|
|
844
|
+
*
|
|
845
|
+
* @returns An array containing the buffered line, or empty if buffer is empty
|
|
846
|
+
*/
|
|
607
847
|
flush() {
|
|
608
848
|
if (this.lineBuffer.length === 0) {
|
|
609
849
|
return [];
|
|
@@ -621,9 +861,16 @@ var RequestFetchAdapter = class {
|
|
|
621
861
|
this.requestInit = {};
|
|
622
862
|
this.setMethod(request.method);
|
|
623
863
|
this.setHeaders(request.getHeaders());
|
|
864
|
+
this.setCookies(request.getCookies());
|
|
624
865
|
this.setBody(request.body);
|
|
625
866
|
this.setTimeout(request.config.timeoutMs);
|
|
626
867
|
}
|
|
868
|
+
/**
|
|
869
|
+
* Executes the HTTP request and returns the response.
|
|
870
|
+
* Fetches the full response body as an ArrayBuffer.
|
|
871
|
+
*
|
|
872
|
+
* @returns A promise resolving to the HTTP response with metadata and body
|
|
873
|
+
*/
|
|
627
874
|
async send() {
|
|
628
875
|
const response = await fetch(this.request.constructFullUrl(), this.requestInit);
|
|
629
876
|
const metadata = {
|
|
@@ -636,6 +883,13 @@ var RequestFetchAdapter = class {
|
|
|
636
883
|
raw: await response.clone().arrayBuffer()
|
|
637
884
|
};
|
|
638
885
|
}
|
|
886
|
+
/**
|
|
887
|
+
* Executes the HTTP request as a stream, yielding chunks as they arrive.
|
|
888
|
+
* Uses the Fetch API's ReadableStream and LineDecoder to split into lines.
|
|
889
|
+
*
|
|
890
|
+
* @returns An async generator yielding HTTP response chunks
|
|
891
|
+
* @throws Error if responseHeaders is enabled (streaming not supported with responseHeaders)
|
|
892
|
+
*/
|
|
639
893
|
async *stream() {
|
|
640
894
|
const response = await fetch(this.request.constructFullUrl(), this.requestInit);
|
|
641
895
|
const metadata = {
|
|
@@ -700,6 +954,19 @@ var RequestFetchAdapter = class {
|
|
|
700
954
|
headers
|
|
701
955
|
};
|
|
702
956
|
}
|
|
957
|
+
setCookies(cookies) {
|
|
958
|
+
if (!cookies || Object.keys(cookies).length === 0) {
|
|
959
|
+
return;
|
|
960
|
+
}
|
|
961
|
+
const cookieString = Object.entries(cookies).map(([key, value]) => `${key}=${value}`).join("; ");
|
|
962
|
+
this.requestInit = {
|
|
963
|
+
...this.requestInit,
|
|
964
|
+
headers: {
|
|
965
|
+
...this.requestInit.headers,
|
|
966
|
+
Cookie: cookieString
|
|
967
|
+
}
|
|
968
|
+
};
|
|
969
|
+
}
|
|
703
970
|
setTimeout(timeoutMs) {
|
|
704
971
|
if (!timeoutMs) {
|
|
705
972
|
return;
|
|
@@ -723,9 +990,21 @@ var RequestFetchAdapter = class {
|
|
|
723
990
|
|
|
724
991
|
// src/http/handlers/terminating-handler.ts
|
|
725
992
|
var TerminatingHandler = class {
|
|
993
|
+
/**
|
|
994
|
+
* Executes the actual HTTP request using the configured client adapter.
|
|
995
|
+
* @template T - The expected response data type
|
|
996
|
+
* @param request - The HTTP request to execute
|
|
997
|
+
* @returns A promise that resolves to the HTTP response
|
|
998
|
+
*/
|
|
726
999
|
async handle(request) {
|
|
727
1000
|
return new RequestFetchAdapter(request).send();
|
|
728
1001
|
}
|
|
1002
|
+
/**
|
|
1003
|
+
* Executes a streaming HTTP request using the configured client adapter.
|
|
1004
|
+
* @template T - The expected response data type for each chunk
|
|
1005
|
+
* @param request - The HTTP request to execute
|
|
1006
|
+
* @returns An async generator that yields HTTP responses
|
|
1007
|
+
*/
|
|
729
1008
|
async *stream(request) {
|
|
730
1009
|
yield* new RequestFetchAdapter(request).stream();
|
|
731
1010
|
}
|
|
@@ -733,6 +1012,14 @@ var TerminatingHandler = class {
|
|
|
733
1012
|
|
|
734
1013
|
// src/http/handlers/retry-handler.ts
|
|
735
1014
|
var RetryHandler = class {
|
|
1015
|
+
/**
|
|
1016
|
+
* Handles a standard HTTP request with retry logic.
|
|
1017
|
+
* Retries failed requests based on the configured retry settings.
|
|
1018
|
+
* @template T - The expected response data type
|
|
1019
|
+
* @param request - The HTTP request to process
|
|
1020
|
+
* @returns A promise that resolves to the HTTP response
|
|
1021
|
+
* @throws Error if no next handler is set, or if all retry attempts fail
|
|
1022
|
+
*/
|
|
736
1023
|
async handle(request) {
|
|
737
1024
|
if (!this.next) {
|
|
738
1025
|
throw new Error("No next handler set in retry handler.");
|
|
@@ -749,6 +1036,13 @@ var RetryHandler = class {
|
|
|
749
1036
|
}
|
|
750
1037
|
throw new Error("Error retrying request.");
|
|
751
1038
|
}
|
|
1039
|
+
/**
|
|
1040
|
+
* Handles a streaming HTTP request with retry logic.
|
|
1041
|
+
* @template T - The expected response data type for each chunk
|
|
1042
|
+
* @param request - The HTTP request to process
|
|
1043
|
+
* @returns An async generator that yields HTTP responses
|
|
1044
|
+
* @throws Error if no next handler is set, or if all retry attempts fail
|
|
1045
|
+
*/
|
|
752
1046
|
async *stream(request) {
|
|
753
1047
|
if (!this.next) {
|
|
754
1048
|
throw new Error("No next handler set in retry handler.");
|
|
@@ -766,9 +1060,20 @@ var RetryHandler = class {
|
|
|
766
1060
|
}
|
|
767
1061
|
throw new Error("Error retrying request.");
|
|
768
1062
|
}
|
|
1063
|
+
/**
|
|
1064
|
+
* Determines if an error should trigger a retry.
|
|
1065
|
+
* Retries server errors (5xx), request timeouts (408), and rate limits (429).
|
|
1066
|
+
* @param error - The error to check
|
|
1067
|
+
* @returns True if the request should be retried, false otherwise
|
|
1068
|
+
*/
|
|
769
1069
|
shouldRetry(error) {
|
|
770
1070
|
return error instanceof HttpError && (error.metadata.status >= 500 || error.metadata.status === 408 || error.metadata.status === 429);
|
|
771
1071
|
}
|
|
1072
|
+
/**
|
|
1073
|
+
* Delays execution for a specified duration before retrying.
|
|
1074
|
+
* @param delayMs - The delay in milliseconds (optional)
|
|
1075
|
+
* @returns A promise that resolves after the delay
|
|
1076
|
+
*/
|
|
772
1077
|
delay(delayMs) {
|
|
773
1078
|
if (!delayMs) {
|
|
774
1079
|
return Promise.resolve();
|
|
@@ -786,6 +1091,14 @@ function isRequestCursorPagination(pagination) {
|
|
|
786
1091
|
|
|
787
1092
|
// src/http/handlers/oauth-handler.ts
|
|
788
1093
|
var OAuthHandler = class {
|
|
1094
|
+
/**
|
|
1095
|
+
* Handles a standard HTTP request with OAuth authentication.
|
|
1096
|
+
* Manages access tokens and adds Authorization headers.
|
|
1097
|
+
* @template T - The expected response data type
|
|
1098
|
+
* @param request - The HTTP request to process
|
|
1099
|
+
* @returns A promise that resolves to the HTTP response
|
|
1100
|
+
* @throws Error if no next handler is set
|
|
1101
|
+
*/
|
|
789
1102
|
async handle(request) {
|
|
790
1103
|
if (!this.next) {
|
|
791
1104
|
throw new Error(`No next handler set in OAuthHandler`);
|
|
@@ -800,6 +1113,13 @@ var OAuthHandler = class {
|
|
|
800
1113
|
await this.manageToken(request);
|
|
801
1114
|
return this.next.handle(request);
|
|
802
1115
|
}
|
|
1116
|
+
/**
|
|
1117
|
+
* Handles a streaming HTTP request with OAuth authentication.
|
|
1118
|
+
* @template T - The expected response data type for each chunk
|
|
1119
|
+
* @param request - The HTTP request to process
|
|
1120
|
+
* @returns An async generator that yields HTTP responses
|
|
1121
|
+
* @throws Error if no next handler is set
|
|
1122
|
+
*/
|
|
803
1123
|
async *stream(request) {
|
|
804
1124
|
if (!this.next) {
|
|
805
1125
|
throw new Error(`No next handler set in OAuthHandler`);
|
|
@@ -807,6 +1127,10 @@ var OAuthHandler = class {
|
|
|
807
1127
|
await this.manageToken(request);
|
|
808
1128
|
yield* this.next.stream(request);
|
|
809
1129
|
}
|
|
1130
|
+
/**
|
|
1131
|
+
* Retrieves an access token for the required scopes and adds it to the request.
|
|
1132
|
+
* @param request - The HTTP request to add the token to
|
|
1133
|
+
*/
|
|
810
1134
|
async manageToken(request) {
|
|
811
1135
|
if (!request.scopes) {
|
|
812
1136
|
return;
|
|
@@ -816,6 +1140,11 @@ var OAuthHandler = class {
|
|
|
816
1140
|
this.addAccessTokenHeader(request, token.accessToken);
|
|
817
1141
|
}
|
|
818
1142
|
}
|
|
1143
|
+
/**
|
|
1144
|
+
* Adds the OAuth access token to the request's Authorization header.
|
|
1145
|
+
* @param request - The HTTP request to modify
|
|
1146
|
+
* @param token - The access token to add
|
|
1147
|
+
*/
|
|
819
1148
|
addAccessTokenHeader(request, token) {
|
|
820
1149
|
request.addHeaderParam("Authorization", {
|
|
821
1150
|
key: "Authorization",
|
|
@@ -832,8 +1161,14 @@ var OAuthHandler = class {
|
|
|
832
1161
|
|
|
833
1162
|
// src/http/client.ts
|
|
834
1163
|
var HttpClient = class {
|
|
1164
|
+
/**
|
|
1165
|
+
* Creates a new HTTP client with configured request handlers.
|
|
1166
|
+
* @param config - SDK configuration including base URL and authentication
|
|
1167
|
+
* @param hook - Optional custom hook for request/response interception
|
|
1168
|
+
*/
|
|
835
1169
|
constructor(config, hook = new CustomHook()) {
|
|
836
1170
|
this.config = config;
|
|
1171
|
+
/** Chain of request handlers that process requests in sequence */
|
|
837
1172
|
this.requestHandlerChain = new RequestHandlerChain();
|
|
838
1173
|
this.requestHandlerChain.addHandler(new ResponseValidationHandler());
|
|
839
1174
|
this.requestHandlerChain.addHandler(new RequestValidationHandler());
|
|
@@ -842,12 +1177,32 @@ var HttpClient = class {
|
|
|
842
1177
|
this.requestHandlerChain.addHandler(new HookHandler(hook));
|
|
843
1178
|
this.requestHandlerChain.addHandler(new TerminatingHandler());
|
|
844
1179
|
}
|
|
1180
|
+
/**
|
|
1181
|
+
* Executes a standard HTTP request.
|
|
1182
|
+
* @template T - The expected response data type
|
|
1183
|
+
* @param request - The HTTP request to execute
|
|
1184
|
+
* @returns A promise that resolves to the HTTP response
|
|
1185
|
+
*/
|
|
845
1186
|
call(request) {
|
|
846
1187
|
return this.requestHandlerChain.callChain(request);
|
|
847
1188
|
}
|
|
1189
|
+
/**
|
|
1190
|
+
* Executes a streaming HTTP request that yields responses incrementally.
|
|
1191
|
+
* @template T - The expected response data type for each chunk
|
|
1192
|
+
* @param request - The HTTP request to execute
|
|
1193
|
+
* @returns An async generator that yields HTTP responses
|
|
1194
|
+
*/
|
|
848
1195
|
async *stream(request) {
|
|
849
1196
|
yield* this.requestHandlerChain.streamChain(request);
|
|
850
1197
|
}
|
|
1198
|
+
/**
|
|
1199
|
+
* Executes a paginated HTTP request and extracts the page data from the response.
|
|
1200
|
+
* @template FullResponse - The complete response type from the API
|
|
1201
|
+
* @template Page - The type of a single page of data
|
|
1202
|
+
* @param request - The paginated HTTP request to execute
|
|
1203
|
+
* @returns A promise that resolves to the paginated HTTP response
|
|
1204
|
+
* @throws Error if the response contains no data to paginate through
|
|
1205
|
+
*/
|
|
851
1206
|
async callPaginated(request) {
|
|
852
1207
|
const response = await this.call(request);
|
|
853
1208
|
if (!response.data) {
|
|
@@ -859,6 +1214,14 @@ var HttpClient = class {
|
|
|
859
1214
|
data: page
|
|
860
1215
|
};
|
|
861
1216
|
}
|
|
1217
|
+
/**
|
|
1218
|
+
* Executes a cursor-paginated HTTP request and extracts both page data and the next cursor.
|
|
1219
|
+
* @template FullResponse - The complete response type from the API
|
|
1220
|
+
* @template Page - The type of a single page of data
|
|
1221
|
+
* @param request - The cursor-paginated HTTP request to execute
|
|
1222
|
+
* @returns A promise that resolves to the cursor-paginated HTTP response with next cursor
|
|
1223
|
+
* @throws Error if the response contains no data to paginate through
|
|
1224
|
+
*/
|
|
862
1225
|
async callCursorPaginated(request) {
|
|
863
1226
|
const response = await this.call(request);
|
|
864
1227
|
if (!response.data) {
|
|
@@ -872,12 +1235,29 @@ var HttpClient = class {
|
|
|
872
1235
|
nextCursor
|
|
873
1236
|
};
|
|
874
1237
|
}
|
|
1238
|
+
/**
|
|
1239
|
+
* Updates the base URL for all subsequent requests.
|
|
1240
|
+
* @param url - The new base URL to use
|
|
1241
|
+
*/
|
|
875
1242
|
setBaseUrl(url) {
|
|
876
1243
|
this.config.baseUrl = url;
|
|
877
1244
|
}
|
|
1245
|
+
/**
|
|
1246
|
+
* Updates the SDK configuration.
|
|
1247
|
+
* @param config - The new SDK configuration
|
|
1248
|
+
*/
|
|
878
1249
|
setConfig(config) {
|
|
879
1250
|
this.config = config;
|
|
880
1251
|
}
|
|
1252
|
+
/**
|
|
1253
|
+
* Extracts page data from a full API response using the configured pagination path.
|
|
1254
|
+
* @template FullResponse - The complete response type from the API
|
|
1255
|
+
* @template Page - The type of a single page of data
|
|
1256
|
+
* @param request - The request containing pagination configuration
|
|
1257
|
+
* @param data - The full response data to extract the page from
|
|
1258
|
+
* @returns The extracted and parsed page data
|
|
1259
|
+
* @throws Error if pagination is not configured or page extraction fails
|
|
1260
|
+
*/
|
|
881
1261
|
getPage(request, data) {
|
|
882
1262
|
var _a;
|
|
883
1263
|
if (!request.pagination) {
|
|
@@ -895,6 +1275,14 @@ var HttpClient = class {
|
|
|
895
1275
|
}
|
|
896
1276
|
return page;
|
|
897
1277
|
}
|
|
1278
|
+
/**
|
|
1279
|
+
* Extracts the next cursor from a full API response for cursor-based pagination.
|
|
1280
|
+
* @template FullResponse - The complete response type from the API
|
|
1281
|
+
* @template Page - The type of a single page of data
|
|
1282
|
+
* @param request - The request containing cursor pagination configuration
|
|
1283
|
+
* @param data - The full response data to extract the cursor from
|
|
1284
|
+
* @returns The next cursor string, null if no more pages, or undefined if not cursor pagination
|
|
1285
|
+
*/
|
|
898
1286
|
getNextCursor(request, data) {
|
|
899
1287
|
var _a, _b;
|
|
900
1288
|
if (!isRequestCursorPagination(request.pagination)) {
|
|
@@ -946,6 +1334,14 @@ import z from "zod";
|
|
|
946
1334
|
|
|
947
1335
|
// src/http/serialization/path-serializer.ts
|
|
948
1336
|
var PathSerializer = class extends Serializer {
|
|
1337
|
+
/**
|
|
1338
|
+
* Serializes path parameters into a URL path by replacing template placeholders.
|
|
1339
|
+
* @param pathPattern - The URL path pattern with {placeholders}
|
|
1340
|
+
* @param pathArguments - Map of parameter names to their values
|
|
1341
|
+
* @returns The path with placeholders replaced by serialized values
|
|
1342
|
+
* @example
|
|
1343
|
+
* serialize("/users/{id}", Map([["id", {key: "id", value: 123}]])) returns "/users/123"
|
|
1344
|
+
*/
|
|
949
1345
|
serialize(pathPattern, pathArguments) {
|
|
950
1346
|
let serializedPath = pathPattern;
|
|
951
1347
|
pathArguments.forEach((param) => {
|
|
@@ -957,6 +1353,13 @@ var PathSerializer = class extends Serializer {
|
|
|
957
1353
|
|
|
958
1354
|
// src/http/serialization/query-serializer.ts
|
|
959
1355
|
var QuerySerializer = class extends Serializer {
|
|
1356
|
+
/**
|
|
1357
|
+
* Serializes query parameters into a URL query string.
|
|
1358
|
+
* @param queryParams - Map of query parameter names to their values
|
|
1359
|
+
* @returns A query string starting with "?" if parameters exist, empty string otherwise
|
|
1360
|
+
* @example
|
|
1361
|
+
* serialize(Map([["name", {...}], ["age", {...}]])) returns "?name=John&age=30"
|
|
1362
|
+
*/
|
|
960
1363
|
serialize(queryParams) {
|
|
961
1364
|
if (!queryParams || !queryParams.size) {
|
|
962
1365
|
return "";
|
|
@@ -974,6 +1377,11 @@ var QuerySerializer = class extends Serializer {
|
|
|
974
1377
|
|
|
975
1378
|
// src/http/serialization/header-serializer.ts
|
|
976
1379
|
var HeaderSerializer = class extends Serializer {
|
|
1380
|
+
/**
|
|
1381
|
+
* Serializes header parameters into a headers object.
|
|
1382
|
+
* @param headerParams - Map of header names to their parameter values
|
|
1383
|
+
* @returns A HeadersInit object with serialized header values, or undefined if no headers
|
|
1384
|
+
*/
|
|
977
1385
|
serialize(headerParams) {
|
|
978
1386
|
if (!headerParams || !headerParams.size) {
|
|
979
1387
|
return void 0;
|
|
@@ -989,6 +1397,83 @@ var HeaderSerializer = class extends Serializer {
|
|
|
989
1397
|
}
|
|
990
1398
|
};
|
|
991
1399
|
|
|
1400
|
+
// src/http/serialization/cookie-serializer.ts
|
|
1401
|
+
var CookieSerializer = class {
|
|
1402
|
+
/**
|
|
1403
|
+
* Serializes cookie parameters into a cookie object.
|
|
1404
|
+
* @param cookieParams - Map of cookie names to their parameter values
|
|
1405
|
+
* @returns A record of cookie names to serialized values, or undefined if no cookies
|
|
1406
|
+
*/
|
|
1407
|
+
serialize(cookieParams) {
|
|
1408
|
+
if (!cookieParams || !cookieParams.size) {
|
|
1409
|
+
return void 0;
|
|
1410
|
+
}
|
|
1411
|
+
const cookies = {};
|
|
1412
|
+
cookieParams.forEach((param) => {
|
|
1413
|
+
if (!param.key || param.value === void 0) {
|
|
1414
|
+
return;
|
|
1415
|
+
}
|
|
1416
|
+
cookies[param.key] = this.serializeCookieValue(param);
|
|
1417
|
+
});
|
|
1418
|
+
return cookies;
|
|
1419
|
+
}
|
|
1420
|
+
/**
|
|
1421
|
+
* Serializes a single cookie value based on its type.
|
|
1422
|
+
* @param param - The cookie parameter to serialize
|
|
1423
|
+
* @returns The serialized cookie value string
|
|
1424
|
+
*/
|
|
1425
|
+
serializeCookieValue(param) {
|
|
1426
|
+
if (Array.isArray(param.value)) {
|
|
1427
|
+
return this.serializeArray(param.value, param);
|
|
1428
|
+
}
|
|
1429
|
+
if (this.isNonNullObject(param.value)) {
|
|
1430
|
+
return this.serializeObject(param.value, param);
|
|
1431
|
+
}
|
|
1432
|
+
return this.serializePrimitive(param.value);
|
|
1433
|
+
}
|
|
1434
|
+
/**
|
|
1435
|
+
* Serializes a primitive cookie value.
|
|
1436
|
+
* @param value - The primitive value to serialize
|
|
1437
|
+
* @returns The string representation of the value
|
|
1438
|
+
*/
|
|
1439
|
+
serializePrimitive(value) {
|
|
1440
|
+
return `${value}`;
|
|
1441
|
+
}
|
|
1442
|
+
/**
|
|
1443
|
+
* Serializes an array cookie value.
|
|
1444
|
+
* @param value - The array to serialize
|
|
1445
|
+
* @param param - The cookie parameter configuration
|
|
1446
|
+
* @returns The serialized array string
|
|
1447
|
+
*/
|
|
1448
|
+
serializeArray(value, param) {
|
|
1449
|
+
if (param.explode) {
|
|
1450
|
+
if (value.length === 0)
|
|
1451
|
+
return "";
|
|
1452
|
+
const first = value[0];
|
|
1453
|
+
const rest = value.slice(1).map((v) => `${param.key}=${v}`).join("; ");
|
|
1454
|
+
return rest ? `${first}; ${rest}` : `${first}`;
|
|
1455
|
+
}
|
|
1456
|
+
return value.join(",");
|
|
1457
|
+
}
|
|
1458
|
+
/**
|
|
1459
|
+
* Serializes an object cookie value as JSON.
|
|
1460
|
+
* @param obj - The object to serialize
|
|
1461
|
+
* @param param - The cookie parameter configuration
|
|
1462
|
+
* @returns The JSON string representation of the object
|
|
1463
|
+
*/
|
|
1464
|
+
serializeObject(obj, param) {
|
|
1465
|
+
return JSON.stringify(obj);
|
|
1466
|
+
}
|
|
1467
|
+
/**
|
|
1468
|
+
* Type guard to check if a value is a non-null object.
|
|
1469
|
+
* @param value - The value to check
|
|
1470
|
+
* @returns True if the value is an object and not null
|
|
1471
|
+
*/
|
|
1472
|
+
isNonNullObject(value) {
|
|
1473
|
+
return typeof value === "object" && value !== null;
|
|
1474
|
+
}
|
|
1475
|
+
};
|
|
1476
|
+
|
|
992
1477
|
// src/http/transport/request.ts
|
|
993
1478
|
var Request = class {
|
|
994
1479
|
constructor(params) {
|
|
@@ -996,6 +1481,7 @@ var Request = class {
|
|
|
996
1481
|
this.headers = /* @__PURE__ */ new Map();
|
|
997
1482
|
this.queryParams = /* @__PURE__ */ new Map();
|
|
998
1483
|
this.pathParams = /* @__PURE__ */ new Map();
|
|
1484
|
+
this.cookies = /* @__PURE__ */ new Map();
|
|
999
1485
|
this.validation = {};
|
|
1000
1486
|
this.retry = {};
|
|
1001
1487
|
this.baseUrl = params.baseUrl;
|
|
@@ -1007,6 +1493,7 @@ var Request = class {
|
|
|
1007
1493
|
this.pathParams = params.pathParams;
|
|
1008
1494
|
this.headers = params.headers;
|
|
1009
1495
|
this.queryParams = params.queryParams;
|
|
1496
|
+
this.cookies = params.cookies;
|
|
1010
1497
|
this.responses = params.responses;
|
|
1011
1498
|
this.errors = params.errors;
|
|
1012
1499
|
this.requestSchema = params.requestSchema;
|
|
@@ -1019,6 +1506,12 @@ var Request = class {
|
|
|
1019
1506
|
this.scopes = params.scopes;
|
|
1020
1507
|
this.tokenManager = params.tokenManager;
|
|
1021
1508
|
}
|
|
1509
|
+
/**
|
|
1510
|
+
* Adds a header parameter to the request with OpenAPI serialization rules.
|
|
1511
|
+
*
|
|
1512
|
+
* @param key - The header name
|
|
1513
|
+
* @param param - The parameter configuration including value, style, and encoding options
|
|
1514
|
+
*/
|
|
1022
1515
|
addHeaderParam(key, param) {
|
|
1023
1516
|
if (param.value === void 0) {
|
|
1024
1517
|
return;
|
|
@@ -1034,6 +1527,12 @@ var Request = class {
|
|
|
1034
1527
|
}
|
|
1035
1528
|
this.headers.set(key, param);
|
|
1036
1529
|
}
|
|
1530
|
+
/**
|
|
1531
|
+
* Adds a query parameter to the request with OpenAPI serialization rules.
|
|
1532
|
+
*
|
|
1533
|
+
* @param key - The query parameter name
|
|
1534
|
+
* @param param - The parameter configuration including value, style, and encoding options
|
|
1535
|
+
*/
|
|
1037
1536
|
addQueryParam(key, param) {
|
|
1038
1537
|
if (param.value === void 0) {
|
|
1039
1538
|
return;
|
|
@@ -1049,6 +1548,12 @@ var Request = class {
|
|
|
1049
1548
|
}
|
|
1050
1549
|
this.queryParams.set(key, param);
|
|
1051
1550
|
}
|
|
1551
|
+
/**
|
|
1552
|
+
* Adds a path parameter to the request with OpenAPI serialization rules.
|
|
1553
|
+
*
|
|
1554
|
+
* @param key - The path parameter name (matches template variable in path pattern)
|
|
1555
|
+
* @param param - The parameter configuration including value, style, and encoding options
|
|
1556
|
+
*/
|
|
1052
1557
|
addPathParam(key, param) {
|
|
1053
1558
|
if (param.value === void 0) {
|
|
1054
1559
|
return;
|
|
@@ -1064,26 +1569,50 @@ var Request = class {
|
|
|
1064
1569
|
}
|
|
1065
1570
|
this.pathParams.set(key, param);
|
|
1066
1571
|
}
|
|
1572
|
+
/**
|
|
1573
|
+
* Sets the request body if the value is defined.
|
|
1574
|
+
*
|
|
1575
|
+
* @param body - The request body to send
|
|
1576
|
+
*/
|
|
1067
1577
|
addBody(body) {
|
|
1068
1578
|
if (body === void 0) {
|
|
1069
1579
|
return;
|
|
1070
1580
|
}
|
|
1071
1581
|
this.body = body;
|
|
1072
1582
|
}
|
|
1583
|
+
/**
|
|
1584
|
+
* Updates this request from a modified hook request.
|
|
1585
|
+
* Used after hooks modify the request to sync changes back to the internal Request object.
|
|
1586
|
+
*
|
|
1587
|
+
* @param hookRequest - The modified request from hook processing
|
|
1588
|
+
*/
|
|
1073
1589
|
updateFromHookRequest(hookRequest) {
|
|
1074
1590
|
this.baseUrl = hookRequest.baseUrl;
|
|
1075
1591
|
this.method = hookRequest.method;
|
|
1076
1592
|
this.path = hookRequest.path;
|
|
1077
1593
|
this.body = hookRequest.body;
|
|
1078
1594
|
}
|
|
1595
|
+
/**
|
|
1596
|
+
* Constructs the complete URL by combining base URL, path with substituted parameters,
|
|
1597
|
+
* and serialized query string.
|
|
1598
|
+
*
|
|
1599
|
+
* @returns The fully constructed URL ready for HTTP execution
|
|
1600
|
+
*/
|
|
1079
1601
|
constructFullUrl() {
|
|
1080
1602
|
const queryString = new QuerySerializer().serialize(this.queryParams);
|
|
1081
1603
|
const path = this.constructPath();
|
|
1082
1604
|
let baseUrl = this.baseUrl;
|
|
1083
1605
|
return `${baseUrl}${path}${queryString}`;
|
|
1084
1606
|
}
|
|
1607
|
+
/**
|
|
1608
|
+
* Creates a copy of this request with optional parameter overrides.
|
|
1609
|
+
* Useful for pagination where you need to modify parameters while keeping the rest intact.
|
|
1610
|
+
*
|
|
1611
|
+
* @param overrides - Optional parameters to override in the copied request
|
|
1612
|
+
* @returns A new Request instance with the specified overrides
|
|
1613
|
+
*/
|
|
1085
1614
|
copy(overrides) {
|
|
1086
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
|
|
1615
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
|
|
1087
1616
|
const createRequestParams = {
|
|
1088
1617
|
baseUrl: (_a = overrides == null ? void 0 : overrides.baseUrl) != null ? _a : this.baseUrl,
|
|
1089
1618
|
errors: (_b = overrides == null ? void 0 : overrides.errors) != null ? _b : this.errors,
|
|
@@ -1094,13 +1623,14 @@ var Request = class {
|
|
|
1094
1623
|
pathParams: (_g = overrides == null ? void 0 : overrides.pathParams) != null ? _g : this.pathParams,
|
|
1095
1624
|
queryParams: (_h = overrides == null ? void 0 : overrides.queryParams) != null ? _h : this.queryParams,
|
|
1096
1625
|
headers: (_i = overrides == null ? void 0 : overrides.headers) != null ? _i : this.headers,
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1626
|
+
cookies: (_j = overrides == null ? void 0 : overrides.cookies) != null ? _j : this.cookies,
|
|
1627
|
+
responses: (_k = overrides == null ? void 0 : overrides.responses) != null ? _k : this.responses,
|
|
1628
|
+
requestSchema: (_l = overrides == null ? void 0 : overrides.requestSchema) != null ? _l : this.requestSchema,
|
|
1629
|
+
requestContentType: (_m = overrides == null ? void 0 : overrides.requestContentType) != null ? _m : this.requestContentType,
|
|
1630
|
+
retry: (_n = overrides == null ? void 0 : overrides.retry) != null ? _n : this.retry,
|
|
1631
|
+
validation: (_o = overrides == null ? void 0 : overrides.validation) != null ? _o : this.validation,
|
|
1632
|
+
filename: (_p = overrides == null ? void 0 : overrides.filename) != null ? _p : this.filename,
|
|
1633
|
+
filenames: (_q = overrides == null ? void 0 : overrides.filenames) != null ? _q : this.filenames,
|
|
1104
1634
|
scopes: overrides == null ? void 0 : overrides.scopes,
|
|
1105
1635
|
tokenManager: this.tokenManager
|
|
1106
1636
|
};
|
|
@@ -1109,12 +1639,34 @@ var Request = class {
|
|
|
1109
1639
|
...overrides
|
|
1110
1640
|
});
|
|
1111
1641
|
}
|
|
1642
|
+
/**
|
|
1643
|
+
* Serializes headers to a format suitable for HTTP execution.
|
|
1644
|
+
*
|
|
1645
|
+
* @returns Serialized headers as HeadersInit, or undefined if no headers
|
|
1646
|
+
*/
|
|
1112
1647
|
getHeaders() {
|
|
1113
1648
|
if (!this.headers || !this.headers.size) {
|
|
1114
1649
|
return void 0;
|
|
1115
1650
|
}
|
|
1116
1651
|
return new HeaderSerializer().serialize(this.headers);
|
|
1117
1652
|
}
|
|
1653
|
+
/**
|
|
1654
|
+
* Serializes cookies to a format suitable for HTTP execution.
|
|
1655
|
+
*
|
|
1656
|
+
* @returns Serialized cookies as a record, or undefined if no cookies
|
|
1657
|
+
*/
|
|
1658
|
+
getCookies() {
|
|
1659
|
+
if (!this.cookies || !this.cookies.size) {
|
|
1660
|
+
return void 0;
|
|
1661
|
+
}
|
|
1662
|
+
return new CookieSerializer().serialize(this.cookies);
|
|
1663
|
+
}
|
|
1664
|
+
/**
|
|
1665
|
+
* Advances pagination parameters to fetch the next page.
|
|
1666
|
+
* Handles both cursor-based and limit-offset pagination strategies.
|
|
1667
|
+
*
|
|
1668
|
+
* @param cursor - The cursor value for cursor-based pagination (optional for limit-offset)
|
|
1669
|
+
*/
|
|
1118
1670
|
nextPage(cursor) {
|
|
1119
1671
|
if (!this.pagination) {
|
|
1120
1672
|
return;
|
|
@@ -1156,6 +1708,9 @@ var Request = class {
|
|
|
1156
1708
|
this.pathParams.forEach((val, _) => {
|
|
1157
1709
|
allParams.push(val);
|
|
1158
1710
|
});
|
|
1711
|
+
this.cookies.forEach((val, _) => {
|
|
1712
|
+
allParams.push(val);
|
|
1713
|
+
});
|
|
1159
1714
|
return allParams;
|
|
1160
1715
|
}
|
|
1161
1716
|
};
|
|
@@ -1168,6 +1723,10 @@ var Environment = /* @__PURE__ */ ((Environment2) => {
|
|
|
1168
1723
|
|
|
1169
1724
|
// src/http/transport/request-builder.ts
|
|
1170
1725
|
var RequestBuilder = class {
|
|
1726
|
+
/**
|
|
1727
|
+
* Creates a new request builder with default configuration.
|
|
1728
|
+
* Initializes retry settings, validation options, and empty parameter collections.
|
|
1729
|
+
*/
|
|
1171
1730
|
constructor() {
|
|
1172
1731
|
this.params = {
|
|
1173
1732
|
baseUrl: "https://api.celitech.net/v1" /* DEFAULT */,
|
|
@@ -1188,6 +1747,7 @@ var RequestBuilder = class {
|
|
|
1188
1747
|
pathParams: /* @__PURE__ */ new Map(),
|
|
1189
1748
|
queryParams: /* @__PURE__ */ new Map(),
|
|
1190
1749
|
headers: /* @__PURE__ */ new Map(),
|
|
1750
|
+
cookies: /* @__PURE__ */ new Map(),
|
|
1191
1751
|
tokenManager: new OAuthTokenManager()
|
|
1192
1752
|
};
|
|
1193
1753
|
}
|
|
@@ -1385,9 +1945,37 @@ var RequestBuilder = class {
|
|
|
1385
1945
|
});
|
|
1386
1946
|
return this;
|
|
1387
1947
|
}
|
|
1948
|
+
addCookieParam(param) {
|
|
1949
|
+
var _a, _b, _c;
|
|
1950
|
+
if (param.value === void 0 || param.key === void 0) {
|
|
1951
|
+
return this;
|
|
1952
|
+
}
|
|
1953
|
+
this.params.cookies.set(param.key, {
|
|
1954
|
+
key: param.key,
|
|
1955
|
+
value: param.value,
|
|
1956
|
+
explode: (_a = param.explode) != null ? _a : true,
|
|
1957
|
+
style: (_b = param.style) != null ? _b : "form" /* FORM */,
|
|
1958
|
+
encode: (_c = param.encode) != null ? _c : false,
|
|
1959
|
+
isLimit: !!param.isLimit,
|
|
1960
|
+
isOffset: !!param.isOffset,
|
|
1961
|
+
isCursor: !!param.isCursor
|
|
1962
|
+
});
|
|
1963
|
+
return this;
|
|
1964
|
+
}
|
|
1965
|
+
/**
|
|
1966
|
+
* Builds and returns the configured Request object.
|
|
1967
|
+
* Call this method after configuring all request parameters.
|
|
1968
|
+
* @returns A new Request instance with all configured parameters
|
|
1969
|
+
*/
|
|
1388
1970
|
build() {
|
|
1389
1971
|
return new Request(this.params);
|
|
1390
1972
|
}
|
|
1973
|
+
/**
|
|
1974
|
+
* Converts a string to Base64 encoding.
|
|
1975
|
+
* Works in both Node.js and browser environments.
|
|
1976
|
+
* @param str - The string to encode
|
|
1977
|
+
* @returns The Base64-encoded string
|
|
1978
|
+
*/
|
|
1391
1979
|
toBase64(str) {
|
|
1392
1980
|
if (typeof window === "undefined") {
|
|
1393
1981
|
return Buffer.from(str, "utf-8").toString("base64");
|
|
@@ -1486,11 +2074,22 @@ var GrantType = /* @__PURE__ */ ((GrantType2) => {
|
|
|
1486
2074
|
|
|
1487
2075
|
// src/http/oauth/token-manager.ts
|
|
1488
2076
|
var OAuthToken = class {
|
|
2077
|
+
/**
|
|
2078
|
+
* Creates a new OAuth token.
|
|
2079
|
+
* @param accessToken - The access token string
|
|
2080
|
+
* @param scopes - Set of OAuth scopes granted to this token
|
|
2081
|
+
* @param expiresAt - Timestamp when the token expires (milliseconds since epoch), or null if no expiration
|
|
2082
|
+
*/
|
|
1489
2083
|
constructor(accessToken, scopes, expiresAt) {
|
|
1490
2084
|
this.accessToken = accessToken;
|
|
1491
2085
|
this.scopes = scopes;
|
|
1492
2086
|
this.expiresAt = expiresAt;
|
|
1493
2087
|
}
|
|
2088
|
+
/**
|
|
2089
|
+
* Checks if this token has all the required scopes.
|
|
2090
|
+
* @param scopes - Set of scopes to check for
|
|
2091
|
+
* @returns True if the token has all required scopes, false otherwise
|
|
2092
|
+
*/
|
|
1494
2093
|
hasAllScopes(scopes) {
|
|
1495
2094
|
for (const scope of scopes) {
|
|
1496
2095
|
if (!this.scopes.has(scope)) {
|
|
@@ -1501,6 +2100,14 @@ var OAuthToken = class {
|
|
|
1501
2100
|
}
|
|
1502
2101
|
};
|
|
1503
2102
|
var OAuthTokenManager = class {
|
|
2103
|
+
/**
|
|
2104
|
+
* Gets a valid access token for the specified scopes.
|
|
2105
|
+
* Returns a cached token if available and not expired, otherwise requests a new one.
|
|
2106
|
+
* @param scopes - Set of OAuth scopes required for the token
|
|
2107
|
+
* @param config - SDK configuration containing client credentials
|
|
2108
|
+
* @returns A promise that resolves to a valid OAuth token
|
|
2109
|
+
* @throws Error if client credentials are missing or token request fails
|
|
2110
|
+
*/
|
|
1504
2111
|
async getToken(scopes, config) {
|
|
1505
2112
|
var _a, _b, _c, _d, _e, _f;
|
|
1506
2113
|
if (((_a = this.token) == null ? void 0 : _a.hasAllScopes(scopes)) && ((_b = this.token) == null ? void 0 : _b.expiresAt) && this.token.expiresAt - Date.now() > 5e3) {
|
|
@@ -1608,11 +2215,21 @@ import { z as z6 } from "zod";
|
|
|
1608
2215
|
|
|
1609
2216
|
// src/http/errors/throwable-error.ts
|
|
1610
2217
|
var ThrowableError = class extends Error {
|
|
2218
|
+
/**
|
|
2219
|
+
* Creates a new throwable error.
|
|
2220
|
+
* @param message - The error message
|
|
2221
|
+
* @param response - Optional response data associated with the error
|
|
2222
|
+
*/
|
|
1611
2223
|
constructor(message, response) {
|
|
1612
2224
|
super(message);
|
|
1613
2225
|
this.message = message;
|
|
1614
2226
|
this.response = response;
|
|
1615
2227
|
}
|
|
2228
|
+
/**
|
|
2229
|
+
* Throws this error instance.
|
|
2230
|
+
* Convenience method for explicitly throwing the error.
|
|
2231
|
+
* @throws This error instance
|
|
2232
|
+
*/
|
|
1616
2233
|
throw() {
|
|
1617
2234
|
throw this;
|
|
1618
2235
|
}
|
|
@@ -1700,6 +2317,7 @@ var packages = z9.lazy(() => {
|
|
|
1700
2317
|
destination: z9.string(),
|
|
1701
2318
|
destinationIso2: z9.string(),
|
|
1702
2319
|
dataLimitInBytes: z9.number(),
|
|
2320
|
+
dataLimitInGb: z9.number(),
|
|
1703
2321
|
minDays: z9.number(),
|
|
1704
2322
|
maxDays: z9.number(),
|
|
1705
2323
|
priceInCents: z9.number()
|
|
@@ -1711,6 +2329,7 @@ var packagesResponse = z9.lazy(() => {
|
|
|
1711
2329
|
destination: z9.string(),
|
|
1712
2330
|
destinationISO2: z9.string(),
|
|
1713
2331
|
dataLimitInBytes: z9.number(),
|
|
2332
|
+
dataLimitInGB: z9.number(),
|
|
1714
2333
|
minDays: z9.number(),
|
|
1715
2334
|
maxDays: z9.number(),
|
|
1716
2335
|
priceInCents: z9.number()
|
|
@@ -1719,6 +2338,7 @@ var packagesResponse = z9.lazy(() => {
|
|
|
1719
2338
|
destination: data["destination"],
|
|
1720
2339
|
destinationIso2: data["destinationISO2"],
|
|
1721
2340
|
dataLimitInBytes: data["dataLimitInBytes"],
|
|
2341
|
+
dataLimitInGb: data["dataLimitInGB"],
|
|
1722
2342
|
minDays: data["minDays"],
|
|
1723
2343
|
maxDays: data["maxDays"],
|
|
1724
2344
|
priceInCents: data["priceInCents"]
|
|
@@ -1730,6 +2350,7 @@ var packagesRequest = z9.lazy(() => {
|
|
|
1730
2350
|
destination: z9.string(),
|
|
1731
2351
|
destinationIso2: z9.string(),
|
|
1732
2352
|
dataLimitInBytes: z9.number(),
|
|
2353
|
+
dataLimitInGb: z9.number(),
|
|
1733
2354
|
minDays: z9.number(),
|
|
1734
2355
|
maxDays: z9.number(),
|
|
1735
2356
|
priceInCents: z9.number()
|
|
@@ -1738,6 +2359,7 @@ var packagesRequest = z9.lazy(() => {
|
|
|
1738
2359
|
destination: data["destination"],
|
|
1739
2360
|
destinationISO2: data["destinationIso2"],
|
|
1740
2361
|
dataLimitInBytes: data["dataLimitInBytes"],
|
|
2362
|
+
dataLimitInGB: data["dataLimitInGb"],
|
|
1741
2363
|
minDays: data["minDays"],
|
|
1742
2364
|
maxDays: data["maxDays"],
|
|
1743
2365
|
priceInCents: data["priceInCents"]
|
|
@@ -1839,7 +2461,8 @@ var createPurchaseV2Request = z12.lazy(() => {
|
|
|
1839
2461
|
email: z12.string().optional(),
|
|
1840
2462
|
referenceId: z12.string().optional(),
|
|
1841
2463
|
networkBrand: z12.string().optional(),
|
|
1842
|
-
emailBrand: z12.string().optional()
|
|
2464
|
+
emailBrand: z12.string().optional(),
|
|
2465
|
+
language: z12.string().optional()
|
|
1843
2466
|
});
|
|
1844
2467
|
});
|
|
1845
2468
|
var createPurchaseV2RequestResponse = z12.lazy(() => {
|
|
@@ -1853,7 +2476,8 @@ var createPurchaseV2RequestResponse = z12.lazy(() => {
|
|
|
1853
2476
|
email: z12.string().optional(),
|
|
1854
2477
|
referenceId: z12.string().optional(),
|
|
1855
2478
|
networkBrand: z12.string().optional(),
|
|
1856
|
-
emailBrand: z12.string().optional()
|
|
2479
|
+
emailBrand: z12.string().optional(),
|
|
2480
|
+
language: z12.string().optional()
|
|
1857
2481
|
}).transform((data) => ({
|
|
1858
2482
|
destination: data["destination"],
|
|
1859
2483
|
dataLimitInGb: data["dataLimitInGB"],
|
|
@@ -1864,7 +2488,8 @@ var createPurchaseV2RequestResponse = z12.lazy(() => {
|
|
|
1864
2488
|
email: data["email"],
|
|
1865
2489
|
referenceId: data["referenceId"],
|
|
1866
2490
|
networkBrand: data["networkBrand"],
|
|
1867
|
-
emailBrand: data["emailBrand"]
|
|
2491
|
+
emailBrand: data["emailBrand"],
|
|
2492
|
+
language: data["language"]
|
|
1868
2493
|
}));
|
|
1869
2494
|
});
|
|
1870
2495
|
var createPurchaseV2RequestRequest = z12.lazy(() => {
|
|
@@ -1878,7 +2503,8 @@ var createPurchaseV2RequestRequest = z12.lazy(() => {
|
|
|
1878
2503
|
email: z12.string().optional(),
|
|
1879
2504
|
referenceId: z12.string().optional(),
|
|
1880
2505
|
networkBrand: z12.string().optional(),
|
|
1881
|
-
emailBrand: z12.string().optional()
|
|
2506
|
+
emailBrand: z12.string().optional(),
|
|
2507
|
+
language: z12.string().optional()
|
|
1882
2508
|
}).transform((data) => ({
|
|
1883
2509
|
destination: data["destination"],
|
|
1884
2510
|
dataLimitInGB: data["dataLimitInGb"],
|
|
@@ -1889,7 +2515,8 @@ var createPurchaseV2RequestRequest = z12.lazy(() => {
|
|
|
1889
2515
|
email: data["email"],
|
|
1890
2516
|
referenceId: data["referenceId"],
|
|
1891
2517
|
networkBrand: data["networkBrand"],
|
|
1892
|
-
emailBrand: data["emailBrand"]
|
|
2518
|
+
emailBrand: data["emailBrand"],
|
|
2519
|
+
language: data["language"]
|
|
1893
2520
|
}));
|
|
1894
2521
|
});
|
|
1895
2522
|
|
|
@@ -1934,29 +2561,39 @@ var createPurchaseV2OkResponseProfile = z14.lazy(() => {
|
|
|
1934
2561
|
return z14.object({
|
|
1935
2562
|
iccid: z14.string().min(18).max(22),
|
|
1936
2563
|
activationCode: z14.string().min(1e3).max(8e3),
|
|
1937
|
-
manualActivationCode: z14.string()
|
|
2564
|
+
manualActivationCode: z14.string(),
|
|
2565
|
+
iosActivationLink: z14.string(),
|
|
2566
|
+
androidActivationLink: z14.string()
|
|
1938
2567
|
});
|
|
1939
2568
|
});
|
|
1940
2569
|
var createPurchaseV2OkResponseProfileResponse = z14.lazy(() => {
|
|
1941
2570
|
return z14.object({
|
|
1942
2571
|
iccid: z14.string().min(18).max(22),
|
|
1943
2572
|
activationCode: z14.string().min(1e3).max(8e3),
|
|
1944
|
-
manualActivationCode: z14.string()
|
|
2573
|
+
manualActivationCode: z14.string(),
|
|
2574
|
+
iosActivationLink: z14.string(),
|
|
2575
|
+
androidActivationLink: z14.string()
|
|
1945
2576
|
}).transform((data) => ({
|
|
1946
2577
|
iccid: data["iccid"],
|
|
1947
2578
|
activationCode: data["activationCode"],
|
|
1948
|
-
manualActivationCode: data["manualActivationCode"]
|
|
2579
|
+
manualActivationCode: data["manualActivationCode"],
|
|
2580
|
+
iosActivationLink: data["iosActivationLink"],
|
|
2581
|
+
androidActivationLink: data["androidActivationLink"]
|
|
1949
2582
|
}));
|
|
1950
2583
|
});
|
|
1951
2584
|
var createPurchaseV2OkResponseProfileRequest = z14.lazy(() => {
|
|
1952
2585
|
return z14.object({
|
|
1953
2586
|
iccid: z14.string().min(18).max(22),
|
|
1954
2587
|
activationCode: z14.string().min(1e3).max(8e3),
|
|
1955
|
-
manualActivationCode: z14.string()
|
|
2588
|
+
manualActivationCode: z14.string(),
|
|
2589
|
+
iosActivationLink: z14.string(),
|
|
2590
|
+
androidActivationLink: z14.string()
|
|
1956
2591
|
}).transform((data) => ({
|
|
1957
2592
|
iccid: data["iccid"],
|
|
1958
2593
|
activationCode: data["activationCode"],
|
|
1959
|
-
manualActivationCode: data["manualActivationCode"]
|
|
2594
|
+
manualActivationCode: data["manualActivationCode"],
|
|
2595
|
+
iosActivationLink: data["iosActivationLink"],
|
|
2596
|
+
androidActivationLink: data["androidActivationLink"]
|
|
1960
2597
|
}));
|
|
1961
2598
|
});
|
|
1962
2599
|
|
|
@@ -1998,6 +2635,7 @@ var package_ = z16.lazy(() => {
|
|
|
1998
2635
|
return z16.object({
|
|
1999
2636
|
id: z16.string(),
|
|
2000
2637
|
dataLimitInBytes: z16.number(),
|
|
2638
|
+
dataLimitInGb: z16.number(),
|
|
2001
2639
|
destination: z16.string(),
|
|
2002
2640
|
destinationIso2: z16.string(),
|
|
2003
2641
|
destinationName: z16.string(),
|
|
@@ -2008,6 +2646,7 @@ var packageResponse = z16.lazy(() => {
|
|
|
2008
2646
|
return z16.object({
|
|
2009
2647
|
id: z16.string(),
|
|
2010
2648
|
dataLimitInBytes: z16.number(),
|
|
2649
|
+
dataLimitInGB: z16.number(),
|
|
2011
2650
|
destination: z16.string(),
|
|
2012
2651
|
destinationISO2: z16.string(),
|
|
2013
2652
|
destinationName: z16.string(),
|
|
@@ -2015,6 +2654,7 @@ var packageResponse = z16.lazy(() => {
|
|
|
2015
2654
|
}).transform((data) => ({
|
|
2016
2655
|
id: data["id"],
|
|
2017
2656
|
dataLimitInBytes: data["dataLimitInBytes"],
|
|
2657
|
+
dataLimitInGb: data["dataLimitInGB"],
|
|
2018
2658
|
destination: data["destination"],
|
|
2019
2659
|
destinationIso2: data["destinationISO2"],
|
|
2020
2660
|
destinationName: data["destinationName"],
|
|
@@ -2025,6 +2665,7 @@ var packageRequest = z16.lazy(() => {
|
|
|
2025
2665
|
return z16.object({
|
|
2026
2666
|
id: z16.string(),
|
|
2027
2667
|
dataLimitInBytes: z16.number(),
|
|
2668
|
+
dataLimitInGb: z16.number(),
|
|
2028
2669
|
destination: z16.string(),
|
|
2029
2670
|
destinationIso2: z16.string(),
|
|
2030
2671
|
destinationName: z16.string(),
|
|
@@ -2032,6 +2673,7 @@ var packageRequest = z16.lazy(() => {
|
|
|
2032
2673
|
}).transform((data) => ({
|
|
2033
2674
|
id: data["id"],
|
|
2034
2675
|
dataLimitInBytes: data["dataLimitInBytes"],
|
|
2676
|
+
dataLimitInGB: data["dataLimitInGb"],
|
|
2035
2677
|
destination: data["destination"],
|
|
2036
2678
|
destinationISO2: data["destinationIso2"],
|
|
2037
2679
|
destinationName: data["destinationName"],
|
|
@@ -2180,6 +2822,7 @@ var createPurchaseRequest = z20.lazy(() => {
|
|
|
2180
2822
|
referenceId: z20.string().optional(),
|
|
2181
2823
|
networkBrand: z20.string().optional(),
|
|
2182
2824
|
emailBrand: z20.string().optional(),
|
|
2825
|
+
language: z20.string().optional(),
|
|
2183
2826
|
startTime: z20.number().optional(),
|
|
2184
2827
|
endTime: z20.number().optional()
|
|
2185
2828
|
});
|
|
@@ -2194,6 +2837,7 @@ var createPurchaseRequestResponse = z20.lazy(() => {
|
|
|
2194
2837
|
referenceId: z20.string().optional(),
|
|
2195
2838
|
networkBrand: z20.string().optional(),
|
|
2196
2839
|
emailBrand: z20.string().optional(),
|
|
2840
|
+
language: z20.string().optional(),
|
|
2197
2841
|
startTime: z20.number().optional(),
|
|
2198
2842
|
endTime: z20.number().optional()
|
|
2199
2843
|
}).transform((data) => ({
|
|
@@ -2205,6 +2849,7 @@ var createPurchaseRequestResponse = z20.lazy(() => {
|
|
|
2205
2849
|
referenceId: data["referenceId"],
|
|
2206
2850
|
networkBrand: data["networkBrand"],
|
|
2207
2851
|
emailBrand: data["emailBrand"],
|
|
2852
|
+
language: data["language"],
|
|
2208
2853
|
startTime: data["startTime"],
|
|
2209
2854
|
endTime: data["endTime"]
|
|
2210
2855
|
}));
|
|
@@ -2219,6 +2864,7 @@ var createPurchaseRequestRequest = z20.lazy(() => {
|
|
|
2219
2864
|
referenceId: z20.string().optional(),
|
|
2220
2865
|
networkBrand: z20.string().optional(),
|
|
2221
2866
|
emailBrand: z20.string().optional(),
|
|
2867
|
+
language: z20.string().optional(),
|
|
2222
2868
|
startTime: z20.number().optional(),
|
|
2223
2869
|
endTime: z20.number().optional()
|
|
2224
2870
|
}).transform((data) => ({
|
|
@@ -2230,6 +2876,7 @@ var createPurchaseRequestRequest = z20.lazy(() => {
|
|
|
2230
2876
|
referenceId: data["referenceId"],
|
|
2231
2877
|
networkBrand: data["networkBrand"],
|
|
2232
2878
|
emailBrand: data["emailBrand"],
|
|
2879
|
+
language: data["language"],
|
|
2233
2880
|
startTime: data["startTime"],
|
|
2234
2881
|
endTime: data["endTime"]
|
|
2235
2882
|
}));
|
|
@@ -2607,24 +3254,29 @@ import { z as z30 } from "zod";
|
|
|
2607
3254
|
var getPurchaseConsumptionOkResponse = z30.lazy(() => {
|
|
2608
3255
|
return z30.object({
|
|
2609
3256
|
dataUsageRemainingInBytes: z30.number(),
|
|
3257
|
+
dataUsageRemainingInGb: z30.number(),
|
|
2610
3258
|
status: z30.string()
|
|
2611
3259
|
});
|
|
2612
3260
|
});
|
|
2613
3261
|
var getPurchaseConsumptionOkResponseResponse = z30.lazy(() => {
|
|
2614
3262
|
return z30.object({
|
|
2615
3263
|
dataUsageRemainingInBytes: z30.number(),
|
|
3264
|
+
dataUsageRemainingInGB: z30.number(),
|
|
2616
3265
|
status: z30.string()
|
|
2617
3266
|
}).transform((data) => ({
|
|
2618
3267
|
dataUsageRemainingInBytes: data["dataUsageRemainingInBytes"],
|
|
3268
|
+
dataUsageRemainingInGb: data["dataUsageRemainingInGB"],
|
|
2619
3269
|
status: data["status"]
|
|
2620
3270
|
}));
|
|
2621
3271
|
});
|
|
2622
3272
|
var getPurchaseConsumptionOkResponseRequest = z30.lazy(() => {
|
|
2623
3273
|
return z30.object({
|
|
2624
3274
|
dataUsageRemainingInBytes: z30.number(),
|
|
3275
|
+
dataUsageRemainingInGb: z30.number(),
|
|
2625
3276
|
status: z30.string()
|
|
2626
3277
|
}).transform((data) => ({
|
|
2627
3278
|
dataUsageRemainingInBytes: data["dataUsageRemainingInBytes"],
|
|
3279
|
+
dataUsageRemainingInGB: data["dataUsageRemainingInGb"],
|
|
2628
3280
|
status: data["status"]
|
|
2629
3281
|
}));
|
|
2630
3282
|
});
|
|
@@ -2810,6 +3462,26 @@ var PurchasesService = class extends BaseService {
|
|
|
2810
3462
|
}
|
|
2811
3463
|
};
|
|
2812
3464
|
|
|
3465
|
+
// src/services/purchases/models/create-purchase-v2-request-language.ts
|
|
3466
|
+
var CreatePurchaseV2RequestLanguage = /* @__PURE__ */ ((CreatePurchaseV2RequestLanguage2) => {
|
|
3467
|
+
CreatePurchaseV2RequestLanguage2["EN"] = "en";
|
|
3468
|
+
CreatePurchaseV2RequestLanguage2["ES"] = "es";
|
|
3469
|
+
CreatePurchaseV2RequestLanguage2["FR"] = "fr";
|
|
3470
|
+
CreatePurchaseV2RequestLanguage2["DE"] = "de";
|
|
3471
|
+
CreatePurchaseV2RequestLanguage2["PT_BR"] = "pt-br";
|
|
3472
|
+
return CreatePurchaseV2RequestLanguage2;
|
|
3473
|
+
})(CreatePurchaseV2RequestLanguage || {});
|
|
3474
|
+
|
|
3475
|
+
// src/services/purchases/models/create-purchase-request-language.ts
|
|
3476
|
+
var CreatePurchaseRequestLanguage = /* @__PURE__ */ ((CreatePurchaseRequestLanguage2) => {
|
|
3477
|
+
CreatePurchaseRequestLanguage2["EN"] = "en";
|
|
3478
|
+
CreatePurchaseRequestLanguage2["ES"] = "es";
|
|
3479
|
+
CreatePurchaseRequestLanguage2["FR"] = "fr";
|
|
3480
|
+
CreatePurchaseRequestLanguage2["DE"] = "de";
|
|
3481
|
+
CreatePurchaseRequestLanguage2["PT_BR"] = "pt-br";
|
|
3482
|
+
return CreatePurchaseRequestLanguage2;
|
|
3483
|
+
})(CreatePurchaseRequestLanguage || {});
|
|
3484
|
+
|
|
2813
3485
|
// src/services/e-sim/e-sim-service.ts
|
|
2814
3486
|
import { z as z39 } from "zod";
|
|
2815
3487
|
|
|
@@ -3227,6 +3899,8 @@ var Celitech = class {
|
|
|
3227
3899
|
};
|
|
3228
3900
|
export {
|
|
3229
3901
|
Celitech,
|
|
3902
|
+
CreatePurchaseRequestLanguage,
|
|
3903
|
+
CreatePurchaseV2RequestLanguage,
|
|
3230
3904
|
DestinationsService,
|
|
3231
3905
|
ESimService,
|
|
3232
3906
|
Environment,
|