@onyxsecurity/mcp-gateway 1.0.111 → 1.0.113

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.
@@ -0,0 +1 @@
1
+ import"./env-BknASxX2.js";import"./logger-nUd9AxaO.js";import"./providers-Ct4SuxcG.js";import{fetchOAuthProviders as e,initializeOAuthProviders as t}from"./oauthProvidersClient-DuxpYXR7.js";export{t as initializeOAuthProviders};
@@ -1,2 +1,2 @@
1
- import{logger as e}from"./logger-CCkBPHFj.js";import{setOAuthProviders as t}from"./providers-BSrgVcvp.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-M4GIdVHB.js.map
1
+ import{logger as e}from"./logger-nUd9AxaO.js";import{setOAuthProviders as t}from"./providers-Ct4SuxcG.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-DuxpYXR7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauthProvidersClient-M4GIdVHB.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"}
1
+ {"version":3,"file":"oauthProvidersClient-DuxpYXR7.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"}
@@ -1,2 +1,2 @@
1
- import{logger as e}from"./logger-CCkBPHFj.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-BSrgVcvp.js.map
1
+ import{logger as e}from"./logger-nUd9AxaO.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-Ct4SuxcG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers-BSrgVcvp.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"}
1
+ {"version":3,"file":"providers-Ct4SuxcG.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"}
@@ -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-C2eKt_MO.js";import{extractTraceIdFromHeaders as J,gatewayCorrelationId as Y,logger as X,require_inherits as ee,runWithTraceContextAsync as te}from"./logger-CCkBPHFj.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(`
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-BknASxX2.js";import{extractTraceIdFromHeaders as J,gatewayCorrelationId as Y,logger as X,require_inherits as ee,runWithTraceContextAsync as te}from"./logger-nUd9AxaO.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-CKMxkafW.js.map
26
+ //# sourceMappingURL=stdio-CCYaYtuW.js.map