@onyxsecurity/mcp-gateway 1.0.71 → 1.0.73
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/bin/mcp-gateway.js +2 -2
- package/dist/bin/mcp-gateway.js.map +1 -1
- package/dist/{cli-CdcSMGzs.js → cli-TKShsj4-.js} +2 -2
- package/dist/{cli-CdcSMGzs.js.map → cli-TKShsj4-.js.map} +1 -1
- package/dist/{env-CA395K36.js → env-B3eeMY3X.js} +1 -1
- package/dist/{env-U-H-5ckN.js → env-DcnPhczq.js} +2 -2
- package/dist/{env-U-H-5ckN.js.map → env-DcnPhczq.js.map} +1 -1
- package/dist/{helpers-DpRe9vc7.js → helpers-BPQVbZuN.js} +2 -2
- package/dist/helpers-BPQVbZuN.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/{logger-SA2az-xR.js → logger-B-pEn-Qn.js} +2 -2
- package/dist/{logger-SA2az-xR.js.map → logger-B-pEn-Qn.js.map} +1 -1
- package/dist/{main-CxI5J2Ez.js → main-CYu5kwWP.js} +2 -2
- package/dist/{main-CxI5J2Ez.js.map → main-CYu5kwWP.js.map} +1 -1
- package/dist/{oauthProvidersClient-Fxesyv3s.js → oauthProvidersClient-BpTTJUS9.js} +2 -2
- package/dist/{oauthProvidersClient-Fxesyv3s.js.map → oauthProvidersClient-BpTTJUS9.js.map} +1 -1
- package/dist/oauthProvidersClient-CEhsl4Fu.js +1 -0
- package/dist/{providers-BrPadh5c.js → providers-Cq_LFHyM.js} +2 -2
- package/dist/{providers-BrPadh5c.js.map → providers-Cq_LFHyM.js.map} +1 -1
- package/dist/secretstore-Bb3anONL.js +2 -0
- package/dist/secretstore-Bb3anONL.js.map +1 -0
- package/dist/{stdio-DcfnSJiF.js → stdio-BT_AGCtR.js} +2 -2
- package/dist/{stdio-DcfnSJiF.js.map → stdio-BT_AGCtR.js.map} +1 -1
- package/dist/{transportDetection-B8Oqn-xw.js → transportDetection-CNDfDyCo.js} +2 -2
- package/dist/{transportDetection-B8Oqn-xw.js.map → transportDetection-CNDfDyCo.js.map} +1 -1
- package/package.json +1 -1
- package/dist/helpers-DpRe9vc7.js.map +0 -1
- package/dist/oauthProvidersClient-D4JqW7V5.js +0 -1
- package/dist/secretstore-D1vTCZFj.js +0 -2
- package/dist/secretstore-D1vTCZFj.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{logger as e}from"./logger-
|
|
2
|
-
//# sourceMappingURL=oauthProvidersClient-
|
|
1
|
+
import{logger as e}from"./logger-B-pEn-Qn.js";import{setOAuthProviders as t}from"./providers-Cq_LFHyM.js";async function n(e){let t=new URL(e.url),n=t.hostname===`localhost`||t.hostname===`127.0.0.1`||t.hostname===`::1`||t.hostname===`[::1]`;if(t.protocol!==`https:`&&!n)throw Error(`OAuth providers URL must use HTTPS, got ${t.protocol}`);let r=new AbortController,i=setTimeout(()=>r.abort(),e.timeoutMs);try{let t=await fetch(e.url,{headers:{Accept:`application/json`,apikey:e.apiKey},method:`GET`,signal:r.signal});if(!t.ok)throw Error(`OAuth providers service returned ${t.status}: ${t.statusText}`);let n=await t.json();return Array.isArray(n.providers)?n.providers:[]}catch(t){throw t instanceof Error&&t.name===`AbortError`?Error(`OAuth providers fetch timed out after ${e.timeoutMs}ms`):t}finally{clearTimeout(i)}}async function r(r){if(!r.enabled||!r.url||!r.apiKey){t([]),e.debug(`OAuth providers fetch disabled (missing URL or API key); skipping`);return}try{let i=await n({apiKey:r.apiKey,timeoutMs:r.timeoutMs,url:r.url});t(i),e.info(`OAuth providers loaded`,{count:i.length,ids:i.map(e=>e.id)})}catch(n){t([]),e.warn(`OAuth providers fetch failed; falling back to DCR`,{error:String(n),url:r.url})}}export{n as fetchOAuthProviders,r as initializeOAuthProviders};
|
|
2
|
+
//# sourceMappingURL=oauthProvidersClient-BpTTJUS9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauthProvidersClient-
|
|
1
|
+
{"version":3,"file":"oauthProvidersClient-BpTTJUS9.js","names":[],"sources":["../src/auth/oauthProvidersClient.ts"],"sourcesContent":["import type { OAuthProviderConfig } from \"../config/config.js\";\n\nimport { logger } from \"../lib/logger.js\";\nimport { setOAuthProviders } from \"./providers.js\";\n\nexport interface InitializeOAuthProvidersConfig {\n apiKey: string | undefined;\n enabled: boolean;\n timeoutMs: number;\n url: null | string;\n}\n\nexport interface OAuthProvidersClientConfig {\n apiKey: string;\n timeoutMs: number;\n url: string;\n}\n\ninterface OAuthProvidersResponse {\n providers?: OAuthProviderConfig[];\n}\n\n/**\n * Fetches the OAuth provider list from the web extension service.\n *\n * The endpoint is gated by Kong's key-auth plugin, which validates the\n * `apikey` header and forwards a per-tenant `x-consumer-username` header\n * (e.g. `mcp-gateway@<tenantUUID>`) to the backend.\n *\n * Throws on network error, timeout, or non-2xx response. Callers are\n * expected to handle errors and decide on a fallback (initializeOAuthProviders\n * fails open by emptying the in-memory provider list, which causes the OAuth\n * flow to fall through to Dynamic Client Registration).\n */\nexport async function fetchOAuthProviders(\n cfg: OAuthProvidersClientConfig\n): Promise<OAuthProviderConfig[]> {\n // Reject non-HTTPS URLs before sending the API key over the wire.\n // Loopback addresses are allowed for local development against a non-TLS\n // stub: \"localhost\", IPv4 (127.0.0.1), and IPv6 (::1). Node returns the\n // bracketed form (\"[::1]\") for IPv6 hosts in URL.hostname, so match both.\n const parsed = new URL(cfg.url);\n const isLocal =\n parsed.hostname === \"localhost\" ||\n parsed.hostname === \"127.0.0.1\" ||\n parsed.hostname === \"::1\" ||\n parsed.hostname === \"[::1]\";\n if (parsed.protocol !== \"https:\" && !isLocal) {\n throw new Error(`OAuth providers URL must use HTTPS, got ${parsed.protocol}`);\n }\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), cfg.timeoutMs);\n\n try {\n const response = await fetch(cfg.url, {\n // GET with no body — Accept signals the desired response format,\n // Content-Type would be misleading.\n headers: {\n Accept: \"application/json\",\n apikey: cfg.apiKey,\n },\n method: \"GET\",\n signal: controller.signal,\n });\n\n if (!response.ok) {\n throw new Error(`OAuth providers service returned ${response.status}: ${response.statusText}`);\n }\n\n const body = (await response.json()) as OAuthProvidersResponse;\n return Array.isArray(body.providers) ? body.providers : [];\n } catch (error) {\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(`OAuth providers fetch timed out after ${cfg.timeoutMs}ms`);\n }\n throw error;\n } finally {\n clearTimeout(timer);\n }\n}\n\n/**\n * Initializes the in-memory OAuth provider store at gateway startup.\n *\n * On a successful fetch, populates the store with the providers returned by\n * the web extension service. On any failure (disabled config, network error,\n * timeout, malformed body), empties the store and logs a warning. The OAuth\n * flow at oauthFlow.ts then falls through to Dynamic Client Registration,\n * matching the gateway's \"fail-safe by default\" convention.\n */\nexport async function initializeOAuthProviders(cfg: InitializeOAuthProvidersConfig): Promise<void> {\n if (!cfg.enabled || !cfg.url || !cfg.apiKey) {\n setOAuthProviders([]);\n logger.debug(\"OAuth providers fetch disabled (missing URL or API key); skipping\");\n return;\n }\n\n try {\n const providers = await fetchOAuthProviders({\n apiKey: cfg.apiKey,\n timeoutMs: cfg.timeoutMs,\n url: cfg.url,\n });\n setOAuthProviders(providers);\n logger.info(\"OAuth providers loaded\", {\n count: providers.length,\n ids: providers.map((p) => p.id),\n });\n } catch (error) {\n setOAuthProviders([]);\n logger.warn(\"OAuth providers fetch failed; falling back to DCR\", {\n error: String(error),\n url: cfg.url,\n });\n }\n}\n"],"mappings":"0GAkCA,eAAsB,EACpB,EACgC,CAKhC,IAAM,EAAS,IAAI,IAAI,EAAI,IAAI,CACzB,EACJ,EAAO,WAAa,aACpB,EAAO,WAAa,aACpB,EAAO,WAAa,OACpB,EAAO,WAAa,QACtB,GAAI,EAAO,WAAa,UAAY,CAAC,EACnC,MAAU,MAAM,2CAA2C,EAAO,WAAW,CAG/E,IAAM,EAAa,IAAI,gBACjB,EAAQ,eAAiB,EAAW,OAAO,CAAE,EAAI,UAAU,CAEjE,GAAI,CACF,IAAM,EAAW,MAAM,MAAM,EAAI,IAAK,CAGpC,QAAS,CACP,OAAQ,mBACR,OAAQ,EAAI,OACb,CACD,OAAQ,MACR,OAAQ,EAAW,OACpB,CAAC,CAEF,GAAI,CAAC,EAAS,GACZ,MAAU,MAAM,oCAAoC,EAAS,OAAO,IAAI,EAAS,aAAa,CAGhG,IAAM,EAAQ,MAAM,EAAS,MAAM,CACnC,OAAO,MAAM,QAAQ,EAAK,UAAU,CAAG,EAAK,UAAY,EAAE,OACnD,EAAO,CAId,MAHI,aAAiB,OAAS,EAAM,OAAS,aACjC,MAAM,yCAAyC,EAAI,UAAU,IAAI,CAEvE,SACE,CACR,aAAa,EAAM,EAavB,eAAsB,EAAyB,EAAoD,CACjG,GAAI,CAAC,EAAI,SAAW,CAAC,EAAI,KAAO,CAAC,EAAI,OAAQ,CAC3C,EAAkB,EAAE,CAAC,CACrB,EAAO,MAAM,oEAAoE,CACjF,OAGF,GAAI,CACF,IAAM,EAAY,MAAM,EAAoB,CAC1C,OAAQ,EAAI,OACZ,UAAW,EAAI,UACf,IAAK,EAAI,IACV,CAAC,CACF,EAAkB,EAAU,CAC5B,EAAO,KAAK,yBAA0B,CACpC,MAAO,EAAU,OACjB,IAAK,EAAU,IAAK,GAAM,EAAE,GAAG,CAChC,CAAC,OACK,EAAO,CACd,EAAkB,EAAE,CAAC,CACrB,EAAO,KAAK,oDAAqD,CAC/D,MAAO,OAAO,EAAM,CACpB,IAAK,EAAI,IACV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./env-DcnPhczq.js";import"./logger-B-pEn-Qn.js";import"./providers-Cq_LFHyM.js";import{fetchOAuthProviders as e,initializeOAuthProviders as t}from"./oauthProvidersClient-BpTTJUS9.js";export{t as initializeOAuthProviders};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{logger as e}from"./logger-
|
|
2
|
-
//# sourceMappingURL=providers-
|
|
1
|
+
import{logger as e}from"./logger-B-pEn-Qn.js";let t=[];function n(n){let r=typeof n==`string`?new URL(n):n,o=r.hostname.toLowerCase();for(let n of t)for(let t of n.urlPatterns){let r=t.toLowerCase();if(a(o,r))return e.debug(`Found matching OAuth provider for URL`,{hostname:o,pattern:t,providerId:n.id,providerName:n.name}),i(n)}e.debug(`No pre-configured OAuth provider found for URL`,{hostname:o,serverUrl:r.toString()})}function r(e){t=e.map(i)}function i(e){return{...e,scopes:e.scopes?[...e.scopes]:void 0,urlPatterns:[...e.urlPatterns]}}function a(e,t){return!!(e===t||e.endsWith(`.${t}`))}export{n as findProviderForUrl,r as setOAuthProviders};
|
|
2
|
+
//# sourceMappingURL=providers-Cq_LFHyM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers-
|
|
1
|
+
{"version":3,"file":"providers-Cq_LFHyM.js","names":["oauthProviders: OAuthProviderConfig[]"],"sources":["../src/auth/providers.ts"],"sourcesContent":["import type { OAuthProviderConfig } from \"../config/config.js\";\n\nimport { logger } from \"../lib/logger.js\";\n\n// Mutable store. Populated by setOAuthProviders() during startup once the\n// gateway has fetched provider config from the web extension service.\n// Pre-startup or when the fetch fails, the array stays empty and OAuth flows\n// fall through to Dynamic Client Registration via oauthFlow.ts.\nlet oauthProviders: OAuthProviderConfig[] = [];\n\n/**\n * Finds a pre-configured OAuth provider that matches the given server URL.\n *\n * @param serverUrl The MCP server URL to match against provider URL patterns\n * @returns The matching provider config, or undefined if no match found\n */\nexport function findProviderForUrl(serverUrl: string | URL): OAuthProviderConfig | undefined {\n const serverUrlObj = typeof serverUrl === \"string\" ? new URL(serverUrl) : serverUrl;\n const hostname = serverUrlObj.hostname.toLowerCase();\n\n for (const provider of oauthProviders) {\n for (const pattern of provider.urlPatterns) {\n // Pattern can be a hostname or a hostname with path prefix\n const patternLower = pattern.toLowerCase();\n\n // Check if pattern matches hostname (with or without subdomains)\n if (matchesHostname(hostname, patternLower)) {\n logger.debug(\"Found matching OAuth provider for URL\", {\n hostname,\n pattern,\n providerId: provider.id,\n providerName: provider.name,\n });\n // Return a defensive clone — callers in oauthFlow.ts must not be\n // able to corrupt the in-memory store via the returned reference.\n return cloneProvider(provider);\n }\n }\n }\n\n logger.debug(\"No pre-configured OAuth provider found for URL\", {\n hostname,\n serverUrl: serverUrlObj.toString(),\n });\n return undefined;\n}\n\n/**\n * Gets a provider by its ID.\n *\n * @param providerId The provider ID (e.g., \"github\")\n * @returns The provider config, or undefined if not found\n */\nexport function getProviderById(providerId: string): OAuthProviderConfig | undefined {\n const found = oauthProviders.find((p) => p.id === providerId);\n return found ? cloneProvider(found) : undefined;\n}\n\n/**\n * Lists all configured OAuth providers.\n * Useful for debugging and admin interfaces.\n *\n * @returns Array of provider summaries (without secrets)\n */\nexport function listProviders(): Array<{\n hasClientSecret: boolean;\n id: string;\n name: string;\n urlPatterns: string[];\n}> {\n return oauthProviders.map((p) => ({\n hasClientSecret: !!p.clientSecret,\n id: p.id,\n name: p.name,\n urlPatterns: [...p.urlPatterns],\n }));\n}\n\n/**\n * Replaces the in-memory OAuth provider list. Called once at gateway startup\n * after fetching from the web extension service. Pass an empty array to clear.\n *\n * Stores defensive shallow copies of each provider so that callers cannot\n * mutate the in-memory store via the references they passed in. The\n * urlPatterns array is also cloned for the same reason.\n */\nexport function setOAuthProviders(providers: OAuthProviderConfig[]): void {\n oauthProviders = providers.map(cloneProvider);\n}\n\n// cloneProvider returns a defensive shallow copy with array fields cloned,\n// so callers can read and even mutate the result without corrupting the\n// in-memory store. Used on every read path (findProviderForUrl,\n// getProviderById) to match the write-side contract in setOAuthProviders.\nfunction cloneProvider(p: OAuthProviderConfig): OAuthProviderConfig {\n return {\n ...p,\n scopes: p.scopes ? [...p.scopes] : undefined,\n urlPatterns: [...p.urlPatterns],\n };\n}\n\n/**\n * Checks if a hostname matches a pattern.\n * Supports exact matches and subdomain matches.\n *\n * @param hostname The hostname to check (e.g., \"api.github.com\")\n * @param pattern The pattern to match against (e.g., \"github.com\")\n * @returns true if the hostname matches the pattern\n */\nfunction matchesHostname(hostname: string, pattern: string): boolean {\n // Exact match\n if (hostname === pattern) {\n return true;\n }\n\n // Subdomain match: hostname ends with \".pattern\"\n // e.g., \"api.github.com\" matches \"github.com\"\n if (hostname.endsWith(`.${pattern}`)) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"8CAQA,IAAIA,EAAwC,EAAE,CAQ9C,SAAgB,EAAmB,EAA0D,CAC3F,IAAM,EAAe,OAAO,GAAc,SAAW,IAAI,IAAI,EAAU,CAAG,EACpE,EAAW,EAAa,SAAS,aAAa,CAEpD,IAAK,IAAM,KAAY,EACrB,IAAK,IAAM,KAAW,EAAS,YAAa,CAE1C,IAAM,EAAe,EAAQ,aAAa,CAG1C,GAAI,EAAgB,EAAU,EAAa,CASzC,OARA,EAAO,MAAM,wCAAyC,CACpD,WACA,UACA,WAAY,EAAS,GACrB,aAAc,EAAS,KACxB,CAAC,CAGK,EAAc,EAAS,CAKpC,EAAO,MAAM,iDAAkD,CAC7D,WACA,UAAW,EAAa,UAAU,CACnC,CAAC,CA2CJ,SAAgB,EAAkB,EAAwC,CACxE,EAAiB,EAAU,IAAI,EAAc,CAO/C,SAAS,EAAc,EAA6C,CAClE,MAAO,CACL,GAAG,EACH,OAAQ,EAAE,OAAS,CAAC,GAAG,EAAE,OAAO,CAAG,IAAA,GACnC,YAAa,CAAC,GAAG,EAAE,YAAY,CAChC,CAWH,SAAS,EAAgB,EAAkB,EAA0B,CAYnE,MAJA,GANI,IAAa,GAMb,EAAS,SAAS,IAAI,IAAU"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{join as e}from"node:path";import{env as t,platform as n}from"node:process";import{clearTimeout as r,setTimeout as i}from"node:timers";import{execFile as a}from"node:child_process";const o=`onyx-mcp-gateway`,s=`default`;async function c(e){return v(p(e),`LocalMachine`)}async function l(e){return n===`darwin`?h(e):n===`win32`?await c(e)??await d(e):g(e)}const u=Symbol(`keychain-probe-timeout`);async function d(e){return v(f(e),`CurrentUser`)}function f(n){let r=t.LOCALAPPDATA??e(t.USERPROFILE??`C:\\`,`AppData`,`Local`);return e(r,`Onyx`,`mcp-gateway`,`${n}.bin`)}function p(n){let r=t.ProgramData??`C:\\ProgramData`;return e(r,`Onyx`,`mcp-gateway`,`${n}.bin`)}async function m(e,t={}){let n=t.getSecretFn??l,a=t.timeoutMs??5e3,o,s=new Promise(e=>{o=i(()=>e(u),a),o.unref?.()});try{let t=await Promise.race([n(e),s]);return t===u?{key:null,source:`timeout`}:t?{key:t,source:`keychain`}:{key:null,source:`missing`}}catch{return{key:null,source:`error`}}finally{o!==void 0&&r(o)}}async function h(e){try{return await y(e,`/Library/Keychains/System.keychain`)??await y(e,null)}catch{return null}}async function g(e){try{return(await _(e)).getPassword()}catch{return null}}async function _(e){let{Entry:t}=await import(`@napi-rs/keyring`);return new t(o,e)}async function v(e,t){try{let{readFile:n}=await import(`node:fs/promises`),r=await n(e),{Dpapi:i}=await import(`@primno/dpapi`),a=i.unprotectData(new Uint8Array(r),null,t),o=Buffer.from(a).toString(`utf8`);return o===``?null:o}catch{return null}}function y(e,t){return new Promise(n=>{let r=[`find-generic-password`,`-s`,o,`-a`,e,`-w`];t!==null&&r.push(t),a(`/usr/bin/security`,r,{encoding:`utf8`,killSignal:`SIGKILL`,timeout:2e3},(e,t)=>{if(e){n(null);return}let r=String(t).trim();n(r===``?null:r)})})}export{s as ACCOUNT_DEFAULT,m as resolveApiKeyFromStore};
|
|
2
|
+
//# sourceMappingURL=secretstore-Bb3anONL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretstore-Bb3anONL.js","names":["timer: NodeJS.Timeout | undefined"],"sources":["../src/lib/secretstore.ts"],"sourcesContent":["// Cross-platform keychain reader for the MCP Gateway.\n//\n// The scanner picks the store by privilege at install time: a privileged\n// (root/SYSTEM/MDM) install writes a MACHINE-SCOPED, boot-available store (so\n// it resolves even when no user is logged in); a regular-user install writes\n// that user's own per-user store. The gateway tries the machine store first,\n// then the per-user store. The read paths:\n//\n// macOS: shells out to /usr/bin/security (async execFile). Tries the System\n// keychain (/Library/Keychains/System.keychain) explicitly first — where a\n// privileged install writes the allow-all (`-A`) entry, and passing the path\n// explicitly stops a customized search list from hiding it — then falls back\n// to the default search list, which covers the user's login keychain (where a\n// regular-user install writes). Same `security` caller on both ends ⇒ no\n// per-binary ACL prompt for the entry the scanner wrote.\n//\n// The `-A` ACL governs app access, not the keychain's locked state, so a\n// locked login keychain (or an ACL re-evaluated after the node binary\n// changed) can still pop a SecurityAgent dialog and BLOCK — and a coding-agent\n// subprocess can't dismiss it. The read is therefore hard-bounded with\n// killSignal \"SIGKILL\" (PRDCT-6680): the prior execFileSync timeout used the\n// default SIGTERM, which `security` ignores while blocked, so it never fired.\n//\n// Linux: uses @napi-rs/keyring (libsecret) with the default (service, user)\n// constructor; libsecret stores by attribute set, not by TargetName, so\n// the default constructor finds entries the scanner wrote via go-keyring.\n// (No machine-scoped store on Linux — the scanner always uses the per-user\n// path.)\n//\n// Windows: reads a DPAPI blob (getMachineBlobSecret / getUserBlobSecret +\n// @primno/dpapi). Tries the machine blob under %ProgramData% (LocalMachine\n// scope — what a privileged/SYSTEM install writes, the path that works for\n// pre-login installs) first, then the per-user blob under %LOCALAPPDATA%\n// (CurrentUser scope — what a regular-user install writes). The scanner no\n// longer writes the per-user Credential Manager, so it isn't consulted.\n//\n// - macOS/Windows machine stores are unlocked at boot — no session, no prompt.\n// - the per-user stores (login keychain / CurrentUser blob) are readable by\n// the gateway running as that same user.\n// - Linux libsecret with an unlocked login keyring (the normal\n// desktop state) — silent. Locked / headless boxes return an error\n// which we treat as miss and fall through to env.\n//\n// All public functions are best-effort. On any error — missing backend,\n// timeout, malformed binding — getSecret returns null and the gateway\n// falls back to process.env (legacy behavior).\n//\n// Async API rationale: the @napi-rs/keyring native binding (Linux only) is\n// loaded via `await import(...)` so a missing prebuild on musl/alpine/headless\n// turns into a swallowed `catch` inside getSecretNative rather than a\n// module-load crash. Using `createRequire` for the same lazy-load worked\n// at runtime but was opaque to vitest's `vi.mock` (which only intercepts\n// ESM resolution), so the Linux test path resolved the real binding and\n// missed the mock. Dynamic ESM imports are interceptable on both runtime\n// and test paths.\n\nimport { execFile } from \"node:child_process\";\nimport { join } from \"node:path\";\nimport { env, platform } from \"node:process\";\nimport { clearTimeout, setTimeout } from \"node:timers\";\n\nimport type { KeychainOutcomeSource } from \"./keychainOutcome.js\";\n\n/** Keychain service name. MUST match scanner/internal/secretstore Service. */\nexport const SERVICE = \"onyx-mcp-gateway\";\n\n/** Single-tenant account name; multi-tenant on the same host is future work. */\nexport const ACCOUNT_DEFAULT = \"default\";\n\n/**\n * macOS machine-scoped keychain. The scanner writes the gateway key here (with\n * an allow-all ACL) so it is readable with no interactive-login dependency. We\n * pass this path explicitly rather than relying on the default search list, so\n * a customized search list can't hide the entry.\n */\nconst MAC_SYSTEM_KEYCHAIN = \"/Library/Keychains/System.keychain\";\n\n/** Hard cap on a single security/Entry call so a hung backend never wedges startup. */\nconst READ_TIMEOUT_MS = 2_000;\n\n/**\n * Overall deadline for resolveApiKeyFromStore — a backstop above the macOS worst\n * case (two sequential READ_TIMEOUT_MS reads + spawn overhead) so the probe is\n * non-blocking even if a platform's own per-call cap somehow doesn't fire.\n */\nexport const KEYCHAIN_PROBE_TIMEOUT_MS = 5_000;\n\n/**\n * getMachineBlobSecret reads the machine-scoped DPAPI blob a privileged install\n * writes under %ProgramData% (LocalMachine scope, readable by every user).\n */\nexport async function getMachineBlobSecret(account: string): Promise<null | string> {\n\treturn readDpapiBlob(programDataBlobPath(account), \"LocalMachine\");\n}\n\n/**\n * Look up the password under (SERVICE, account). Returns null on miss, on\n * any backend error, or if the underlying keychain access fails. Never\n * throws.\n */\nexport async function getSecret(account: string): Promise<null | string> {\n\tif (platform === \"darwin\") {\n\t\t// macOS: machine-scoped System keychain (where the scanner writes).\n\t\treturn getSecretMac(account);\n\t}\n\tif (platform === \"win32\") {\n\t\t// The scanner writes a privileged install to the machine blob\n\t\t// (%ProgramData%, LocalMachine) and a regular-user install to the\n\t\t// per-user blob (%LOCALAPPDATA%, CurrentUser). Try the machine blob\n\t\t// first, then the per-user blob. The scanner no longer writes the\n\t\t// per-user Credential Manager, so it isn't consulted.\n\t\treturn (await getMachineBlobSecret(account)) ?? (await getUserBlobSecret(account));\n\t}\n\t// Linux: per-user libsecret vault. No machine-scoped store exists, so the\n\t// scanner keeps the per-user path and we read it via @napi-rs/keyring.\n\treturn getSecretNative(account);\n}\n\n/** Sentinel for the overall-deadline race in resolveApiKeyFromStore. */\nconst PROBE_TIMEOUT = Symbol(\"keychain-probe-timeout\");\n\n/**\n * Outcome of resolving the scanner api-key from the OS secret store, classified\n * for the keychain_outcome telemetry. `error` is defensive (getSecret is\n * best-effort and shouldn't throw); `timeout` is the backstop for a probe that\n * blocked past KEYCHAIN_PROBE_TIMEOUT_MS.\n */\nexport interface ApiKeyResolution {\n\tkey: null | string;\n\tsource: Extract<KeychainOutcomeSource, \"error\" | \"keychain\" | \"missing\" | \"timeout\">;\n}\n\n/**\n * getUserBlobSecret reads the per-user DPAPI blob a regular-user install writes\n * under %LOCALAPPDATA% (CurrentUser scope, readable only by that user).\n */\nexport async function getUserBlobSecret(account: string): Promise<null | string> {\n\treturn readDpapiBlob(localAppDataBlobPath(account), \"CurrentUser\");\n}\n\n/**\n * localAppDataBlobPath is the absolute path of the Windows per-user DPAPI blob a\n * regular-user install writes. MUST match scanner/internal/secretstore\n * userBlobPath: %LOCALAPPDATA%\\Onyx\\mcp-gateway\\<account>.bin.\n */\nexport function localAppDataBlobPath(account: string): string {\n\tconst base = env.LOCALAPPDATA ?? join(env.USERPROFILE ?? \"C:\\\\\", \"AppData\", \"Local\");\n\treturn join(base, \"Onyx\", \"mcp-gateway\", `${account}.bin`);\n}\n\n/**\n * programDataBlobPath is the absolute path of the Windows machine-scoped DPAPI\n * blob a privileged install writes. MUST match scanner/internal/secretstore\n * programDataBlobPath: %ProgramData%\\Onyx\\mcp-gateway\\<account>.bin.\n */\nexport function programDataBlobPath(account: string): string {\n\tconst base = env.ProgramData ?? \"C:\\\\ProgramData\";\n\treturn join(base, \"Onyx\", \"mcp-gateway\", `${account}.bin`);\n}\n\n/**\n * Resolve the scanner api-key from the OS secret store, bounded by an overall\n * hard deadline so the credential probe is GUARANTEED non-blocking — the gateway\n * must never hang on credential resolution before the MCP handshake (PRDCT-6680).\n *\n * Never throws. `opts` is for tests: `getSecretFn` injects a fake reader and\n * `timeoutMs` shrinks the deadline.\n */\nexport async function resolveApiKeyFromStore(\n\taccount: string,\n\topts: { getSecretFn?: (account: string) => Promise<null | string>; timeoutMs?: number } = {},\n): Promise<ApiKeyResolution> {\n\tconst getSecretFn = opts.getSecretFn ?? getSecret;\n\tconst timeoutMs = opts.timeoutMs ?? KEYCHAIN_PROBE_TIMEOUT_MS;\n\n\tlet timer: NodeJS.Timeout | undefined;\n\tconst deadline = new Promise<typeof PROBE_TIMEOUT>((resolve) => {\n\t\ttimer = setTimeout(() => resolve(PROBE_TIMEOUT), timeoutMs);\n\t\t// Don't keep the event loop alive just for this backstop timer.\n\t\ttimer.unref?.();\n\t});\n\n\ttry {\n\t\tconst result = await Promise.race([getSecretFn(account), deadline]);\n\t\tif (result === PROBE_TIMEOUT) {\n\t\t\treturn { key: null, source: \"timeout\" };\n\t\t}\n\t\tif (result) {\n\t\t\treturn { key: result, source: \"keychain\" };\n\t\t}\n\t\treturn { key: null, source: \"missing\" };\n\t} catch {\n\t\treturn { key: null, source: \"error\" };\n\t} finally {\n\t\tif (timer !== undefined) {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t}\n}\n\n/**\n * getSecretMac reads the gateway key from the macOS keychain. A privileged\n * install lands it in the System keychain (machine-wide); a regular-user\n * install lands it in the user's login keychain. Try the System keychain\n * explicitly first (so a customized search list can't hide it), then fall back\n * to the default search list, which covers the login keychain.\n */\nasync function getSecretMac(account: string): Promise<null | string> {\n\ttry {\n\t\treturn (\n\t\t\t(await readSecurityKeychain(account, MAC_SYSTEM_KEYCHAIN)) ??\n\t\t\t(await readSecurityKeychain(account, null))\n\t\t);\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nasync function getSecretNative(account: string): Promise<null | string> {\n\ttry {\n\t\tconst entry = await nativeEntry(account);\n\t\treturn entry.getPassword();\n\t} catch {\n\t\treturn null;\n\t}\n}\n\n/**\n * Build an @napi-rs/keyring Entry for the Linux libsecret read. libsecret\n * matches by attribute set (service + user), so the default constructor finds\n * entries the scanner wrote via go-keyring. Linux is the only caller: darwin\n * shells to /usr/bin/security and Windows reads the machine DPAPI blob, so\n * neither loads the native binding. The dynamic `import` is lazy so a missing\n * prebuild on musl/alpine/headless becomes a swallowed exception inside\n * getSecretNative rather than a module-load crash. Using `await import(...)`\n * (rather than createRequire) makes the load interceptable by vitest's\n * `vi.mock` on the Linux test path.\n */\nasync function nativeEntry(account: string) {\n\tconst { Entry } = await import(\"@napi-rs/keyring\");\n\treturn new Entry(SERVICE, account);\n}\n\n/**\n * readDpapiBlob reads a Windows DPAPI blob from `path` and decrypts it with the\n * given scope. Best-effort: any error (file absent, decrypt failure, missing\n * binding) is swallowed and returns null so the caller falls back. The\n * @primno/dpapi import is lazy so a missing prebuild never crashes startup\n * (mirrors the @napi-rs/keyring lazy import).\n */\nasync function readDpapiBlob(\n\tpath: string,\n\tscope: \"CurrentUser\" | \"LocalMachine\",\n): Promise<null | string> {\n\ttry {\n\t\tconst { readFile } = await import(\"node:fs/promises\");\n\t\tconst blob = await readFile(path);\n\t\tconst { Dpapi } = await import(\"@primno/dpapi\");\n\t\tconst decrypted = Dpapi.unprotectData(new Uint8Array(blob), null, scope);\n\t\tconst value = Buffer.from(decrypted).toString(\"utf8\");\n\t\treturn value === \"\" ? null : value;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\n// readSecurityKeychain runs `security find-generic-password -w` asynchronously,\n// reading the explicit `keychain` path when given or the default search list\n// when null. Never rejects — resolves null on miss/error/timeout so the caller\n// can fall through. Hard-bounded with killSignal \"SIGKILL\" (see the header).\nfunction readSecurityKeychain(account: string, keychain: null | string): Promise<null | string> {\n\treturn new Promise((resolve) => {\n\t\tconst args = [\"find-generic-password\", \"-s\", SERVICE, \"-a\", account, \"-w\"];\n\t\tif (keychain !== null) {\n\t\t\targs.push(keychain);\n\t\t}\n\t\texecFile(\n\t\t\t\"/usr/bin/security\",\n\t\t\targs,\n\t\t\t{ encoding: \"utf8\", killSignal: \"SIGKILL\", timeout: READ_TIMEOUT_MS },\n\t\t\t(error, stdout) => {\n\t\t\t\tif (error) {\n\t\t\t\t\t// miss, security CLI error, or SIGKILL'd timeout — all a miss.\n\t\t\t\t\tresolve(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst trimmed = String(stdout).trim();\n\t\t\t\tresolve(trimmed === \"\" ? null : trimmed);\n\t\t\t},\n\t\t);\n\t});\n}\n"],"mappings":"2LAgEA,MAAa,EAAU,mBAGV,EAAkB,UAwB/B,eAAsB,EAAqB,EAAyC,CACnF,OAAO,EAAc,EAAoB,EAAQ,CAAE,eAAe,CAQnE,eAAsB,EAAU,EAAyC,CAexE,OAdI,IAAa,SAET,EAAa,EAAQ,CAEzB,IAAa,QAMR,MAAM,EAAqB,EAAQ,EAAM,MAAM,EAAkB,EAAQ,CAI3E,EAAgB,EAAQ,CAIhC,MAAM,EAAgB,OAAO,yBAAyB,CAiBtD,eAAsB,EAAkB,EAAyC,CAChF,OAAO,EAAc,EAAqB,EAAQ,CAAE,cAAc,CAQnE,SAAgB,EAAqB,EAAyB,CAC7D,IAAM,EAAO,EAAI,cAAgB,EAAK,EAAI,aAAe,OAAQ,UAAW,QAAQ,CACpF,OAAO,EAAK,EAAM,OAAQ,cAAe,GAAG,EAAQ,MAAM,CAQ3D,SAAgB,EAAoB,EAAyB,CAC5D,IAAM,EAAO,EAAI,aAAe,kBAChC,OAAO,EAAK,EAAM,OAAQ,cAAe,GAAG,EAAQ,MAAM,CAW3D,eAAsB,EACrB,EACA,EAA0F,EAAE,CAChE,CAC5B,IAAM,EAAc,EAAK,aAAe,EAClC,EAAY,EAAK,WAAa,IAEhCA,EACE,EAAW,IAAI,QAA+B,GAAY,CAC/D,EAAQ,MAAiB,EAAQ,EAAc,CAAE,EAAU,CAE3D,EAAM,SAAS,EACd,CAEF,GAAI,CACH,IAAM,EAAS,MAAM,QAAQ,KAAK,CAAC,EAAY,EAAQ,CAAE,EAAS,CAAC,CAOnE,OANI,IAAW,EACP,CAAE,IAAK,KAAM,OAAQ,UAAW,CAEpC,EACI,CAAE,IAAK,EAAQ,OAAQ,WAAY,CAEpC,CAAE,IAAK,KAAM,OAAQ,UAAW,MAChC,CACP,MAAO,CAAE,IAAK,KAAM,OAAQ,QAAS,QAC5B,CACL,IAAU,IAAA,IACb,EAAa,EAAM,EAYtB,eAAe,EAAa,EAAyC,CACpE,GAAI,CACH,OACE,MAAM,EAAqB,EAAS,qCAAoB,EACxD,MAAM,EAAqB,EAAS,KAAK,MAEpC,CACP,OAAO,MAIT,eAAe,EAAgB,EAAyC,CACvE,GAAI,CAEH,OADc,MAAM,EAAY,EAAQ,EAC3B,aAAa,MACnB,CACP,OAAO,MAeT,eAAe,EAAY,EAAiB,CAC3C,GAAM,CAAE,SAAU,MAAM,OAAO,oBAC/B,OAAO,IAAI,EAAM,EAAS,EAAQ,CAUnC,eAAe,EACd,EACA,EACyB,CACzB,GAAI,CACH,GAAM,CAAE,YAAa,MAAM,OAAO,oBAC5B,EAAO,MAAM,EAAS,EAAK,CAC3B,CAAE,SAAU,MAAM,OAAO,iBACzB,EAAY,EAAM,cAAc,IAAI,WAAW,EAAK,CAAE,KAAM,EAAM,CAClE,EAAQ,OAAO,KAAK,EAAU,CAAC,SAAS,OAAO,CACrD,OAAO,IAAU,GAAK,KAAO,OACtB,CACP,OAAO,MAQT,SAAS,EAAqB,EAAiB,EAAiD,CAC/F,OAAO,IAAI,QAAS,GAAY,CAC/B,IAAM,EAAO,CAAC,wBAAyB,KAAM,EAAS,KAAM,EAAS,KAAK,CACtE,IAAa,MAChB,EAAK,KAAK,EAAS,CAEpB,EACC,oBACA,EACA,CAAE,SAAU,OAAQ,WAAY,UAAW,QAAS,IAAiB,EACpE,EAAO,IAAW,CAClB,GAAI,EAAO,CAEV,EAAQ,KAAK,CACb,OAED,IAAM,EAAU,OAAO,EAAO,CAAC,MAAM,CACrC,EAAQ,IAAY,GAAK,KAAO,EAAQ,EAEzC,EACA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__commonJSMin as e,__require as t,__toESM as n}from"./chunk-CrDKVgUD.js";import{CallToolRequestSchema as r,CallToolResultSchema as i,CancelledNotificationSchema as a,CompleteRequestSchema as o,CompleteResultSchema as s,CreateMessageResultSchema as c,DEFAULT_NEGOTIATED_PROTOCOL_VERSION as l,ElicitResultSchema as u,EmptyResultSchema as d,ErrorCode as f,GetPromptRequestSchema as p,GetPromptResultSchema as m,InitializeRequestSchema as h,InitializeResultSchema as g,InitializedNotificationSchema as _,JSONRPCMessageSchema as v,LATEST_PROTOCOL_VERSION as y,ListPromptsRequestSchema as b,ListPromptsResultSchema as x,ListResourceTemplatesRequestSchema as S,ListResourceTemplatesResultSchema as C,ListResourcesRequestSchema as w,ListResourcesResultSchema as T,ListRootsResultSchema as E,ListToolsRequestSchema as D,ListToolsResultSchema as O,LoggingLevelSchema as k,LoggingMessageNotificationSchema as A,McpError as j,PingRequestSchema as M,ProgressNotificationSchema as N,ReadResourceRequestSchema as P,ReadResourceResultSchema as F,ResourceUpdatedNotificationSchema as I,SUPPORTED_PROTOCOL_VERSIONS as L,SetLevelRequestSchema as R,SubscribeRequestSchema as z,UnsubscribeRequestSchema as B,isInitializeRequest as V,isJSONRPCError as H,isJSONRPCNotification as U,isJSONRPCRequest as W,isJSONRPCResponse as G}from"./normalizeUrl-fkFv5Mfb.js";import{SESSION_ID as K,config as q}from"./env-
|
|
1
|
+
import{__commonJSMin as e,__require as t,__toESM as n}from"./chunk-CrDKVgUD.js";import{CallToolRequestSchema as r,CallToolResultSchema as i,CancelledNotificationSchema as a,CompleteRequestSchema as o,CompleteResultSchema as s,CreateMessageResultSchema as c,DEFAULT_NEGOTIATED_PROTOCOL_VERSION as l,ElicitResultSchema as u,EmptyResultSchema as d,ErrorCode as f,GetPromptRequestSchema as p,GetPromptResultSchema as m,InitializeRequestSchema as h,InitializeResultSchema as g,InitializedNotificationSchema as _,JSONRPCMessageSchema as v,LATEST_PROTOCOL_VERSION as y,ListPromptsRequestSchema as b,ListPromptsResultSchema as x,ListResourceTemplatesRequestSchema as S,ListResourceTemplatesResultSchema as C,ListResourcesRequestSchema as w,ListResourcesResultSchema as T,ListRootsResultSchema as E,ListToolsRequestSchema as D,ListToolsResultSchema as O,LoggingLevelSchema as k,LoggingMessageNotificationSchema as A,McpError as j,PingRequestSchema as M,ProgressNotificationSchema as N,ReadResourceRequestSchema as P,ReadResourceResultSchema as F,ResourceUpdatedNotificationSchema as I,SUPPORTED_PROTOCOL_VERSIONS as L,SetLevelRequestSchema as R,SubscribeRequestSchema as z,UnsubscribeRequestSchema as B,isInitializeRequest as V,isJSONRPCError as H,isJSONRPCNotification as U,isJSONRPCRequest as W,isJSONRPCResponse as G}from"./normalizeUrl-fkFv5Mfb.js";import{SESSION_ID as K,config as q}from"./env-DcnPhczq.js";import{extractTraceIdFromHeaders as J,gatewayCorrelationId as Y,logger as X,require_inherits as ee,runWithTraceContextAsync as te}from"./logger-B-pEn-Qn.js";import{randomUUID as ne}from"crypto";import{homedir as Z,hostname as Q,userInfo as re}from"node:os";import{join as ie}from"node:path";import{randomUUID as ae}from"node:crypto";import{existsSync as oe,readFileSync as se}from"node:fs";import ce from"ps-list";import{deflateSync as le}from"node:zlib";import{URL as ue}from"url";import de from"node:http";import fe from"node:process";var pe=class{counter=0;events=new Map;async replayEventsAfter(e,{send:t}){if(!e||!this.events.has(e))return``;let n=this.getStreamIdFromEventId(e);if(!n)return``;let r=!1,i=[...this.events.entries()].sort((e,t)=>e[0].localeCompare(t[0]));for(let[a,{message:o,streamId:s}]of i){if(s!==n)continue;if(a===e){r=!0;continue}r&&await t(a,o)}return n}async storeEvent(e,t){let n=this.generateEventId(e);return this.events.set(n,{message:t,streamId:e}),n}generateEventId(e){let t=(++this.counter).toString().padStart(12,`0`);return`${e}_${Date.now()}_${t}_${Math.random().toString(36).substring(2,10)}`}getStreamIdFromEventId(e){let t=e.split(`_`);return t.length<4?``:t.slice(0,-3).join(`_`)}},me=class extends Error{extra;tags;constructor(e,t,n={},r={}){super(t),this.name=e,this.tags=n,this.extra=r}},he=class extends me{constructor(e,t=`access_denied`,n={}){super(`AccessControlBlockError`,e,{feature:`access_control`,module:`security`,operation:`block`},{reason:t,...n}),this.reason=t}},ge=class extends me{constructor(e,t,n={}){super(`ConfigurationError`,e,{feature:`configuration`,module:`cli`,operation:`validate`},{configKey:t,...n})}},_e=class extends me{constructor(e,t,n,r={}){super(`ProxyConnectionError`,e,{feature:`connection`,module:`proxy`,operation:`connect`,transport:n||`unknown`},{url:t?(()=>{try{return new URL(t).origin}catch{return t}})():void 0,...r})}};const ve=q.clientAppName;let ye=null;const be=async()=>(ye||=await import(`systeminformation`),ye);function xe(e){return typeof e==`string`&&e!==``&&e.includes(`@`)}function Se(){try{let e=Ee();if(!oe(e))return null;let t=se(e,`utf-8`),n=!1;for(let e of t.split(`
|
|
2
2
|
`)){let t=e.trim();if(t.startsWith(`#`)||t.startsWith(`;`))continue;if(t.startsWith(`[`)){n=t.toLowerCase()===`[user]`;continue}if(n){let e=t.match(/^email\s*=\s*(.+)/i);if(e)return e[1].replace(/\s+[#;].*$/,``).trim()||null}}return null}catch{return null}}function Ce(){return ie(Z(),`.claude.json`)}function we(){return ie(Z(),`.codex`,`auth.json`)}function Te(){try{return Q()}catch{return`unknown-device`}}function Ee(){return ie(Z(),`.gitconfig`)}async function De(e){try{return(await ce()).find(t=>t.pid===e)?.name||`unknown`}catch{return`unknown`}}async function Oe(){try{let e=(await(await be()).system()).serial;return e&&e!==``&&e!==`0`&&!e.toLowerCase().includes(`to be filled`)?e:void 0}catch{return}}function ke(){try{let e=je()?.oauthAccount?.emailAddress;if(xe(e))return e;let t=Me();if(xe(t))return t;let n=Se();return xe(n)?n:void 0}catch{return}}function Ae(){try{let e=re();if(e.username)return e.username;throw Error(`userInfo() returned empty username`)}catch{return process.env.USER||process.env.USERNAME||process.env.LOGNAME}}function je(){try{let e=Ce();if(!oe(e))return null;let t=se(e,`utf-8`);return JSON.parse(t)}catch{return null}}function Me(){try{let e=we();if(!oe(e))return null;let t=se(e,`utf-8`),n=JSON.parse(t)?.tokens?.id_token;if(!n)return null;let r=n.split(`.`);if(r.length!==3)return null;let i=Buffer.from(r[1],`base64url`).toString(`utf-8`);return JSON.parse(i).email||null}catch{return null}}const Ne=()=>{if(!oe(`/.dockerenv`))return null;try{let e=se(ie(Z(),`.onyx`,`container-context.json`),`utf8`),t=JSON.parse(e);return t.container_id?t:null}catch{return null}},Pe=e=>{let t=process.env.ONYX_DOCKER_CONTAINER_ID,n=t?null:Ne(),r=t||n?.container_id;return r?{...e,containerRuntime:process.env.ONYX_CONTAINER_RUNTIME||void 0,deviceName:process.env.ONYX_HOST_DEVICE_NAME||n?.host_device_name||e.deviceName,dockerContainerId:r,dockerContainerName:process.env.ONYX_DOCKER_CONTAINER_NAME||n?.container_name||void 0,dockerImage:process.env.ONYX_DOCKER_IMAGE||n?.image||void 0,dockerImageId:process.env.ONYX_DOCKER_IMAGE_ID||n?.image_id||void 0,inDockerContainer:!0,systemSerialNumber:process.env.ONYX_HOST_SERIAL_NUMBER||n?.host_serial_number||e.systemSerialNumber}:e},Fe=async()=>{let e=process.pid,t=process.ppid;try{let n=Te(),[r,i]=await Promise.all([Oe(),De(t)]),a=ke(),o=Ae();return Pe({clientAppName:ve||`unknown`,deviceName:n,email:a,gatewayVersion:q.appVersion,parentProcessId:t,parentProcessName:i,processId:e,systemSerialNumber:r,username:o})}catch{return Pe({clientAppName:ve||`unknown`,deviceName:`unknown-device`,email:void 0,gatewayVersion:q.appVersion,parentProcessId:t,parentProcessName:`unknown`,processId:e,systemSerialNumber:void 0,username:void 0})}},Ie=`[REDACTED]`,Le=new Set([`api_key`,`api-key`,`apikey`,`authorization`,`bearer`,`credential`,`credentials`,`header`,`headers`,`key`,`pass`,`passwd`,`password`,`pwd`,`secret`,`token`]);function Re(e){let t=[],n=!1;for(let r of e){if(n){t.push(Ie),n=!1;continue}if(r.startsWith(`-H`)&&r.length>2&&!r.startsWith(`--`)&&r[2]!==`=`){t.push(`-H`+Ie);continue}let e=ze(r);if(e!==null&&Be(e))if(r.includes(`=`)){let e=r.indexOf(`=`);t.push(r.slice(0,e+1)+Ie)}else t.push(r),n=!0;else t.push(r)}return t}function ze(e){if(!e.startsWith(`-`))return null;let t=e.replace(/^-{1,2}/,``),n=t.indexOf(`=`);return n>=0?t.slice(0,n):t}function Be(e){return e===`H`?!0:Le.has(e.toLowerCase())}const Ve=`onyx.security`;function He(e){if(!e)return e;let t;try{t=new URL(e)}catch{return e}if(!t.host||t.pathname===``||t.pathname===`/`)return e;let n=t.hostname.toLowerCase().replace(/\.$/,``);if(n!==Ve&&!n.endsWith(`.${Ve}`))return e;let r=t.pathname.split(`/`),i=r.findIndex(e=>e.length>0);if(i===-1)return e;r[i]=`[REDACTED]`;let a=r.join(`/`);return`${t.protocol}//${t.host}${a}${t.search}${t.hash}`}function Ue(e){let t=le(JSON.stringify(e));return Buffer.from(t).toString(`base64url`)}var We=class{clientAppName;clientInfoBase64;sessionData;get scannerConfig(){return{apiKey:this.config.scanApiKey,enabled:this.config.scanEnabled,failOpen:this.config.scanFailOpen,headers:this.config.scanHeaders,timeoutMs:this.config.scanTimeoutMs,url:this.config.scanUrl}}config;constructor(e,t){this.config=e,this.sessionData=t,this.clientAppName=t.clientAppName||``,this.clientInfoBase64=this.getClientInfoBase64()}async evaluate(e){let t={action:`allow`};if(this.isScanEnabled())try{if(t=await this.scan({data:e.data,id:e.id,method:e.method,originalRequestId:e.originalRequestId,timestamp:e.timestamp,type:e.type}),X.info(`Scan result`,{action:t.action,id:e.id,method:e.method,originalRequestId:e.originalRequestId}),t.action===`block`)return X.warn(`Request blocked by security policy`),t}catch(t){if(X.error(`Scanning failed`,{error:t,method:e.method,requestType:e.type,scannerUrl:this.config.scanUrl}),!this.config.scanFailOpen)return X.warn(`Scanning service unavailable, blocking traffic (fail-closed)`),{action:`block`};X.warn(`Scanning service unavailable, allowing traffic (fail-open)`)}return t}isEnabled(){return this.isScanEnabled()}isScanEnabled(){return this.config.scanEnabled&&!!this.config.scanUrl}async scan(e){if(!this.isScanEnabled())return{action:`allow`};let t={data:e.data,id:e.id,metadata:this.sessionData,method:e.method,originalRequestId:e.originalRequestId,type:e.type};X.info(`Scanning traffic`,{id:e.id,method:e.method,originalRequestId:e.originalRequestId,type:e.type});let n=await this.sendScanRequest(t);return X.info(`Scan result`,{action:n.action,blockReason:n.block_reason,hasModifiedData:!!n.modified_data,id:e.id,originalRequestId:e.originalRequestId}),n}updateConfig(e){this.config={...this.config,...e}}getClientInfoBase64(){return Ue(this.sessionData)}async sendScanRequest(e){let t=new AbortController,n=setTimeout(()=>t.abort(),this.config.scanTimeoutMs);try{let n=`${this.config.scanUrl}/${this.config.scanApiKey}/mcp/${this.clientInfoBase64}`,r={data:e.data,id:e.id,metadata:e.metadata,method:e.method,sessionId:K,...e.originalRequestId&&{original_request_id:String(e.originalRequestId)},type:e.type},i=await fetch(n,{body:JSON.stringify(r),headers:{"Content-Type":`application/json`,...this.config.scanHeaders},method:`POST`,signal:t.signal});if(!i.ok)throw Error(`Sanitization service returned ${i.status}: ${i.statusText}`);let a=await i.json();if(!a.action||![`allow`,`block`,`modify`].includes(a.action))throw Error(`Invalid scan response format: action="${a.action}"`);return a}catch(e){throw e instanceof Error&&e.name===`AbortError`?Error(`Scan request timed out after ${this.config.scanTimeoutMs}ms`):e}finally{clearTimeout(n)}}};let Ge=null;const Ke=async e=>{let t=await Fe(),n=e.cliArgs.proxyType,r=n===`stdio`?{...e.cliArgs,args:Re(e.cliArgs.args)}:e.cliArgs,i={...t,proxyType:n,remoteCliArgs:n===`remote`?r:void 0,stdioCliArgs:n===`stdio`?r:void 0},a=n===`remote`?{...i,remoteCliArgs:{...r,url:He(r.url)}}:i;return X.setSessionData(a),Ge=new We(e,i),Ge},qe=()=>Ge,Je=e=>{if(e.maxTotalTimeoutMs<0)throw Error(`maxTotalTimeoutMs must be >= 0 (0 disables the cap), got ${e.maxTotalTimeoutMs}`);let t={resetTimeoutOnProgress:e.resetTimeoutOnProgress,timeout:e.timeoutMs};return e.maxTotalTimeoutMs>0&&(t.maxTotalTimeout=e.maxTotalTimeoutMs),t},Ye=new class{counts=new Map;lastLogTime=Date.now();logIntervalMs=6e4;increment(e){this.counts.set(e,(this.counts.get(e)||0)+1),this.maybeLog()}logAndReset(){if(this.counts.size===0)return;let e=(Array.from(this.counts.values()).reduce((e,t)=>e+t,0));X.info(`Requests intercepted`,{byMethod:Object.fromEntries(this.counts),eventType:`mcp_requests_intercepted`,totalCount:e}),this.counts.clear(),this.lastLogTime=Date.now()}maybeLog(){Date.now()-this.lastLogTime>=this.logIntervalMs&&this.logAndReset()}},Xe=()=>{Ye.logAndReset()},Ze=e=>e.length>1&&e[1]&&typeof e[1]==`object`&&`requestId`in e[1]?e[1].requestId:void 0,$=(e,t,n,r)=>async(...i)=>{Ye.increment(e);let a=qe(),o=e,s=i[0],c=ne(),l=Ze(i)?.toString();s&&typeof s==`object`&&`method`in s&&typeof s.method==`string`&&(o=s.method);let u=async(e,t,n)=>{try{if(!a?.isEnabled()&&!a?.isScanEnabled())return;let r;try{r=await a.evaluate({data:t,id:c,method:o,originalRequestId:l,timestamp:new Date().toISOString(),type:e})}catch(t){if(X.error(`${e} evaluation failed, applying fail-safe`,{error:t}),a?.isScanEnabled()&&!a.scannerConfig?.failOpen)throw Error(`Security scanning service unavailable`);return}if(X.info(`${e} scan result`,{action:r.action,id:c,method:o,...e===`request`&&{originalRequestId:l}}),r.action===`block`||r.action===`modify`){let t=r.action===`block`?`blocked`:`modified`,i=r.action===`block`&&e===`request`?`warn`:`log`;if(r.modified_data){if(r.action===`block`){let n=`${e} ${t} by security policy${e===`request`?`, returning error response`:``}`;return i===`warn`?X.warn(n):X.info(n),r.modified_data}if(n){let a=`${e} ${t} by security policy`;i===`warn`?X.warn(a):X.info(a),n(r.modified_data);return}return r.modified_data}X.warn(`${r.action} action without modified_data, allowing original ${e}`)}return}catch(t){if(X.error(`Unexpected error during ${e} processing`,{error:t}),e===`request`&&t instanceof Error&&t.message===`Security scanning service unavailable`)throw t;return}},d;try{d=await u(`request`,s,e=>{i[0]=e})}catch(n){if(n instanceof Error&&n.message===`Security scanning service unavailable`)throw X.error(`Security scanning unavailable (fail-closed)`,{error:n.message,handlerName:e,operation:t}),n;X.error(`Unexpected error during request processing, continuing`,{error:n,handlerName:e,operation:t})}if(d!==void 0)return d;if(r&&!await r.isAllowed()){let n=r.getBlockReason();throw X.warn(`MCP server blocked by access control`,{handlerName:e,operation:t,reason:n}),new he(n,`policy_block`)}try{let e=await n(...i);try{if(e){let t=await u(`response`,e);if(t!==void 0)return t}}catch(e){X.error(`Error during response processing, returning original result`,{error:e})}return e}catch(n){if(n instanceof he)throw X.info(`Request blocked by access control`,{error:n.message,handlerName:e,operation:t,reason:n.reason}),n;try{await u(`error`,{error:n instanceof Error?n.message:String(n),stack:n instanceof Error?n.stack:void 0})}catch(e){X.warn(`Failed to evaluate error`,{evalError:e})}throw X.error(`Handler error in ${e}`,{argsCount:i.length,errorMessage:n instanceof Error?n.message:String(n),operation:t}),n}},Qe=async({authorizer:e,client:t,forwarding:n=q.toolCall,server:i,serverCapabilities:a})=>{let s=Je(n);a?.logging&&(i.setNotificationHandler(A,$(`notifications/message`,`server-to-client`,async e=>t.notification(e),e)),t.setNotificationHandler(A,$(`notifications/message`,`client-to-server`,async e=>i.notification(e),e))),a?.prompts&&(i.setRequestHandler(p,$(`prompts/get`,`get`,async e=>t.getPrompt(e.params,s),e)),i.setRequestHandler(b,$(`prompts/list`,`list`,async e=>t.listPrompts(e.params,s),e))),a?.resources&&(i.setRequestHandler(w,$(`resources/list`,`list`,async e=>t.listResources(e.params,s),e)),i.setRequestHandler(S,$(`resources/templates/list`,`list`,async e=>t.listResourceTemplates(e.params,s),e)),i.setRequestHandler(P,$(`resources/read`,`read`,async e=>t.readResource(e.params,s),e)),a?.resources.subscribe&&(i.setNotificationHandler(I,$(`notifications/resources/updated`,`notify`,async e=>t.notification(e),e)),i.setRequestHandler(z,$(`resources/subscribe`,`subscribe`,async e=>t.subscribeResource(e.params,s),e)),i.setRequestHandler(B,$(`resources/unsubscribe`,`unsubscribe`,async e=>t.unsubscribeResource(e.params,s),e)))),a?.tools&&(i.setRequestHandler(r,$(`tools/call`,`call`,async(e,n)=>{let r=n._meta?.progressToken,i=r===void 0?void 0:e=>{n.sendNotification({method:`notifications/progress`,params:{...e,progressToken:r}}).catch(e=>{X.warn(`Failed to forward progress notification to client`,{error:e})})};return t.callTool(e.params,void 0,{...s,onprogress:i})},e)),i.setRequestHandler(D,$(`tools/list`,`list`,async e=>t.listTools(e.params,s),e))),i.setRequestHandler(o,$(`completion/complete`,`complete`,async e=>t.complete(e.params,s),e))};var $e=e(((exports,t)=>{t.exports=o,t.exports.format=s,t.exports.parse=c;var n=/\B(?=(\d{3})+(?!\d))/g,r=/(?:\.0*|(\.[^0]+)0+)$/,i={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:1024**4,pb:1024**5},a=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function o(e,t){return typeof e==`string`?c(e):typeof e==`number`?s(e,t):null}function s(e,t){if(!Number.isFinite(e))return null;var a=Math.abs(e),o=t&&t.thousandsSeparator||``,s=t&&t.unitSeparator||``,c=t&&t.decimalPlaces!==void 0?t.decimalPlaces:2,l=!!(t&&t.fixedDecimals),u=t&&t.unit||``;(!u||!i[u.toLowerCase()])&&(u=a>=i.pb?`PB`:a>=i.tb?`TB`:a>=i.gb?`GB`:a>=i.mb?`MB`:a>=i.kb?`KB`:`B`);var d=(e/i[u.toLowerCase()]).toFixed(c);return l||(d=d.replace(r,`$1`)),o&&(d=d.split(`.`).map(function(e,t){return t===0?e.replace(n,o):e}).join(`.`)),d+s+u}function c(e){if(typeof e==`number`&&!isNaN(e))return e;if(typeof e!=`string`)return null;var t=a.exec(e),n,r=`b`;return t?(n=parseFloat(t[1]),r=t[4].toLowerCase()):(n=parseInt(e,10),r=`b`),isNaN(n)?null:Math.floor(i[r]*n)}})),et=e(((exports,n)=>{
|
|
3
3
|
/*!
|
|
4
4
|
* depd
|
|
@@ -23,4 +23,4 @@ return fn.apply(this, arguments)
|
|
|
23
23
|
(function(n,r){typeof exports==`object`&&t!==void 0?r(exports):typeof define==`function`&&define.amd?define([`exports`],r):r(n.URI=n.URI||{})})(exports,(function(e){function t(){var e=[...arguments];if(e.length>1){e[0]=e[0].slice(0,-1);for(var t=e.length-1,n=1;n<t;++n)e[n]=e[n].slice(1,-1);return e[t]=e[t].slice(1),e.join(``)}else return e[0]}function n(e){return`(?:`+e+`)`}function r(e){return e===void 0?`undefined`:e===null?`null`:Object.prototype.toString.call(e).split(` `).pop().split(`]`).shift().toLowerCase()}function i(e){return e.toUpperCase()}function a(e){return e==null?[]:e instanceof Array?e:typeof e.length!=`number`||e.split||e.setInterval||e.call?[e]:Array.prototype.slice.call(e)}function o(e,t){var n=e;if(t)for(var r in t)n[r]=t[r];return n}function s(e){var r=`[A-Za-z]`,i=`[0-9]`,a=t(i,`[A-Fa-f]`),o=n(n(`%[EFef]`+a+`%`+a+a+`%`+a+a)+`|`+n(`%[89A-Fa-f]`+a+`%`+a+a)+`|`+n(`%`+a+a)),s=`[\\:\\/\\?\\#\\[\\]\\@]`,c=`[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]`,l=t(s,c),u=e?`[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]`:`[]`,d=e?`[\\uE000-\\uF8FF]`:`[]`,f=t(r,i,`[\\-\\.\\_\\~]`,u),p=n(r+t(r,i,`[\\+\\-\\.]`)+`*`),m=n(n(o+`|`+t(f,c,`[\\:]`))+`*`);n(n(`25[0-5]`)+`|`+n(`2[0-4]`+i)+`|`+n(`1`+i+i)+`|`+n(`[1-9]`+i)+`|`+i);var h=n(n(`25[0-5]`)+`|`+n(`2[0-4]`+i)+`|`+n(`1`+i+i)+`|`+n(`0?[1-9]`+i)+`|0?0?`+i),g=n(h+`\\.`+h+`\\.`+h+`\\.`+h),_=n(a+`{1,4}`),v=n(n(_+`\\:`+_)+`|`+g),y=n(n(_+`\\:`)+`{6}`+v),b=n(`\\:\\:`+n(_+`\\:`)+`{5}`+v),x=n(n(_)+`?\\:\\:`+n(_+`\\:`)+`{4}`+v),S=n(n(n(_+`\\:`)+`{0,1}`+_)+`?\\:\\:`+n(_+`\\:`)+`{3}`+v),C=n(n(n(_+`\\:`)+`{0,2}`+_)+`?\\:\\:`+n(_+`\\:`)+`{2}`+v),w=n(n(n(_+`\\:`)+`{0,3}`+_)+`?\\:\\:`+_+`\\:`+v),T=n(n(n(_+`\\:`)+`{0,4}`+_)+`?\\:\\:`+v),E=n(n(n(_+`\\:`)+`{0,5}`+_)+`?\\:\\:`+_),D=n(n(n(_+`\\:`)+`{0,6}`+_)+`?\\:\\:`),O=n([y,b,x,S,C,w,T,E,D].join(`|`)),k=n(n(f+`|`+o)+`+`);n(O+`\\%25`+k);var A=n(O+n(`\\%25|\\%(?!`+a+`{2})`)+k),j=n(`[vV]`+a+`+\\.`+t(f,c,`[\\:]`)+`+`),M=n(`\\[`+n(A+`|`+O+`|`+j)+`\\]`),N=n(n(o+`|`+t(f,c))+`*`),P=n(M+`|`+g+`(?!`+N+`)|`+N),F=n(i+`*`),I=n(n(m+`@`)+`?`+P+n(`\\:`+F)+`?`),L=n(o+`|`+t(f,c,`[\\:\\@]`)),R=n(L+`*`),z=n(L+`+`),B=n(n(o+`|`+t(f,c,`[\\@]`))+`+`),V=n(n(`\\/`+R)+`*`),H=n(`\\/`+n(z+V)+`?`),U=n(B+V),W=n(z+V),G=`(?!`+L+`)`;n(V+`|`+H+`|`+U+`|`+W+`|`+G);var K=n(n(L+`|`+t(`[\\/\\?]`,d))+`*`),q=n(n(L+`|[\\/\\?]`)+`*`),J=n(n(`\\/\\/`+I+V)+`|`+H+`|`+W+`|`+G),Y=n(p+`\\:`+J+n(`\\?`+K)+`?`+n(`\\#`+q)+`?`),X=n(n(`\\/\\/`+I+V)+`|`+H+`|`+U+`|`+G),ee=n(X+n(`\\?`+K)+`?`+n(`\\#`+q)+`?`);return n(Y+`|`+ee),n(p+`\\:`+J+n(`\\?`+K)+`?`),``+p+n(n(`\\/\\/(`+n(`(`+m+`)@`)+`?(`+P+`)`+n(`\\:(`+F+`)`)+`?)`)+`?(`+V+`|`+H+`|`+W+`|`+G+`)`)+n(`\\?(`+K+`)`)+n(`\\#(`+q+`)`),``+n(n(`\\/\\/(`+n(`(`+m+`)@`)+`?(`+P+`)`+n(`\\:(`+F+`)`)+`?)`)+`?(`+V+`|`+H+`|`+U+`|`+G+`)`)+n(`\\?(`+K+`)`)+n(`\\#(`+q+`)`),``+p+n(n(`\\/\\/(`+n(`(`+m+`)@`)+`?(`+P+`)`+n(`\\:(`+F+`)`)+`?)`)+`?(`+V+`|`+H+`|`+W+`|`+G+`)`)+n(`\\?(`+K+`)`),``+n(`\\#(`+q+`)`),``+n(`(`+m+`)@`)+P+n(`\\:(`+F+`)`),{NOT_SCHEME:new RegExp(t(`[^]`,r,i,`[\\+\\-\\.]`),`g`),NOT_USERINFO:new RegExp(t(`[^\\%\\:]`,f,c),`g`),NOT_HOST:new RegExp(t(`[^\\%\\[\\]\\:]`,f,c),`g`),NOT_PATH:new RegExp(t(`[^\\%\\/\\:\\@]`,f,c),`g`),NOT_PATH_NOSCHEME:new RegExp(t(`[^\\%\\/\\@]`,f,c),`g`),NOT_QUERY:new RegExp(t(`[^\\%]`,f,c,`[\\:\\@\\/\\?]`,d),`g`),NOT_FRAGMENT:new RegExp(t(`[^\\%]`,f,c,`[\\:\\@\\/\\?]`),`g`),ESCAPE:new RegExp(t(`[^]`,f,c),`g`),UNRESERVED:new RegExp(f,`g`),OTHER_CHARS:new RegExp(t(`[^\\%]`,f,l),`g`),PCT_ENCODED:new RegExp(o,`g`),IPV4ADDRESS:RegExp(`^(`+g+`)$`),IPV6ADDRESS:RegExp(`^\\[?(`+O+`)`+n(n(`\\%25|\\%(?!`+a+`{2})`)+`(`+k+`)`)+`?\\]?$`)}}var c=s(!1),l=s(!0),u=function(){function e(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(r=(s=o.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(e){i=!0,a=e}finally{try{!r&&o.return&&o.return()}finally{if(i)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw TypeError(`Invalid attempt to destructure non-iterable instance`)}}(),d=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}else return Array.from(e)},f=2147483647,p=36,m=1,h=26,g=38,_=700,v=72,y=128,b=`-`,x=/^xn--/,S=/[^\0-\x7E]/,C=/[\x2E\u3002\uFF0E\uFF61]/g,w={overflow:`Overflow: input needs wider integers to process`,"not-basic":`Illegal input >= 0x80 (not a basic code point)`,"invalid-input":`Invalid input`},T=p-m,E=Math.floor,D=String.fromCharCode;function O(e){throw RangeError(w[e])}function k(e,t){for(var n=[],r=e.length;r--;)n[r]=t(e[r]);return n}function A(e,t){var n=e.split(`@`),r=``;n.length>1&&(r=n[0]+`@`,e=n[1]),e=e.replace(C,`.`);var i=e.split(`.`),a=k(i,t).join(`.`);return r+a}function j(e){for(var t=[],n=0,r=e.length;n<r;){var i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var a=e.charCodeAt(n++);(a&64512)==56320?t.push(((i&1023)<<10)+(a&1023)+65536):(t.push(i),n--)}else t.push(i)}return t}var M=function(e){return String.fromCodePoint.apply(String,d(e))},N=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:p},P=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},F=function(e,t,n){var r=0;for(e=n?E(e/_):e>>1,e+=E(e/t);e>T*h>>1;r+=p)e=E(e/T);return E(r+(T+1)*e/(e+g))},I=function(e){var t=[],n=e.length,r=0,i=y,a=v,o=e.lastIndexOf(b);o<0&&(o=0);for(var s=0;s<o;++s)e.charCodeAt(s)>=128&&O(`not-basic`),t.push(e.charCodeAt(s));for(var c=o>0?o+1:0;c<n;){for(var l=r,u=1,d=p;;d+=p){c>=n&&O(`invalid-input`);var g=N(e.charCodeAt(c++));(g>=p||g>E((f-r)/u))&&O(`overflow`),r+=g*u;var _=d<=a?m:d>=a+h?h:d-a;if(g<_)break;var x=p-_;u>E(f/x)&&O(`overflow`),u*=x}var S=t.length+1;a=F(r-l,S,l==0),E(r/S)>f-i&&O(`overflow`),i+=E(r/S),r%=S,t.splice(r++,0,i)}return String.fromCodePoint.apply(String,t)},L=function(e){var t=[];e=j(e);var n=e.length,r=y,i=0,a=v,o=!0,s=!1,c=void 0;try{for(var l=e[Symbol.iterator](),u;!(o=(u=l.next()).done);o=!0){var d=u.value;d<128&&t.push(D(d))}}catch(e){s=!0,c=e}finally{try{!o&&l.return&&l.return()}finally{if(s)throw c}}var g=t.length,_=g;for(g&&t.push(b);_<n;){var x=f,S=!0,C=!1,w=void 0;try{for(var T=e[Symbol.iterator](),k;!(S=(k=T.next()).done);S=!0){var A=k.value;A>=r&&A<x&&(x=A)}}catch(e){C=!0,w=e}finally{try{!S&&T.return&&T.return()}finally{if(C)throw w}}var M=_+1;x-r>E((f-i)/M)&&O(`overflow`),i+=(x-r)*M,r=x;var N=!0,I=!1,L=void 0;try{for(var R=e[Symbol.iterator](),z;!(N=(z=R.next()).done);N=!0){var B=z.value;if(B<r&&++i>f&&O(`overflow`),B==r){for(var V=i,H=p;;H+=p){var U=H<=a?m:H>=a+h?h:H-a;if(V<U)break;var W=V-U,G=p-U;t.push(D(P(U+W%G,0))),V=E(W/G)}t.push(D(P(V,0))),a=F(i,M,_==g),i=0,++_}}}catch(e){I=!0,L=e}finally{try{!N&&R.return&&R.return()}finally{if(I)throw L}}++i,++r}return t.join(``)},R={version:`2.1.0`,ucs2:{decode:j,encode:M},decode:I,encode:L,toASCII:function(e){return A(e,function(e){return S.test(e)?`xn--`+L(e):e})},toUnicode:function(e){return A(e,function(e){return x.test(e)?I(e.slice(4).toLowerCase()):e})}},z={};function B(e){var t=e.charCodeAt(0),n=void 0;return n=t<16?`%0`+t.toString(16).toUpperCase():t<128?`%`+t.toString(16).toUpperCase():t<2048?`%`+(t>>6|192).toString(16).toUpperCase()+`%`+(t&63|128).toString(16).toUpperCase():`%`+(t>>12|224).toString(16).toUpperCase()+`%`+(t>>6&63|128).toString(16).toUpperCase()+`%`+(t&63|128).toString(16).toUpperCase(),n}function V(e){for(var t=``,n=0,r=e.length;n<r;){var i=parseInt(e.substr(n+1,2),16);if(i<128)t+=String.fromCharCode(i),n+=3;else if(i>=194&&i<224){if(r-n>=6){var a=parseInt(e.substr(n+4,2),16);t+=String.fromCharCode((i&31)<<6|a&63)}else t+=e.substr(n,6);n+=6}else if(i>=224){if(r-n>=9){var o=parseInt(e.substr(n+4,2),16),s=parseInt(e.substr(n+7,2),16);t+=String.fromCharCode((i&15)<<12|(o&63)<<6|s&63)}else t+=e.substr(n,9);n+=9}else t+=e.substr(n,3),n+=3}return t}function H(e,t){function n(e){var n=V(e);return n.match(t.UNRESERVED)?n:e}return e.scheme&&=String(e.scheme).replace(t.PCT_ENCODED,n).toLowerCase().replace(t.NOT_SCHEME,``),e.userinfo!==void 0&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,n).replace(t.NOT_USERINFO,B).replace(t.PCT_ENCODED,i)),e.host!==void 0&&(e.host=String(e.host).replace(t.PCT_ENCODED,n).toLowerCase().replace(t.NOT_HOST,B).replace(t.PCT_ENCODED,i)),e.path!==void 0&&(e.path=String(e.path).replace(t.PCT_ENCODED,n).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,B).replace(t.PCT_ENCODED,i)),e.query!==void 0&&(e.query=String(e.query).replace(t.PCT_ENCODED,n).replace(t.NOT_QUERY,B).replace(t.PCT_ENCODED,i)),e.fragment!==void 0&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,n).replace(t.NOT_FRAGMENT,B).replace(t.PCT_ENCODED,i)),e}function U(e){return e.replace(/^0*(.*)/,`$1`)||`0`}function W(e,t){var n=e.match(t.IPV4ADDRESS)||[],r=u(n,2),i=r[1];return i?i.split(`.`).map(U).join(`.`):e}function G(e,t){var n=e.match(t.IPV6ADDRESS)||[],r=u(n,3),i=r[1],a=r[2];if(i){for(var o=i.toLowerCase().split(`::`).reverse(),s=u(o,2),c=s[0],l=s[1],d=l?l.split(`:`).map(U):[],f=c.split(`:`).map(U),p=t.IPV4ADDRESS.test(f[f.length-1]),m=p?7:8,h=f.length-m,g=Array(m),_=0;_<m;++_)g[_]=d[_]||f[h+_]||``;p&&(g[m-1]=W(g[m-1],t));var v=g.reduce(function(e,t,n){if(!t||t===`0`){var r=e[e.length-1];r&&r.index+r.length===n?r.length++:e.push({index:n,length:1})}return e},[]).sort(function(e,t){return t.length-e.length})[0],y=void 0;if(v&&v.length>1){var b=g.slice(0,v.index),x=g.slice(v.index+v.length);y=b.join(`:`)+`::`+x.join(`:`)}else y=g.join(`:`);return a&&(y+=`%`+a),y}else return e}var K=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,q=``.match(/(){0}/)[1]===void 0;function J(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={},r=t.iri===!1?c:l;t.reference===`suffix`&&(e=(t.scheme?t.scheme+`:`:``)+`//`+e);var i=e.match(K);if(i){q?(n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||``,n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5])):(n.scheme=i[1]||void 0,n.userinfo=e.indexOf(`@`)===-1?void 0:i[3],n.host=e.indexOf(`//`)===-1?void 0:i[4],n.port=parseInt(i[5],10),n.path=i[6]||``,n.query=e.indexOf(`?`)===-1?void 0:i[7],n.fragment=e.indexOf(`#`)===-1?void 0:i[8],isNaN(n.port)&&(n.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),n.host&&=G(W(n.host,r),r),n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&!n.path&&n.query===void 0?n.reference=`same-document`:n.scheme===void 0?n.reference=`relative`:n.fragment===void 0?n.reference=`absolute`:n.reference=`uri`,t.reference&&t.reference!==`suffix`&&t.reference!==n.reference&&(n.error=n.error||`URI is not a `+t.reference+` reference.`);var a=z[(t.scheme||n.scheme||``).toLowerCase()];if(!t.unicodeSupport&&(!a||!a.unicodeSupport)){if(n.host&&(t.domainHost||a&&a.domainHost))try{n.host=R.toASCII(n.host.replace(r.PCT_ENCODED,V).toLowerCase())}catch(e){n.error=n.error||`Host's domain name can not be converted to ASCII via punycode: `+e}H(n,c)}else H(n,r);a&&a.parse&&a.parse(n,t)}else n.error=n.error||`URI can not be parsed.`;return n}function Y(e,t){var n=t.iri===!1?c:l,r=[];return e.userinfo!==void 0&&(r.push(e.userinfo),r.push(`@`)),e.host!==void 0&&r.push(G(W(String(e.host),n),n).replace(n.IPV6ADDRESS,function(e,t,n){return`[`+t+(n?`%25`+n:``)+`]`})),(typeof e.port==`number`||typeof e.port==`string`)&&(r.push(`:`),r.push(String(e.port))),r.length?r.join(``):void 0}var X=/^\.\.?\//,ee=/^\/\.(\/|$)/,te=/^\/\.\.(\/|$)/,ne=/^\/?(?:.|\n)*?(?=\/|$)/;function Z(e){for(var t=[];e.length;)if(e.match(X))e=e.replace(X,``);else if(e.match(ee))e=e.replace(ee,`/`);else if(e.match(te))e=e.replace(te,`/`),t.pop();else if(e===`.`||e===`..`)e=``;else{var n=e.match(ne);if(n){var r=n[0];e=e.slice(r.length),t.push(r)}else throw Error(`Unexpected dot segment condition`)}return t.join(``)}function Q(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.iri?l:c,r=[],i=z[(t.scheme||e.scheme||``).toLowerCase()];if(i&&i.serialize&&i.serialize(e,t),e.host&&!n.IPV6ADDRESS.test(e.host)&&(t.domainHost||i&&i.domainHost))try{e.host=t.iri?R.toUnicode(e.host):R.toASCII(e.host.replace(n.PCT_ENCODED,V).toLowerCase())}catch(n){e.error=e.error||`Host's domain name can not be converted to `+(t.iri?`Unicode`:`ASCII`)+` via punycode: `+n}H(e,n),t.reference!==`suffix`&&e.scheme&&(r.push(e.scheme),r.push(`:`));var a=Y(e,t);if(a!==void 0&&(t.reference!==`suffix`&&r.push(`//`),r.push(a),e.path&&e.path.charAt(0)!==`/`&&r.push(`/`)),e.path!==void 0){var o=e.path;!t.absolutePath&&(!i||!i.absolutePath)&&(o=Z(o)),a===void 0&&(o=o.replace(/^\/\//,`/%2F`)),r.push(o)}return e.query!==void 0&&(r.push(`?`),r.push(e.query)),e.fragment!==void 0&&(r.push(`#`),r.push(e.fragment)),r.join(``)}function re(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments[3],i={};return r||(e=J(Q(e,n),n),t=J(Q(t,n),n)),n||={},!n.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=Z(t.path||``),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=Z(t.path||``),i.query=t.query):(t.path?(t.path.charAt(0)===`/`?i.path=Z(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path=`/`+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf(`/`)+1)+t.path:i.path=t.path,i.path=Z(i.path)),i.query=t.query):(i.path=e.path,t.query===void 0?i.query=e.query:i.query=t.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function ie(e,t,n){var r=o({scheme:`null`},n);return Q(re(J(e,r),J(t,r),r,!0),r)}function ae(e,t){return typeof e==`string`?e=Q(J(e,t),t):r(e)===`object`&&(e=J(Q(e,t),t)),e}function oe(e,t,n){return typeof e==`string`?e=Q(J(e,n),n):r(e)===`object`&&(e=Q(e,n)),typeof t==`string`?t=Q(J(t,n),n):r(t)===`object`&&(t=Q(t,n)),e===t}function se(e,t){return e&&e.toString().replace(!t||!t.iri?c.ESCAPE:l.ESCAPE,B)}function ce(e,t){return e&&e.toString().replace(!t||!t.iri?c.PCT_ENCODED:l.PCT_ENCODED,V)}var le={scheme:`http`,domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||`HTTP URIs must have a host.`),e},serialize:function(e,t){var n=String(e.scheme).toLowerCase()===`https`;return(e.port===(n?443:80)||e.port===``)&&(e.port=void 0),e.path||=`/`,e}},ue={scheme:`https`,domainHost:le.domainHost,parse:le.parse,serialize:le.serialize};function de(e){return typeof e.secure==`boolean`?e.secure:String(e.scheme).toLowerCase()===`wss`}var fe={scheme:`ws`,domainHost:!0,parse:function(e,t){var n=e;return n.secure=de(n),n.resourceName=(n.path||`/`)+(n.query?`?`+n.query:``),n.path=void 0,n.query=void 0,n},serialize:function(e,t){if((e.port===(de(e)?443:80)||e.port===``)&&(e.port=void 0),typeof e.secure==`boolean`&&(e.scheme=e.secure?`wss`:`ws`,e.secure=void 0),e.resourceName){var n=e.resourceName.split(`?`),r=u(n,2),i=r[0],a=r[1];e.path=i&&i!==`/`?i:void 0,e.query=a,e.resourceName=void 0}return e.fragment=void 0,e}},pe={scheme:`wss`,domainHost:fe.domainHost,parse:fe.parse,serialize:fe.serialize},me={},he=`[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]`,ge=`[0-9A-Fa-f]`,_e=n(n(`%[EFef]`+ge+`%`+ge+ge+`%`+ge+ge)+`|`+n(`%[89A-Fa-f]`+ge+`%`+ge+ge)+`|`+n(`%`+ge+ge)),ve="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ye=t(`[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]`,`[\\"\\\\]`),be=`[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]`,xe=new RegExp(he,`g`),Se=new RegExp(_e,`g`),Ce=new RegExp(t(`[^]`,ve,`[\\.]`,`[\\"]`,ye),`g`),we=new RegExp(t(`[^]`,he,be),`g`),Te=we;function Ee(e){var t=V(e);return t.match(xe)?t:e}var De={scheme:`mailto`,parse:function(e,t){var n=e,r=n.to=n.path?n.path.split(`,`):[];if(n.path=void 0,n.query){for(var i=!1,a={},o=n.query.split(`&`),s=0,c=o.length;s<c;++s){var l=o[s].split(`=`);switch(l[0]){case`to`:for(var u=l[1].split(`,`),d=0,f=u.length;d<f;++d)r.push(u[d]);break;case`subject`:n.subject=ce(l[1],t);break;case`body`:n.body=ce(l[1],t);break;default:i=!0,a[ce(l[0],t)]=ce(l[1],t);break}}i&&(n.headers=a)}n.query=void 0;for(var p=0,m=r.length;p<m;++p){var h=r[p].split(`@`);if(h[0]=ce(h[0]),t.unicodeSupport)h[1]=ce(h[1],t).toLowerCase();else try{h[1]=R.toASCII(ce(h[1],t).toLowerCase())}catch(e){n.error=n.error||`Email address's domain name can not be converted to ASCII via punycode: `+e}r[p]=h.join(`@`)}return n},serialize:function(e,t){var n=e,r=a(e.to);if(r){for(var o=0,s=r.length;o<s;++o){var c=String(r[o]),l=c.lastIndexOf(`@`),u=c.slice(0,l).replace(Se,Ee).replace(Se,i).replace(Ce,B),d=c.slice(l+1);try{d=t.iri?R.toUnicode(d):R.toASCII(ce(d,t).toLowerCase())}catch(e){n.error=n.error||`Email address's domain name can not be converted to `+(t.iri?`Unicode`:`ASCII`)+` via punycode: `+e}r[o]=u+`@`+d}n.path=r.join(`,`)}var f=e.headers=e.headers||{};e.subject&&(f.subject=e.subject),e.body&&(f.body=e.body);var p=[];for(var m in f)f[m]!==me[m]&&p.push(m.replace(Se,Ee).replace(Se,i).replace(we,B)+`=`+f[m].replace(Se,Ee).replace(Se,i).replace(Te,B));return p.length&&(n.query=p.join(`&`)),n}},Oe=/^([^\:]+)\:(.*)/,ke={scheme:`urn`,parse:function(e,t){var n=e.path&&e.path.match(Oe),r=e;if(n){var i=t.scheme||r.scheme||`urn`,a=n[1].toLowerCase(),o=n[2],s=i+`:`+(t.nid||a),c=z[s];r.nid=a,r.nss=o,r.path=void 0,c&&(r=c.parse(r,t))}else r.error=r.error||`URN can not be parsed.`;return r},serialize:function(e,t){var n=t.scheme||e.scheme||`urn`,r=e.nid,i=n+`:`+(t.nid||r),a=z[i];a&&(e=a.serialize(e,t));var o=e,s=e.nss;return o.path=(r||t.nid)+`:`+s,o}},Ae=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,je={scheme:`urn:uuid`,parse:function(e,t){var n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!n.uuid.match(Ae))&&(n.error=n.error||`UUID is not valid.`),n},serialize:function(e,t){var n=e;return n.nss=(e.uuid||``).toLowerCase(),n}};z[le.scheme]=le,z[ue.scheme]=ue,z[fe.scheme]=fe,z[pe.scheme]=pe,z[De.scheme]=De,z[ke.scheme]=ke,z[je.scheme]=je,e.SCHEMES=z,e.pctEncChar=B,e.pctDecChars=V,e.parse=J,e.removeDotSegments=Z,e.serialize=Q,e.resolveComponents=re,e.resolve=ie,e.normalize=ae,e.equal=oe,e.escapeComponent=se,e.unescapeComponent=ce,Object.defineProperty(e,`__esModule`,{value:!0})}))})),Jt=e(((exports,t)=>{t.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t==`object`&&typeof n==`object`){if(t.constructor!==n.constructor)return!1;var r,i,a;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(a=Object.keys(t),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}})),Yt=e(((exports,t)=>{t.exports=function(e){for(var t=0,n=e.length,r=0,i;r<n;)t++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<n&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return t}})),Xt=e(((exports,t)=>{t.exports={copy:n,checkDataType:r,checkDataTypes:i,coerceToTypes:o,toHash:s,getProperty:u,escapeQuotes:d,equal:Jt(),ucs2length:Yt(),varOccurences:f,varReplace:p,schemaHasRules:m,schemaHasRulesExcept:h,schemaUnknownRules:g,toQuotedString:_,getPathExpr:v,getPath:y,getData:S,unescapeFragment:w,unescapeJsonPointer:D,escapeFragment:T,escapeJsonPointer:E};function n(e,t){for(var n in t||={},e)t[n]=e[n];return t}function r(e,t,n,r){var i=r?` !== `:` === `,a=r?` || `:` && `,o=r?`!`:``,s=r?``:`!`;switch(e){case`null`:return t+i+`null`;case`array`:return o+`Array.isArray(`+t+`)`;case`object`:return`(`+o+t+a+`typeof `+t+i+`"object"`+a+s+`Array.isArray(`+t+`))`;case`integer`:return`(typeof `+t+i+`"number"`+a+s+`(`+t+` % 1)`+a+t+i+t+(n?a+o+`isFinite(`+t+`)`:``)+`)`;case`number`:return`(typeof `+t+i+`"`+e+`"`+(n?a+o+`isFinite(`+t+`)`:``)+`)`;default:return`typeof `+t+i+`"`+e+`"`}}function i(e,t,n){switch(e.length){case 1:return r(e[0],t,n,!0);default:var i=``,a=s(e);for(var o in a.array&&a.object&&(i=a.null?`(`:`(!`+t+` || `,i+=`typeof `+t+` !== "object")`,delete a.null,delete a.array,delete a.object),a.number&&delete a.integer,a)i+=(i?` && `:``)+r(o,t,n,!0);return i}}var a=s([`string`,`number`,`integer`,`boolean`,`null`]);function o(e,t){if(Array.isArray(t)){for(var n=[],r=0;r<t.length;r++){var i=t[r];(a[i]||e===`array`&&i===`array`)&&(n[n.length]=i)}if(n.length)return n}else if(a[t])return[t];else if(e===`array`&&t===`array`)return[`array`]}function s(e){for(var t={},n=0;n<e.length;n++)t[e[n]]=!0;return t}var c=/^[a-z$_][a-z$_0-9]*$/i,l=/'|\\/g;function u(e){return typeof e==`number`?`[`+e+`]`:c.test(e)?`.`+e:`['`+d(e)+`']`}function d(e){return e.replace(l,`\\$&`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\f/g,`\\f`).replace(/\t/g,`\\t`)}function f(e,t){t+=`[^0-9]`;var n=e.match(new RegExp(t,`g`));return n?n.length:0}function p(e,t,n){return t+=`([^0-9])`,n=n.replace(/\$/g,`$$$$`),e.replace(new RegExp(t,`g`),n+`$1`)}function m(e,t){if(typeof e==`boolean`)return!e;for(var n in e)if(t[n])return!0}function h(e,t,n){if(typeof e==`boolean`)return!e&&n!=`not`;for(var r in e)if(r!=n&&t[r])return!0}function g(e,t){if(typeof e!=`boolean`){for(var n in e)if(!t[n])return n}}function _(e){return`'`+d(e)+`'`}function v(e,t,n,r){var i=n?`'/' + `+t+(r?``:`.replace(/~/g, '~0').replace(/\\//g, '~1')`):r?`'[' + `+t+` + ']'`:`'[\\'' + `+t+` + '\\']'`;return C(e,i)}function y(e,t,n){var r=_(n?`/`+E(t):u(t));return C(e,r)}var b=/^\/(?:[^~]|~0|~1)*$/,x=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function S(e,t,n){var r,i,a,o;if(e===``)return`rootData`;if(e[0]==`/`){if(!b.test(e))throw Error(`Invalid JSON-pointer: `+e);i=e,a=`rootData`}else{if(o=e.match(x),!o)throw Error(`Invalid JSON-pointer: `+e);if(r=+o[1],i=o[2],i==`#`){if(r>=t)throw Error(`Cannot access property/index `+r+` levels up, current level is `+t);return n[t-r]}if(r>t)throw Error(`Cannot access data `+r+` levels up, current level is `+t);if(a=`data`+(t-r||``),!i)return a}for(var s=a,c=i.split(`/`),l=0;l<c.length;l++){var d=c[l];d&&(a+=u(D(d)),s+=` && `+a)}return s}function C(e,t){return e==`""`?t:(e+` + `+t).replace(/([^\\])' \+ '/g,`$1`)}function w(e){return D(decodeURIComponent(e))}function T(e){return encodeURIComponent(E(e))}function E(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function D(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}})),Zt=e(((exports,t)=>{var n=Xt();t.exports=r;function r(e){n.copy(e,this)}})),Qt=e(((exports,t)=>{var n=t.exports=function(e,t,n){typeof t==`function`&&(n=t,t={}),n=t.cb||n;var i=typeof n==`function`?n:n.pre||function(){},a=n.post||function(){};r(t,i,a,e,``,e)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function r(e,t,a,o,s,c,l,u,d,f){if(o&&typeof o==`object`&&!Array.isArray(o)){for(var p in t(o,s,c,l,u,d,f),o){var m=o[p];if(Array.isArray(m)){if(p in n.arrayKeywords)for(var h=0;h<m.length;h++)r(e,t,a,m[h],s+`/`+p+`/`+h,c,s,p,o,h)}else if(p in n.propsKeywords){if(m&&typeof m==`object`)for(var g in m)r(e,t,a,m[g],s+`/`+p+`/`+i(g),c,s,p,o,g)}else (p in n.keywords||e.allKeys&&!(p in n.skipKeywords))&&r(e,t,a,m,s+`/`+p,c,s,p,o)}a(o,s,c,l,u,d,f)}}function i(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}})),$t=e(((exports,t)=>{var n=qt(),r=Jt(),i=Xt(),a=Zt(),o=Qt();t.exports=s,s.normalizeId=y,s.fullPath=g,s.url=b,s.ids=x,s.inlineRef=p,s.schema=c;function s(e,t,n){var r=this._refs[n];if(typeof r==`string`)if(this._refs[r])r=this._refs[r];else return s.call(this,e,t,r);if(r||=this._schemas[n],r instanceof a)return p(r.schema,this._opts.inlineRefs)?r.schema:r.validate||this._compile(r);var i=c.call(this,t,n),o,l,u;return i&&(o=i.schema,t=i.root,u=i.baseId),o instanceof a?l=o.validate||e.call(this,o.schema,t,void 0,u):o!==void 0&&(l=p(o,this._opts.inlineRefs)?o:e.call(this,o,t,void 0,u)),l}function c(e,t){var r=n.parse(t),i=_(r),o=g(this._getId(e.schema));if(Object.keys(e.schema).length===0||i!==o){var s=y(i),c=this._refs[s];if(typeof c==`string`)return l.call(this,e,c,r);if(c instanceof a)c.validate||this._compile(c),e=c;else if(c=this._schemas[s],c instanceof a){if(c.validate||this._compile(c),s==y(t))return{schema:c,root:e,baseId:o};e=c}else return;if(!e.schema)return;o=g(this._getId(e.schema))}return d.call(this,r,o,e.schema,e)}function l(e,t,n){var r=c.call(this,e,t);if(r){var i=r.schema,a=r.baseId;e=r.root;var o=this._getId(i);return o&&(a=b(a,o)),d.call(this,n,a,i,e)}}var u=i.toHash([`properties`,`patternProperties`,`enum`,`dependencies`,`definitions`]);function d(e,t,n,r){if(e.fragment=e.fragment||``,e.fragment.slice(0,1)==`/`){for(var a=e.fragment.split(`/`),o=1;o<a.length;o++){var s=a[o];if(s){if(s=i.unescapeFragment(s),n=n[s],n===void 0)break;var l;if(!u[s]&&(l=this._getId(n),l&&(t=b(t,l)),n.$ref)){var d=b(t,n.$ref),f=c.call(this,r,d);f&&(n=f.schema,r=f.root,t=f.baseId)}}}if(n!==void 0&&n!==r.schema)return{schema:n,root:r,baseId:t}}}var f=i.toHash([`type`,`format`,`pattern`,`maxLength`,`minLength`,`maxProperties`,`minProperties`,`maxItems`,`minItems`,`maximum`,`minimum`,`uniqueItems`,`multipleOf`,`required`,`enum`]);function p(e,t){if(t===!1)return!1;if(t===void 0||t===!0)return m(e);if(t)return h(e)<=t}function m(e){var t;if(Array.isArray(e)){for(var n=0;n<e.length;n++)if(t=e[n],typeof t==`object`&&!m(t))return!1}else for(var r in e)if(r==`$ref`||(t=e[r],typeof t==`object`&&!m(t)))return!1;return!0}function h(e){var t=0,n;if(Array.isArray(e)){for(var r=0;r<e.length;r++)if(n=e[r],typeof n==`object`&&(t+=h(n)),t==1/0)return 1/0}else for(var i in e){if(i==`$ref`)return 1/0;if(f[i])t++;else if(n=e[i],typeof n==`object`&&(t+=h(n)+1),t==1/0)return 1/0}return t}function g(e,t){t!==!1&&(e=y(e));var r=n.parse(e);return _(r)}function _(e){return n.serialize(e).split(`#`)[0]+`#`}var v=/#\/?$/;function y(e){return e?e.replace(v,``):``}function b(e,t){return t=y(t),n.resolve(e,t)}function x(e){var t=y(this._getId(e)),a={"":t},s={"":g(t,!1)},c={},l=this;return o(e,{allKeys:!0},function(e,t,o,u,d,f,p){if(t!==``){var m=l._getId(e),h=a[u],g=s[u]+`/`+d;if(p!==void 0&&(g+=`/`+(typeof p==`number`?p:i.escapeFragment(p))),typeof m==`string`){m=h=y(h?n.resolve(h,m):m);var _=l._refs[m];if(typeof _==`string`&&(_=l._refs[_]),_&&_.schema){if(!r(e,_.schema))throw Error(`id "`+m+`" resolves to more than one schema`)}else if(m!=y(g))if(m[0]==`#`){if(c[m]&&!r(e,c[m]))throw Error(`id "`+m+`" resolves to more than one schema`);c[m]=e}else l._refs[m]=g}a[t]=h,s[t]=g}}),c}})),en=e(((exports,t)=>{var n=$t();t.exports={Validation:a(r),MissingRef:a(i)};function r(e){this.message=`validation failed`,this.errors=e,this.ajv=this.validation=!0}i.message=function(e,t){return`can't resolve reference `+t+` from id `+e};function i(e,t,r){this.message=r||i.message(e,t),this.missingRef=n.url(e,t),this.missingSchema=n.normalizeId(n.fullPath(this.missingRef))}function a(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}})),tn=e(((exports,t)=>{t.exports=function(e,t){t||={},typeof t==`function`&&(t={cmp:t});var n=typeof t.cycles==`boolean`?t.cycles:!1,r=t.cmp&&(function(e){return function(t){return function(n,r){var i={key:n,value:t[n]},a={key:r,value:t[r]};return e(i,a)}}})(t.cmp),i=[];return(function e(t){if(t&&t.toJSON&&typeof t.toJSON==`function`&&(t=t.toJSON()),t!==void 0){if(typeof t==`number`)return isFinite(t)?``+t:`null`;if(typeof t!=`object`)return JSON.stringify(t);var a,o;if(Array.isArray(t)){for(o=`[`,a=0;a<t.length;a++)a&&(o+=`,`),o+=e(t[a])||`null`;return o+`]`}if(t===null)return`null`;if(i.indexOf(t)!==-1){if(n)return JSON.stringify(`__cycle__`);throw TypeError(`Converting circular structure to JSON`)}var s=i.push(t)-1,c=Object.keys(t).sort(r&&r(t));for(o=``,a=0;a<c.length;a++){var l=c[a],u=e(t[l]);u&&(o&&(o+=`,`),o+=JSON.stringify(l)+`:`+u)}return i.splice(s,1),`{`+o+`}`}})(e)}})),nn=e(((exports,t)=>{t.exports=function(e,t,n){var r=``,i=e.schema.$async===!0,a=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,`$ref`),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var s=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(s){var c=`unknown keyword: `+s;if(e.opts.strictKeywords===`log`)e.logger.warn(c);else throw Error(c)}}if(e.isTop&&(r+=` var validate = `,i&&(e.async=!0,r+=`async `),r+=`function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; `,o&&(e.opts.sourceCode||e.opts.processCode)&&(r+=` `+(`/*# sourceURL=`+o+` */`)+` `)),typeof e.schema==`boolean`||!(a||e.schema.$ref)){var t=`false schema`,l=e.level,u=e.dataLevel,d=e.schema[t],f=e.schemaPath+e.util.getProperty(t),p=e.errSchemaPath+`/`+t,m=!e.opts.allErrors,h,g=`data`+(u||``),_=`valid`+l;if(e.schema===!1){e.isTop?m=!0:r+=` var `+_+` = false; `;var v=v||[];v.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(h||`false schema`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(p)+` , params: {} `,e.opts.messages!==!1&&(r+=` , message: 'boolean schema is false' `),e.opts.verbose&&(r+=` , schema: false , parentSchema: validate.schema`+e.schemaPath+` , data: `+g+` `),r+=` } `);var y=r;r=v.pop(),!e.compositeRule&&m?e.async?r+=` throw new ValidationError([`+y+`]); `:r+=` validate.errors = [`+y+`]; return false; `:r+=` var err = `+y+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `}else e.isTop?i?r+=` return data; `:r+=` validate.errors = null; return true; `:r+=` var `+_+` = true; `;return e.isTop&&(r+=` }; return validate; `),r}if(e.isTop){var b=e.isTop,l=e.level=0,u=e.dataLevel=0,g=`data`;if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[``],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var x=`default is ignored in the schema root`;if(e.opts.strictDefaults===`log`)e.logger.warn(x);else throw Error(x)}r+=` var vErrors = null; `,r+=` var errors = 0; `,r+=` if (rootData === undefined) rootData = data; `}else{var l=e.level,u=e.dataLevel,g=`data`+(u||``);if(o&&(e.baseId=e.resolve.url(e.baseId,o)),i&&!e.async)throw Error(`async schema in sync schema`);r+=` var errs_`+l+` = errors;`}var _=`valid`+l,m=!e.opts.allErrors,S=``,C=``,h,w=e.schema.type,T=Array.isArray(w);if(w&&e.opts.nullable&&e.schema.nullable===!0&&(T?w.indexOf(`null`)==-1&&(w=w.concat(`null`)):w!=`null`&&(w=[w,`null`],T=!0)),T&&w.length==1&&(w=w[0],T=!1),e.schema.$ref&&a){if(e.opts.extendRefs==`fail`)throw Error(`$ref: validation keywords used in schema at path "`+e.errSchemaPath+`" (see option extendRefs)`);e.opts.extendRefs!==!0&&(a=!1,e.logger.warn(`$ref: keywords ignored in schema at path "`+e.errSchemaPath+`"`))}if(e.schema.$comment&&e.opts.$comment&&(r+=` `+e.RULES.all.$comment.code(e,`$comment`)),w){if(e.opts.coerceTypes)var E=e.util.coerceToTypes(e.opts.coerceTypes,w);var D=e.RULES.types[w];if(E||T||D===!0||D&&!ne(D)){var f=e.schemaPath+`.type`,p=e.errSchemaPath+`/type`,f=e.schemaPath+`.type`,p=e.errSchemaPath+`/type`,O=T?`checkDataTypes`:`checkDataType`;if(r+=` if (`+e.util[O](w,g,e.opts.strictNumbers,!0)+`) { `,E){var k=`dataType`+l,A=`coerced`+l;r+=` var `+k+` = typeof `+g+`; var `+A+` = undefined; `,e.opts.coerceTypes==`array`&&(r+=` if (`+k+` == 'object' && Array.isArray(`+g+`) && `+g+`.length == 1) { `+g+` = `+g+`[0]; `+k+` = typeof `+g+`; if (`+e.util.checkDataType(e.schema.type,g,e.opts.strictNumbers)+`) `+A+` = `+g+`; } `),r+=` if (`+A+` !== undefined) ; `;var j=E;if(j)for(var M,N=-1,P=j.length-1;N<P;)M=j[N+=1],M==`string`?r+=` else if (`+k+` == 'number' || `+k+` == 'boolean') `+A+` = '' + `+g+`; else if (`+g+` === null) `+A+` = ''; `:M==`number`||M==`integer`?(r+=` else if (`+k+` == 'boolean' || `+g+` === null || (`+k+` == 'string' && `+g+` && `+g+` == +`+g+` `,M==`integer`&&(r+=` && !(`+g+` % 1)`),r+=`)) `+A+` = +`+g+`; `):M==`boolean`?r+=` else if (`+g+` === 'false' || `+g+` === 0 || `+g+` === null) `+A+` = false; else if (`+g+` === 'true' || `+g+` === 1) `+A+` = true; `:M==`null`?r+=` else if (`+g+` === '' || `+g+` === 0 || `+g+` === false) `+A+` = null; `:e.opts.coerceTypes==`array`&&M==`array`&&(r+=` else if (`+k+` == 'string' || `+k+` == 'number' || `+k+` == 'boolean' || `+g+` == null) `+A+` = [`+g+`]; `);r+=` else { `;var v=v||[];v.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(h||`type`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(p)+` , params: { type: '`,T?r+=``+w.join(`,`):r+=``+w,r+=`' } `,e.opts.messages!==!1&&(r+=` , message: 'should be `,T?r+=``+w.join(`,`):r+=``+w,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+f+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+g+` `),r+=` } `);var y=r;r=v.pop(),!e.compositeRule&&m?e.async?r+=` throw new ValidationError([`+y+`]); `:r+=` validate.errors = [`+y+`]; return false; `:r+=` var err = `+y+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } if (`+A+` !== undefined) { `;var F=u?`data`+(u-1||``):`parentData`,I=u?e.dataPathArr[u]:`parentDataProperty`;r+=` `+g+` = `+A+`; `,u||(r+=`if (`+F+` !== undefined)`),r+=` `+F+`[`+I+`] = `+A+`; } `}else{var v=v||[];v.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(h||`type`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(p)+` , params: { type: '`,T?r+=``+w.join(`,`):r+=``+w,r+=`' } `,e.opts.messages!==!1&&(r+=` , message: 'should be `,T?r+=``+w.join(`,`):r+=``+w,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+f+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+g+` `),r+=` } `);var y=r;r=v.pop(),!e.compositeRule&&m?e.async?r+=` throw new ValidationError([`+y+`]); `:r+=` validate.errors = [`+y+`]; return false; `:r+=` var err = `+y+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `}r+=` } `}}if(e.schema.$ref&&!a)r+=` `+e.RULES.all.$ref.code(e,`$ref`)+` `,m&&(r+=` } if (errors === `,b?r+=`0`:r+=`errs_`+l,r+=`) { `,C+=`}`);else{var L=e.RULES;if(L){for(var D,R=-1,z=L.length-1;R<z;)if(D=L[R+=1],ne(D)){if(D.type&&(r+=` if (`+e.util.checkDataType(D.type,g,e.opts.strictNumbers)+`) { `),e.opts.useDefaults){if(D.type==`object`&&e.schema.properties){var d=e.schema.properties,B=Object.keys(d);if(B)for(var V,H=-1,U=B.length-1;H<U;){V=B[H+=1];var W=d[V];if(W.default!==void 0){var G=g+e.util.getProperty(V);if(e.compositeRule){if(e.opts.strictDefaults){var x=`default is ignored for: `+G;if(e.opts.strictDefaults===`log`)e.logger.warn(x);else throw Error(x)}}else r+=` if (`+G+` === undefined `,e.opts.useDefaults==`empty`&&(r+=` || `+G+` === null || `+G+` === '' `),r+=` ) `+G+` = `,e.opts.useDefaults==`shared`?r+=` `+e.useDefault(W.default)+` `:r+=` `+JSON.stringify(W.default)+` `,r+=`; `}}}else if(D.type==`array`&&Array.isArray(e.schema.items)){var K=e.schema.items;if(K){for(var W,N=-1,q=K.length-1;N<q;)if(W=K[N+=1],W.default!==void 0){var G=g+`[`+N+`]`;if(e.compositeRule){if(e.opts.strictDefaults){var x=`default is ignored for: `+G;if(e.opts.strictDefaults===`log`)e.logger.warn(x);else throw Error(x)}}else r+=` if (`+G+` === undefined `,e.opts.useDefaults==`empty`&&(r+=` || `+G+` === null || `+G+` === '' `),r+=` ) `+G+` = `,e.opts.useDefaults==`shared`?r+=` `+e.useDefault(W.default)+` `:r+=` `+JSON.stringify(W.default)+` `,r+=`; `}}}}var J=D.rules;if(J){for(var Y,X=-1,ee=J.length-1;X<ee;)if(Y=J[X+=1],Z(Y)){var te=Y.code(e,Y.keyword,D.type);te&&(r+=` `+te+` `,m&&(S+=`}`))}}if(m&&(r+=` `+S+` `,S=``),D.type&&(r+=` } `,w&&w===D.type&&!E)){r+=` else { `;var f=e.schemaPath+`.type`,p=e.errSchemaPath+`/type`,v=v||[];v.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(h||`type`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(p)+` , params: { type: '`,T?r+=``+w.join(`,`):r+=``+w,r+=`' } `,e.opts.messages!==!1&&(r+=` , message: 'should be `,T?r+=``+w.join(`,`):r+=``+w,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+f+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+g+` `),r+=` } `);var y=r;r=v.pop(),!e.compositeRule&&m?e.async?r+=` throw new ValidationError([`+y+`]); `:r+=` validate.errors = [`+y+`]; return false; `:r+=` var err = `+y+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } `}m&&(r+=` if (errors === `,b?r+=`0`:r+=`errs_`+l,r+=`) { `,C+=`}`)}}}m&&(r+=` `+C+` `),b?(i?(r+=` if (errors === 0) return data; `,r+=` else throw new ValidationError(vErrors); `):(r+=` validate.errors = vErrors; `,r+=` return errors === 0; `),r+=` }; return validate;`):r+=` var `+_+` = errors === errs_`+l+`;`;function ne(e){for(var t=e.rules,n=0;n<t.length;n++)if(Z(t[n]))return!0}function Z(t){return e.schema[t.keyword]!==void 0||t.implements&&Q(t)}function Q(t){for(var n=t.implements,r=0;r<n.length;r++)if(e.schema[n[r]]!==void 0)return!0}return r}})),rn=e(((exports,t)=>{var n=$t(),r=Xt(),i=en(),a=tn(),o=nn(),s=r.ucs2length,c=Jt(),l=i.Validation;t.exports=u;function u(e,t,p,y){var b=this,x=this._opts,S=[void 0],C={},w=[],T={},E=[],D={},O=[];t||={schema:e,refVal:S,refs:C};var k=d.call(this,e,t,y),A=this._compilations[k.index];if(k.compiling)return A.callValidate=F;var j=this._formats,M=this.RULES;try{var N=I(e,t,p,y);A.validate=N;var P=A.callValidate;return P&&(P.schema=N.schema,P.errors=null,P.refs=N.refs,P.refVal=N.refVal,P.root=N.root,P.$async=N.$async,x.sourceCode&&(P.source=N.source)),N}finally{f.call(this,e,t,y)}function F(){var e=A.validate,t=e.apply(this,arguments);return F.errors=e.errors,t}function I(e,a,d,f){var p=!a||a&&a.schema==e;if(a.schema!=t.schema)return u.call(b,e,a,d,f);var y=e.$async===!0,T=o({isTop:!0,schema:e,isRoot:p,baseId:f,root:a,schemaPath:``,errSchemaPath:`#`,errorPath:`""`,MissingRefError:i.MissingRef,RULES:M,validate:o,util:r,resolve:n,resolveRef:L,usePattern:H,useDefault:U,useCustomRule:W,opts:x,formats:j,logger:b.logger,self:b});T=v(S,g)+v(w,m)+v(E,h)+v(O,_)+T,x.processCode&&(T=x.processCode(T,e));var D;try{D=Function(`self`,`RULES`,`formats`,`root`,`refVal`,`defaults`,`customRules`,`equal`,`ucs2length`,`ValidationError`,T)(b,M,j,t,S,E,O,c,s,l),S[0]=D}catch(e){throw b.logger.error(`Error compiling schema, function code:`,T),e}return D.schema=e,D.errors=null,D.refs=C,D.refVal=S,D.root=p?D:a,y&&(D.$async=!0),x.sourceCode===!0&&(D.source={code:T,patterns:w,defaults:E}),D}function L(e,r,i){r=n.url(e,r);var a=C[r],o,s;if(a!==void 0)return o=S[a],s=`refVal[`+a+`]`,V(o,s);if(!i&&t.refs){var c=t.refs[r];if(c!==void 0)return o=t.refVal[c],s=R(r,o),V(o,s)}s=R(r);var l=n.call(b,I,t,r);if(l===void 0){var d=p&&p[r];d&&(l=n.inlineRef(d,x.inlineRefs)?d:u.call(b,d,t,p,e))}if(l===void 0)z(r);else return B(r,l),V(l,s)}function R(e,t){var n=S.length;return S[n]=t,C[e]=n,`refVal`+n}function z(e){delete C[e]}function B(e,t){var n=C[e];S[n]=t}function V(e,t){return typeof e==`object`||typeof e==`boolean`?{code:t,schema:e,inline:!0}:{code:t,$async:e&&!!e.$async}}function H(e){var t=T[e];return t===void 0&&(t=T[e]=w.length,w[t]=e),`pattern`+t}function U(e){switch(typeof e){case`boolean`:case`number`:return``+e;case`string`:return r.toQuotedString(e);case`object`:if(e===null)return`null`;var t=a(e),n=D[t];return n===void 0&&(n=D[t]=E.length,E[n]=e),`default`+n}}function W(e,t,n,r){if(b._opts.validateSchema!==!1){var i=e.definition.dependencies;if(i&&!i.every(function(e){return Object.prototype.hasOwnProperty.call(n,e)}))throw Error(`parent schema must have all required keywords: `+i.join(`,`));var a=e.definition.validateSchema;if(a&&!a(t)){var o=`keyword schema is invalid: `+b.errorsText(a.errors);if(b._opts.validateSchema==`log`)b.logger.error(o);else throw Error(o)}}var s=e.definition.compile,c=e.definition.inline,l=e.definition.macro,u;if(s)u=s.call(b,t,n,r);else if(l)u=l.call(b,t,n,r),x.validateSchema!==!1&&b.validateSchema(u,!0);else if(c)u=c.call(b,r,e.keyword,t,n);else if(u=e.definition.validate,!u)return;if(u===void 0)throw Error(`custom keyword "`+e.keyword+`"failed to compile`);var d=O.length;return O[d]=u,{code:`customRule`+d,validate:u}}}function d(e,t,n){var r=p.call(this,e,t,n);return r>=0?{index:r,compiling:!0}:(r=this._compilations.length,this._compilations[r]={schema:e,root:t,baseId:n},{index:r,compiling:!1})}function f(e,t,n){var r=p.call(this,e,t,n);r>=0&&this._compilations.splice(r,1)}function p(e,t,n){for(var r=0;r<this._compilations.length;r++){var i=this._compilations[r];if(i.schema==e&&i.root==t&&i.baseId==n)return r}return-1}function m(e,t){return`var pattern`+e+` = new RegExp(`+r.toQuotedString(t[e])+`);`}function h(e){return`var default`+e+` = defaults[`+e+`];`}function g(e,t){return t[e]===void 0?``:`var refVal`+e+` = refVal[`+e+`];`}function _(e){return`var customRule`+e+` = customRules[`+e+`];`}function v(e,t){if(!e.length)return``;for(var n=``,r=0;r<e.length;r++)n+=t(r,e);return n}})),an=e(((exports,t)=>{var n=t.exports=function(){this._cache={}};n.prototype.put=function(e,t){this._cache[e]=t},n.prototype.get=function(e){return this._cache[e]},n.prototype.del=function(e){delete this._cache[e]},n.prototype.clear=function(){this._cache={}}})),on=e(((exports,t)=>{var n=Xt(),r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31],a=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,o=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,s=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,l=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,d=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,f=/^(?:\/(?:[^~/]|~0|~1)*)*$/,p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,m=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;t.exports=h;function h(e){return e=e==`full`?`full`:`fast`,n.copy(h[e])}h.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":l,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:o,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:d,"json-pointer":f,"json-pointer-uri-fragment":p,"relative-json-pointer":m},h.full={date:_,time:v,"date-time":b,uri:S,"uri-reference":c,"uri-template":l,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:o,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:d,"json-pointer":f,"json-pointer-uri-fragment":p,"relative-json-pointer":m};function g(e){return e%4==0&&(e%100!=0||e%400==0)}function _(e){var t=e.match(r);if(!t)return!1;var n=+t[1],a=+t[2],o=+t[3];return a>=1&&a<=12&&o>=1&&o<=(a==2&&g(n)?29:i[a])}function v(e,t){var n=e.match(a);if(!n)return!1;var r=n[1],i=n[2],o=n[3],s=n[5];return(r<=23&&i<=59&&o<=59||r==23&&i==59&&o==60)&&(!t||s)}var y=/t|\s/i;function b(e){var t=e.split(y);return t.length==2&&_(t[0])&&v(t[1],!0)}var x=/\/|:/;function S(e){return x.test(e)&&s.test(e)}var C=/[^\\]\\Z/;function w(e){if(C.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}})),sn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.errSchemaPath+`/`+t,c=!e.opts.allErrors,l=`data`+(a||``),u=`valid`+i,d,f;if(o==`#`||o==`#/`)e.isRoot?(d=e.async,f=`validate`):(d=e.root.schema.$async===!0,f=`root.refVal[0]`);else{var p=e.resolveRef(e.baseId,o,e.isRoot);if(p===void 0){var m=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs==`fail`){e.logger.error(m);var h=h||[];h.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '$ref' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(s)+` , params: { ref: '`+e.util.escapeQuotes(o)+`' } `,e.opts.messages!==!1&&(r+=` , message: 'can\\'t resolve reference `+e.util.escapeQuotes(o)+`' `),e.opts.verbose&&(r+=` , schema: `+e.util.toQuotedString(o)+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+l+` `),r+=` } `);var g=r;r=h.pop(),!e.compositeRule&&c?e.async?r+=` throw new ValidationError([`+g+`]); `:r+=` validate.errors = [`+g+`]; return false; `:r+=` var err = `+g+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,c&&(r+=` if (false) { `)}else if(e.opts.missingRefs==`ignore`)e.logger.warn(m),c&&(r+=` if (true) { `);else throw new e.MissingRefError(e.baseId,o,m)}else if(p.inline){var _=e.util.copy(e);_.level++;var v=`valid`+_.level;_.schema=p.schema,_.schemaPath=``,_.errSchemaPath=o;var y=e.validate(_).replace(/validate\.schema/g,p.code);r+=` `+y+` `,c&&(r+=` if (`+v+`) { `)}else d=p.$async===!0||e.async&&p.$async!==!1,f=p.code}if(f){var h=h||[];h.push(r),r=``,e.opts.passContext?r+=` `+f+`.call(this, `:r+=` `+f+`( `,r+=` `+l+`, (dataPath || '')`,e.errorPath!=`""`&&(r+=` + `+e.errorPath);var b=a?`data`+(a-1||``):`parentData`,x=a?e.dataPathArr[a]:`parentDataProperty`;r+=` , `+b+` , `+x+`, rootData) `;var S=r;if(r=h.pop(),d){if(!e.async)throw Error(`async schema referenced by sync schema`);c&&(r+=` var `+u+`; `),r+=` try { await `+S+`; `,c&&(r+=` `+u+` = true; `),r+=` } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; `,c&&(r+=` `+u+` = false; `),r+=` } `,c&&(r+=` if (`+u+`) { `)}else r+=` if (!`+S+`) { if (vErrors === null) vErrors = `+f+`.errors; else vErrors = vErrors.concat(`+f+`.errors); errors = vErrors.length; } `,c&&(r+=` else { `)}return r}})),cn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.schema[t],a=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+`/`+t,s=!e.opts.allErrors,c=e.util.copy(e),l=``;c.level++;var u=`valid`+c.level,d=c.baseId,f=!0,p=i;if(p)for(var m,h=-1,g=p.length-1;h<g;)m=p[h+=1],(e.opts.strictKeywords?typeof m==`object`&&Object.keys(m).length>0||m===!1:e.util.schemaHasRules(m,e.RULES.all))&&(f=!1,c.schema=m,c.schemaPath=a+`[`+h+`]`,c.errSchemaPath=o+`/`+h,r+=` `+e.validate(c)+` `,c.baseId=d,s&&(r+=` if (`+u+`) { `,l+=`}`));return s&&(f?r+=` if (true) { `:r+=` `+l.slice(0,-1)+` `),r}})),ln=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=`errs__`+i,p=e.util.copy(e),m=``;p.level++;var h=`valid`+p.level;if(o.every(function(t){return e.opts.strictKeywords?typeof t==`object`&&Object.keys(t).length>0||t===!1:e.util.schemaHasRules(t,e.RULES.all)})){var g=p.baseId;r+=` var `+f+` = errors; var `+d+` = false; `;var _=e.compositeRule;e.compositeRule=p.compositeRule=!0;var v=o;if(v)for(var y,b=-1,x=v.length-1;b<x;)y=v[b+=1],p.schema=y,p.schemaPath=s+`[`+b+`]`,p.errSchemaPath=c+`/`+b,r+=` `+e.validate(p)+` `,p.baseId=g,r+=` `+d+` = `+d+` || `+h+`; if (!`+d+`) { `,m+=`}`;e.compositeRule=p.compositeRule=_,r+=` `+m+` if (!`+d+`) { var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'anyOf' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: {} `,e.opts.messages!==!1&&(r+=` , message: 'should match some schema in anyOf' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,!e.compositeRule&&l&&(e.async?r+=` throw new ValidationError(vErrors); `:r+=` validate.errors = vErrors; return false; `),r+=` } else { errors = `+f+`; if (vErrors !== null) { if (`+f+`) vErrors.length = `+f+`; else vErrors = null; } `,e.opts.allErrors&&(r+=` } `)}else l&&(r+=` if (true) { `);return r}})),un=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.schema[t],a=e.errSchemaPath+`/`+t;e.opts.allErrors;var o=e.util.toQuotedString(i);return e.opts.$comment===!0?r+=` console.log(`+o+`);`:typeof e.opts.$comment==`function`&&(r+=` self._opts.$comment(`+o+`, `+e.util.toQuotedString(a)+`, validate.root.schema);`),r}})),dn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=e.opts.$data&&o&&o.$data;f&&(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,``+i),f||(r+=` var schema`+i+` = validate.schema`+s+`;`),r+=`var `+d+` = equal(`+u+`, schema`+i+`); if (!`+d+`) { `;var p=p||[];p.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'const' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { allowedValue: schema`+i+` } `,e.opts.messages!==!1&&(r+=` , message: 'should be equal to constant' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var m=r;return r=p.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+m+`]); `:r+=` validate.errors = [`+m+`]; return false; `:r+=` var err = `+m+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` }`,l&&(r+=` else { `),r}})),fn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=`errs__`+i,p=e.util.copy(e),m=``;p.level++;var h=`valid`+p.level,g=`i`+i,_=p.dataLevel=e.dataLevel+1,v=`data`+_,y=e.baseId,b=e.opts.strictKeywords?typeof o==`object`&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all);if(r+=`var `+f+` = errors;var `+d+`;`,b){var x=e.compositeRule;e.compositeRule=p.compositeRule=!0,p.schema=o,p.schemaPath=s,p.errSchemaPath=c,r+=` var `+h+` = false; for (var `+g+` = 0; `+g+` < `+u+`.length; `+g+`++) { `,p.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var S=u+`[`+g+`]`;p.dataPathArr[_]=g;var C=e.validate(p);p.baseId=y,e.util.varOccurences(C,v)<2?r+=` `+e.util.varReplace(C,v,S)+` `:r+=` var `+v+` = `+S+`; `+C+` `,r+=` if (`+h+`) break; } `,e.compositeRule=p.compositeRule=x,r+=` `+m+` if (!`+h+`) {`}else r+=` if (`+u+`.length == 0) {`;var w=w||[];w.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'contains' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: {} `,e.opts.messages!==!1&&(r+=` , message: 'should contain a valid item' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var T=r;return r=w.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+T+`]); `:r+=` validate.errors = [`+T+`]; return false; `:r+=` var err = `+T+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } else { `,b&&(r+=` errors = `+f+`; if (vErrors !== null) { if (`+f+`) vErrors.length = `+f+`; else vErrors = null; } `),e.opts.allErrors&&(r+=` } `),r}})),pn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`errs__`+i,f=e.util.copy(e),p=``;f.level++;var m=`valid`+f.level,h={},g={},_=e.opts.ownProperties;for(x in o){if(x==`__proto__`)continue;var v=o[x],y=Array.isArray(v)?g:h;y[x]=v}r+=`var `+d+` = errors;`;var b=e.errorPath;for(var x in r+=`var missing`+i+`;`,g)if(y=g[x],y.length){if(r+=` if ( `+u+e.util.getProperty(x)+` !== undefined `,_&&(r+=` && Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(x)+`') `),l){r+=` && ( `;var S=y;if(S)for(var C,w=-1,T=S.length-1;w<T;){C=S[w+=1],w&&(r+=` || `);var E=e.util.getProperty(C),D=u+E;r+=` ( ( `+D+` === undefined `,_&&(r+=` || ! Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(C)+`') `),r+=`) && (missing`+i+` = `+e.util.toQuotedString(e.opts.jsonPointers?C:E)+`) ) `}r+=`)) { `;var O=`missing`+i,k=`' + `+O+` + '`;e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(b,O,!0):b+` + `+O);var A=A||[];A.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'dependencies' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { property: '`+e.util.escapeQuotes(x)+`', missingProperty: '`+k+`', depsCount: `+y.length+`, deps: '`+e.util.escapeQuotes(y.length==1?y[0]:y.join(`, `))+`' } `,e.opts.messages!==!1&&(r+=` , message: 'should have `,y.length==1?r+=`property `+e.util.escapeQuotes(y[0]):r+=`properties `+e.util.escapeQuotes(y.join(`, `)),r+=` when property `+e.util.escapeQuotes(x)+` is present' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var j=r;r=A.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+j+`]); `:r+=` validate.errors = [`+j+`]; return false; `:r+=` var err = `+j+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `}else{r+=` ) { `;var M=y;if(M)for(var C,N=-1,P=M.length-1;N<P;){C=M[N+=1];var E=e.util.getProperty(C),k=e.util.escapeQuotes(C),D=u+E;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(b,C,e.opts.jsonPointers)),r+=` if ( `+D+` === undefined `,_&&(r+=` || ! Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(C)+`') `),r+=`) { var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'dependencies' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { property: '`+e.util.escapeQuotes(x)+`', missingProperty: '`+k+`', depsCount: `+y.length+`, deps: '`+e.util.escapeQuotes(y.length==1?y[0]:y.join(`, `))+`' } `,e.opts.messages!==!1&&(r+=` , message: 'should have `,y.length==1?r+=`property `+e.util.escapeQuotes(y[0]):r+=`properties `+e.util.escapeQuotes(y.join(`, `)),r+=` when property `+e.util.escapeQuotes(x)+` is present' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } `}}r+=` } `,l&&(p+=`}`,r+=` else { `)}e.errorPath=b;var F=f.baseId;for(var x in h){var v=h[x];(e.opts.strictKeywords?typeof v==`object`&&Object.keys(v).length>0||v===!1:e.util.schemaHasRules(v,e.RULES.all))&&(r+=` `+m+` = true; if ( `+u+e.util.getProperty(x)+` !== undefined `,_&&(r+=` && Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(x)+`') `),r+=`) { `,f.schema=v,f.schemaPath=s+e.util.getProperty(x),f.errSchemaPath=c+`/`+e.util.escapeFragment(x),r+=` `+e.validate(f)+` `,f.baseId=F,r+=` } `,l&&(r+=` if (`+m+`) { `,p+=`}`))}return l&&(r+=` `+p+` if (`+d+` == errors) {`),r}})),mn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=e.opts.$data&&o&&o.$data;f&&(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,``+i);var p=`i`+i,m=`schema`+i;f||(r+=` var `+m+` = validate.schema`+s+`;`),r+=`var `+d+`;`,f&&(r+=` if (schema`+i+` === undefined) `+d+` = true; else if (!Array.isArray(schema`+i+`)) `+d+` = false; else {`),r+=``+d+` = false;for (var `+p+`=0; `+p+`<`+m+`.length; `+p+`++) if (equal(`+u+`, `+m+`[`+p+`])) { `+d+` = true; break; }`,f&&(r+=` } `),r+=` if (!`+d+`) { `;var h=h||[];h.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'enum' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { allowedValues: schema`+i+` } `,e.opts.messages!==!1&&(r+=` , message: 'should be equal to one of the allowed values' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var g=r;return r=h.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+g+`]); `:r+=` validate.errors = [`+g+`]; return false; `:r+=` var err = `+g+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` }`,l&&(r+=` else { `),r}})),hn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``);if(e.opts.format===!1)return l&&(r+=` if (true) { `),r;var d=e.opts.$data&&o&&o.$data,f;d?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,f=`schema`+i):f=o;var p=e.opts.unknownFormats,m=Array.isArray(p);if(d){var h=`format`+i,g=`isObject`+i,_=`formatType`+i;r+=` var `+h+` = formats[`+f+`]; var `+g+` = typeof `+h+` == 'object' && !(`+h+` instanceof RegExp) && `+h+`.validate; var `+_+` = `+g+` && `+h+`.type || 'string'; if (`+g+`) { `,e.async&&(r+=` var async`+i+` = `+h+`.async; `),r+=` `+h+` = `+h+`.validate; } if ( `,d&&(r+=` (`+f+` !== undefined && typeof `+f+` != 'string') || `),r+=` (`,p!=`ignore`&&(r+=` (`+f+` && !`+h+` `,m&&(r+=` && self._opts.unknownFormats.indexOf(`+f+`) == -1 `),r+=`) || `),r+=` (`+h+` && `+_+` == '`+n+`' && !(typeof `+h+` == 'function' ? `,e.async?r+=` (async`+i+` ? await `+h+`(`+u+`) : `+h+`(`+u+`)) `:r+=` `+h+`(`+u+`) `,r+=` : `+h+`.test(`+u+`))))) {`}else{var h=e.formats[o];if(!h){if(p==`ignore`)return e.logger.warn(`unknown format "`+o+`" ignored in schema at path "`+e.errSchemaPath+`"`),l&&(r+=` if (true) { `),r;if(m&&p.indexOf(o)>=0)return l&&(r+=` if (true) { `),r;throw Error(`unknown format "`+o+`" is used in schema at path "`+e.errSchemaPath+`"`)}var g=typeof h==`object`&&!(h instanceof RegExp)&&h.validate,_=g&&h.type||`string`;if(g){var v=h.async===!0;h=h.validate}if(_!=n)return l&&(r+=` if (true) { `),r;if(v){if(!e.async)throw Error(`async format in sync schema`);var y=`formats`+e.util.getProperty(o)+`.validate`;r+=` if (!(await `+y+`(`+u+`))) { `}else{r+=` if (! `;var y=`formats`+e.util.getProperty(o);g&&(y+=`.validate`),typeof h==`function`?r+=` `+y+`(`+u+`) `:r+=` `+y+`.test(`+u+`) `,r+=`) { `}}var b=b||[];b.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'format' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { format: `,d?r+=``+f:r+=``+e.util.toQuotedString(o),r+=` } `,e.opts.messages!==!1&&(r+=` , message: 'should match format "`,d?r+=`' + `+f+` + '`:r+=``+e.util.escapeQuotes(o),r+=`"' `),e.opts.verbose&&(r+=` , schema: `,d?r+=`validate.schema`+s:r+=``+e.util.toQuotedString(o),r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var x=r;return r=b.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+x+`]); `:r+=` validate.errors = [`+x+`]; return false; `:r+=` var err = `+x+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } `,l&&(r+=` else { `),r}})),gn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=`errs__`+i,p=e.util.copy(e);p.level++;var m=`valid`+p.level,h=e.schema.then,g=e.schema.else,_=h!==void 0&&(e.opts.strictKeywords?typeof h==`object`&&Object.keys(h).length>0||h===!1:e.util.schemaHasRules(h,e.RULES.all)),v=g!==void 0&&(e.opts.strictKeywords?typeof g==`object`&&Object.keys(g).length>0||g===!1:e.util.schemaHasRules(g,e.RULES.all)),y=p.baseId;if(_||v){var b;p.createErrors=!1,p.schema=o,p.schemaPath=s,p.errSchemaPath=c,r+=` var `+f+` = errors; var `+d+` = true; `;var x=e.compositeRule;e.compositeRule=p.compositeRule=!0,r+=` `+e.validate(p)+` `,p.baseId=y,p.createErrors=!0,r+=` errors = `+f+`; if (vErrors !== null) { if (`+f+`) vErrors.length = `+f+`; else vErrors = null; } `,e.compositeRule=p.compositeRule=x,_?(r+=` if (`+m+`) { `,p.schema=e.schema.then,p.schemaPath=e.schemaPath+`.then`,p.errSchemaPath=e.errSchemaPath+`/then`,r+=` `+e.validate(p)+` `,p.baseId=y,r+=` `+d+` = `+m+`; `,_&&v?(b=`ifClause`+i,r+=` var `+b+` = 'then'; `):b=`'then'`,r+=` } `,v&&(r+=` else { `)):r+=` if (!`+m+`) { `,v&&(p.schema=e.schema.else,p.schemaPath=e.schemaPath+`.else`,p.errSchemaPath=e.errSchemaPath+`/else`,r+=` `+e.validate(p)+` `,p.baseId=y,r+=` `+d+` = `+m+`; `,_&&v?(b=`ifClause`+i,r+=` var `+b+` = 'else'; `):b=`'else'`,r+=` } `),r+=` if (!`+d+`) { var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'if' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { failingKeyword: `+b+` } `,e.opts.messages!==!1&&(r+=` , message: 'should match "' + `+b+` + '" schema' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,!e.compositeRule&&l&&(e.async?r+=` throw new ValidationError(vErrors); `:r+=` validate.errors = vErrors; return false; `),r+=` } `,l&&(r+=` else { `)}else l&&(r+=` if (true) { `);return r}})),_n=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=`errs__`+i,p=e.util.copy(e),m=``;p.level++;var h=`valid`+p.level,g=`i`+i,_=p.dataLevel=e.dataLevel+1,v=`data`+_,y=e.baseId;if(r+=`var `+f+` = errors;var `+d+`;`,Array.isArray(o)){var b=e.schema.additionalItems;if(b===!1){r+=` `+d+` = `+u+`.length <= `+o.length+`; `;var x=c;c=e.errSchemaPath+`/additionalItems`,r+=` if (!`+d+`) { `;var S=S||[];S.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'additionalItems' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { limit: `+o.length+` } `,e.opts.messages!==!1&&(r+=` , message: 'should NOT have more than `+o.length+` items' `),e.opts.verbose&&(r+=` , schema: false , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var C=r;r=S.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+C+`]); `:r+=` validate.errors = [`+C+`]; return false; `:r+=` var err = `+C+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } `,c=x,l&&(m+=`}`,r+=` else { `)}var w=o;if(w){for(var T,E=-1,D=w.length-1;E<D;)if(T=w[E+=1],e.opts.strictKeywords?typeof T==`object`&&Object.keys(T).length>0||T===!1:e.util.schemaHasRules(T,e.RULES.all)){r+=` `+h+` = true; if (`+u+`.length > `+E+`) { `;var O=u+`[`+E+`]`;p.schema=T,p.schemaPath=s+`[`+E+`]`,p.errSchemaPath=c+`/`+E,p.errorPath=e.util.getPathExpr(e.errorPath,E,e.opts.jsonPointers,!0),p.dataPathArr[_]=E;var k=e.validate(p);p.baseId=y,e.util.varOccurences(k,v)<2?r+=` `+e.util.varReplace(k,v,O)+` `:r+=` var `+v+` = `+O+`; `+k+` `,r+=` } `,l&&(r+=` if (`+h+`) { `,m+=`}`)}}if(typeof b==`object`&&(e.opts.strictKeywords?typeof b==`object`&&Object.keys(b).length>0||b===!1:e.util.schemaHasRules(b,e.RULES.all))){p.schema=b,p.schemaPath=e.schemaPath+`.additionalItems`,p.errSchemaPath=e.errSchemaPath+`/additionalItems`,r+=` `+h+` = true; if (`+u+`.length > `+o.length+`) { for (var `+g+` = `+o.length+`; `+g+` < `+u+`.length; `+g+`++) { `,p.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var O=u+`[`+g+`]`;p.dataPathArr[_]=g;var k=e.validate(p);p.baseId=y,e.util.varOccurences(k,v)<2?r+=` `+e.util.varReplace(k,v,O)+` `:r+=` var `+v+` = `+O+`; `+k+` `,l&&(r+=` if (!`+h+`) break; `),r+=` } } `,l&&(r+=` if (`+h+`) { `,m+=`}`)}}else if(e.opts.strictKeywords?typeof o==`object`&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){p.schema=o,p.schemaPath=s,p.errSchemaPath=c,r+=` for (var `+g+` = 0; `+g+` < `+u+`.length; `+g+`++) { `,p.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var O=u+`[`+g+`]`;p.dataPathArr[_]=g;var k=e.validate(p);p.baseId=y,e.util.varOccurences(k,v)<2?r+=` `+e.util.varReplace(k,v,O)+` `:r+=` var `+v+` = `+O+`; `+k+` `,l&&(r+=` if (!`+h+`) break; `),r+=` }`}return l&&(r+=` `+m+` if (`+f+` == errors) {`),r}})),vn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u,d=`data`+(a||``),f=e.opts.$data&&o&&o.$data,p;f?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,p=`schema`+i):p=o;var m=t==`maximum`,h=m?`exclusiveMaximum`:`exclusiveMinimum`,g=e.schema[h],_=e.opts.$data&&g&&g.$data,v=m?`<`:`>`,y=m?`>`:`<`,u=void 0;if(!(f||typeof o==`number`||o===void 0))throw Error(t+` must be number`);if(!(_||g===void 0||typeof g==`number`||typeof g==`boolean`))throw Error(h+` must be number or boolean`);if(_){var b=e.util.getData(g.$data,a,e.dataPathArr),x=`exclusive`+i,S=`exclType`+i,C=`exclIsNumber`+i,w=`op`+i,T=`' + `+w+` + '`;r+=` var schemaExcl`+i+` = `+b+`; `,b=`schemaExcl`+i,r+=` var `+x+`; var `+S+` = typeof `+b+`; if (`+S+` != 'boolean' && `+S+` != 'undefined' && `+S+` != 'number') { `;var u=h,E=E||[];E.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(u||`_exclusiveLimit`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: {} `,e.opts.messages!==!1&&(r+=` , message: '`+h+` should be boolean' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+d+` `),r+=` } `);var D=r;r=E.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+D+`]); `:r+=` validate.errors = [`+D+`]; return false; `:r+=` var err = `+D+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } else if ( `,f&&(r+=` (`+p+` !== undefined && typeof `+p+` != 'number') || `),r+=` `+S+` == 'number' ? ( (`+x+` = `+p+` === undefined || `+b+` `+v+`= `+p+`) ? `+d+` `+y+`= `+b+` : `+d+` `+y+` `+p+` ) : ( (`+x+` = `+b+` === true) ? `+d+` `+y+`= `+p+` : `+d+` `+y+` `+p+` ) || `+d+` !== `+d+`) { var op`+i+` = `+x+` ? '`+v+`' : '`+v+`='; `,o===void 0&&(u=h,c=e.errSchemaPath+`/`+h,p=b,f=_)}else{var C=typeof g==`number`,T=v;if(C&&f){var w=`'`+T+`'`;r+=` if ( `,f&&(r+=` (`+p+` !== undefined && typeof `+p+` != 'number') || `),r+=` ( `+p+` === undefined || `+g+` `+v+`= `+p+` ? `+d+` `+y+`= `+g+` : `+d+` `+y+` `+p+` ) || `+d+` !== `+d+`) { `}else{C&&o===void 0?(x=!0,u=h,c=e.errSchemaPath+`/`+h,p=g,y+=`=`):(C&&(p=Math[m?`min`:`max`](g,o)),g===(C?p:!0)?(x=!0,u=h,c=e.errSchemaPath+`/`+h,y+=`=`):(x=!1,T+=`=`));var w=`'`+T+`'`;r+=` if ( `,f&&(r+=` (`+p+` !== undefined && typeof `+p+` != 'number') || `),r+=` `+d+` `+y+` `+p+` || `+d+` !== `+d+`) { `}}u||=t;var E=E||[];E.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(u||`_limit`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { comparison: `+w+`, limit: `+p+`, exclusive: `+x+` } `,e.opts.messages!==!1&&(r+=` , message: 'should be `+T+` `,f?r+=`' + `+p:r+=``+p+`'`),e.opts.verbose&&(r+=` , schema: `,f?r+=`validate.schema`+s:r+=``+o,r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+d+` `),r+=` } `);var D=r;return r=E.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+D+`]); `:r+=` validate.errors = [`+D+`]; return false; `:r+=` var err = `+D+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } `,l&&(r+=` else { `),r}})),yn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u,d=`data`+(a||``),f=e.opts.$data&&o&&o.$data,p;if(f?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,p=`schema`+i):p=o,!(f||typeof o==`number`))throw Error(t+` must be number`);var m=t==`maxItems`?`>`:`<`;r+=`if ( `,f&&(r+=` (`+p+` !== undefined && typeof `+p+` != 'number') || `),r+=` `+d+`.length `+m+` `+p+`) { `;var u=t,h=h||[];h.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(u||`_limitItems`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { limit: `+p+` } `,e.opts.messages!==!1&&(r+=` , message: 'should NOT have `,t==`maxItems`?r+=`more`:r+=`fewer`,r+=` than `,f?r+=`' + `+p+` + '`:r+=``+o,r+=` items' `),e.opts.verbose&&(r+=` , schema: `,f?r+=`validate.schema`+s:r+=``+o,r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+d+` `),r+=` } `);var g=r;return r=h.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+g+`]); `:r+=` validate.errors = [`+g+`]; return false; `:r+=` var err = `+g+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=`} `,l&&(r+=` else { `),r}})),bn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u,d=`data`+(a||``),f=e.opts.$data&&o&&o.$data,p;if(f?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,p=`schema`+i):p=o,!(f||typeof o==`number`))throw Error(t+` must be number`);var m=t==`maxLength`?`>`:`<`;r+=`if ( `,f&&(r+=` (`+p+` !== undefined && typeof `+p+` != 'number') || `),e.opts.unicode===!1?r+=` `+d+`.length `:r+=` ucs2length(`+d+`) `,r+=` `+m+` `+p+`) { `;var u=t,h=h||[];h.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(u||`_limitLength`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { limit: `+p+` } `,e.opts.messages!==!1&&(r+=` , message: 'should NOT be `,t==`maxLength`?r+=`longer`:r+=`shorter`,r+=` than `,f?r+=`' + `+p+` + '`:r+=``+o,r+=` characters' `),e.opts.verbose&&(r+=` , schema: `,f?r+=`validate.schema`+s:r+=``+o,r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+d+` `),r+=` } `);var g=r;return r=h.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+g+`]); `:r+=` validate.errors = [`+g+`]; return false; `:r+=` var err = `+g+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=`} `,l&&(r+=` else { `),r}})),xn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u,d=`data`+(a||``),f=e.opts.$data&&o&&o.$data,p;if(f?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,p=`schema`+i):p=o,!(f||typeof o==`number`))throw Error(t+` must be number`);var m=t==`maxProperties`?`>`:`<`;r+=`if ( `,f&&(r+=` (`+p+` !== undefined && typeof `+p+` != 'number') || `),r+=` Object.keys(`+d+`).length `+m+` `+p+`) { `;var u=t,h=h||[];h.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(u||`_limitProperties`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { limit: `+p+` } `,e.opts.messages!==!1&&(r+=` , message: 'should NOT have `,t==`maxProperties`?r+=`more`:r+=`fewer`,r+=` than `,f?r+=`' + `+p+` + '`:r+=``+o,r+=` properties' `),e.opts.verbose&&(r+=` , schema: `,f?r+=`validate.schema`+s:r+=``+o,r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+d+` `),r+=` } `);var g=r;return r=h.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+g+`]); `:r+=` validate.errors = [`+g+`]; return false; `:r+=` var err = `+g+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=`} `,l&&(r+=` else { `),r}})),Sn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=e.opts.$data&&o&&o.$data,f;if(d?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,f=`schema`+i):f=o,!(d||typeof o==`number`))throw Error(t+` must be number`);r+=`var division`+i+`;if (`,d&&(r+=` `+f+` !== undefined && ( typeof `+f+` != 'number' || `),r+=` (division`+i+` = `+u+` / `+f+`, `,e.opts.multipleOfPrecision?r+=` Math.abs(Math.round(division`+i+`) - division`+i+`) > 1e-`+e.opts.multipleOfPrecision+` `:r+=` division`+i+` !== parseInt(division`+i+`) `,r+=` ) `,d&&(r+=` ) `),r+=` ) { `;var p=p||[];p.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'multipleOf' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { multipleOf: `+f+` } `,e.opts.messages!==!1&&(r+=` , message: 'should be multiple of `,d?r+=`' + `+f:r+=``+f+`'`),e.opts.verbose&&(r+=` , schema: `,d?r+=`validate.schema`+s:r+=``+o,r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var m=r;return r=p.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+m+`]); `:r+=` validate.errors = [`+m+`]; return false; `:r+=` var err = `+m+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=`} `,l&&(r+=` else { `),r}})),Cn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`errs__`+i,f=e.util.copy(e);f.level++;var p=`valid`+f.level;if(e.opts.strictKeywords?typeof o==`object`&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=s,f.errSchemaPath=c,r+=` var `+d+` = errors; `;var m=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var h;f.opts.allErrors&&(h=f.opts.allErrors,f.opts.allErrors=!1),r+=` `+e.validate(f)+` `,f.createErrors=!0,h&&(f.opts.allErrors=h),e.compositeRule=f.compositeRule=m,r+=` if (`+p+`) { `;var g=g||[];g.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'not' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: {} `,e.opts.messages!==!1&&(r+=` , message: 'should NOT be valid' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var _=r;r=g.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+_+`]); `:r+=` validate.errors = [`+_+`]; return false; `:r+=` var err = `+_+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } else { errors = `+d+`; if (vErrors !== null) { if (`+d+`) vErrors.length = `+d+`; else vErrors = null; } `,e.opts.allErrors&&(r+=` } `)}else r+=` var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'not' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: {} `,e.opts.messages!==!1&&(r+=` , message: 'should NOT be valid' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,l&&(r+=` if (false) { `);return r}})),wn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=`errs__`+i,p=e.util.copy(e),m=``;p.level++;var h=`valid`+p.level,g=p.baseId,_=`prevValid`+i,v=`passingSchemas`+i;r+=`var `+f+` = errors , `+_+` = false , `+d+` = false , `+v+` = null; `;var y=e.compositeRule;e.compositeRule=p.compositeRule=!0;var b=o;if(b)for(var x,S=-1,C=b.length-1;S<C;)x=b[S+=1],(e.opts.strictKeywords?typeof x==`object`&&Object.keys(x).length>0||x===!1:e.util.schemaHasRules(x,e.RULES.all))?(p.schema=x,p.schemaPath=s+`[`+S+`]`,p.errSchemaPath=c+`/`+S,r+=` `+e.validate(p)+` `,p.baseId=g):r+=` var `+h+` = true; `,S&&(r+=` if (`+h+` && `+_+`) { `+d+` = false; `+v+` = [`+v+`, `+S+`]; } else { `,m+=`}`),r+=` if (`+h+`) { `+d+` = `+_+` = true; `+v+` = `+S+`; }`;return e.compositeRule=p.compositeRule=y,r+=``+m+`if (!`+d+`) { var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'oneOf' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { passingSchemas: `+v+` } `,e.opts.messages!==!1&&(r+=` , message: 'should match exactly one schema in oneOf' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,!e.compositeRule&&l&&(e.async?r+=` throw new ValidationError(vErrors); `:r+=` validate.errors = vErrors; return false; `),r+=`} else { errors = `+f+`; if (vErrors !== null) { if (`+f+`) vErrors.length = `+f+`; else vErrors = null; }`,e.opts.allErrors&&(r+=` } `),r}})),Tn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=e.opts.$data&&o&&o.$data,f;d?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,f=`schema`+i):f=o;var p=d?`(new RegExp(`+f+`))`:e.usePattern(o);r+=`if ( `,d&&(r+=` (`+f+` !== undefined && typeof `+f+` != 'string') || `),r+=` !`+p+`.test(`+u+`) ) { `;var m=m||[];m.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'pattern' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { pattern: `,d?r+=``+f:r+=``+e.util.toQuotedString(o),r+=` } `,e.opts.messages!==!1&&(r+=` , message: 'should match pattern "`,d?r+=`' + `+f+` + '`:r+=``+e.util.escapeQuotes(o),r+=`"' `),e.opts.verbose&&(r+=` , schema: `,d?r+=`validate.schema`+s:r+=``+e.util.toQuotedString(o),r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var h=r;return r=m.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+h+`]); `:r+=` validate.errors = [`+h+`]; return false; `:r+=` var err = `+h+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=`} `,l&&(r+=` else { `),r}})),En=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`errs__`+i,f=e.util.copy(e),p=``;f.level++;var m=`valid`+f.level,h=`key`+i,g=`idx`+i,_=f.dataLevel=e.dataLevel+1,v=`data`+_,y=`dataProperties`+i,b=Object.keys(o||{}).filter(N),x=e.schema.patternProperties||{},S=Object.keys(x).filter(N),C=e.schema.additionalProperties,w=b.length||S.length,T=C===!1,E=typeof C==`object`&&Object.keys(C).length,D=e.opts.removeAdditional,O=T||E||D,k=e.opts.ownProperties,A=e.baseId,j=e.schema.required;if(j&&!(e.opts.$data&&j.$data)&&j.length<e.opts.loopRequired)var M=e.util.toHash(j);function N(e){return e!==`__proto__`}if(r+=`var `+d+` = errors;var `+m+` = true;`,k&&(r+=` var `+y+` = undefined;`),O){if(k?r+=` `+y+` = `+y+` || Object.keys(`+u+`); for (var `+g+`=0; `+g+`<`+y+`.length; `+g+`++) { var `+h+` = `+y+`[`+g+`]; `:r+=` for (var `+h+` in `+u+`) { `,w){if(r+=` var isAdditional`+i+` = !(false `,b.length)if(b.length>8)r+=` || validate.schema`+s+`.hasOwnProperty(`+h+`) `;else{var P=b;if(P)for(var F,I=-1,L=P.length-1;I<L;)F=P[I+=1],r+=` || `+h+` == `+e.util.toQuotedString(F)+` `}if(S.length){var R=S;if(R)for(var z,B=-1,V=R.length-1;B<V;)z=R[B+=1],r+=` || `+e.usePattern(z)+`.test(`+h+`) `}r+=` ); if (isAdditional`+i+`) { `}if(D==`all`)r+=` delete `+u+`[`+h+`]; `;else{var H=e.errorPath,U=`' + `+h+` + '`;if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers)),T)if(D)r+=` delete `+u+`[`+h+`]; `;else{r+=` `+m+` = false; `;var W=c;c=e.errSchemaPath+`/additionalProperties`;var G=G||[];G.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'additionalProperties' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { additionalProperty: '`+U+`' } `,e.opts.messages!==!1&&(r+=` , message: '`,e.opts._errorDataPathProperty?r+=`is an invalid additional property`:r+=`should NOT have additional properties`,r+=`' `),e.opts.verbose&&(r+=` , schema: false , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var K=r;r=G.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+K+`]); `:r+=` validate.errors = [`+K+`]; return false; `:r+=` var err = `+K+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,c=W,l&&(r+=` break; `)}else if(E)if(D==`failing`){r+=` var `+d+` = errors; `;var q=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.schema=C,f.schemaPath=e.schemaPath+`.additionalProperties`,f.errSchemaPath=e.errSchemaPath+`/additionalProperties`,f.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers);var J=u+`[`+h+`]`;f.dataPathArr[_]=h;var Y=e.validate(f);f.baseId=A,e.util.varOccurences(Y,v)<2?r+=` `+e.util.varReplace(Y,v,J)+` `:r+=` var `+v+` = `+J+`; `+Y+` `,r+=` if (!`+m+`) { errors = `+d+`; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete `+u+`[`+h+`]; } `,e.compositeRule=f.compositeRule=q}else{f.schema=C,f.schemaPath=e.schemaPath+`.additionalProperties`,f.errSchemaPath=e.errSchemaPath+`/additionalProperties`,f.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers);var J=u+`[`+h+`]`;f.dataPathArr[_]=h;var Y=e.validate(f);f.baseId=A,e.util.varOccurences(Y,v)<2?r+=` `+e.util.varReplace(Y,v,J)+` `:r+=` var `+v+` = `+J+`; `+Y+` `,l&&(r+=` if (!`+m+`) break; `)}e.errorPath=H}w&&(r+=` } `),r+=` } `,l&&(r+=` if (`+m+`) { `,p+=`}`)}var X=e.opts.useDefaults&&!e.compositeRule;if(b.length){var ee=b;if(ee)for(var F,te=-1,ne=ee.length-1;te<ne;){F=ee[te+=1];var Z=o[F];if(e.opts.strictKeywords?typeof Z==`object`&&Object.keys(Z).length>0||Z===!1:e.util.schemaHasRules(Z,e.RULES.all)){var Q=e.util.getProperty(F),J=u+Q,re=X&&Z.default!==void 0;f.schema=Z,f.schemaPath=s+Q,f.errSchemaPath=c+`/`+e.util.escapeFragment(F),f.errorPath=e.util.getPath(e.errorPath,F,e.opts.jsonPointers),f.dataPathArr[_]=e.util.toQuotedString(F);var Y=e.validate(f);if(f.baseId=A,e.util.varOccurences(Y,v)<2){Y=e.util.varReplace(Y,v,J);var ie=J}else{var ie=v;r+=` var `+v+` = `+J+`; `}if(re)r+=` `+Y+` `;else{if(M&&M[F]){r+=` if ( `+ie+` === undefined `,k&&(r+=` || ! Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(F)+`') `),r+=`) { `+m+` = false; `;var H=e.errorPath,W=c,ae=e.util.escapeQuotes(F);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(H,F,e.opts.jsonPointers)),c=e.errSchemaPath+`/required`;var G=G||[];G.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'required' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { missingProperty: '`+ae+`' } `,e.opts.messages!==!1&&(r+=` , message: '`,e.opts._errorDataPathProperty?r+=`is a required property`:r+=`should have required property \\'`+ae+`\\'`,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var K=r;r=G.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+K+`]); `:r+=` validate.errors = [`+K+`]; return false; `:r+=` var err = `+K+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,c=W,e.errorPath=H,r+=` } else { `}else l?(r+=` if ( `+ie+` === undefined `,k&&(r+=` || ! Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(F)+`') `),r+=`) { `+m+` = true; } else { `):(r+=` if (`+ie+` !== undefined `,k&&(r+=` && Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(F)+`') `),r+=` ) { `);r+=` `+Y+` } `}}l&&(r+=` if (`+m+`) { `,p+=`}`)}}if(S.length){var oe=S;if(oe)for(var z,se=-1,ce=oe.length-1;se<ce;){z=oe[se+=1];var Z=x[z];if(e.opts.strictKeywords?typeof Z==`object`&&Object.keys(Z).length>0||Z===!1:e.util.schemaHasRules(Z,e.RULES.all)){f.schema=Z,f.schemaPath=e.schemaPath+`.patternProperties`+e.util.getProperty(z),f.errSchemaPath=e.errSchemaPath+`/patternProperties/`+e.util.escapeFragment(z),k?r+=` `+y+` = `+y+` || Object.keys(`+u+`); for (var `+g+`=0; `+g+`<`+y+`.length; `+g+`++) { var `+h+` = `+y+`[`+g+`]; `:r+=` for (var `+h+` in `+u+`) { `,r+=` if (`+e.usePattern(z)+`.test(`+h+`)) { `,f.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers);var J=u+`[`+h+`]`;f.dataPathArr[_]=h;var Y=e.validate(f);f.baseId=A,e.util.varOccurences(Y,v)<2?r+=` `+e.util.varReplace(Y,v,J)+` `:r+=` var `+v+` = `+J+`; `+Y+` `,l&&(r+=` if (!`+m+`) break; `),r+=` } `,l&&(r+=` else `+m+` = true; `),r+=` } `,l&&(r+=` if (`+m+`) { `,p+=`}`)}}}return l&&(r+=` `+p+` if (`+d+` == errors) {`),r}})),Dn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`errs__`+i,f=e.util.copy(e),p=``;f.level++;var m=`valid`+f.level;if(r+=`var `+d+` = errors;`,e.opts.strictKeywords?typeof o==`object`&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=s,f.errSchemaPath=c;var h=`key`+i,g=`idx`+i,_=`i`+i,v=`' + `+h+` + '`,y=f.dataLevel=e.dataLevel+1,b=`data`+y,x=`dataProperties`+i,S=e.opts.ownProperties,C=e.baseId;S&&(r+=` var `+x+` = undefined; `),S?r+=` `+x+` = `+x+` || Object.keys(`+u+`); for (var `+g+`=0; `+g+`<`+x+`.length; `+g+`++) { var `+h+` = `+x+`[`+g+`]; `:r+=` for (var `+h+` in `+u+`) { `,r+=` var startErrs`+i+` = errors; `;var w=h,T=e.compositeRule;e.compositeRule=f.compositeRule=!0;var E=e.validate(f);f.baseId=C,e.util.varOccurences(E,b)<2?r+=` `+e.util.varReplace(E,b,w)+` `:r+=` var `+b+` = `+w+`; `+E+` `,e.compositeRule=f.compositeRule=T,r+=` if (!`+m+`) { for (var `+_+`=startErrs`+i+`; `+_+`<errors; `+_+`++) { vErrors[`+_+`].propertyName = `+h+`; } var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'propertyNames' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { propertyName: '`+v+`' } `,e.opts.messages!==!1&&(r+=` , message: 'property name \\'`+v+`\\' is invalid' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,!e.compositeRule&&l&&(e.async?r+=` throw new ValidationError(vErrors); `:r+=` validate.errors = vErrors; return false; `),l&&(r+=` break; `),r+=` } }`}return l&&(r+=` `+p+` if (`+d+` == errors) {`),r}})),On=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=e.opts.$data&&o&&o.$data;f&&(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,``+i);var p=`schema`+i;if(!f)if(o.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var m=[],h=o;if(h)for(var g,_=-1,v=h.length-1;_<v;){g=h[_+=1];var y=e.schema.properties[g];y&&(e.opts.strictKeywords?typeof y==`object`&&Object.keys(y).length>0||y===!1:e.util.schemaHasRules(y,e.RULES.all))||(m[m.length]=g)}}else var m=o;if(f||m.length){var b=e.errorPath,x=f||m.length>=e.opts.loopRequired,S=e.opts.ownProperties;if(l)if(r+=` var missing`+i+`; `,x){f||(r+=` var `+p+` = validate.schema`+s+`; `);var C=`i`+i,w=`schema`+i+`[`+C+`]`,T=`' + `+w+` + '`;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(b,w,e.opts.jsonPointers)),r+=` var `+d+` = true; `,f&&(r+=` if (schema`+i+` === undefined) `+d+` = true; else if (!Array.isArray(schema`+i+`)) `+d+` = false; else {`),r+=` for (var `+C+` = 0; `+C+` < `+p+`.length; `+C+`++) { `+d+` = `+u+`[`+p+`[`+C+`]] !== undefined `,S&&(r+=` && Object.prototype.hasOwnProperty.call(`+u+`, `+p+`[`+C+`]) `),r+=`; if (!`+d+`) break; } `,f&&(r+=` } `),r+=` if (!`+d+`) { `;var E=E||[];E.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'required' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { missingProperty: '`+T+`' } `,e.opts.messages!==!1&&(r+=` , message: '`,e.opts._errorDataPathProperty?r+=`is a required property`:r+=`should have required property \\'`+T+`\\'`,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var D=r;r=E.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+D+`]); `:r+=` validate.errors = [`+D+`]; return false; `:r+=` var err = `+D+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } else { `}else{r+=` if ( `;var O=m;if(O)for(var k,C=-1,A=O.length-1;C<A;){k=O[C+=1],C&&(r+=` || `);var j=e.util.getProperty(k),M=u+j;r+=` ( ( `+M+` === undefined `,S&&(r+=` || ! Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(k)+`') `),r+=`) && (missing`+i+` = `+e.util.toQuotedString(e.opts.jsonPointers?k:j)+`) ) `}r+=`) { `;var w=`missing`+i,T=`' + `+w+` + '`;e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(b,w,!0):b+` + `+w);var E=E||[];E.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'required' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { missingProperty: '`+T+`' } `,e.opts.messages!==!1&&(r+=` , message: '`,e.opts._errorDataPathProperty?r+=`is a required property`:r+=`should have required property \\'`+T+`\\'`,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var D=r;r=E.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+D+`]); `:r+=` validate.errors = [`+D+`]; return false; `:r+=` var err = `+D+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } else { `}else if(x){f||(r+=` var `+p+` = validate.schema`+s+`; `);var C=`i`+i,w=`schema`+i+`[`+C+`]`,T=`' + `+w+` + '`;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(b,w,e.opts.jsonPointers)),f&&(r+=` if (`+p+` && !Array.isArray(`+p+`)) { var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'required' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { missingProperty: '`+T+`' } `,e.opts.messages!==!1&&(r+=` , message: '`,e.opts._errorDataPathProperty?r+=`is a required property`:r+=`should have required property \\'`+T+`\\'`,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (`+p+` !== undefined) { `),r+=` for (var `+C+` = 0; `+C+` < `+p+`.length; `+C+`++) { if (`+u+`[`+p+`[`+C+`]] === undefined `,S&&(r+=` || ! Object.prototype.hasOwnProperty.call(`+u+`, `+p+`[`+C+`]) `),r+=`) { var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'required' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { missingProperty: '`+T+`' } `,e.opts.messages!==!1&&(r+=` , message: '`,e.opts._errorDataPathProperty?r+=`is a required property`:r+=`should have required property \\'`+T+`\\'`,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } `,f&&(r+=` } `)}else{var N=m;if(N)for(var k,P=-1,F=N.length-1;P<F;){k=N[P+=1];var j=e.util.getProperty(k),T=e.util.escapeQuotes(k),M=u+j;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(b,k,e.opts.jsonPointers)),r+=` if ( `+M+` === undefined `,S&&(r+=` || ! Object.prototype.hasOwnProperty.call(`+u+`, '`+e.util.escapeQuotes(k)+`') `),r+=`) { var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'required' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { missingProperty: '`+T+`' } `,e.opts.messages!==!1&&(r+=` , message: '`,e.opts._errorDataPathProperty?r+=`is a required property`:r+=`should have required property \\'`+T+`\\'`,r+=`' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } `}}e.errorPath=b}else l&&(r+=` if (true) {`);return r}})),kn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u=`data`+(a||``),d=`valid`+i,f=e.opts.$data&&o&&o.$data,p;if(f?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,p=`schema`+i):p=o,(o||f)&&e.opts.uniqueItems!==!1){f&&(r+=` var `+d+`; if (`+p+` === false || `+p+` === undefined) `+d+` = true; else if (typeof `+p+` != 'boolean') `+d+` = false; else { `),r+=` var i = `+u+`.length , `+d+` = true , j; if (i > 1) { `;var m=e.schema.items&&e.schema.items.type,h=Array.isArray(m);if(!m||m==`object`||m==`array`||h&&(m.indexOf(`object`)>=0||m.indexOf(`array`)>=0))r+=` outer: for (;i--;) { for (j = i; j--;) { if (equal(`+u+`[i], `+u+`[j])) { `+d+` = false; break outer; } } } `;else{r+=` var itemIndices = {}, item; for (;i--;) { var item = `+u+`[i]; `;var g=`checkDataType`+(h?`s`:``);r+=` if (`+e.util[g](m,`item`,e.opts.strictNumbers,!0)+`) continue; `,h&&(r+=` if (typeof item == 'string') item = '"' + item; `),r+=` if (typeof itemIndices[item] == 'number') { `+d+` = false; j = itemIndices[item]; break; } itemIndices[item] = i; } `}r+=` } `,f&&(r+=` } `),r+=` if (!`+d+`) { `;var _=_||[];_.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: 'uniqueItems' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { i: i, j: j } `,e.opts.messages!==!1&&(r+=` , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' `),e.opts.verbose&&(r+=` , schema: `,f?r+=`validate.schema`+s:r+=``+o,r+=` , parentSchema: validate.schema`+e.schemaPath+` , data: `+u+` `),r+=` } `);var v=r;r=_.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+v+`]); `:r+=` validate.errors = [`+v+`]; return false; `:r+=` var err = `+v+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,r+=` } `,l&&(r+=` else { `)}else l&&(r+=` if (true) { `);return r}})),An=e(((exports,t)=>{t.exports={$ref:sn(),allOf:cn(),anyOf:ln(),$comment:un(),const:dn(),contains:fn(),dependencies:pn(),enum:mn(),format:hn(),if:gn(),items:_n(),maximum:vn(),minimum:vn(),maxItems:yn(),minItems:yn(),maxLength:bn(),minLength:bn(),maxProperties:xn(),minProperties:xn(),multipleOf:Sn(),not:Cn(),oneOf:wn(),pattern:Tn(),properties:En(),propertyNames:Dn(),required:On(),uniqueItems:kn(),validate:nn()}})),jn=e(((exports,t)=>{var n=An(),r=Xt().toHash;t.exports=function(){var e=[{type:`number`,rules:[{maximum:[`exclusiveMaximum`]},{minimum:[`exclusiveMinimum`]},`multipleOf`,`format`]},{type:`string`,rules:[`maxLength`,`minLength`,`pattern`,`format`]},{type:`array`,rules:[`maxItems`,`minItems`,`items`,`contains`,`uniqueItems`]},{type:`object`,rules:[`maxProperties`,`minProperties`,`required`,`dependencies`,`propertyNames`,{properties:[`additionalProperties`,`patternProperties`]}]},{rules:[`$ref`,`const`,`enum`,`not`,`anyOf`,`oneOf`,`allOf`,`if`]}],t=[`type`,`$comment`];return e.all=r(t),e.types=r([`number`,`integer`,`string`,`array`,`object`,`boolean`,`null`]),e.forEach(function(r){r.rules=r.rules.map(function(r){var i;if(typeof r==`object`){var a=Object.keys(r)[0];i=r[a],r=a,i.forEach(function(n){t.push(n),e.all[n]=!0})}return t.push(r),e.all[r]={keyword:r,code:n[r],implements:i}}),e.all.$comment={keyword:`$comment`,code:n.$comment},r.type&&(e.types[r.type]=r)}),e.keywords=r(t.concat([`$schema`,`$id`,`id`,`$data`,`$async`,`title`,`description`,`default`,`definitions`,`examples`,`readOnly`,`writeOnly`,`contentMediaType`,`contentEncoding`,`additionalItems`,`then`,`else`])),e.custom={},e}})),Mn=e(((exports,t)=>{var n=[`multipleOf`,`maximum`,`exclusiveMaximum`,`minimum`,`exclusiveMinimum`,`maxLength`,`minLength`,`pattern`,`additionalItems`,`maxItems`,`minItems`,`uniqueItems`,`maxProperties`,`minProperties`,`required`,`additionalProperties`,`enum`,`format`,`const`];t.exports=function(e,t){for(var r=0;r<t.length;r++){e=JSON.parse(JSON.stringify(e));var i=t[r].split(`/`),a=e,o;for(o=1;o<i.length;o++)a=a[i[o]];for(o=0;o<n.length;o++){var s=n[o],c=a[s];c&&(a[s]={anyOf:[c,{$ref:`https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#`}]})}}return e}})),Nn=e(((exports,t)=>{var n=en().MissingRef;t.exports=r;function r(e,t,i){var a=this;if(typeof this._opts.loadSchema!=`function`)throw Error(`options.loadSchema should be a function`);typeof t==`function`&&(i=t,t=void 0);var o=s(e).then(function(){var n=a._addSchema(e,void 0,t);return n.validate||c(n)});return i&&o.then(function(e){i(null,e)},i),o;function s(e){var t=e.$schema;return t&&!a.getSchema(t)?r.call(a,{$ref:t},!0):Promise.resolve()}function c(e){try{return a._compile(e)}catch(e){if(e instanceof n)return r(e);throw e}function r(n){var r=n.missingSchema;if(l(r))throw Error(`Schema `+r+` is loaded but `+n.missingRef+` cannot be resolved`);var i=a._loadingSchemas[r];return i||(i=a._loadingSchemas[r]=a._opts.loadSchema(r),i.then(o,o)),i.then(function(e){if(!l(r))return s(e).then(function(){l(r)||a.addSchema(e,r,void 0,t)})}).then(function(){return c(e)});function o(){delete a._loadingSchemas[r]}function l(e){return a._refs[e]||a._schemas[e]}}}}})),Pn=e(((exports,t)=>{t.exports=function(e,t,n){var r=` `,i=e.level,a=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+`/`+t,l=!e.opts.allErrors,u,d=`data`+(a||``),f=`valid`+i,p=`errs__`+i,m=e.opts.$data&&o&&o.$data,h;m?(r+=` var schema`+i+` = `+e.util.getData(o.$data,a,e.dataPathArr)+`; `,h=`schema`+i):h=o;var g=this,_=`definition`+i,v=g.definition,y=``,b,x,S,C,w;if(m&&v.$data){w=`keywordValidate`+i;var T=v.validateSchema;r+=` var `+_+` = RULES.custom['`+t+`'].definition; var `+w+` = `+_+`.validate;`}else{if(C=e.useCustomRule(g,o,e.schema,e),!C)return;h=`validate.schema`+s,w=C.code,b=v.compile,x=v.inline,S=v.macro}var E=w+`.errors`,D=`i`+i,O=`ruleErr`+i,k=v.async;if(k&&!e.async)throw Error(`async keyword in sync schema`);if(x||S||(r+=``+E+` = null;`),r+=`var `+p+` = errors;var `+f+`;`,m&&v.$data&&(y+=`}`,r+=` if (`+h+` === undefined) { `+f+` = true; } else { `,T&&(y+=`}`,r+=` `+f+` = `+_+`.validateSchema(`+h+`); if (`+f+`) { `)),x)v.statements?r+=` `+C.validate+` `:r+=` `+f+` = `+C.validate+`; `;else if(S){var A=e.util.copy(e),y=``;A.level++;var j=`valid`+A.level;A.schema=C.validate,A.schemaPath=``;var M=e.compositeRule;e.compositeRule=A.compositeRule=!0;var N=e.validate(A).replace(/validate\.schema/g,w);e.compositeRule=A.compositeRule=M,r+=` `+N}else{var P=P||[];P.push(r),r=``,r+=` `+w+`.call( `,e.opts.passContext?r+=`this`:r+=`self`,b||v.schema===!1?r+=` , `+d+` `:r+=` , `+h+` , `+d+` , validate.schema`+e.schemaPath+` `,r+=` , (dataPath || '')`,e.errorPath!=`""`&&(r+=` + `+e.errorPath);var F=a?`data`+(a-1||``):`parentData`,I=a?e.dataPathArr[a]:`parentDataProperty`;r+=` , `+F+` , `+I+` , rootData ) `;var L=r;r=P.pop(),v.errors===!1?(r+=` `+f+` = `,k&&(r+=`await `),r+=``+L+`; `):k?(E=`customErrors`+i,r+=` var `+E+` = null; try { `+f+` = await `+L+`; } catch (e) { `+f+` = false; if (e instanceof ValidationError) `+E+` = e.errors; else throw e; } `):r+=` `+E+` = null; `+f+` = `+L+`; `}if(v.modifying&&(r+=` if (`+F+`) `+d+` = `+F+`[`+I+`];`),r+=``+y,v.valid)l&&(r+=` if (true) { `);else{r+=` if ( `,v.valid===void 0?(r+=` !`,S?r+=``+j:r+=``+f):r+=` `+!v.valid+` `,r+=`) { `,u=g.keyword;var P=P||[];P.push(r),r=``;var P=P||[];P.push(r),r=``,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(u||`custom`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { keyword: '`+g.keyword+`' } `,e.opts.messages!==!1&&(r+=` , message: 'should pass "`+g.keyword+`" keyword validation' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+d+` `),r+=` } `);var R=r;r=P.pop(),!e.compositeRule&&l?e.async?r+=` throw new ValidationError([`+R+`]); `:r+=` validate.errors = [`+R+`]; return false; `:r+=` var err = `+R+`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `;var z=r;r=P.pop(),x?v.errors?v.errors!=`full`&&(r+=` for (var `+D+`=`+p+`; `+D+`<errors; `+D+`++) { var `+O+` = vErrors[`+D+`]; if (`+O+`.dataPath === undefined) `+O+`.dataPath = (dataPath || '') + `+e.errorPath+`; if (`+O+`.schemaPath === undefined) { `+O+`.schemaPath = "`+c+`"; } `,e.opts.verbose&&(r+=` `+O+`.schema = `+h+`; `+O+`.data = `+d+`; `),r+=` } `):v.errors===!1?r+=` `+z+` `:(r+=` if (`+p+` == errors) { `+z+` } else { for (var `+D+`=`+p+`; `+D+`<errors; `+D+`++) { var `+O+` = vErrors[`+D+`]; if (`+O+`.dataPath === undefined) `+O+`.dataPath = (dataPath || '') + `+e.errorPath+`; if (`+O+`.schemaPath === undefined) { `+O+`.schemaPath = "`+c+`"; } `,e.opts.verbose&&(r+=` `+O+`.schema = `+h+`; `+O+`.data = `+d+`; `),r+=` } } `):S?(r+=` var err = `,e.createErrors===!1?r+=` {} `:(r+=` { keyword: '`+(u||`custom`)+`' , dataPath: (dataPath || '') + `+e.errorPath+` , schemaPath: `+e.util.toQuotedString(c)+` , params: { keyword: '`+g.keyword+`' } `,e.opts.messages!==!1&&(r+=` , message: 'should pass "`+g.keyword+`" keyword validation' `),e.opts.verbose&&(r+=` , schema: validate.schema`+s+` , parentSchema: validate.schema`+e.schemaPath+` , data: `+d+` `),r+=` } `),r+=`; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; `,!e.compositeRule&&l&&(e.async?r+=` throw new ValidationError(vErrors); `:r+=` validate.errors = vErrors; return false; `)):v.errors===!1?r+=` `+z+` `:(r+=` if (Array.isArray(`+E+`)) { if (vErrors === null) vErrors = `+E+`; else vErrors = vErrors.concat(`+E+`); errors = vErrors.length; for (var `+D+`=`+p+`; `+D+`<errors; `+D+`++) { var `+O+` = vErrors[`+D+`]; if (`+O+`.dataPath === undefined) `+O+`.dataPath = (dataPath || '') + `+e.errorPath+`; `+O+`.schemaPath = "`+c+`"; `,e.opts.verbose&&(r+=` `+O+`.schema = `+h+`; `+O+`.data = `+d+`; `),r+=` } } else { `+z+` } `),r+=` } `,l&&(r+=` else { `)}return r}})),Fn=e(((exports,t)=>{t.exports={$schema:`http://json-schema.org/draft-07/schema#`,$id:`http://json-schema.org/draft-07/schema#`,title:`Core schema meta-schema`,definitions:{schemaArray:{type:`array`,minItems:1,items:{$ref:`#`}},nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:`#/definitions/nonNegativeInteger`},{default:0}]},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}},type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`},$schema:{type:`string`,format:`uri`},$ref:{type:`string`,format:`uri-reference`},$comment:{type:`string`},title:{type:`string`},description:{type:`string`},default:!0,readOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/definitions/nonNegativeInteger`},minLength:{$ref:`#/definitions/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},additionalItems:{$ref:`#`},items:{anyOf:[{$ref:`#`},{$ref:`#/definitions/schemaArray`}],default:!0},maxItems:{$ref:`#/definitions/nonNegativeInteger`},minItems:{$ref:`#/definitions/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},contains:{$ref:`#`},maxProperties:{$ref:`#/definitions/nonNegativeInteger`},minProperties:{$ref:`#/definitions/nonNegativeIntegerDefault0`},required:{$ref:`#/definitions/stringArray`},additionalProperties:{$ref:`#`},definitions:{type:`object`,additionalProperties:{$ref:`#`},default:{}},properties:{type:`object`,additionalProperties:{$ref:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$ref:`#`},propertyNames:{format:`regex`},default:{}},dependencies:{type:`object`,additionalProperties:{anyOf:[{$ref:`#`},{$ref:`#/definitions/stringArray`}]}},propertyNames:{$ref:`#`},const:!0,enum:{type:`array`,items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:`#/definitions/simpleTypes`},{type:`array`,items:{$ref:`#/definitions/simpleTypes`},minItems:1,uniqueItems:!0}]},format:{type:`string`},contentMediaType:{type:`string`},contentEncoding:{type:`string`},if:{$ref:`#`},then:{$ref:`#`},else:{$ref:`#`},allOf:{$ref:`#/definitions/schemaArray`},anyOf:{$ref:`#/definitions/schemaArray`},oneOf:{$ref:`#/definitions/schemaArray`},not:{$ref:`#`}},default:!0}})),In=e(((exports,t)=>{var n=Fn();t.exports={$id:`https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js`,definitions:{simpleTypes:n.definitions.simpleTypes},type:`object`,dependencies:{schema:[`validate`],$data:[`validate`],statements:[`inline`],valid:{not:{required:[`macro`]}}},properties:{type:n.properties.type,schema:{type:`boolean`},statements:{type:`boolean`},dependencies:{type:`array`,items:{type:`string`}},metaSchema:{type:`object`},modifying:{type:`boolean`},valid:{type:`boolean`},$data:{type:`boolean`},async:{type:`boolean`},errors:{anyOf:[{type:`boolean`},{const:`full`}]}}}})),Ln=e(((exports,t)=>{var n=/^[a-z_$][a-z0-9_$-]*$/i,r=Pn(),i=In();t.exports={add:a,get:o,remove:s,validate:c};function a(e,t){var i=this.RULES;if(i.keywords[e])throw Error(`Keyword `+e+` is already defined`);if(!n.test(e))throw Error(`Keyword `+e+` is not a valid identifier`);if(t){this.validateKeyword(t,!0);var a=t.type;if(Array.isArray(a))for(var o=0;o<a.length;o++)c(e,a[o],t);else c(e,a,t);var s=t.metaSchema;s&&(t.$data&&this._opts.$data&&(s={anyOf:[s,{$ref:`https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#`}]}),t.validateSchema=this.compile(s,!0))}i.keywords[e]=i.all[e]=!0;function c(e,t,n){for(var a,o=0;o<i.length;o++){var s=i[o];if(s.type==t){a=s;break}}a||(a={type:t,rules:[]},i.push(a));var c={keyword:e,definition:n,custom:!0,code:r,implements:n.implements};a.rules.push(c),i.custom[e]=c}return this}function o(e){var t=this.RULES.custom[e];return t?t.definition:this.RULES.keywords[e]||!1}function s(e){var t=this.RULES;delete t.keywords[e],delete t.all[e],delete t.custom[e];for(var n=0;n<t.length;n++)for(var r=t[n].rules,i=0;i<r.length;i++)if(r[i].keyword==e){r.splice(i,1);break}return this}function c(e,t){c.errors=null;var n=this._validateKeyword=this._validateKeyword||this.compile(i,!0);if(n(e))return!0;if(c.errors=n.errors,t)throw Error(`custom keyword definition is invalid: `+this.errorsText(n.errors));return!1}})),Rn=e(((exports,t)=>{t.exports={$schema:`http://json-schema.org/draft-07/schema#`,$id:`https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#`,description:`Meta-schema for $data reference (JSON Schema extension proposal)`,type:`object`,required:[`$data`],properties:{$data:{type:`string`,anyOf:[{format:`relative-json-pointer`},{format:`json-pointer`}]}},additionalProperties:!1}})),zn=e(((exports,t)=>{var n=rn(),r=$t(),i=an(),a=Zt(),o=tn(),s=on(),c=jn(),l=Mn(),u=Xt();t.exports=g,g.prototype.validate=_,g.prototype.compile=v,g.prototype.addSchema=y,g.prototype.addMetaSchema=b,g.prototype.validateSchema=x,g.prototype.getSchema=C,g.prototype.removeSchema=E,g.prototype.addFormat=F,g.prototype.errorsText=P,g.prototype._addSchema=O,g.prototype._compile=k,g.prototype.compileAsync=Nn();var d=Ln();g.prototype.addKeyword=d.add,g.prototype.getKeyword=d.get,g.prototype.removeKeyword=d.remove,g.prototype.validateKeyword=d.validate;var f=en();g.ValidationError=f.Validation,g.MissingRefError=f.MissingRef,g.$dataMetaSchema=l;var p=`http://json-schema.org/draft-07/schema`,m=[`removeAdditional`,`useDefaults`,`coerceTypes`,`strictDefaults`],h=[`/properties`];function g(e){if(!(this instanceof g))return new g(e);e=this._opts=u.copy(e)||{},H(this),this._schemas={},this._refs={},this._fragments={},this._formats=s(e.format),this._cache=e.cache||new i,this._loadingSchemas={},this._compilations=[],this.RULES=c(),this._getId=A(e),e.loopRequired=e.loopRequired||1/0,e.errorDataPath==`property`&&(e._errorDataPathProperty=!0),e.serialize===void 0&&(e.serialize=o),this._metaOpts=V(this),e.formats&&R(this),e.keywords&&z(this),I(this),typeof e.meta==`object`&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword(`nullable`,{metaSchema:{type:`boolean`}}),L(this)}function _(e,t){var n;if(typeof e==`string`){if(n=this.getSchema(e),!n)throw Error(`no schema with key or ref "`+e+`"`)}else{var r=this._addSchema(e);n=r.validate||this._compile(r)}var i=n(t);return n.$async!==!0&&(this.errors=n.errors),i}function v(e,t){var n=this._addSchema(e,void 0,t);return n.validate||this._compile(n)}function y(e,t,n,i){if(Array.isArray(e)){for(var a=0;a<e.length;a++)this.addSchema(e[a],void 0,n,i);return this}var o=this._getId(e);if(o!==void 0&&typeof o!=`string`)throw Error(`schema id must be string`);return t=r.normalizeId(t||o),B(this,t),this._schemas[t]=this._addSchema(e,n,i,!0),this}function b(e,t,n){return this.addSchema(e,t,n,!0),this}function x(e,t){var n=e.$schema;if(n!==void 0&&typeof n!=`string`)throw Error(`$schema must be a string`);if(n=n||this._opts.defaultMeta||S(this),!n)return this.logger.warn(`meta-schema not available`),this.errors=null,!0;var r=this.validate(n,e);if(!r&&t){var i=`schema is invalid: `+this.errorsText();if(this._opts.validateSchema==`log`)this.logger.error(i);else throw Error(i)}return r}function S(e){var t=e._opts.meta;return e._opts.defaultMeta=typeof t==`object`?e._getId(t)||t:e.getSchema(p)?p:void 0,e._opts.defaultMeta}function C(e){var t=T(this,e);switch(typeof t){case`object`:return t.validate||this._compile(t);case`string`:return this.getSchema(t);case`undefined`:return w(this,e)}}function w(e,t){var i=r.schema.call(e,{schema:{}},t);if(i){var o=i.schema,s=i.root,c=i.baseId,l=n.call(e,o,s,void 0,c);return e._fragments[t]=new a({ref:t,fragment:!0,schema:o,root:s,baseId:c,validate:l}),l}}function T(e,t){return t=r.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function E(e){if(e instanceof RegExp)return D(this,this._schemas,e),D(this,this._refs,e),this;switch(typeof e){case`undefined`:return D(this,this._schemas),D(this,this._refs),this._cache.clear(),this;case`string`:var t=T(this,e);return t&&this._cache.del(t.cacheKey),delete this._schemas[e],delete this._refs[e],this;case`object`:var n=this._opts.serialize,i=n?n(e):e;this._cache.del(i);var a=this._getId(e);a&&(a=r.normalizeId(a),delete this._schemas[a],delete this._refs[a])}return this}function D(e,t,n){for(var r in t){var i=t[r];!i.meta&&(!n||n.test(r))&&(e._cache.del(i.cacheKey),delete t[r])}}function O(e,t,n,i){if(typeof e!=`object`&&typeof e!=`boolean`)throw Error(`schema should be object or boolean`);var o=this._opts.serialize,s=o?o(e):e,c=this._cache.get(s);if(c)return c;i||=this._opts.addUsedSchema!==!1;var l=r.normalizeId(this._getId(e));l&&i&&B(this,l);var u=this._opts.validateSchema!==!1&&!t,d;u&&!(d=l&&l==r.normalizeId(e.$schema))&&this.validateSchema(e,!0);var f=r.ids.call(this,e),p=new a({id:l,schema:e,localRefs:f,cacheKey:s,meta:n});return l[0]!=`#`&&i&&(this._refs[l]=p),this._cache.put(s,p),u&&d&&this.validateSchema(e,!0),p}function k(e,t){if(e.compiling)return e.validate=a,a.schema=e.schema,a.errors=null,a.root=t||a,e.schema.$async===!0&&(a.$async=!0),a;e.compiling=!0;var r;e.meta&&(r=this._opts,this._opts=this._metaOpts);var i;try{i=n.call(this,e.schema,t,e.localRefs)}catch(t){throw delete e.validate,t}finally{e.compiling=!1,e.meta&&(this._opts=r)}return e.validate=i,e.refs=i.refs,e.refVal=i.refVal,e.root=i.root,i;function a(){var t=e.validate,n=t.apply(this,arguments);return a.errors=t.errors,n}}function A(e){switch(e.schemaId){case`auto`:return N;case`id`:return j;default:return M}}function j(e){return e.$id&&this.logger.warn(`schema $id ignored`,e.$id),e.id}function M(e){return e.id&&this.logger.warn(`schema id ignored`,e.id),e.$id}function N(e){if(e.$id&&e.id&&e.$id!=e.id)throw Error(`schema $id is different from id`);return e.$id||e.id}function P(e,t){if(e||=this.errors,!e)return`No errors`;t||={};for(var n=t.separator===void 0?`, `:t.separator,r=t.dataVar===void 0?`data`:t.dataVar,i=``,a=0;a<e.length;a++){var o=e[a];o&&(i+=r+o.dataPath+` `+o.message+n)}return i.slice(0,-n.length)}function F(e,t){return typeof t==`string`&&(t=new RegExp(t)),this._formats[e]=t,this}function I(e){var t;if(e._opts.$data&&(t=Rn(),e.addMetaSchema(t,t.$id,!0)),e._opts.meta!==!1){var n=Fn();e._opts.$data&&(n=l(n,h)),e.addMetaSchema(n,p,!0),e._refs[`http://json-schema.org/schema`]=p}}function L(e){var t=e._opts.schemas;if(t)if(Array.isArray(t))e.addSchema(t);else for(var n in t)e.addSchema(t[n],n)}function R(e){for(var t in e._opts.formats){var n=e._opts.formats[t];e.addFormat(t,n)}}function z(e){for(var t in e._opts.keywords){var n=e._opts.keywords[t];e.addKeyword(t,n)}}function B(e,t){if(e._schemas[t]||e._refs[t])throw Error(`schema with key or id "`+t+`" already exists`)}function V(e){for(var t=u.copy(e._opts),n=0;n<m.length;n++)delete t[m[n]];return t}function H(e){var t=e._opts.logger;if(t===!1)e.logger={log:U,warn:U,error:U};else{if(t===void 0&&(t=console),!(typeof t==`object`&&t.log&&t.warn&&t.error))throw Error(`logger must implement log, warn and error methods`);e.logger=t}}function U(){}})),Bn=n(zn(),1),Vn=class extends Gt{constructor(e,t){super(t),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=t?.capabilities??{},this._ajv=new Bn.default}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=Kt(this._capabilities,e)}assertCapability(e,t){if(!this._serverCapabilities?.[e])throw Error(`Server does not support ${e} (required for ${t})`)}async connect(e,t){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:`initialize`,params:{protocolVersion:y,capabilities:this._capabilities,clientInfo:this._clientInfo}},g,t);if(n===void 0)throw Error(`Server sent invalid initialize result: ${n}`);if(!L.includes(n.protocolVersion))throw Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:`notifications/initialized`})}catch(e){throw this.close(),e}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case`logging/setLevel`:if(!this._serverCapabilities?.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._serverCapabilities?.prompts)throw Error(`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:case`resources/subscribe`:case`resources/unsubscribe`:if(!this._serverCapabilities?.resources)throw Error(`Server does not support resources (required for ${e})`);if(e===`resources/subscribe`&&!this._serverCapabilities.resources.subscribe)throw Error(`Server does not support resource subscriptions (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._serverCapabilities?.tools)throw Error(`Server does not support tools (required for ${e})`);break;case`completion/complete`:if(!this._serverCapabilities?.completions)throw Error(`Server does not support completions (required for ${e})`);break;case`initialize`:break;case`ping`:break}}assertNotificationCapability(e){switch(e){case`notifications/roots/list_changed`:if(!this._capabilities.roots?.listChanged)throw Error(`Client does not support roots list changed notifications (required for ${e})`);break;case`notifications/initialized`:break;case`notifications/cancelled`:break;case`notifications/progress`:break}}assertRequestHandlerCapability(e){switch(e){case`sampling/createMessage`:if(!this._capabilities.sampling)throw Error(`Client does not support sampling capability (required for ${e})`);break;case`elicitation/create`:if(!this._capabilities.elicitation)throw Error(`Client does not support elicitation capability (required for ${e})`);break;case`roots/list`:if(!this._capabilities.roots)throw Error(`Client does not support roots capability (required for ${e})`);break;case`ping`:break}}async ping(e){return this.request({method:`ping`},d,e)}async complete(e,t){return this.request({method:`completion/complete`,params:e},s,t)}async setLoggingLevel(e,t){return this.request({method:`logging/setLevel`,params:{level:e}},d,t)}async getPrompt(e,t){return this.request({method:`prompts/get`,params:e},m,t)}async listPrompts(e,t){return this.request({method:`prompts/list`,params:e},x,t)}async listResources(e,t){return this.request({method:`resources/list`,params:e},T,t)}async listResourceTemplates(e,t){return this.request({method:`resources/templates/list`,params:e},C,t)}async readResource(e,t){return this.request({method:`resources/read`,params:e},F,t)}async subscribeResource(e,t){return this.request({method:`resources/subscribe`,params:e},d,t)}async unsubscribeResource(e,t){return this.request({method:`resources/unsubscribe`,params:e},d,t)}async callTool(e,t=i,n){let r=await this.request({method:`tools/call`,params:e},t,n),a=this.getToolOutputValidator(e.name);if(a){if(!r.structuredContent&&!r.isError)throw new j(f.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(r.structuredContent)try{if(!a(r.structuredContent))throw new j(f.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(a.errors)}`)}catch(e){throw e instanceof j?e:new j(f.InvalidParams,`Failed to validate structured content: ${e instanceof Error?e.message:String(e)}`)}}return r}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let t of e)if(t.outputSchema)try{let e=this._ajv.compile(t.outputSchema);this._cachedToolOutputValidators.set(t.name,e)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,t){let n=await this.request({method:`tools/list`,params:e},O,t);return this.cacheToolOutputSchemas(n.tools),n}async sendRootsListChanged(){return this.notification({method:`notifications/roots/list_changed`})}},Hn=n(zn(),1),Un=class extends Gt{constructor(e,t){super(t),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(k.options.map((e,t)=>[e,t])),this.isMessageIgnored=(e,t)=>{let n=this._loggingLevels.get(t);return n?this.LOG_LEVEL_SEVERITY.get(e)<this.LOG_LEVEL_SEVERITY.get(n):!1},this._capabilities=t?.capabilities??{},this._instructions=t?.instructions,this.setRequestHandler(h,e=>this._oninitialize(e)),this.setNotificationHandler(_,()=>this.oninitialized?.call(this)),this._capabilities.logging&&this.setRequestHandler(R,async(e,t)=>{let n=t.sessionId||t.requestInfo?.headers[`mcp-session-id`]||void 0,{level:r}=e.params,i=k.safeParse(r);return i.success&&this._loggingLevels.set(n,i.data),{}})}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=Kt(this._capabilities,e)}assertCapabilityForMethod(e){switch(e){case`sampling/createMessage`:if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${e})`);break;case`elicitation/create`:if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${e})`);break;case`roots/list`:if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${e})`);break;case`ping`:break}}assertNotificationCapability(e){switch(e){case`notifications/message`:if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`notifications/resources/updated`:case`notifications/resources/list_changed`:if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${e})`);break;case`notifications/tools/list_changed`:if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case`notifications/prompts/list_changed`:if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case`notifications/cancelled`:break;case`notifications/progress`:break}}assertRequestHandlerCapability(e){switch(e){case`sampling/createMessage`:if(!this._capabilities.sampling)throw Error(`Server does not support sampling (required for ${e})`);break;case`logging/setLevel`:if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${e})`);break;case`ping`:case`initialize`:break}}async _oninitialize(e){let t=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:L.includes(t)?t:y,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:`ping`},d)}async createMessage(e,t){return this.request({method:`sampling/createMessage`,params:e},c,t)}async elicitInput(e,t){let n=await this.request({method:`elicitation/create`,params:e},u,t);if(n.action===`accept`&&n.content)try{let t=new Hn.default,r=t.compile(e.requestedSchema);if(!r(n.content))throw new j(f.InvalidParams,`Elicitation response content does not match requested schema: ${t.errorsText(r.errors)}`)}catch(e){throw e instanceof j?e:new j(f.InternalError,`Error validating elicitation response: ${e}`)}return n}async listRoots(e,t){return this.request({method:`roots/list`,params:e},E,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:`notifications/message`,params:e})}async sendResourceUpdated(e){return this.notification({method:`notifications/resources/updated`,params:e})}async sendResourceListChanged(){return this.notification({method:`notifications/resources/list_changed`})}async sendToolListChanged(){return this.notification({method:`notifications/tools/list_changed`})}async sendPromptListChanged(){return this.notification({method:`notifications/prompts/list_changed`})}},Wn=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
24
24
|
`);if(e===-1)return null;let t=this._buffer.toString(`utf8`,0,e).replace(/\r$/,``);return this._buffer=this._buffer.subarray(e+1),Gn(t)}clear(){this._buffer=void 0}};function Gn(e){return v.parse(JSON.parse(e))}function Kn(e){return JSON.stringify(e)+`
|
|
25
25
|
`}var qn=class{constructor(e=fe.stdin,t=fe.stdout){this._stdin=e,this._stdout=t,this._readBuffer=new Wn,this._started=!1,this._ondata=e=>{this._readBuffer.append(e),this.processReadBuffer()},this._onerror=e=>{var t;(t=this.onerror)==null||t.call(this,e)}}async start(){if(this._started)throw Error(`StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.`);this._started=!0,this._stdin.on(`data`,this._ondata),this._stdin.on(`error`,this._onerror)}processReadBuffer(){for(var e,t;;)try{let t=this._readBuffer.readMessage();if(t===null)break;(e=this.onmessage)==null||e.call(this,t)}catch(e){(t=this.onerror)==null||t.call(this,e)}}async close(){var e;this._stdin.off(`data`,this._ondata),this._stdin.off(`error`,this._onerror),this._stdin.listenerCount(`data`)===0&&this._stdin.pause(),this._readBuffer.clear(),(e=this.onclose)==null||e.call(this)}send(e){return new Promise(t=>{let n=Kn(e);this._stdout.write(n)?t():this._stdout.once(`drain`,t)})}};export{he as AccessControlBlockError,Vn as Client,ge as ConfigurationError,pe as InMemoryEventStore,_e as ProxyConnectionError,Wn as ReadBuffer,Un as Server,qn as StdioServerTransport,Ue as compressClientInfo,Fe as getSessionData,Ke as initializeTrafficMirror,Xe as logRequestCounts,Qe as proxyServer,Re as redactCliArgs,Kn as serializeMessage,Wt as startHTTPServer};
|
|
26
|
-
//# sourceMappingURL=stdio-
|
|
26
|
+
//# sourceMappingURL=stdio-BT_AGCtR.js.map
|