{
  "version": 3,
  "sources": ["../src/gen/function/get-query-params.ts", "../src/gen/function/open-api.ts", "../src/gen/function/fetch-node.ts", "../src/gen/function/http.ts", "../../../../lib/http-utils/HttpHeaders.ts", "../src/gen/service/calculation-base-service.ts", "../src/calculation/index.ts", "../src/index.ts", "../src/gen/service/healthcheck-base-service.ts", "../src/healthcheck/index.ts", "../../../../lib/exponantial-backoff/delay/delayBase.ts", "../../../../lib/exponantial-backoff/delay/alwaysDelay/alwaysDelay.ts", "../../../../lib/exponantial-backoff/delay/skipFirst/skipFirstDelay.ts", "../../../../lib/exponantial-backoff/delay/delayFactory.ts", "../../../../lib/exponantial-backoff/exponantialBackoff.ts", "../../../../lib/exponantial-backoff/interface/types.ts", "../../../../lib/exponantial-backoff/index.ts", "../src/gen/service/order-base-service.ts", "../src/types.ts", "../src/order/index.ts", "../src/gen/service/sts-base-service.ts", "../src/sts/index.ts"],
  "sourcesContent": ["const EMPTY_STRING = '';\n\n/**\n * Build the query\n * @param parameters\n */\nexport const getQueryParameters = (parameters: Array<IQueryParam> = []): string => {\n    const keyValue: Array<string> = [];\n    for (const parameter of parameters) {\n        if (!!parameter.value) {\n            if (Array.isArray(parameter.value)) {\n                parameter.value.forEach(v => keyValue.push(getQueryParameter(parameter.name, v)));\n            } else {\n                keyValue.push(getQueryParameter(parameter.name, parameter.value));\n            }\n        }\n    }\n    if(keyValue.length === 0){\n        return EMPTY_STRING;\n    }\n    return `?${keyValue.join('&')}`\n};\n\nconst getQueryParameter = (paramName: string, paramValue: string) => {\n    return `${encodeURIComponent(paramName)}=${encodeURIComponent(paramValue)}`;\n};\n\nexport interface IQueryParam {\n    name: string,\n    value: any\n}\n", "import {ErrorHandler, HttpRequestFn, I$openApi, RequestInterceptor, ResponseInterceptor} from \"../interface/i-$-open-api\";\nimport { IQueryParam } from \"./get-query-params\";\n// @ts-ignore; works well once copied over to actual generated code\nimport {IError, IRequest} from \"./http\";\n\nexport const DEFAULT_REQUEST_INTERCEPTOR: RequestInterceptor = async (request: IRequest) => {\n    return request;\n};\n\nexport const DEFAULT_RESPONSE_INTERCEPTOR: ResponseInterceptor<any> = async(request: IRequest, response: any, retry: HttpRequestFn, error?: IError) => {\n    return response;\n};\n\nexport const DEFAULT_ERROR_HANDLER: ErrorHandler = (error: IError) => {\n    return error;\n};\n\nexport const openApi: I$openApi = {\n    requestInterceptor: DEFAULT_REQUEST_INTERCEPTOR,\n    responseInterceptor: DEFAULT_RESPONSE_INTERCEPTOR,\n    errorHandler: DEFAULT_ERROR_HANDLER,\n    endpointUrl: ''\n};\n\n\nexport type HTTP_METHOD = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'\n\nexport const HEADER_CONTENT_TYPE = \"Content-Type\"\nexport const HEADER_ACCEPT = \"Accept\"\nexport const HEADER_CONTENT_DISPOSITION = \"Content-Disposition\"\n\nexport const buildUrl = (url: string, urlParameter: IParameter = {}): string => {\n    let resultUrl = url;\n    for (const key of Object.keys(urlParameter)) {\n        resultUrl = resultUrl.replace(`{${key}}`, encodeURIComponent(urlParameter[key]));\n    }\n    return resultUrl;\n};\n\nexport interface IRequest {\n    method: HTTP_METHOD;\n    url: string;\n    urlParameter?: IParameter;\n    queryParameter?: Array<IQueryParam>;\n    header?: IParameter;\n    body?: string;\n}\n\nexport interface IError {\n    status: number;\n    message: string;\n}\n\nexport interface IParameter {\n    [name: string]: string | number | boolean\n}", "import type { request as httpRequestType } from \"http\";\nimport type { request as httpsRequestType } from \"https\";\nimport { RequestOptions, Request, Response } from './http'\n\n// Dynamic Browser support\nlet httpRequest: typeof httpRequestType\nlet httpsRequest: typeof httpsRequestType\nif (typeof window === 'undefined') {\n    httpRequest = require('http').request\n    httpsRequest = require('https').request\n}\n\nexport const fetch = async (\n    url: string | URL | Request,\n    { method, headers, body, ...options }: RequestOptions = {}\n): Promise<Response> => {\n    const _request: Request =\n        typeof url === \"string\" || url instanceof URL\n            ? new Request(url, { method, headers, body })\n            : url;\n\n    if (!(_request instanceof Request)) {\n        throw new TypeError(\"url must be string, URL or Request\");\n    }\n\n    return new Promise((resolve, reject) => {\n        const request =\n            _request.url.protocol === \"https:\" ? httpsRequest : httpRequest;\n\n        const req = request(\n            _request.url,\n            {\n                method: _request.method,\n                headers: _request.headers,\n                ...options,\n            },\n            (res) => resolve(new Response(res))\n        );\n\n        req.on(\"error\", reject);\n        req.end(_request.body.length ? _request.body : undefined);\n    });\n};", "import type {\n    IncomingHttpHeaders,\n    IncomingMessage,\n} from \"http\";\nimport {\n    RequestInterceptor,\n    ErrorHandler,\n    ResponseInterceptor,\n    HttpRequestFn,\n} from \"../interface/i-$-open-api\";\nimport { getQueryParameters } from \"./get-query-params\";\nimport { buildUrl, HTTP_METHOD, IRequest } from \"./open-api\";\nimport type { fetch as nodeFetchType } from './fetch-node'\n\nexport const http = async (\n    request: IRequest,\n    requestInterceptor: RequestInterceptor,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    errorHandler: ErrorHandler,\n    responseInterceptor: ResponseInterceptor<Response | globalThis.Response>\n): Promise<string> => {\n    const fetch = typeof window !== 'undefined' && window.fetch ? window.fetch : (require('./fetch-node').fetch as typeof nodeFetchType) // Dynamic browser support\n    const context = {};\n\n    if (requestInterceptor) {\n        request = await requestInterceptor(request, context);\n    }\n\n    const run: HttpRequestFn = async (request) => {\n        const queryParams = getQueryParameters(request.queryParameter);\n        const url = `${buildUrl(\n            request.url,\n            request.urlParameter\n        )}${queryParams}`;\n\n        try {\n            const response = await fetch(url, {\n                method: request.method,\n                headers: request.header as Record<string, string>,\n                body: request.body,\n            });\n            if (responseInterceptor) {\n                return responseInterceptor(request, response, run, context);\n            } else {\n                return response.text();\n            }\n        } catch (e) {\n            return responseInterceptor(request, undefined, run, context, e);\n        }\n    };\n\n    return run(request);\n};\n\nexport interface RequestOptions {\n    body?: string | Buffer;\n    method?: HTTP_METHOD;\n    headers?: IncomingHttpHeaders;\n}\n\nclass HeadersBase {\n    [name: string]: string;\n    constructor(headers?: IncomingHttpHeaders) {}\n}\n\nconst handler: ProxyHandler<HeadersBase> = {\n    get(target, key: string) {\n        return target[key.toLowerCase()];\n    },\n\n    set(target, key: string, value) {\n        if (value === undefined) {\n            delete target[key.toLowerCase()];\n        } else {\n            target[key.toLowerCase()] = value;\n        }\n        return true;\n    },\n\n    deleteProperty(target, key: string) {\n        return delete target[key.toLowerCase()];\n    },\n\n    has(target, key: string) {\n        return key.toLowerCase() in target;\n    },\n};\n\nexport const Headers = new Proxy(HeadersBase, {\n    construct(target, [headers = {}]: [{ [key: string]: string }]) {\n        const res = new Proxy(new target(), handler);\n\n        Object.entries(headers).forEach(([key, value]) => {\n            res[key] = value;\n        });\n\n        return res;\n    },\n});\n\nexport class Request {\n    public method: HTTP_METHOD;\n    public headers: HeadersBase;\n    public body: Buffer;\n    public url: URL;\n\n    constructor(\n        url: string | URL,\n        { method = \"GET\", headers = {}, body }: RequestOptions = {}\n    ) {\n        this.url = url instanceof URL ? url : new URL(url);\n        this.method = method;\n        this.headers = new Headers(headers);\n        this.body = Buffer.from(body || \"\");\n    }\n}\n\nexport class Response {\n    public status: number;\n    public statusText: string;\n    public headers: HeadersBase;\n    public body: Promise<Buffer>;\n\n    constructor(public incomingMessage: IncomingMessage) {\n        this.status = incomingMessage.statusCode || 0;\n        this.statusText = incomingMessage.statusMessage || \"\";\n        this.headers = new Headers(incomingMessage.headers);\n\n        this.body = new Promise((resolve, reject) => {\n            const chunks: Array<Buffer> = [];\n            incomingMessage.on(\"data\", (chunk) => chunks.push(chunk));\n            incomingMessage.on(\"aborted\", () => reject(new Error(\"aborted\")));\n            incomingMessage.on(\"end\", () => resolve(Buffer.concat(chunks)));\n        });\n    }\n\n    async blob(): Promise<Buffer> {\n        return this.body;\n    }\n\n    async text(): Promise<string> {\n        return (await this.blob()).toString(\"utf8\");\n    }\n}\n", "export enum HttpHeaders {\n  AUTHORIZATION = 'Authorization',\n  CONTENT_TYPE = 'Content-Type',\n  X_API_KEY = 'X-Api-Key',\n}\n\nexport const basicAuthHeader = (username: string, password: string) =>\n  `Basic ` + Buffer.from(`${username}:${password}`).toString('base64')\n\nexport const bearerAuthHeader = (token: string) => `Bearer ${token}`\n", "/**\n * This file was generated by st-open-api\n */\nimport {ErrorHandler} from '../interface/i-$-open-api';\nimport {IAirTravelRequest} from '../interface/components/i-air-travel-request';\nimport {ICalculationRequest} from '../interface/components/i-calculation-request';\nimport {ICalculationResponse} from '../interface/components/i-calculation-response';\nimport {ICarRentalRequest} from '../interface/components/i-car-rental-request';\nimport {IChoiceValuesResponse} from '../interface/components/i-choice-values-response';\nimport {IDistanceCalculationRequest} from '../interface/components/i-distance-calculation-request';\nimport {IDistanceCalculationResponse} from '../interface/components/i-distance-calculation-response';\nimport {IEcotransitBatchPostResponse} from '../interface/components/i-ecotransit-batch-post-response';\nimport {IEcotransitBatchRequest} from '../interface/components/i-ecotransit-batch-request';\nimport {IEcotransitBatchStatusPathParameter} from '../interface/parameter/i-ecotransit-batch-status-path-parameter';\nimport {IEcotransitBatchStatusQueryParameter} from '../interface/parameter/i-ecotransit-batch-status-query-parameter';\nimport {IEcotransitBatchStatusResponse} from '../interface/components/i-ecotransit-batch-status-response';\nimport {IEcotransitCalculationRequest} from '../interface/components/i-ecotransit-calculation-request';\nimport {IEcotransitCalculationResponse} from '../interface/components/i-ecotransit-calculation-response';\nimport {IFormulaCalculationResponse} from '../interface/components/i-formula-calculation-response';\nimport {IGetChoiceValuesPathParameter} from '../interface/parameter/i-get-choice-values-path-parameter';\nimport {IGetChoiceValuesQueryParameter} from '../interface/parameter/i-get-choice-values-query-parameter';\nimport {IGreenGrpAddressableTelevisionRequest} from '../interface/components/i-green-grp-addressable-television-request';\nimport {IGreenGrpCinemaRequest} from '../interface/components/i-green-grp-cinema-request';\nimport {IGreenGrpDoohGrossContactsRequest} from '../interface/components/i-green-grp-dooh-gross-contacts-request';\nimport {IGreenGrpDoohScreensRequest} from '../interface/components/i-green-grp-dooh-screens-request';\nimport {IGreenGrpLinearTelevisionRequest} from '../interface/components/i-green-grp-linear-television-request';\nimport {IGreenGrpNewspaperRequest} from '../interface/components/i-green-grp-newspaper-request';\nimport {IGreenGrpOOHRequest} from '../interface/components/i-green-grp-o-o-h-request';\nimport {IGreenGrpOnlineAudioRequest} from '../interface/components/i-green-grp-online-audio-request';\nimport {IGreenGrpOnlineImageRequest} from '../interface/components/i-green-grp-online-image-request';\nimport {IGreenGrpOnlineSearchRequest} from '../interface/components/i-green-grp-online-search-request';\nimport {IGreenGrpOnlineVideoRequest} from '../interface/components/i-green-grp-online-video-request';\nimport {IGreenGrpPrintTotalWeightRequest} from '../interface/components/i-green-grp-print-total-weight-request';\nimport {IGreenGrpRadioRequest} from '../interface/components/i-green-grp-radio-request';\nimport {IGreenGrpSocialMediaOnlineImageRequest} from '../interface/components/i-green-grp-social-media-online-image-request';\nimport {IGreenGrpSocialMediaOnlineVideoRequest} from '../interface/components/i-green-grp-social-media-online-video-request';\nimport {IGreenGrpSupplementRequest} from '../interface/components/i-green-grp-supplement-request';\nimport {IHotelStayRequest} from '../interface/components/i-hotel-stay-request';\nimport {IPPPMaterialWeightBatchRequest} from '../interface/components/i-p-p-p-material-weight-batch-request';\nimport {IPPPMaterialWeightBatchResponse} from '../interface/components/i-p-p-p-material-weight-batch-response';\nimport {IPPPMaterialWeightRequest} from '../interface/components/i-p-p-p-material-weight-request';\nimport {IPPPPaperDimensionRequest} from '../interface/components/i-p-p-p-paper-dimension-request';\nimport {IRailTravelRequest} from '../interface/components/i-rail-travel-request';\nimport {IRoadTravelRequest} from '../interface/components/i-road-travel-request';\nimport {IRothoCalculationRequest} from '../interface/components/i-rotho-calculation-request';\nimport {IRothoCalculationResponse} from '../interface/components/i-rotho-calculation-response';\nimport {IVehicleFleetConsumptionRequest} from '../interface/components/i-vehicle-fleet-consumption-request';\nimport {IVehicleFleetDistanceRequest} from '../interface/components/i-vehicle-fleet-distance-request';\nimport {IWasteManagementRequest} from '../interface/components/i-waste-management-request';\nimport {RequestInterceptor} from '../interface/i-$-open-api';\nimport {ResponseInterceptor} from '../interface/i-$-open-api';\nimport {http} from '../function/http';\nimport {openApi} from '../function/open-api';\n\nexport class CalculationBaseService {\n\n    airTravel = async (body: IAirTravelRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/air`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    calculateDistance = async (body: IDistanceCalculationRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IDistanceCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/distance`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    carRentalTravel = async (body: ICarRentalRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/car-rental`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    ecotransitBatchCalculation = async (body: IEcotransitBatchRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IEcotransitBatchPostResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/logistics/ecotransit/batch`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    ecotransitBatchStatus = async (pathParameter: IEcotransitBatchStatusPathParameter, queryParameter: IEcotransitBatchStatusQueryParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IEcotransitBatchStatusResponse> => {\n    \n        const queryParam = [\n            {name: 'cursor', value: queryParameter.cursor},\n            {name: 'limit', value: queryParameter.limit},\n        ];\n    \n        const pathParam = {\n            'batchId': pathParameter.batchId,\n        };\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/logistics/ecotransit/batch/{batchId}`,\n                queryParameter: queryParam,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    ecotransitCalculation = async (body: IEcotransitCalculationRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IEcotransitCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/logistics/ecotransit`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    getChoiceValues = async (pathParameter: IGetChoiceValuesPathParameter, queryParameter: IGetChoiceValuesQueryParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IChoiceValuesResponse> => {\n    \n        const queryParam = [\n            {name: 'cursor', value: queryParameter.cursor},\n            {name: 'limit', value: queryParameter.limit},\n        ];\n    \n        const pathParam = {\n            'choiceSlug': pathParameter.choiceSlug,\n        };\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/calculation/v1/choices/{choiceSlug}`,\n                queryParameter: queryParam,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpAddressableTelevision = async (body: IGreenGrpAddressableTelevisionRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/addressable-television`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpCinema = async (body: IGreenGrpCinemaRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/cinema`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpDoohGrossContacts = async (body: IGreenGrpDoohGrossContactsRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/dooh-gross-contacts`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpDoohScreens = async (body: IGreenGrpDoohScreensRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/dooh-screens`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpLinearTelevision = async (body: IGreenGrpLinearTelevisionRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/linear-television`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpNewspaper = async (body: IGreenGrpNewspaperRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/newspaper`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpOnlineAudio = async (body: IGreenGrpOnlineAudioRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-audio`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpOnlineImage = async (body: IGreenGrpOnlineImageRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-image`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpOnlineSearch = async (body: IGreenGrpOnlineSearchRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-search`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpOnlineVideo = async (body: IGreenGrpOnlineVideoRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/online-video`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpOOH = async (body: IGreenGrpOOHRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/ooh`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpRadio = async (body: IGreenGrpRadioRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/radio`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpSocialMediaOnlineImage = async (body: IGreenGrpSocialMediaOnlineImageRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/social-media-online-image`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpSocialMediaOnlineVideo = async (body: IGreenGrpSocialMediaOnlineVideoRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/social-media-online-video`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpSupplement = async (body: IGreenGrpSupplementRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/supplement`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    greenGrpTotalWeight = async (body: IGreenGrpPrintTotalWeightRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/green-grp/print-total-weight`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    hotelStayTravel = async (body: IHotelStayRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/hotel-stay`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    pppMaterialWeight = async (body: IPPPMaterialWeightRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/ppp/weight`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    pppMaterialWeightBatch = async (body: IPPPMaterialWeightBatchRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IPPPMaterialWeightBatchResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/ppp/weight/batch`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    pppPaperDimension = async (body: IPPPPaperDimensionRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/ppp/dimension`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    railTravel = async (body: IRailTravelRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/rail`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    roadTravel = async (body: IRoadTravelRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/travel/road`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    rothoCalculation = async (body: IRothoCalculationRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IRothoCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/pcf-rotho`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    transportTotalEmissions = async (body: ICalculationRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<ICalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/transportTotalEmissions`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    vehicleFleetConsumption = async (body: IVehicleFleetConsumptionRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/vehicle-fleet/consumption`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    vehicleFleetDistance = async (body: IVehicleFleetDistanceRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/vehicle-fleet/distance`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    wasteManagement = async (body: IWasteManagementRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IFormulaCalculationResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/calculation/v1/calculate/waste-management`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n}\n", "import { CalculationBaseService } from '../gen/service/calculation-base-service'\n\nexport class CalculationService extends CalculationBaseService {}\n", "import {\n  HttpHeaders,\n  HttpStatusCodes,\n  MimeTypes,\n  bearerAuthHeader,\n} from '@climatepartner/unified-api-lib-http-utils'\n\nimport { CalculationService } from './calculation'\nimport { Response } from './gen/function/http'\nimport { IError, IRequest, openApi } from './gen/function/open-api'\nimport { ICodeErrorCommonErrorUnauthorized } from './gen/interface/components/interface/enumeration/i-code-error-common-error-unauthorized'\nimport { HttpRequestFn, InterceptorContext } from './gen/interface/i-$-open-api'\nimport { HealthcheckService } from './healthcheck'\nimport { OrderService } from './order'\nimport { StsService } from './sts'\nimport {\n  RawError,\n  UnifiedApiBadRequestError,\n  UnifiedApiConfiguration,\n  UnifiedApiInternalServerError,\n} from './types'\n\nexport class UnifiedApi {\n  #longtermToken: string\n\n  #authorizationStoragePath?: string\n\n  #stsService?: StsService\n\n  #healthCheckService?: HealthcheckService\n\n  #orderService?: OrderService\n\n  #calculationService?: CalculationService\n\n  constructor(options: UnifiedApiConfiguration) {\n    const { longtermToken, endpointUrl, authorizationStoragePath } = options\n    this.#longtermToken = longtermToken\n    this.#authorizationStoragePath = authorizationStoragePath\n\n    openApi.requestInterceptor = this.#requestInterceptor\n    openApi.responseInterceptor = this.#responseInterceptor\n    openApi.errorHandler = this.#errorHandler\n    openApi.endpointUrl =\n      endpointUrl || 'https://unified-api.climatepartner.com'\n  }\n\n  getStsService = () => {\n    if (!this.#stsService) {\n      this.#stsService = new StsService(\n        this.#longtermToken,\n        this.#authorizationStoragePath,\n      )\n    }\n\n    return this.#stsService\n  }\n\n  getHealthcheckService = () => {\n    if (!this.#healthCheckService) {\n      this.#healthCheckService = new HealthcheckService()\n    }\n\n    return this.#healthCheckService\n  }\n\n  getOrderService = () => {\n    if (!this.#orderService) {\n      this.#orderService = new OrderService()\n    }\n\n    return this.#orderService\n  }\n\n  getCalculationService = () => {\n    if (!this.#calculationService) {\n      this.#calculationService = new CalculationService()\n    }\n\n    return this.#calculationService\n  }\n  #requestInterceptor = async (request: IRequest) => {\n    request.header = {\n      ...request.header,\n      [HttpHeaders.AUTHORIZATION]: bearerAuthHeader(\n        await this.getStsService().getToken(),\n      ),\n    }\n\n    return request\n  }\n\n  #responseInterceptor = async (\n    request: IRequest,\n    response: Response | undefined,\n    retry: HttpRequestFn,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    context: InterceptorContext,\n    error?: IError | unknown,\n  ) => {\n    // the retry() function is a reference to the function that has been called\n    // internally to run the request. The request object contains all parameters\n    // so we can mutate them if necessary, and rety.\n    if (error) {\n      throw error\n    }\n\n    if (response) {\n      if (response.status === HttpStatusCodes.UNAUTHORIZED) {\n        if (\n          response.headers[HttpHeaders.CONTENT_TYPE].startsWith(\n            MimeTypes.APPLICATION_JSON,\n          )\n        ) {\n          const body = JSON.parse(await response.text())\n          if (\n            body?.error?.code === ICodeErrorCommonErrorUnauthorized.JWT_EXPIRED\n          ) {\n            request.header = {\n              ...request.header,\n              [HttpHeaders.AUTHORIZATION]: bearerAuthHeader(\n                await this.getStsService().getToken(true),\n              ),\n            }\n            return retry(request)\n          }\n        }\n      }\n\n      if (response.status >= 400 && response.status < 500) {\n        const rawError: RawError = JSON.parse(await response.text())\n        throw new UnifiedApiBadRequestError(\n          response.status,\n          rawError.error.code,\n          rawError.error.message,\n        )\n      }\n      if (response.status >= 500) {\n        const rawError: RawError = JSON.parse(await response.text())\n        throw new UnifiedApiInternalServerError(\n          response.status,\n          rawError.error.code,\n          rawError.error.message,\n        )\n      }\n      return response.text()\n    } else {\n      return ''\n    }\n  }\n\n  #errorHandler = (error: IError) => {\n    return error\n  }\n}\n\nexport const ClimatePartnerApi = UnifiedApi\n", "/**\n * This file was generated by st-open-api\n */\nimport {ErrorHandler} from '../interface/i-$-open-api';\nimport {IHealthcheckResponse} from '../interface/components/i-healthcheck-response';\nimport {RequestInterceptor} from '../interface/i-$-open-api';\nimport {ResponseInterceptor} from '../interface/i-$-open-api';\nimport {http} from '../function/http';\nimport {openApi} from '../function/open-api';\n\nexport class HealthcheckBaseService {\n\n    healthcheck = async (interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IHealthcheckResponse> => {\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/healthcheck/v1/healthcheck`,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n}\n", "import { HealthcheckBaseService } from '../gen/service/healthcheck-base-service'\n\nexport class HealthcheckService extends HealthcheckBaseService {}\n", "import { IExonantialBackOffOptions } from '../interface/types'\nimport { IDelay } from './types'\n\nexport abstract class Delay implements IDelay {\n  protected attempt = 0\n  constructor(private options: IExonantialBackOffOptions) {}\n\n  public apply() {\n    return new Promise(resolve => setTimeout(resolve, this.delay))\n  }\n\n  public setAttemptNumber(attempt: number) {\n    this.attempt = attempt\n  }\n\n  private get delay() {\n    const constant = this.options.startingDelay\n    const base = this.options.exponantialTime\n    const power = this.numOfDelayedAttempts\n    const delay = constant * Math.pow(base, power)\n\n    return Math.min(delay, this.options.maximumDelay)\n  }\n\n  protected get numOfDelayedAttempts() {\n    return this.attempt\n  }\n}\n", "import { Delay } from '../delayBase'\n\nexport class AlwaysDelay extends Delay {}\n", "import { Delay } from '../delayBase'\n\nexport class SkipFirstDelay extends Delay {\n  public async apply() {\n    return this.isFirstAttempt ? true : super.apply()\n  }\n\n  private get isFirstAttempt() {\n    return this.attempt === 0\n  }\n\n  protected get numOfDelayedAttempts() {\n    return this.attempt - 1\n  }\n}\n", "import { IExonantialBackOffOptions } from '../interface/types'\nimport { AlwaysDelay } from './alwaysDelay/alwaysDelay'\nimport { SkipFirstDelay } from './skipFirst/skipFirstDelay'\nimport { IDelay } from './types'\n\nexport const DelayFactory = (\n  options: IExonantialBackOffOptions,\n  attempt: number,\n): IDelay => {\n  const delay = initDelayClass(options)\n  delay.setAttemptNumber(attempt)\n  return delay\n}\n\nconst initDelayClass = (options: IExonantialBackOffOptions) => {\n  if (!options.isFirstAttepmtDelayed) {\n    return new SkipFirstDelay(options)\n  }\n\n  return new AlwaysDelay(options)\n}\n", "import { DelayFactory } from './delay/delayFactory'\nimport { IExonantialBackOffOptions } from './interface/types'\n\nexport class ExponantialBackOff<T> {\n  private attemptNumber = 0\n\n  constructor(\n    private request: () => Promise<T>,\n    private options: IExonantialBackOffOptions,\n  ) {}\n\n  public async execute(): Promise<T> {\n    while (!this.attemptLimitReached) {\n      try {\n        await this.applyDelay()\n        return await this.request()\n      } catch (e) {\n        this.attemptNumber++\n        const shouldRetry = await this.options.retry(e, this.attemptNumber)\n\n        if (!shouldRetry || this.attemptLimitReached) {\n          throw e\n        }\n      }\n    }\n\n    throw new Error('Something went wrong.')\n  }\n\n  private get attemptLimitReached() {\n    return this.attemptNumber >= this.options.numberOfAttempts\n  }\n\n  private async applyDelay() {\n    const delay = DelayFactory(this.options, this.attemptNumber)\n    await delay.apply()\n  }\n}\n", "export interface IExonantialBackOffOptions {\n  isFirstAttepmtDelayed: boolean\n  maximumDelay: number\n  numberOfAttempts: number\n  retry: (e: any, attemptNumber: number) => boolean | Promise<boolean>\n  startingDelay: number\n  exponantialTime: number\n}\n\nconst defaultOptions: IExonantialBackOffOptions = {\n  isFirstAttepmtDelayed: false,\n  maximumDelay: Infinity,\n  numberOfAttempts: 10,\n  retry: () => true,\n  startingDelay: 100,\n  exponantialTime: 2,\n}\n\nexport const getOptionsSanitized = (\n  options: Partial<IExonantialBackOffOptions>,\n) => {\n  const optionsSanitized: IExonantialBackOffOptions = {\n    ...defaultOptions,\n    ...options,\n  }\n\n  if (optionsSanitized.numberOfAttempts < 1) {\n    optionsSanitized.numberOfAttempts = 1\n  }\n\n  return optionsSanitized\n}\n", "import { ExponantialBackOff } from './exponantialBackoff'\nimport {\n  IExonantialBackOffOptions,\n  getOptionsSanitized,\n} from './interface/types'\n\nexport async function exponantialBackOff<T>(\n  request: () => Promise<T>,\n  options: Partial<IExonantialBackOffOptions> = {},\n): Promise<T> {\n  const sanitizedOptions = getOptionsSanitized(options)\n  const backOff = new ExponantialBackOff(request, sanitizedOptions)\n\n  return await backOff.execute()\n}\n", "/**\n * This file was generated by st-open-api\n */\nimport {ErrorHandler} from '../interface/i-$-open-api';\nimport {IDeleteIndividualOrderPathParameter} from '../interface/parameter/i-delete-individual-order-path-parameter';\nimport {IDeleteSubOrderPathParameter} from '../interface/parameter/i-delete-sub-order-path-parameter';\nimport {IGetAllOrdersQueryParameter} from '../interface/parameter/i-get-all-orders-query-parameter';\nimport {IGetCollectiveOrderPathParameter} from '../interface/parameter/i-get-collective-order-path-parameter';\nimport {IGetCollectiveOrderQueryParameter} from '../interface/parameter/i-get-collective-order-query-parameter';\nimport {IGetIndividualOrderPathParameter} from '../interface/parameter/i-get-individual-order-path-parameter';\nimport {IGetSubOrderPathParameter} from '../interface/parameter/i-get-sub-order-path-parameter';\nimport {IListProjectsPathParameter} from '../interface/parameter/i-list-projects-path-parameter';\nimport {IOrderCheckOrderRequest} from '../interface/components/i-order-check-order-request';\nimport {IOrderCheckOrderResponse} from '../interface/components/i-order-check-order-response';\nimport {IOrderCollectiveGetInfoResponse} from '../interface/components/i-order-collective-get-info-response';\nimport {IOrderCollectiveResponse} from '../interface/components/i-order-collective-response';\nimport {IOrderDeleteInfoResponse} from '../interface/components/i-order-delete-info-response';\nimport {IOrderGetAllInfoResponse} from '../interface/components/i-order-get-all-info-response';\nimport {IOrderGetInfoResponse} from '../interface/components/i-order-get-info-response';\nimport {IOrderIndividualBatchRequest} from '../interface/components/i-order-individual-batch-request';\nimport {IOrderIndividualBatchResponse} from '../interface/components/i-order-individual-batch-response';\nimport {IOrderInfoRequestHeaderCreate} from '../interface/components/i-order-info-request-header-create';\nimport {IOrderInfoRequestHeader} from '../interface/components/i-order-info-request-header';\nimport {IOrderListProjectsResponse} from '../interface/components/i-order-list-projects-response';\nimport {IOrderRequest} from '../interface/components/i-order-request';\nimport {IOrderResponse} from '../interface/components/i-order-response';\nimport {IOrderSubOrderDeleteResponse} from '../interface/components/i-order-sub-order-delete-response';\nimport {IOrderSubOrderGetInfoResponse} from '../interface/components/i-order-sub-order-get-info-response';\nimport {IOrderSubOrderRequest} from '../interface/components/i-order-sub-order-request';\nimport {IOrderSubOrderResponse} from '../interface/components/i-order-sub-order-response';\nimport {IOrderUpdateIndividualOrderRequest} from '../interface/components/i-order-update-individual-order-request';\nimport {IOrderUpdateInfoSubOrderRequest} from '../interface/components/i-order-update-info-sub-order-request';\nimport {IUpdateCollectiveOrderPathParameter} from '../interface/parameter/i-update-collective-order-path-parameter';\nimport {IUpdateIndividualOrderPathParameter} from '../interface/parameter/i-update-individual-order-path-parameter';\nimport {IUpdateSubOrderPathParameter} from '../interface/parameter/i-update-sub-order-path-parameter';\nimport {RequestInterceptor} from '../interface/i-$-open-api';\nimport {ResponseInterceptor} from '../interface/i-$-open-api';\nimport {http} from '../function/http';\nimport {openApi} from '../function/open-api';\n\nexport class OrderBaseService {\n\n    checkOrder = async (body: IOrderCheckOrderRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderCheckOrderResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/order/v1/checkOrder`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    createBatchIndividualOrder = async (body: IOrderIndividualBatchRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderIndividualBatchResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/order/v1/individualOrdersBatched`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    createCollectiveOrder = async (body: IOrderInfoRequestHeaderCreate, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderCollectiveResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/order/v1/collectiveOrder`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    createIndividualOrder = async (body: IOrderRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/order/v1/individualOrder`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    createSubOrder = async (body: IOrderSubOrderRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderSubOrderResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/order/v1/subOrder`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    deleteIndividualOrder = async (pathParameter: IDeleteIndividualOrderPathParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderDeleteInfoResponse> => {\n    \n        const pathParam = {\n            'orderId': pathParameter.orderId,\n        };\n    \n        const response = await http({\n                method: 'DELETE',\n                url: `${openApi.endpointUrl}/order/v1/individualOrder/{orderId}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    deleteSubOrder = async (pathParameter: IDeleteSubOrderPathParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderSubOrderDeleteResponse> => {\n    \n        const pathParam = {\n            'orderId': pathParameter.orderId,\n        };\n    \n        const response = await http({\n                method: 'DELETE',\n                url: `${openApi.endpointUrl}/order/v1/subOrder/{orderId}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    getAllOrders = async (queryParameter: IGetAllOrdersQueryParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderGetAllInfoResponse> => {\n    \n        const queryParam = [\n            {name: 'cursor', value: queryParameter.cursor},\n            {name: 'limit', value: queryParameter.limit},\n        ];\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/order/v1/allOrder`,\n                queryParameter: queryParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    getCollectiveOrder = async (pathParameter: IGetCollectiveOrderPathParameter, queryParameter: IGetCollectiveOrderQueryParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderCollectiveGetInfoResponse> => {\n    \n        const queryParam = [\n            {name: 'cursor', value: queryParameter.cursor},\n            {name: 'limit', value: queryParameter.limit},\n        ];\n    \n        const pathParam = {\n            'collectiveOrderId': pathParameter.collectiveOrderId,\n        };\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/order/v1/collectiveOrder/{collectiveOrderId}`,\n                queryParameter: queryParam,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    getIndividualOrder = async (pathParameter: IGetIndividualOrderPathParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderGetInfoResponse> => {\n    \n        const pathParam = {\n            'orderId': pathParameter.orderId,\n        };\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/order/v1/individualOrder/{orderId}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    getSubOrder = async (pathParameter: IGetSubOrderPathParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderSubOrderGetInfoResponse> => {\n    \n        const pathParam = {\n            'orderId': pathParameter.orderId,\n        };\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/order/v1/subOrder/{orderId}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    listProjects = async (pathParameter: IListProjectsPathParameter, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderListProjectsResponse> => {\n    \n        const pathParam = {\n            'language': pathParameter.language,\n        };\n    \n        const response = await http({\n                method: 'GET',\n                url: `${openApi.endpointUrl}/order/v1/projects/{language}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                },\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    updateCollectiveOrder = async (pathParameter: IUpdateCollectiveOrderPathParameter, body: IOrderInfoRequestHeader, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderCollectiveResponse> => {\n    \n        const pathParam = {\n            'collectiveOrderId': pathParameter.collectiveOrderId,\n        };\n    \n        const response = await http({\n                method: 'PATCH',\n                url: `${openApi.endpointUrl}/order/v1/collectiveOrder/{collectiveOrderId}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    updateIndividualOrder = async (pathParameter: IUpdateIndividualOrderPathParameter, body: IOrderUpdateIndividualOrderRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderResponse> => {\n    \n        const pathParam = {\n            'orderId': pathParameter.orderId,\n        };\n    \n        const response = await http({\n                method: 'PATCH',\n                url: `${openApi.endpointUrl}/order/v1/individualOrder/{orderId}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n    updateSubOrder = async (pathParameter: IUpdateSubOrderPathParameter, body: IOrderUpdateInfoSubOrderRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<IOrderSubOrderResponse> => {\n    \n        const pathParam = {\n            'orderId': pathParameter.orderId,\n        };\n    \n        const response = await http({\n                method: 'PATCH',\n                url: `${openApi.endpointUrl}/order/v1/subOrder/{orderId}`,\n                urlParameter: pathParam,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n}\n", "export type RawError = {\n  error: {\n    code: string\n    message: string\n  }\n}\n\nexport class UnifiedApiError extends Error {\n  constructor(\n    public statusCode: number,\n    public code: string,\n    public message: string,\n  ) {\n    super(`[${code}]: ${message}`)\n  }\n}\n\nexport class UnifiedApiBadRequestError extends UnifiedApiError {\n  constructor(\n    public statusCode: number,\n    public code: string,\n    public message: string,\n  ) {\n    super(statusCode, code, message)\n  }\n}\n\nexport class UnifiedApiInternalServerError extends UnifiedApiError {\n  constructor(\n    public statusCode: number,\n    public code: string,\n    public message: string,\n  ) {\n    super(statusCode, code, message)\n  }\n}\n\nexport enum CreateOrderErrorCode {\n  INTERNAL_ERROR = 'INTERNAL_ERROR',\n  REQUEST_TIMED_OUT = 'REQUEST_TIMED_OUT',\n}\n\nexport type UnifiedApiConfiguration = {\n  longtermToken: string\n  endpointUrl?: string\n  authorizationStoragePath?: string\n}\n", "import { exponantialBackOff } from '@climatepartner/unified-api-exponantial-backoff'\nimport { EnvVarNames } from '@climatepartner/unified-api-service/shared'\n\nimport { IOrderErrorNotFoundCodes } from '../gen/interface/components/i-order-error-not-found-codes'\nimport { IOrderInfoRequestHeader } from '../gen/interface/components/i-order-info-request-header'\nimport { IOrderRequest } from '../gen/interface/components/i-order-request'\nimport { IOrderStatusEnum } from '../gen/interface/components/i-order-status-enum'\nimport { IOrderSubOrderRequest } from '../gen/interface/components/i-order-sub-order-request'\nimport { IOrderUpdateInfoSubOrderRequest } from '../gen/interface/components/i-order-update-info-sub-order-request'\nimport { IDeleteIndividualOrderPathParameter } from '../gen/interface/parameter/i-delete-individual-order-path-parameter'\nimport { IDeleteSubOrderPathParameter } from '../gen/interface/parameter/i-delete-sub-order-path-parameter'\nimport { IUpdateCollectiveOrderPathParameter } from '../gen/interface/parameter/i-update-collective-order-path-parameter'\nimport { IUpdateIndividualOrderPathParameter } from '../gen/interface/parameter/i-update-individual-order-path-parameter'\nimport { IUpdateSubOrderPathParameter } from '../gen/interface/parameter/i-update-sub-order-path-parameter'\nimport { OrderBaseService } from '../gen/service/order-base-service'\nimport { CreateOrderErrorCode, UnifiedApiError } from '../types'\n\nconst allowedStatuses = [\n  IOrderStatusEnum.CREATE_SUCCESSFUL,\n  IOrderStatusEnum.CREATE_FAILED,\n  IOrderStatusEnum.DELETE_SUCCESSFUL,\n  IOrderStatusEnum.DELETE_FAILED,\n  IOrderStatusEnum.UPDATE_SUCCESSFUL,\n  IOrderStatusEnum.UPDATE_FAILED,\n]\n\ntype GetDeleteOrderResponse = { result: { lastActionStatus: IOrderStatusEnum } }\nexport class OrderService extends OrderBaseService {\n  async createIndividualOrderSync(body: IOrderRequest) {\n    return this.#orderActionSync(\n      this.createIndividualOrder,\n      [body],\n      createOrderResponse =>\n        this.getIndividualOrder({\n          orderId: createOrderResponse.result.orderId,\n        }),\n    )\n  }\n\n  async createCollectiveOrderSync(body: IOrderInfoRequestHeader) {\n    return this.#orderActionSync(\n      this.createCollectiveOrder,\n      [body],\n      createOrderResponse =>\n        this.getCollectiveOrder(\n          {\n            collectiveOrderId: createOrderResponse.result.collectiveOrderId,\n          },\n          {},\n        ),\n    )\n  }\n\n  async createSubOrderSync(body: IOrderSubOrderRequest) {\n    return this.#orderActionSync(\n      this.createSubOrder,\n      [body],\n      createOrderResponse =>\n        this.getSubOrder({\n          orderId: createOrderResponse.result.orderId,\n        }),\n    )\n  }\n\n  async updateIndividualOrderSync(\n    pathParameters: IUpdateIndividualOrderPathParameter,\n    body: IOrderUpdateInfoSubOrderRequest,\n  ) {\n    return this.#orderActionSync(\n      this.updateIndividualOrder,\n      [pathParameters, body],\n      updateIndividualOrderResponse =>\n        this.getIndividualOrder({\n          orderId: updateIndividualOrderResponse.result.orderId,\n        }),\n    )\n  }\n\n  async updateCollectiveOrderSync(\n    pathParameters: IUpdateCollectiveOrderPathParameter,\n    body: IOrderInfoRequestHeader,\n  ) {\n    return this.#orderActionSync(\n      this.updateCollectiveOrder,\n      [pathParameters, body],\n      updateCollectiveOrderResponse =>\n        this.getCollectiveOrder(\n          {\n            collectiveOrderId:\n              updateCollectiveOrderResponse.result.collectiveOrderId,\n          },\n          {},\n        ),\n    )\n  }\n\n  async updateSubOrderSync(\n    pathParameters: IUpdateSubOrderPathParameter,\n    body: IOrderUpdateInfoSubOrderRequest,\n  ) {\n    return this.#orderActionSync(\n      this.updateSubOrder,\n      [pathParameters, body],\n      updateSubOrderResponse =>\n        this.getSubOrder({\n          orderId: updateSubOrderResponse.result.orderId,\n        }),\n    )\n  }\n\n  async #pollDeletedOrder(\n    getOrderFunction: () => Promise<any>,\n    // TODO Add the missing return\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n  ): Promise<GetDeleteOrderResponse> {\n    try {\n      const result = await getOrderFunction()\n      if (result.result.lastActionStatus === IOrderStatusEnum.DELETE_FAILED) {\n        return result\n      }\n    } catch (error) {\n      if (error instanceof UnifiedApiError) {\n        if (error.code === IOrderErrorNotFoundCodes.ORDER_DELETED) {\n          //Question is, can and should we return api response? from here?\n          return {\n            result: {\n              lastActionStatus: IOrderStatusEnum.DELETE_SUCCESSFUL,\n            },\n          }\n        }\n      }\n      throw error\n    }\n  }\n\n  async deleteIndividualOrderSync(\n    pathParameters: IDeleteIndividualOrderPathParameter,\n  ) {\n    return this.#orderActionSync(\n      this.deleteIndividualOrder,\n      [pathParameters],\n      deleteIndividualOrderResponse =>\n        this.#pollDeletedOrder(() =>\n          this.getIndividualOrder({\n            orderId: deleteIndividualOrderResponse.result.orderId,\n          }),\n        ),\n    )\n  }\n\n  async deleteSubOrderSync(pathParameters: IDeleteSubOrderPathParameter) {\n    return this.#orderActionSync(\n      this.deleteSubOrder,\n      [pathParameters],\n      deleteSubOrderResponse =>\n        this.#pollDeletedOrder(() =>\n          this.getSubOrder({\n            orderId: deleteSubOrderResponse.orderId,\n          }),\n        ),\n    )\n  }\n\n  async #orderActionSync<\n    OrderActionFunction extends (...args: any) => Promise<any>,\n    GetOrderResponse extends\n      | Awaited<ReturnType<OrderBaseService['getIndividualOrder']>>\n      | Awaited<ReturnType<OrderBaseService['getCollectiveOrder']>>\n      | Awaited<ReturnType<OrderBaseService['getSubOrder']>>\n      | GetDeleteOrderResponse,\n  >(\n    orderActionFunction: OrderActionFunction,\n    orderActionArgs: Parameters<OrderActionFunction>,\n    getOrderFunction: (\n      createOrderResponse: Awaited<ReturnType<OrderActionFunction>>,\n    ) => Promise<GetOrderResponse>,\n  ) {\n    try {\n      // Run order action (ex. create order, update order)\n      const createOrderResponse = await orderActionFunction.apply(\n        this,\n        orderActionArgs,\n      )\n\n      // Repeatadly get order until status is final (state success or failure)\n      const startingDelay =\n        parseInt(process.env[EnvVarNames.SDK_ASYNC_DELAY_START] as string) ||\n        100 // 100ms\n      const maximumDelay =\n        parseInt(process.env[EnvVarNames.SDK_ASYNC_MAX_DELAY] as string) ||\n        1000 * 4 // 4000ms = 4s\n      /**\n       * Total possible delay with defaults (14.3s) calculation:\n       * 100 + 200 + 400 + 800 + 1600 + 3200 = 6300ms\n       * after this the delay would exceed 4000ms (maximumDelay), so from here 4000 gets applied each retry\n       * 6300 + 4000 + 4000 = 14300ms = 14.3s\n       */\n      const numberOfAttempts =\n        parseInt(process.env[EnvVarNames.SDK_ASYNC_MAX_ATTEMPTS] as string) ||\n        10\n\n      const getOrderResponse = await exponantialBackOff(\n        async () => {\n          const getOrderResponse = await getOrderFunction(createOrderResponse)\n\n          if (\n            !getOrderResponse?.result?.lastActionStatus ||\n            !allowedStatuses.includes(\n              getOrderResponse?.result?.lastActionStatus,\n            )\n          ) {\n            throw new UnifiedApiError(\n              0,\n              CreateOrderErrorCode.REQUEST_TIMED_OUT,\n              'Order processing did not finish in time',\n            )\n          }\n\n          return getOrderResponse\n        },\n        {\n          numberOfAttempts,\n          startingDelay,\n          maximumDelay,\n        },\n      )\n\n      return getOrderResponse\n    } catch (e: any) {\n      if (e instanceof UnifiedApiError) {\n        throw e\n      }\n      throw new UnifiedApiError(\n        0,\n        CreateOrderErrorCode.INTERNAL_ERROR,\n        e.message,\n      )\n    }\n  }\n}\n", "/**\n * This file was generated by st-open-api\n */\nimport {ErrorHandler} from '../interface/i-$-open-api';\nimport {ITokenRequest} from '../interface/components/i-token-request';\nimport {ITokenResponse} from '../interface/components/i-token-response';\nimport {RequestInterceptor} from '../interface/i-$-open-api';\nimport {ResponseInterceptor} from '../interface/i-$-open-api';\nimport {http} from '../function/http';\nimport {openApi} from '../function/open-api';\n\nexport class StsBaseService {\n\n    token = async (body: ITokenRequest, interceptor: RequestInterceptor = openApi.requestInterceptor, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<ITokenResponse> => {\n    \n        const response = await http({\n                method: 'POST',\n                url: `${openApi.endpointUrl}/sts/v1/token`,\n                header: {\n                    Accept: 'application/json',\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify(body),\n            },\n            interceptor,\n            errorHandler,\n            responseInterceptor\n        );\n        return JSON.parse(response);\n    };\n    \n\n}\n", "import type * as fsType from 'fs/promises'\n\nimport { exponantialBackOff } from '@climatepartner/unified-api-exponantial-backoff'\nimport {\n  HttpHeaders,\n  MimeTypes,\n  bearerAuthHeader,\n} from '@climatepartner/unified-api-lib-http-utils'\n\nimport { StsBaseService } from '../gen/service/sts-base-service'\nimport { CreateOrderErrorCode, UnifiedApiError } from '../types'\n\n// Browser support\nlet fs: typeof fsType\nif (typeof window === 'undefined') {\n  fs = require('fs/promises')\n}\n\ninterface Token {\n  expires: number\n  token: string\n}\n\nexport class StsService extends StsBaseService {\n  #cpinsToken?: Token\n\n  constructor(\n    private longtermToken: string,\n    private authorizationStoragePath?: string,\n  ) {\n    super()\n  }\n\n  /**\n   * get the access token. If token is expired a new token will be fetched\n   * and stored.\n   */\n  getToken = async (force = false): Promise<string> => {\n    if (this.authorizationStoragePath) {\n      this.#cpinsToken = await this.#readTokenFromDisk(\n        this.authorizationStoragePath,\n      )\n    }\n    if (!force && this.#validateToken()) {\n      return this.#cpinsToken!.token\n    }\n\n    const response = await exponantialBackOff(\n      async () => {\n        try {\n          return await this.token({}, async request => {\n            request.header = {\n              [HttpHeaders.AUTHORIZATION]: bearerAuthHeader(this.longtermToken),\n              [HttpHeaders.CONTENT_TYPE]: MimeTypes.APPLICATION_JSON,\n            }\n            return request\n          })\n        } catch (e: UnifiedApiError | any) {\n          // The default response interceptor configured in sdk index.ts will throw an UnifiedApiError if error code is >= 400\n          if (e instanceof UnifiedApiError) {\n            throw e\n          }\n\n          throw new UnifiedApiError(\n            0,\n            CreateOrderErrorCode.INTERNAL_ERROR,\n            e.message,\n          )\n        }\n      },\n      {\n        numberOfAttempts: 8, // 14.3s total maximum delay (Explanation in ../order/index.ts:#createOrderSync)\n        maximumDelay: 4000,\n        startingDelay: 100,\n      },\n    )\n\n    await this.#updateToken({\n      expires: Date.now() + response.result.expires_in * 1000 - 60000,\n      token: response.result.access_token,\n    })\n\n    return response.result.access_token\n  }\n\n  #readTokenFromDisk = async (\n    tokenStoragePath: string,\n  ): Promise<Token | undefined> => {\n    // Browser support\n    if (typeof window === 'undefined') {\n      const exists = await fs.access(tokenStoragePath).then(\n        () => true,\n        () => false,\n      )\n      if (exists) {\n        const token = await fs.readFile(tokenStoragePath, 'utf8')\n        if (token) {\n          return JSON.parse(token)\n        }\n      }\n    }\n  }\n\n  #updateToken = async (token: Token) => {\n    // Browser support\n    if (typeof window === 'undefined') {\n      if (this.authorizationStoragePath) {\n        await fs.writeFile(this.authorizationStoragePath, JSON.stringify(token))\n      }\n    }\n    this.#cpinsToken = token\n  }\n\n  #validateToken = (): boolean => {\n    if (this.#cpinsToken) {\n      return this.#cpinsToken.expires - Date.now() >= 0\n    }\n\n    return false\n  }\n}\n"],
  "mappings": "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",
  "names": ["fetch", "request", "getOrderResponse"]
}
