celitech-sdk 1.3.64 → 2.0.0

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/dist/index.mjs CHANGED
@@ -235,7 +235,11 @@ var TransportHookAdapter = class {
235
235
  method: newRequest.method,
236
236
  path: newRequest.path,
237
237
  body: newRequest.body,
238
- queryParams: this.hookParamsToTransportParams(newRequest.queryParams, request.queryParams, true),
238
+ queryParams: this.hookParamsToTransportParams(
239
+ newRequest.queryParams,
240
+ request.queryParams,
241
+ true
242
+ ),
239
243
  headers: this.hookParamsToTransportParams(newRequest.headers, request.headers, false),
240
244
  pathParams: this.hookParamsToTransportParams(newRequest.pathParams, request.headers, false)
241
245
  });
@@ -399,7 +403,9 @@ var HookHandler = class {
399
403
  if (error) {
400
404
  const decodedBody2 = new TextDecoder().decode(arrayBuffer);
401
405
  const json = JSON.parse(decodedBody2);
402
- new error.error((json == null ? void 0 : json.message) || "", json).throw();
406
+ const customError = new error.error((json == null ? void 0 : json.message) || "", json);
407
+ customError.metadata = response.metadata;
408
+ customError.throw();
403
409
  }
404
410
  const decodedBody = new TextDecoder().decode(arrayBuffer);
405
411
  throw new HttpError(
@@ -602,8 +608,8 @@ var ResponseValidationHandler = class {
602
608
  * @returns The validated data (parsed if validation enabled, raw otherwise)
603
609
  */
604
610
  validate(request, response, data) {
605
- var _a;
606
- if ((_a = request.validation) == null ? void 0 : _a.responseValidation) {
611
+ var _a, _b;
612
+ if ((_b = (_a = request.config.validation) == null ? void 0 : _a.responseValidation) != null ? _b : true) {
607
613
  return response.schema.parse(data);
608
614
  }
609
615
  return data;
@@ -676,7 +682,9 @@ var ValidationError = class extends Error {
676
682
  }
677
683
  const error = [
678
684
  `ValidationError:`,
679
- ...zodError.issues.map((issue) => ` Property: ${issue.path.join(".")}. Message: ${issue.message}`),
685
+ ...zodError.issues.map(
686
+ (issue) => ` Property: ${issue.path.join(".")}. Message: ${issue.message}`
687
+ ),
680
688
  " Validated:",
681
689
  ...actual.split("\n").map((line) => ` ${line}`)
682
690
  ].join("\n");
@@ -984,7 +992,10 @@ var RequestFetchAdapter = class {
984
992
  return headers;
985
993
  }
986
994
  toArrayBuffer(uint8Array) {
987
- return uint8Array.buffer.slice(uint8Array.byteOffset, uint8Array.byteOffset + uint8Array.byteLength);
995
+ return uint8Array.buffer.slice(
996
+ uint8Array.byteOffset,
997
+ uint8Array.byteOffset + uint8Array.byteLength
998
+ );
988
999
  }
989
1000
  };
990
1001
 
@@ -1015,23 +1026,27 @@ var RetryHandler = class {
1015
1026
  /**
1016
1027
  * Handles a standard HTTP request with retry logic.
1017
1028
  * Retries failed requests based on the configured retry settings.
1029
+ * Implements exponential backoff with optional jitter between retry attempts.
1018
1030
  * @template T - The expected response data type
1019
1031
  * @param request - The HTTP request to process
1020
1032
  * @returns A promise that resolves to the HTTP response
1021
1033
  * @throws Error if no next handler is set, or if all retry attempts fail
1022
1034
  */
1023
1035
  async handle(request) {
1036
+ var _a, _b;
1024
1037
  if (!this.next) {
1025
1038
  throw new Error("No next handler set in retry handler.");
1026
1039
  }
1027
- for (let attempt = 1; attempt <= request.retry.attempts; attempt++) {
1040
+ const maxAttempts = (_b = (_a = request.config.retry) == null ? void 0 : _a.attempts) != null ? _b : 3;
1041
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
1028
1042
  try {
1029
1043
  return await this.next.handle(request);
1030
1044
  } catch (error) {
1031
- if (!this.shouldRetry(error) || attempt === request.retry.attempts) {
1045
+ if (!this.shouldRetry(error, request) || attempt === maxAttempts) {
1032
1046
  throw error;
1033
1047
  }
1034
- await this.delay(request.retry.delayMs);
1048
+ const delayMs = this.calculateDelay(attempt, request);
1049
+ await this.delay(delayMs);
1035
1050
  }
1036
1051
  }
1037
1052
  throw new Error("Error retrying request.");
@@ -1044,38 +1059,78 @@ var RetryHandler = class {
1044
1059
  * @throws Error if no next handler is set, or if all retry attempts fail
1045
1060
  */
1046
1061
  async *stream(request) {
1062
+ var _a, _b;
1047
1063
  if (!this.next) {
1048
1064
  throw new Error("No next handler set in retry handler.");
1049
1065
  }
1050
- for (let attempt = 1; attempt <= request.retry.attempts; attempt++) {
1066
+ const maxAttempts = (_b = (_a = request.config.retry) == null ? void 0 : _a.attempts) != null ? _b : 3;
1067
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
1051
1068
  try {
1052
1069
  yield* this.next.stream(request);
1053
1070
  return;
1054
1071
  } catch (error) {
1055
- if (!this.shouldRetry(error) || attempt === request.retry.attempts) {
1072
+ if (!this.shouldRetry(error, request) || attempt === maxAttempts) {
1056
1073
  throw error;
1057
1074
  }
1058
- await this.delay(request.retry.delayMs);
1075
+ const delayMs = this.calculateDelay(attempt, request);
1076
+ await this.delay(delayMs);
1059
1077
  }
1060
1078
  }
1061
1079
  throw new Error("Error retrying request.");
1062
1080
  }
1063
1081
  /**
1064
1082
  * Determines if an error should trigger a retry.
1065
- * Retries server errors (5xx), request timeouts (408), and rate limits (429).
1083
+ * Checks both HTTP status codes and HTTP methods against the configured retry settings.
1084
+ * By default, retries all 5xx server errors and specific 4xx client errors (408 Timeout, 429 Rate Limit).
1066
1085
  * @param error - The error to check
1086
+ * @param request - The HTTP request being retried
1067
1087
  * @returns True if the request should be retried, false otherwise
1068
1088
  */
1069
- shouldRetry(error) {
1070
- return error instanceof HttpError && (error.metadata.status >= 500 || error.metadata.status === 408 || error.metadata.status === 429);
1089
+ shouldRetry(error, request) {
1090
+ var _a, _b, _c;
1091
+ if (!(error instanceof HttpError)) {
1092
+ return false;
1093
+ }
1094
+ const httpMethodsToRetry = (_b = (_a = request.config.retry) == null ? void 0 : _a.httpMethodsToRetry) != null ? _b : [
1095
+ "GET",
1096
+ "POST",
1097
+ "PUT",
1098
+ "DELETE",
1099
+ "PATCH",
1100
+ "HEAD",
1101
+ "OPTIONS"
1102
+ ];
1103
+ const shouldRetryStatus = ((_c = request.config.retry) == null ? void 0 : _c.statusCodesToRetry) ? request.config.retry.statusCodesToRetry.includes(error.metadata.status) : error.metadata.status >= 500 || [408, 429].includes(error.metadata.status);
1104
+ const shouldRetryMethod = httpMethodsToRetry.includes(request.method);
1105
+ return shouldRetryStatus && shouldRetryMethod;
1106
+ }
1107
+ /**
1108
+ * Calculates the delay before the next retry attempt using exponential backoff.
1109
+ * Optionally adds jitter to prevent thundering herd problems.
1110
+ * @param attempt - The current retry attempt number (1-indexed)
1111
+ * @param request - The HTTP request being retried
1112
+ * @returns The delay in milliseconds, capped at the configured maximum delay
1113
+ */
1114
+ calculateDelay(attempt, request) {
1115
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1116
+ const baseDelay = (_b = (_a = request.config.retry) == null ? void 0 : _a.delayMs) != null ? _b : 150;
1117
+ const backoffFactor = (_d = (_c = request.config.retry) == null ? void 0 : _c.backoffFactor) != null ? _d : 2;
1118
+ const maxDelay = (_f = (_e = request.config.retry) == null ? void 0 : _e.maxDelayMs) != null ? _f : 5e3;
1119
+ const jitter = (_h = (_g = request.config.retry) == null ? void 0 : _g.jitterMs) != null ? _h : 50;
1120
+ let delay = baseDelay * Math.pow(backoffFactor, attempt - 1);
1121
+ delay = Math.min(delay, maxDelay);
1122
+ if (jitter > 0) {
1123
+ delay += Math.random() * jitter;
1124
+ }
1125
+ return Math.floor(delay);
1071
1126
  }
1072
1127
  /**
1073
1128
  * Delays execution for a specified duration before retrying.
1074
- * @param delayMs - The delay in milliseconds (optional)
1129
+ * @param delayMs - The delay in milliseconds
1075
1130
  * @returns A promise that resolves after the delay
1076
1131
  */
1077
1132
  delay(delayMs) {
1078
- if (!delayMs) {
1133
+ if (delayMs <= 0) {
1079
1134
  return Promise.resolve();
1080
1135
  }
1081
1136
  return new Promise((resolve, reject) => {
@@ -1186,6 +1241,15 @@ var HttpClient = class {
1186
1241
  call(request) {
1187
1242
  return this.requestHandlerChain.callChain(request);
1188
1243
  }
1244
+ /**
1245
+ * Executes a standard HTTP request and returns only the data directly.
1246
+ * @template T - The expected response data type
1247
+ * @param request - The HTTP request to execute
1248
+ * @returns A promise that resolves to the response data
1249
+ */
1250
+ callDirect(request) {
1251
+ return this.call(request).then((response) => response.data);
1252
+ }
1189
1253
  /**
1190
1254
  * Executes a streaming HTTP request that yields responses incrementally.
1191
1255
  * @template T - The expected response data type for each chunk
@@ -1306,6 +1370,61 @@ var BaseService = class {
1306
1370
  this.tokenManager = tokenManager;
1307
1371
  this.client = new HttpClient(this.config);
1308
1372
  }
1373
+ /**
1374
+ * Sets service-level configuration that applies to all methods in this service.
1375
+ * @param config - Partial configuration to override SDK-level defaults
1376
+ * @returns This service instance for method chaining
1377
+ */
1378
+ setConfig(config) {
1379
+ this.serviceConfig = config;
1380
+ return this;
1381
+ }
1382
+ /**
1383
+ * Recursively merges two objects. Plain nested objects are merged key-by-key so a
1384
+ * partial override (e.g. `{ retry: { attempts: 5 } }`) only overwrites the specified
1385
+ * keys instead of replacing the whole nested object. Arrays and non-plain values are
1386
+ * replaced wholesale.
1387
+ *
1388
+ * Override keys with the value `undefined` are skipped so the base value is preserved,
1389
+ * matching the common JS merge idiom (e.g. lodash.merge). To explicitly clear a key,
1390
+ * assign `null` or omit the key from the override entirely.
1391
+ */
1392
+ static deepMerge(base, override) {
1393
+ const result = { ...base };
1394
+ for (const [key, value] of Object.entries(override)) {
1395
+ const existing = result[key];
1396
+ if (BaseService.isPlainObject(value) && BaseService.isPlainObject(existing)) {
1397
+ result[key] = BaseService.deepMerge(existing, value);
1398
+ } else if (value !== void 0) {
1399
+ result[key] = value;
1400
+ }
1401
+ }
1402
+ return result;
1403
+ }
1404
+ static isPlainObject(value) {
1405
+ return typeof value === "object" && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
1406
+ }
1407
+ /**
1408
+ * Resolves configuration from the hierarchy: requestConfig > methodConfig > serviceConfig > sdkConfig
1409
+ * Deep-merges all config levels so partial nested overrides (e.g. `{ retry: { attempts: 5 } }`)
1410
+ * preserve unoverridden sibling keys from the SDK default.
1411
+ * @param methodConfig - Method-level configuration override
1412
+ * @param requestConfig - Request-level configuration override
1413
+ * @returns Merged configuration with all overrides applied
1414
+ */
1415
+ getResolvedConfig(methodConfig, requestConfig) {
1416
+ let merged = { ...this.config };
1417
+ if (this.serviceConfig) {
1418
+ merged = BaseService.deepMerge(merged, this.serviceConfig);
1419
+ }
1420
+ if (methodConfig) {
1421
+ merged = BaseService.deepMerge(merged, methodConfig);
1422
+ }
1423
+ if (requestConfig) {
1424
+ merged = BaseService.deepMerge(merged, requestConfig);
1425
+ }
1426
+ return merged;
1427
+ }
1309
1428
  set baseUrl(baseUrl) {
1310
1429
  this.config.baseUrl = baseUrl;
1311
1430
  }
@@ -1482,8 +1601,6 @@ var Request = class {
1482
1601
  this.queryParams = /* @__PURE__ */ new Map();
1483
1602
  this.pathParams = /* @__PURE__ */ new Map();
1484
1603
  this.cookies = /* @__PURE__ */ new Map();
1485
- this.validation = {};
1486
- this.retry = {};
1487
1604
  this.baseUrl = params.baseUrl;
1488
1605
  this.method = params.method;
1489
1606
  this.pathPattern = params.path;
@@ -1498,8 +1615,6 @@ var Request = class {
1498
1615
  this.errors = params.errors;
1499
1616
  this.requestSchema = params.requestSchema;
1500
1617
  this.requestContentType = params.requestContentType;
1501
- this.retry = params.retry;
1502
- this.validation = params.validation;
1503
1618
  this.pagination = params.pagination;
1504
1619
  this.filename = params.filename;
1505
1620
  this.filenames = params.filenames;
@@ -1612,7 +1727,7 @@ var Request = class {
1612
1727
  * @returns A new Request instance with the specified overrides
1613
1728
  */
1614
1729
  copy(overrides) {
1615
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
1730
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
1616
1731
  const createRequestParams = {
1617
1732
  baseUrl: (_a = overrides == null ? void 0 : overrides.baseUrl) != null ? _a : this.baseUrl,
1618
1733
  errors: (_b = overrides == null ? void 0 : overrides.errors) != null ? _b : this.errors,
@@ -1627,10 +1742,8 @@ var Request = class {
1627
1742
  responses: (_k = overrides == null ? void 0 : overrides.responses) != null ? _k : this.responses,
1628
1743
  requestSchema: (_l = overrides == null ? void 0 : overrides.requestSchema) != null ? _l : this.requestSchema,
1629
1744
  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,
1745
+ filename: (_n = overrides == null ? void 0 : overrides.filename) != null ? _n : this.filename,
1746
+ filenames: (_o = overrides == null ? void 0 : overrides.filenames) != null ? _o : this.filenames,
1634
1747
  scopes: overrides == null ? void 0 : overrides.scopes,
1635
1748
  tokenManager: this.tokenManager
1636
1749
  };
@@ -1732,55 +1845,73 @@ var RequestBuilder = class {
1732
1845
  baseUrl: "https://api.celitech.net/v1" /* DEFAULT */,
1733
1846
  method: "GET",
1734
1847
  path: "",
1735
- config: {},
1848
+ config: {
1849
+ clientId: "",
1850
+ clientSecret: "",
1851
+ retry: {
1852
+ attempts: 3,
1853
+ delayMs: 150,
1854
+ maxDelayMs: 5e3,
1855
+ backoffFactor: 2,
1856
+ jitterMs: 50,
1857
+ httpMethodsToRetry: ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]
1858
+ },
1859
+ validation: { responseValidation: true }
1860
+ },
1736
1861
  responses: [],
1737
1862
  errors: [],
1738
1863
  requestSchema: z.any(),
1739
1864
  requestContentType: "json" /* Json */,
1740
- retry: {
1741
- attempts: 3,
1742
- delayMs: 150
1743
- },
1744
- validation: {
1745
- responseValidation: true
1746
- },
1747
1865
  pathParams: /* @__PURE__ */ new Map(),
1748
1866
  queryParams: /* @__PURE__ */ new Map(),
1749
1867
  headers: /* @__PURE__ */ new Map(),
1750
1868
  cookies: /* @__PURE__ */ new Map(),
1751
1869
  tokenManager: new OAuthTokenManager()
1752
1870
  };
1871
+ this.addHeaderParam({
1872
+ key: "User-Agent",
1873
+ value: "postman-codegen/1.1.2 celitech-sdk/2.0.0 (typescript)"
1874
+ });
1753
1875
  }
1754
- setRetryAttempts(sdkConfig, requestConfig) {
1876
+ setConfig(config) {
1755
1877
  var _a, _b;
1756
- if (((_a = requestConfig == null ? void 0 : requestConfig.retry) == null ? void 0 : _a.attempts) !== void 0) {
1757
- this.params.retry.attempts = requestConfig.retry.attempts;
1758
- } else if (((_b = sdkConfig == null ? void 0 : sdkConfig.retry) == null ? void 0 : _b.attempts) !== void 0) {
1759
- this.params.retry.attempts = sdkConfig.retry.attempts;
1878
+ let mergedRetry = (_a = config.retry) != null ? _a : this.params.config.retry;
1879
+ if (config.retry !== void 0 && this.params.config.retry !== void 0) {
1880
+ mergedRetry = { ...this.params.config.retry, ...config.retry };
1760
1881
  }
1761
- return this;
1762
- }
1763
- setRetryDelayMs(sdkConfig, requestConfig) {
1764
- var _a, _b;
1765
- if (((_a = requestConfig == null ? void 0 : requestConfig.retry) == null ? void 0 : _a.delayMs) !== void 0) {
1766
- this.params.retry.delayMs = requestConfig.retry.delayMs;
1767
- } else if (((_b = sdkConfig == null ? void 0 : sdkConfig.retry) == null ? void 0 : _b.delayMs) !== void 0) {
1768
- this.params.retry.delayMs = sdkConfig.retry.delayMs;
1882
+ let mergedValidation = (_b = config.validation) != null ? _b : this.params.config.validation;
1883
+ if (config.validation !== void 0 && this.params.config.validation !== void 0) {
1884
+ mergedValidation = { ...this.params.config.validation, ...config.validation };
1769
1885
  }
1886
+ this.params.config = {
1887
+ ...this.params.config,
1888
+ ...config,
1889
+ ...mergedRetry !== void 0 && { retry: mergedRetry },
1890
+ ...mergedValidation !== void 0 && { validation: mergedValidation }
1891
+ };
1770
1892
  return this;
1771
1893
  }
1772
- setResponseValidation(sdkConfig, requestConfig) {
1773
- var _a, _b;
1774
- if (((_a = requestConfig == null ? void 0 : requestConfig.validation) == null ? void 0 : _a.responseValidation) !== void 0) {
1775
- this.params.validation.responseValidation = requestConfig.validation.responseValidation;
1776
- } else if (((_b = sdkConfig == null ? void 0 : sdkConfig.validation) == null ? void 0 : _b.responseValidation) !== void 0) {
1777
- this.params.validation.responseValidation = sdkConfig.validation.responseValidation;
1894
+ /**
1895
+ * Sets the base URL for the request using hierarchical configuration resolution.
1896
+ *
1897
+ * Resolution logic:
1898
+ * 1. First tries to resolve 'baseUrl' (string) from the resolved config
1899
+ * 2. If no 'baseUrl' found, falls back to 'environment' (enum) from the resolved config
1900
+ * 3. 'baseUrl' always takes precedence over 'environment'
1901
+ *
1902
+ * @param config - Resolved configuration from all hierarchy levels
1903
+ * @returns This builder instance for method chaining
1904
+ */
1905
+ setBaseUrl(config) {
1906
+ if (!config) {
1907
+ return this;
1778
1908
  }
1779
- return this;
1780
- }
1781
- setBaseUrl(baseUrl) {
1782
- if (baseUrl) {
1783
- this.params.baseUrl = baseUrl;
1909
+ if ("baseUrl" in config && typeof config.baseUrl === "string" && config.baseUrl) {
1910
+ this.params.baseUrl = config.baseUrl;
1911
+ return this;
1912
+ }
1913
+ if ("environment" in config && config.environment) {
1914
+ this.params.baseUrl = config.environment;
1784
1915
  }
1785
1916
  return this;
1786
1917
  }
@@ -1792,10 +1923,6 @@ var RequestBuilder = class {
1792
1923
  this.params.path = path;
1793
1924
  return this;
1794
1925
  }
1795
- setConfig(config) {
1796
- this.params.config = config;
1797
- return this;
1798
- }
1799
1926
  setRequestContentType(contentType) {
1800
1927
  this.params.requestContentType = contentType;
1801
1928
  return this;
@@ -1838,7 +1965,7 @@ var RequestBuilder = class {
1838
1965
  }
1839
1966
  this.params.headers.set("Authorization", {
1840
1967
  key: "Authorization",
1841
- value: `${prefix != null ? prefix : "BEARER"} ${accessToken}`,
1968
+ value: `${prefix != null ? prefix : "Bearer"} ${accessToken}`,
1842
1969
  explode: false,
1843
1970
  style: "simple" /* SIMPLE */,
1844
1971
  encode: true,
@@ -1985,66 +2112,66 @@ var RequestBuilder = class {
1985
2112
  }
1986
2113
  };
1987
2114
 
1988
- // src/services/o-auth/models/get-access-token-request.ts
2115
+ // src/services/o-auth/models/o-auth-token-request.ts
1989
2116
  import { z as z2 } from "zod";
1990
- var getAccessTokenRequest = z2.lazy(() => {
2117
+ var oAuthTokenRequest = z2.lazy(() => {
1991
2118
  return z2.object({
1992
- grantType: z2.string().optional(),
1993
- clientId: z2.string().optional(),
1994
- clientSecret: z2.string().optional()
2119
+ grantType: z2.string(),
2120
+ clientId: z2.string(),
2121
+ clientSecret: z2.string(),
2122
+ scope: z2.string()
1995
2123
  });
1996
2124
  });
1997
- var getAccessTokenRequestResponse = z2.lazy(() => {
2125
+ var oAuthTokenRequestResponse = z2.lazy(() => {
1998
2126
  return z2.object({
1999
- grant_type: z2.string().optional(),
2000
- client_id: z2.string().optional(),
2001
- client_secret: z2.string().optional()
2127
+ grant_type: z2.string(),
2128
+ client_id: z2.string(),
2129
+ client_secret: z2.string(),
2130
+ scope: z2.string()
2002
2131
  }).transform((data) => ({
2003
2132
  grantType: data["grant_type"],
2004
2133
  clientId: data["client_id"],
2005
- clientSecret: data["client_secret"]
2134
+ clientSecret: data["client_secret"],
2135
+ scope: data["scope"]
2006
2136
  }));
2007
2137
  });
2008
- var getAccessTokenRequestRequest = z2.lazy(() => {
2138
+ var oAuthTokenRequestRequest = z2.lazy(() => {
2009
2139
  return z2.object({
2010
- grantType: z2.string().optional(),
2011
- clientId: z2.string().optional(),
2012
- clientSecret: z2.string().optional()
2140
+ grantType: z2.string(),
2141
+ clientId: z2.string(),
2142
+ clientSecret: z2.string(),
2143
+ scope: z2.string()
2013
2144
  }).transform((data) => ({
2014
2145
  grant_type: data["grantType"],
2015
2146
  client_id: data["clientId"],
2016
- client_secret: data["clientSecret"]
2147
+ client_secret: data["clientSecret"],
2148
+ scope: data["scope"]
2017
2149
  }));
2018
2150
  });
2019
2151
 
2020
- // src/services/o-auth/models/get-access-token-ok-response.ts
2152
+ // src/services/o-auth/models/o-auth-token-response.ts
2021
2153
  import { z as z3 } from "zod";
2022
- var getAccessTokenOkResponse = z3.lazy(() => {
2154
+ var oAuthTokenResponse = z3.lazy(() => {
2023
2155
  return z3.object({
2024
2156
  accessToken: z3.string().optional(),
2025
- tokenType: z3.string().optional(),
2026
- expiresIn: z3.number().optional()
2157
+ expiresIn: z3.number().optional().nullable()
2027
2158
  });
2028
2159
  });
2029
- var getAccessTokenOkResponseResponse = z3.lazy(() => {
2160
+ var oAuthTokenResponseResponse = z3.lazy(() => {
2030
2161
  return z3.object({
2031
2162
  access_token: z3.string().optional(),
2032
- token_type: z3.string().optional(),
2033
- expires_in: z3.number().optional()
2163
+ expires_in: z3.number().optional().nullable()
2034
2164
  }).transform((data) => ({
2035
2165
  accessToken: data["access_token"],
2036
- tokenType: data["token_type"],
2037
2166
  expiresIn: data["expires_in"]
2038
2167
  }));
2039
2168
  });
2040
- var getAccessTokenOkResponseRequest = z3.lazy(() => {
2169
+ var oAuthTokenResponseRequest = z3.lazy(() => {
2041
2170
  return z3.object({
2042
2171
  accessToken: z3.string().optional(),
2043
- tokenType: z3.string().optional(),
2044
- expiresIn: z3.number().optional()
2172
+ expiresIn: z3.number().optional().nullable()
2045
2173
  }).transform((data) => ({
2046
2174
  access_token: data["accessToken"],
2047
- token_type: data["tokenType"],
2048
2175
  expires_in: data["expiresIn"]
2049
2176
  }));
2050
2177
  });
@@ -2052,17 +2179,27 @@ var getAccessTokenOkResponseRequest = z3.lazy(() => {
2052
2179
  // src/services/o-auth/o-auth-service.ts
2053
2180
  var OAuthService = class extends BaseService {
2054
2181
  /**
2055
- * This endpoint was added by liblab
2056
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
2057
- * @returns {Promise<HttpResponse<GetAccessTokenOkResponse>>} - Successful Response
2182
+ * Sets method-level configuration for getAccessToken.
2183
+ * @param config - Partial configuration to override service-level defaults
2184
+ * @returns This service instance for method chaining
2185
+ */
2186
+ setGetAccessTokenConfig(config) {
2187
+ this.getAccessTokenConfig = config;
2188
+ return this;
2189
+ }
2190
+ /**
2191
+ *
2192
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
2193
+ * @returns {Promise<HttpResponse<OAuthTokenResponse>>} - OAuth token
2058
2194
  */
2059
2195
  async getAccessToken(body, requestConfig) {
2060
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("POST").setPath("/oauth2/token").setRequestSchema(getAccessTokenRequestRequest).setTokenManager(this.tokenManager).setRequestContentType("form" /* FormUrlEncoded */).addResponse({
2061
- schema: getAccessTokenOkResponseResponse,
2196
+ const resolvedConfig = this.getResolvedConfig(this.getAccessTokenConfig, requestConfig);
2197
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("POST").setPath("/oauth2/token").setRequestSchema(oAuthTokenRequestRequest).setTokenManager(this.tokenManager).setRequestContentType("form" /* FormUrlEncoded */).addResponse({
2198
+ schema: oAuthTokenResponseResponse,
2062
2199
  contentType: "json" /* Json */,
2063
2200
  status: 200
2064
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addHeaderParam({ key: "Content-Type", value: "application/x-www-form-urlencoded" }).addBody(body).build();
2065
- return this.client.call(request);
2201
+ }).addHeaderParam({ key: "Content-Type", value: "application/x-www-form-urlencoded" }).addBody(body).build();
2202
+ return this.client.callDirect(request);
2066
2203
  }
2067
2204
  };
2068
2205
 
@@ -2109,7 +2246,7 @@ var OAuthTokenManager = class {
2109
2246
  * @throws Error if client credentials are missing or token request fails
2110
2247
  */
2111
2248
  async getToken(scopes, config) {
2112
- var _a, _b, _c, _d, _e, _f;
2249
+ var _a, _b, _c;
2113
2250
  if (((_a = this.token) == null ? void 0 : _a.hasAllScopes(scopes)) && ((_b = this.token) == null ? void 0 : _b.expiresAt) && this.token.expiresAt - Date.now() > 5e3) {
2114
2251
  return this.token;
2115
2252
  }
@@ -2124,23 +2261,21 @@ var OAuthTokenManager = class {
2124
2261
  },
2125
2262
  this
2126
2263
  );
2127
- const response = await oAuth.getAccessToken(
2128
- {
2129
- grantType: "client_credentials",
2130
- clientId: config.clientId,
2131
- clientSecret: config.clientSecret
2132
- },
2133
- {}
2134
- );
2135
- if (!((_d = response.data) == null ? void 0 : _d.accessToken)) {
2264
+ const response = await oAuth.getAccessToken({
2265
+ grantType: "client_credentials",
2266
+ clientId: config.clientId,
2267
+ clientSecret: config.clientSecret,
2268
+ scope: Array.from(scopes).join(" ")
2269
+ });
2270
+ if (!(response == null ? void 0 : response.accessToken)) {
2136
2271
  throw new Error(
2137
2272
  `OAuthError: token endpoint response did not return access token. Response: ${JSON.stringify(response), void 0, 2}.`
2138
2273
  );
2139
2274
  }
2140
2275
  this.token = new OAuthToken(
2141
- response.data.accessToken,
2276
+ response.accessToken,
2142
2277
  updatedScopes,
2143
- ((_e = response.data) == null ? void 0 : _e.expiresIn) ? ((_f = response.data) == null ? void 0 : _f.expiresIn) * 1e3 + Date.now() : null
2278
+ (response == null ? void 0 : response.expiresIn) ? (response == null ? void 0 : response.expiresIn) * 1e3 + Date.now() : null
2144
2279
  );
2145
2280
  return this.token;
2146
2281
  }
@@ -2252,7 +2387,9 @@ var BadRequest = class extends ThrowableError {
2252
2387
  this.message = parsedResponse.message || "";
2253
2388
  }
2254
2389
  throw() {
2255
- throw new BadRequest(this.message, this.response);
2390
+ const error = new BadRequest(this.message, this.response);
2391
+ error.metadata = this.metadata;
2392
+ throw error;
2256
2393
  }
2257
2394
  };
2258
2395
 
@@ -2274,19 +2411,31 @@ var Unauthorized = class extends ThrowableError {
2274
2411
  this.message = parsedResponse.message || "";
2275
2412
  }
2276
2413
  throw() {
2277
- throw new Unauthorized(this.message, this.response);
2414
+ const error = new Unauthorized(this.message, this.response);
2415
+ error.metadata = this.metadata;
2416
+ throw error;
2278
2417
  }
2279
2418
  };
2280
2419
 
2281
2420
  // src/services/destinations/destinations-service.ts
2282
2421
  var DestinationsService = class extends BaseService {
2422
+ /**
2423
+ * Sets method-level configuration for listDestinations.
2424
+ * @param config - Partial configuration to override service-level defaults
2425
+ * @returns This service instance for method chaining
2426
+ */
2427
+ setListDestinationsConfig(config) {
2428
+ this.listDestinationsConfig = config;
2429
+ return this;
2430
+ }
2283
2431
  /**
2284
2432
  * List Destinations
2285
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
2433
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
2286
2434
  * @returns {Promise<HttpResponse<ListDestinationsOkResponse>>} - Successful Response
2287
2435
  */
2288
2436
  async listDestinations(requestConfig) {
2289
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("GET").setPath("/destinations").setRequestSchema(z8.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
2437
+ const resolvedConfig = this.getResolvedConfig(this.listDestinationsConfig, requestConfig);
2438
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("GET").setPath("/destinations").setRequestSchema(z8.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
2290
2439
  schema: listDestinationsOkResponseResponse,
2291
2440
  contentType: "json" /* Json */,
2292
2441
  status: 200
@@ -2298,8 +2447,8 @@ var DestinationsService = class extends BaseService {
2298
2447
  error: Unauthorized,
2299
2448
  contentType: "json" /* Json */,
2300
2449
  status: 401
2301
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).build();
2302
- return this.client.call(request);
2450
+ }).build();
2451
+ return this.client.callDirect(request);
2303
2452
  }
2304
2453
  };
2305
2454
 
@@ -2394,6 +2543,15 @@ var listPackagesOkResponseRequest = z10.lazy(() => {
2394
2543
 
2395
2544
  // src/services/packages/packages-service.ts
2396
2545
  var PackagesService = class extends BaseService {
2546
+ /**
2547
+ * Sets method-level configuration for listPackages.
2548
+ * @param config - Partial configuration to override service-level defaults
2549
+ * @returns This service instance for method chaining
2550
+ */
2551
+ setListPackagesConfig(config) {
2552
+ this.listPackagesConfig = config;
2553
+ return this;
2554
+ }
2397
2555
  /**
2398
2556
  * List Packages
2399
2557
  * @param {string} [params.destination] - ISO representation of the package's destination. Supports both ISO2 (e.g., 'FR') and ISO3 (e.g., 'FRA') country codes.
@@ -2403,11 +2561,21 @@ var PackagesService = class extends BaseService {
2403
2561
  * @param {number} [params.limit] - Maximum number of packages to be returned in the response. The value must be greater than 0 and less than or equal to 160. If not provided, the default value is 20
2404
2562
  * @param {number} [params.startTime] - Epoch value representing the start time of the package's validity. This timestamp can be set to the current time or any time within the next 12 months
2405
2563
  * @param {number} [params.endTime] - Epoch value representing the end time of the package's validity. End time can be maximum 90 days after Start time
2406
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
2564
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
2407
2565
  * @returns {Promise<HttpResponse<ListPackagesOkResponse>>} - Successful Response
2408
2566
  */
2409
2567
  async listPackages(params, requestConfig) {
2410
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("GET").setPath("/packages").setRequestSchema(z11.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
2568
+ const resolvedConfig = this.getResolvedConfig(this.listPackagesConfig, requestConfig);
2569
+ z11.object({
2570
+ destination: z11.string().optional(),
2571
+ startDate: z11.string().optional(),
2572
+ endDate: z11.string().optional(),
2573
+ afterCursor: z11.string().optional(),
2574
+ limit: z11.number().optional(),
2575
+ startTime: z11.number().optional(),
2576
+ endTime: z11.number().optional()
2577
+ }).parse(params != null ? params : {});
2578
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("GET").setPath("/packages").setRequestSchema(z11.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
2411
2579
  schema: listPackagesOkResponseResponse,
2412
2580
  contentType: "json" /* Json */,
2413
2581
  status: 200
@@ -2419,7 +2587,7 @@ var PackagesService = class extends BaseService {
2419
2587
  error: Unauthorized,
2420
2588
  contentType: "json" /* Json */,
2421
2589
  status: 401
2422
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addQueryParam({
2590
+ }).addQueryParam({
2423
2591
  key: "destination",
2424
2592
  value: params == null ? void 0 : params.destination
2425
2593
  }).addQueryParam({
@@ -2441,7 +2609,7 @@ var PackagesService = class extends BaseService {
2441
2609
  key: "endTime",
2442
2610
  value: params == null ? void 0 : params.endTime
2443
2611
  }).build();
2444
- return this.client.call(request);
2612
+ return this.client.callDirect(request);
2445
2613
  }
2446
2614
  };
2447
2615
 
@@ -3283,13 +3451,68 @@ var getPurchaseConsumptionOkResponseRequest = z30.lazy(() => {
3283
3451
 
3284
3452
  // src/services/purchases/purchases-service.ts
3285
3453
  var PurchasesService = class extends BaseService {
3454
+ /**
3455
+ * Sets method-level configuration for createPurchaseV2.
3456
+ * @param config - Partial configuration to override service-level defaults
3457
+ * @returns This service instance for method chaining
3458
+ */
3459
+ setCreatePurchaseV2Config(config) {
3460
+ this.createPurchaseV2Config = config;
3461
+ return this;
3462
+ }
3463
+ /**
3464
+ * Sets method-level configuration for listPurchases.
3465
+ * @param config - Partial configuration to override service-level defaults
3466
+ * @returns This service instance for method chaining
3467
+ */
3468
+ setListPurchasesConfig(config) {
3469
+ this.listPurchasesConfig = config;
3470
+ return this;
3471
+ }
3472
+ /**
3473
+ * Sets method-level configuration for createPurchase.
3474
+ * @param config - Partial configuration to override service-level defaults
3475
+ * @returns This service instance for method chaining
3476
+ */
3477
+ setCreatePurchaseConfig(config) {
3478
+ this.createPurchaseConfig = config;
3479
+ return this;
3480
+ }
3481
+ /**
3482
+ * Sets method-level configuration for topUpEsim.
3483
+ * @param config - Partial configuration to override service-level defaults
3484
+ * @returns This service instance for method chaining
3485
+ */
3486
+ setTopUpEsimConfig(config) {
3487
+ this.topUpEsimConfig = config;
3488
+ return this;
3489
+ }
3490
+ /**
3491
+ * Sets method-level configuration for editPurchase.
3492
+ * @param config - Partial configuration to override service-level defaults
3493
+ * @returns This service instance for method chaining
3494
+ */
3495
+ setEditPurchaseConfig(config) {
3496
+ this.editPurchaseConfig = config;
3497
+ return this;
3498
+ }
3499
+ /**
3500
+ * Sets method-level configuration for getPurchaseConsumption.
3501
+ * @param config - Partial configuration to override service-level defaults
3502
+ * @returns This service instance for method chaining
3503
+ */
3504
+ setGetPurchaseConsumptionConfig(config) {
3505
+ this.getPurchaseConsumptionConfig = config;
3506
+ return this;
3507
+ }
3286
3508
  /**
3287
3509
  * This endpoint is used to purchase a new eSIM by providing the package details.
3288
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
3510
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3289
3511
  * @returns {Promise<HttpResponse<CreatePurchaseV2OkResponse[]>>} - Successful Response
3290
3512
  */
3291
3513
  async createPurchaseV2(body, requestConfig) {
3292
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("POST").setPath("/purchases/v2").setRequestSchema(createPurchaseV2RequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3514
+ const resolvedConfig = this.getResolvedConfig(this.createPurchaseV2Config, requestConfig);
3515
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("POST").setPath("/purchases/v2").setRequestSchema(createPurchaseV2RequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3293
3516
  schema: z31.array(createPurchaseV2OkResponseResponse),
3294
3517
  contentType: "json" /* Json */,
3295
3518
  status: 200
@@ -3301,8 +3524,8 @@ var PurchasesService = class extends BaseService {
3301
3524
  error: Unauthorized,
3302
3525
  contentType: "json" /* Json */,
3303
3526
  status: 401
3304
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3305
- return this.client.call(request);
3527
+ }).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3528
+ return this.client.callDirect(request);
3306
3529
  }
3307
3530
  /**
3308
3531
  * This endpoint can be used to list all the successful purchases made between a given interval.
@@ -3316,11 +3539,24 @@ var PurchasesService = class extends BaseService {
3316
3539
  * @param {number} [params.limit] - Maximum number of purchases to be returned in the response. The value must be greater than 0 and less than or equal to 100. If not provided, the default value is 20
3317
3540
  * @param {number} [params.after] - Epoch value representing the start of the time interval for filtering purchases
3318
3541
  * @param {number} [params.before] - Epoch value representing the end of the time interval for filtering purchases
3319
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
3542
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3320
3543
  * @returns {Promise<HttpResponse<ListPurchasesOkResponse>>} - Successful Response
3321
3544
  */
3322
3545
  async listPurchases(params, requestConfig) {
3323
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("GET").setPath("/purchases").setRequestSchema(z31.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3546
+ const resolvedConfig = this.getResolvedConfig(this.listPurchasesConfig, requestConfig);
3547
+ z31.object({
3548
+ purchaseId: z31.string().optional(),
3549
+ iccid: z31.string().optional(),
3550
+ afterDate: z31.string().optional(),
3551
+ beforeDate: z31.string().optional(),
3552
+ email: z31.string().optional(),
3553
+ referenceId: z31.string().optional(),
3554
+ afterCursor: z31.string().optional(),
3555
+ limit: z31.number().optional(),
3556
+ after: z31.number().optional(),
3557
+ before: z31.number().optional()
3558
+ }).parse(params != null ? params : {});
3559
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("GET").setPath("/purchases").setRequestSchema(z31.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3324
3560
  schema: listPurchasesOkResponseResponse,
3325
3561
  contentType: "json" /* Json */,
3326
3562
  status: 200
@@ -3332,7 +3568,7 @@ var PurchasesService = class extends BaseService {
3332
3568
  error: Unauthorized,
3333
3569
  contentType: "json" /* Json */,
3334
3570
  status: 401
3335
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addQueryParam({
3571
+ }).addQueryParam({
3336
3572
  key: "purchaseId",
3337
3573
  value: params == null ? void 0 : params.purchaseId
3338
3574
  }).addQueryParam({
@@ -3363,15 +3599,16 @@ var PurchasesService = class extends BaseService {
3363
3599
  key: "before",
3364
3600
  value: params == null ? void 0 : params.before
3365
3601
  }).build();
3366
- return this.client.call(request);
3602
+ return this.client.callDirect(request);
3367
3603
  }
3368
3604
  /**
3369
3605
  * This endpoint is used to purchase a new eSIM by providing the package details.
3370
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
3606
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3371
3607
  * @returns {Promise<HttpResponse<CreatePurchaseOkResponse>>} - Successful Response
3372
3608
  */
3373
3609
  async createPurchase(body, requestConfig) {
3374
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("POST").setPath("/purchases").setRequestSchema(createPurchaseRequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3610
+ const resolvedConfig = this.getResolvedConfig(this.createPurchaseConfig, requestConfig);
3611
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("POST").setPath("/purchases").setRequestSchema(createPurchaseRequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3375
3612
  schema: createPurchaseOkResponseResponse,
3376
3613
  contentType: "json" /* Json */,
3377
3614
  status: 200
@@ -3383,16 +3620,17 @@ var PurchasesService = class extends BaseService {
3383
3620
  error: Unauthorized,
3384
3621
  contentType: "json" /* Json */,
3385
3622
  status: 401
3386
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3387
- return this.client.call(request);
3623
+ }).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3624
+ return this.client.callDirect(request);
3388
3625
  }
3389
3626
  /**
3390
3627
  * This endpoint is used to top-up an existing eSIM with the previously associated destination by providing its ICCID and package details. To determine if an eSIM can be topped up, use the Get eSIM endpoint, which returns the `isTopUpAllowed` flag.
3391
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
3628
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3392
3629
  * @returns {Promise<HttpResponse<TopUpEsimOkResponse>>} - Successful Response
3393
3630
  */
3394
3631
  async topUpEsim(body, requestConfig) {
3395
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("POST").setPath("/purchases/topup").setRequestSchema(topUpEsimRequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3632
+ const resolvedConfig = this.getResolvedConfig(this.topUpEsimConfig, requestConfig);
3633
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("POST").setPath("/purchases/topup").setRequestSchema(topUpEsimRequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3396
3634
  schema: topUpEsimOkResponseResponse,
3397
3635
  contentType: "json" /* Json */,
3398
3636
  status: 200
@@ -3404,8 +3642,8 @@ var PurchasesService = class extends BaseService {
3404
3642
  error: Unauthorized,
3405
3643
  contentType: "json" /* Json */,
3406
3644
  status: 401
3407
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3408
- return this.client.call(request);
3645
+ }).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3646
+ return this.client.callDirect(request);
3409
3647
  }
3410
3648
  /**
3411
3649
  * This endpoint allows you to modify the validity dates of an existing purchase.
@@ -3416,11 +3654,12 @@ var PurchasesService = class extends BaseService {
3416
3654
 
3417
3655
  The end date can be extended or shortened as long as it adheres to the same pricing category and does not exceed the allowed duration limits.
3418
3656
 
3419
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
3657
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3420
3658
  * @returns {Promise<HttpResponse<EditPurchaseOkResponse>>} - Successful Response
3421
3659
  */
3422
3660
  async editPurchase(body, requestConfig) {
3423
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("POST").setPath("/purchases/edit").setRequestSchema(editPurchaseRequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3661
+ const resolvedConfig = this.getResolvedConfig(this.editPurchaseConfig, requestConfig);
3662
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("POST").setPath("/purchases/edit").setRequestSchema(editPurchaseRequestRequest).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3424
3663
  schema: editPurchaseOkResponseResponse,
3425
3664
  contentType: "json" /* Json */,
3426
3665
  status: 200
@@ -3432,17 +3671,18 @@ var PurchasesService = class extends BaseService {
3432
3671
  error: Unauthorized,
3433
3672
  contentType: "json" /* Json */,
3434
3673
  status: 401
3435
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3436
- return this.client.call(request);
3674
+ }).addHeaderParam({ key: "Content-Type", value: "application/json" }).addBody(body).build();
3675
+ return this.client.callDirect(request);
3437
3676
  }
3438
3677
  /**
3439
3678
  * This endpoint can be called for consumption notifications (e.g. every 1 hour or when the user clicks a button). It returns the data balance (consumption) of purchased packages.
3440
3679
  * @param {string} purchaseId - ID of the purchase
3441
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
3680
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3442
3681
  * @returns {Promise<HttpResponse<GetPurchaseConsumptionOkResponse>>} - Successful Response
3443
3682
  */
3444
3683
  async getPurchaseConsumption(purchaseId, requestConfig) {
3445
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("GET").setPath("/purchases/{purchaseId}/consumption").setRequestSchema(z31.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3684
+ const resolvedConfig = this.getResolvedConfig(this.getPurchaseConsumptionConfig, requestConfig);
3685
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("GET").setPath("/purchases/{purchaseId}/consumption").setRequestSchema(z31.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3446
3686
  schema: getPurchaseConsumptionOkResponseResponse,
3447
3687
  contentType: "json" /* Json */,
3448
3688
  status: 200
@@ -3454,11 +3694,11 @@ var PurchasesService = class extends BaseService {
3454
3694
  error: Unauthorized,
3455
3695
  contentType: "json" /* Json */,
3456
3696
  status: 401
3457
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addPathParam({
3697
+ }).addPathParam({
3458
3698
  key: "purchaseId",
3459
3699
  value: purchaseId
3460
3700
  }).build();
3461
- return this.client.call(request);
3701
+ return this.client.callDirect(request);
3462
3702
  }
3463
3703
  };
3464
3704
 
@@ -3709,14 +3949,43 @@ var getEsimHistoryOkResponseRequest = z38.lazy(() => {
3709
3949
 
3710
3950
  // src/services/e-sim/e-sim-service.ts
3711
3951
  var ESimService = class extends BaseService {
3952
+ /**
3953
+ * Sets method-level configuration for getEsim.
3954
+ * @param config - Partial configuration to override service-level defaults
3955
+ * @returns This service instance for method chaining
3956
+ */
3957
+ setGetEsimConfig(config) {
3958
+ this.getEsimConfig = config;
3959
+ return this;
3960
+ }
3961
+ /**
3962
+ * Sets method-level configuration for getEsimDevice.
3963
+ * @param config - Partial configuration to override service-level defaults
3964
+ * @returns This service instance for method chaining
3965
+ */
3966
+ setGetEsimDeviceConfig(config) {
3967
+ this.getEsimDeviceConfig = config;
3968
+ return this;
3969
+ }
3970
+ /**
3971
+ * Sets method-level configuration for getEsimHistory.
3972
+ * @param config - Partial configuration to override service-level defaults
3973
+ * @returns This service instance for method chaining
3974
+ */
3975
+ setGetEsimHistoryConfig(config) {
3976
+ this.getEsimHistoryConfig = config;
3977
+ return this;
3978
+ }
3712
3979
  /**
3713
3980
  * Get eSIM
3714
3981
  * @param {string} params.iccid - ID of the eSIM
3715
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
3982
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3716
3983
  * @returns {Promise<HttpResponse<GetEsimOkResponse>>} - Successful Response
3717
3984
  */
3718
3985
  async getEsim(params, requestConfig) {
3719
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("GET").setPath("/esim").setRequestSchema(z39.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3986
+ const resolvedConfig = this.getResolvedConfig(this.getEsimConfig, requestConfig);
3987
+ z39.object({ iccid: z39.string() }).parse(params != null ? params : {});
3988
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("GET").setPath("/esim").setRequestSchema(z39.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3720
3989
  schema: getEsimOkResponseResponse,
3721
3990
  contentType: "json" /* Json */,
3722
3991
  status: 200
@@ -3728,20 +3997,21 @@ var ESimService = class extends BaseService {
3728
3997
  error: Unauthorized,
3729
3998
  contentType: "json" /* Json */,
3730
3999
  status: 401
3731
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addQueryParam({
4000
+ }).addQueryParam({
3732
4001
  key: "iccid",
3733
4002
  value: params == null ? void 0 : params.iccid
3734
4003
  }).build();
3735
- return this.client.call(request);
4004
+ return this.client.callDirect(request);
3736
4005
  }
3737
4006
  /**
3738
4007
  * Get eSIM Device
3739
4008
  * @param {string} iccid - ID of the eSIM
3740
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
4009
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3741
4010
  * @returns {Promise<HttpResponse<GetEsimDeviceOkResponse>>} - Successful Response
3742
4011
  */
3743
4012
  async getEsimDevice(iccid, requestConfig) {
3744
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("GET").setPath("/esim/{iccid}/device").setRequestSchema(z39.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
4013
+ const resolvedConfig = this.getResolvedConfig(this.getEsimDeviceConfig, requestConfig);
4014
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("GET").setPath("/esim/{iccid}/device").setRequestSchema(z39.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3745
4015
  schema: getEsimDeviceOkResponseResponse,
3746
4016
  contentType: "json" /* Json */,
3747
4017
  status: 200
@@ -3753,20 +4023,21 @@ var ESimService = class extends BaseService {
3753
4023
  error: Unauthorized,
3754
4024
  contentType: "json" /* Json */,
3755
4025
  status: 401
3756
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addPathParam({
4026
+ }).addPathParam({
3757
4027
  key: "iccid",
3758
4028
  value: iccid
3759
4029
  }).build();
3760
- return this.client.call(request);
4030
+ return this.client.callDirect(request);
3761
4031
  }
3762
4032
  /**
3763
4033
  * Get eSIM History
3764
4034
  * @param {string} iccid - ID of the eSIM
3765
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
4035
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3766
4036
  * @returns {Promise<HttpResponse<GetEsimHistoryOkResponse>>} - Successful Response
3767
4037
  */
3768
4038
  async getEsimHistory(iccid, requestConfig) {
3769
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("GET").setPath("/esim/{iccid}/history").setRequestSchema(z39.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
4039
+ const resolvedConfig = this.getResolvedConfig(this.getEsimHistoryConfig, requestConfig);
4040
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("GET").setPath("/esim/{iccid}/history").setRequestSchema(z39.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3770
4041
  schema: getEsimHistoryOkResponseResponse,
3771
4042
  contentType: "json" /* Json */,
3772
4043
  status: 200
@@ -3778,11 +4049,11 @@ var ESimService = class extends BaseService {
3778
4049
  error: Unauthorized,
3779
4050
  contentType: "json" /* Json */,
3780
4051
  status: 401
3781
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).addPathParam({
4052
+ }).addPathParam({
3782
4053
  key: "iccid",
3783
4054
  value: iccid
3784
4055
  }).build();
3785
- return this.client.call(request);
4056
+ return this.client.callDirect(request);
3786
4057
  }
3787
4058
  };
3788
4059
 
@@ -3813,13 +4084,23 @@ var tokenOkResponseRequest = z40.lazy(() => {
3813
4084
 
3814
4085
  // src/services/i-frame/i-frame-service.ts
3815
4086
  var IFrameService = class extends BaseService {
4087
+ /**
4088
+ * Sets method-level configuration for token.
4089
+ * @param config - Partial configuration to override service-level defaults
4090
+ * @returns This service instance for method chaining
4091
+ */
4092
+ setTokenConfig(config) {
4093
+ this.tokenConfig = config;
4094
+ return this;
4095
+ }
3816
4096
  /**
3817
4097
  * Generate a new token to be used in the iFrame
3818
- * @param {RequestConfig} [requestConfig] - The request configuration for retry and validation.
4098
+ * @param {Partial<SdkConfig>} [requestConfig] - The request configuration for retry and validation.
3819
4099
  * @returns {Promise<HttpResponse<TokenOkResponse>>} - Successful Response
3820
4100
  */
3821
4101
  async token(requestConfig) {
3822
- const request = new RequestBuilder().setBaseUrl((requestConfig == null ? void 0 : requestConfig.baseUrl) || this.config.baseUrl || this.config.environment || "https://api.celitech.net/v1" /* DEFAULT */).setConfig(this.config).setMethod("POST").setPath("/iframe/token").setRequestSchema(z41.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
4102
+ const resolvedConfig = this.getResolvedConfig(this.tokenConfig, requestConfig);
4103
+ const request = new RequestBuilder().setConfig(resolvedConfig).setBaseUrl(resolvedConfig).setMethod("POST").setPath("/iframe/token").setRequestSchema(z41.any()).setScopes([]).setTokenManager(this.tokenManager).setRequestContentType("json" /* Json */).addResponse({
3823
4104
  schema: tokenOkResponseResponse,
3824
4105
  contentType: "json" /* Json */,
3825
4106
  status: 200
@@ -3831,8 +4112,8 @@ var IFrameService = class extends BaseService {
3831
4112
  error: Unauthorized,
3832
4113
  contentType: "json" /* Json */,
3833
4114
  status: 401
3834
- }).setRetryAttempts(this.config, requestConfig).setRetryDelayMs(this.config, requestConfig).setResponseValidation(this.config, requestConfig).build();
3835
- return this.client.call(request);
4115
+ }).build();
4116
+ return this.client.callDirect(request);
3836
4117
  }
3837
4118
  };
3838
4119