globalping
Version:
The official TS/JS client for the Globalping API
1 lines • 45.3 kB
Source Map (JSON)
{"version":3,"file":"bundle.cjs","sources":["../../node_modules/@hey-api/client-fetch/dist/index.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":["var A=async(t,r)=>{let e=typeof r==\"function\"?await r(t):r;if(e)return t.scheme===\"bearer\"?`Bearer ${e}`:t.scheme===\"basic\"?`Basic ${btoa(e)}`:e},z=(t,r,e)=>{typeof e==\"string\"||e instanceof Blob?t.append(r,e):t.append(r,JSON.stringify(e));},j=(t,r,e)=>{typeof e==\"string\"?t.append(r,e):t.append(r,JSON.stringify(e));},v={bodySerializer:t=>{let r=new FormData;return Object.entries(t).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>z(r,e,i)):z(r,e,a));}),r}},R={bodySerializer:t=>JSON.stringify(t,(r,e)=>typeof e==\"bigint\"?e.toString():e)},$={bodySerializer:t=>{let r=new URLSearchParams;return Object.entries(t).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>j(r,e,i)):j(r,e,a));}),r.toString()}},U=t=>{switch(t){case \"label\":return \".\";case \"matrix\":return \";\";case \"simple\":return \",\";default:return \"&\"}},_=t=>{switch(t){case \"form\":return \",\";case \"pipeDelimited\":return \"|\";case \"spaceDelimited\":return \"%20\";default:return \",\"}},D=t=>{switch(t){case \"label\":return \".\";case \"matrix\":return \";\";case \"simple\":return \",\";default:return \"&\"}},O=({allowReserved:t,explode:r,name:e,style:a,value:i})=>{if(!r){let s=(t?i:i.map(l=>encodeURIComponent(l))).join(_(a));switch(a){case \"label\":return `.${s}`;case \"matrix\":return `;${e}=${s}`;case \"simple\":return s;default:return `${e}=${s}`}}let o=U(a),n=i.map(s=>a===\"label\"||a===\"simple\"?t?s:encodeURIComponent(s):y({allowReserved:t,name:e,value:s})).join(o);return a===\"label\"||a===\"matrix\"?o+n:n},y=({allowReserved:t,name:r,value:e})=>{if(e==null)return \"\";if(typeof e==\"object\")throw new Error(\"Deeply-nested arrays/objects aren\\u2019t supported. Provide your own `querySerializer()` to handle these.\");return `${r}=${t?e:encodeURIComponent(e)}`},q=({allowReserved:t,explode:r,name:e,style:a,value:i})=>{if(i instanceof Date)return `${e}=${i.toISOString()}`;if(a!==\"deepObject\"&&!r){let s=[];Object.entries(i).forEach(([f,u])=>{s=[...s,f,t?u:encodeURIComponent(u)];});let l=s.join(\",\");switch(a){case \"form\":return `${e}=${l}`;case \"label\":return `.${l}`;case \"matrix\":return `;${e}=${l}`;default:return l}}let o=D(a),n=Object.entries(i).map(([s,l])=>y({allowReserved:t,name:a===\"deepObject\"?`${e}[${s}]`:s,value:l})).join(o);return a===\"label\"||a===\"matrix\"?o+n:n};var H=/\\{[^{}]+\\}/g,B=({path:t,url:r})=>{let e=r,a=r.match(H);if(a)for(let i of a){let o=false,n=i.substring(1,i.length-1),s=\"simple\";n.endsWith(\"*\")&&(o=true,n=n.substring(0,n.length-1)),n.startsWith(\".\")?(n=n.substring(1),s=\"label\"):n.startsWith(\";\")&&(n=n.substring(1),s=\"matrix\");let l=t[n];if(l==null)continue;if(Array.isArray(l)){e=e.replace(i,O({explode:o,name:n,style:s,value:l}));continue}if(typeof l==\"object\"){e=e.replace(i,q({explode:o,name:n,style:s,value:l}));continue}if(s===\"matrix\"){e=e.replace(i,`;${y({name:n,value:l})}`);continue}let f=encodeURIComponent(s===\"label\"?`.${l}`:l);e=e.replace(i,f);}return e},E=({allowReserved:t,array:r,object:e}={})=>i=>{let o=[];if(i&&typeof i==\"object\")for(let n in i){let s=i[n];if(s!=null){if(Array.isArray(s)){o=[...o,O({allowReserved:t,explode:true,name:n,style:\"form\",value:s,...r})];continue}if(typeof s==\"object\"){o=[...o,q({allowReserved:t,explode:true,name:n,style:\"deepObject\",value:s,...e})];continue}o=[...o,y({allowReserved:t,name:n,value:s})];}}return o.join(\"&\")},P=t=>{if(!t)return \"stream\";let r=t.split(\";\")[0]?.trim();if(r){if(r.startsWith(\"application/json\")||r.endsWith(\"+json\"))return \"json\";if(r===\"multipart/form-data\")return \"formData\";if([\"application/\",\"audio/\",\"image/\",\"video/\"].some(e=>r.startsWith(e)))return \"blob\";if(r.startsWith(\"text/\"))return \"text\"}},I=async({security:t,...r})=>{for(let e of t){let a=await A(e,r.auth);if(!a)continue;let i=e.name??\"Authorization\";switch(e.in){case \"query\":r.query||(r.query={}),r.query[i]=a;break;case \"cookie\":r.headers.append(\"Cookie\",`${i}=${a}`);break;case \"header\":default:r.headers.set(i,a);break}return}},S=t=>W({baseUrl:t.baseUrl,path:t.path,query:t.query,querySerializer:typeof t.querySerializer==\"function\"?t.querySerializer:E(t.querySerializer),url:t.url}),W=({baseUrl:t,path:r,query:e,querySerializer:a,url:i})=>{let o=i.startsWith(\"/\")?i:`/${i}`,n=(t??\"\")+o;r&&(n=B({path:r,url:n}));let s=e?a(e):\"\";return s.startsWith(\"?\")&&(s=s.substring(1)),s&&(n+=`?${s}`),n},C=(t,r)=>{let e={...t,...r};return e.baseUrl?.endsWith(\"/\")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=x(t.headers,r.headers),e},x=(...t)=>{let r=new Headers;for(let e of t){if(!e||typeof e!=\"object\")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[i,o]of a)if(o===null)r.delete(i);else if(Array.isArray(o))for(let n of o)r.append(i,n);else o!==undefined&&r.set(i,typeof o==\"object\"?JSON.stringify(o):o);}return r},h=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}exists(r){return this._fns.indexOf(r)!==-1}eject(r){let e=this._fns.indexOf(r);e!==-1&&(this._fns=[...this._fns.slice(0,e),...this._fns.slice(e+1)]);}use(r){this._fns=[...this._fns,r];}},T=()=>({error:new h,request:new h,response:new h}),N=E({allowReserved:false,array:{explode:true,style:\"form\"},object:{explode:true,style:\"deepObject\"}}),Q={\"Content-Type\":\"application/json\"},w=(t={})=>({...R,headers:Q,parseAs:\"auto\",querySerializer:N,...t});var J=(t={})=>{let r=C(w(),t),e=()=>({...r}),a=n=>(r=C(r,n),e()),i=T(),o=async n=>{let s={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:x(r.headers,n.headers)};s.security&&await I({...s,security:s.security}),s.body&&s.bodySerializer&&(s.body=s.bodySerializer(s.body)),(s.body===undefined||s.body===\"\")&&s.headers.delete(\"Content-Type\");let l=S(s),f={redirect:\"follow\",...s},u=new Request(l,f);for(let p of i.request._fns)u=await p(u,s);let k=s.fetch,c=await k(u);for(let p of i.response._fns)c=await p(c,u,s);let m={request:u,response:c};if(c.ok){if(c.status===204||c.headers.get(\"Content-Length\")===\"0\")return {data:{},...m};let p=(s.parseAs===\"auto\"?P(c.headers.get(\"Content-Type\")):s.parseAs)??\"json\";if(p===\"stream\")return {data:c.body,...m};let b=await c[p]();return p===\"json\"&&(s.responseValidator&&await s.responseValidator(b),s.responseTransformer&&(b=await s.responseTransformer(b))),{data:b,...m}}let g=await c.text();try{g=JSON.parse(g);}catch{}let d=g;for(let p of i.error._fns)d=await p(g,c,u,s);if(d=d||{},s.throwOnError)throw d;return {error:d,...m}};return {buildUrl:S,connect:n=>o({...n,method:\"CONNECT\"}),delete:n=>o({...n,method:\"DELETE\"}),get:n=>o({...n,method:\"GET\"}),getConfig:e,head:n=>o({...n,method:\"HEAD\"}),interceptors:i,options:n=>o({...n,method:\"OPTIONS\"}),patch:n=>o({...n,method:\"PATCH\"}),post:n=>o({...n,method:\"POST\"}),put:n=>o({...n,method:\"PUT\"}),request:o,setConfig:a,trace:n=>o({...n,method:\"TRACE\"})}};export{J as createClient,w as createConfig,v as formDataBodySerializer,R as jsonBodySerializer,$ as urlSearchParamsBodySerializer};//# sourceMappingURL=index.js.map\n//# sourceMappingURL=index.js.map","export class HttpError extends Error {\n constructor(request, response) {\n super(`HTTP ${response.status} ${response.statusText}`);\n this.request = request;\n this.response = response;\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 constructor(request, response, data) {\n super(request, response);\n this.data = data;\n }\n}\n//# sourceMappingURL=ApiError.js.map","// This file is auto-generated by @hey-api/openapi-ts\nimport { createClient, createConfig } from '@hey-api/client-fetch';\nexport const client = createClient(createConfig({\n baseUrl: 'https://api.globalping.io',\n}));\n//# sourceMappingURL=client.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\nimport { client as _heyApiClient } from './client.gen.js';\n/**\n * Create a measurement\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) => {\n var _a;\n return ((_a = options === null || options === void 0 ? void 0 : options.client) !== null && _a !== void 0 ? _a : _heyApiClient).post({\n security: [\n {\n scheme: 'bearer',\n type: 'http',\n },\n {\n scheme: 'bearer',\n type: 'http',\n },\n ],\n url: '/v1/measurements',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options === null || options === void 0 ? void 0 : options.headers,\n },\n });\n};\n/**\n * Get a measurement by ID\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) => {\n var _a;\n return ((_a = options.client) !== null && _a !== void 0 ? _a : _heyApiClient).get({\n url: '/v1/measurements/{id}',\n ...options,\n });\n};\n/**\n * List probes currently online\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) => {\n var _a;\n return ((_a = options === null || options === void 0 ? void 0 : options.client) !== null && _a !== void 0 ? _a : _heyApiClient).get({\n url: '/v1/probes',\n ...options,\n });\n};\n/**\n * Get current rate limits\n * Returns rate limits for the current user (if authenticated) or IP address (if not authenticated).\n *\n */\nexport const getLimits = (options) => {\n var _a;\n return ((_a = options === null || options === void 0 ? void 0 : options.client) !== null && _a !== void 0 ? _a : _heyApiClient).get({\n security: [\n {\n scheme: 'bearer',\n type: 'http',\n },\n {\n scheme: 'bearer',\n type: 'http',\n },\n ],\n url: '/v1/limits',\n ...options,\n });\n};\n//# sourceMappingURL=sdk.gen.js.map","// This file is auto-generated by @hey-api/openapi-ts\n/**\n * The transport protocol to use.\n */\nexport const PingProtocol = {\n ICMP: 'ICMP',\n TCP: 'TCP',\n};\n/**\n * EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname.\n *\n */\nexport const IpVersion = {\n 4: 4,\n 6: 6,\n};\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 = {\n TCP: 'TCP',\n UDP: 'UDP',\n};\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 = {\n IN_PROGRESS: 'in-progress',\n FINISHED: 'finished',\n};\n/**\n * Type of the rate limit.\n */\nexport const RateLimitType = {\n IP: 'ip',\n USER: 'user',\n};\n//# sourceMappingURL=types.gen.js.map","export const wait = async (ms) => {\n await new Promise(resolve => setTimeout(resolve, ms));\n};\n//# sourceMappingURL=utils.js.map","import { createClient, createConfig } from '@hey-api/client-fetch';\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 constructor({ auth, userAgent, throwApiErrors, timeout } = {}) {\n this.userAgent = userAgent !== null && userAgent !== void 0 ? userAgent : `globalping-typescript/${pkg.version} (https://github.com/jsdelivr/globalping-typescript)`;\n this.throwApiErrors = throwApiErrors !== null && throwApiErrors !== void 0 ? throwApiErrors : false;\n this.timeout = timeout !== null && timeout !== void 0 ? timeout : 30000;\n this.auth = auth;\n this.client = createClient(createConfig({\n baseUrl: 'https://api.globalping.io',\n }));\n }\n /**\n * @see {@link sdk.createMeasurement} for the API docs\n */\n createMeasurement(measurement) {\n return this.transformResult(this.request(sdk.createMeasurement, { body: measurement }));\n }\n /**\n * @see {@link sdk.getMeasurement} for the API docs\n */\n async getMeasurement(id) {\n const result = await this.transformResult(this.request(sdk.getMeasurement, { path: { id } }));\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) {\n const getMeasurement = (eTag) => {\n return this.request(sdk.getMeasurement, {\n path: { id },\n headers: eTag ? {\n 'If-None-Match': eTag,\n } : {},\n });\n };\n const start = Date.now();\n let internalResult = await getMeasurement();\n while (internalResult.data && internalResult.data.status === MeasurementStatus.IN_PROGRESS) {\n if (Date.now() - start > 60000) {\n throw new Error(`Timed out waiting for measurement ${id} to finish.`);\n }\n await wait(500);\n const newInternalResult = 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(this.request(sdk.listProbes));\n }\n /**\n * @see {@link sdk.getLimits} for the API docs\n */\n async getLimits() {\n return this.transformResult(this.request(sdk.getLimits));\n }\n request(fn, options) {\n const optionsWithDefaults = {\n auth: this.auth,\n timeout: this.timeout,\n userAgent: this.userAgent,\n ...(options || {}),\n };\n return fn({\n client: this.client,\n fetch: (request) => {\n var _a;\n const headers = new Headers(request.headers);\n headers.set('User-Agent', optionsWithDefaults.userAgent);\n if (optionsWithDefaults.auth) {\n headers.set('Authorization', `Bearer ${optionsWithDefaults.auth}`);\n }\n return fetch(new Request(request, {\n headers,\n signal: (_a = optionsWithDefaults.signal) !== null && _a !== void 0 ? _a : AbortSignal.timeout(optionsWithDefaults.timeout),\n }));\n },\n ...optionsWithDefaults,\n });\n }\n async transformResult(requestResult) {\n const { data, error, request, response } = await requestResult;\n if (error != null) {\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":["createClient","createConfig","_heyApiClient","sdk.createMeasurement","sdk.getMeasurement","getMeasurement","sdk.listProbes","sdk.getLimits"],"mappings":"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","x_google_ignoreList":[0]}