@one2x/playwright 1.57.0-alpha.1 → 1.57.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/lib/mcp/sdk/http.js +12 -12
  2. package/package.json +2 -2
  3. package/lib/agents/generateAgents.js.map +0 -7
  4. package/lib/common/config.js.map +0 -7
  5. package/lib/common/configLoader.js.map +0 -7
  6. package/lib/common/esmLoaderHost.js.map +0 -7
  7. package/lib/common/expectBundle.js.map +0 -7
  8. package/lib/common/expectBundleImpl.js.map +0 -7
  9. package/lib/common/fixtures.js.map +0 -7
  10. package/lib/common/globals.js.map +0 -7
  11. package/lib/common/ipc.js.map +0 -7
  12. package/lib/common/poolBuilder.js.map +0 -7
  13. package/lib/common/process.js.map +0 -7
  14. package/lib/common/suiteUtils.js.map +0 -7
  15. package/lib/common/test.js.map +0 -7
  16. package/lib/common/testLoader.js.map +0 -7
  17. package/lib/common/testType.js.map +0 -7
  18. package/lib/common/validators.js.map +0 -7
  19. package/lib/fsWatcher.js.map +0 -7
  20. package/lib/index.js.map +0 -7
  21. package/lib/internalsForTest.js.map +0 -7
  22. package/lib/isomorphic/events.js.map +0 -7
  23. package/lib/isomorphic/folders.js.map +0 -7
  24. package/lib/isomorphic/stringInternPool.js.map +0 -7
  25. package/lib/isomorphic/teleReceiver.js.map +0 -7
  26. package/lib/isomorphic/teleSuiteUpdater.js.map +0 -7
  27. package/lib/isomorphic/testServerConnection.js.map +0 -7
  28. package/lib/isomorphic/testServerInterface.js.map +0 -7
  29. package/lib/isomorphic/testTree.js.map +0 -7
  30. package/lib/isomorphic/types.d.js.map +0 -7
  31. package/lib/loader/loaderMain.js.map +0 -7
  32. package/lib/matchers/expect.js.map +0 -7
  33. package/lib/matchers/matcherHint.js.map +0 -7
  34. package/lib/matchers/matchers.js.map +0 -7
  35. package/lib/matchers/toBeTruthy.js.map +0 -7
  36. package/lib/matchers/toEqual.js.map +0 -7
  37. package/lib/matchers/toHaveURL.js.map +0 -7
  38. package/lib/matchers/toMatchAriaSnapshot.js.map +0 -7
  39. package/lib/matchers/toMatchSnapshot.js.map +0 -7
  40. package/lib/matchers/toMatchText.js.map +0 -7
  41. package/lib/mcp/browser/actions.d.js.map +0 -7
  42. package/lib/mcp/browser/browserContextFactory.js.map +0 -7
  43. package/lib/mcp/browser/browserServerBackend.js.map +0 -7
  44. package/lib/mcp/browser/codegen.js.map +0 -7
  45. package/lib/mcp/browser/config.js.map +0 -7
  46. package/lib/mcp/browser/context.js.map +0 -7
  47. package/lib/mcp/browser/response.js.map +0 -7
  48. package/lib/mcp/browser/sessionLog.js.map +0 -7
  49. package/lib/mcp/browser/tab.js.map +0 -7
  50. package/lib/mcp/browser/tools/actionRetry.js.map +0 -7
  51. package/lib/mcp/browser/tools/common.js.map +0 -7
  52. package/lib/mcp/browser/tools/console.js.map +0 -7
  53. package/lib/mcp/browser/tools/dialogs.js.map +0 -7
  54. package/lib/mcp/browser/tools/evaluate.js.map +0 -7
  55. package/lib/mcp/browser/tools/files.js.map +0 -7
  56. package/lib/mcp/browser/tools/form.js.map +0 -7
  57. package/lib/mcp/browser/tools/install.js.map +0 -7
  58. package/lib/mcp/browser/tools/keyboard.js.map +0 -7
  59. package/lib/mcp/browser/tools/mouse.js.map +0 -7
  60. package/lib/mcp/browser/tools/navigate.js.map +0 -7
  61. package/lib/mcp/browser/tools/network.js.map +0 -7
  62. package/lib/mcp/browser/tools/pdf.js.map +0 -7
  63. package/lib/mcp/browser/tools/screenshot.js.map +0 -7
  64. package/lib/mcp/browser/tools/snapshot.js.map +0 -7
  65. package/lib/mcp/browser/tools/tabs.js.map +0 -7
  66. package/lib/mcp/browser/tools/tool.js.map +0 -7
  67. package/lib/mcp/browser/tools/tracing.js.map +0 -7
  68. package/lib/mcp/browser/tools/utils.js.map +0 -7
  69. package/lib/mcp/browser/tools/verify.js.map +0 -7
  70. package/lib/mcp/browser/tools/wait.js.map +0 -7
  71. package/lib/mcp/browser/tools.js.map +0 -7
  72. package/lib/mcp/browser/watchdog.js.map +0 -7
  73. package/lib/mcp/config.d.js.map +0 -7
  74. package/lib/mcp/extension/cdpRelay.js.map +0 -7
  75. package/lib/mcp/extension/extensionContextFactory.js.map +0 -7
  76. package/lib/mcp/extension/protocol.js.map +0 -7
  77. package/lib/mcp/index.js.map +0 -7
  78. package/lib/mcp/log.js.map +0 -7
  79. package/lib/mcp/program.js.map +0 -7
  80. package/lib/mcp/sdk/bundle.js.map +0 -7
  81. package/lib/mcp/sdk/exports.js.map +0 -7
  82. package/lib/mcp/sdk/http.js.map +0 -7
  83. package/lib/mcp/sdk/inProcessTransport.js.map +0 -7
  84. package/lib/mcp/sdk/mdb.js.map +0 -7
  85. package/lib/mcp/sdk/proxyBackend.js.map +0 -7
  86. package/lib/mcp/sdk/server.js.map +0 -7
  87. package/lib/mcp/sdk/tool.js.map +0 -7
  88. package/lib/mcp/test/browserBackend.js.map +0 -7
  89. package/lib/mcp/test/generatorTools.js.map +0 -7
  90. package/lib/mcp/test/plannerTools.js.map +0 -7
  91. package/lib/mcp/test/seed.js.map +0 -7
  92. package/lib/mcp/test/streams.js.map +0 -7
  93. package/lib/mcp/test/testBackend.js.map +0 -7
  94. package/lib/mcp/test/testContext.js.map +0 -7
  95. package/lib/mcp/test/testTool.js.map +0 -7
  96. package/lib/mcp/test/testTools.js.map +0 -7
  97. package/lib/mcpBundleImpl.js.map +0 -7
  98. package/lib/plugins/gitCommitInfoPlugin.js.map +0 -7
  99. package/lib/plugins/index.js.map +0 -7
  100. package/lib/plugins/webServerPlugin.js.map +0 -7
  101. package/lib/program.js.map +0 -7
  102. package/lib/reporters/base.js.map +0 -7
  103. package/lib/reporters/blob.js.map +0 -7
  104. package/lib/reporters/dot.js.map +0 -7
  105. package/lib/reporters/empty.js.map +0 -7
  106. package/lib/reporters/github.js.map +0 -7
  107. package/lib/reporters/html.js.map +0 -7
  108. package/lib/reporters/internalReporter.js.map +0 -7
  109. package/lib/reporters/json.js.map +0 -7
  110. package/lib/reporters/junit.js.map +0 -7
  111. package/lib/reporters/line.js.map +0 -7
  112. package/lib/reporters/list.js.map +0 -7
  113. package/lib/reporters/listModeReporter.js.map +0 -7
  114. package/lib/reporters/markdown.js.map +0 -7
  115. package/lib/reporters/merge.js.map +0 -7
  116. package/lib/reporters/multiplexer.js.map +0 -7
  117. package/lib/reporters/reporterV2.js.map +0 -7
  118. package/lib/reporters/teleEmitter.js.map +0 -7
  119. package/lib/reporters/versions/blobV1.js.map +0 -7
  120. package/lib/runner/dispatcher.js.map +0 -7
  121. package/lib/runner/failureTracker.js.map +0 -7
  122. package/lib/runner/lastRun.js.map +0 -7
  123. package/lib/runner/loadUtils.js.map +0 -7
  124. package/lib/runner/loaderHost.js.map +0 -7
  125. package/lib/runner/processHost.js.map +0 -7
  126. package/lib/runner/projectUtils.js.map +0 -7
  127. package/lib/runner/rebase.js.map +0 -7
  128. package/lib/runner/reporters.js.map +0 -7
  129. package/lib/runner/runner.js +0 -110
  130. package/lib/runner/sigIntWatcher.js.map +0 -7
  131. package/lib/runner/taskRunner.js.map +0 -7
  132. package/lib/runner/tasks.js.map +0 -7
  133. package/lib/runner/testGroups.js.map +0 -7
  134. package/lib/runner/testRunner.js.map +0 -7
  135. package/lib/runner/testServer.js.map +0 -7
  136. package/lib/runner/uiModeReporter.js.map +0 -7
  137. package/lib/runner/vcs.js.map +0 -7
  138. package/lib/runner/watchMode.js.map +0 -7
  139. package/lib/runner/workerHost.js.map +0 -7
  140. package/lib/third_party/pirates.js.map +0 -7
  141. package/lib/third_party/tsconfig-loader.js.map +0 -7
  142. package/lib/transform/babelBundle.js.map +0 -7
  143. package/lib/transform/babelBundleImpl.js.map +0 -7
  144. package/lib/transform/compilationCache.js.map +0 -7
  145. package/lib/transform/esmLoader.js.map +0 -7
  146. package/lib/transform/portTransport.js.map +0 -7
  147. package/lib/transform/transform.js.map +0 -7
  148. package/lib/util.js.map +0 -7
  149. package/lib/utilsBundle.js.map +0 -7
  150. package/lib/utilsBundleImpl.js.map +0 -7
  151. package/lib/worker/fixtureRunner.js.map +0 -7
  152. package/lib/worker/testInfo.js.map +0 -7
  153. package/lib/worker/testTracing.js.map +0 -7
  154. package/lib/worker/timeoutManager.js.map +0 -7
  155. package/lib/worker/util.js.map +0 -7
  156. package/lib/worker/workerMain.js.map +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../bundles/mcp/node_modules/uri-js/src/index.ts", "../bundles/mcp/node_modules/uri-js/src/schemes/urn-uuid.ts", "../bundles/mcp/node_modules/uri-js/src/schemes/urn.ts", "../bundles/mcp/node_modules/uri-js/src/schemes/mailto.ts", "../bundles/mcp/node_modules/uri-js/src/schemes/wss.ts", "../bundles/mcp/node_modules/uri-js/src/schemes/ws.ts", "../bundles/mcp/node_modules/uri-js/src/schemes/https.ts", "../bundles/mcp/node_modules/uri-js/src/schemes/http.ts", "../bundles/mcp/node_modules/uri-js/src/uri.ts", "../bundles/mcp/node_modules/uri-js/node_modules/punycode/punycode.es6.js", "../bundles/mcp/node_modules/uri-js/src/regexps-iri.ts", "../bundles/mcp/node_modules/uri-js/src/regexps-uri.ts", "../bundles/mcp/node_modules/uri-js/src/util.ts", "../bundles/mcp/node_modules/fast-deep-equal/index.js", "../bundles/mcp/node_modules/ajv/lib/compile/ucs2length.js", "../bundles/mcp/node_modules/ajv/lib/compile/util.js", "../bundles/mcp/node_modules/ajv/lib/compile/schema_obj.js", "../bundles/mcp/node_modules/json-schema-traverse/index.js", "../bundles/mcp/node_modules/ajv/lib/compile/resolve.js", "../bundles/mcp/node_modules/ajv/lib/compile/error_classes.js", "../bundles/mcp/node_modules/fast-json-stable-stringify/index.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/validate.js", "../bundles/mcp/node_modules/ajv/lib/compile/index.js", "../bundles/mcp/node_modules/ajv/lib/cache.js", "../bundles/mcp/node_modules/ajv/lib/compile/formats.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/ref.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/allOf.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/anyOf.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/comment.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/const.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/contains.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/dependencies.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/enum.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/format.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/if.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/items.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/_limit.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/_limitItems.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/_limitLength.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/_limitProperties.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/multipleOf.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/not.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/oneOf.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/pattern.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/properties.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/propertyNames.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/required.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/uniqueItems.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/index.js", "../bundles/mcp/node_modules/ajv/lib/compile/rules.js", "../bundles/mcp/node_modules/ajv/lib/data.js", "../bundles/mcp/node_modules/ajv/lib/compile/async.js", "../bundles/mcp/node_modules/ajv/lib/dotjs/custom.js", "../bundles/mcp/node_modules/ajv/lib/refs/json-schema-draft-07.json", "../bundles/mcp/node_modules/ajv/lib/definition_schema.js", "../bundles/mcp/node_modules/ajv/lib/keyword.js", "../bundles/mcp/node_modules/ajv/lib/refs/data.json", "../bundles/mcp/node_modules/ajv/lib/ajv.js", "../bundles/mcp/node_modules/bytes/index.js", "../bundles/mcp/node_modules/content-type/index.js", "../bundles/mcp/node_modules/isexe/windows.js", "../bundles/mcp/node_modules/isexe/mode.js", "../bundles/mcp/node_modules/isexe/index.js", "../bundles/mcp/node_modules/which/which.js", "../bundles/mcp/node_modules/path-key/index.js", "../bundles/mcp/node_modules/cross-spawn/lib/util/resolveCommand.js", "../bundles/mcp/node_modules/cross-spawn/lib/util/escape.js", "../bundles/mcp/node_modules/shebang-regex/index.js", "../bundles/mcp/node_modules/shebang-command/index.js", "../bundles/mcp/node_modules/cross-spawn/lib/util/readShebang.js", "../bundles/mcp/node_modules/cross-spawn/lib/parse.js", "../bundles/mcp/node_modules/cross-spawn/lib/enoent.js", "../bundles/mcp/node_modules/cross-spawn/index.js", "../bundles/mcp/src/mcpBundleImpl.ts", "../bundles/mcp/node_modules/zod/v3/external.js", "../bundles/mcp/node_modules/zod/v3/helpers/util.js", "../bundles/mcp/node_modules/zod/v3/ZodError.js", "../bundles/mcp/node_modules/zod/v3/locales/en.js", "../bundles/mcp/node_modules/zod/v3/errors.js", "../bundles/mcp/node_modules/zod/v3/helpers/parseUtil.js", "../bundles/mcp/node_modules/zod/v3/helpers/errorUtil.js", "../bundles/mcp/node_modules/zod/v3/types.js", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/types.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/client/index.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/server/index.ts", "../bundles/mcp/node_modules/eventsource-parser/src/errors.ts", "../bundles/mcp/node_modules/eventsource-parser/src/parse.ts", "../bundles/mcp/node_modules/eventsource/src/errors.ts", "../bundles/mcp/node_modules/eventsource/src/EventSource.ts", "../bundles/mcp/node_modules/pkce-challenge/dist/index.node.js", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/shared/auth.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/shared/auth-utils.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/server/auth/errors.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/client/auth.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/client/sse.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/server/sse.ts", "../bundles/mcp/raw-body.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/client/stdio.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/shared/stdio.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/server/stdio.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/server/streamableHttp.ts", "../bundles/mcp/node_modules/eventsource-parser/src/stream.ts", "../bundles/mcp/node_modules/@modelcontextprotocol/sdk/src/client/streamableHttp.ts", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/Options.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/Refs.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/errorMessages.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/any.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/array.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/date.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/default.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/string.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/record.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/map.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/never.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/null.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/union.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/number.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/object.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/set.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/selectParser.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/parseDef.js", "../bundles/mcp/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js"],
