@wener/utils 1.1.20 → 1.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +9 -9
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/server.cjs +1 -1
- package/dist/cjs/server.cjs.map +1 -1
- package/dist/esm/index.js +9 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server.js +1 -1
- package/dist/esm/server.js.map +1 -1
- package/dist/system/index.js +9 -9
- package/dist/system/index.js.map +1 -1
- package/dist/system/server.js +1 -1
- package/dist/system/server.js.map +1 -1
- package/lib/asyncs/createAsyncIterator.js.map +1 -1
- package/lib/asyncs/createLazyPromise.js.map +1 -1
- package/lib/crypto/md5.js +123 -0
- package/lib/crypto/md5.js.map +1 -0
- package/lib/errors/Errors.js +137 -0
- package/lib/errors/Errors.js.map +1 -0
- package/lib/fetch/dumpResponse.js +1 -1
- package/lib/fetch/dumpResponse.js.map +1 -1
- package/lib/http/HttpStatus.js +85 -0
- package/lib/http/HttpStatus.js.map +1 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/logging/createLogger.js.map +1 -1
- package/lib/server.js +0 -3
- package/lib/server.js.map +1 -1
- package/package.json +21 -7
- package/server/jsdom.ts +1 -0
- package/server/node-fetch.ts +1 -0
- package/server/ws.ts +1 -0
- package/src/asyncs/createAsyncIterator.ts +10 -7
- package/src/asyncs/createLazyPromise.test.ts +9 -8
- package/src/asyncs/createLazyPromise.ts +1 -1
- package/src/crypto/md5.bench.ts +31 -0
- package/src/crypto/md5.test.ts +8 -0
- package/src/errors/Errors.ts +199 -0
- package/src/fetch/dumpResponse.ts +3 -3
- package/src/http/HttpStatus.ts +96 -0
- package/src/index.ts +10 -1
- package/src/logging/createLogger.ts +9 -0
- package/src/server.ts +0 -3
- package/src/servers/jsdom.ts +1 -0
- package/src/servers/node-fetch.ts +2 -0
- package/src/servers/ws.ts +1 -0
- package/src/types/global.d.ts +11 -0
- package/src/types/index.d.ts +8 -0
- package/types.d.ts +1 -0
- package/lib/servers/polyfill/polyfillBrowser.js +0 -12
- package/lib/servers/polyfill/polyfillBrowser.js.map +0 -1
- package/lib/servers/polyfill/polyfillFetch.js +0 -24
- package/lib/servers/polyfill/polyfillFetch.js.map +0 -1
- package/lib/servers/polyfill/polyfillJsDom.js +0 -57
- package/lib/servers/polyfill/polyfillJsDom.js.map +0 -1
- package/lib/servers/polyfill/polyfillWebSocket.js +0 -16
- package/lib/servers/polyfill/polyfillWebSocket.js.map +0 -1
package/dist/system/server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["./getGlobalThis-8951eb0e.js","node:crypto","node:fs","node:path","node:url"],function(
|
|
1
|
+
System.register(["./getGlobalThis-8951eb0e.js","node:crypto","node:fs","node:path","node:url"],function(P,m){"use strict";var g,w,x,h,b;return{setters:[function(o){g=o.g},function(o){w=o.createHash},function(o){x=o.default},function(o){h=o.default},function(o){b=o.fileURLToPath}],execute:function(){P({createFetchWithProxyByUndici:R,createFetchWithRetry:v,getPackageDir:k,md5:F,polyfillCrypto:o});async function o(){const t=g();return"crypto"in t?!1:(t.crypto=(await m.import("node:crypto")).webcrypto,!0)}function R({proxy:t,token:p,fetch:u,undici:a}={}){if(!t)return u||globalThis.fetch;let f;return async(...d)=>{const s=d[1]||={};{const n=s.body;typeof n=="object"&&n&&(n instanceof ReadableStream||Symbol.asyncIterator in n)&&(s.duplex||="half")}if(!f){let n=t,y=p;{let c;try{c=new URL(t)}catch{}!y&&c&&(c.username||c.password)&&(y=`Basic ${btoa(`${c.username||""}:${c.password}`)}`,c.username="",c.password="",n=c.toString())}a||=m.import("undici");const l=await a,r=l.ProxyAgent;u||=l.fetch,f=new r({uri:n,token:y})}return s.dispatcher=f,await u(...d)}}const S=P("createFetchWithProxy",R);function v({fetch:t=g().fetch,retries:p=3,retryDelay:u=1e3,retryOn:a=[]}={}){return function(f,d){return new Promise(function(s,n){var y=function(r){var c=typeof Request<"u"&&f instanceof Request?f.clone():f;t(c,d).then(function(e){if(Array.isArray(a)&&a.indexOf(e.status)===-1)s(e);else if(typeof a=="function")try{return Promise.resolve(a(r,null,e)).then(function(i){i?l(r,null,e):s(e)}).catch(n)}catch(i){n(i)}else r<p?l(r,null,e):s(e)}).catch(function(e){if(typeof a=="function")try{Promise.resolve(a(r,e,null)).then(function(i){i?l(r,e,null):n(e)}).catch(function(i){n(i)})}catch(i){n(i)}else r<p?l(r,e,null):n(e)})};function l(r,c,e){let i=typeof u=="function"?u(r,c,e):u;setTimeout(function(){y(++r)},i)}y(0)})}}function F(t){return w("md5").update(t).digest("hex")}const T=b(m.meta.url),W=h.dirname(T);function k(t=W){for(;!x.existsSync(h.join(t,"package.json"));)if(t=h.resolve(t,".."),t==="/")return;return t}}}});
|
|
2
2
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sources":["../../src/servers/polyfill/polyfillCrypto.ts","../../src/servers/polyfill/polyfillJsDom.ts","../../src/servers/polyfill/polyfillFetch.ts","../../src/servers/polyfill/polyfillBrowser.ts","../../src/servers/polyfill/polyfillWebSocket.ts","../../src/servers/fetch/createFetchWithProxyByUndici.ts","../../src/servers/fetch/createFetchWithProxy.ts","../../src/servers/fetch/createFetchWithRetry.ts","../../src/servers/crypto/md5.ts","../../src/servers/getPackageDir.ts"],"sourcesContent":["import { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport async function polyfillCrypto() {\n const globalThis = getGlobalThis();\n if ('crypto' in globalThis) {\n return false;\n }\n (globalThis as any).crypto = (await import('node:crypto')).webcrypto as Crypto;\n return true;\n}\n","import type { ConstructorOptions, ResourceLoaderConstructorOptions } from 'jsdom';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport async function polyfillJsDom() {\n if (typeof window !== 'undefined') {\n return false;\n }\n\n const globalThis = getGlobalThis();\n\n const { ResourceLoader, JSDOM } = await import('jsdom');\n\n // https://github.com/lukechilds/window/blob/master/src/index.js\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class Window {\n constructor(opts: ResourceLoaderConstructorOptions & ConstructorOptions = {}) {\n const { proxy, strictSSL, userAgent, ...jsdomOpts } = opts;\n const resources = new ResourceLoader({\n proxy,\n strictSSL,\n userAgent,\n });\n return new JSDOM(\n '',\n Object.assign(jsdomOpts, {\n resources,\n }),\n ).window;\n }\n }\n\n // https://github.com/lukechilds/browser-env/blob/master/src/index.js\n // Default jsdom config.\n // These settings must override any custom settings to make sure we can iterate\n // over the window object.\n const defaultJsdomConfig = {\n // features: {\n // FetchExternalResources: false,\n // ProcessExternalResources: false,\n // },\n };\n // IIFE executed on import to return an array of global Node.js properties that\n // conflict with global browser properties.\n const protectedProperties = (() =>\n Object.getOwnPropertyNames(new Window(defaultJsdomConfig)).filter(\n (prop) => typeof globalThis[prop as keyof typeof globalThis] !== 'undefined',\n ))();\n\n function installEnv(...args: any[]) {\n // Sets up global browser environment\n // Extract options from args\n const properties = args.filter((arg: any) => Array.isArray(arg))[0];\n const userJsdomConfig = args.filter((arg: any) => !Array.isArray(arg))[0];\n\n // Create window object\n const window = new Window(Object.assign({}, userJsdomConfig, defaultJsdomConfig));\n\n // Get all global browser properties\n Object.getOwnPropertyNames(window)\n\n // Remove protected properties\n .filter((prop) => !protectedProperties.includes(prop))\n\n // If we're only applying specific required properties remove everything else\n .filter((prop) => !(properties && properties.indexOf(prop) === -1))\n .filter((prop) => {\n switch (prop) {\n case 'undefined':\n return false;\n }\n return true;\n })\n\n // Copy what's left to the Node.js global scope\n .forEach((prop) => {\n // console.debug(`define globalThis.${prop}`);\n Object.defineProperty(globalThis, prop, {\n configurable: true,\n get: () => window[prop as keyof Window] as any,\n });\n });\n\n return window;\n }\n\n installEnv({ url: 'http://localhost' });\n return true;\n}\n","import type { MaybePromise } from '../../asyncs/MaybePromise';\n\nexport function polyfillFetch(nodeFetch: typeof import('node-fetch')): boolean;\nexport function polyfillFetch(nodeFetch?: undefined): Promise<boolean>;\nexport function polyfillFetch(nodeFetch?: typeof import('node-fetch')): MaybePromise<boolean> {\n if ('fetch' in globalThis) {\n return false;\n }\n // sync mode\n if (nodeFetch) {\n const { default: fetch, Response, Headers, Request, AbortError, FetchError, FormData, Blob, File } = nodeFetch;\n Object.assign(globalThis, {\n fetch,\n Response,\n Headers,\n Request,\n AbortError,\n FetchError,\n FormData,\n Blob,\n File,\n });\n // abort controller\n return true;\n }\n return import('node-fetch').then((v) => polyfillFetch(v));\n}\n","import { polyfillCrypto } from './polyfillCrypto';\nimport { polyfillFetch } from './polyfillFetch';\nimport { polyfillJsDom } from './polyfillJsDom';\n\n/**\n * Polyfills the browser environment with the necessary APIs for the server.\n * Currently, this includes:\n * - `window`\n * - `document`\n * - `fetch`\n * - `crypto`\n */\nexport async function polyfillBrowser() {\n await polyfillCrypto();\n await polyfillFetch();\n await polyfillJsDom();\n}\n","import type { MaybePromise } from '../../asyncs/MaybePromise';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport function polyfillWebSocket(ws: any): boolean;\nexport function polyfillWebSocket(ws?: undefined): Promise<boolean>;\nexport function polyfillWebSocket(ws?: any): MaybePromise<boolean> {\n const globalThis = getGlobalThis();\n if ('WebSocket' in globalThis) {\n return false;\n }\n if (ws) {\n const { WebSocket } = ws;\n Object.assign(globalThis, { WebSocket });\n }\n return import('ws').then((ws) => polyfillWebSocket(ws));\n}\n","import { MaybePromise } from '../../asyncs/MaybePromise';\nimport { FetchLike } from '../../fetch';\n\nexport function createFetchWithProxyByUndici({\n proxy,\n token: _token,\n fetch,\n undici,\n}: {\n proxy?: string;\n token?: string;\n fetch?: FetchLike;\n undici?: MaybePromise<{ fetch: any; ProxyAgent: any }>;\n} = {}): FetchLike {\n if (!proxy) {\n return fetch || globalThis.fetch;\n }\n let agent: any;\n // https://github.com/nodejs/undici/blob/main/docs/best-practices/proxy.md\n return async (...args) => {\n const init = (args[1] ||= {}) as RequestInit & {\n duplex?: string;\n dispatcher?: any;\n };\n {\n const body = init.body;\n if (typeof body === 'object' && body && (body instanceof ReadableStream || Symbol.asyncIterator in body)) {\n // request.duplex must be set if request.body is ReadableStream or Async Iterables\n init.duplex ||= 'half';\n }\n }\n if (!agent) {\n let uri = proxy;\n let token = _token;\n {\n let u: URL | undefined;\n try {\n u = new URL(proxy);\n } catch (e) {}\n if (!token && u && (u.username || u.password)) {\n token = `Basic ${btoa(`${u.username || ''}:${u.password}`)}`;\n u.username = '';\n u.password = '';\n uri = u.toString();\n }\n }\n // if in next use 'next/dist/compiled/undici'\n undici ||= import('undici');\n const mod = await undici;\n const ProxyAgent = mod.ProxyAgent as new (_: any) => any;\n fetch ||= mod.fetch as FetchLike;\n // https://github.com/nodejs/undici/blob/main/docs/api/ProxyAgent.md\n agent = new ProxyAgent({\n uri,\n token,\n });\n // https://github.com/nodejs/node/issues/43187#issuecomment-1134634174\n // (global as any)[Symbol.for('undici.globalDispatcher.1')] = agent;\n // fixme should unwrap error https://github.com/nodejs/undici/issues/1248\n }\n init.dispatcher = agent;\n return await fetch!(...args);\n };\n}\n","import { createFetchWithProxyByUndici } from './createFetchWithProxyByUndici';\n\nexport const createFetchWithProxy = createFetchWithProxyByUndici;\n","import { FetchLike } from '../../fetch';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\ntype RequestDelayFunction = (attempt: number, error: Error | null, response: Response | null) => number;\ntype RequestRetryOnFunction = (\n attempt: number,\n error: Error | null,\n response: Response | null,\n) => boolean | Promise<boolean>;\n\nexport interface FetchWithRetryOptions {\n fetch?: FetchLike;\n retries?: number;\n retryDelay?: number | RequestDelayFunction;\n retryOn?: number[] | RequestRetryOnFunction;\n}\n\nexport function createFetchWithRetry({\n fetch = getGlobalThis().fetch,\n retries = 3,\n retryDelay = 1000,\n retryOn = [],\n}: FetchWithRetryOptions = {}): FetchLike {\n // https://github.com/jonbern/fetch-retry/blob/master/index.js\n\n return function fetchRetry(input: string | Request, init?: RequestInit) {\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt: number) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input = typeof Request !== 'undefined' && input instanceof Request ? input.clone() : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n })\n .catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n return;\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function (error) {\n reject(error);\n });\n } catch (error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt: number, error: any, response: Response | null) {\n let delay = typeof retryDelay === 'function' ? retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n}\n","import { createHash } from 'node:crypto';\n\nexport function md5(input: Buffer | string) {\n return createHash('md5').update(input).digest('hex') as string;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport function getPackageDir(currentDir: string = __dirname) {\n while (!fs.existsSync(path.join(currentDir, 'package.json'))) {\n currentDir = path.resolve(currentDir, '..');\n if (currentDir === '/') {\n return undefined;\n }\n }\n return currentDir;\n}\n"],"names":["polyfillCrypto","globalThis","getGlobalThis","module","polyfillJsDom","ResourceLoader","JSDOM","Window","opts","proxy","strictSSL","userAgent","jsdomOpts","resources","defaultJsdomConfig","protectedProperties","prop","installEnv","args","properties","arg","userJsdomConfig","window","polyfillFetch","nodeFetch","fetch","Response","Headers","Request","AbortError","FetchError","FormData","Blob","File","v","polyfillBrowser","polyfillWebSocket","ws","WebSocket","createFetchWithProxyByUndici","_token","undici","agent","init","body","uri","token","u","mod","ProxyAgent","createFetchWithProxy","createFetchWithRetry","retries","retryDelay","retryOn","input","resolve","reject","wrappedFetch","attempt","_input","response","retryOnResponse","retry","error","delay","md5","createHash","__filename","fileURLToPath","__dirname","path","getPackageDir","currentDir","fs"],"mappings":"ocAEA,CAAsBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CACrC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAc,CAAA,CAAA,CACjC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYD,EACP,CAERA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAa,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpD,CACT,CAAA,CAAA,CCNA,CAAsBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CACpC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,OAAW,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAGT,CAAMH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAc,CAAA,CAAA,CAE3B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAG,EAAgB,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAItD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAO,CACX,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8D,CAAI,CAAA,CAAA,CAC5E,KAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,EAAO,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAGC,CAAAA,CAAAA,CAAU,EAAIJ,CAChDK,CAAAA,CAAAA,CAAY,CAAIR,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAI,EACA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACF,CAAC,CAAA,CACD,OAAO,CAAIL,CAAAA,CAAAA,CAAAA,CAAAA,CACT,GACA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOM,EAAW,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CACF,CAAC,CACH,CAAA,CAAE,MACJ,CACF,CAMA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,GAQrBC,GAAuB,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIR,CAAOO,CAAAA,CAAkB,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxDE,GAAS,CAAOf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWe,CAA+B,CAAM,CAAA,CAAA,CAAA,CACnE,CAAG,CAAA,CAAA,CAAA,CAEL,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,EAAa,CAGlC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAaD,CAAAA,CAAAA,CAAK,CAAQE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,MAAM,CAAQA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAC,CAAA,CAC5DC,EAAkBH,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQE,GAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQA,CAAG,CAAC,CAAE,CAAA,CAAC,CAGlEE,CAAAA,CAAAA,CAAS,IAAIf,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIc,CAAAA,CAAAA,CAAiBP,CAAkB,CAAC,CAAA,CAGhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAoBQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAG9B,CAAQN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAACD,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAI,CAAC,CAAA,CAGpD,CAAQA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAEG,CAAAA,CAAAA,CAAAA,CAAcA,EAAW,CAAQH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CACjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,GAAS,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,CACN,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,MAAO,CACX,CAAA,CACA,MAAO,CACT,CAAA,CAAC,EAGA,CAASA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAef,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYe,EAAM,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAMM,CAAAA,CAAAA,CAAAA,CAAAA,CAAON,CAAoB,CACxC,CAAC,CACH,CAAC,CAEIM,CAAAA,CACT,CAEA,CAAAL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAC/B,CAAA,CAAA,CACT,CCnFO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASM,CAAcC,CAAAA,CAAAA,CAAgE,CAC5F,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAGT,CAAA,CAAA,CAAA,CAAA,CAAIA,EAAW,CACb,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,EAAU,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,QAAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,EAAY,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,KAAAC,CAAK,CAAA,CAAIT,CACrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,WAAY,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,EACA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA,WAAAC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,EACA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CACF,CAAC,CAEM,CAAA,CAAA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO9B,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+B,CAAMX,CAAAA,CAAAA,CAAAA,CAAcW,CAAC,CAAC,CAC1D,gBCdsBC,GAAkB,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMnC,EAAe,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMuB,CAAc,CAAA,CAAA,CACpB,CAAMnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACR,CAAA,UCXgBgC,CAAkBC,CAAAA,CAAAA,CAAiC,CACjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMpC,EAAaC,CACnB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAeD,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAET,CAAIoC,CAAAA,CAAAA,CAAAA,CAAI,CACN,CAAM,CAAA,CAAA,CAAA,CAAA,CAAE,UAAAC,CAAU,CAAA,CAAID,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAOpC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAE,CAAAqC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAC,CACzC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOnC,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkC,CAAOD,CAAAA,CAAAA,CAAAA,CAAkBC,CAAE,CAAC,CACxD,CCZO,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA6B,CAC3C,CAAA9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA,CAAO+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAAf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA,OAAAgB,CACF,CAAA,CAKI,CAAA,CAAA,CAAe,CACjB,CAAA,CAAA,CAAI,CAAChC,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOgB,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIiB,EAEJ,CAAiBxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAS,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMyB,EAAQzB,CAAK,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAI1B,CAAA,CACE,MAAM0B,CAAOD,CAAAA,CAAAA,CAAK,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYA,IAASA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBA,CAEjGD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,SAAW,CAEpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,GAAI,CAACD,CAAAA,CAAO,CACV,CAAIG,CAAAA,CAAAA,CAAAA,CAAAA,CAAMpC,CACNqC,CAAAA,CAAAA,CAAQN,CACZ,CAAA,CACE,IAAIO,CACJ,CAAA,CAAA,CAAA,CAAI,CACFA,CAAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAItC,CAAK,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CACR,CAAA,CAACqC,CAAAA,CAAAA,CAASC,IAAMA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYA,EAAE,CAClCD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,SAAS,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAIA,EAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,CAAA,CAC1DA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,GACbA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CACbF,CAAAA,CAAAA,CAAAA,CAAME,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEZ,EAAA,CAEAN,CAAAA,CAAAA,CAAAA,CAAWtC,EAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAC1B,CAAM6C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAMP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZQ,CAAaD,CAAAA,CAAAA,CAAI,WACvBvB,CAAUuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAEdN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAIO,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACrB,CAAAJ,CAAAA,CAAAA,CAAAA,CAAAA,CACA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACF,CAAC,CAIH,CACA,CAAAH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,WAAaD,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMjB,EAAO,CAAGP,CAAAA,CAAAA,CAAI,CAC7B,CACF,CC7DO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMgC,EAAuBX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CCepB,CAAAY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CACnC,CAAA1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQvB,CAAc,CAAA,CAAA,CAAE,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAkD,EAAU,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,EAAa,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,EAAU,CACZ,CAAA,CAA2B,CAAA,CAAA,CAAe,CAAA,CAGxC,OAAO,CAAoBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyBZ,CAAoB,CAAA,CACtE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAUa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAQ,CAAA,CAC5C,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,SAAUC,CAAiB,CAAA,CAG5C,IAAIC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAY,CAAeL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAUA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIA,EAC1F9B,CAAMmC,CAAAA,CAAAA,CAAQjB,CAAI,CAAA,CACf,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUkB,EAAU,CACxB,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQP,CAAO,CAAA,CAAA,CAAKA,EAAQ,CAAQO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,MAAM,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CACjEL,EAAQK,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACP,CAAOP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CACF,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAQA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQK,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAQ,CAAC,CAAA,CACpD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUC,CAAiB,CAAA,CAC3BA,EACFC,CAAMJ,CAAAA,CAAAA,CAAS,KAAME,CAAQ,CAAA,CAE7BL,EAAQK,CAAQ,CAEpB,CAAC,CAAA,CACA,CAAMJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACjB,CAASO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACdP,CAAAA,CAAOO,CAAK,CACd,MAEIL,CAAUP,CAAAA,CAAAA,CACZW,CAAMJ,CAAAA,CAAAA,CAAS,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAE7BL,CAAQK,CAAAA,CAAQ,CAItB,CAAC,CAAA,CACA,MAAM,CAAUG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACtB,CAAA,CAAA,CAAI,CAAOV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,WACrB,CAAI,CAAA,CAAA,CAEF,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,CAAQK,CAAAA,CAAAA,CAASK,EAAO,CAAI,CAAA,CAAA,CAAA,CAAC,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAUF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAC3BA,CACFC,CAAAA,CAAAA,CAAMJ,EAASK,CAAO,CAAA,CAAA,CAAA,CAAA,CAAI,EAE1BP,CAAOO,CAAAA,CAAK,CAEhB,CAAC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAUA,CAAO,CAAA,CACtBP,CAAOO,CAAAA,CAAK,CACd,CAAC,CACL,CAASA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACdP,CAAAA,CAAOO,CAAK,CACd,MACSL,CAAUP,CAAAA,CAAAA,CACnBW,EAAMJ,CAASK,CAAAA,CAAAA,CAAO,IAAI,CAE1BP,CAAAA,CAAAA,CAAOO,CAAK,CAEhB,CAAC,CACL,EAEA,CAASD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMJ,CAAiBK,CAAAA,CAAAA,CAAYH,CAA2B,CAAA,CACrE,IAAII,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOZ,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaA,CAAWM,CAAAA,CAAAA,CAASK,EAAOH,CAAQ,CAAA,CAAIR,EACtF,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CACrBK,CAAa,CAAA,CAAA,CAAEC,CAAO,CACxB,CAAGM,CAAAA,CAAK,CACV,CAEAP,CAAAA,CAAa,CAAC,CAChB,CAAC,CACH,CACF,CC5FgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAQ,CAAIX,CAAAA,CAAAA,CAAwB,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOY,EAAW,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,OAAOZ,CAAK,CAAA,CAAE,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CACrD,CCAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMa,CAAaC,CAAAA,CAAAA,CAAclE,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAC1CmE,CAAAA,CAAAA,CAAYC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQH,CAAU,CAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAcC,CAAAA,CAAAA,CAAqBH,CAAW,CAAA,CAC5D,KAAO,CAACI,CAAAA,CAAG,WAAWH,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKE,EAAY,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAEzD,CAAA,CAAA,CAAA,CAAA,CADAA,CAAaF,CAAAA,CAAAA,CAAK,QAAQE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAI,CACtCA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGJ,OAAOA,CACT;"}
|
|
1
|
+
{"version":3,"file":"server.js","sources":["../../src/servers/polyfill/polyfillCrypto.ts","../../src/servers/fetch/createFetchWithProxyByUndici.ts","../../src/servers/fetch/createFetchWithProxy.ts","../../src/servers/fetch/createFetchWithRetry.ts","../../src/servers/crypto/md5.ts","../../src/servers/getPackageDir.ts"],"sourcesContent":["import { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport async function polyfillCrypto() {\n const globalThis = getGlobalThis();\n if ('crypto' in globalThis) {\n return false;\n }\n (globalThis as any).crypto = (await import('node:crypto')).webcrypto as Crypto;\n return true;\n}\n","import { MaybePromise } from '../../asyncs/MaybePromise';\nimport { FetchLike } from '../../fetch';\n\nexport function createFetchWithProxyByUndici({\n proxy,\n token: _token,\n fetch,\n undici,\n}: {\n proxy?: string;\n token?: string;\n fetch?: FetchLike;\n undici?: MaybePromise<{ fetch: any; ProxyAgent: any }>;\n} = {}): FetchLike {\n if (!proxy) {\n return fetch || globalThis.fetch;\n }\n let agent: any;\n // https://github.com/nodejs/undici/blob/main/docs/best-practices/proxy.md\n return async (...args) => {\n const init = (args[1] ||= {}) as RequestInit & {\n duplex?: string;\n dispatcher?: any;\n };\n {\n const body = init.body;\n if (typeof body === 'object' && body && (body instanceof ReadableStream || Symbol.asyncIterator in body)) {\n // request.duplex must be set if request.body is ReadableStream or Async Iterables\n init.duplex ||= 'half';\n }\n }\n if (!agent) {\n let uri = proxy;\n let token = _token;\n {\n let u: URL | undefined;\n try {\n u = new URL(proxy);\n } catch (e) {}\n if (!token && u && (u.username || u.password)) {\n token = `Basic ${btoa(`${u.username || ''}:${u.password}`)}`;\n u.username = '';\n u.password = '';\n uri = u.toString();\n }\n }\n // if in next use 'next/dist/compiled/undici'\n undici ||= import('undici');\n const mod = await undici;\n const ProxyAgent = mod.ProxyAgent as new (_: any) => any;\n fetch ||= mod.fetch as FetchLike;\n // https://github.com/nodejs/undici/blob/main/docs/api/ProxyAgent.md\n agent = new ProxyAgent({\n uri,\n token,\n });\n // https://github.com/nodejs/node/issues/43187#issuecomment-1134634174\n // (global as any)[Symbol.for('undici.globalDispatcher.1')] = agent;\n // fixme should unwrap error https://github.com/nodejs/undici/issues/1248\n }\n init.dispatcher = agent;\n return await fetch!(...args);\n };\n}\n","import { createFetchWithProxyByUndici } from './createFetchWithProxyByUndici';\n\nexport const createFetchWithProxy = createFetchWithProxyByUndici;\n","import { FetchLike } from '../../fetch';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\ntype RequestDelayFunction = (attempt: number, error: Error | null, response: Response | null) => number;\ntype RequestRetryOnFunction = (\n attempt: number,\n error: Error | null,\n response: Response | null,\n) => boolean | Promise<boolean>;\n\nexport interface FetchWithRetryOptions {\n fetch?: FetchLike;\n retries?: number;\n retryDelay?: number | RequestDelayFunction;\n retryOn?: number[] | RequestRetryOnFunction;\n}\n\nexport function createFetchWithRetry({\n fetch = getGlobalThis().fetch,\n retries = 3,\n retryDelay = 1000,\n retryOn = [],\n}: FetchWithRetryOptions = {}): FetchLike {\n // https://github.com/jonbern/fetch-retry/blob/master/index.js\n\n return function fetchRetry(input: string | Request, init?: RequestInit) {\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt: number) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input = typeof Request !== 'undefined' && input instanceof Request ? input.clone() : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n })\n .catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n return;\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function (error) {\n reject(error);\n });\n } catch (error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt: number, error: any, response: Response | null) {\n let delay = typeof retryDelay === 'function' ? retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n}\n","import { createHash } from 'node:crypto';\n\nexport function md5(input: Buffer | string) {\n return createHash('md5').update(input).digest('hex') as string;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport function getPackageDir(currentDir: string = __dirname) {\n while (!fs.existsSync(path.join(currentDir, 'package.json'))) {\n currentDir = path.resolve(currentDir, '..');\n if (currentDir === '/') {\n return undefined;\n }\n }\n return currentDir;\n}\n"],"names":["polyfillCrypto","globalThis","getGlobalThis","module","createFetchWithProxyByUndici","proxy","_token","fetch","undici","agent","args","init","body","uri","token","u","mod","ProxyAgent","createFetchWithProxy","createFetchWithRetry","retries","retryDelay","retryOn","input","resolve","reject","wrappedFetch","attempt","_input","response","retryOnResponse","retry","error","delay","md5","createHash","__filename","fileURLToPath","__dirname","path","getPackageDir","currentDir","fs"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAsyncIterator.js","sources":["../../src/asyncs/createAsyncIterator.ts"],"sourcesContent":["import { createLazyPromise, LazyPromise } from './createLazyPromise';\n\nexport function createAsyncIterator<T>(\n fn: (next: (val: [T | undefined, boolean] | undefined, err?: any) => void) => void,\n) {\n const values: Array<Promise<
|
|
1
|
+
{"version":3,"file":"createAsyncIterator.js","sources":["../../src/asyncs/createAsyncIterator.ts"],"sourcesContent":["import { type MaybePromise } from './MaybePromise';\nimport { createLazyPromise, type LazyPromise } from './createLazyPromise';\n\ntype Val<T> = [val: MaybePromise<T> | undefined, done: boolean, err?: any];\n\nexport function createAsyncIterator<T>(\n fn: (next: (val: [MaybePromise<T> | undefined, boolean] | undefined, err?: any) => void) => void,\n): AsyncGenerator<T, void, unknown> {\n const values: Array<Promise<Val<T>>> = [];\n let recv: (val: [MaybePromise<T> | undefined, boolean] | undefined, err?: any) => void;\n {\n let next: LazyPromise<Val<T>>;\n values.push((next = createLazyPromise()));\n recv = (val, err) => {\n if (err !== undefined) {\n next.resolve([undefined, true, err]);\n } else if (val !== undefined) {\n next.resolve(val);\n } else {\n return;\n }\n values.push((next = createLazyPromise()));\n };\n }\n\n fn(recv);\n\n return (async function* () {\n let value: Val<T>[0];\n let err: any;\n for (let i = 0, done = false; !done; i++) {\n let result = await values[i];\n delete values[i];\n [value, done, err] = result;\n if (err) {\n throw err;\n }\n if (value !== undefined) {\n yield value;\n }\n }\n })();\n}\n"],"names":[],"mappings":";;AAKO,SAAS,oBACd,EACkC,EAAA;AAClC,EAAA,MAAM,SAAiC,EAAC,CAAA;AACxC,EAAI,IAAA,IAAA,CAAA;AACJ,EAAA;AACE,IAAI,IAAA,IAAA,CAAA;AACJ,IAAO,MAAA,CAAA,IAAA,CAAM,IAAO,GAAA,iBAAA,EAAoB,CAAA,CAAA;AACxC,IAAO,IAAA,GAAA,CAAC,KAAK,GAAQ,KAAA;AACnB,MAAA,IAAI,QAAQ,KAAW,CAAA,EAAA;AACrB,QAAA,IAAA,CAAK,OAAQ,CAAA,CAAC,KAAW,CAAA,EAAA,IAAA,EAAM,GAAG,CAAC,CAAA,CAAA;AAAA,OACrC,MAAA,IAAW,QAAQ,KAAW,CAAA,EAAA;AAC5B,QAAA,IAAA,CAAK,QAAQ,GAAG,CAAA,CAAA;AAAA,OACX,MAAA;AACL,QAAA,OAAA;AAAA,OACF;AACA,MAAO,MAAA,CAAA,IAAA,CAAM,IAAO,GAAA,iBAAA,EAAoB,CAAA,CAAA;AAAA,KAC1C,CAAA;AAAA,GACF;AAEA,EAAA,EAAA,CAAG,IAAI,CAAA,CAAA;AAEP,EAAA,OAAQ,mBAAmB;AACzB,IAAI,IAAA,KAAA,CAAA;AACJ,IAAI,IAAA,GAAA,CAAA;AACJ,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,IAAA,GAAO,KAAO,EAAA,CAAC,MAAM,CAAK,EAAA,EAAA;AACxC,MAAI,IAAA,MAAA,GAAS,MAAM,MAAA,CAAO,CAAC,CAAA,CAAA;AAC3B,MAAA,OAAO,OAAO,CAAC,CAAA,CAAA;AACf,MAAC,CAAA,KAAA,EAAO,IAAM,EAAA,GAAG,CAAI,GAAA,MAAA,CAAA;AACrB,MAAA,IAAI,GAAK,EAAA;AACP,QAAM,MAAA,GAAA,CAAA;AAAA,OACR;AACA,MAAA,IAAI,UAAU,KAAW,CAAA,EAAA;AACvB,QAAM,MAAA,KAAA,CAAA;AAAA,OACR;AAAA,KACF;AAAA,GACC,EAAA,CAAA;AACL;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLazyPromise.js","sources":["../../src/asyncs/createLazyPromise.ts"],"sourcesContent":["import type { MaybePromise } from './MaybePromise';\nimport { isPromise } from './isPromise';\n\nexport type LazyPromise<T> = Promise<T> & {\n reject(reason?: any): void;\n resolve(v?:
|
|
1
|
+
{"version":3,"file":"createLazyPromise.js","sources":["../../src/asyncs/createLazyPromise.ts"],"sourcesContent":["import type { MaybePromise } from './MaybePromise';\nimport { isPromise } from './isPromise';\n\nexport type LazyPromise<T> = Promise<T> & {\n reject(reason?: any): void;\n resolve(v?: MaybePromise<T>): void;\n};\n\n/**\n * createLazyPromise return a promise that can be resolved or rejected manually.\n * if you pass a function to it, it will be executed when the promise try to resolve.\n */\nexport function createLazyPromise<T = any>(\n executor?:\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => void)\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => MaybePromise<T>),\n): LazyPromise<T> {\n const holder = {\n resolve(_: any): void {\n throw new Error('pending resolve');\n },\n reject(_: any): void {\n throw new Error('pending reject');\n },\n };\n const future = Object.assign(\n new Promise<T>((resolve, reject) => {\n holder.reject = reject;\n holder.resolve = resolve;\n }),\n {\n resolve(v: any) {\n holder.resolve(v);\n },\n reject(v: any) {\n holder.resolve(v);\n },\n },\n );\n if (executor) {\n const r = holder.resolve;\n let shouldExec = true;\n holder.resolve = (v: any) => {\n shouldExec = false;\n r(v);\n };\n const then = future.then.bind(future);\n future.then = (...args) => {\n if (shouldExec) {\n shouldExec = false;\n try {\n // kind of bad\n const result = executor(holder.resolve, holder.reject);\n // ensure resolve/reject is called\n if (isPromise(result)) {\n result.then(holder.resolve, holder.reject);\n } else if (result !== undefined) {\n holder.resolve(result);\n }\n } catch (e) {\n holder.reject(e);\n }\n }\n return then(...args);\n };\n const like = holder as LazyPromise<T>;\n like.then = future.then;\n like.catch = future.catch.bind(future);\n if (future.finally) like.finally = future.finally;\n\n void Object.defineProperty(like, Symbol.species, {\n get() {\n return Promise;\n },\n });\n return like;\n }\n return future;\n}\n"],"names":[],"mappings":";;AAYO,SAAS,kBACd,QAGgB,EAAA;AAChB,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,QAAQ,CAAc,EAAA;AACpB,MAAM,MAAA,IAAI,MAAM,iBAAiB,CAAA,CAAA;AAAA,KACnC;AAAA,IACA,OAAO,CAAc,EAAA;AACnB,MAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,KAClC;AAAA,GACF,CAAA;AACA,EAAA,MAAM,SAAS,MAAO,CAAA,MAAA;AAAA,IACpB,IAAI,OAAA,CAAW,CAAC,OAAA,EAAS,MAAW,KAAA;AAClC,MAAA,MAAA,CAAO,MAAS,GAAA,MAAA,CAAA;AAChB,MAAA,MAAA,CAAO,OAAU,GAAA,OAAA,CAAA;AAAA,KAClB,CAAA;AAAA,IACD;AAAA,MACE,QAAQ,CAAQ,EAAA;AACd,QAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAA;AAAA,OAClB;AAAA,MACA,OAAO,CAAQ,EAAA;AACb,QAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAA;AAAA,OAClB;AAAA,KACF;AAAA,GACF,CAAA;AACA,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,IAAI,MAAO,CAAA,OAAA,CAAA;AACjB,IAAA,IAAI,UAAa,GAAA,IAAA,CAAA;AACjB,IAAO,MAAA,CAAA,OAAA,GAAU,CAAC,CAAW,KAAA;AAC3B,MAAa,UAAA,GAAA,KAAA,CAAA;AACb,MAAA,CAAA,CAAE,CAAC,CAAA,CAAA;AAAA,KACL,CAAA;AACA,IAAA,MAAM,IAAO,GAAA,MAAA,CAAO,IAAK,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AACpC,IAAO,MAAA,CAAA,IAAA,GAAO,IAAI,IAAS,KAAA;AACzB,MAAA,IAAI,UAAY,EAAA;AACd,QAAa,UAAA,GAAA,KAAA,CAAA;AACb,QAAI,IAAA;AAEF,UAAA,MAAM,MAAS,GAAA,QAAA,CAAS,MAAO,CAAA,OAAA,EAAS,OAAO,MAAM,CAAA,CAAA;AAErD,UAAI,IAAA,SAAA,CAAU,MAAM,CAAG,EAAA;AACrB,YAAA,MAAA,CAAO,IAAK,CAAA,MAAA,CAAO,OAAS,EAAA,MAAA,CAAO,MAAM,CAAA,CAAA;AAAA,WAC3C,MAAA,IAAW,WAAW,KAAW,CAAA,EAAA;AAC/B,YAAA,MAAA,CAAO,QAAQ,MAAM,CAAA,CAAA;AAAA,WACvB;AAAA,iBACO,CAAG,EAAA;AACV,UAAA,MAAA,CAAO,OAAO,CAAC,CAAA,CAAA;AAAA,SACjB;AAAA,OACF;AACA,MAAO,OAAA,IAAA,CAAK,GAAG,IAAI,CAAA,CAAA;AAAA,KACrB,CAAA;AACA,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAA,IAAA,CAAK,OAAO,MAAO,CAAA,IAAA,CAAA;AACnB,IAAA,IAAA,CAAK,KAAQ,GAAA,MAAA,CAAO,KAAM,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AACrC,IAAA,IAAI,MAAO,CAAA,OAAA;AAAS,MAAA,IAAA,CAAK,UAAU,MAAO,CAAA,OAAA,CAAA;AAE1C,IAAA,KAAK,MAAO,CAAA,cAAA,CAAe,IAAM,EAAA,MAAA,CAAO,OAAS,EAAA;AAAA,MAC/C,GAAM,GAAA;AACJ,QAAO,OAAA,OAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA,CAAA;AACD,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
function md5(inputString) {
|
|
2
|
+
var hc = "0123456789abcdef";
|
|
3
|
+
function rh(n) {
|
|
4
|
+
var j, s = "";
|
|
5
|
+
for (j = 0; j <= 3; j++)
|
|
6
|
+
s += hc.charAt(n >> j * 8 + 4 & 15) + hc.charAt(n >> j * 8 & 15);
|
|
7
|
+
return s;
|
|
8
|
+
}
|
|
9
|
+
function ad(x2, y) {
|
|
10
|
+
var l = (x2 & 65535) + (y & 65535);
|
|
11
|
+
var m = (x2 >> 16) + (y >> 16) + (l >> 16);
|
|
12
|
+
return m << 16 | l & 65535;
|
|
13
|
+
}
|
|
14
|
+
function rl(n, c2) {
|
|
15
|
+
return n << c2 | n >>> 32 - c2;
|
|
16
|
+
}
|
|
17
|
+
function cm(q, a2, b2, x2, s, t) {
|
|
18
|
+
return ad(rl(ad(ad(a2, q), ad(x2, t)), s), b2);
|
|
19
|
+
}
|
|
20
|
+
function ff(a2, b2, c2, d2, x2, s, t) {
|
|
21
|
+
return cm(b2 & c2 | ~b2 & d2, a2, b2, x2, s, t);
|
|
22
|
+
}
|
|
23
|
+
function gg(a2, b2, c2, d2, x2, s, t) {
|
|
24
|
+
return cm(b2 & d2 | c2 & ~d2, a2, b2, x2, s, t);
|
|
25
|
+
}
|
|
26
|
+
function hh(a2, b2, c2, d2, x2, s, t) {
|
|
27
|
+
return cm(b2 ^ c2 ^ d2, a2, b2, x2, s, t);
|
|
28
|
+
}
|
|
29
|
+
function ii(a2, b2, c2, d2, x2, s, t) {
|
|
30
|
+
return cm(c2 ^ (b2 | ~d2), a2, b2, x2, s, t);
|
|
31
|
+
}
|
|
32
|
+
function sb(x2) {
|
|
33
|
+
var i2;
|
|
34
|
+
var nblk = (x2.length + 8 >> 6) + 1;
|
|
35
|
+
var blks = new Array(nblk * 16);
|
|
36
|
+
for (i2 = 0; i2 < nblk * 16; i2++)
|
|
37
|
+
blks[i2] = 0;
|
|
38
|
+
for (i2 = 0; i2 < x2.length; i2++)
|
|
39
|
+
blks[i2 >> 2] |= x2.charCodeAt(i2) << i2 % 4 * 8;
|
|
40
|
+
blks[i2 >> 2] |= 128 << i2 % 4 * 8;
|
|
41
|
+
blks[nblk * 16 - 2] = x2.length * 8;
|
|
42
|
+
return blks;
|
|
43
|
+
}
|
|
44
|
+
var i, x = sb("" + inputString), a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, olda, oldb, oldc, oldd;
|
|
45
|
+
for (i = 0; i < x.length; i += 16) {
|
|
46
|
+
olda = a;
|
|
47
|
+
oldb = b;
|
|
48
|
+
oldc = c;
|
|
49
|
+
oldd = d;
|
|
50
|
+
a = ff(a, b, c, d, x[i + 0], 7, -680876936);
|
|
51
|
+
d = ff(d, a, b, c, x[i + 1], 12, -389564586);
|
|
52
|
+
c = ff(c, d, a, b, x[i + 2], 17, 606105819);
|
|
53
|
+
b = ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
|
54
|
+
a = ff(a, b, c, d, x[i + 4], 7, -176418897);
|
|
55
|
+
d = ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
|
56
|
+
c = ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
|
57
|
+
b = ff(b, c, d, a, x[i + 7], 22, -45705983);
|
|
58
|
+
a = ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
|
59
|
+
d = ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
|
60
|
+
c = ff(c, d, a, b, x[i + 10], 17, -42063);
|
|
61
|
+
b = ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
|
62
|
+
a = ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
|
63
|
+
d = ff(d, a, b, c, x[i + 13], 12, -40341101);
|
|
64
|
+
c = ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
|
65
|
+
b = ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
|
66
|
+
a = gg(a, b, c, d, x[i + 1], 5, -165796510);
|
|
67
|
+
d = gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
|
68
|
+
c = gg(c, d, a, b, x[i + 11], 14, 643717713);
|
|
69
|
+
b = gg(b, c, d, a, x[i + 0], 20, -373897302);
|
|
70
|
+
a = gg(a, b, c, d, x[i + 5], 5, -701558691);
|
|
71
|
+
d = gg(d, a, b, c, x[i + 10], 9, 38016083);
|
|
72
|
+
c = gg(c, d, a, b, x[i + 15], 14, -660478335);
|
|
73
|
+
b = gg(b, c, d, a, x[i + 4], 20, -405537848);
|
|
74
|
+
a = gg(a, b, c, d, x[i + 9], 5, 568446438);
|
|
75
|
+
d = gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
|
76
|
+
c = gg(c, d, a, b, x[i + 3], 14, -187363961);
|
|
77
|
+
b = gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
|
78
|
+
a = gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
|
79
|
+
d = gg(d, a, b, c, x[i + 2], 9, -51403784);
|
|
80
|
+
c = gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
|
81
|
+
b = gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
|
82
|
+
a = hh(a, b, c, d, x[i + 5], 4, -378558);
|
|
83
|
+
d = hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
|
84
|
+
c = hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
|
85
|
+
b = hh(b, c, d, a, x[i + 14], 23, -35309556);
|
|
86
|
+
a = hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
|
87
|
+
d = hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
|
88
|
+
c = hh(c, d, a, b, x[i + 7], 16, -155497632);
|
|
89
|
+
b = hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
|
90
|
+
a = hh(a, b, c, d, x[i + 13], 4, 681279174);
|
|
91
|
+
d = hh(d, a, b, c, x[i + 0], 11, -358537222);
|
|
92
|
+
c = hh(c, d, a, b, x[i + 3], 16, -722521979);
|
|
93
|
+
b = hh(b, c, d, a, x[i + 6], 23, 76029189);
|
|
94
|
+
a = hh(a, b, c, d, x[i + 9], 4, -640364487);
|
|
95
|
+
d = hh(d, a, b, c, x[i + 12], 11, -421815835);
|
|
96
|
+
c = hh(c, d, a, b, x[i + 15], 16, 530742520);
|
|
97
|
+
b = hh(b, c, d, a, x[i + 2], 23, -995338651);
|
|
98
|
+
a = ii(a, b, c, d, x[i + 0], 6, -198630844);
|
|
99
|
+
d = ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
|
100
|
+
c = ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
|
101
|
+
b = ii(b, c, d, a, x[i + 5], 21, -57434055);
|
|
102
|
+
a = ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
|
103
|
+
d = ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
|
104
|
+
c = ii(c, d, a, b, x[i + 10], 15, -1051523);
|
|
105
|
+
b = ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
|
106
|
+
a = ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
|
107
|
+
d = ii(d, a, b, c, x[i + 15], 10, -30611744);
|
|
108
|
+
c = ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
|
109
|
+
b = ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
|
110
|
+
a = ii(a, b, c, d, x[i + 4], 6, -145523070);
|
|
111
|
+
d = ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
|
112
|
+
c = ii(c, d, a, b, x[i + 2], 15, 718787259);
|
|
113
|
+
b = ii(b, c, d, a, x[i + 9], 21, -343485551);
|
|
114
|
+
a = ad(a, olda);
|
|
115
|
+
b = ad(b, oldb);
|
|
116
|
+
c = ad(c, oldc);
|
|
117
|
+
d = ad(d, oldd);
|
|
118
|
+
}
|
|
119
|
+
return rh(a) + rh(b) + rh(c) + rh(d);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export { md5 };
|
|
123
|
+
//# sourceMappingURL=md5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"md5.js","sources":["../../src/crypto/md5.js"],"sourcesContent":["// prettier-ignore\nexport function md5(inputString) {\n // https://stackoverflow.com/a/60467595/1870054\n var hc=\"0123456789abcdef\";\n function rh(n) {var j,s=\"\";for(j=0;j<=3;j++) s+=hc.charAt((n>>(j*8+4))&0x0F)+hc.charAt((n>>(j*8))&0x0F);return s;}\n function ad(x,y) {var l=(x&0xFFFF)+(y&0xFFFF);var m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF);}\n function rl(n,c) {return (n<<c)|(n>>>(32-c));}\n function cm(q,a,b,x,s,t) {return ad(rl(ad(ad(a,q),ad(x,t)),s),b);}\n function ff(a,b,c,d,x,s,t) {return cm((b&c)|((~b)&d),a,b,x,s,t);}\n function gg(a,b,c,d,x,s,t) {return cm((b&d)|(c&(~d)),a,b,x,s,t);}\n function hh(a,b,c,d,x,s,t) {return cm(b^c^d,a,b,x,s,t);}\n function ii(a,b,c,d,x,s,t) {return cm(c^(b|(~d)),a,b,x,s,t);}\n function sb(x) {\n var i;var nblk=((x.length+8)>>6)+1;var blks=new Array(nblk*16);for(i=0;i<nblk*16;i++) blks[i]=0;\n for(i=0;i<x.length;i++) blks[i>>2]|=x.charCodeAt(i)<<((i%4)*8);\n blks[i>>2]|=0x80<<((i%4)*8);blks[nblk*16-2]=x.length*8;return blks;\n }\n var i,x=sb(\"\"+inputString),a=1732584193,b=-271733879,c=-1732584194,d=271733878,olda,oldb,oldc,oldd;\n for(i=0;i<x.length;i+=16) {olda=a;oldb=b;oldc=c;oldd=d;\n a=ff(a,b,c,d,x[i+ 0], 7, -680876936);d=ff(d,a,b,c,x[i+ 1],12, -389564586);c=ff(c,d,a,b,x[i+ 2],17, 606105819);\n b=ff(b,c,d,a,x[i+ 3],22,-1044525330);a=ff(a,b,c,d,x[i+ 4], 7, -176418897);d=ff(d,a,b,c,x[i+ 5],12, 1200080426);\n c=ff(c,d,a,b,x[i+ 6],17,-1473231341);b=ff(b,c,d,a,x[i+ 7],22, -45705983);a=ff(a,b,c,d,x[i+ 8], 7, 1770035416);\n d=ff(d,a,b,c,x[i+ 9],12,-1958414417);c=ff(c,d,a,b,x[i+10],17, -42063);b=ff(b,c,d,a,x[i+11],22,-1990404162);\n a=ff(a,b,c,d,x[i+12], 7, 1804603682);d=ff(d,a,b,c,x[i+13],12, -40341101);c=ff(c,d,a,b,x[i+14],17,-1502002290);\n b=ff(b,c,d,a,x[i+15],22, 1236535329);a=gg(a,b,c,d,x[i+ 1], 5, -165796510);d=gg(d,a,b,c,x[i+ 6], 9,-1069501632);\n c=gg(c,d,a,b,x[i+11],14, 643717713);b=gg(b,c,d,a,x[i+ 0],20, -373897302);a=gg(a,b,c,d,x[i+ 5], 5, -701558691);\n d=gg(d,a,b,c,x[i+10], 9, 38016083);c=gg(c,d,a,b,x[i+15],14, -660478335);b=gg(b,c,d,a,x[i+ 4],20, -405537848);\n a=gg(a,b,c,d,x[i+ 9], 5, 568446438);d=gg(d,a,b,c,x[i+14], 9,-1019803690);c=gg(c,d,a,b,x[i+ 3],14, -187363961);\n b=gg(b,c,d,a,x[i+ 8],20, 1163531501);a=gg(a,b,c,d,x[i+13], 5,-1444681467);d=gg(d,a,b,c,x[i+ 2], 9, -51403784);\n c=gg(c,d,a,b,x[i+ 7],14, 1735328473);b=gg(b,c,d,a,x[i+12],20,-1926607734);a=hh(a,b,c,d,x[i+ 5], 4, -378558);\n d=hh(d,a,b,c,x[i+ 8],11,-2022574463);c=hh(c,d,a,b,x[i+11],16, 1839030562);b=hh(b,c,d,a,x[i+14],23, -35309556);\n a=hh(a,b,c,d,x[i+ 1], 4,-1530992060);d=hh(d,a,b,c,x[i+ 4],11, 1272893353);c=hh(c,d,a,b,x[i+ 7],16, -155497632);\n b=hh(b,c,d,a,x[i+10],23,-1094730640);a=hh(a,b,c,d,x[i+13], 4, 681279174);d=hh(d,a,b,c,x[i+ 0],11, -358537222);\n c=hh(c,d,a,b,x[i+ 3],16, -722521979);b=hh(b,c,d,a,x[i+ 6],23, 76029189);a=hh(a,b,c,d,x[i+ 9], 4, -640364487);\n d=hh(d,a,b,c,x[i+12],11, -421815835);c=hh(c,d,a,b,x[i+15],16, 530742520);b=hh(b,c,d,a,x[i+ 2],23, -995338651);\n a=ii(a,b,c,d,x[i+ 0], 6, -198630844);d=ii(d,a,b,c,x[i+ 7],10, 1126891415);c=ii(c,d,a,b,x[i+14],15,-1416354905);\n b=ii(b,c,d,a,x[i+ 5],21, -57434055);a=ii(a,b,c,d,x[i+12], 6, 1700485571);d=ii(d,a,b,c,x[i+ 3],10,-1894986606);\n c=ii(c,d,a,b,x[i+10],15, -1051523);b=ii(b,c,d,a,x[i+ 1],21,-2054922799);a=ii(a,b,c,d,x[i+ 8], 6, 1873313359);\n d=ii(d,a,b,c,x[i+15],10, -30611744);c=ii(c,d,a,b,x[i+ 6],15,-1560198380);b=ii(b,c,d,a,x[i+13],21, 1309151649);\n a=ii(a,b,c,d,x[i+ 4], 6, -145523070);d=ii(d,a,b,c,x[i+11],10,-1120210379);c=ii(c,d,a,b,x[i+ 2],15, 718787259);\n b=ii(b,c,d,a,x[i+ 9],21, -343485551);a=ad(a,olda);b=ad(b,oldb);c=ad(c,oldc);d=ad(d,oldd);\n }\n return rh(a)+rh(b)+rh(c)+rh(d);\n}\n"],"names":["x","c","a","b","d","i"],"mappings":"AACO,SAAS,IAAI,WAAa,EAAA;AAE/B,EAAA,IAAI,EAAG,GAAA,kBAAA,CAAA;AACP,EAAA,SAAS,GAAG,CAAG,EAAA;AAAC,IAAA,IAAI,GAAE,CAAE,GAAA,EAAA,CAAA;AAAG,IAAI,KAAA,CAAA,GAAE,CAAE,EAAA,CAAA,IAAG,CAAE,EAAA,CAAA,EAAA;AAAK,MAAA,CAAA,IAAG,EAAG,CAAA,MAAA,CAAQ,CAAI,IAAA,CAAA,GAAE,CAAE,GAAA,CAAA,GAAI,EAAI,CAAA,GAAE,EAAG,CAAA,MAAA,CAAQ,CAAI,IAAA,CAAA,GAAE,IAAI,EAAI,CAAA,CAAA;AAAE,IAAO,OAAA,CAAA,CAAA;AAAA,GAAE;AACjH,EAAS,SAAA,EAAA,CAAGA,IAAE,CAAG,EAAA;AAAC,IAAI,IAAA,CAAA,GAAA,CAAGA,EAAE,GAAA,KAAA,KAAS,CAAE,GAAA,KAAA,CAAA,CAAA;AAAQ,IAAA,IAAI,CAAGA,GAAAA,CAAAA,EAAAA,IAAG,EAAK,KAAA,CAAA,IAAG,OAAK,CAAG,IAAA,EAAA,CAAA,CAAA;AAAI,IAAQ,OAAA,CAAA,IAAG,KAAK,CAAE,GAAA,KAAA,CAAA;AAAA,GAAQ;AACtG,EAAS,SAAA,EAAA,CAAG,GAAEC,EAAc,EAAA;AAAC,IAAQ,OAAA,CAAA,IAAGA,EAAI,GAAA,CAAA,KAAK,EAAGA,GAAAA,EAAAA,CAAAA;AAAA,GAAI;AACxD,EAAA,SAAS,GAAG,CAAEC,EAAAA,EAAAA,EAAEC,EAAEH,EAAAA,EAAAA,EAAE,GAAE,CAAM,EAAA;AAAC,IAAA,OAAO,EAAG,CAAA,EAAA,CAAG,EAAG,CAAA,EAAA,CAAGE,IAAE,CAAC,CAAA,EAAE,EAAGF,CAAAA,EAAAA,EAAE,CAAC,CAAC,CAAE,EAAA,CAAC,GAAEG,EAAC,CAAA,CAAA;AAAA,GAAE;AACpE,EAAA,SAAS,GAAGD,EAAEC,EAAAA,EAAAA,EAAEF,IAAEG,EAAEJ,EAAAA,EAAAA,EAAE,GAAE,CAAI,EAAA;AAAC,IAAO,OAAA,EAAA,CAAIG,EAAEF,GAAAA,EAAAA,GAAK,CAACE,EAAAA,GAAGC,IAAGF,EAAEC,EAAAA,EAAAA,EAAEH,EAAE,EAAA,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,GAAE;AACjE,EAAA,SAAS,GAAGE,EAAEC,EAAAA,EAAAA,EAAEF,IAAEG,EAAEJ,EAAAA,EAAAA,EAAE,GAAE,CAAI,EAAA;AAAC,IAAO,OAAA,EAAA,CAAIG,EAAEC,GAAAA,EAAAA,GAAIH,EAAG,GAAA,CAACG,IAAIF,EAAEC,EAAAA,EAAAA,EAAEH,EAAE,EAAA,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,GAAE;AACjE,EAAA,SAAS,GAAGE,EAAEC,EAAAA,EAAAA,EAAEF,IAAEG,EAAEJ,EAAAA,EAAAA,EAAE,GAAE,CAAI,EAAA;AAAC,IAAO,OAAA,EAAA,CAAGG,KAAEF,EAAEG,GAAAA,EAAAA,EAAEF,IAAEC,EAAEH,EAAAA,EAAAA,EAAE,GAAE,CAAC,CAAA,CAAA;AAAA,GAAE;AACxD,EAAA,SAAS,GAAGE,EAAEC,EAAAA,EAAAA,EAAEF,IAAEG,EAAEJ,EAAAA,EAAAA,EAAE,GAAE,CAAI,EAAA;AAAC,IAAO,OAAA,EAAA,CAAGC,MAAGE,EAAG,GAAA,CAACC,KAAIF,EAAEC,EAAAA,EAAAA,EAAEH,EAAE,EAAA,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,GAAE;AAC7D,EAAA,SAAS,GAAGA,EAAG,EAAA;AACb,IAAIK,IAAAA,EAAAA,CAAAA;AAAE,IAAA,IAAI,IAAOL,GAAAA,CAAAA,EAAAA,CAAE,MAAO,GAAA,CAAA,IAAI,CAAG,IAAA,CAAA,CAAA;AAAE,IAAA,IAAI,IAAK,GAAA,IAAI,KAAM,CAAA,IAAA,GAAK,EAAE,CAAA,CAAA;AAAE,IAAA,KAAIK,EAAE,GAAA,CAAA,EAAEA,EAAE,GAAA,IAAA,GAAK,EAAGA,EAAAA,EAAAA,EAAAA;AAAK,MAAA,IAAA,CAAKA,EAAC,CAAE,GAAA,CAAA,CAAA;AAC9F,IAAA,KAAIA,EAAE,GAAA,CAAA,EAAEA,EAAEL,GAAAA,EAAAA,CAAE,MAAOK,EAAAA,EAAAA,EAAAA;AAAK,MAAKA,IAAAA,CAAAA,EAAAA,IAAG,CAAC,CAAGL,IAAAA,EAAAA,CAAE,WAAWK,EAAC,CAAA,IAAKA,KAAE,CAAG,GAAA,CAAA,CAAA;AAC5D,IAAA,IAAA,CAAKA,EAAG,IAAA,CAAC,CAAG,IAAA,GAAA,IAAQA,KAAE,CAAG,GAAA,CAAA,CAAA;AAAG,IAAA,IAAA,CAAK,IAAK,GAAA,EAAA,GAAG,CAAC,CAAA,GAAEL,GAAE,MAAO,GAAA,CAAA,CAAA;AAAE,IAAO,OAAA,IAAA,CAAA;AAAA,GAChE;AACA,EAAA,IAAI,GAAE,CAAE,GAAA,EAAA,CAAG,EAAG,GAAA,WAAW,GAAE,CAAE,GAAA,UAAA,EAAW,CAAE,GAAA,CAAA,SAAA,EAAW,IAAE,CAAY,UAAA,EAAA,CAAA,GAAE,SAAU,EAAA,IAAA,EAAK,MAAK,IAAK,EAAA,IAAA,CAAA;AAC9F,EAAA,KAAI,IAAE,CAAE,EAAA,CAAA,GAAE,CAAE,CAAA,MAAA,EAAO,KAAG,EAAI,EAAA;AAAC,IAAK,IAAA,GAAA,CAAA,CAAA;AAAE,IAAK,IAAA,GAAA,CAAA,CAAA;AAAE,IAAK,IAAA,GAAA,CAAA,CAAA;AAAE,IAAK,IAAA,GAAA,CAAA,CAAA;AACnD,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAK,SAAS,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAK,CAAS,QAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,UAAU,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAQ,CAAM,KAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAG,EAAA,CAAA,EAAG,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAK,CAAS,QAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAE,CAAW,UAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAK,SAAS,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAU,SAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAG,EAAA,CAAA,EAAK,QAAQ,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAG,EAAA,CAAA,EAAE,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAG,EAAA,CAAA,EAAE,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAI,CAAS,QAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAM,CAAO,MAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAK,CAAS,QAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAE,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAG,EAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAM,QAAQ,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAU,SAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAK,SAAS,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAK,CAAS,QAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAG,EAAA,CAAA,EAAG,UAAU,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAM,CAAQ,OAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,UAAU,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAK,CAAS,QAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAI,UAAU,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAE,GAAA,EAAE,CAAE,EAAA,EAAA,EAAG,CAAW,UAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAK,SAAS,CAAA,CAAA;AAC7G,IAAE,CAAA,GAAA,EAAA,CAAG,CAAE,EAAA,CAAA,EAAE,CAAE,EAAA,CAAA,EAAE,EAAE,CAAG,GAAA,CAAC,CAAE,EAAA,EAAA,EAAI,CAAU,SAAA,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,GAAE,IAAI,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,GAAE,IAAI,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,GAAE,IAAI,CAAA,CAAA;AAAE,IAAE,CAAA,GAAA,EAAA,CAAG,GAAE,IAAI,CAAA,CAAA;AAAA,GACzF;AACA,EAAO,OAAA,EAAA,CAAG,CAAC,CAAA,GAAE,EAAG,CAAA,CAAC,IAAE,EAAG,CAAA,CAAC,CAAE,GAAA,EAAA,CAAG,CAAC,CAAA,CAAA;AAC/B;;;;"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { getHttpStatusText } from '../http/HttpStatus.js';
|
|
2
|
+
|
|
3
|
+
class DetailError extends Error {
|
|
4
|
+
constructor(detail) {
|
|
5
|
+
super(detail.message, {
|
|
6
|
+
cause: detail.cause
|
|
7
|
+
});
|
|
8
|
+
this.detail = detail;
|
|
9
|
+
this.status = detail.status;
|
|
10
|
+
this.description = detail.description;
|
|
11
|
+
}
|
|
12
|
+
status;
|
|
13
|
+
description;
|
|
14
|
+
toJSON() {
|
|
15
|
+
return {
|
|
16
|
+
code: this.detail.code,
|
|
17
|
+
message: this.message,
|
|
18
|
+
status: this.status,
|
|
19
|
+
description: this.description,
|
|
20
|
+
cause: this.cause
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
class DetailHolder {
|
|
25
|
+
message;
|
|
26
|
+
status;
|
|
27
|
+
code;
|
|
28
|
+
metadata;
|
|
29
|
+
description;
|
|
30
|
+
cause;
|
|
31
|
+
constructor({
|
|
32
|
+
status,
|
|
33
|
+
message = getHttpStatusText(status),
|
|
34
|
+
code = status,
|
|
35
|
+
metadata,
|
|
36
|
+
description,
|
|
37
|
+
cause
|
|
38
|
+
}) {
|
|
39
|
+
this.message = message != null ? message : String(status);
|
|
40
|
+
this.status = status;
|
|
41
|
+
this.code = code;
|
|
42
|
+
this.description = description;
|
|
43
|
+
this.metadata = metadata;
|
|
44
|
+
this.cause = cause;
|
|
45
|
+
}
|
|
46
|
+
with(o) {
|
|
47
|
+
if (typeof o === "string") {
|
|
48
|
+
o = { message: o };
|
|
49
|
+
}
|
|
50
|
+
if (o === void 0) {
|
|
51
|
+
return new DetailHolder(this);
|
|
52
|
+
}
|
|
53
|
+
return new DetailHolder({
|
|
54
|
+
status: this.status,
|
|
55
|
+
code: this.code,
|
|
56
|
+
message: this.message,
|
|
57
|
+
metadata: this.metadata,
|
|
58
|
+
cause: this.cause,
|
|
59
|
+
...o
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
asError(o) {
|
|
63
|
+
if (typeof o === "string") {
|
|
64
|
+
o = { message: o };
|
|
65
|
+
}
|
|
66
|
+
return new DetailError(this.with(o));
|
|
67
|
+
}
|
|
68
|
+
require(v, o) {
|
|
69
|
+
if (v === void 0 || v === null) {
|
|
70
|
+
throw this.asError(o);
|
|
71
|
+
}
|
|
72
|
+
return v;
|
|
73
|
+
}
|
|
74
|
+
check(cond, o) {
|
|
75
|
+
switch (cond) {
|
|
76
|
+
case false:
|
|
77
|
+
case void 0:
|
|
78
|
+
case null: {
|
|
79
|
+
throw this.asError(o);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
throw(o) {
|
|
84
|
+
throw this.asError(o);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
class Errors {
|
|
88
|
+
static BadRequest = this.with({ status: 400 });
|
|
89
|
+
static Unauthorized = this.with({ status: 403 });
|
|
90
|
+
static Forbidden = this.with({ status: 403 });
|
|
91
|
+
static NotFound = this.with({ status: 404 });
|
|
92
|
+
static InternalServerError = this.with({ status: 501 });
|
|
93
|
+
static NotImplemented = this.with({ status: 501 });
|
|
94
|
+
static ServiceUnavailable = this.with({ status: 503 });
|
|
95
|
+
static with(init) {
|
|
96
|
+
return new DetailHolder(init);
|
|
97
|
+
}
|
|
98
|
+
static ok(res, o) {
|
|
99
|
+
if (res.ok) {
|
|
100
|
+
return res;
|
|
101
|
+
}
|
|
102
|
+
throw this.with({
|
|
103
|
+
description: res.statusText,
|
|
104
|
+
status: res.status,
|
|
105
|
+
...o,
|
|
106
|
+
metadata: {
|
|
107
|
+
...o == null ? void 0 : o.metadata,
|
|
108
|
+
response: res
|
|
109
|
+
}
|
|
110
|
+
}).asError();
|
|
111
|
+
}
|
|
112
|
+
static resolve(e) {
|
|
113
|
+
if (e instanceof DetailHolder) {
|
|
114
|
+
return e;
|
|
115
|
+
}
|
|
116
|
+
if (e instanceof DetailError) {
|
|
117
|
+
return e.detail;
|
|
118
|
+
}
|
|
119
|
+
if (e instanceof Error) {
|
|
120
|
+
const { message, code, status } = e;
|
|
121
|
+
return new DetailHolder({
|
|
122
|
+
message,
|
|
123
|
+
status: parseInt(status) || 500,
|
|
124
|
+
code,
|
|
125
|
+
cause: e
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return new DetailHolder({
|
|
129
|
+
message: e.message,
|
|
130
|
+
status: 500,
|
|
131
|
+
cause: e
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export { DetailError, Errors };
|
|
137
|
+
//# sourceMappingURL=Errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Errors.js","sources":["../../src/errors/Errors.ts"],"sourcesContent":["import { getHttpStatusText } from '../http/HttpStatus';\n\nexport interface ErrorDetailInit {\n message?: string;\n status: number;\n description?: string;\n code?: number | string;\n metadata?: Record<string, any>;\n cause?: any;\n}\n\nexport class DetailError extends Error {\n readonly status: number;\n readonly description?: string;\n\n constructor(readonly detail: ErrorDetail) {\n super(detail.message, {\n cause: detail.cause,\n });\n this.status = detail.status;\n this.description = detail.description;\n }\n\n toJSON() {\n return {\n code: this.detail.code,\n message: this.message,\n status: this.status,\n description: this.description,\n cause: this.cause,\n };\n }\n}\n\nclass DetailHolder implements ErrorDetail {\n readonly message: string;\n readonly status: number;\n readonly code: number | string;\n readonly metadata?: Record<string, any>;\n readonly description?: string;\n readonly cause?: any;\n\n constructor({\n status,\n message = getHttpStatusText(status),\n code = status,\n metadata,\n description,\n cause,\n }: ErrorDetailInit) {\n this.message = message ?? String(status);\n this.status = status;\n this.code = code;\n this.description = description;\n this.metadata = metadata;\n this.cause = cause;\n }\n\n with(o?: Partial<ErrorDetailInit> | string): DetailHolder {\n if (typeof o === 'string') {\n o = { message: o };\n }\n\n if (o === undefined) {\n return new DetailHolder(this);\n }\n\n return new DetailHolder({\n status: this.status,\n code: this.code,\n message: this.message,\n metadata: this.metadata,\n cause: this.cause,\n ...o,\n });\n }\n\n asError(o?: Partial<ErrorDetailInit> | string): Error {\n if (typeof o === 'string') {\n o = { message: o };\n }\n\n return new DetailError(this.with(o));\n }\n\n require(v: any, o?: Partial<ErrorDetailInit> | string): any {\n if (v === undefined || v === null) {\n throw this.asError(o);\n }\n\n return v;\n }\n\n check(cond: any, o?: Partial<ErrorDetailInit> | string) {\n switch (cond) {\n case false:\n case undefined:\n case null: {\n throw this.asError(o);\n }\n }\n }\n\n throw(o?: Partial<ErrorDetailInit>): never {\n throw this.asError(o);\n }\n}\n\nexport interface ErrorDetail {\n readonly message: string;\n readonly status: number;\n readonly code?: number | string;\n readonly metadata?: Record<string, any>;\n readonly description?: string;\n readonly cause?: any;\n\n with(message: string): ErrorDetail;\n\n with(o?: Partial<ErrorDetailInit>): ErrorDetail;\n\n asError(o?: Partial<ErrorDetailInit>): Error;\n\n asError(message: string): Error;\n\n throw(o?: Partial<ErrorDetailInit>): never;\n\n require<T>(v: T | undefined, o?: Partial<ErrorDetailInit> | string): NonNullable<T>;\n\n // 不支持 return value\n // https://stackoverflow.com/a/73252858/1870054\n\n check(condition: boolean, o?: Partial<ErrorDetailInit> | string): asserts condition;\n\n check<T>(v: T | undefined | null, o?: Partial<ErrorDetailInit> | string): asserts v is NonNullable<T>;\n}\n\nexport class Errors {\n static BadRequest: ErrorDetail = this.with({ status: 400 });\n static Unauthorized: ErrorDetail = this.with({ status: 403 });\n static Forbidden: ErrorDetail = this.with({ status: 403 });\n static NotFound: ErrorDetail = this.with({ status: 404 });\n static InternalServerError: ErrorDetail = this.with({ status: 501 });\n static NotImplemented: ErrorDetail = this.with({ status: 501 });\n static ServiceUnavailable: ErrorDetail = this.with({ status: 503 });\n\n static with(init: ErrorDetailInit): ErrorDetail {\n return new DetailHolder(init);\n }\n\n static ok(res: Response, o?: Partial<ErrorDetailInit>) {\n if (res.ok) {\n return res;\n }\n throw this.with({\n description: res.statusText,\n status: res.status,\n ...o,\n metadata: {\n ...o?.metadata,\n response: res,\n },\n }).asError();\n }\n\n static resolve(e: any): ErrorDetail {\n if (e instanceof DetailHolder) {\n return e;\n }\n\n if (e instanceof DetailError) {\n return e.detail;\n }\n\n if (e instanceof Error) {\n const { message, code, status } = e as any;\n // can get status from NestJS HttpException\n return new DetailHolder({\n message,\n status: parseInt(status) || 500,\n code,\n cause: e,\n });\n }\n\n return new DetailHolder({\n message: e.message,\n status: 500,\n cause: e,\n });\n }\n}\n\n// interface ZodError {\n// path: Array<string | number>;\n// message: string;\n// code: string;\n// expected?: any;\n// received?: any;\n// }\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ async function dumpResponse({
|
|
|
5
5
|
log = console.log
|
|
6
6
|
}) {
|
|
7
7
|
let out = `<- ${res.status} ${res.statusText} ${req.method} ${url}
|
|
8
|
-
|
|
8
|
+
${Array.from(res.headers.entries()).map(([k, v]) => `${k}: ${v}`).join("\n")}
|
|
9
9
|
`;
|
|
10
10
|
let contentType = res.headers.get("content-type");
|
|
11
11
|
if ((contentType == null ? void 0 : contentType.includes("application/json")) || (contentType == null ? void 0 : contentType.includes("text/plain"))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dumpResponse.js","sources":["../../src/fetch/dumpResponse.ts"],"sourcesContent":["export async function dumpResponse({\n res,\n url,\n req,\n log = console.log,\n}: {\n res: Response;\n url: string;\n req: RequestInit;\n log?: (s: string) => void;\n}) {\n let out = `<- ${res.status} ${res.statusText} ${req.method} ${url}\n
|
|
1
|
+
{"version":3,"file":"dumpResponse.js","sources":["../../src/fetch/dumpResponse.ts"],"sourcesContent":["export async function dumpResponse({\n res,\n url,\n req,\n log = console.log,\n}: {\n res: Response;\n url: string;\n req: RequestInit;\n log?: (s: string) => void;\n}) {\n let out = `<- ${res.status} ${res.statusText} ${req.method} ${url}\n${Array.from(res.headers.entries())\n .map(([k, v]) => `${k}: ${v}`)\n .join('\\n')}\n `;\n let contentType = res.headers.get('content-type');\n // TODO text/event-stream\n if (contentType?.includes('application/json') || contentType?.includes('text/plain')) {\n const body = await res.text();\n out += `\\n${body}\\n`;\n res = new Response(body, res);\n }\n\n log(out);\n\n return res;\n}\n"],"names":[],"mappings":"AAAA,eAAsB,YAAa,CAAA;AAAA,EACjC,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAM,OAAQ,CAAA,GAAA;AAChB,CAKG,EAAA;AACD,EAAI,IAAA,GAAA,GAAM,CAAM,GAAA,EAAA,GAAA,CAAI,MAAM,CAAA,CAAA,EAAI,GAAI,CAAA,UAAU,CAAI,CAAA,EAAA,GAAA,CAAI,MAAM,CAAA,CAAA,EAAI,GAAG,CAAA;AAAA,EACjE,KAAA,CAAM,KAAK,GAAI,CAAA,OAAA,CAAQ,SAAS,CAAA,CAC/B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA,KAAM,GAAG,CAAC,CAAA,EAAA,EAAK,CAAC,CAAE,CAAA,CAAA,CAC5B,IAAK,CAAA,IAAI,CAAC,CAAA;AAAA,GAAA,CAAA,CAAA;AAEX,EAAA,IAAI,WAAc,GAAA,GAAA,CAAI,OAAQ,CAAA,GAAA,CAAI,cAAc,CAAA,CAAA;AAEhD,EAAA,IAAA,CAAI,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,QAAA,CAAS,kBAAuB,CAAA,MAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,SAAS,YAAe,CAAA,CAAA,EAAA;AACpF,IAAM,MAAA,IAAA,GAAO,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAC5B,IAAO,GAAA,IAAA,CAAA;AAAA,EAAK,IAAI,CAAA;AAAA,CAAA,CAAA;AAChB,IAAM,GAAA,GAAA,IAAI,QAAS,CAAA,IAAA,EAAM,GAAG,CAAA,CAAA;AAAA,GAC9B;AAEA,EAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAEP,EAAO,OAAA,GAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const HttpStatus = {
|
|
2
|
+
100: "Continue",
|
|
3
|
+
101: "Switching Protocols",
|
|
4
|
+
102: "Processing",
|
|
5
|
+
103: "Early Hints",
|
|
6
|
+
200: "OK",
|
|
7
|
+
201: "Created",
|
|
8
|
+
202: "Accepted",
|
|
9
|
+
203: "Non-Authoritative Information",
|
|
10
|
+
204: "No Content",
|
|
11
|
+
205: "Reset Content",
|
|
12
|
+
206: "Partial Content",
|
|
13
|
+
207: "Multi-Status",
|
|
14
|
+
208: "Already Reported",
|
|
15
|
+
226: "IM Used",
|
|
16
|
+
300: "Multiple Choices",
|
|
17
|
+
301: "Moved Permanently",
|
|
18
|
+
302: "Found",
|
|
19
|
+
303: "See Other",
|
|
20
|
+
304: "Not Modified",
|
|
21
|
+
305: "Use Proxy",
|
|
22
|
+
306: "Unused",
|
|
23
|
+
307: "Temporary Redirect",
|
|
24
|
+
308: "Permanent Redirect",
|
|
25
|
+
400: "Bad Request",
|
|
26
|
+
401: "Unauthorized",
|
|
27
|
+
402: "Payment Required",
|
|
28
|
+
403: "Forbidden",
|
|
29
|
+
404: "Not Found",
|
|
30
|
+
405: "Method Not Allowed",
|
|
31
|
+
406: "Not Acceptable",
|
|
32
|
+
407: "Proxy Authentication Required",
|
|
33
|
+
408: "Request Timeout",
|
|
34
|
+
409: "Conflict",
|
|
35
|
+
410: "Gone",
|
|
36
|
+
411: "Length Required",
|
|
37
|
+
412: "Precondition Required",
|
|
38
|
+
413: "Request Entry Too Large",
|
|
39
|
+
414: "Request-URI Too Long",
|
|
40
|
+
415: "Unsupported Media Type",
|
|
41
|
+
416: "Requested Range Not Satisfiable",
|
|
42
|
+
417: "Expectation Failed",
|
|
43
|
+
418: "I'm a teapot",
|
|
44
|
+
421: "Misdirected Request",
|
|
45
|
+
422: "Unprocessable Entity",
|
|
46
|
+
423: "Locked",
|
|
47
|
+
424: "Failed Dependency",
|
|
48
|
+
425: "Too Early",
|
|
49
|
+
426: "Upgrade Required",
|
|
50
|
+
428: "Precondition Required",
|
|
51
|
+
429: "Too Many Requests",
|
|
52
|
+
431: "Request Header Fields Too Large",
|
|
53
|
+
451: "Unavailable For Legal Reasons",
|
|
54
|
+
500: "Internal Server Error",
|
|
55
|
+
501: "Not Implemented",
|
|
56
|
+
502: "Bad Gateway",
|
|
57
|
+
503: "Service Unavailable",
|
|
58
|
+
504: "Gateway Timeout",
|
|
59
|
+
505: "HTTP Version Not Supported",
|
|
60
|
+
506: "Variant Also Negotiates",
|
|
61
|
+
507: "Insufficient Storage",
|
|
62
|
+
508: "Loop Detected",
|
|
63
|
+
509: "Bandwidth Limit Exceeded",
|
|
64
|
+
510: "Not Extended",
|
|
65
|
+
511: "Network Authentication Required"
|
|
66
|
+
};
|
|
67
|
+
function getHttpStatusText(status) {
|
|
68
|
+
return HttpStatus[status];
|
|
69
|
+
}
|
|
70
|
+
function isRetryableHttpStatus(status) {
|
|
71
|
+
switch (status) {
|
|
72
|
+
case 408:
|
|
73
|
+
case 425:
|
|
74
|
+
case 429:
|
|
75
|
+
case 502:
|
|
76
|
+
case 503:
|
|
77
|
+
case 504:
|
|
78
|
+
return true;
|
|
79
|
+
default:
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { getHttpStatusText, isRetryableHttpStatus };
|
|
85
|
+
//# sourceMappingURL=HttpStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpStatus.js","sources":["../../src/http/HttpStatus.ts"],"sourcesContent":["// http://httpstat.us/\n// https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\nconst HttpStatus: Record<string, string> = {\n 100: 'Continue',\n 101: 'Switching Protocols',\n 102: 'Processing',\n 103: 'Early Hints',\n 200: 'OK',\n 201: 'Created',\n 202: 'Accepted',\n 203: 'Non-Authoritative Information',\n 204: 'No Content',\n 205: 'Reset Content',\n 206: 'Partial Content',\n 207: 'Multi-Status',\n 208: 'Already Reported',\n 226: 'IM Used',\n 300: 'Multiple Choices',\n 301: 'Moved Permanently',\n 302: 'Found',\n 303: 'See Other',\n 304: 'Not Modified',\n 305: 'Use Proxy',\n 306: 'Unused',\n 307: 'Temporary Redirect',\n 308: 'Permanent Redirect',\n\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 402: 'Payment Required',\n 403: 'Forbidden',\n 404: 'Not Found',\n 405: 'Method Not Allowed',\n 406: 'Not Acceptable',\n 407: 'Proxy Authentication Required',\n 408: 'Request Timeout',\n 409: 'Conflict',\n 410: 'Gone',\n 411: 'Length Required',\n 412: 'Precondition Required',\n 413: 'Request Entry Too Large',\n 414: 'Request-URI Too Long',\n 415: 'Unsupported Media Type',\n 416: 'Requested Range Not Satisfiable',\n 417: 'Expectation Failed',\n 418: \"I'm a teapot\",\n 421: 'Misdirected Request',\n 422: 'Unprocessable Entity',\n 423: 'Locked',\n 424: 'Failed Dependency',\n 425: 'Too Early',\n 426: 'Upgrade Required',\n 428: 'Precondition Required',\n 429: 'Too Many Requests',\n 431: 'Request Header Fields Too Large',\n 451: 'Unavailable For Legal Reasons',\n 500: 'Internal Server Error',\n 501: 'Not Implemented',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n 504: 'Gateway Timeout',\n 505: 'HTTP Version Not Supported',\n 506: 'Variant Also Negotiates',\n 507: 'Insufficient Storage',\n 508: 'Loop Detected',\n 509: 'Bandwidth Limit Exceeded',\n 510: 'Not Extended',\n 511: 'Network Authentication Required',\n};\n\nexport function getHttpStatusText(status: number | string): string | undefined {\n return HttpStatus[status];\n}\n\nexport function isRetryableHttpStatus(status: number) {\n switch (status) {\n /*\n408 Request Timeout\n425 Too Early\n429 Too Many Requests\n500 Internal Server Error\n502 Bad Gateway\n503 Service Unavailable\n504 Gateway Timeout\n */\n case 408:\n case 425:\n case 429:\n case 502:\n case 503:\n case 504:\n return true;\n default:\n return false;\n }\n}\n"],"names":[],"mappings":"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"}
|