{"version":3,"file":"bundle.cjs","sources":["../esm/openapi-ts/core/bodySerializer.gen.js","../esm/openapi-ts/core/serverSentEvents.gen.js","../esm/openapi-ts/core/pathSerializer.gen.js","../esm/openapi-ts/core/utils.gen.js","../esm/openapi-ts/core/auth.gen.js","../esm/openapi-ts/client/utils.gen.js","../esm/openapi-ts/client/client.gen.js","../esm/errors/HttpError.js","../esm/errors/ApiError.js","../esm/openapi-ts/client.gen.js","../esm/openapi-ts/sdk.gen.js","../esm/openapi-ts/types.gen.js","../esm/utils.js","../esm/client/Globalping.js"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nconst serializeFormDataPair = (data, key, value) => {\n    if (typeof value === 'string' || value instanceof Blob) {\n        data.append(key, value);\n    }\n    else if (value instanceof Date) {\n        data.append(key, value.toISOString());\n    }\n    else {\n        data.append(key, JSON.stringify(value));\n    }\n};\nconst serializeUrlSearchParamsPair = (data, key, value) => {\n    if (typeof value === 'string') {\n        data.append(key, value);\n    }\n    else {\n        data.append(key, JSON.stringify(value));\n    }\n};\nexport const formDataBodySerializer = {\n    bodySerializer: (body) => {\n        const data = new FormData();\n        Object.entries(body).forEach(([key, value]) => {\n            if (value === undefined || value === null) {\n                return;\n            }\n            if (Array.isArray(value)) {\n                value.forEach(v => serializeFormDataPair(data, key, v));\n            }\n            else {\n                serializeFormDataPair(data, key, value);\n            }\n        });\n        return data;\n    },\n};\nexport const jsonBodySerializer = {\n    bodySerializer: (body) => JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\nexport const urlSearchParamsBodySerializer = {\n    bodySerializer: (body) => {\n        const data = new URLSearchParams();\n        Object.entries(body).forEach(([key, value]) => {\n            if (value === undefined || value === null) {\n                return;\n            }\n            if (Array.isArray(value)) {\n                value.forEach(v => serializeUrlSearchParamsPair(data, key, v));\n            }\n            else {\n                serializeUrlSearchParamsPair(data, key, value);\n            }\n        });\n        return data.toString();\n    },\n};\n//# sourceMappingURL=bodySerializer.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nexport function createSseClient({ onRequest, onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) {\n    let lastEventId;\n    const sleep = sseSleepFn ?? ((ms) => new Promise(resolve => setTimeout(resolve, ms)));\n    const createStream = async function* () {\n        let retryDelay = sseDefaultRetryDelay ?? 3000;\n        let attempt = 0;\n        const signal = options.signal ?? new AbortController().signal;\n        while (true) {\n            if (signal.aborted) {\n                break;\n            }\n            attempt++;\n            const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);\n            if (lastEventId !== undefined) {\n                headers.set('Last-Event-ID', lastEventId);\n            }\n            try {\n                const requestInit = {\n                    redirect: 'follow',\n                    ...options,\n                    body: options.serializedBody,\n                    headers,\n                    signal,\n                };\n                let request = new Request(url, requestInit);\n                if (onRequest) {\n                    request = await onRequest(url, requestInit);\n                }\n                // fetch must be assigned here, otherwise it would throw the error:\n                // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n                const _fetch = options.fetch ?? globalThis.fetch;\n                const response = await _fetch(request);\n                if (!response.ok) {\n                    throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n                }\n                if (!response.body) {\n                    throw new Error('No body in SSE response');\n                }\n                const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n                let buffer = '';\n                const abortHandler = () => {\n                    try {\n                        reader.cancel();\n                    }\n                    catch {\n                        // noop\n                    }\n                };\n                signal.addEventListener('abort', abortHandler);\n                try {\n                    while (true) {\n                        const { done, value } = await reader.read();\n                        if (done) {\n                            break;\n                        }\n                        buffer += value;\n                        buffer = buffer.replace(/\\r\\n?/g, '\\n'); // normalize line endings\n                        const chunks = buffer.split('\\n\\n');\n                        buffer = chunks.pop() ?? '';\n                        for (const chunk of chunks) {\n                            const lines = chunk.split('\\n');\n                            const dataLines = [];\n                            let eventName;\n                            for (const line of lines) {\n                                if (line.startsWith('data:')) {\n                                    dataLines.push(line.replace(/^data:\\s*/, ''));\n                                }\n                                else if (line.startsWith('event:')) {\n                                    eventName = line.replace(/^event:\\s*/, '');\n                                }\n                                else if (line.startsWith('id:')) {\n                                    lastEventId = line.replace(/^id:\\s*/, '');\n                                }\n                                else if (line.startsWith('retry:')) {\n                                    const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n                                    if (!Number.isNaN(parsed)) {\n                                        retryDelay = parsed;\n                                    }\n                                }\n                            }\n                            let data;\n                            let parsedJson = false;\n                            if (dataLines.length) {\n                                const rawData = dataLines.join('\\n');\n                                try {\n                                    data = JSON.parse(rawData);\n                                    parsedJson = true;\n                                }\n                                catch {\n                                    data = rawData;\n                                }\n                            }\n                            if (parsedJson) {\n                                if (responseValidator) {\n                                    await responseValidator(data);\n                                }\n                                if (responseTransformer) {\n                                    data = await responseTransformer(data);\n                                }\n                            }\n                            onSseEvent?.({\n                                data,\n                                event: eventName,\n                                id: lastEventId,\n                                retry: retryDelay,\n                            });\n                            if (dataLines.length) {\n                                yield data;\n                            }\n                        }\n                    }\n                }\n                finally {\n                    signal.removeEventListener('abort', abortHandler);\n                    reader.releaseLock();\n                }\n                break; // exit loop on normal completion\n            }\n            catch (error) {\n                // connection failed or aborted; retry after delay\n                onSseError?.(error);\n                if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n                    break; // stop after firing error\n                }\n                // exponential backoff: double retry each attempt, cap at 30s\n                const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n                await sleep(backoff);\n            }\n        }\n    };\n    const stream = createStream();\n    return { stream };\n}\n//# sourceMappingURL=serverSentEvents.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nexport const separatorArrayExplode = (style) => {\n    switch (style) {\n        case 'label':\n            return '.';\n        case 'matrix':\n            return ';';\n        case 'simple':\n            return ',';\n        default:\n            return '&';\n    }\n};\nexport const separatorArrayNoExplode = (style) => {\n    switch (style) {\n        case 'form':\n            return ',';\n        case 'pipeDelimited':\n            return '|';\n        case 'spaceDelimited':\n            return '%20';\n        default:\n            return ',';\n    }\n};\nexport const separatorObjectExplode = (style) => {\n    switch (style) {\n        case 'label':\n            return '.';\n        case 'matrix':\n            return ';';\n        case 'simple':\n            return ',';\n        default:\n            return '&';\n    }\n};\nexport const serializeArrayParam = ({ allowReserved, explode, name, style, value, }) => {\n    if (!explode) {\n        const joinedValues = (allowReserved ? value : value.map(v => encodeURIComponent(v))).join(separatorArrayNoExplode(style));\n        switch (style) {\n            case 'label':\n                return `.${joinedValues}`;\n            case 'matrix':\n                return `;${name}=${joinedValues}`;\n            case 'simple':\n                return joinedValues;\n            default:\n                return `${name}=${joinedValues}`;\n        }\n    }\n    const separator = separatorArrayExplode(style);\n    const joinedValues = value\n        .map((v) => {\n        if (style === 'label' || style === 'simple') {\n            return allowReserved ? v : encodeURIComponent(v);\n        }\n        return serializePrimitiveParam({\n            allowReserved,\n            name,\n            value: v,\n        });\n    })\n        .join(separator);\n    return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\nexport const serializePrimitiveParam = ({ allowReserved, name, value }) => {\n    if (value === undefined || value === null) {\n        return '';\n    }\n    if (typeof value === 'object') {\n        throw new Error('Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.');\n    }\n    return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\nexport const serializeObjectParam = ({ allowReserved, explode, name, style, value, valueOnly, }) => {\n    if (value instanceof Date) {\n        return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n    }\n    if (style !== 'deepObject' && !explode) {\n        let values = [];\n        Object.entries(value).forEach(([key, v]) => {\n            values = [...values, key, allowReserved ? v : encodeURIComponent(v)];\n        });\n        const joinedValues = values.join(',');\n        switch (style) {\n            case 'form':\n                return `${name}=${joinedValues}`;\n            case 'label':\n                return `.${joinedValues}`;\n            case 'matrix':\n                return `;${name}=${joinedValues}`;\n            default:\n                return joinedValues;\n        }\n    }\n    const separator = separatorObjectExplode(style);\n    const joinedValues = Object.entries(value)\n        .map(([key, v]) => serializePrimitiveParam({\n        allowReserved,\n        name: style === 'deepObject' ? `${name}[${key}]` : key,\n        value: v,\n    }))\n        .join(separator);\n    return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n//# sourceMappingURL=pathSerializer.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nimport { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from './pathSerializer.gen.js';\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\nexport const defaultPathSerializer = ({ path, url: _url }) => {\n    let url = _url;\n    const matches = _url.match(PATH_PARAM_RE);\n    if (matches) {\n        for (const match of matches) {\n            let explode = false;\n            let name = match.substring(1, match.length - 1);\n            let style = 'simple';\n            if (name.endsWith('*')) {\n                explode = true;\n                name = name.substring(0, name.length - 1);\n            }\n            if (name.startsWith('.')) {\n                name = name.substring(1);\n                style = 'label';\n            }\n            else if (name.startsWith(';')) {\n                name = name.substring(1);\n                style = 'matrix';\n            }\n            const value = path[name];\n            if (value === undefined || value === null) {\n                continue;\n            }\n            if (Array.isArray(value)) {\n                url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n                continue;\n            }\n            if (typeof value === 'object') {\n                url = url.replace(match, serializeObjectParam({\n                    explode,\n                    name,\n                    style,\n                    value: value,\n                    valueOnly: true,\n                }));\n                continue;\n            }\n            if (style === 'matrix') {\n                url = url.replace(match, `;${serializePrimitiveParam({\n                    name,\n                    value: value,\n                })}`);\n                continue;\n            }\n            const replaceValue = encodeURIComponent(style === 'label' ? `.${value}` : value);\n            url = url.replace(match, replaceValue);\n        }\n    }\n    return url;\n};\nexport const getUrl = ({ baseUrl, path, query, querySerializer, url: _url, }) => {\n    const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n    let url = (baseUrl ?? '') + pathUrl;\n    if (path) {\n        url = defaultPathSerializer({ path, url });\n    }\n    let search = query ? querySerializer(query) : '';\n    if (search.startsWith('?')) {\n        search = search.substring(1);\n    }\n    if (search) {\n        url += `?${search}`;\n    }\n    return url;\n};\nexport function getValidRequestBody(options) {\n    const hasBody = options.body !== undefined;\n    const isSerializedBody = hasBody && options.bodySerializer;\n    if (isSerializedBody) {\n        if ('serializedBody' in options) {\n            const hasSerializedBody = options.serializedBody !== undefined && options.serializedBody !== '';\n            return hasSerializedBody ? options.serializedBody : null;\n        }\n        // not all clients implement a serializedBody property (i.e., client-axios)\n        return options.body !== '' ? options.body : null;\n    }\n    // plain/text body\n    if (hasBody) {\n        return options.body;\n    }\n    // no body was provided\n    return undefined;\n}\n//# sourceMappingURL=utils.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nexport const getAuthToken = async (auth, callback) => {\n    const token = typeof callback === 'function' ? await callback(auth) : callback;\n    if (!token) {\n        return;\n    }\n    if (auth.scheme === 'bearer') {\n        return `Bearer ${token}`;\n    }\n    if (auth.scheme === 'basic') {\n        return `Basic ${btoa(token)}`;\n    }\n    return token;\n};\n//# sourceMappingURL=auth.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nimport { getAuthToken } from '../core/auth.gen.js';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen.js';\nimport { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from '../core/pathSerializer.gen.js';\nimport { getUrl } from '../core/utils.gen.js';\nexport const createQuerySerializer = ({ parameters = {}, ...args } = {}) => {\n    const querySerializer = (queryParams) => {\n        const search = [];\n        if (queryParams && typeof queryParams === 'object') {\n            for (const name in queryParams) {\n                const value = queryParams[name];\n                if (value === undefined || value === null) {\n                    continue;\n                }\n                const options = parameters[name] || args;\n                if (Array.isArray(value)) {\n                    const serializedArray = serializeArrayParam({\n                        allowReserved: options.allowReserved,\n                        explode: true,\n                        name,\n                        style: 'form',\n                        value,\n                        ...options.array,\n                    });\n                    if (serializedArray) {\n                        search.push(serializedArray);\n                    }\n                }\n                else if (typeof value === 'object') {\n                    const serializedObject = serializeObjectParam({\n                        allowReserved: options.allowReserved,\n                        explode: true,\n                        name,\n                        style: 'deepObject',\n                        value: value,\n                        ...options.object,\n                    });\n                    if (serializedObject) {\n                        search.push(serializedObject);\n                    }\n                }\n                else {\n                    const serializedPrimitive = serializePrimitiveParam({\n                        allowReserved: options.allowReserved,\n                        name,\n                        value: value,\n                    });\n                    if (serializedPrimitive) {\n                        search.push(serializedPrimitive);\n                    }\n                }\n            }\n        }\n        return search.join('&');\n    };\n    return querySerializer;\n};\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType) => {\n    if (!contentType) {\n        // If no Content-Type header is provided, the best we can do is return the raw response body,\n        // which is effectively the same as the 'stream' option.\n        return 'stream';\n    }\n    const cleanContent = contentType.split(';')[0]?.trim();\n    if (!cleanContent) {\n        return;\n    }\n    if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n        return 'json';\n    }\n    if (cleanContent === 'multipart/form-data') {\n        return 'formData';\n    }\n    if (['application/', 'audio/', 'image/', 'video/'].some(type => cleanContent.startsWith(type))) {\n        return 'blob';\n    }\n    if (cleanContent.startsWith('text/')) {\n        return 'text';\n    }\n};\nconst checkForExistence = (options, name) => {\n    if (!name) {\n        return false;\n    }\n    if (options.headers.has(name) || options.query?.[name] || options.headers.get('Cookie')?.includes(`${name}=`)) {\n        return true;\n    }\n    return false;\n};\nexport async function setAuthParams(options) {\n    for (const auth of options.security ?? []) {\n        if (checkForExistence(options, auth.name)) {\n            continue;\n        }\n        const token = await getAuthToken(auth, options.auth);\n        if (!token) {\n            continue;\n        }\n        const name = auth.name ?? 'Authorization';\n        switch (auth.in) {\n            case 'query':\n                if (!options.query) {\n                    options.query = {};\n                }\n                options.query[name] = token;\n                break;\n            case 'cookie':\n                options.headers.append('Cookie', `${name}=${token}`);\n                break;\n            case 'header':\n            default:\n                options.headers.set(name, token);\n                break;\n        }\n    }\n}\nexport const buildUrl = options => getUrl({\n    baseUrl: options.baseUrl,\n    path: options.path,\n    query: options.query,\n    querySerializer: typeof options.querySerializer === 'function' ? options.querySerializer : createQuerySerializer(options.querySerializer),\n    url: options.url,\n});\nexport const mergeConfigs = (a, b) => {\n    const config = { ...a, ...b };\n    if (config.baseUrl?.endsWith('/')) {\n        config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n    }\n    config.headers = mergeHeaders(a.headers, b.headers);\n    return config;\n};\nconst headersEntries = (headers) => {\n    const entries = [];\n    headers.forEach((value, key) => {\n        entries.push([key, value]);\n    });\n    return entries;\n};\nexport const mergeHeaders = (...headers) => {\n    const mergedHeaders = new Headers();\n    for (const header of headers) {\n        if (!header) {\n            continue;\n        }\n        const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n        for (const [key, value] of iterator) {\n            if (value === null) {\n                mergedHeaders.delete(key);\n            }\n            else if (Array.isArray(value)) {\n                for (const v of value) {\n                    mergedHeaders.append(key, v);\n                }\n            }\n            else if (value !== undefined) {\n                // assume object headers are meant to be JSON stringified, i.e., their\n                // content value in OpenAPI specification is 'application/json'\n                mergedHeaders.set(key, typeof value === 'object' ? JSON.stringify(value) : value);\n            }\n        }\n    }\n    return mergedHeaders;\n};\nclass Interceptors {\n    fns = [];\n    clear() {\n        this.fns = [];\n    }\n    eject(id) {\n        const index = this.getInterceptorIndex(id);\n        if (this.fns[index]) {\n            this.fns[index] = null;\n        }\n    }\n    exists(id) {\n        const index = this.getInterceptorIndex(id);\n        return Boolean(this.fns[index]);\n    }\n    getInterceptorIndex(id) {\n        if (typeof id === 'number') {\n            return this.fns[id] ? id : -1;\n        }\n        return this.fns.indexOf(id);\n    }\n    update(id, fn) {\n        const index = this.getInterceptorIndex(id);\n        if (this.fns[index]) {\n            this.fns[index] = fn;\n            return id;\n        }\n        return false;\n    }\n    use(fn) {\n        this.fns.push(fn);\n        return this.fns.length - 1;\n    }\n}\nexport const createInterceptors = () => ({\n    error: new Interceptors(),\n    request: new Interceptors(),\n    response: new Interceptors(),\n});\nconst defaultQuerySerializer = createQuerySerializer({\n    allowReserved: false,\n    array: {\n        explode: true,\n        style: 'form',\n    },\n    object: {\n        explode: true,\n        style: 'deepObject',\n    },\n});\nconst defaultHeaders = {\n    'Content-Type': 'application/json',\n};\nexport const createConfig = (override = {}) => ({\n    ...jsonBodySerializer,\n    headers: defaultHeaders,\n    parseAs: 'auto',\n    querySerializer: defaultQuerySerializer,\n    ...override,\n});\n//# sourceMappingURL=utils.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nimport { createSseClient } from '../core/serverSentEvents.gen.js';\nimport { getValidRequestBody } from '../core/utils.gen.js';\nimport { buildUrl, createConfig, createInterceptors, getParseAs, mergeConfigs, mergeHeaders, setAuthParams } from './utils.gen.js';\nexport const createClient = (config = {}) => {\n    let _config = mergeConfigs(createConfig(), config);\n    const getConfig = () => ({ ..._config });\n    const setConfig = (config) => {\n        _config = mergeConfigs(_config, config);\n        return getConfig();\n    };\n    const interceptors = createInterceptors();\n    const beforeRequest = async (options) => {\n        const opts = {\n            ..._config,\n            ...options,\n            fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n            headers: mergeHeaders(_config.headers, options.headers),\n            serializedBody: undefined,\n        };\n        if (opts.security) {\n            await setAuthParams(opts);\n        }\n        if (opts.requestValidator) {\n            await opts.requestValidator(opts);\n        }\n        if (opts.body !== undefined && opts.bodySerializer) {\n            opts.serializedBody = opts.bodySerializer(opts.body);\n        }\n        // remove Content-Type header if body is empty to avoid sending invalid requests\n        if (opts.body === undefined || opts.serializedBody === '') {\n            opts.headers.delete('Content-Type');\n        }\n        const resolvedOpts = opts;\n        const url = buildUrl(resolvedOpts);\n        return { opts: resolvedOpts, url };\n    };\n    const request = async (options) => {\n        const throwOnError = options.throwOnError ?? _config.throwOnError;\n        const responseStyle = options.responseStyle ?? _config.responseStyle;\n        let request;\n        let response;\n        try {\n            const { opts, url } = await beforeRequest(options);\n            const requestInit = {\n                redirect: 'follow',\n                ...opts,\n                body: getValidRequestBody(opts),\n            };\n            request = new Request(url, requestInit);\n            for (const fn of interceptors.request.fns) {\n                if (fn) {\n                    request = await fn(request, opts);\n                }\n            }\n            // fetch must be assigned here, otherwise it would throw the error:\n            // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n            const _fetch = opts.fetch;\n            response = await _fetch(request);\n            for (const fn of interceptors.response.fns) {\n                if (fn) {\n                    response = await fn(response, request, opts);\n                }\n            }\n            const result = {\n                request,\n                response,\n            };\n            if (response.ok) {\n                const parseAs = (opts.parseAs === 'auto' ? getParseAs(response.headers.get('Content-Type')) : opts.parseAs) ?? 'json';\n                if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n                    let emptyData;\n                    switch (parseAs) {\n                        case 'arrayBuffer':\n                        case 'blob':\n                        case 'text':\n                            emptyData = await response[parseAs]();\n                            break;\n                        case 'formData':\n                            emptyData = new FormData();\n                            break;\n                        case 'stream':\n                            emptyData = response.body;\n                            break;\n                        case 'json':\n                        default:\n                            emptyData = {};\n                            break;\n                    }\n                    return opts.responseStyle === 'data'\n                        ? emptyData\n                        : {\n                            data: emptyData,\n                            ...result,\n                        };\n                }\n                let data;\n                switch (parseAs) {\n                    case 'arrayBuffer':\n                    case 'blob':\n                    case 'formData':\n                    case 'text':\n                        data = await response[parseAs]();\n                        break;\n                    case 'json': {\n                        // Some servers return 200 with no Content-Length and empty body.\n                        // response.json() would throw; read as text and parse if non-empty.\n                        const text = await response.text();\n                        data = text ? JSON.parse(text) : {};\n                        break;\n                    }\n                    case 'stream':\n                        return opts.responseStyle === 'data'\n                            ? response.body\n                            : {\n                                data: response.body,\n                                ...result,\n                            };\n                }\n                if (parseAs === 'json') {\n                    if (opts.responseValidator) {\n                        await opts.responseValidator(data);\n                    }\n                    if (opts.responseTransformer) {\n                        data = await opts.responseTransformer(data);\n                    }\n                }\n                return opts.responseStyle === 'data'\n                    ? data\n                    : {\n                        data,\n                        ...result,\n                    };\n            }\n            const textError = await response.text();\n            let jsonError;\n            try {\n                jsonError = JSON.parse(textError);\n            }\n            catch {\n                // noop\n            }\n            throw jsonError ?? textError;\n        }\n        catch (error) {\n            let finalError = error;\n            for (const fn of interceptors.error.fns) {\n                if (fn) {\n                    finalError = await fn(finalError, response, request, options);\n                }\n            }\n            finalError = finalError || {};\n            if (throwOnError) {\n                throw finalError;\n            }\n            // TODO: we probably want to return error and improve types\n            return responseStyle === 'data'\n                ? undefined\n                : {\n                    error: finalError,\n                    request,\n                    response,\n                };\n        }\n    };\n    const makeMethodFn = (method) => (options) => request({ ...options, method });\n    const makeSseFn = (method) => async (options) => {\n        const { opts, url } = await beforeRequest(options);\n        return createSseClient({\n            ...opts,\n            body: opts.body,\n            method,\n            onRequest: async (url, init) => {\n                let request = new Request(url, init);\n                for (const fn of interceptors.request.fns) {\n                    if (fn) {\n                        request = await fn(request, opts);\n                    }\n                }\n                return request;\n            },\n            serializedBody: getValidRequestBody(opts),\n            url,\n        });\n    };\n    const _buildUrl = options => buildUrl({ ..._config, ...options });\n    return {\n        buildUrl: _buildUrl,\n        connect: makeMethodFn('CONNECT'),\n        delete: makeMethodFn('DELETE'),\n        get: makeMethodFn('GET'),\n        getConfig,\n        head: makeMethodFn('HEAD'),\n        interceptors,\n        options: makeMethodFn('OPTIONS'),\n        patch: makeMethodFn('PATCH'),\n        post: makeMethodFn('POST'),\n        put: makeMethodFn('PUT'),\n        request,\n        setConfig,\n        sse: {\n            connect: makeSseFn('CONNECT'),\n            delete: makeSseFn('DELETE'),\n            get: makeSseFn('GET'),\n            head: makeSseFn('HEAD'),\n            options: makeSseFn('OPTIONS'),\n            patch: makeSseFn('PATCH'),\n            post: makeSseFn('POST'),\n            put: makeSseFn('PUT'),\n            trace: makeSseFn('TRACE'),\n        },\n        trace: makeMethodFn('TRACE'),\n    };\n};\n//# sourceMappingURL=client.gen.js.map","export class HttpError extends Error {\n    request;\n    response;\n    constructor(request, response) {\n        super(`HTTP ${response.status} ${response.statusText}`);\n        this.request = request;\n        this.response = response;\n        this.name = 'HttpError';\n        Object.defineProperty(this, 'request', { enumerable: false });\n        Object.defineProperty(this, 'response', { enumerable: false });\n    }\n}\n//# sourceMappingURL=HttpError.js.map","import { HttpError } from './HttpError.js';\nexport class ApiError extends HttpError {\n    data;\n    constructor(request, response, data) {\n        super(request, response);\n        this.data = data;\n        this.name = 'ApiError';\n    }\n}\n//# sourceMappingURL=ApiError.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nimport { createClient, createConfig } from './client/index.js';\nexport const client = createClient(createConfig({ baseUrl: 'https://api.globalping.io' }));\n//# sourceMappingURL=client.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\nimport { client } from './client.gen.js';\n/**\n * Create a measurement\n *\n * Creates a new measurement with parameters set in the request body.\n * The measurement runs asynchronously and you can retrieve its current state at the URL returned in the `Location` header.\n *\n * ### Client guidelines\n *\n * - If the application is running in interactive mode, set the `inProgressUpdates` option to `true` to have the API\n * return partial results as soon as they are available. This allows the user to see the measurement progress in real time.\n * - If the application is interactive by default but also implements a \"CI\" mode for scripting, do not set the flag in the CI mode.\n * - To perform multiple measurements using exactly the same probes, create a single measurement first, then pass its `id` in the `locations` field for the other measurements.\n * - When you receive a `429` response, inform the user about their current rate limit status based on the response headers. Depending on the exact situation and on what your application supports, you may also suggest:\n * - Signing in or using an access token.\n * - Learning more about how to get additional credits at https://globalping.io/credits.\n * - Repeating the measurement with fewer probes.\n *\n */\nexport const createMeasurement = (options) => (options.client ?? client).post({\n    security: [\n        {\n            key: 'BearerAuth',\n            scheme: 'bearer',\n            type: 'http',\n        },\n        {\n            key: 'OAuth2',\n            scheme: 'bearer',\n            type: 'http',\n        },\n    ],\n    url: '/v1/measurements',\n    ...options,\n    headers: {\n        'Content-Type': 'application/json',\n        ...options.headers,\n    },\n});\n/**\n * Get a measurement by ID\n *\n * Returns the status and results of an existing measurement.\n * Measurements are typically available for up to 7 days after creation.\n *\n * > **Tip**: A link to this endpoint is returned in the `Location` response header when creating the measurement.\n *\n * ### Client guidelines\n *\n * As it can take a few seconds for a measurement to complete, you should use the following process for retrieving the results:\n * 1. Request the measurement to retrieve its status.\n * 2. If the status is `in-progress`, wait 500 milliseconds and start again at step 1. Note that it's important to wait 500 ms *after* receiving the response rather than using an \"every 500ms\" interval as for large measurements, the request itself may take a few hundred milliseconds to complete.\n * 3. If the status is anything **other** than `in-progress`, stop. The measurement is no longer running, and its results are final.\n *\n * > **Important**: Do not query the results of a single measurement more often than every 500 milliseconds. Sending more than two\n * requests per second may trigger a rate limit and prevent you from accessing the results for a few seconds.\n *\n */\nexport const getMeasurement = (options) => (options.client ?? client).get({ url: '/v1/measurements/{id}', ...options });\n/**\n * List probes currently online\n *\n * Returns a list of all probes currently online and their metadata, such as location and assigned tags.\n *\n * > **Note**: Probes don't expose unique IDs that would allow you to explicitly select them.\n * Instead, specify the requested location or an ID of an existing measurement when creating new measurements.\n *\n */\nexport const listProbes = (options) => (options?.client ?? client).get({ url: '/v1/probes', ...options });\n/**\n * Get current rate limits\n *\n * Returns rate limits for the current user (if authenticated) or IP address (if not authenticated).\n *\n */\nexport const getLimits = (options) => (options?.client ?? client).get({\n    security: [\n        {\n            key: 'BearerAuth',\n            scheme: 'bearer',\n            type: 'http',\n        },\n        {\n            key: 'OAuth2',\n            scheme: 'bearer',\n            type: 'http',\n        },\n    ],\n    url: '/v1/limits',\n    ...options,\n});\n//# sourceMappingURL=sdk.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n// @ts-nocheck\n/**\n * The transport protocol to use.\n */\nexport const PingProtocol = { ICMP: 'ICMP', TCP: 'TCP' };\n/**\n * EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname.\n *\n */\nexport const IpVersion = { 4: 4, 6: 6 };\n/**\n * The transport protocol to use.\n */\nexport const TracerouteProtocol = {\n    ICMP: 'ICMP',\n    TCP: 'TCP',\n    UDP: 'UDP',\n};\n/**\n * The type of DNS query.\n */\nexport const DnsQueryType = {\n    A: 'A',\n    AAAA: 'AAAA',\n    ANY: 'ANY',\n    CNAME: 'CNAME',\n    DNSKEY: 'DNSKEY',\n    DS: 'DS',\n    HTTPS: 'HTTPS',\n    MX: 'MX',\n    NS: 'NS',\n    NSEC: 'NSEC',\n    PTR: 'PTR',\n    RRSIG: 'RRSIG',\n    SOA: 'SOA',\n    TXT: 'TXT',\n    SRV: 'SRV',\n    SVCB: 'SVCB',\n};\n/**\n * The protocol to use for the DNS query.\n */\nexport const DnsProtocol = { TCP: 'TCP', UDP: 'UDP' };\n/**\n * The transport protocol to use.\n */\nexport const MtrProtocol = {\n    ICMP: 'ICMP',\n    TCP: 'TCP',\n    UDP: 'UDP',\n};\n/**\n * The HTTP method to use.\n */\nexport const HttpRequestMethod = {\n    HEAD: 'HEAD',\n    GET: 'GET',\n    OPTIONS: 'OPTIONS',\n};\nexport const HttpProtocol = {\n    HTTP: 'HTTP',\n    HTTPS: 'HTTPS',\n    HTTP2: 'HTTP2',\n};\n/**\n * The measurement type.\n */\nexport const MeasurementType = {\n    PING: 'ping',\n    TRACEROUTE: 'traceroute',\n    DNS: 'dns',\n    MTR: 'mtr',\n    HTTP: 'http',\n};\n/**\n * A two-letter continent code.\n */\nexport const ContinentCode = {\n    AF: 'AF',\n    AN: 'AN',\n    AS: 'AS',\n    EU: 'EU',\n    NA: 'NA',\n    OC: 'OC',\n    SA: 'SA',\n};\n/**\n * A geographic region name based on UN [Standard Country or Area Codes for Statistical Use (M49)](https://unstats.un.org/unsd/methodology/m49/).\n *\n */\nexport const RegionName = {\n    NORTHERN_AFRICA: 'Northern Africa',\n    EASTERN_AFRICA: 'Eastern Africa',\n    MIDDLE_AFRICA: 'Middle Africa',\n    SOUTHERN_AFRICA: 'Southern Africa',\n    WESTERN_AFRICA: 'Western Africa',\n    CARIBBEAN: 'Caribbean',\n    CENTRAL_AMERICA: 'Central America',\n    SOUTH_AMERICA: 'South America',\n    NORTHERN_AMERICA: 'Northern America',\n    CENTRAL_ASIA: 'Central Asia',\n    EASTERN_ASIA: 'Eastern Asia',\n    SOUTH_EASTERN_ASIA: 'South-eastern Asia',\n    SOUTHERN_ASIA: 'Southern Asia',\n    WESTERN_ASIA: 'Western Asia',\n    EASTERN_EUROPE: 'Eastern Europe',\n    NORTHERN_EUROPE: 'Northern Europe',\n    SOUTHERN_EUROPE: 'Southern Europe',\n    WESTERN_EUROPE: 'Western Europe',\n    AUSTRALIA_AND_NEW_ZEALAND: 'Australia and New Zealand',\n    MELANESIA: 'Melanesia',\n    MICRONESIA: 'Micronesia',\n    POLYNESIA: 'Polynesia',\n};\n/**\n * The type of the used key, or `null` for unrecognized types.\n */\nexport const TlsKeyType = {\n    RSA: 'RSA',\n    EC: 'EC',\n    NULL: 'null',\n};\n/**\n * The current measurement status. Any value other than `in-progress` is final.\n */\nexport const MeasurementStatus = { IN_PROGRESS: 'in-progress', FINISHED: 'finished' };\n/**\n * EXPERIMENTAL: The most likely source of the failure:\n * - `target` covers the target and its network path, including misconfigured DNS records and timeouts,\n * - `resolver` covers failures communicating with or receiving an unusable response from the DNS resolver,\n * - `internal` covers Globalping probe and API failures.\n * The exact source cannot always be determined reliably, so this field is a best-effort classification.\n *\n */\nexport const FailureSource = {\n    TARGET: 'target',\n    RESOLVER: 'resolver',\n    INTERNAL: 'internal',\n};\n/**\n * Type of the rate limit.\n */\nexport const RateLimitType = { IP: 'ip', USER: 'user' };\n//# sourceMappingURL=types.gen.js.map","export const wait = async (ms, signal) => {\n    await new Promise((resolve, reject) => {\n        signal?.throwIfAborted();\n        const abortHandler = () => {\n            clearTimeout(timeout);\n            // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- AbortSignal reasons can be any value.\n            reject(signal?.reason);\n        };\n        const timeout = setTimeout(() => {\n            signal?.removeEventListener('abort', abortHandler);\n            resolve();\n        }, ms);\n        signal?.addEventListener('abort', abortHandler, { once: true });\n    });\n};\n//# sourceMappingURL=utils.js.map","import { createClient, createConfig } from '../openapi-ts/client/index.js';\n// @transform-path ../../../package.json\nimport pkg from \"../../../package.json\" with { type: 'json' };\nimport { HttpError } from '../errors/HttpError.js';\nimport { ApiError } from '../errors/ApiError.js';\nimport * as sdk from '../openapi-ts/sdk.gen.js';\nimport { MeasurementStatus, } from '../openapi-ts/index.js';\nimport { wait } from '../utils.js';\nexport class Globalping {\n    auth;\n    client;\n    userAgent;\n    throwApiErrors;\n    timeout;\n    constructor({ auth, userAgent, throwApiErrors, timeout } = {}) {\n        this.userAgent = userAgent ?? `globalping-typescript/${pkg.version} (https://github.com/jsdelivr/globalping-typescript)`;\n        this.throwApiErrors = throwApiErrors ?? false;\n        this.timeout = timeout ?? 30000;\n        this.auth = auth;\n        this.client = createClient(createConfig({\n            baseUrl: 'https://api.globalping.io',\n            fetch: (...args) => {\n                const request = new Request(...args);\n                const headers = new Headers(request.headers);\n                headers.set('User-Agent', this.userAgent);\n                if (this.auth) {\n                    headers.set('Authorization', `Bearer ${this.auth}`);\n                }\n                return fetch(new Request(request, {\n                    headers,\n                    signal: AbortSignal.any([request.signal, AbortSignal.timeout(this.timeout)]),\n                }));\n            },\n        }));\n    }\n    /**\n     * @see {@link sdk.createMeasurement} for the API docs\n     */\n    createMeasurement(measurement) {\n        return this.transformResult(sdk.createMeasurement({\n            body: measurement,\n            client: this.client,\n        }));\n    }\n    /**\n     * @see {@link sdk.getMeasurement} for the API docs\n     */\n    async getMeasurement(id) {\n        const result = await this.transformResult(sdk.getMeasurement({\n            path: { id },\n            client: this.client,\n        }));\n        if (!result.ok) {\n            return result;\n        }\n        return result;\n    }\n    /**\n     * @see {@link sdk.getMeasurement} for the API docs\n     */\n    async awaitMeasurement(id, { signal } = {}) {\n        const getMeasurement = (eTag) => {\n            return sdk.getMeasurement({\n                path: { id },\n                headers: eTag ? {\n                    'If-None-Match': eTag,\n                } : {},\n                ...signal ? { signal } : {},\n                client: this.client,\n            });\n        };\n        const start = Date.now();\n        let internalResult = Globalping.requireRequestCompleted(await getMeasurement());\n        const maxTime = internalResult.data?.timeout === undefined ? 35000 : (internalResult.data.timeout + 10) * 1000;\n        while (internalResult.data && internalResult.data.status === MeasurementStatus.IN_PROGRESS) {\n            if (Date.now() - start > maxTime) {\n                throw new Error(`Timed out waiting for measurement ${id} to finish.`);\n            }\n            await wait(500, signal);\n            const newInternalResult = Globalping.requireRequestCompleted(await getMeasurement(internalResult.response.headers.get('ETag')));\n            if (newInternalResult.response.status !== 304) {\n                internalResult = newInternalResult;\n            }\n        }\n        const result = await this.transformResult(internalResult);\n        if (!result.ok) {\n            return result;\n        }\n        const data = result.data;\n        Globalping.assertMeasurementFinished(data);\n        return { ...result, data };\n    }\n    /**\n     * @see {@link sdk.listProbes} for the API docs\n     */\n    async listProbes() {\n        return this.transformResult(sdk.listProbes({\n            client: this.client,\n        }));\n    }\n    /**\n     * @see {@link sdk.getLimits} for the API docs\n     */\n    async getLimits() {\n        return this.transformResult(sdk.getLimits({\n            client: this.client,\n        }));\n    }\n    static requireRequestCompleted(result) {\n        if (!result.request || !result.response) {\n            if ('error' in result) {\n                throw result.error;\n            }\n            throw new Error('Request failed before receiving a response.');\n        }\n        return result;\n    }\n    async transformResult(requestResult) {\n        const internalResult = Globalping.requireRequestCompleted(await requestResult);\n        const { data, error, request, response } = internalResult;\n        if (error != null) {\n            if (response.ok) {\n                if (error instanceof Error) {\n                    throw error;\n                }\n                const responseError = new Error('Failed to process response.');\n                Object.defineProperty(responseError, 'cause', { value: error });\n                throw responseError;\n            }\n            if (typeof error !== 'object' || !('error' in error)) {\n                throw new HttpError(request, response);\n            }\n            if (this.throwApiErrors) {\n                throw new ApiError(request, response, error);\n            }\n            return { ok: false, data: error, request, response };\n        }\n        if (data == null) {\n            throw new Error('Unexpected undefined data');\n        }\n        return { ok: true, data, request, response };\n    }\n    static assertHttpStatus(status, result) {\n        if (!Globalping.isHttpStatus(status, result)) {\n            throw new Error(`Expected HTTP status ${status}, got ${result.response.status}`);\n        }\n    }\n    static assertMeasurementFinished(measurement) {\n        if (!Globalping.isMeasurementFinished(measurement)) {\n            throw new Error(`Expected measurement status ${MeasurementStatus.FINISHED}, got ${measurement.status}`);\n        }\n    }\n    static assertMeasurementType(type, measurement) {\n        if (!Globalping.isMeasurementType(type, measurement)) {\n            throw new Error(`Expected measurement type ${type}, got ${measurement.type}`);\n        }\n    }\n    static isHttpStatus(status, result) {\n        return result.response.status === status;\n    }\n    static isMeasurementFinished(measurement) {\n        return measurement.status === MeasurementStatus.FINISHED;\n    }\n    static isMeasurementType(type, measurement) {\n        return measurement.type === type;\n    }\n}\nexport default Globalping;\n//# sourceMappingURL=Globalping.js.map"],"names":["sdk.createMeasurement","sdk.getMeasurement","getMeasurement","sdk.listProbes","sdk.getLimits"],"mappings":"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"}