UNPKG

@climatepartner/climatepartner-api-sdk

Version:

The ClimatePartner API provides one uniform public API to customers of ClimatePartner.

1,424 lines (1,404 loc) 58.3 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw new Error('Dynamic require of "' + x + '" is not supported'); }); var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var __accessCheck = (obj, member, msg) => { if (!member.has(obj)) throw TypeError("Cannot " + msg); }; var __privateGet = (obj, member, getter) => { __accessCheck(obj, member, "read from private field"); return getter ? getter.call(obj) : member.get(obj); }; var __privateAdd = (obj, member, value) => { if (member.has(obj)) throw TypeError("Cannot add the same private member more than once"); member instanceof WeakSet ? member.add(obj) : member.set(obj, value); }; var __privateSet = (obj, member, value, setter) => { __accessCheck(obj, member, "write to private field"); setter ? setter.call(obj, value) : member.set(obj, value); return value; }; var __privateMethod = (obj, member, method) => { __accessCheck(obj, member, "access private method"); return method; }; // src/gen/function/get-query-params.ts var EMPTY_STRING, getQueryParameters, getQueryParameter; var init_get_query_params = __esm({ "src/gen/function/get-query-params.ts"() { EMPTY_STRING = ""; getQueryParameters = (parameters = []) => { const keyValue = []; for (const parameter of parameters) { if (!!parameter.value) { if (Array.isArray(parameter.value)) { parameter.value.forEach((v) => keyValue.push(getQueryParameter(parameter.name, v))); } else { keyValue.push(getQueryParameter(parameter.name, parameter.value)); } } } if (keyValue.length === 0) { return EMPTY_STRING; } return `?${keyValue.join("&")}`; }; getQueryParameter = (paramName, paramValue) => { return `${encodeURIComponent(paramName)}=${encodeURIComponent(paramValue)}`; }; } }); // src/gen/function/open-api.ts var DEFAULT_REQUEST_INTERCEPTOR, DEFAULT_RESPONSE_INTERCEPTOR, DEFAULT_ERROR_HANDLER, openApi, buildUrl; var init_open_api = __esm({ "src/gen/function/open-api.ts"() { DEFAULT_REQUEST_INTERCEPTOR = async (request) => { return request; }; DEFAULT_RESPONSE_INTERCEPTOR = async (request, response, retry, error) => { return response; }; DEFAULT_ERROR_HANDLER = (error) => { return error; }; openApi = { requestInterceptor: DEFAULT_REQUEST_INTERCEPTOR, responseInterceptor: DEFAULT_RESPONSE_INTERCEPTOR, errorHandler: DEFAULT_ERROR_HANDLER, endpointUrl: "" }; buildUrl = (url, urlParameter = {}) => { let resultUrl = url; for (const key of Object.keys(urlParameter)) { resultUrl = resultUrl.replace(`{${key}}`, encodeURIComponent(urlParameter[key])); } return resultUrl; }; } }); // src/gen/function/fetch-node.ts var fetch_node_exports = {}; __export(fetch_node_exports, { fetch: () => fetch }); var httpRequest, httpsRequest, fetch; var init_fetch_node = __esm({ "src/gen/function/fetch-node.ts"() { init_http(); if (typeof window === "undefined") { httpRequest = __require("http").request; httpsRequest = __require("https").request; } fetch = async (url, { method, headers, body, ...options } = {}) => { const _request = typeof url === "string" || url instanceof URL ? new Request(url, { method, headers, body }) : url; if (!(_request instanceof Request)) { throw new TypeError("url must be string, URL or Request"); } return new Promise((resolve, reject) => { const request = _request.url.protocol === "https:" ? httpsRequest : httpRequest; const req = request( _request.url, { method: _request.method, headers: _request.headers, ...options }, (res) => resolve(new Response(res)) ); req.on("error", reject); req.end(_request.body.length ? _request.body : void 0); }); }; } }); // src/gen/function/http.ts var http, HeadersBase, handler, Headers, Request, Response; var init_http = __esm({ "src/gen/function/http.ts"() { init_get_query_params(); init_open_api(); http = async (request, requestInterceptor, errorHandler, responseInterceptor) => { const fetch2 = typeof window !== "undefined" && window.fetch ? window.fetch : (init_fetch_node(), __toCommonJS(fetch_node_exports)).fetch; const context = {}; if (requestInterceptor) { request = await requestInterceptor(request, context); } const run = async (request2) => { const queryParams = getQueryParameters(request2.queryParameter); const url = `${buildUrl( request2.url, request2.urlParameter )}${queryParams}`; try { const response = await fetch2(url, { method: request2.method, headers: request2.header, body: request2.body }); if (responseInterceptor) { return responseInterceptor(request2, response, run, context); } else { return response.text(); } } catch (e) { return responseInterceptor(request2, void 0, run, context, e); } }; return run(request); }; HeadersBase = class { constructor(headers) { } }; handler = { get(target, key) { return target[key.toLowerCase()]; }, set(target, key, value) { if (value === void 0) { delete target[key.toLowerCase()]; } else { target[key.toLowerCase()] = value; } return true; }, deleteProperty(target, key) { return delete target[key.toLowerCase()]; }, has(target, key) { return key.toLowerCase() in target; } }; Headers = new Proxy(HeadersBase, { construct(target, [headers = {}]) { const res = new Proxy(new target(), handler); Object.entries(headers).forEach(([key, value]) => { res[key] = value; }); return res; } }); Request = class { constructor(url, { method = "GET", headers = {}, body } = {}) { this.url = url instanceof URL ? url : new URL(url); this.method = method; this.headers = new Headers(headers); this.body = Buffer.from(body || ""); } }; Response = class { constructor(incomingMessage) { this.incomingMessage = incomingMessage; this.status = incomingMessage.statusCode || 0; this.statusText = incomingMessage.statusMessage || ""; this.headers = new Headers(incomingMessage.headers); this.body = new Promise((resolve, reject) => { const chunks = []; incomingMessage.on("data", (chunk) => chunks.push(chunk)); incomingMessage.on("aborted", () => reject(new Error("aborted"))); incomingMessage.on("end", () => resolve(Buffer.concat(chunks))); }); } async blob() { return this.body; } async text() { return (await this.blob()).toString("utf8"); } }; } }); // ../../../lib/http-utils/HttpHeaders.ts var bearerAuthHeader = (token) => `Bearer ${token}`; // src/gen/service/calculation-base-service.ts init_http(); init_open_api(); var CalculationBaseService = class { constructor() { this.airTravel = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/air`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.calculateDistance = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/distance`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.carRentalTravel = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/car-rental`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.ecotransitBatchCalculation = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/logistics/ecotransit/batch`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.ecotransitBatchStatus = async (pathParameter, queryParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const queryParam = [ { name: "cursor", value: queryParameter.cursor }, { name: "limit", value: queryParameter.limit } ]; const pathParam = { "batchId": pathParameter.batchId }; const response = await http( { method: "GET", url: `${openApi.endpointUrl}/calculation/v1/calculate/logistics/ecotransit/batch/{batchId}`, queryParameter: queryParam, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.ecotransitCalculation = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/logistics/ecotransit`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.getChoiceValues = async (pathParameter, queryParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const queryParam = [ { name: "cursor", value: queryParameter.cursor }, { name: "limit", value: queryParameter.limit } ]; const pathParam = { "choiceSlug": pathParameter.choiceSlug }; const response = await http( { method: "GET", url: `${openApi.endpointUrl}/calculation/v1/choices/{choiceSlug}`, queryParameter: queryParam, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpAddressableTelevision = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/addressable-television`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpCinema = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/cinema`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpDoohGrossContacts = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/dooh-gross-contacts`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpDoohScreens = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/dooh-screens`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpLinearTelevision = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/linear-television`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpNewspaper = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/newspaper`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpOnlineAudio = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-audio`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpOnlineImage = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-image`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpOnlineSearch = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-search`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpOnlineVideo = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-video`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpOOH = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/ooh`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpRadio = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/radio`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpSocialMediaOnlineImage = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/social-media-online-image`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpSocialMediaOnlineVideo = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/social-media-online-video`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpSupplement = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/supplement`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.greenGrpTotalWeight = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/print-total-weight`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.hotelStayTravel = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/hotel-stay`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.pppMaterialWeight = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/ppp/weight`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.pppMaterialWeightBatch = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/ppp/weight/batch`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.pppPaperDimension = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/ppp/dimension`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.railTravel = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/rail`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.roadTravel = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/road`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.rothoCalculation = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/pcf-rotho`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.transportTotalEmissions = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/transportTotalEmissions`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.vehicleFleetConsumption = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/vehicle-fleet/consumption`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.vehicleFleetDistance = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/vehicle-fleet/distance`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.wasteManagement = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/calculation/v1/calculate/waste-management`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; } }; // src/calculation/index.ts var CalculationService = class extends CalculationBaseService { }; // src/index.ts init_open_api(); // src/gen/service/healthcheck-base-service.ts init_http(); init_open_api(); var HealthcheckBaseService = class { constructor() { this.healthcheck = async (interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "GET", url: `${openApi.endpointUrl}/healthcheck/v1/healthcheck`, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; } }; // src/healthcheck/index.ts var HealthcheckService = class extends HealthcheckBaseService { }; // ../../../lib/exponantial-backoff/delay/delayBase.ts var Delay = class { constructor(options) { this.options = options; this.attempt = 0; } apply() { return new Promise((resolve) => setTimeout(resolve, this.delay)); } setAttemptNumber(attempt) { this.attempt = attempt; } get delay() { const constant = this.options.startingDelay; const base = this.options.exponantialTime; const power = this.numOfDelayedAttempts; const delay = constant * Math.pow(base, power); return Math.min(delay, this.options.maximumDelay); } get numOfDelayedAttempts() { return this.attempt; } }; // ../../../lib/exponantial-backoff/delay/alwaysDelay/alwaysDelay.ts var AlwaysDelay = class extends Delay { }; // ../../../lib/exponantial-backoff/delay/skipFirst/skipFirstDelay.ts var SkipFirstDelay = class extends Delay { async apply() { return this.isFirstAttempt ? true : super.apply(); } get isFirstAttempt() { return this.attempt === 0; } get numOfDelayedAttempts() { return this.attempt - 1; } }; // ../../../lib/exponantial-backoff/delay/delayFactory.ts var DelayFactory = (options, attempt) => { const delay = initDelayClass(options); delay.setAttemptNumber(attempt); return delay; }; var initDelayClass = (options) => { if (!options.isFirstAttepmtDelayed) { return new SkipFirstDelay(options); } return new AlwaysDelay(options); }; // ../../../lib/exponantial-backoff/exponantialBackoff.ts var ExponantialBackOff = class { constructor(request, options) { this.request = request; this.options = options; this.attemptNumber = 0; } async execute() { while (!this.attemptLimitReached) { try { await this.applyDelay(); return await this.request(); } catch (e) { this.attemptNumber++; const shouldRetry = await this.options.retry(e, this.attemptNumber); if (!shouldRetry || this.attemptLimitReached) { throw e; } } } throw new Error("Something went wrong."); } get attemptLimitReached() { return this.attemptNumber >= this.options.numberOfAttempts; } async applyDelay() { const delay = DelayFactory(this.options, this.attemptNumber); await delay.apply(); } }; // ../../../lib/exponantial-backoff/interface/types.ts var defaultOptions = { isFirstAttepmtDelayed: false, maximumDelay: Infinity, numberOfAttempts: 10, retry: () => true, startingDelay: 100, exponantialTime: 2 }; var getOptionsSanitized = (options) => { const optionsSanitized = { ...defaultOptions, ...options }; if (optionsSanitized.numberOfAttempts < 1) { optionsSanitized.numberOfAttempts = 1; } return optionsSanitized; }; // ../../../lib/exponantial-backoff/index.ts async function exponantialBackOff(request, options = {}) { const sanitizedOptions = getOptionsSanitized(options); const backOff = new ExponantialBackOff(request, sanitizedOptions); return await backOff.execute(); } // src/gen/service/order-base-service.ts init_http(); init_open_api(); var OrderBaseService = class { constructor() { this.checkOrder = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/order/v1/checkOrder`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.createBatchIndividualOrder = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/order/v1/individualOrdersBatched`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.createCollectiveOrder = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/order/v1/collectiveOrder`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.createIndividualOrder = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/order/v1/individualOrder`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.createSubOrder = async (body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const response = await http( { method: "POST", url: `${openApi.endpointUrl}/order/v1/subOrder`, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.deleteIndividualOrder = async (pathParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "orderId": pathParameter.orderId }; const response = await http( { method: "DELETE", url: `${openApi.endpointUrl}/order/v1/individualOrder/{orderId}`, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.deleteSubOrder = async (pathParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "orderId": pathParameter.orderId }; const response = await http( { method: "DELETE", url: `${openApi.endpointUrl}/order/v1/subOrder/{orderId}`, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.getAllOrders = async (queryParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const queryParam = [ { name: "cursor", value: queryParameter.cursor }, { name: "limit", value: queryParameter.limit } ]; const response = await http( { method: "GET", url: `${openApi.endpointUrl}/order/v1/allOrder`, queryParameter: queryParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.getCollectiveOrder = async (pathParameter, queryParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const queryParam = [ { name: "cursor", value: queryParameter.cursor }, { name: "limit", value: queryParameter.limit } ]; const pathParam = { "collectiveOrderId": pathParameter.collectiveOrderId }; const response = await http( { method: "GET", url: `${openApi.endpointUrl}/order/v1/collectiveOrder/{collectiveOrderId}`, queryParameter: queryParam, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.getIndividualOrder = async (pathParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "orderId": pathParameter.orderId }; const response = await http( { method: "GET", url: `${openApi.endpointUrl}/order/v1/individualOrder/{orderId}`, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.getSubOrder = async (pathParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "orderId": pathParameter.orderId }; const response = await http( { method: "GET", url: `${openApi.endpointUrl}/order/v1/subOrder/{orderId}`, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.listProjects = async (pathParameter, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "language": pathParameter.language }; const response = await http( { method: "GET", url: `${openApi.endpointUrl}/order/v1/projects/{language}`, urlParameter: pathParam, header: { Accept: "application/json" } }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.updateCollectiveOrder = async (pathParameter, body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "collectiveOrderId": pathParameter.collectiveOrderId }; const response = await http( { method: "PATCH", url: `${openApi.endpointUrl}/order/v1/collectiveOrder/{collectiveOrderId}`, urlParameter: pathParam, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.updateIndividualOrder = async (pathParameter, body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "orderId": pathParameter.orderId }; const response = await http( { method: "PATCH", url: `${openApi.endpointUrl}/order/v1/individualOrder/{orderId}`, urlParameter: pathParam, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; this.updateSubOrder = async (pathParameter, body, interceptor = openApi.requestInterceptor, errorHandler = openApi.errorHandler, responseInterceptor = openApi.responseInterceptor) => { const pathParam = { "orderId": pathParameter.orderId }; const response = await http( { method: "PATCH", url: `${openApi.endpointUrl}/order/v1/subOrder/{orderId}`, urlParameter: pathParam, header: { Accept: "application/json", "Content-Type": "application/json" }, body: JSON.stringify(body) }, interceptor, errorHandler, responseInterceptor ); return JSON.parse(response); }; } }; // src/types.ts var UnifiedApiError = class extends Error { constructor(statusCode, code, message) { super(`[${code}]: ${message}`); this.statusCode = statusCode; this.code = code; this.message = message; } }; var UnifiedApiBadRequestError = class extends UnifiedApiError { constructor(statusCode, code, message) { super(statusCode, code, message); this.statusCode = statusCode; this.code = code; this.message = message; } }; var UnifiedApiInternalServerError = class extends UnifiedApiError { constructor(statusCode, code, message) { super(statusCode, code, message); this.statusCode = statusCode; this.code = code; this.message = message; } }; // src/order/index.ts var allowedStatuses = [ "CREATE_SUCCESSFUL" /* CREATE_SUCCESSFUL */, "CREATE_FAILED" /* CREATE_FAILED */, "DELETE_SUCCESSFUL" /* DELETE_SUCCESSFUL */, "DELETE_FAILED" /* DELETE_FAILED */, "UPDATE_SUCCESSFUL" /* UPDATE_SUCCESSFUL */, "UPDATE_FAILED" /* UPDATE_FAILED */ ]; var _pollDeletedOrder, pollDeletedOrder_fn, _orderActionSync, orderActionSync_fn; var OrderService = class extends OrderBaseService { constructor() { super(...arguments); __privateAdd(this, _pollDeletedOrder); __privateAdd(this, _orderActionSync); } async createIndividualOrderSync(body) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.createIndividualOrder, [body], (createOrderResponse) => this.getIndividualOrder({ orderId: createOrderResponse.result.orderId })); } async createCollectiveOrderSync(body) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.createCollectiveOrder, [body], (createOrderResponse) => this.getCollectiveOrder( { collectiveOrderId: createOrderResponse.result.collectiveOrderId }, {} )); } async createSubOrderSync(body) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.createSubOrder, [body], (createOrderResponse) => this.getSubOrder({ orderId: createOrderResponse.result.orderId })); } async updateIndividualOrderSync(pathParameters, body) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.updateIndividualOrder, [pathParameters, body], (updateIndividualOrderResponse) => this.getIndividualOrder({ orderId: updateIndividualOrderResponse.result.orderId })); } async updateCollectiveOrderSync(pathParameters, body) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.updateCollectiveOrder, [pathParameters, body], (updateCollectiveOrderResponse) => this.getCollectiveOrder( { collectiveOrderId: updateCollectiveOrderResponse.result.collectiveOrderId }, {} )); } async updateSubOrderSync(pathParameters, body) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.updateSubOrder, [pathParameters, body], (updateSubOrderResponse) => this.getSubOrder({ orderId: updateSubOrderResponse.result.orderId })); } async deleteIndividualOrderSync(pathParameters) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.deleteIndividualOrder, [pathParameters], (deleteIndividualOrderResponse) => __privateMethod(this, _pollDeletedOrder, pollDeletedOrder_fn).call(this, () => this.getIndividualOrder({ orderId: deleteIndividualOrderResponse.result.orderId }))); } async deleteSubOrderSync(pathParameters) { return __privateMethod(this, _orderActionSync, orderActionSync_fn).call(this, this.deleteSubOrder, [pathParameters], (deleteSubOrderResponse) => __privateMethod(this, _pollDeletedOrder, pollDeletedOrder_fn).call(this, () => this.getSubOrder({ orderId: deleteSubOrderResponse.orderId }))); } }; _pollDeletedOrder = new WeakSet(); pollDeletedOrder_fn = async function(getOrderFunction) { try { const result = await getOrderFunction(); if (result.result.lastActionStatus === "DELETE_FAILED" /* DELETE_FAILED */) { return result; } } catch (error) { if (error instanceof UnifiedApiError) { if (error.code === "ORDER_DELETED" /* ORDER_DELETED */) { return { result: { lastActionStatus: "DELETE_SUCCESSFUL" /* DELETE_SUCCESSFUL */ } }; } } throw error; } }; _orderActionSync = new WeakSet(); orderActionSync_fn = async function(orderActionFunction, orderActionArgs, getOrderFunction) { try { const createOrderResponse = await orderActionFunction.apply( this, orderActionArgs ); const startingDelay = parseInt(process.env["SDK_ASYNC_DELAY_START" /* SDK_ASYNC_DELAY_START */]) || 100; const maximumDelay = parseInt(process.env["SDK_ASYNC_MAX_DELAY" /* SDK_ASYNC_MAX_DELAY */]) || 1e3 * 4; const numberOfAttempts = parseInt(process.env["SDK_ASYNC_MAX_ATTEMPTS" /* SDK_ASYNC_MAX_ATTEMPTS */]) || 10; const getOrderResponse = await exponantialBackOff( async () => { const getOrderResponse2 = await getOrderFunction(createOrderResponse); if (!getOrderResponse2?.result?.lastActionStatus || !allowedStatuses.includes( getOrderResponse2?.result?.lastActionStatus )) { throw new UnifiedApiError( 0, "REQUEST_TIMED_OUT" /* REQUEST_TIMED_OUT */, "Order processing did not finish in time" ); } return getOrderResponse2; }, { numberOfAttempts, startingDelay, maximumDelay } ); return getOrderRes