4
- "sourcesContent": ["import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n", "import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;", "import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;", "import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;", "import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;", "import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;", "import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;", "import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;", "/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n", "'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n", "import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n", "import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n", "export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}", "'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n", "'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n", "'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n", "'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n", "'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n", "'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n", "'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n", "'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n", "'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n", "'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n", "'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n", "'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n", "'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n", "'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n", "'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n", "'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n", "'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n", "'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n", "'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n", "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Core schema meta-schema\",\n \"definitions\": {\n \"schemaArray\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"$ref\": \"#\" }\n },\n \"nonNegativeInteger\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"nonNegativeIntegerDefault0\": {\n \"allOf\": [\n { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n { \"default\": 0 }\n ]\n },\n \"simpleTypes\": {\n \"enum\": [\n \"array\",\n \"boolean\",\n \"integer\",\n \"null\",\n \"number\",\n \"object\",\n \"string\"\n ]\n },\n \"stringArray\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"uniqueItems\": true,\n \"default\": []\n }\n },\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"$id\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$schema\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$comment\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"default\": true,\n \"readOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"examples\": {\n \"type\": \"array\",\n \"items\": true\n },\n \"multipleOf\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maximum\": {\n \"type\": \"number\"\n },\n \"exclusiveMaximum\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"exclusiveMinimum\": {\n \"type\": \"number\"\n },\n \"maxLength\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minLength\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"pattern\": {\n \"type\": \"string\",\n \"format\": \"regex\"\n },\n \"additionalItems\": { \"$ref\": \"#\" },\n \"items\": {\n \"anyOf\": [\n { \"$ref\": \"#\" },\n { \"$ref\": \"#/definitions/schemaArray\" }\n ],\n \"default\": true\n },\n \"maxItems\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minItems\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"uniqueItems\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"contains\": { \"$ref\": \"#\" },\n \"maxProperties\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minProperties\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"required\": { \"$ref\": \"#/definitions/stringArray\" },\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"definitions\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"default\": {}\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"default\": {}\n },\n \"patternProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"propertyNames\": { \"format\": \"regex\" },\n \"default\": {}\n },\n \"dependencies\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n { \"$ref\": \"#\" },\n { \"$ref\": \"#/definitions/stringArray\" }\n ]\n }\n },\n \"propertyNames\": { \"$ref\": \"#\" },\n \"const\": true,\n \"enum\": {\n \"type\": \"array\",\n \"items\": true,\n \"minItems\": 1,\n \"uniqueItems\": true\n },\n \"type\": {\n \"anyOf\": [\n { \"$ref\": \"#/definitions/simpleTypes\" },\n {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/definitions/simpleTypes\" },\n \"minItems\": 1,\n \"uniqueItems\": true\n }\n ]\n },\n \"format\": { \"type\": \"string\" },\n \"contentMediaType\": { \"type\": \"string\" },\n \"contentEncoding\": { \"type\": \"string\" },\n \"if\": {\"$ref\": \"#\"},\n \"then\": {\"$ref\": \"#\"},\n \"else\": {\"$ref\": \"#\"},\n \"allOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"anyOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"oneOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"not\": { \"$ref\": \"#\" }\n },\n \"default\": true\n}\n", "'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n", "'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n", "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n \"description\": \"Meta-schema for $data reference (JSON Schema extension proposal)\",\n \"type\": \"object\",\n \"required\": [ \"$data\" ],\n \"properties\": {\n \"$data\": {\n \"type\": \"string\",\n \"anyOf\": [\n { \"format\": \"relative-json-pointer\" }, \n { \"format\": \"json-pointer\" }\n ]\n }\n },\n \"additionalProperties\": false\n}\n", "'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n", "/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = bytes;\nmodule.exports.format = format;\nmodule.exports.parse = parse;\n\n/**\n * Module variables.\n * @private\n */\n\nvar formatThousandsRegExp = /\\B(?=(\\d{3})+(?!\\d))/g;\n\nvar formatDecimalsRegExp = /(?:\\.0*|(\\.[^0]+)0+)$/;\n\nvar map = {\n b: 1,\n kb: 1 << 10,\n mb: 1 << 20,\n gb: 1 << 30,\n tb: Math.pow(1024, 4),\n pb: Math.pow(1024, 5),\n};\n\nvar parseRegExp = /^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;\n\n/**\n * Convert the given value in bytes into a string or parse to string to an integer in bytes.\n *\n * @param {string|number} value\n * @param {{\n * case: [string],\n * decimalPlaces: [number]\n * fixedDecimals: [boolean]\n * thousandsSeparator: [string]\n * unitSeparator: [string]\n * }} [options] bytes options.\n *\n * @returns {string|number|null}\n */\n\nfunction bytes(value, options) {\n if (typeof value === 'string') {\n return parse(value);\n }\n\n if (typeof value === 'number') {\n return format(value, options);\n }\n\n return null;\n}\n\n/**\n * Format the given value in bytes into a string.\n *\n * If the value is negative, it is kept as such. If it is a float,\n * it is rounded.\n *\n * @param {number} value\n * @param {object} [options]\n * @param {number} [options.decimalPlaces=2]\n * @param {number} [options.fixedDecimals=false]\n * @param {string} [options.thousandsSeparator=]\n * @param {string} [options.unit=]\n * @param {string} [options.unitSeparator=]\n *\n * @returns {string|null}\n * @public\n */\n\nfunction format(value, options) {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n var mag = Math.abs(value);\n var thousandsSeparator = (options && options.thousandsSeparator) || '';\n var unitSeparator = (options && options.unitSeparator) || '';\n var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;\n var fixedDecimals = Boolean(options && options.fixedDecimals);\n var unit = (options && options.unit) || '';\n\n if (!unit || !map[unit.toLowerCase()]) {\n if (mag >= map.pb) {\n unit = 'PB';\n } else if (mag >= map.tb) {\n unit = 'TB';\n } else if (mag >= map.gb) {\n unit = 'GB';\n } else if (mag >= map.mb) {\n unit = 'MB';\n } else if (mag >= map.kb) {\n unit = 'KB';\n } else {\n unit = 'B';\n }\n }\n\n var val = value / map[unit.toLowerCase()];\n var str = val.toFixed(decimalPlaces);\n\n if (!fixedDecimals) {\n str = str.replace(formatDecimalsRegExp, '$1');\n }\n\n if (thousandsSeparator) {\n str = str.split('.').map(function (s, i) {\n return i === 0\n ? s.replace(formatThousandsRegExp, thousandsSeparator)\n : s\n }).join('.');\n }\n\n return str + unitSeparator + unit;\n}\n\n/**\n * Parse the string value into an integer in bytes.\n *\n * If no unit is given, it is assumed the value is in bytes.\n *\n * @param {number|string} val\n *\n * @returns {number|null}\n * @public\n */\n\nfunction parse(val) {\n if (typeof val === 'number' && !isNaN(val)) {\n return val;\n }\n\n if (typeof val !== 'string') {\n return null;\n }\n\n // Test if the string passed is valid\n var results = parseRegExp.exec(val);\n var floatValue;\n var unit = 'b';\n\n if (!results) {\n // Nothing could be extracted from the given string\n floatValue = parseInt(val, 10);\n unit = 'b'\n } else {\n // Retrieve the value and the unit\n floatValue = parseFloat(results[1]);\n unit = results[4].toLowerCase();\n }\n\n if (isNaN(floatValue)) {\n return null;\n }\n\n return Math.floor(map[unit] * floatValue);\n}\n", "/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n", "module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n", "module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n", "var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n", "const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n", "'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n", "'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n", "'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n", "'use strict';\nmodule.exports = /^#!(.*)/;\n", "'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n", "'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n", "'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n", "'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n", "'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n", "/**\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { Client } from '@modelcontextprotocol/sdk/client/index.js';\nexport { Server } from '@modelcontextprotocol/sdk/server/index.js';\nexport { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';\nexport { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';\nexport { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';\nexport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nexport { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';\nexport { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';\nexport { CallToolRequestSchema, ListRootsRequestSchema, ListToolsRequestSchema, PingRequestSchema, ProgressNotificationSchema } from '@modelcontextprotocol/sdk/types.js';\nexport { z } from 'zod';\nexport { zodToJsonSchema } from 'zod-to-json-schema';\n", "export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n", "export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n", "import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n", "import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n", "import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n", "import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n", "export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n", "import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n", null, null, null, null, "/**\n * The type of error that occurred.\n * @public\n */\nexport type ErrorType = 'invalid-retry' | 'unknown-field'\n\n/**\n * Error thrown when encountering an issue during parsing.\n *\n * @public\n */\nexport class ParseError extends Error {\n /**\n * The type of error that occurred.\n */\n type: ErrorType\n\n /**\n * In the case of an unknown field encountered in the stream, this will be the field name.\n */\n field?: string\n\n /**\n * In the case of an unknown field encountered in the stream, this will be the value of the field.\n */\n value?: string\n\n /**\n * The line that caused the error, if available.\n */\n line?: string\n\n constructor(\n message: string,\n options: {type: ErrorType; field?: string; value?: string; line?: string},\n ) {\n super(message)\n this.name = 'ParseError'\n this.type = options.type\n this.field = options.field\n this.value = options.value\n this.line = options.line\n }\n}\n", "/**\n * EventSource/Server-Sent Events parser\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n */\nimport {ParseError} from './errors.ts'\nimport type {EventSourceParser, ParserCallbacks} from './types.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction noop(_arg: unknown) {\n // intentional noop\n}\n\n/**\n * Creates a new EventSource parser.\n *\n * @param callbacks - Callbacks to invoke on different parsing events:\n * - `onEvent` when a new event is parsed\n * - `onError` when an error occurs\n * - `onRetry` when a new reconnection interval has been sent from the server\n * - `onComment` when a comment is encountered in the stream\n *\n * @returns A new EventSource parser, with `parse` and `reset` methods.\n * @public\n */\nexport function createParser(callbacks: ParserCallbacks): EventSourceParser {\n if (typeof callbacks === 'function') {\n throw new TypeError(\n '`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?',\n )\n }\n\n const {onEvent = noop, onError = noop, onRetry = noop, onComment} = callbacks\n\n let incompleteLine = ''\n\n let isFirstChunk = true\n let id: string | undefined\n let data = ''\n let eventType = ''\n\n function feed(newChunk: string) {\n // Strip any UTF8 byte order mark (BOM) at the start of the stream\n const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, '') : newChunk\n\n // If there was a previous incomplete line, append it to the new chunk,\n // so we may process it together as a new (hopefully complete) chunk.\n const [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`)\n\n for (const line of complete) {\n parseLine(line)\n }\n\n incompleteLine = incomplete\n isFirstChunk = false\n }\n\n function parseLine(line: string) {\n // If the line is empty (a blank line), dispatch the event\n if (line === '') {\n dispatchEvent()\n return\n }\n\n // If the line starts with a U+003A COLON character (:), ignore the line.\n if (line.startsWith(':')) {\n if (onComment) {\n onComment(line.slice(line.startsWith(': ') ? 2 : 1))\n }\n return\n }\n\n // If the line contains a U+003A COLON character (:)\n const fieldSeparatorIndex = line.indexOf(':')\n if (fieldSeparatorIndex !== -1) {\n // Collect the characters on the line before the first U+003A COLON character (:),\n // and let `field` be that string.\n const field = line.slice(0, fieldSeparatorIndex)\n\n // Collect the characters on the line after the first U+003A COLON character (:),\n // and let `value` be that string. If value starts with a U+0020 SPACE character,\n // remove it from value.\n const offset = line[fieldSeparatorIndex + 1] === ' ' ? 2 : 1\n const value = line.slice(fieldSeparatorIndex + offset)\n\n processField(field, value, line)\n return\n }\n\n // Otherwise, the string is not empty but does not contain a U+003A COLON character (:)\n // Process the field using the whole line as the field name, and an empty string as the field value.\n // 👆 This is according to spec. That means that a line that has the value `data` will result in\n // a newline being added to the current `data` buffer, for instance.\n processField(line, '', line)\n }\n\n function processField(field: string, value: string, line: string) {\n // Field names must be compared literally, with no case folding performed.\n switch (field) {\n case 'event':\n // Set the `event type` buffer to field value\n eventType = value\n break\n case 'data':\n // Append the field value to the `data` buffer, then append a single U+000A LINE FEED(LF)\n // character to the `data` buffer.\n data = `${data}${value}\\n`\n break\n case 'id':\n // If the field value does not contain U+0000 NULL, then set the `ID` buffer to\n // the field value. Otherwise, ignore the field.\n id = value.includes('\\0') ? undefined : value\n break\n case 'retry':\n // If the field value consists of only ASCII digits, then interpret the field value as an\n // integer in base ten, and set the event stream's reconnection time to that integer.\n // Otherwise, ignore the field.\n if (/^\\d+$/.test(value)) {\n onRetry(parseInt(value, 10))\n } else {\n onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: 'invalid-retry',\n value,\n line,\n }),\n )\n }\n break\n default:\n // Otherwise, the field is ignored.\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}…` : field}\"`,\n {type: 'unknown-field', field, value, line},\n ),\n )\n break\n }\n }\n\n function dispatchEvent() {\n const shouldDispatch = data.length > 0\n if (shouldDispatch) {\n onEvent({\n id,\n event: eventType || undefined,\n // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n // then remove the last character from the data buffer.\n data: data.endsWith('\\n') ? data.slice(0, -1) : data,\n })\n }\n\n // Reset for the next event\n id = undefined\n data = ''\n eventType = ''\n }\n\n function reset(options: {consume?: boolean} = {}) {\n if (incompleteLine && options.consume) {\n parseLine(incompleteLine)\n }\n\n isFirstChunk = true\n id = undefined\n data = ''\n eventType = ''\n incompleteLine = ''\n }\n\n return {feed, reset}\n}\n\n/**\n * For the given `chunk`, split it into lines according to spec, and return any remaining incomplete line.\n *\n * @param chunk - The chunk to split into lines\n * @returns A tuple containing an array of complete lines, and any remaining incomplete line\n * @internal\n */\nfunction splitLines(chunk: string): [complete: Array<string>, incomplete: string] {\n /**\n * According to the spec, a line is terminated by either:\n * - U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF) character pair\n * - a single U+000A LINE FEED(LF) character not preceded by a U+000D CARRIAGE RETURN(CR) character\n * - a single U+000D CARRIAGE RETURN(CR) character not followed by a U+000A LINE FEED(LF) character\n */\n const lines: Array<string> = []\n let incompleteLine = ''\n let searchIndex = 0\n\n while (searchIndex < chunk.length) {\n // Find next line terminator\n const crIndex = chunk.indexOf('\\r', searchIndex)\n const lfIndex = chunk.indexOf('\\n', searchIndex)\n\n // Determine line end\n let lineEnd = -1\n if (crIndex !== -1 && lfIndex !== -1) {\n // CRLF case\n lineEnd = Math.min(crIndex, lfIndex)\n } else if (crIndex !== -1) {\n lineEnd = crIndex\n } else if (lfIndex !== -1) {\n lineEnd = lfIndex\n }\n\n // Extract line if terminator found\n if (lineEnd === -1) {\n // No terminator found, rest is incomplete\n incompleteLine = chunk.slice(searchIndex)\n break\n } else {\n const line = chunk.slice(searchIndex, lineEnd)\n lines.push(line)\n\n // Move past line terminator\n searchIndex = lineEnd + 1\n if (chunk[searchIndex - 1] === '\\r' && chunk[searchIndex] === '\\n') {\n searchIndex++\n }\n }\n }\n\n return [lines, incompleteLine]\n}\n", "/**\n * An extended version of the `Event` emitted by the `EventSource` object when an error occurs.\n * While the spec does not include any additional properties, we intentionally go beyond the spec\n * and provide some (minimal) additional information to aid in debugging.\n *\n * @public\n */\nexport class ErrorEvent extends Event {\n /**\n * HTTP status code, if this was triggered by an HTTP error\n * Note: this is not part of the spec, but is included for better error handling.\n *\n * @public\n */\n public code?: number | undefined\n\n /**\n * Optional message attached to the error.\n * Note: this is not part of the spec, but is included for better error handling.\n *\n * @public\n */\n public message?: string | undefined\n\n /**\n * Constructs a new `ErrorEvent` instance. This is typically not called directly,\n * but rather emitted by the `EventSource` object when an error occurs.\n *\n * @param type - The type of the event (should be \"error\")\n * @param errorEventInitDict - Optional properties to include in the error event\n */\n constructor(\n type: string,\n errorEventInitDict?: {message?: string | undefined; code?: number | undefined},\n ) {\n super(type)\n this.code = errorEventInitDict?.code ?? undefined\n this.message = errorEventInitDict?.message ?? undefined\n }\n\n /**\n * Node.js \"hides\" the `message` and `code` properties of the `ErrorEvent` instance,\n * when it is `console.log`'ed. This makes it harder to debug errors. To ease debugging,\n * we explicitly include the properties in the `inspect` method.\n *\n * This is automatically called by Node.js when you `console.log` an instance of this class.\n *\n * @param _depth - The current depth\n * @param options - The options passed to `util.inspect`\n * @param inspect - The inspect function to use (prevents having to import it from `util`)\n * @returns A string representation of the error\n */\n [Symbol.for('nodejs.util.inspect.custom')](\n _depth: number,\n options: {colors: boolean},\n inspect: (obj: unknown, inspectOptions: {colors: boolean}) => string,\n ): string {\n return inspect(inspectableError(this), options)\n }\n\n /**\n * Deno \"hides\" the `message` and `code` properties of the `ErrorEvent` instance,\n * when it is `console.log`'ed. This makes it harder to debug errors. To ease debugging,\n * we explicitly include the properties in the `inspect` method.\n *\n * This is automatically called by Deno when you `console.log` an instance of this class.\n *\n * @param inspect - The inspect function to use (prevents having to import it from `util`)\n * @param options - The options passed to `Deno.inspect`\n * @returns A string representation of the error\n */\n [Symbol.for('Deno.customInspect')](\n inspect: (obj: unknown, inspectOptions: {colors: boolean}) => string,\n options: {colors: boolean},\n ): string {\n return inspect(inspectableError(this), options)\n }\n}\n\n/**\n * For environments where DOMException may not exist, we will use a SyntaxError instead.\n * While this isn't strictly according to spec, it is very close.\n *\n * @param message - The message to include in the error\n * @returns A `DOMException` or `SyntaxError` instance\n * @internal\n */\nexport function syntaxError(message: string): SyntaxError {\n // If someone can figure out a way to make this work without depending on DOM/Node.js typings,\n // and without casting to `any`, please send a PR 🙏\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const DomException = (globalThis as any).DOMException\n if (typeof DomException === 'function') {\n return new DomException(message, 'SyntaxError')\n }\n\n return new SyntaxError(message)\n}\n\n/**\n * Flatten an error into a single error message string.\n * Unwraps nested errors and joins them with a comma.\n *\n * @param err - The error to flatten\n * @returns A string representation of the error\n * @internal\n */\nexport function flattenError(err: unknown): string {\n if (!(err instanceof Error)) {\n return `${err}`\n }\n\n if ('errors' in err && Array.isArray(err.errors)) {\n return err.errors.map(flattenError).join(', ')\n }\n\n if ('cause' in err && err.cause instanceof Error) {\n return `${err}: ${flattenError(err.cause)}`\n }\n\n return err.message\n}\n\n/**\n * Convert an `ErrorEvent` instance into a plain object for inspection.\n *\n * @param err - The `ErrorEvent` instance to inspect\n * @returns A plain object representation of the error\n * @internal\n */\nfunction inspectableError(err: ErrorEvent) {\n return {\n type: err.type,\n message: err.message,\n code: err.code,\n defaultPrevented: err.defaultPrevented,\n cancelable: err.cancelable,\n timeStamp: err.timeStamp,\n }\n}\n", "import {createParser, type EventSourceMessage, type EventSourceParser} from 'eventsource-parser'\n\nimport {ErrorEvent, flattenError, syntaxError} from './errors.js'\nimport type {\n AddEventListenerOptions,\n EventListenerOptions,\n EventListenerOrEventListenerObject,\n EventSourceEventMap,\n EventSourceFetchInit,\n EventSourceInit,\n FetchLike,\n FetchLikeResponse,\n} from './types.js'\n\n/**\n * An `EventSource` instance opens a persistent connection to an HTTP server, which sends events\n * in `text/event-stream` format. The connection remains open until closed by calling `.close()`.\n *\n * @public\n * @example\n * ```js\n * const eventSource = new EventSource('https://example.com/stream')\n * eventSource.addEventListener('error', (error) => {\n * console.error(error)\n * })\n * eventSource.addEventListener('message', (event) => {\n * console.log('Received message:', event.data)\n * })\n * ```\n */\nexport class EventSource extends EventTarget {\n /**\n * ReadyState representing an EventSource currently trying to connect\n *\n * @public\n */\n static CONNECTING = 0 as const\n\n /**\n * ReadyState representing an EventSource connection that is open (eg connected)\n *\n * @public\n */\n static OPEN = 1 as const\n\n /**\n * ReadyState representing an EventSource connection that is closed (eg disconnected)\n *\n * @public\n */\n static CLOSED = 2 as const\n\n /**\n * ReadyState representing an EventSource currently trying to connect\n *\n * @public\n */\n readonly CONNECTING = 0 as const\n\n /**\n * ReadyState representing an EventSource connection that is open (eg connected)\n *\n * @public\n */\n readonly OPEN = 1 as const\n\n /**\n * ReadyState representing an EventSource connection that is closed (eg disconnected)\n *\n * @public\n */\n readonly CLOSED = 2 as const\n\n /**\n * Returns the state of this EventSource object's connection. It can have the values described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)\n *\n * Note: typed as `number` instead of `0 | 1 | 2` for compatibility with the `EventSource` interface,\n * defined in the TypeScript `dom` library.\n *\n * @public\n */\n public get readyState(): number {\n return this.#readyState\n }\n\n /**\n * Returns the URL providing the event stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)\n *\n * @public\n */\n public get url(): string {\n return this.#url.href\n }\n\n /**\n * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to \"include\", and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)\n */\n public get withCredentials(): boolean {\n return this.#withCredentials\n }\n\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */\n public get onerror(): ((ev: ErrorEvent) => unknown) | null {\n return this.#onError\n }\n public set onerror(value: ((ev: ErrorEvent) => unknown) | null) {\n this.#onError = value\n }\n\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */\n public get onmessage(): ((ev: MessageEvent) => unknown) | null {\n return this.#onMessage\n }\n public set onmessage(value: ((ev: MessageEvent) => unknown) | null) {\n this.#onMessage = value\n }\n\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */\n public get onopen(): ((ev: Event) => unknown) | null {\n return this.#onOpen\n }\n public set onopen(value: ((ev: Event) => unknown) | null) {\n this.#onOpen = value\n }\n\n override addEventListener<K extends keyof EventSourceEventMap>(\n type: K,\n listener: (this: EventSource, ev: EventSourceEventMap[K]) => unknown,\n options?: boolean | AddEventListenerOptions,\n ): void\n override addEventListener(\n type: string,\n listener: (this: EventSource, event: MessageEvent) => unknown,\n options?: boolean | AddEventListenerOptions,\n ): void\n override addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): void\n override addEventListener(\n type: string,\n listener:\n | ((this: EventSource, event: MessageEvent) => unknown)\n | EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): void {\n const listen = listener as (this: EventSource, event: Event) => unknown\n super.addEventListener(type, listen, options)\n }\n\n override removeEventListener<K extends keyof EventSourceEventMap>(\n type: K,\n listener: (this: EventSource, ev: EventSourceEventMap[K]) => unknown,\n options?: boolean | EventListenerOptions,\n ): void\n override removeEventListener(\n type: string,\n listener: (this: EventSource, event: MessageEvent) => unknown,\n options?: boolean | EventListenerOptions,\n ): void\n override removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void\n override removeEventListener(\n type: string,\n listener:\n | ((this: EventSource, event: MessageEvent) => unknown)\n | EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void {\n const listen = listener as (this: EventSource, event: Event) => unknown\n super.removeEventListener(type, listen, options)\n }\n\n constructor(url: string | URL, eventSourceInitDict?: EventSourceInit) {\n super()\n\n try {\n if (url instanceof URL) {\n this.#url = url\n } else if (typeof url === 'string') {\n this.#url = new URL(url, getBaseURL())\n } else {\n throw new Error('Invalid URL')\n }\n } catch (err) {\n throw syntaxError('An invalid or illegal string was specified')\n }\n\n this.#parser = createParser({\n onEvent: this.#onEvent,\n onRetry: this.#onRetryChange,\n })\n\n this.#readyState = this.CONNECTING\n this.#reconnectInterval = 3000\n this.#fetch = eventSourceInitDict?.fetch ?? globalThis.fetch\n this.#withCredentials = eventSourceInitDict?.withCredentials ?? false\n\n this.#connect()\n }\n\n /**\n * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)\n *\n * @public\n */\n close(): void {\n if (this.#reconnectTimer) clearTimeout(this.#reconnectTimer)\n if (this.#readyState === this.CLOSED) return\n if (this.#controller) this.#controller.abort()\n this.#readyState = this.CLOSED\n this.#controller = undefined\n }\n\n // PRIVATES FOLLOW\n\n /**\n * Current connection state\n *\n * @internal\n */\n #readyState: number\n\n /**\n * Original URL used to connect.\n *\n * Note that this will stay the same even after a redirect.\n *\n * @internal\n */\n #url: URL\n\n /**\n * The destination URL after a redirect. Is reset on reconnection.\n *\n * @internal\n */\n #redirectUrl: URL | undefined\n\n /**\n * Whether to include credentials in the request\n *\n * @internal\n */\n #withCredentials: boolean\n\n /**\n * The fetch implementation to use\n *\n * @internal\n */\n #fetch: FetchLike\n\n /**\n * The reconnection time in milliseconds\n *\n * @internal\n */\n #reconnectInterval: number\n\n /**\n * Reference to an ongoing reconnect attempt, if any\n *\n * @internal\n */\n #reconnectTimer: ReturnType<typeof setTimeout> | undefined\n\n /**\n * The last event ID seen by the EventSource, which will be sent as `Last-Event-ID` in the\n * request headers on a reconnection attempt.\n *\n * @internal\n */\n #lastEventId: string | null = null\n\n /**\n * The AbortController instance used to abort the fetch request\n *\n * @internal\n */\n #controller: AbortController | undefined\n\n /**\n * Instance of an EventSource parser (`eventsource-parser` npm module)\n *\n * @internal\n */\n #parser: EventSourceParser\n\n /**\n * Holds the current error handler, attached through `onerror` property directly.\n * Note that `addEventListener('error', …)` will not be stored here.\n *\n * @internal\n */\n #onError: ((ev: ErrorEvent) => unknown) | null = null\n\n /**\n * Holds the current message handler, attached through `onmessage` property directly.\n * Note that `addEventListener('message', …)` will not be stored here.\n *\n * @internal\n */\n #onMessage: ((ev: MessageEvent) => unknown) | null = null\n\n /**\n * Holds the current open handler, attached through `onopen` property directly.\n * Note that `addEventListener('open', …)` will not be stored here.\n *\n * @internal\n */\n #onOpen: ((ev: Event) => unknown) | null = null\n\n /**\n * Connect to the given URL and start receiving events\n *\n * @internal\n */\n #connect() {\n this.#readyState = this.CONNECTING\n this.#controller = new AbortController()\n\n // Browser tests are failing if we directly call `this.#fetch()`, thus the indirection.\n const fetch = this.#fetch\n fetch(this.#url, this.#getRequestOptions())\n .then(this.#onFetchResponse)\n .catch(this.#onFetchError)\n }\n\n /**\n * Handles the fetch response\n *\n * @param response - The Fetch(ish) response\n * @internal\n */\n #onFetchResponse = async (response: FetchLikeResponse) => {\n this.#parser.reset()\n\n const {body, redirected, status, headers} = response\n\n // [spec] a client can be told to stop reconnecting using the HTTP 204 No Content response code.\n if (status === 204) {\n // We still need to emit an error event - this mirrors the browser behavior,\n // and without it there is no way to tell the user that the connection was closed.\n this.#failConnection('Server sent HTTP 204, not reconnecting', 204)\n this.close()\n return\n }\n\n // [spec] …Event stream requests can be redirected using HTTP 301 and 307 redirects as with\n // [spec] normal HTTP requests.\n // Spec does not say anything about other redirect codes (302, 308), but this seems an\n // unintended omission, rather than a feature. Browsers will happily redirect on other 3xxs's.\n if (redirected) {\n this.#redirectUrl = new URL(response.url)\n } else {\n this.#redirectUrl = undefined\n }\n\n // [spec] if res's status is not 200, …, then fail the connection.\n if (status !== 200) {\n this.#failConnection(`Non-200 status code (${status})`, status)\n return\n }\n\n // [spec] …or if res's `Content-Type` is not `text/event-stream`, then fail the connection.\n const contentType = headers.get('content-type') || ''\n if (!contentType.startsWith('text/event-stream')) {\n this.#failConnection('Invalid content type, expected \"text/event-stream\"', status)\n return\n }\n\n // [spec] …if the readyState attribute is set to a value other than CLOSED…\n if (this.#readyState === this.CLOSED) {\n return\n }\n\n // [spec] …sets the readyState attribute to OPEN and fires an event\n // [spec] …named open at the EventSource object.\n this.#readyState = this.OPEN\n\n const openEvent = new Event('open')\n this.#onOpen?.(openEvent)\n this.dispatchEvent(openEvent)\n\n // Ensure that the response stream is a web stream\n if (typeof body !== 'object' || !body || !('getReader' in body)) {\n this.#failConnection('Invalid response body, expected a web ReadableStream', status)\n this.close() // This should only happen if `fetch` provided is \"faulty\" - don't reconnect\n return\n }\n\n const decoder = new TextDecoder()\n\n const reader = body.getReader()\n let open = true\n\n do {\n const {done, value} = await reader.read()\n if (value) {\n this.#parser.feed(decoder.decode(value, {stream: !done}))\n }\n\n if (!done) {\n continue\n }\n\n open = false\n this.#parser.reset()\n\n this.#scheduleReconnect()\n } while (open)\n }\n\n /**\n * Handles rejected requests for the EventSource endpoint\n *\n * @param err - The error from `fetch()`\n * @internal\n */\n #onFetchError = (err: Error & {type?: string}) => {\n this.#controller = undefined\n\n // We expect abort errors when the user manually calls `close()` - ignore those\n if (err.name === 'AbortError' || err.type === 'aborted') {\n return\n }\n\n this.#scheduleReconnect(flattenError(err))\n }\n\n /**\n * Get request options for the `fetch()` request\n *\n * @returns The request options\n * @internal\n */\n #getRequestOptions(): EventSourceFetchInit {\n const lastEvent = this.#lastEventId ? {'Last-Event-ID': this.#lastEventId} : undefined\n\n const init: EventSourceFetchInit = {\n // [spec] Let `corsAttributeState` be `Anonymous`…\n // [spec] …will have their mode set to \"cors\"…\n mode: 'cors',\n redirect: 'follow',\n headers: {Accept: 'text/event-stream', ...lastEvent},\n cache: 'no-store',\n signal: this.#controller?.signal,\n }\n\n // Some environments crash if attempting to set `credentials` where it is not supported,\n // eg on Cloudflare Workers. To avoid this, we only set it in browser-like environments.\n if ('window' in globalThis) {\n // [spec] …and their credentials mode set to \"same-origin\"\n // [spec] …if the `withCredentials` attribute is `true`, set the credentials mode to \"include\"…\n init.credentials = this.withCredentials ? 'include' : 'same-origin'\n }\n\n return init\n }\n\n /**\n * Called by EventSourceParser instance when an event has successfully been parsed\n * and is ready to be processed.\n *\n * @param event - The parsed event\n * @internal\n */\n #onEvent = (event: EventSourceMessage) => {\n if (typeof event.id === 'string') {\n this.#lastEventId = event.id\n }\n\n const messageEvent = new MessageEvent(event.event || 'message', {\n data: event.data,\n origin: this.#redirectUrl ? this.#redirectUrl.origin : this.#url.origin,\n lastEventId: event.id || '',\n })\n\n // The `onmessage` property of the EventSource instance only triggers on messages without an\n // `event` field, or ones that explicitly set `message`.\n if (this.#onMessage && (!event.event || event.event === 'message')) {\n this.#onMessage(messageEvent)\n }\n\n this.dispatchEvent(messageEvent)\n }\n\n /**\n * Called by EventSourceParser instance when a new reconnection interval is received\n * from the EventSource endpoint.\n *\n * @param value - The new reconnection interval in milliseconds\n * @internal\n */\n #onRetryChange = (value: number) => {\n this.#reconnectInterval = value\n }\n\n /**\n * Handles the process referred to in the EventSource specification as \"failing a connection\".\n *\n * @param error - The error causing the connection to fail\n * @param code - The HTTP status code, if available\n * @internal\n */\n #failConnection(message?: string, code?: number) {\n // [spec] …if the readyState attribute is set to a value other than CLOSED,\n // [spec] sets the readyState attribute to CLOSED…\n if (this.#readyState !== this.CLOSED) {\n this.#readyState = this.CLOSED\n }\n\n // [spec] …and fires an event named `error` at the `EventSource` object.\n // [spec] Once the user agent has failed the connection, it does not attempt to reconnect.\n // [spec] > Implementations are especially encouraged to report detailed information\n // [spec] > to their development consoles whenever an error event is fired, since little\n // [spec] > to no information can be made available in the events themselves.\n // Printing to console is not very programatically helpful, though, so we emit a custom event.\n const errorEvent = new ErrorEvent('error', {code, message})\n\n this.#onError?.(errorEvent)\n this.dispatchEvent(errorEvent)\n }\n\n /**\n * Schedules a reconnection attempt against the EventSource endpoint.\n *\n * @param message - The error causing the connection to fail\n * @param code - The HTTP status code, if available\n * @internal\n */\n #scheduleReconnect(message?: string, code?: number) {\n // [spec] If the readyState attribute is set to CLOSED, abort the task.\n if (this.#readyState === this.CLOSED) {\n return\n }\n\n // [spec] Set the readyState attribute to CONNECTING.\n this.#readyState = this.CONNECTING\n\n // [spec] Fire an event named `error` at the EventSource object.\n const errorEvent = new ErrorEvent('error', {code, message})\n this.#onError?.(errorEvent)\n this.dispatchEvent(errorEvent)\n\n // [spec] Wait a delay equal to the reconnection time of the event source.\n this.#reconnectTimer = setTimeout(this.#reconnect, this.#reconnectInterval)\n }\n\n /**\n * Reconnects to the EventSource endpoint after a disconnect/failure\n *\n * @internal\n */\n #reconnect = () => {\n this.#reconnectTimer = undefined\n\n // [spec] If the EventSource's readyState attribute is not set to CONNECTING, then return.\n if (this.#readyState !== this.CONNECTING) {\n return\n }\n\n this.#connect()\n }\n}\n\n/**\n * According to spec, when constructing a URL:\n * > 1. Let baseURL be environment's base URL, if environment is a Document object\n * > 2. Return the result of applying the URL parser to url, with baseURL.\n *\n * Thus we should use `document.baseURI` if available, since it can be set through a base tag.\n *\n * @returns The base URL, if available - otherwise `undefined`\n * @internal\n */\nfunction getBaseURL(): string | undefined {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const doc = 'document' in globalThis ? (globalThis as any).document : undefined\n return doc && typeof doc === 'object' && 'baseURI' in doc && typeof doc.baseURI === 'string'\n ? doc.baseURI\n : undefined\n}\n", "let crypto;\ncrypto =\n globalThis.crypto?.webcrypto ?? // Node.js [18-16] REPL\n globalThis.crypto ?? // Node.js >18\n import(\"node:crypto\").then(m => m.webcrypto); // Node.js <18 Non-REPL\n/**\n * Creates an array of length `size` of random bytes\n * @param size\n * @returns Array of random ints (0 to 255)\n */\nasync function getRandomValues(size) {\n return (await crypto).getRandomValues(new Uint8Array(size));\n}\n/** Generate cryptographically strong random string\n * @param size The desired length of the string\n * @returns The random string\n */\nasync function random(size) {\n const mask = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~\";\n let result = \"\";\n const randomUints = await getRandomValues(size);\n for (let i = 0; i < size; i++) {\n // cap the value of the randomIndex to mask.length - 1\n const randomIndex = randomUints[i] % mask.length;\n result += mask[randomIndex];\n }\n return result;\n}\n/** Generate a PKCE challenge verifier\n * @param length Length of the verifier\n * @returns A random verifier `length` characters long\n */\nasync function generateVerifier(length) {\n return await random(length);\n}\n/** Generate a PKCE code challenge from a code verifier\n * @param code_verifier\n * @returns The base64 url encoded code challenge\n */\nexport async function generateChallenge(code_verifier) {\n const buffer = await (await crypto).subtle.digest(\"SHA-256\", new TextEncoder().encode(code_verifier));\n // Generate base64url string\n // btoa is deprecated in Node.js but is used here for web browser compatibility\n // (which has no good replacement yet, see also https://github.com/whatwg/html/issues/6811)\n return btoa(String.fromCharCode(...new Uint8Array(buffer)))\n .replace(/\\//g, '_')\n .replace(/\\+/g, '-')\n .replace(/=/g, '');\n}\n/** Generate a PKCE challenge pair\n * @param length Length of the verifer (between 43-128). Defaults to 43.\n * @returns PKCE challenge pair\n */\nexport default async function pkceChallenge(length) {\n if (!length)\n length = 43;\n if (length < 43 || length > 128) {\n throw `Expected a length between 43 and 128. Received ${length}.`;\n }\n const verifier = await generateVerifier(length);\n const challenge = await generateChallenge(verifier);\n return {\n code_verifier: verifier,\n code_challenge: challenge,\n };\n}\n/** Verify that a code_verifier produces the expected code challenge\n * @param code_verifier\n * @param expectedChallenge The code challenge to verify\n * @returns True if challenges are equal. False otherwise.\n */\nexport async function verifyChallenge(code_verifier, expectedChallenge) {\n const actualChallenge = await generateChallenge(code_verifier);\n return actualChallenge === expectedChallenge;\n}\n", null, null, null, null, null, null, "/**\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// @ts-expect-error untyped module\nimport bytes from 'bytes';\nimport type { IncomingMessage } from 'node:http';\n\nexport default function getRawBody(req: IncomingMessage, { limit, encoding }: { limit: string, encoding: BufferEncoding }) {\n const limitNumber = bytes.parse(limit);\n return new Promise<string>((resolve, reject) => {\n let received = 0;\n\n const chunks: Buffer[] = [];\n req.on('data', (chunk: Buffer) => {\n received += chunk.length;\n if (received > limitNumber)\n return reject(new Error(`Message size exceeds limit of ${limit} bytes`));\n chunks.push(chunk);\n });\n req.on('end', () => {\n try {\n resolve(Buffer.concat(chunks).toString(encoding));\n } catch (error) {\n reject(error);\n }\n });\n req.on('error', error => {\n reject(error);\n });\n });\n}\n", null, null, null, null, "import {createParser} from './parse.ts'\nimport type {EventSourceMessage, EventSourceParser} from './types.ts'\n\n/**\n * Options for the EventSourceParserStream.\n *\n * @public\n */\nexport interface StreamOptions {\n /**\n * Behavior when a parsing error occurs.\n *\n * - A custom function can be provided to handle the error.\n * - `'terminate'` will error the stream and stop parsing.\n * - Any other value will ignore the error and continue parsing.\n *\n * @defaultValue `undefined`\n */\n onError?: 'terminate' | ((error: Error) => void)\n\n /**\n * Callback for when a reconnection interval is sent from the server.\n *\n * @param retry - The number of milliseconds to wait before reconnecting.\n */\n onRetry?: (retry: number) => void\n\n /**\n * Callback for when a comment is encountered in the stream.\n *\n * @param comment - The comment encountered in the stream.\n */\n onComment?: (comment: string) => void\n}\n\n/**\n * A TransformStream that ingests a stream of strings and produces a stream of `EventSourceMessage`.\n *\n * @example Basic usage\n * ```\n * const eventStream =\n * response.body\n * .pipeThrough(new TextDecoderStream())\n * .pipeThrough(new EventSourceParserStream())\n * ```\n *\n * @example Terminate stream on parsing errors\n * ```\n * const eventStream =\n * response.body\n * .pipeThrough(new TextDecoderStream())\n * .pipeThrough(new EventSourceParserStream({terminateOnError: true}))\n * ```\n *\n * @public\n */\nexport class EventSourceParserStream extends TransformStream<string, EventSourceMessage> {\n constructor({onError, onRetry, onComment}: StreamOptions = {}) {\n let parser!: EventSourceParser\n\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event)\n },\n onError(error) {\n if (onError === 'terminate') {\n controller.error(error)\n } else if (typeof onError === 'function') {\n onError(error)\n }\n\n // Ignore by default\n },\n onRetry,\n onComment,\n })\n },\n transform(chunk) {\n parser.feed(chunk)\n },\n })\n }\n}\n\nexport {type ErrorType, ParseError} from './errors.ts'\nexport type {EventSourceMessage} from './types.ts'\n", null, "export const ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nexport const jsonDescription = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n }\n catch { }\n }\n return jsonSchema;\n};\nexport const defaultOptions = {\n name: undefined,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n target: \"jsonSchema7\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n markdownDescription: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\",\n openAiAnyTypeName: \"OpenAiAnyType\"\n};\nexport const getDefaultOptions = (options) => (typeof options === \"string\"\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n });\n", "import { getDefaultOptions } from \"./Options.js\";\nexport const getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n flags: { hasReferencedOpenAiAnyType: false },\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ])),\n };\n};\n", "export function addErrorMessage(res, key, errorMessage, refs) {\n if (!refs?.errorMessages)\n return;\n if (errorMessage) {\n res.errorMessage = {\n ...res.errorMessage,\n [key]: errorMessage,\n };\n }\n}\nexport function setResponseValueAndErrors(res, key, value, errorMessage, refs) {\n res[key] = value;\n addErrorMessage(res, key, errorMessage, refs);\n}\n", "export const getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i])\n break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\n", "import { getRelativePath } from \"../getRelativePath.js\";\nexport function parseAnyDef(refs) {\n if (refs.target !== \"openAi\") {\n return {};\n }\n const anyDefinitionPath = [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ];\n refs.flags.hasReferencedOpenAiAnyType = true;\n return {\n $ref: refs.$refStrategy === \"relative\"\n ? getRelativePath(anyDefinitionPath, refs.currentPath)\n : anyDefinitionPath.join(\"/\"),\n };\n}\n", "import { ZodFirstPartyTypeKind } from \"zod\";\nimport { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseArrayDef(def, refs) {\n const res = {\n type: \"array\",\n };\n if (def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n }\n if (def.minLength) {\n setResponseValueAndErrors(res, \"minItems\", def.minLength.value, def.minLength.message, refs);\n }\n if (def.maxLength) {\n setResponseValueAndErrors(res, \"maxItems\", def.maxLength.value, def.maxLength.message, refs);\n }\n if (def.exactLength) {\n setResponseValueAndErrors(res, \"minItems\", def.exactLength.value, def.exactLength.message, refs);\n setResponseValueAndErrors(res, \"maxItems\", def.exactLength.value, def.exactLength.message, refs);\n }\n return res;\n}\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseBigintDef(def, refs) {\n const res = {\n type: \"integer\",\n format: \"int64\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n", "export function parseBooleanDef() {\n return {\n type: \"boolean\",\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport const parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\",\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\",\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\nconst integerDateParser = (def, refs) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\",\n };\n if (refs.target === \"openApi3\") {\n return res;\n }\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minimum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maximum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n }\n }\n return res;\n};\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseDefaultDef(_def, refs) {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\"\n ? parseDef(_def.schema._def, refs)\n : parseAnyDef(refs);\n}\n", "export function parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values),\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nconst isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\")\n return false;\n return \"allOf\" in type;\n};\nexport function parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"1\"],\n }),\n ].filter((x) => !!x);\n let unevaluatedProperties = refs.target === \"jsonSchema2019-09\"\n ? { unevaluatedProperties: false }\n : undefined;\n const mergedAllOf = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n if (schema.unevaluatedProperties === undefined) {\n // If one of the schemas has no unevaluatedProperties set,\n // the merged schema should also have no unevaluatedProperties set\n unevaluatedProperties = undefined;\n }\n }\n else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema &&\n schema.additionalProperties === false) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n else {\n // As soon as one of the schemas has additionalProperties set not to false, we allow unevaluatedProperties\n unevaluatedProperties = undefined;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length\n ? {\n allOf: mergedAllOf,\n ...unevaluatedProperties,\n }\n : undefined;\n}\n", "export function parseLiteralDef(def, refs) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" &&\n parsedType !== \"number\" &&\n parsedType !== \"boolean\" &&\n parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\",\n };\n }\n if (refs.target === \"openApi3\") {\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n enum: [def.value],\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value,\n };\n}\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n /* c8 ignore next */\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n", "import { ZodFirstPartyTypeKind, } from \"zod\";\nimport { parseDef } from \"../parseDef.js\";\nimport { parseStringDef } from \"./string.js\";\nimport { parseBrandedDef } from \"./branded.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseRecordDef(def, refs) {\n if (refs.target === \"openAi\") {\n console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");\n }\n if (refs.target === \"openApi3\" &&\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n type: \"object\",\n required: def.keyType._def.values,\n properties: def.keyType._def.values.reduce((acc, key) => ({\n ...acc,\n [key]: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", key],\n }) ?? parseAnyDef(refs),\n }), {}),\n additionalProperties: refs.rejectedAdditionalProperties,\n };\n }\n const schema = {\n type: \"object\",\n additionalProperties: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? refs.allowedAdditionalProperties,\n };\n if (refs.target === \"openApi3\") {\n return schema;\n }\n if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length) {\n const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n return schema;\n}\n", "import { parseDef } from \"../parseDef.js\";\nimport { parseRecordDef } from \"./record.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"],\n }) || parseAnyDef(refs);\n const values = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"],\n }) || parseAnyDef(refs);\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n", "export function parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n return {\n type: parsedTypes.length === 1\n ? parsedTypes[0] === \"string\"\n ? \"string\"\n : \"number\"\n : [\"string\", \"number\"],\n enum: actualValues,\n };\n}\n", "import { parseAnyDef } from \"./any.js\";\nexport function parseNeverDef(refs) {\n return refs.target === \"openAi\"\n ? undefined\n : {\n not: parseAnyDef({\n ...refs,\n currentPath: [...refs.currentPath, \"not\"],\n }),\n };\n}\n", "export function parseNullDef(refs) {\n return refs.target === \"openApi3\"\n ? {\n enum: [\"null\"],\n nullable: true,\n }\n : {\n type: \"null\",\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport const primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\",\n};\nexport function parseUnionDef(def, refs) {\n if (refs.target === \"openApi3\")\n return asAnyOf(def, refs);\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (options.every((x) => x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length))) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n const types = options.reduce((types, x) => {\n const type = primitiveMappings[x._def.typeName]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n return {\n type: types.length > 1 ? types : types[0],\n };\n }\n else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n // all options literals\n const types = options.reduce((acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null)\n return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n }, []);\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce((acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n }, []),\n };\n }\n }\n else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce((acc, x) => [\n ...acc,\n ...x._def.values.filter((x) => !acc.includes(x)),\n ], []),\n };\n }\n return asAnyOf(def, refs);\n}\nconst asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options)\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`],\n }))\n .filter((x) => !!x &&\n (!refs.strictUnions ||\n (typeof x === \"object\" && Object.keys(x).length > 0)));\n return anyOf.length ? { anyOf } : undefined;\n};\n", "import { parseDef } from \"../parseDef.js\";\nimport { primitiveMappings } from \"./union.js\";\nexport function parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(def.innerType._def.typeName) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n if (refs.target === \"openApi3\") {\n return {\n type: primitiveMappings[def.innerType._def.typeName],\n nullable: true,\n };\n }\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\",\n ],\n };\n }\n if (refs.target === \"openApi3\") {\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath],\n });\n if (base && \"$ref\" in base)\n return { allOf: [base], nullable: true };\n return base && { ...base, nullable: true };\n }\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"],\n });\n return base && { anyOf: [base, { type: \"null\" }] };\n}\n", "import { addErrorMessage, setResponseValueAndErrors, } from \"../errorMessages.js\";\nexport function parseNumberDef(def, refs) {\n const res = {\n type: \"number\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n addErrorMessage(res, \"type\", check.message, refs);\n break;\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseObjectDef(def, refs) {\n const forceOptionalIntoNullable = refs.target === \"openAi\";\n const result = {\n type: \"object\",\n properties: {},\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n let propOptional = safeIsOptional(propDef);\n if (propOptional && forceOptionalIntoNullable) {\n if (propDef._def.typeName === \"ZodOptional\") {\n propDef = propDef._def.innerType;\n }\n if (!propDef.isNullable()) {\n propDef = propDef.nullable();\n }\n propOptional = false;\n }\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName],\n });\n if (parsedDef === undefined) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n });\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\"\n ? refs.allowedAdditionalProperties\n : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n }\n catch {\n return true;\n }\n}\n", "import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport const parseOptionalDef = (def, refs) => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"],\n });\n return innerSchema\n ? {\n anyOf: [\n {\n not: parseAnyDef(refs),\n },\n innerSchema,\n ],\n }\n : parseAnyDef(refs);\n};\n", "import { parseDef } from \"../parseDef.js\";\nexport const parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n }\n else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"],\n });\n return {\n allOf: [a, b].filter((x) => x !== undefined),\n };\n};\n", "import { parseDef } from \"../parseDef.js\";\nexport function parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items,\n };\n if (def.minSize) {\n setResponseValueAndErrors(schema, \"minItems\", def.minSize.value, def.minSize.message, refs);\n }\n if (def.maxSize) {\n setResponseValueAndErrors(schema, \"maxItems\", def.maxSize.value, def.maxSize.message, refs);\n }\n return schema;\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalItems\"],\n }),\n };\n }\n else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n };\n }\n}\n", "import { parseAnyDef } from \"./any.js\";\nexport function parseUndefinedDef(refs) {\n return {\n not: parseAnyDef(refs),\n };\n}\n", "import { parseAnyDef } from \"./any.js\";\nexport function parseUnknownDef(refs) {\n return parseAnyDef(refs);\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport const parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n", "import { ZodFirstPartyTypeKind } from \"zod\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nimport { parseArrayDef } from \"./parsers/array.js\";\nimport { parseBigintDef } from \"./parsers/bigint.js\";\nimport { parseBooleanDef } from \"./parsers/boolean.js\";\nimport { parseBrandedDef } from \"./parsers/branded.js\";\nimport { parseCatchDef } from \"./parsers/catch.js\";\nimport { parseDateDef } from \"./parsers/date.js\";\nimport { parseDefaultDef } from \"./parsers/default.js\";\nimport { parseEffectsDef } from \"./parsers/effects.js\";\nimport { parseEnumDef } from \"./parsers/enum.js\";\nimport { parseIntersectionDef } from \"./parsers/intersection.js\";\nimport { parseLiteralDef } from \"./parsers/literal.js\";\nimport { parseMapDef } from \"./parsers/map.js\";\nimport { parseNativeEnumDef } from \"./parsers/nativeEnum.js\";\nimport { parseNeverDef } from \"./parsers/never.js\";\nimport { parseNullDef } from \"./parsers/null.js\";\nimport { parseNullableDef } from \"./parsers/nullable.js\";\nimport { parseNumberDef } from \"./parsers/number.js\";\nimport { parseObjectDef } from \"./parsers/object.js\";\nimport { parseOptionalDef } from \"./parsers/optional.js\";\nimport { parsePipelineDef } from \"./parsers/pipeline.js\";\nimport { parsePromiseDef } from \"./parsers/promise.js\";\nimport { parseRecordDef } from \"./parsers/record.js\";\nimport { parseSetDef } from \"./parsers/set.js\";\nimport { parseStringDef } from \"./parsers/string.js\";\nimport { parseTupleDef } from \"./parsers/tuple.js\";\nimport { parseUndefinedDef } from \"./parsers/undefined.js\";\nimport { parseUnionDef } from \"./parsers/union.js\";\nimport { parseUnknownDef } from \"./parsers/unknown.js\";\nimport { parseReadonlyDef } from \"./parsers/readonly.js\";\nexport const selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def, refs);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef(refs);\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef(refs);\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def, refs);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef(refs);\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef(refs);\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef(refs);\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n /* c8 ignore next */\n return ((_) => undefined)(typeName);\n }\n};\n", "import { ignoreOverride } from \"./Options.js\";\nimport { selectParser } from \"./selectParser.js\";\nimport { getRelativePath } from \"./getRelativePath.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nexport function parseDef(def, refs, forceResolution = false) {\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: undefined };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema = typeof jsonSchemaOrGetter === \"function\"\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n newItem.jsonSchema = jsonSchema;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema;\n return jsonSchema;\n}\nconst get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n return parseAnyDef(refs);\n }\n return refs.$refStrategy === \"seen\" ? parseAnyDef(refs) : undefined;\n }\n }\n};\nconst addMeta = (def, refs, jsonSchema) => {\n if (def.description) {\n jsonSchema.description = def.description;\n if (refs.markdownDescription) {\n jsonSchema.markdownDescription = def.description;\n }\n }\n return jsonSchema;\n};\n", "import { parseDef } from \"./parseDef.js\";\nimport { getRefs } from \"./Refs.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nconst zodToJsonSchema = (schema, options) => {\n const refs = getRefs(options);\n let definitions = typeof options === \"object\" && options.definitions\n ? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({\n ...acc,\n [name]: parseDef(schema._def, {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, true) ?? parseAnyDef(refs),\n }), {})\n : undefined;\n const name = typeof options === \"string\"\n ? options\n : options?.nameStrategy === \"title\"\n ? undefined\n : options?.name;\n const main = parseDef(schema._def, name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, false) ?? parseAnyDef(refs);\n const title = typeof options === \"object\" &&\n options.name !== undefined &&\n options.nameStrategy === \"title\"\n ? options.name\n : undefined;\n if (title !== undefined) {\n main.title = title;\n }\n if (refs.flags.hasReferencedOpenAiAnyType) {\n if (!definitions) {\n definitions = {};\n }\n if (!definitions[refs.openAiAnyTypeName]) {\n definitions[refs.openAiAnyTypeName] = {\n // Skipping \"object\" as no properties can be defined and additionalProperties must be \"false\"\n type: [\"string\", \"number\", \"integer\", \"boolean\", \"array\", \"null\"],\n items: {\n $ref: refs.$refStrategy === \"relative\"\n ? \"1\"\n : [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ].join(\"/\"),\n },\n };\n }\n }\n const combined = name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === \"relative\" ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join(\"/\"),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n if (refs.target === \"jsonSchema7\") {\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (refs.target === \"jsonSchema2019-09\" || refs.target === \"openAi\") {\n combined.$schema = \"https://json-schema.org/draft/2019-09/schema#\";\n }\n if (refs.target === \"openAi\" &&\n (\"anyOf\" in combined ||\n \"oneOf\" in combined ||\n \"allOf\" in combined ||\n (\"type\" in combined && Array.isArray(combined.type)))) {\n console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");\n }\n return combined;\n};\nexport { zodToJsonSchema };\n"],
5
- "mappings": "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",
6
- "names": ["merge", "sets", "length", "slice", "xl", "x", "join", "subexp", "str", "typeOf", "o", "undefined", "Object", "prototype", "toString", "call", "split", "pop", "shift", "toLowerCase", "toUpperCase", "toArray", "obj", "Array", "setInterval", "assign", "target", "source", "key", "buildExps", "isIRI", "ALPHA$$", "CR$", "DIGIT$$", "DQUOTE$$", "HEXDIG$$", "SP$$", "PCT_ENCODED$", "SUB_DELIMS$$", "RESERVED$$", "GEN_DELIMS$$", "UCSCHAR$$", "SCHEME$", "USERINFO$", "UNRESERVED$$", "DEC_OCTET$", "DEC_OCTET_RELAXED$", "H16$", "LS32$", "IPV4ADDRESS$", "IPV6ADDRESS1$", "IPV6ADDRESS2$", "IPV6ADDRESS3$", "IPV6ADDRESS4$", "IPV6ADDRESS5$", "IPV6ADDRESS6$", "IPV6ADDRESS7$", "IPV6ADDRESS8$", "IPV6ADDRESS9$", "ZONEID$", "IPV6ADDRESS$", "IP_LITERAL$", "IPV6ADDRZ_RELAXED$", "IPVFUTURE$", "HOST$", "REG_NAME$", "PORT$", "AUTHORITY$", "PCHAR$", "SEGMENT$", "SEGMENT_NZ$", "SEGMENT_NZ_NC$", "PATH_ABEMPTY$", "PATH_ABSOLUTE$", "PATH$", "PATH_NOSCHEME$", "PATH_ROOTLESS$", "PATH_EMPTY$", "QUERY$", "IPRIVATE$$", "FRAGMENT$", "HIER_PART$", "URI$", "RELATIVE_PART$", "RELATIVE$", "URI_REFERENCE$", "ABSOLUTE_URI$", "GENERIC_REF$", "RELATIVE_REF$", "ABSOLUTE_REF$", "SAMEDOC_REF$", "AUTHORITY_REF$", "RegExp", "maxInt", "base", "tMin", "tMax", "skew", "damp", "initialBias", "initialN", "delimiter", "regexPunycode", "regexNonASCII", "regexSeparators", "errors", "baseMinusTMin", "floor", "Math", "stringFromCharCode", "String", "fromCharCode", "error", "type", "RangeError", "map", "array", "fn", "result", "mapDomain", "string", "parts", "replace", "labels", "encoded", "ucs2decode", "output", "counter", "value", "charCodeAt", "extra", "push", "ucs2encode", "fromCodePoint", "basicToDigit", "codePoint", "digitToBasic", "digit", "flag", "adapt", "delta", "numPoints", "firstTime", "k", "decode", "input", "inputLength", "i", "n", "bias", "basic", "lastIndexOf", "j", "index", "oldi", "w", "t", "baseMinusT", "out", "splice", "encode", "currentValue", "basicLength", "handledCPCount", "m", "handledCPCountPlusOne", "q", "qMinusT", "toUnicode", "test", "toASCII", "punycode", "SCHEMES", "pctEncChar", "chr", "c", "e", "pctDecChars", "newStr", "il", "parseInt", "substr", "c2", "c3", "_normalizeComponentEncoding", "components", "protocol", "decodeUnreserved", "decStr", "match", "UNRESERVED", "scheme", "PCT_ENCODED", "NOT_SCHEME", "userinfo", "NOT_USERINFO", "host", "NOT_HOST", "path", "NOT_PATH", "NOT_PATH_NOSCHEME", "query", "NOT_QUERY", "fragment", "NOT_FRAGMENT", "_stripLeadingZeros", "_normalizeIPv4", "matches", "IPV4ADDRESS", "address", "_normalizeIPv6", "IPV6ADDRESS", "zone", "reverse", "last", "first", "firstFields", "lastFields", "isLastFieldIPv4Address", "fieldCount", "lastFieldsStart", "fields", "allZeroFields", "reduce", "acc", "field", "lastLongest", "longestZeroFields", "sort", "a", "b", "newHost", "newFirst", "newLast", "URI_PARSE", "NO_MATCH_IS_UNDEFINED", "parse", "uriString", "options", "iri", "IRI_PROTOCOL", "URI_PROTOCOL", "reference", "port", "isNaN", "indexOf", "schemeHandler", "unicodeSupport", "domainHost", "_recomposeAuthority", "uriTokens", "_", "$1", "$2", "RDS1", "RDS2", "RDS3", "RDS5", "removeDotSegments", "im", "s", "Error", "serialize", "authority", "charAt", "absolutePath", "resolveComponents", "relative", "skipNormalization", "tolerant", "resolve", "baseURI", "relativeURI", "schemelessOptions", "normalize", "uri", "equal", "uriA", "uriB", "escapeComponent", "ESCAPE", "unescapeComponent", "handler", "secure", "http", "isSecure", "wsComponents", "resourceName", "ws", "O", "ATEXT$$", "QTEXT$$", "VCHAR$$", "SOME_DELIMS$$", "NOT_LOCAL_PART", "NOT_HFNAME", "NOT_HFVALUE", "mailtoComponents", "to", "unknownHeaders", "headers", "hfields", "hfield", "toAddrs", "subject", "body", "addr", "toAddr", "atIdx", "localPart", "domain", "name", "URN_PARSE", "urnComponents", "nid", "nss", "urnScheme", "uriComponents", "UUID", "uuidComponents", "uuid", "https", "wss", "mailto", "urn", "exports", "module", "exports", "module", "exports", "module", "OK", "exports", "module", "util", "exports", "module", "exports", "module", "util", "exports", "module", "exports", "module", "exports", "module", "$rulesGroup", "$rule", "exports", "module", "util", "localRefs", "baseId", "v", "refVal", "schema", "compile", "exports", "module", "Cache", "exports", "module", "util", "URL", "exports", "module", "exports", "module", "exports", "module", "$sch", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "ref", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "keyword", "dataType", "definition", "i", "require_data", "exports", "module", "exports", "module", "util", "Ajv", "addFormat", "noop", "exports", "module", "bytes", "exports", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "spawn", "util", "objectUtil", "errorUtil", "errorMap", "_a", "_b", "ctx", "result", "_c", "issues", "elements", "processed", "result", "_a", "_b", "r", "ZodFirstPartyTypeKind", "ErrorCode", "_a", "_a", "_b", "_c", "jsonrpcNotification", "_a", "Ajv", "_b", "_c", "isValid", "import_ajv", "_a", "_b", "_c", "Ajv", "isValid", "_a", "_b", "_a", "_b", "codeVerifier", "tokens", "_a", "_a", "_c", "_b", "bytes", "_a", "contentType", "_b", "_c", "process", "spawn", "_a", "_b", "_c", "import_node_process", "process", "_a", "_b", "import_content_type", "import_node_crypto", "MAXIMUM_MESSAGE_SIZE", "_a", "_b", "contentType", "_c", "streamId", "_a", "_b", "_c", "error", "contentType", "_a", "_b", "_c", "emojiRegex", "_a", "_a", "_b", "_c", "types", "x", "base", "_a", "_a", "_a", "name", "schema"]
7
- }