{"version":3,"file":"src_services_ui-worker_ts.bundle.js","mappings":"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","sources":["webpack://httptoolkit-ui/webpack/runtime/async module","webpack://httptoolkit-ui/webpack/runtime/chunk loaded","webpack://httptoolkit-ui/webpack/runtime/create fake namespace object","webpack://httptoolkit-ui/webpack/runtime/startup chunk dependencies","webpack://httptoolkit-ui/./src/util/json-schema.ts","webpack://httptoolkit-ui/./src/model/api/build-api-metadata.ts","webpack://httptoolkit-ui/./src/model/api/openapi-schema-3.0.ts","webpack://httptoolkit-ui/./src/model/api/openapi-schema-3.1.ts","webpack://httptoolkit-ui/./src/util/error.ts","webpack://httptoolkit-ui/./src/model/crypto.ts","webpack://httptoolkit-ui/./src/util/buffer.ts","webpack://httptoolkit-ui/./src/util/headers.ts","webpack://httptoolkit-ui/./src/util/protobuf.ts","webpack://httptoolkit-ui/./src/services/ui-worker-formatters.ts","webpack://httptoolkit-ui/./src/services/ui-worker.ts","webpack://httptoolkit-ui/webpack/bootstrap","webpack://httptoolkit-ui/webpack/runtime/compat get default export","webpack://httptoolkit-ui/webpack/runtime/define property getters","webpack://httptoolkit-ui/webpack/runtime/ensure chunk","webpack://httptoolkit-ui/webpack/runtime/get javascript chunk filename","webpack://httptoolkit-ui/webpack/runtime/global","webpack://httptoolkit-ui/webpack/runtime/harmony module decorator","webpack://httptoolkit-ui/webpack/runtime/hasOwnProperty shorthand","webpack://httptoolkit-ui/webpack/runtime/make namespace object","webpack://httptoolkit-ui/webpack/runtime/node module decorator","webpack://httptoolkit-ui/webpack/runtime/runtimeId","webpack://httptoolkit-ui/webpack/runtime/wasm loading","webpack://httptoolkit-ui/webpack/runtime/publicPath","webpack://httptoolkit-ui/webpack/runtime/importScripts chunk loading","webpack://httptoolkit-ui/webpack/startup"],"sourcesContent":["var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => (deps.map((dep) => {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then((r) => {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, (e) => {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = x => {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}));\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](x => {}));\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => (currentDeps.map((d) => {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}))\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\"mockttp\",\"vendors-node_modules_ajv_dist_ajv_js-node_modules_base64-js_index_js-node_modules_browserify--bb5eaa\",\"vendors-node_modules_browserify-zlib_lib_index_js-node_modules_js-beautify_js_lib_beautifier_-fe20c9\"].map(__webpack_require__.e, __webpack_require__)).then(next);\n};","import * as _ from 'lodash';\nimport * as traverse from 'traverse';\nimport * as Ajv from 'ajv';\n\nimport { joinAnd, truncate } from './text';\n\ntype Ref = { $ref: string };\n\nfunction isRef(node: any): node is Ref {\n return typeof node === 'object' &&\n node !== null &&\n // $ref can be { type: ... } if it's a real $ref-named field, as in the github API\n typeof node['$ref'] === 'string';\n}\n\nfunction derefRef(root: any, node: Ref) {\n const ref = node.$ref;\n\n if (!ref.startsWith('#')) {\n throw new Error(`Cannot resolve external reference ${ref}`);\n }\n\n let refParts = ref.slice(1).split('/').filter(p => p.length);\n let refTarget: any = root;\n\n while (refParts.length) {\n const nextPart = refParts.shift()!\n // Handle JSON pointer escape chars:\n .replace(/~1/g, '/')\n .replace(/~0/g, '~');\n refTarget = refTarget[nextPart];\n if (!refTarget) {\n throw new Error(`Could not follow ref ${ref}, failed at ${nextPart}`);\n }\n }\n\n return refTarget;\n}\n/**\n * Removes almost all $refs from the given JS object. Mutates the input,\n * and returns it as well, just for convenience.\n *\n * This doesn't worry about where $ref is legal - treats it as a reference when\n * found anywhere. That could go wrong in theory, but in practice it's unlikely,\n * and easy for now.\n *\n * If this causes problems later, we need to build an OpenAPI-specific deref,\n * which understands where in OpenAPIv3 a $ref is legal, and only uses those.\n * For now though, we ignore all that for drastic simplification.\n */\nexport function dereference(root: T): T {\n traverse.forEach(root, function (this: traverse.TraverseContext, node) {\n let wasRef = false;\n\n while (isRef(node)) {\n wasRef = true;\n node = derefRef(root, node);\n }\n\n // No need to traverse into refs:\n const stopHere = wasRef;\n this.update(node, stopHere);\n });\n return root;\n}\n\nconst getValue = (root: any, path: string[]): any => {\n if (path.length === 0) return root;\n return getValue(root[path[0]], path.slice(1));\n};\n\nexport function formatAjvError(\n data: any,\n e: Ajv.ErrorObject,\n pathTransform: (path: string) => string = _.identity\n) {\n const value = e.instancePath?.length\n ? getValue(data, e.instancePath.slice(1).split('/'))\n : data;\n\n return (pathTransform(e.instancePath) || 'Document') + ` (${\n truncate(JSON.stringify(value), 50)\n }) ${e.message!}${\n e.keyword === 'enum' ?\n ` (${joinAnd(\n (e.params as any).allowedValues, ', ', ', or ')\n })` :\n ''\n }.`\n}","import * as _ from 'lodash';\nimport * as querystring from 'querystring';\n\nimport { OpenAPIObject, PathItemObject } from 'openapi-directory';\nimport { MethodObject } from '@open-rpc/meta-schema';\nimport Ajv from 'ajv';\n\nimport { openApiSchema as openApiV30Schema } from './openapi-schema-3.0';\nimport { openApiSchema as openApiV31Schema } from './openapi-schema-3.1';\nimport { dereference } from '../../util/json-schema';\nimport { OpenRpcDocument, OpenRpcMetadata } from './jsonrpc';\n\nexport interface OpenApiMetadata {\n type: 'openapi';\n spec: OpenAPIObject;\n serverMatcher: RegExp;\n requestMatchers: Map;\n}\n\ninterface OpenApiRequestMatcher {\n pathMatcher: RegExp;\n queryMatcher: querystring.ParsedUrlQuery;\n}\n\ninterface Path {\n path: string;\n pathSpec: PathItemObject;\n}\n\nconst filterV30Spec = new Ajv({\n // This is the main goal: strip out weird extensions\n removeAdditional: 'failing',\n\n // Otherwise, we're *only* doing basic validation, minor oddness is fine\n strict: false,\n validateFormats: false\n}).compile(openApiV30Schema);\n\nconst filterV31Spec = new Ajv({\n strict: false,\n validateFormats: false,\n\n // v3.1 uses unevaluated, not additional, and removal isn't supported yet. See:\n // https://github.com/ajv-validator/ajv/issues/1346\n // For now, for 3.1 we _only_ validate, without any filtering. Fortunately there\n // aren't many 3.1 specs (only Adyen + Vercel) and none appear to have problems\n // that would make this necessary (unlike Stripe's expansion refs).\n}).compile(openApiV31Schema);\n\nconst validateAndFilterSpec = (spec: OpenAPIObject) => {\n let filter = spec.openapi.startsWith('3.0')\n ? filterV30Spec\n : spec.openapi.startsWith('3.1')\n ? filterV31Spec\n : null;\n\n if (!filter) throw new Error(`Unrecognized OpenAPI version: ${spec.openapi}`);\n\n const result = filter(spec);\n if (result) return { success: true, result };\n else return { success: false, errors: filter.errors };\n};\n\n// Note that OpenAPI template strings are not the same as JSON template language templates,\n// which use ${...} instead of {...}.\nfunction openApiTemplateStringToRegexString(template: string): string {\n return template\n // Escape all regex chars *except* { }\n .replace(/[\\^$\\\\.*+?()[\\]|]/g, '\\\\$&')\n // Replace templates with wildcards\n .replace(/\\{([^/}]+)}/g, '([^\\/]*)')\n // Drop trailing slashes\n .replace(/\\/$/, '');\n}\n\nexport async function buildOpenApiMetadata(\n spec: OpenAPIObject,\n baseUrlOverrides?: string[]\n): Promise {\n const specId = `${\n spec.info['x-providerName'] || 'unknown'\n }/${\n spec.info['x-serviceName'] || 'unknown'\n }`;\n\n // This mutates the spec to drop unknown fields. Mainly useful to limit spec size. Stripe\n // particularly includes huge recursive refs in its x-expansion* extension fields.\n const specFilterResult = validateAndFilterSpec(spec);\n\n if (!specFilterResult.success) {\n console.warn(\n 'Errors filtering spec',\n JSON.stringify(specFilterResult.errors, null, 2)\n );\n throw new Error(`Failed to filter spec: ${specId}`);\n }\n\n // Now it's relatively small & tidy, dereference everything.\n spec = dereference(spec);\n\n const serverUrlRegexSources = baseUrlOverrides && baseUrlOverrides.length\n // Look for one of the given base URLs, ignoring trailing slashes\n ? baseUrlOverrides.map(url => _.escapeRegExp(url).replace(/\\/$/, ''))\n // Look for any URL of the base servers in the spec\n : spec.servers!.map(s => openApiTemplateStringToRegexString(s.url));\n\n // Build a regex that matches any of these at the start of a URL\n const serverMatcher = new RegExp(`^(${serverUrlRegexSources.join('|')})`, 'i');\n\n const requestMatchers = new Map();\n _.entries(spec.paths)\n // Sort path & pathspec pairs to ensure that more specific paths are\n // always listed first, so that later on we can always use the first match\n // This should sort to, for example: /qwe#a&b, /qwe#a, /{param}#a, /{param}, /\n .sort(([pathA], [pathB]) => {\n const charPairs = _.zip(\n // For char comparison, normalize param names and drop fragments\n [...pathA.replace(/\\{[^}]+\\}/g, '{param}').split('#')[0]],\n [...pathB.replace(/\\{[^}]+\\}/g, '{param}').split('#')[0]]\n );\n\n for (let [charA, charB] of charPairs) {\n if (charA === charB) continue;\n\n // If one string has a param here and the other does not,\n // the non-param string should come first\n if (charB === '{') return -1; // A comes first\n if (charA === '{') return 1; // B comes first\n\n // If one string is a prefix of the other, it\n // should come last\n if (charB === undefined) return -1;\n if (charA === undefined) return 1;\n\n // Otherwise, fall back to the real string difference\n return (charA < charB) ? -1 : 1;\n }\n\n // The paths (ignoring param names & fragments) are equal.\n // Put the one with the most fragment params first\n const [pathAParamCount, pathBParamCount] = [pathA, pathB].map(p => {\n const fragment = p.split('#')[1];\n if (!fragment) return 0;\n else return 1 + _.sumBy(fragment, c => c === '&' ? 1 : 0);\n });\n\n if (pathAParamCount === pathBParamCount) return 0;\n else return pathAParamCount < pathBParamCount ? 1 : -1;\n })\n .forEach(([path, pathSpec]) => {\n const [realPath, pathFragment] = path.split('#');\n\n requestMatchers.set({\n // Build a regex that matches this path on any of those base servers\n pathMatcher: new RegExp(\n serverMatcher.source + openApiTemplateStringToRegexString(realPath) + '/?$',\n 'i'\n ),\n // Some specs (AWS) also match requests by specific params\n queryMatcher: querystring.parse(pathFragment)\n }, {\n path: realPath,\n pathSpec: pathSpec\n });\n });\n\n return {\n type: 'openapi',\n spec,\n serverMatcher,\n requestMatchers\n };\n}\n\n// Approximately transform a JSON template string into a regex string that will match\n// values, using wildcards for each template. This is based on this draft RFC:\n// https://datatracker.ietf.org/doc/draft-jonas-json-template-language/\n// Only seems relevant to OpenRPC, doesn't seem widely used elsewhere.\nfunction jsonTemplateStringToRegexString(template: string): string {\n return template\n // Escape all regex chars *except* $, {, }\n .replace(/[\\^\\\\.*+?()[\\]|]/g, '\\\\$&')\n // Replace templates with wildcards\n .replace(/\\$\\{([^/}]+)}/g, '([^\\/]*)')\n // Drop trailing slashes\n .replace(/\\/$/, '');\n}\n\nexport function buildOpenRpcMetadata(spec: OpenRpcDocument, baseUrlOverrides?: string[]): OpenRpcMetadata {\n spec = dereference(spec);\n\n const serverUrlRegexSources = baseUrlOverrides && baseUrlOverrides.length\n // Look for one of the given base URLs, ignoring trailing slashes\n ? baseUrlOverrides.map(url => _.escapeRegExp(url).replace(/\\/$/, ''))\n // Look for any URL of the base servers in the spec\n : spec.servers!.map(s => jsonTemplateStringToRegexString(s.url));\n\n // Build a regex that matches any of these at the start of a URL\n const serverMatcher = new RegExp(`^(${serverUrlRegexSources.join('|')})`, 'i');\n\n return {\n type: 'openrpc',\n spec,\n serverMatcher,\n requestMatchers: _.keyBy(spec.methods, 'name') as _.Dictionary // Dereferenced\n };\n}","/*\n * We use this schema to filter loaded OpenAPI specs for only valid & relevant properties.\n * This is based on https://raw.githubusercontent.com/handrews/OpenAPI-Specification/oas3-schema/schemas/v3.0/schema.yaml,\n * but with a few changes:\n *\n * - non-essential extension fields (everything except x-logo) made invalid\n * - oneOf changed to anyOf in all cases (relaxing constraints)\n * - All any/all/oneOf either reordered where possible, so they never match an\n * additionalProperties: false schema before the correct match (as this breaks\n * with ajv removeAdditional filtering)\n * - additionalProperties removed for schemas in an anyOf that couldn't be reordered\n *\n * All in all this makes the schema stricter about x-*, but more lax about everything\n * else. Updates will need similar treatment, but a diff should make it easy enough.\n*/\n\nexport const openApiSchema = {\n \"type\": \"object\",\n \"required\": [\n \"openapi\",\n \"info\",\n \"paths\"\n ],\n \"properties\": {\n \"openapi\": {\n \"type\": \"string\",\n \"pattern\": \"^3\\\\.0\\\\.\\\\d(-.+)?$\"\n },\n \"info\": {\n \"$ref\": \"#/definitions/Info\"\n },\n \"externalDocs\": {\n \"$ref\": \"#/definitions/ExternalDocumentation\"\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Server\"\n }\n },\n \"security\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/SecurityRequirement\"\n }\n },\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Tag\"\n },\n \"uniqueItems\": true\n },\n \"paths\": {\n \"$ref\": \"#/definitions/Paths\"\n },\n \"components\": {\n \"$ref\": \"#/definitions/Components\"\n }\n },\n \"additionalProperties\": false,\n \"definitions\": {\n \"Reference\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ],\n \"patternProperties\": {\n \"^\\\\$ref$\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n }\n },\n \"Info\": {\n \"type\": \"object\",\n \"required\": [\n \"title\",\n \"version\"\n ],\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"termsOfService\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"contact\": {\n \"$ref\": \"#/definitions/Contact\"\n },\n \"license\": {\n \"$ref\": \"#/definitions/License\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"x-logo\": {\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\"\n }\n }\n },\n \"x-httptoolkit-builtin-api\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"x-httptoolkit-short-name\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"Contact\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n }\n },\n \"additionalProperties\": false\n },\n \"License\": {\n \"type\": \"object\",\n \"required\": [\n \"name\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"additionalProperties\": false\n },\n \"Server\": {\n \"type\": \"object\",\n \"required\": [\n \"url\"\n ],\n \"properties\": {\n \"url\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/ServerVariable\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"ServerVariable\": {\n \"type\": \"object\",\n \"required\": [\n \"default\"\n ],\n \"properties\": {\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"default\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"Components\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemas\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n }\n }\n },\n \"responses\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Response\"\n }\n ]\n }\n }\n },\n \"parameters\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Parameter\"\n }\n ]\n }\n }\n },\n \"examples\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Example\"\n }\n ]\n }\n }\n },\n \"requestBodies\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/RequestBody\"\n }\n ]\n }\n }\n },\n \"headers\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Header\"\n }\n ]\n }\n }\n },\n \"securitySchemes\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/SecurityScheme\"\n }\n ]\n }\n }\n },\n \"links\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Link\"\n }\n ]\n }\n }\n },\n \"callbacks\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Callback\"\n }\n ]\n }\n }\n }\n },\n \"additionalProperties\": false\n },\n \"Schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"multipleOf\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maximum\": {\n \"type\": \"number\"\n },\n \"exclusiveMaximum\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"exclusiveMinimum\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"maxLength\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"minLength\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"default\": 0\n },\n \"pattern\": {\n \"type\": \"string\",\n \"format\": \"regex\"\n },\n \"maxItems\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"minItems\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"default\": 0\n },\n \"uniqueItems\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"maxProperties\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"minProperties\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"default\": 0\n },\n \"required\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"uniqueItems\": true\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {},\n \"minItems\": 1,\n \"uniqueItems\": false\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"array\",\n \"boolean\",\n \"integer\",\n \"number\",\n \"object\",\n \"string\"\n ]\n },\n \"not\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"allOf\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n }\n },\n \"oneOf\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n }\n },\n \"anyOf\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n }\n },\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n },\n {\n \"type\": \"boolean\"\n }\n ],\n \"default\": true\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"default\": {},\n \"nullable\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"discriminator\": {\n \"$ref\": \"#/definitions/Discriminator\"\n },\n \"readOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"writeOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"example\": {},\n \"externalDocs\": {\n \"$ref\": \"#/definitions/ExternalDocumentation\"\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"xml\": {\n \"$ref\": \"#/definitions/XML\"\n }\n },\n \"additionalProperties\": false\n },\n \"Discriminator\": {\n \"type\": \"object\",\n \"required\": [\n \"propertyName\"\n ],\n \"properties\": {\n \"propertyName\": {\n \"type\": \"string\"\n },\n \"mapping\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"XML\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"attribute\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"wrapped\": {\n \"type\": \"boolean\",\n \"default\": false\n }\n },\n \"additionalProperties\": false\n },\n \"Response\": {\n \"type\": \"object\",\n \"required\": [\n \"description\"\n ],\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Header\"\n }\n ]\n }\n },\n \"content\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/MediaType\"\n }\n },\n \"links\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Link\"\n }\n ]\n }\n }\n },\n \"additionalProperties\": false\n },\n \"MediaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/MediaTypeWithExample\"\n },\n {\n \"$ref\": \"#/definitions/MediaTypeWithExamples\"\n }\n ]\n },\n \"MediaTypeWithExample\": {\n \"type\": \"object\",\n \"properties\": {\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"example\": {},\n \"encoding\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Encoding\"\n }\n }\n }\n },\n \"MediaTypeWithExamples\": {\n \"type\": \"object\",\n \"required\": [\n \"examples\"\n ],\n \"properties\": {\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Example\"\n }\n ]\n }\n },\n \"encoding\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Encoding\"\n }\n }\n }\n },\n \"Example\": {\n \"type\": \"object\",\n \"properties\": {\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"value\": {},\n \"externalValue\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"additionalProperties\": false\n },\n \"Header\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/HeaderWithSchema\"\n },\n {\n \"$ref\": \"#/definitions/HeaderWithContent\"\n }\n ]\n },\n \"HeaderWithSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/HeaderWithSchemaWithExample\"\n },\n {\n \"$ref\": \"#/definitions/HeaderWithSchemaWithExamples\"\n }\n ]\n },\n \"HeaderWithSchemaWithExample\": {\n \"type\": \"object\",\n \"required\": [\n \"schema\"\n ],\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"simple\"\n ],\n \"default\": \"simple\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"example\": {}\n },\n },\n \"HeaderWithSchemaWithExamples\": {\n \"type\": \"object\",\n \"required\": [\n \"schema\",\n \"examples\"\n ],\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"simple\"\n ],\n \"default\": \"simple\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Example\"\n }\n ]\n }\n }\n },\n },\n \"HeaderWithContent\": {\n \"type\": \"object\",\n \"required\": [\n \"content\"\n ],\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"content\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/MediaType\"\n },\n \"minProperties\": 1,\n \"maxProperties\": 1\n }\n },\n },\n \"Paths\": {\n \"type\": \"object\",\n \"patternProperties\": {\n \"^\\\\/\": {\n \"$ref\": \"#/definitions/PathItem\"\n }\n },\n \"additionalProperties\": false\n },\n \"PathItem\": {\n \"type\": \"object\",\n \"properties\": {\n \"$ref\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"get\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"put\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"post\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"delete\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"options\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"head\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"patch\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"trace\": {\n \"$ref\": \"#/definitions/Operation\"\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Server\"\n }\n },\n \"parameters\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Parameter\"\n }\n ]\n },\n \"uniqueItems\": true\n }\n },\n \"additionalProperties\": false\n },\n \"Operation\": {\n \"type\": \"object\",\n \"required\": [\n \"responses\"\n ],\n \"properties\": {\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"externalDocs\": {\n \"$ref\": \"#/definitions/ExternalDocumentation\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Parameter\"\n }\n ]\n },\n \"uniqueItems\": true\n },\n \"requestBody\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/RequestBody\"\n }\n ]\n },\n \"responses\": {\n \"$ref\": \"#/definitions/Responses\"\n },\n \"callbacks\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Callback\"\n }\n ]\n }\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"security\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/SecurityRequirement\"\n }\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Server\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"Responses\": {\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Response\"\n }\n ]\n }\n },\n \"patternProperties\": {\n \"^[1-5](?:\\\\d{2}|XX)$\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Response\"\n }\n ]\n }\n },\n \"minProperties\": 1,\n \"additionalProperties\": false\n },\n \"SecurityRequirement\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"Tag\": {\n \"type\": \"object\",\n \"required\": [\n \"name\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"externalDocs\": {\n \"$ref\": \"#/definitions/ExternalDocumentation\"\n }\n },\n \"additionalProperties\": false\n },\n \"ExternalDocumentation\": {\n \"type\": \"object\",\n \"required\": [\n \"url\"\n ],\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"additionalProperties\": false\n },\n \"Parameter\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ParameterWithSchema\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithContent\"\n }\n ]\n },\n \"ParameterWithSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExample\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExamples\"\n }\n ]\n },\n \"ParameterWithSchemaWithExample\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExampleInPath\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExampleInQuery\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExampleInHeader\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExampleInCookie\"\n }\n ]\n },\n \"ParameterWithSchemaWithExampleInPath\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\",\n \"required\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"path\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"matrix\",\n \"label\",\n \"simple\"\n ],\n \"default\": \"simple\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"example\": {}\n },\n },\n \"ParameterWithSchemaWithExampleInQuery\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"query\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"form\",\n \"spaceDelimited\",\n \"pipeDelimited\",\n \"deepObject\"\n ],\n \"default\": \"form\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"example\": {}\n },\n },\n \"ParameterWithSchemaWithExampleInHeader\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"header\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"simple\"\n ],\n \"default\": \"simple\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"example\": {}\n },\n },\n \"ParameterWithSchemaWithExampleInCookie\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"cookie\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"form\"\n ],\n \"default\": \"form\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"example\": {}\n },\n },\n \"ParameterWithSchemaWithExamples\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExamplesInPath\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExamplesInQuery\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExamplesInHeader\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithSchemaWithExamplesInCookie\"\n }\n ]\n },\n \"ParameterWithSchemaWithExamplesInPath\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\",\n \"required\",\n \"examples\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"path\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"matrix\",\n \"label\",\n \"simple\"\n ],\n \"default\": \"simple\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Example\"\n }\n ]\n }\n }\n },\n },\n \"ParameterWithSchemaWithExamplesInQuery\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\",\n \"examples\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"query\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"form\",\n \"spaceDelimited\",\n \"pipeDelimited\",\n \"deepObject\"\n ],\n \"default\": \"form\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Example\"\n }\n ]\n }\n }\n },\n },\n \"ParameterWithSchemaWithExamplesInHeader\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\",\n \"examples\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"header\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"simple\"\n ],\n \"default\": \"simple\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Example\"\n }\n ]\n }\n }\n },\n },\n \"ParameterWithSchemaWithExamplesInCookie\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"schema\",\n \"examples\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"cookie\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"form\"\n ],\n \"default\": \"form\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"schema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Schema\"\n }\n ]\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Reference\"\n },\n {\n \"$ref\": \"#/definitions/Example\"\n }\n ]\n }\n }\n },\n },\n \"ParameterWithContent\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ParameterWithContentInPath\"\n },\n {\n \"$ref\": \"#/definitions/ParameterWithContentNotInPath\"\n }\n ]\n },\n \"ParameterWithContentInPath\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"content\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"path\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"content\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/MediaType\"\n },\n \"minProperties\": 1,\n \"maxProperties\": 1\n }\n },\n },\n \"ParameterWithContentNotInPath\": {\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"in\",\n \"content\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"query\",\n \"header\",\n \"cookie\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"allowEmptyValue\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"content\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/MediaType\"\n },\n \"minProperties\": 1,\n \"maxProperties\": 1\n }\n },\n },\n \"RequestBody\": {\n \"type\": \"object\",\n \"required\": [\n \"content\"\n ],\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/MediaType\"\n }\n },\n \"required\": {\n \"type\": \"boolean\",\n \"default\": false\n }\n },\n \"additionalProperties\": false\n },\n \"SecurityScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/APIKeySecurityScheme\"\n },\n {\n \"$ref\": \"#/definitions/HTTPSecurityScheme\"\n },\n {\n \"$ref\": \"#/definitions/OAuth2SecurityScheme\"\n },\n {\n \"$ref\": \"#/definitions/OpenIdConnectSecurityScheme\"\n }\n ]\n },\n \"APIKeySecurityScheme\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"name\",\n \"in\"\n ],\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"apiKey\"\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"type\": \"string\",\n \"enum\": [\n \"header\",\n \"query\",\n \"cookie\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n },\n \"HTTPSecurityScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/NonBearerHTTPSecurityScheme\"\n },\n {\n \"$ref\": \"#/definitions/BearerHTTPSecurityScheme\"\n }\n ]\n },\n \"NonBearerHTTPSecurityScheme\": {\n \"type\": \"object\",\n \"required\": [\n \"scheme\",\n \"type\"\n ],\n \"properties\": {\n \"scheme\": {\n \"type\": \"string\",\n \"not\": {\n \"enum\": [\n \"bearer\"\n ]\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"http\"\n ]\n }\n },\n },\n \"BearerHTTPSecurityScheme\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"scheme\"\n ],\n \"properties\": {\n \"scheme\": {\n \"type\": \"string\",\n \"enum\": [\n \"bearer\"\n ]\n },\n \"bearerFormat\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"http\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n },\n \"OAuth2SecurityScheme\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"flows\"\n ],\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"oauth2\"\n ]\n },\n \"flows\": {\n \"$ref\": \"#/definitions/OAuthFlows\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n },\n \"OpenIdConnectSecurityScheme\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"openIdConnectUrl\"\n ],\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"openIdConnect\"\n ]\n },\n \"openIdConnectUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n },\n \"OAuthFlows\": {\n \"type\": \"object\",\n \"properties\": {\n \"implicit\": {\n \"$ref\": \"#/definitions/ImplicitOAuthFlow\"\n },\n \"password\": {\n \"$ref\": \"#/definitions/PasswordOAuthFlow\"\n },\n \"clientCredentials\": {\n \"$ref\": \"#/definitions/ClientCredentialsFlow\"\n },\n \"authorizationCode\": {\n \"$ref\": \"#/definitions/AuthorizationCodeOAuthFlow\"\n }\n },\n \"additionalProperties\": false\n },\n \"ImplicitOAuthFlow\": {\n \"type\": \"object\",\n \"required\": [\n \"authorizationUrl\",\n \"scopes\"\n ],\n \"properties\": {\n \"authorizationUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"PasswordOAuthFlow\": {\n \"type\": \"object\",\n \"required\": [\n \"tokenUrl\"\n ],\n \"properties\": {\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"ClientCredentialsFlow\": {\n \"type\": \"object\",\n \"required\": [\n \"tokenUrl\"\n ],\n \"properties\": {\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"AuthorizationCodeOAuthFlow\": {\n \"type\": \"object\",\n \"required\": [\n \"authorizationUrl\",\n \"tokenUrl\"\n ],\n \"properties\": {\n \"authorizationUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"Link\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/LinkWithOperationRef\"\n },\n {\n \"$ref\": \"#/definitions/LinkWithOperationId\"\n }\n ]\n },\n \"LinkWithOperationRef\": {\n \"type\": \"object\",\n \"properties\": {\n \"operationRef\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"parameters\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n \"requestBody\": {},\n \"description\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"$ref\": \"#/definitions/Server\"\n }\n },\n },\n \"LinkWithOperationId\": {\n \"type\": \"object\",\n \"properties\": {\n \"operationId\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n \"requestBody\": {},\n \"description\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"$ref\": \"#/definitions/Server\"\n }\n },\n },\n \"Callback\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/PathItem\"\n }\n },\n \"Encoding\": {\n \"type\": \"object\",\n \"properties\": {\n \"contentType\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Header\"\n }\n },\n \"style\": {\n \"type\": \"string\",\n \"enum\": [\n \"form\",\n \"spaceDelimited\",\n \"pipeDelimited\",\n \"deepObject\"\n ]\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\",\n \"default\": false\n }\n },\n \"additionalProperties\": false\n }\n }\n};","/*\n * We use this schema to filter loaded OpenAPI specs for only valid & relevant properties.\n * This is based on https://raw.githubusercontent.com/handrews/OpenAPI-Specification/157a4c8/schemas/v3.1/schema.json,\n * but with a few changes:\n *\n * - drop $schema\n * - non-essential extension fields made invalid\n * - explicitly added the specific info x-* properties we need\n * - oneOf changed to anyOf in all cases (relaxing constraints)\n *\n * All in all this makes the schema stricter about x-*, but more lax about everything\n * else. Updates will need similar treatment, but a diff should make it easy enough.\n*/\n\nexport const openApiSchema = {\n \"$id\": \"https://spec.openapis.org/oas/3.1/schema/2022-10-07\",\n \"description\": \"The description of OpenAPI v3.1.x documents without schema validation, as defined by https://spec.openapis.org/oas/v3.1.0\",\n \"type\": \"object\",\n \"properties\": {\n \"openapi\": {\n \"type\": \"string\",\n \"pattern\": \"^3\\\\.1\\\\.\\\\d+(-.+)?$\"\n },\n \"info\": {\n \"$ref\": \"#/$defs/info\"\n },\n \"jsonSchemaDialect\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"default\": \"https://spec.openapis.org/oas/3.1/dialect/base\"\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/server\"\n },\n \"default\": [\n {\n \"url\": \"/\"\n }\n ]\n },\n \"paths\": {\n \"$ref\": \"#/$defs/paths\"\n },\n \"webhooks\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/path-item-or-reference\"\n }\n },\n \"components\": {\n \"$ref\": \"#/$defs/components\"\n },\n \"security\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/security-requirement\"\n }\n },\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/tag\"\n }\n },\n \"externalDocs\": {\n \"$ref\": \"#/$defs/external-documentation\"\n }\n },\n \"required\": [\n \"openapi\",\n \"info\"\n ],\n \"anyOf\": [\n {\n \"required\": [\n \"paths\"\n ]\n },\n {\n \"required\": [\n \"components\"\n ]\n },\n {\n \"required\": [\n \"webhooks\"\n ]\n }\n ],\n \"unevaluatedProperties\": false,\n \"$defs\": {\n \"info\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#info-object\",\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"termsOfService\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"contact\": {\n \"$ref\": \"#/$defs/contact\"\n },\n \"license\": {\n \"$ref\": \"#/$defs/license\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"x-logo\": {\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\"\n }\n }\n },\n \"x-httptoolkit-builtin-api\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"x-httptoolkit-short-name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"title\",\n \"version\"\n ],\n \"unevaluatedProperties\": false\n },\n \"contact\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#contact-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n }\n },\n \"unevaluatedProperties\": false\n },\n \"license\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#license-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"dependentSchemas\": {\n \"identifier\": {\n \"not\": {\n \"required\": [\n \"url\"\n ]\n }\n }\n },\n \"unevaluatedProperties\": false\n },\n \"server\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#server-object\",\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/server-variable\"\n }\n }\n },\n \"required\": [\n \"url\"\n ],\n \"unevaluatedProperties\": false\n },\n \"server-variable\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#server-variable-object\",\n \"type\": \"object\",\n \"properties\": {\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1\n },\n \"default\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"default\"\n ],\n \"unevaluatedProperties\": false\n },\n \"components\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#components-object\",\n \"type\": \"object\",\n \"properties\": {\n \"schemas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$dynamicRef\": \"#meta\"\n }\n },\n \"responses\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/response-or-reference\"\n }\n },\n \"parameters\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/parameter-or-reference\"\n }\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/example-or-reference\"\n }\n },\n \"requestBodies\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/request-body-or-reference\"\n }\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/header-or-reference\"\n }\n },\n \"securitySchemes\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/security-scheme-or-reference\"\n }\n },\n \"links\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/link-or-reference\"\n }\n },\n \"callbacks\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/callbacks-or-reference\"\n }\n },\n \"pathItems\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/path-item-or-reference\"\n }\n }\n },\n \"patternProperties\": {\n \"^(schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$\": {\n \"$comment\": \"Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected\",\n \"propertyNames\": {\n \"pattern\": \"^[a-zA-Z0-9._-]+$\"\n }\n }\n },\n \"unevaluatedProperties\": false\n },\n \"paths\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#paths-object\",\n \"type\": \"object\",\n \"patternProperties\": {\n \"^/\": {\n \"$ref\": \"#/$defs/path-item\"\n }\n },\n \"unevaluatedProperties\": false\n },\n \"path-item\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#path-item-object\",\n \"type\": \"object\",\n \"properties\": {\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/server\"\n }\n },\n \"parameters\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/parameter-or-reference\"\n }\n },\n \"get\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"put\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"post\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"delete\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"options\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"head\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"patch\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"trace\": {\n \"$ref\": \"#/$defs/operation\"\n }\n },\n \"unevaluatedProperties\": false\n },\n \"path-item-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/path-item\"\n }\n },\n \"operation\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#operation-object\",\n \"type\": \"object\",\n \"properties\": {\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"externalDocs\": {\n \"$ref\": \"#/$defs/external-documentation\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/parameter-or-reference\"\n }\n },\n \"requestBody\": {\n \"$ref\": \"#/$defs/request-body-or-reference\"\n },\n \"responses\": {\n \"$ref\": \"#/$defs/responses\"\n },\n \"callbacks\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/callbacks-or-reference\"\n }\n },\n \"deprecated\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"security\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/security-requirement\"\n }\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/server\"\n }\n }\n },\n \"unevaluatedProperties\": false\n },\n \"external-documentation\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#external-documentation-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"unevaluatedProperties\": false\n },\n \"parameter\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#parameter-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"enum\": [\n \"query\",\n \"header\",\n \"path\",\n \"cookie\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"deprecated\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"schema\": {\n \"$dynamicRef\": \"#meta\"\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\",\n \"minProperties\": 1,\n \"maxProperties\": 1\n }\n },\n \"required\": [\n \"name\",\n \"in\"\n ],\n \"anyOf\": [\n {\n \"required\": [\n \"schema\"\n ]\n },\n {\n \"required\": [\n \"content\"\n ]\n }\n ],\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"query\"\n }\n },\n \"required\": [\n \"in\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"allowEmptyValue\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n }\n },\n \"dependentSchemas\": {\n \"schema\": {\n \"properties\": {\n \"style\": {\n \"type\": \"string\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/examples\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form\"\n }\n ],\n \"$defs\": {\n \"styles-for-path\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"path\"\n }\n },\n \"required\": [\n \"in\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"name\": {\n \"pattern\": \"[^/#?]+$\"\n },\n \"style\": {\n \"default\": \"simple\",\n \"enum\": [\n \"matrix\",\n \"label\",\n \"simple\"\n ]\n },\n \"required\": {\n \"const\": true\n }\n },\n \"required\": [\n \"required\"\n ]\n }\n },\n \"styles-for-header\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"header\"\n }\n },\n \"required\": [\n \"in\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"style\": {\n \"default\": \"simple\",\n \"const\": \"simple\"\n }\n }\n }\n },\n \"styles-for-query\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"query\"\n }\n },\n \"required\": [\n \"in\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"style\": {\n \"default\": \"form\",\n \"enum\": [\n \"form\",\n \"spaceDelimited\",\n \"pipeDelimited\",\n \"deepObject\"\n ]\n },\n \"allowReserved\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"styles-for-cookie\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"cookie\"\n }\n },\n \"required\": [\n \"in\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"style\": {\n \"default\": \"form\",\n \"const\": \"form\"\n }\n }\n }\n },\n \"styles-for-form\": {\n \"if\": {\n \"properties\": {\n \"style\": {\n \"const\": \"form\"\n }\n },\n \"required\": [\n \"style\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"explode\": {\n \"default\": true\n }\n }\n },\n \"else\": {\n \"properties\": {\n \"explode\": {\n \"default\": false\n }\n }\n }\n }\n }\n }\n },\n \"unevaluatedProperties\": false\n },\n \"parameter-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/parameter\"\n }\n },\n \"request-body\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#request-body-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\"\n },\n \"required\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"content\"\n ],\n \"unevaluatedProperties\": false\n },\n \"request-body-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/request-body\"\n }\n },\n \"content\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#fixed-fields-10\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/media-type\"\n },\n \"propertyNames\": {\n \"format\": \"media-range\"\n }\n },\n \"media-type\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#media-type-object\",\n \"type\": \"object\",\n \"properties\": {\n \"schema\": {\n \"$dynamicRef\": \"#meta\"\n },\n \"encoding\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/encoding\"\n }\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/examples\"\n }\n ],\n \"unevaluatedProperties\": false\n },\n \"encoding\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#encoding-object\",\n \"type\": \"object\",\n \"properties\": {\n \"contentType\": {\n \"type\": \"string\",\n \"format\": \"media-range\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/header-or-reference\"\n }\n },\n \"style\": {\n \"default\": \"form\",\n \"enum\": [\n \"form\",\n \"spaceDelimited\",\n \"pipeDelimited\",\n \"deepObject\"\n ]\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/encoding/$defs/explode-default\"\n }\n ],\n \"unevaluatedProperties\": false,\n \"$defs\": {\n \"explode-default\": {\n \"if\": {\n \"properties\": {\n \"style\": {\n \"const\": \"form\"\n }\n },\n \"required\": [\n \"style\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"explode\": {\n \"default\": true\n }\n }\n },\n \"else\": {\n \"properties\": {\n \"explode\": {\n \"default\": false\n }\n }\n }\n }\n }\n },\n \"responses\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#responses-object\",\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"$ref\": \"#/$defs/response-or-reference\"\n }\n },\n \"patternProperties\": {\n \"^[1-5](?:[0-9]{2}|XX)$\": {\n \"$ref\": \"#/$defs/response-or-reference\"\n }\n },\n \"minProperties\": 1,\n \"unevaluatedProperties\": false\n },\n \"response\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#response-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/header-or-reference\"\n }\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\"\n },\n \"links\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/link-or-reference\"\n }\n }\n },\n \"required\": [\n \"description\"\n ],\n \"unevaluatedProperties\": false\n },\n \"response-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/response\"\n }\n },\n \"callbacks\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#callback-object\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/path-item-or-reference\"\n }\n },\n \"callbacks-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/callbacks\"\n }\n },\n \"example\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#example-object\",\n \"type\": \"object\",\n \"properties\": {\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"value\": true,\n \"externalValue\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n }\n },\n \"not\": {\n \"required\": [\n \"value\",\n \"externalValue\"\n ]\n },\n \"unevaluatedProperties\": false\n },\n \"example-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/example\"\n }\n },\n \"link\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#link-object\",\n \"type\": \"object\",\n \"properties\": {\n \"operationRef\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n },\n \"requestBody\": true,\n \"description\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"$ref\": \"#/$defs/server\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"operationRef\"\n ]\n },\n {\n \"required\": [\n \"operationId\"\n ]\n }\n ],\n \"unevaluatedProperties\": false\n },\n \"link-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/link\"\n }\n },\n \"header\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#header-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"deprecated\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"schema\": {\n \"$dynamicRef\": \"#meta\"\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\",\n \"minProperties\": 1,\n \"maxProperties\": 1\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"schema\"\n ]\n },\n {\n \"required\": [\n \"content\"\n ]\n }\n ],\n \"dependentSchemas\": {\n \"schema\": {\n \"properties\": {\n \"style\": {\n \"default\": \"simple\",\n \"const\": \"simple\"\n },\n \"explode\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"$ref\": \"#/$defs/examples\"\n }\n },\n \"unevaluatedProperties\": false\n },\n \"header-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/header\"\n }\n },\n \"tag\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#tag-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"externalDocs\": {\n \"$ref\": \"#/$defs/external-documentation\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"unevaluatedProperties\": false\n },\n \"reference\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#reference-object\",\n \"type\": \"object\",\n \"properties\": {\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"unevaluatedProperties\": false\n },\n \"schema\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#schema-object\",\n \"$dynamicAnchor\": \"meta\",\n \"type\": [\n \"object\",\n \"boolean\"\n ]\n },\n \"security-scheme\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#security-scheme-object\",\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"enum\": [\n \"apiKey\",\n \"http\",\n \"mutualTLS\",\n \"oauth2\",\n \"openIdConnect\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-apikey\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-http\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-http-bearer\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-oauth2\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-oidc\"\n }\n ],\n \"unevaluatedProperties\": false,\n \"$defs\": {\n \"type-apikey\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"apiKey\"\n }\n },\n \"required\": [\n \"type\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"enum\": [\n \"query\",\n \"header\",\n \"cookie\"\n ]\n }\n },\n \"required\": [\n \"name\",\n \"in\"\n ]\n }\n },\n \"type-http\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"http\"\n }\n },\n \"required\": [\n \"type\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"scheme\"\n ]\n }\n },\n \"type-http-bearer\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"http\"\n },\n \"scheme\": {\n \"type\": \"string\",\n \"pattern\": \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"\n }\n },\n \"required\": [\n \"type\",\n \"scheme\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"bearerFormat\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"type-oauth2\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"oauth2\"\n }\n },\n \"required\": [\n \"type\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"flows\": {\n \"$ref\": \"#/$defs/oauth-flows\"\n }\n },\n \"required\": [\n \"flows\"\n ]\n }\n },\n \"type-oidc\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"openIdConnect\"\n }\n },\n \"required\": [\n \"type\"\n ]\n },\n \"then\": {\n \"properties\": {\n \"openIdConnectUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n }\n },\n \"required\": [\n \"openIdConnectUrl\"\n ]\n }\n }\n }\n },\n \"security-scheme-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\n \"$ref\"\n ]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/security-scheme\"\n }\n },\n \"oauth-flows\": {\n \"type\": \"object\",\n \"properties\": {\n \"implicit\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/implicit\"\n },\n \"password\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/password\"\n },\n \"clientCredentials\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/client-credentials\"\n },\n \"authorizationCode\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/authorization-code\"\n }\n },\n \"unevaluatedProperties\": false,\n \"$defs\": {\n \"implicit\": {\n \"type\": \"object\",\n \"properties\": {\n \"authorizationUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\n \"authorizationUrl\",\n \"scopes\"\n ],\n \"unevaluatedProperties\": false\n },\n \"password\": {\n \"type\": \"object\",\n \"properties\": {\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\n \"tokenUrl\",\n \"scopes\"\n ],\n \"unevaluatedProperties\": false\n },\n \"client-credentials\": {\n \"type\": \"object\",\n \"properties\": {\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\n \"tokenUrl\",\n \"scopes\"\n ],\n \"unevaluatedProperties\": false\n },\n \"authorization-code\": {\n \"type\": \"object\",\n \"properties\": {\n \"authorizationUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\n \"authorizationUrl\",\n \"tokenUrl\",\n \"scopes\"\n ],\n \"unevaluatedProperties\": false\n }\n }\n },\n \"security-requirement\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.1.0#security-requirement-object\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"examples\": {\n \"properties\": {\n \"example\": true,\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/example-or-reference\"\n }\n }\n }\n },\n \"map-of-strings\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n}\n;","export type ErrorLike = Partial & {\n // Various properties we might want to look for on errors:\n code?: string;\n cmd?: string;\n signal?: string;\n statusCode?: number;\n statusMessage?: string;\n};\n\n// Useful to easily cast and then examine errors that are otherwise 'unknown':\nexport function isErrorLike(error: any): error is ErrorLike {\n return typeof error === 'object' && (\n error instanceof Error ||\n error.message ||\n error.code ||\n error.stack\n )\n}\n\nexport function asError(error: any): Error {\n if (isErrorLike(error)) return error as Error;\n else {\n return new Error(error.message || error.toString());\n }\n}\n\nexport class UnreachableCheck extends Error {\n\n // getValue is used to allow logging properties (e.g. v.type) on expected-unreachable\n // values, instead of just logging [object Object].\n constructor(value: never, getValue: (v: any) => any = (x => x)) {\n super(`Unhandled case value: ${getValue(value)}`);\n }\n\n}\n\n// Sometimes useful when you need an expression (when you can't use a 'throws' statement):\nexport const unreachableCheck = (value: never, getValue: (v: any) => any = (x => x)): never => {\n throw new UnreachableCheck(value, getValue);\n}\n\n// For cases where we want to type-safe check for unreachability, but not actually break (e.g.\n// APIs that might return new values in future).\nexport const unreachableWarning = (value: never, getValue: (v: any) => any = (x => x)) => {\n console.warn(`Unhandled case value: ${getValue(value)}`);\n}","// Requiring modules and then 'forge', rather than just the root package, lets us\n// precisely filter exactly the code in our bundle.\nrequire('node-forge/lib/util');\nrequire('node-forge/lib/asn1');\nrequire('node-forge/lib/pki');\nrequire('node-forge/lib/pkcs12');\nimport * as forge from 'node-forge/lib/forge';\nimport { isErrorLike } from '../util/error';\n\nexport type ValidationResult =\n | 'valid'\n | 'invalid-format'\n | 'invalid-passphrase'\n | 'missing-cert'\n | 'missing-key';\n\nconst pkcs12ContainsBag = (pfx: forge.pkcs12.Pkcs12Pfx, bagType: string) =>\n pfx.getBags({ bagType })[bagType]?.length;\n\nexport function validatePKCS12(\n data: ArrayBuffer,\n passphrase: string | undefined\n): ValidationResult {\n let asn1Data: forge.asn1.Asn1;\n try {\n asn1Data = forge.asn1.fromDer(forge.util.createBuffer(data));\n } catch (e) {\n console.log(e);\n return 'invalid-format';\n }\n\n try {\n // Decrypt the PKCS12 with the passphrase - we assume if this works, it's good.\n // Could be false (different key on cert within, who knows what else), but typically not.\n const pfx = forge.pkcs12.pkcs12FromAsn1(asn1Data, passphrase);\n\n if (!pkcs12ContainsBag(pfx, forge.pki.oids.pkcs8ShroudedKeyBag)) {\n return 'missing-key';\n // There is also oids.keyBag, but AFAICT that's not what we need here generally.\n }\n\n if (!pkcs12ContainsBag(pfx, forge.pki.oids.certBag)) {\n return 'missing-cert';\n }\n\n return 'valid';\n } catch (e) {\n console.log(e);\n if (isErrorLike(e) && e.message?.includes('Invalid password')) {\n return 'invalid-passphrase';\n } else {\n // E.g. \"ASN.1 object is not an PKCS#12 PFX.\"\n return 'invalid-format';\n }\n }\n}\n\nexport type ParsedCertificate = {\n rawPEM: string;\n subject: {\n org?: string;\n name?: string;\n };\n serial: string;\n};\n\nexport function parseCert(cert: ArrayBuffer): ParsedCertificate {\n const magicNumbers = new Uint8Array(cert, 0, 2);\n const isDER = (magicNumbers[0] === 0x30 && magicNumbers[1] === 0x82);\n\n // We need PEM at the end of the day (we're passing this eventually into Node's\n // TLS APIs, which want PEM CA certs) so we convert DER to PEM here.\n\n const certBuffer = isDER\n ? derToPem(cert) // Looks like it's DER encoded - transform to PEM\n : forge.util.createBuffer(cert) // Otherwise it's probably PEM\n\n const pemString = certBuffer.toString();\n\n try {\n const certData = forge.pki.certificateFromPem(pemString);\n return {\n rawPEM: pemString,\n subject: {\n org: certData.subject.getField('O')?.value,\n name: certData.subject.getField('CN')?.value\n },\n serial: certData.serialNumber\n };\n } catch (err: any) {\n if (err.message === 'Cannot read public key. OID is not RSA.') {\n // This probably means we have an ECDSA certificate. The structure\n // has validated, but Forge can't use it. We can still accept it\n // just fine though, because it works on the backend. Manually parse\n // the fields we care about here instead:\n return getBasicCertDetails(pemString);\n } else {\n throw err;\n }\n }\n}\n\nfunction getBasicCertDetails(pemCert: string): ParsedCertificate {\n // This is a *very* simplified version of the internals of forge.pki.certificateFromPem,\n // minus the RSA key type validation.\n const msg = forge.pem.decode(pemCert)[0];\n const asn1Data = forge.asn1.fromDer(msg.body, false);\n\n const certCapture: any = {};\n (forge.asn1 as any).validate(asn1Data, X509MinimalStructure, certCapture);\n\n const subjectAttrs: Array<{\n shortName: string,\n value: string\n }> = (forge.pki as any).RDNAttributesAsArray(certCapture.certSubject);\n\n return {\n rawPEM: pemCert,\n subject: {\n name: subjectAttrs.find((attr) => attr.shortName === 'CN')?.value,\n org: subjectAttrs.find((attr) => attr.shortName === 'O')?.value,\n },\n serial: forge.util.createBuffer(certCapture.certSerialNumber).toHex()\n }\n}\n\nexport function derToPem(der: ArrayBuffer) {\n const asnObj = forge.asn1.fromDer(forge.util.createBuffer(der));\n const asn1Cert = forge.pki.certificateFromAsn1(asnObj);\n return forge.pki.certificateToPem(asn1Cert);\n};\n\n// The absolute minimal structure of X509 certificate that we need for our parsing here. We only\n// use this in the case that Forge can't validate a cert due to key type, so we need a fallback.\nconst X509MinimalStructure = {\n name: 'Certificate',\n tagClass: forge.asn1.Class.UNIVERSAL,\n type: forge.asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate',\n tagClass: forge.asn1.Class.UNIVERSAL,\n type: forge.asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate.version',\n tagClass: forge.asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n value: []\n }, {\n name: 'Certificate.TBSCertificate.serialNumber',\n tagClass: forge.asn1.Class.UNIVERSAL,\n type: forge.asn1.Type.INTEGER,\n constructed: false,\n capture: 'certSerialNumber'\n }, {\n name: 'Certificate.TBSCertificate.signature',\n tagClass: forge.asn1.Class.UNIVERSAL,\n type: forge.asn1.Type.SEQUENCE,\n constructed: true,\n value: []\n }, {\n name: 'Certificate.TBSCertificate.issuer',\n tagClass: forge.asn1.Class.UNIVERSAL,\n type: forge.asn1.Type.SEQUENCE,\n constructed: true\n }, {\n name: 'Certificate.TBSCertificate.validity',\n tagClass: forge.asn1.Class.UNIVERSAL,\n type: forge.asn1.Type.SEQUENCE,\n constructed: true,\n value: []\n }, {\n name: 'Certificate.TBSCertificate.subject',\n tagClass: forge.asn1.Class.UNIVERSAL,\n type: forge.asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certSubject'\n }]\n }]\n};","import { MockttpSerializedBuffer } from '../types';\n\n// In some places, we need a Buffer in theory, but we know for sure that it'll never\n// be read, we just need to know its size (e.g. calculating compression stats).\n// For those cases, it can be useful to *carefully* provide this fake buffer instead.\n// Could actually allocate an empty buffer, but that's much more expensive if the\n// buffer is large, and probably a waste.\nexport function fakeBuffer(byteLength: number): FakeBuffer {\n return { byteLength: byteLength };\n}\nexport type FakeBuffer = { byteLength: number };\n\nconst encoder = new TextEncoder();\n\nconst strictDecoder = new TextDecoder('utf8', { fatal: true });\nconst laxDecoder = new TextDecoder('utf8', { fatal: false });\nconst binaryLaxDecoder = new TextDecoder('latin1', { fatal: false });\n\n// Not a perfect or full check, but a quick test to see if the data in a buffer\n// is valid UTF8 (so we should treat it as text) or not (so we should treat it as\n// raw binary data). For viewing content as text we don't care (we just always show\n// as UTF8) but for _editing_ binary data we need a lossless encoding, not utf8.\n// (Monaco isn't perfectly lossless editing binary anyway, but we can try).\nexport function isProbablyUtf8(buffer: Buffer) {\n let dataToCheck: Buffer;\n if (buffer.byteLength > 1028) {\n // We want to trim the data to ~1KB, to avoid checking huge bodies in full.\n // Unfortunately, for UTF-8 this isn't safe: if a multibyte char crosses the\n // line when we cut the string, our slice of valid UTF-8 will be invalid.\n // To handle this, we find the first non-continuation byte after 1024, and\n // decode everything up to that point.\n\n const lastUtf8IndexBefore1024 = buffer\n .slice(1024, 1028) // 4 bytes should be enough - max length of UTF8 char\n .findIndex((byte) =>\n (byte & 0xC0) != 0x80 // 0x80 === 0b10... => continuation byte\n );\n\n // If there's no non-continuation byte, it's definitely not UTF-8\n if (lastUtf8IndexBefore1024 === -1) return false;\n const cleanEndOfUtf8Data = 1024 + lastUtf8IndexBefore1024;\n\n dataToCheck = buffer.slice(0, cleanEndOfUtf8Data);\n } else {\n dataToCheck = buffer;\n }\n\n try {\n // Fully decode our maybe-UTF8 chunk, and see if it's valid throughout:\n strictDecoder.decode(dataToCheck);\n return true; // Decoded OK, probably safe\n } catch (e) {\n return false; // Decoding failed, definitely not valid UTF8\n }\n}\n\nexport function stringToBuffer(input: string, encoding: 'utf8' | 'binary' = 'utf8') {\n if (encoding === 'utf8') {\n return Buffer.from(encoder.encode(input)); // ~4x faster than Buffer.from(input, 'utf8')\n } else if (encoding === 'binary') {\n return Buffer.from(input, encoding); // Slower, but we have no option as TextEncoder is UTF8 only\n } else {\n throw new Error(`Cannot decode string from unrecognized encoding: ${encoding}`);\n }\n}\n\nexport function bufferToString(\n input: Buffer,\n encoding: 'utf8' | 'binary' | 'detect-encoding' = 'utf8'\n): string {\n if (encoding === 'detect-encoding') {\n return isProbablyUtf8(input)\n ? bufferToString(input, 'utf8')\n : bufferToString(input, 'binary');\n } else if (encoding === 'utf8') {\n return laxDecoder.decode(input); // ~5x faster than buffer.toString('utf8')\n } else if (encoding === 'binary') {\n return binaryLaxDecoder.decode(input);\n } else {\n throw new Error(`Cannot convert buffer to unrecognized encoding: ${encoding}`);\n }\n}\n\nexport function isSerializedBuffer(obj: any): obj is MockttpSerializedBuffer {\n return obj && obj.type === 'Buffer' && !!obj.data;\n}\n\nexport function asBuffer(data: string | Buffer | Uint8Array | MockttpSerializedBuffer | undefined): Buffer {\n if (!data) {\n return Buffer.from([]);\n } else if (Buffer.isBuffer(data)) {\n return data;\n } else if (typeof data === 'string') {\n return stringToBuffer(data);\n } else if (isSerializedBuffer(data)) {\n return Buffer.from(data.data);\n } else {\n // Extract internal data from uint8array (arrayview):\n return Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n }\n}\n\n// Get the length of the given data in bytes, not characters.\n// If that's a buffer, the length is used raw, but if it's a string\n// it returns the length when encoded as UTF8.\nexport function byteLength(input: string | Buffer | MockttpSerializedBuffer | Uint8Array | undefined) {\n if (!input) {\n return 0;\n } else if (typeof input === 'string') {\n return new Blob([input]).size;\n } else if (isSerializedBuffer(input)) {\n return input.data.length;\n } else {\n return input.length;\n }\n}\n\nexport function bufferToHex(input: Buffer) {\n return input.toString('hex')\n .replace(/(\\w\\w)/g, '$1 ')\n .trimRight();\n}\n\nexport function getReadableSize(input: number | Buffer | string, siUnits = true) {\n const bytes = Buffer.isBuffer(input)\n ? input.byteLength\n : typeof input === 'string'\n ? input.length\n : input;\n\n let thresh = siUnits ? 1000 : 1024;\n\n let units = siUnits\n ? ['bytes', 'kB','MB','GB','TB','PB','EB','ZB','YB']\n : ['bytes', 'KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\n\n let unitIndex = bytes === 0 ? 0 :\n Math.floor(Math.log(bytes) / Math.log(thresh));\n\n let unitName = bytes === 1 ? 'byte' : units[unitIndex];\n\n return (bytes / Math.pow(thresh, unitIndex)).toFixed(1).replace(/\\.0$/, '') + ' ' + unitName;\n}","import * as _ from 'lodash';\nimport { Headers, RawHeaders } from '../types';\n\nexport {\n h2HeadersToH1\n} from 'mockttp/dist/util/header-utils';\n\n// Based RFC7230, 3.2.6:\nexport const HEADER_NAME_PATTERN = '^[!#$%&\\'*+\\\\-.^_`\\\\|~A-Za-z0-9]+$';\n // The \\\\| is required here because in 'v' flag regexes (used in HTML patterns by default) the |\n // character seems to be disallowed unescaped in classes like this.\nexport const HEADER_NAME_REGEX = new RegExp(HEADER_NAME_PATTERN);\n\n// Conversion between headers (map of key to string or string array, used in lots of older/simpler APIs)\n// and raw headers (array of [string, string] pairs, full representation of header reality).\n\nexport const headersToRawHeaders = (headers: Headers): RawHeaders =>\n Object.entries(headers || {}).reduce(\n (acc: RawHeaders, [key, value]) => {\n if (Array.isArray(value)) {\n acc = acc.concat(value.map(value => [ key, value ]))\n } else {\n acc.push([ key, value || '' ]);\n }\n return acc;\n }, []\n );\n\nexport const rawHeadersToHeaders = (headers: RawHeaders): Headers =>\n headers.reduce((headersObj: { [k: string]: string | string[] }, [key, value]) => {\n const headerName = key.toLowerCase();\n\n const existingValue = headersObj[headerName];\n if (existingValue === undefined) {\n headersObj[headerName] = value;\n } else if (typeof existingValue === 'string') {\n headersObj[headerName] = [existingValue, value];\n } else {\n existingValue.push(value);\n }\n return headersObj;\n }, {});\n\n/**\n * Get the header value for the given header key. Case insensitive. If there are multiple values,\n * this will return the last value. If there are no values or the headers themselves aren't defined,\n * this returns undefined.\n */\nexport function getHeaderValue(\n headers: Headers | RawHeaders | undefined,\n headerKey: Lowercase\n): string | undefined {\n if (Array.isArray(headers)) {\n const headerPair = _.findLast(headers, ([key]) => key.toLowerCase() === headerKey);\n return headerPair?.[1];\n } else {\n const headerValue = headers?.[headerKey];\n\n if (Array.isArray(headerValue)) {\n return headerValue[headerValue.length - 1];\n } else {\n return headerValue;\n }\n }\n}\n\n/**\n * Get all header values for the given header key. Case insensitive.\n * If there are no values this returns an empty list.\n */\nexport const getHeaderValues = (headers: Headers | RawHeaders, headerKey: string): string[] => {\n if (Array.isArray(headers)) {\n headerKey = headerKey.toLowerCase();\n return headers.filter(([key]) => key.toLowerCase() === headerKey).map(([_, value]) => value);\n } else {\n const headerValue = headers[headerKey];\n\n if (Array.isArray(headerValue)) {\n return headerValue;\n } else if (headerValue !== undefined) {\n return [headerValue];\n } else {\n return [];\n }\n }\n}\n\n/**\n * Set the value of a given header, overwriting it if present or otherwise adding it as a new header.\n *\n * For header objects, this overwrites all values. For raw headers, this overwrites the last value, so\n * if multiple values are present others may remain. In general you probably don't want to use this\n * for headers that could legally have multiple values present.\n */\nexport const setHeaderValue = (\n headers: Headers | RawHeaders,\n headerKey: string,\n headerValue: string,\n options: { prepend?: true } = {}\n) => {\n const lowercaseHeaderKey = headerKey.toLowerCase();\n\n if (Array.isArray(headers)) {\n const headerPair = _.findLast(headers, ([key]) => key.toLowerCase() === lowercaseHeaderKey);\n if (headerPair) {\n headerPair[1] = headerValue;\n } else {\n if (options.prepend) headers.unshift([headerKey, headerValue]);\n else headers.push([headerKey, headerValue]);\n }\n } else {\n const existingKey = Object.keys(headers).find(k => k.toLowerCase() === lowercaseHeaderKey);\n headers[existingKey || headerKey] = headerValue;\n }\n}\n\n/**\n * Clear the value of a given header, or do nothing if not present.\n *\n * For header objects, this clears all values. For raw headers, this clears the last value, so if\n * multiple values are present others may remain. In general you probably don't want to use this\n * for headers that could legally have multiple values present.\n */\nexport const removeHeader = (headers: Headers | RawHeaders, headerKey: string) => {\n const lowercaseHeaderKey = headerKey.toLowerCase();\n\n if (Array.isArray(headers)) {\n const headerIndex = _.findLastIndex(headers, ([key]) => key.toLowerCase() === lowercaseHeaderKey);\n if (headerIndex !== -1) headers.splice(headerIndex, 1);\n } else {\n const existingKey = Object.keys(headers).find(k => k.toLowerCase() === lowercaseHeaderKey);\n delete headers[existingKey || headerKey];\n }\n}\n\n/**\n * Returns a clone of the header input, with the value of the given headers set, overwriting values if\n * present or otherwise adding it as a new header (but not mutating the input itself).\n *\n * For header objects, this overwrites all values. For raw headers, this overwrites the first value, so\n * if multiple values are present others may remain. In general you probably don't want to use this\n * for headers that could legally have multiple values present.\n */\nexport const withHeaderValue = (headers: T, headerAdditions: Record): T => {\n headers = _.cloneDeep(headers);\n Object.entries(headerAdditions).forEach(([key, value]) =>\n setHeaderValue(headers, key, value)\n );\n return headers;\n}\n\nexport function asHeaderArray(val: string | string[] | undefined, sep = ','): string[] {\n if (Array.isArray(val)) {\n // Split individual values, as multiple headers can still have multiple values\n return _.flatMap(val, header =>\n header.split(sep).map(value => value.trim())\n );\n } else if (!val) {\n return [];\n } else {\n return val.split(sep).map(value => value.trim());\n }\n}\n\nexport type FlatHeaders = { [key: string]: string };\n\n/**\n * Flatten headers, i.e. combine any duplicates into comma-separated values. Required for some APIs\n * that don't accept duplicate headers.\n */\nexport function headersToFlatHeaders(headers: Headers): FlatHeaders {\n return _.mapValues(\n _.pickBy(headers, (key, value) => key && value),\n (value) =>\n _.isArray(value)\n ? value.join(', ')\n : value! // We know this is set because of filter above\n );\n}","import parseRawProto from 'rawprotoparse';\nimport { gunzipSync, inflateSync } from 'zlib';\n\nimport { Headers } from '../types';\nimport { getHeaderValue } from './headers';\n\nexport function isProbablyProtobuf(input: Uint8Array) {\n // Protobuf data starts with a varint, consisting of a\n // field number in [1, 2^29[ and a field type in [0, 5]*.\n // Unfortunately, that matches a very wide set of values,\n // including things like '<', '[' and '{' that are widely\n // used in other contexts.\n // * Hopefully, field types 3 & 4 have been deprecated for a while,\n // we thus consider them as invalid for this quick inference.\n\n // To handle that, we're more strict here, and we assume that\n // first field is tiny (<= 3) (very common, but not guaranteed).\n // This is a best-efforts check for messages with no other\n // indicators (no matching content-type) so that's OK.\n\n // This implies a first byte from 08 to 1D, which is not\n // in range of printable ASCII characters and has no obvious\n // conflicts in https://en.wikipedia.org/wiki/List_of_file_signatures\n // but does notably conflict with tab/cr/lf.\n // That makes this good as a very quick first check, but confirming\n // actual parsing is required to check more thoroughly.\n if (input.length < 2) {\n return false;\n }\n\n const fieldNumberTrunc = input[0] >>> 3;\n const fieldType = input[0] & 0b111;\n\n return fieldNumberTrunc >= 1 &&\n fieldNumberTrunc <= 3 &&\n [0, 1, 2, 5].includes(fieldType);\n}\n\nexport const parseRawProtobuf = parseRawProto;\n\n// GRPC message structure:\n// Ref: https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md\n//\n// The repeated sequence of Length-Prefixed-Message items is delivered in DATA frames\n// Length-Prefixed-Message → Compressed-Flag Message-Length Message\n// Compressed-Flag → 0 / 1 ; encoded as 1 byte unsigned integer\n// Message-Length → {length of Message} ; encoded as 4 byte unsigned integer (big endian)\n// Message → *{binary octet}\n//\n// A Compressed-Flag value of 1 indicates that the binary octet sequence of Message is\n// compressed using the mechanism declared by the Message-Encoding header.\n// A value of 0 indicates that no encoding of Message bytes has occurred.\n// If the Message-Encoding header is omitted then the Compressed-Flag must be 0.\nexport const extractProtobufFromGrpc = (input: Buffer, headers: Headers) => {\n const grpcEncoding = (\n getHeaderValue(headers, 'grpc-encoding') ?? 'identity'\n ).toLocaleLowerCase();\n const grpcDecoder = grpcEncoding == 'gzip' ? gunzipSync : grpcEncoding == 'deflate' ? inflateSync : undefined;\n const protobufMessages: Buffer[] = [];\n\n // useful indices for debugging\n let offset = 0;\n let msgIndex = 0;\n\n while (input.length > 0) {\n const errorPrefix = `gRPC message #${msgIndex} @${offset}: `\n const compressionFlag = input.readUInt8();\n const length = input.readUInt32BE(1);\n let message = input.slice(5, 5 + length);\n if (message.length != length) {\n throw new Error(`${errorPrefix}length of message is corrupted`);\n }\n\n switch (compressionFlag) {\n case 0: // may happen even if grpc-encoding != identity according to specs\n break;\n case 1:\n if (!grpcDecoder) {\n throw new Error(`${errorPrefix}not expected to be compressed`);\n }\n try {\n message = grpcDecoder(message);\n } catch (err) {\n throw new Error(`${errorPrefix}failed decompression (from ${grpcEncoding})`);\n }\n break;\n default:\n throw new Error(`${errorPrefix}unsupported compression flag (0x${compressionFlag.toString(16).padStart(2, '0')})`);\n }\n\n protobufMessages.push(message);\n input = input.subarray(5 + length);\n offset += 5 + length;\n msgIndex++;\n }\n\n return protobufMessages;\n}\n\nexport const isProbablyGrpcProto = (input: Buffer, headers: Headers) => {\n if (input.byteLength < 7) {\n return false;\n }\n const compressionFlag = input.readUInt8();\n const length = input.readUInt32BE(1);\n const firstMessage = input.slice(5, 5 + length);\n return length >= 2 && // at least two bytes for Protobuf message (tag & value)\n firstMessage.length == length &&\n (\n (compressionFlag == 0 && isProbablyProtobuf(firstMessage)) ||\n (compressionFlag == 1 && Object.keys(headers).includes('grpc-encoding'))\n )\n}\n\nexport const isValidProtobuf = (input: Uint8Array) => {\n try {\n parseRawProtobuf(input);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nexport const isValidGrpcProto = (input: Buffer, headers: Headers) => {\n try {\n const protobufMessages = extractProtobufFromGrpc(input, headers);\n protobufMessages.forEach((msg) => parseRawProtobuf(msg));\n return true;\n } catch (e) {\n return false;\n }\n}","import {\n js as beautifyJs,\n html as beautifyHtml,\n css as beautifyCss\n} from 'js-beautify/js/lib/beautifier';\nimport * as beautifyXml from 'xml-beautifier';\n\nimport { Headers } from '../types';\nimport { bufferToHex, bufferToString, getReadableSize } from '../util/buffer';\nimport { parseRawProtobuf, extractProtobufFromGrpc } from '../util/protobuf';\n\nconst truncationMarker = (size: string) => `\\n[-- Truncated to ${size} --]`;\nconst FIVE_MB = 1024 * 1024 * 5;\n\nexport type WorkerFormatterKey = keyof typeof WorkerFormatters;\n\nexport function formatBuffer(buffer: ArrayBuffer, format: WorkerFormatterKey, headers?: Headers): string {\n return WorkerFormatters[format](Buffer.from(buffer), headers);\n}\n\nconst prettyProtobufView = (data: any) => JSON.stringify(data, (_key, value) => {\n // Buffers have toJSON defined, so arrive here in JSONified form:\n if (value.type === 'Buffer' && Array.isArray(value.data)) {\n const buffer = Buffer.from(value.data);\n\n return {\n \"Type\": `Buffer (${getReadableSize(buffer)})`,\n \"As string\": bufferToString(buffer, 'detect-encoding'),\n \"As hex\": bufferToHex(buffer)\n }\n } else {\n return value;\n }\n}, 2);\n\n// A subset of all possible formatters (those allowed by body-formatting), which require\n// non-trivial processing, and therefore need to be processed async.\nconst WorkerFormatters = {\n // Poor man's hex editor:\n raw: (content: Buffer) => {\n // Truncate the content if necessary. Nobody should manually dig\n // through more than 5MB of content, and the full content is\n // available by downloading the whole body.\n const needsTruncation = content.length > FIVE_MB;\n if (needsTruncation) {\n content = content.slice(0, FIVE_MB)\n }\n\n const formattedContent = bufferToHex(content);\n\n if (needsTruncation) {\n return formattedContent + truncationMarker(\"5MB\");\n } else {\n return formattedContent;\n }\n },\n base64: (content: Buffer) => {\n const b64 = content.toString('ascii');\n return Buffer.from(b64, 'base64').toString('utf8');\n },\n markdown: (content: Buffer) => {\n return content.toString('utf8');\n },\n yaml: (content: Buffer) => {\n return content.toString('utf8');\n },\n html: (content: Buffer) => {\n return beautifyHtml(content.toString('utf8'), {\n indent_size: 2\n });\n },\n xml: (content: Buffer) => {\n return beautifyXml(content.toString('utf8'), ' ');\n },\n json: (content: Buffer) => {\n const asString = content.toString('utf8');\n try {\n return JSON.stringify(JSON.parse(asString), null, 2);\n } catch (e) {\n return asString;\n }\n },\n javascript: (content: Buffer) => {\n return beautifyJs(content.toString('utf8'), {\n indent_size: 2\n });\n },\n css: (content: Buffer) => {\n return beautifyCss(content.toString('utf8'), {\n indent_size: 2\n });\n },\n protobuf: (content: Buffer) => {\n const data = parseRawProtobuf(content, { prefix: '' });\n return prettyProtobufView(data);\n },\n 'grpc-proto': (content: Buffer, headers?: Headers) => {\n const protobufMessages = extractProtobufFromGrpc(content, headers ?? {});\n\n let data = protobufMessages.map((msg) => parseRawProtobuf(msg, { prefix: '' }));\n if (data.length === 1) data = data[0];\n\n return prettyProtobufView(data);\n }\n} as const;","// Worker.ts\nconst ctx: Worker = self as any;\n\nimport * as serializeError from 'serialize-error';\nimport {\n encodeBuffer,\n decodeBuffer,\n brotliCompress,\n gzip,\n deflate,\n zstdCompress,\n SUPPORTED_ENCODING\n} from 'http-encoding';\nimport { OpenAPIObject } from 'openapi-directory';\n\nimport { Headers } from '../types';\nimport { ApiMetadata, ApiSpec } from '../model/api/api-interfaces';\nimport { buildOpenApiMetadata, buildOpenRpcMetadata } from '../model/api/build-api-metadata';\nimport { parseCert, ParsedCertificate, validatePKCS12, ValidationResult } from '../model/crypto';\nimport { WorkerFormatterKey, formatBuffer } from './ui-worker-formatters';\n\ninterface Message {\n id: number;\n}\n\nexport interface DecodeRequest extends Message {\n type: 'decode';\n buffer: ArrayBuffer;\n encodings: string[];\n}\n\nexport interface DecodeResponse extends Message {\n error?: Error;\n inputBuffer: ArrayBuffer; // Send the input back, since we transferred it\n decodedBuffer: ArrayBuffer;\n}\n\nexport interface EncodeRequest extends Message {\n type: 'encode';\n buffer: ArrayBuffer;\n encodings: SUPPORTED_ENCODING[];\n}\n\nexport interface EncodeResponse extends Message {\n error?: Error;\n encodedBuffer: ArrayBuffer;\n}\n\nexport interface TestEncodingsRequest extends Message {\n type: 'test-encodings';\n decodedBuffer: Buffer;\n}\n\nexport interface TestEncodingsResponse extends Message {\n error?: Error;\n encodingSizes: { [encoding: string]: number };\n}\n\nexport interface BuildApiRequest extends Message {\n type: 'build-api';\n spec: ApiSpec;\n baseUrlOverrides?: string[];\n}\n\nexport interface BuildApiResponse extends Message {\n error?: Error;\n api: ApiMetadata\n}\n\nexport interface ValidatePKCSRequest extends Message {\n type: 'validate-pkcs12';\n buffer: ArrayBuffer;\n passphrase: string | undefined;\n}\n\nexport interface ValidatePKCSResponse extends Message {\n error?: Error;\n result: ValidationResult;\n}\n\nexport interface ParseCertRequest extends Message {\n type: 'parse-cert';\n buffer: ArrayBuffer;\n}\n\nexport interface ParseCertResponse extends Message {\n error?: Error;\n result: ParsedCertificate;\n}\n\nexport interface FormatRequest extends Message {\n type: 'format';\n buffer: ArrayBuffer;\n format: WorkerFormatterKey;\n headers?: Headers;\n}\n\nexport interface FormatResponse extends Message {\n error?: Error;\n formatted: string;\n}\n\nexport type BackgroundRequest =\n | DecodeRequest\n | EncodeRequest\n | TestEncodingsRequest\n | BuildApiRequest\n | ValidatePKCSRequest\n | ParseCertRequest\n | FormatRequest;\n\nexport type BackgroundResponse =\n | DecodeResponse\n | EncodeResponse\n | TestEncodingsResponse\n | BuildApiResponse\n | ValidatePKCSResponse\n | ParseCertResponse\n | FormatResponse;\n\nconst bufferToArrayBuffer = (buffer: Buffer): ArrayBuffer =>\n // Have to remember to slice: this can be a view into part of a much larger buffer!\n buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);\n\nasync function decodeRequest(request: DecodeRequest): Promise {\n const { id, buffer, encodings } = request;\n\n const result = await decodeBuffer(buffer, encodings);\n return {\n id,\n inputBuffer: buffer,\n decodedBuffer: bufferToArrayBuffer(result)\n };\n}\n\nasync function encodeRequest(request: EncodeRequest): Promise {\n const { id, buffer, encodings } = request;\n\n const result = await encodings.reduce((contentPromise, nextEncoding) => {\n return contentPromise.then((content) =>\n encodeBuffer(content, nextEncoding)\n )\n }, Promise.resolve(Buffer.from(buffer)));\n\n return {\n id,\n encodedBuffer: bufferToArrayBuffer(result)\n };\n}\n\n\nasync function testEncodings(request: TestEncodingsRequest) {\n const { decodedBuffer } = request;\n\n return {\n id: request.id,\n encodingSizes: {\n 'br': (await brotliCompress(decodedBuffer)).length,\n 'zstd': (await zstdCompress(decodedBuffer)).length,\n 'gzip': (await gzip(decodedBuffer, { level: 9 })).length,\n 'deflate': (await deflate(decodedBuffer, { level: 9 })).length\n }\n };\n}\n\nasync function buildApi(request: BuildApiRequest): Promise {\n const { id, spec, baseUrlOverrides } = request;\n return {\n id,\n api: 'openapi' in spec\n ? await buildOpenApiMetadata(spec as OpenAPIObject, baseUrlOverrides)\n : await buildOpenRpcMetadata(spec, baseUrlOverrides)\n };\n}\n\nctx.addEventListener('message', async (event: { data: BackgroundRequest }) => {\n try {\n switch (event.data.type) {\n case 'decode':\n try {\n const decodeResult = await decodeRequest(event.data);\n ctx.postMessage(decodeResult, [\n decodeResult.inputBuffer,\n decodeResult.decodedBuffer\n ]);\n } catch (e: any) {\n // Special case for decoding errors: we send the encoded data back with the error, so the user can debug it:\n ctx.postMessage({\n id: event.data.id,\n error: Object.assign(serializeError(e), {\n inputBuffer: event.data.buffer\n })\n }, [event.data.buffer]);\n return;\n }\n break;\n\n case 'encode':\n const encodeResult = await encodeRequest(event.data);\n ctx.postMessage(encodeResult, [encodeResult.encodedBuffer]);\n break;\n\n case 'test-encodings':\n const { data } = event;\n ctx.postMessage(await testEncodings(data));\n break;\n\n case 'build-api':\n ctx.postMessage(await buildApi(event.data));\n break;\n\n case 'validate-pkcs12':\n const result = validatePKCS12(event.data.buffer, event.data.passphrase);\n ctx.postMessage({ id: event.data.id, result });\n break;\n\n case 'parse-cert':\n ctx.postMessage({ id: event.data.id, result: parseCert(event.data.buffer) });\n break;\n\n case 'format':\n const formatted = formatBuffer(event.data.buffer, event.data.format, event.data.headers);\n ctx.postMessage({ id: event.data.id, formatted });\n break;\n\n default:\n console.error('Unknown worker event', event);\n }\n } catch (e) {\n ctx.postMessage({\n id: event.data.id,\n error: serializeError(e)\n });\n }\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [\"mockttp\",\"vendors-node_modules_ajv_dist_ajv_js-node_modules_base64-js_index_js-node_modules_browserify--bb5eaa\",\"vendors-node_modules_browserify-zlib_lib_index_js-node_modules_js-beautify_js_lib_beautifier_-fe20c9\"], () => (__webpack_require__(92111)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames not based on template\n\tif ({\"vendors-node_modules_bn_js_lib_bn_js-node_modules_path-browserify_index_js\":1,\"mockttp\":1,\"vendors-node_modules_ajv_dist_ajv_js-node_modules_base64-js_index_js-node_modules_browserify--bb5eaa\":1}[chunkId]) return \"\" + chunkId + \".js\";\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".bundle.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = \"src_services_ui-worker_ts\";","__webpack_require__.v = (exports, wasmModuleId, wasmModuleHash, importsObj) => {\n\tvar req = fetch(__webpack_require__.p + \"\" + wasmModuleHash + \".module.wasm\");\n\tvar fallback = () => (req\n\t\t.then((x) => (x.arrayBuffer()))\n\t\t.then((bytes) => (WebAssembly.instantiate(bytes, importsObj)))\n\t\t.then((res) => (Object.assign(exports, res.instance.exports))));\n\treturn req.then((res) => {\n\t\tif (typeof WebAssembly.instantiateStreaming === \"function\") {\n\t\t\treturn WebAssembly.instantiateStreaming(res, importsObj)\n\t\t\t\t.then(\n\t\t\t\t\t(res) => (Object.assign(exports, res.instance.exports)),\n\t\t\t\t\t(e) => {\n\t\t\t\t\t\tif(res.headers.get(\"Content-Type\") !== \"application/wasm\") {\n\t\t\t\t\t\t\tconsole.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\t\t\t\t\t\t\treturn fallback();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t}\n\t\treturn fallback();\n\t});\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t\"src_services_ui-worker_ts\": 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkhttptoolkit_ui\"] = self[\"webpackChunkhttptoolkit_ui\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["webpackQueues","webpackExports","webpackError","resolveQueue","deferred","leafPrototypes","getProto","next","isRef","node","derefRef","root","ref","$ref","startsWith","Error","refParts","slice","split","filter","p","length","refTarget","nextPart","shift","replace","dereference","traverse","forEach","wasRef","stopHere","this","update","filterV30Spec","removeAdditional","strict","validateFormats","compile","filterV31Spec","openApiTemplateStringToRegexString","template","buildOpenApiMetadata","spec","baseUrlOverrides","specId","info","specFilterResult","openapi","result","success","errors","validateAndFilterSpec","console","warn","JSON","stringify","serverUrlRegexSources","map","url","servers","s","serverMatcher","RegExp","join","requestMatchers","Map","paths","sort","pathA","pathB","charPairs","charA","charB","undefined","pathAParamCount","pathBParamCount","fragment","c","path","pathSpec","realPath","pathFragment","set","pathMatcher","source","queryMatcher","type","buildOpenRpcMetadata","methods","pkcs12ContainsBag","pfx","bagType","getBags","parseCert","cert","magicNumbers","Uint8Array","pemString","der","asnObj","forge","asn1","fromDer","util","createBuffer","asn1Cert","pki","certificateFromAsn1","certificateToPem","derToPem","toString","certData","certificateFromPem","rawPEM","subject","org","getField","value","name","serial","serialNumber","err","message","pemCert","msg","pem","decode","asn1Data","body","certCapture","validate","X509MinimalStructure","subjectAttrs","RDNAttributesAsArray","certSubject","find","attr","shortName","certSerialNumber","toHex","getBasicCertDetails","tagClass","Class","UNIVERSAL","Type","SEQUENCE","constructed","CONTEXT_SPECIFIC","optional","INTEGER","capture","captureAsn1","TextEncoder","strictDecoder","TextDecoder","fatal","laxDecoder","binaryLaxDecoder","bufferToString","input","encoding","buffer","dataToCheck","byteLength","lastUtf8IndexBefore1024","findIndex","byte","cleanEndOfUtf8Data","e","isProbablyUtf8","bufferToHex","trimRight","getReadableSize","siUnits","bytes","Buffer","isBuffer","thresh","units","unitIndex","Math","floor","log","unitName","pow","toFixed","parseRawProtobuf","FIVE_MB","prettyProtobufView","data","_key","Array","isArray","from","WorkerFormatters","raw","content","needsTruncation","formattedContent","base64","b64","markdown","yaml","html","indent_size","xml","json","asString","parse","javascript","css","protobuf","prefix","headers","grpcEncoding","headerKey","headerPair","key","toLowerCase","headerValue","getHeaderValue","toLocaleLowerCase","grpcDecoder","gunzipSync","inflateSync","protobufMessages","offset","msgIndex","errorPrefix","compressionFlag","readUInt8","readUInt32BE","padStart","push","subarray","extractProtobufFromGrpc","ctx","self","bufferToArrayBuffer","byteOffset","addEventListener","event","decodeResult","request","id","encodings","decodeBuffer","inputBuffer","decodedBuffer","decodeRequest","postMessage","error","Object","assign","encodeResult","reduce","contentPromise","nextEncoding","then","encodeBuffer","Promise","resolve","encodedBuffer","encodeRequest","encodingSizes","brotliCompress","zstdCompress","gzip","level","deflate","testEncodings","api","buildApi","passphrase","pkcs12","pkcs12FromAsn1","oids","pkcs8ShroudedKeyBag","certBag","code","stack","includes","validatePKCS12","formatted","format","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","x","__webpack_exports__","O","Symbol","queue","d","fn","r","a","hasAwait","currentDeps","outerResolve","reject","depQueues","Set","promise","rej","deps","dep","obj","ret","wrapDeps","getResult","fnQueue","q","has","add","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","n","getter","__esModule","getPrototypeOf","t","mode","ns","create","def","current","indexOf","getOwnPropertyNames","definition","o","defineProperty","enumerable","get","f","chunkId","all","promises","u","g","globalThis","Function","window","hmd","children","prop","prototype","hasOwnProperty","toStringTag","nmd","v","wasmModuleId","wasmModuleHash","importsObj","req","fetch","fallback","arrayBuffer","WebAssembly","instantiate","res","instance","instantiateStreaming","scriptUrl","importScripts","location","document","currentScript","tagName","toUpperCase","src","scripts","getElementsByTagName","test","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","bind","moreModules","runtime","pop"],"sourceRoot":""}