@scalar/openapi-parser 0.22.3 → 0.23.0

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 (34) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +49 -17
  3. package/dist/configuration/index.d.ts +1399 -0
  4. package/dist/configuration/index.d.ts.map +1 -1
  5. package/dist/configuration/index.js +3 -1
  6. package/dist/configuration/index.js.map +2 -2
  7. package/dist/index.d.ts +2 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js.map +2 -2
  10. package/dist/lib/Validator/Validator.d.ts +6 -16
  11. package/dist/lib/Validator/Validator.d.ts.map +1 -1
  12. package/dist/lib/Validator/Validator.js +8 -9
  13. package/dist/lib/Validator/Validator.js.map +2 -2
  14. package/dist/plugins/read-files/read-files.js +1 -1
  15. package/dist/plugins/read-files/read-files.js.map +2 -2
  16. package/dist/schemas/v3.2/schema.d.ts +1401 -0
  17. package/dist/schemas/v3.2/schema.d.ts.map +1 -0
  18. package/dist/schemas/v3.2/schema.js +1505 -0
  19. package/dist/schemas/v3.2/schema.js.map +7 -0
  20. package/dist/utils/dereference.d.ts +7 -2
  21. package/dist/utils/dereference.d.ts.map +1 -1
  22. package/dist/utils/dereference.js +1 -1
  23. package/dist/utils/dereference.js.map +2 -2
  24. package/dist/utils/normalize.js +1 -1
  25. package/dist/utils/normalize.js.map +2 -2
  26. package/dist/utils/openapi/utils/workThroughQueue.d.ts.map +1 -1
  27. package/dist/utils/openapi/utils/workThroughQueue.js +2 -3
  28. package/dist/utils/openapi/utils/workThroughQueue.js.map +2 -2
  29. package/dist/utils/resolve-references.d.ts.map +1 -1
  30. package/dist/utils/resolve-references.js.map +2 -2
  31. package/dist/utils/validate.d.ts.map +1 -1
  32. package/dist/utils/validate.js +13 -9
  33. package/dist/utils/validate.js.map +2 -2
  34. package/package.json +7 -7
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/schemas/v3.2/schema.ts"],
4
+ "sourcesContent": ["export default {\n \"$id\": \"https://spec.openapis.org/oas/3.2/schema/2025-09-17\",\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"description\": \"The description of OpenAPI v3.2.x Documents without Schema Object validation\",\n \"type\": \"object\",\n \"properties\": {\n \"openapi\": {\n \"type\": \"string\",\n \"pattern\": \"^3\\\\.2\\\\.\\\\d+(-.+)?$\"\n },\n \"$self\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\",\n \"$comment\": \"MUST NOT contain a fragment\",\n \"pattern\": \"^[^#]*$\"\n },\n \"info\": {\n \"$ref\": \"#/$defs/info\"\n },\n \"jsonSchemaDialect\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\",\n \"default\": \"https://spec.openapis.org/oas/3.2/dialect/2025-09-17\"\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/server\"\n },\n \"default\": [\n {\n \"url\": \"/\"\n }\n ]\n },\n \"paths\": {\n \"$ref\": \"#/$defs/paths\"\n },\n \"webhooks\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/path-item\"\n }\n },\n \"components\": {\n \"$ref\": \"#/$defs/components\"\n },\n \"security\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/security-requirement\"\n }\n },\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/tag\"\n }\n },\n \"externalDocs\": {\n \"$ref\": \"#/$defs/external-documentation\"\n }\n },\n \"required\": [\"openapi\", \"info\"],\n \"anyOf\": [\n {\n \"required\": [\"paths\"]\n },\n {\n \"required\": [\"components\"]\n },\n {\n \"required\": [\"webhooks\"]\n }\n ],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false,\n \"$defs\": {\n \"info\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#info-object\",\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"termsOfService\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"contact\": {\n \"$ref\": \"#/$defs/contact\"\n },\n \"license\": {\n \"$ref\": \"#/$defs/license\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"title\", \"version\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"contact\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#contact-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"license\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#license-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"required\": [\"name\"],\n \"dependentSchemas\": {\n \"identifier\": {\n \"not\": {\n \"required\": [\"url\"]\n }\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"server\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#server-object\",\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/server-variable\"\n }\n }\n },\n \"required\": [\"url\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"server-variable\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#server-variable-object\",\n \"type\": \"object\",\n \"properties\": {\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1\n },\n \"default\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"default\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"components\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#components-object\",\n \"type\": \"object\",\n \"properties\": {\n \"schemas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$dynamicRef\": \"#meta\"\n }\n },\n \"responses\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/response-or-reference\"\n }\n },\n \"parameters\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/parameter-or-reference\"\n }\n },\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/example-or-reference\"\n }\n },\n \"requestBodies\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/request-body-or-reference\"\n }\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/header-or-reference\"\n }\n },\n \"securitySchemes\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/security-scheme-or-reference\"\n }\n },\n \"links\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/link-or-reference\"\n }\n },\n \"callbacks\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/callbacks-or-reference\"\n }\n },\n \"pathItems\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/path-item\"\n }\n },\n \"mediaTypes\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/media-type-or-reference\"\n }\n }\n },\n \"patternProperties\": {\n \"^(?:schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems|mediaTypes)$\": {\n \"$comment\": \"Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected\",\n \"propertyNames\": {\n \"pattern\": \"^[a-zA-Z0-9._-]+$\"\n }\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"paths\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#paths-object\",\n \"type\": \"object\",\n \"patternProperties\": {\n \"^/\": {\n \"$ref\": \"#/$defs/path-item\"\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"path-item\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#path-item-object\",\n \"type\": \"object\",\n \"properties\": {\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/server\"\n }\n },\n \"parameters\": {\n \"$ref\": \"#/$defs/parameters\"\n },\n \"additionalOperations\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"propertyNames\": {\n \"$comment\": \"RFC9110 restricts methods to \\\"1*tchar\\\" in ABNF\",\n \"pattern\": \"^[a-zA-Z0-9!#$%&'*+.^_`|~-]+$\",\n \"not\": {\n \"enum\": [\"GET\", \"PUT\", \"POST\", \"DELETE\", \"OPTIONS\", \"HEAD\", \"PATCH\", \"TRACE\", \"QUERY\"]\n }\n }\n },\n \"get\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"put\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"post\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"delete\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"options\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"head\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"patch\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"trace\": {\n \"$ref\": \"#/$defs/operation\"\n },\n \"query\": {\n \"$ref\": \"#/$defs/operation\"\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"operation\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#operation-object\",\n \"type\": \"object\",\n \"properties\": {\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"externalDocs\": {\n \"$ref\": \"#/$defs/external-documentation\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"$ref\": \"#/$defs/parameters\"\n },\n \"requestBody\": {\n \"$ref\": \"#/$defs/request-body-or-reference\"\n },\n \"responses\": {\n \"$ref\": \"#/$defs/responses\"\n },\n \"callbacks\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/callbacks-or-reference\"\n }\n },\n \"deprecated\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"security\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/security-requirement\"\n }\n },\n \"servers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/server\"\n }\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"external-documentation\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#external-documentation-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"required\": [\"url\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"parameters\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/parameter-or-reference\"\n },\n \"not\": {\n \"allOf\": [\n {\n \"contains\": {\n \"type\": \"object\",\n \"properties\": {\n \"in\": {\n \"const\": \"query\"\n }\n },\n \"required\": [\"in\"]\n }\n },\n {\n \"contains\": {\n \"type\": \"object\",\n \"properties\": {\n \"in\": {\n \"const\": \"querystring\"\n }\n },\n \"required\": [\"in\"]\n }\n }\n ]\n },\n \"contains\": {\n \"type\": \"object\",\n \"properties\": {\n \"in\": {\n \"const\": \"querystring\"\n }\n },\n \"required\": [\"in\"]\n },\n \"minContains\": 0,\n \"maxContains\": 1\n },\n \"parameter\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#parameter-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"enum\": [\"query\", \"querystring\", \"header\", \"path\", \"cookie\"]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"deprecated\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"schema\": {\n \"$dynamicRef\": \"#meta\"\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\",\n \"minProperties\": 1,\n \"maxProperties\": 1\n }\n },\n \"required\": [\"name\", \"in\"],\n \"oneOf\": [\n {\n \"required\": [\"schema\"]\n },\n {\n \"required\": [\"content\"]\n }\n ],\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/examples\"\n },\n {\n \"$ref\": \"#/$defs/specification-extensions\"\n },\n {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"query\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"allowEmptyValue\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"querystring\"\n }\n }\n },\n \"then\": {\n \"required\": [\"content\"]\n }\n }\n ],\n \"dependentSchemas\": {\n \"schema\": {\n \"properties\": {\n \"style\": {\n \"type\": \"string\"\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query\"\n },\n {\n \"$ref\": \"#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie\"\n },\n {\n \"$ref\": \"#/$defs/styles-for-form\"\n }\n ],\n \"$defs\": {\n \"styles-for-path\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"path\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"style\": {\n \"default\": \"simple\",\n \"enum\": [\"matrix\", \"label\", \"simple\"]\n },\n \"required\": {\n \"const\": true\n }\n },\n \"required\": [\"required\"]\n }\n },\n \"styles-for-header\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"header\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"style\": {\n \"default\": \"simple\",\n \"const\": \"simple\"\n }\n }\n }\n },\n \"styles-for-query\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"query\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"style\": {\n \"default\": \"form\",\n \"enum\": [\"form\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"]\n }\n }\n }\n },\n \"styles-for-cookie\": {\n \"if\": {\n \"properties\": {\n \"in\": {\n \"const\": \"cookie\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"style\": {\n \"default\": \"form\",\n \"enum\": [\"form\", \"cookie\"]\n }\n }\n }\n }\n }\n }\n },\n \"unevaluatedProperties\": false\n },\n \"parameter-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/parameter\"\n }\n },\n \"request-body\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#request-body-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\"\n },\n \"required\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"content\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"request-body-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/request-body\"\n }\n },\n \"content\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#fixed-fields-10\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/media-type-or-reference\"\n },\n \"propertyNames\": {\n \"format\": \"media-range\"\n }\n },\n \"media-type\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#media-type-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"schema\": {\n \"$dynamicRef\": \"#meta\"\n },\n \"itemSchema\": {\n \"$dynamicRef\": \"#meta\"\n },\n \"encoding\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/encoding\"\n }\n },\n \"prefixEncoding\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/encoding\"\n }\n },\n \"itemEncoding\": {\n \"$ref\": \"#/$defs/encoding\"\n }\n },\n \"dependentSchemas\": {\n \"encoding\": {\n \"properties\": {\n \"prefixEncoding\": false,\n \"itemEncoding\": false\n }\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/examples\"\n },\n {\n \"$ref\": \"#/$defs/specification-extensions\"\n }\n ],\n \"unevaluatedProperties\": false\n },\n \"media-type-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/media-type\"\n }\n },\n \"encoding\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#encoding-object\",\n \"type\": \"object\",\n \"properties\": {\n \"contentType\": {\n \"type\": \"string\",\n \"format\": \"media-range\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/header-or-reference\"\n }\n },\n \"style\": {\n \"enum\": [\"form\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"]\n },\n \"explode\": {\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"type\": \"boolean\"\n },\n \"encoding\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/encoding\"\n }\n },\n \"prefixEncoding\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/encoding\"\n }\n },\n \"itemEncoding\": {\n \"$ref\": \"#/$defs/encoding\"\n }\n },\n \"dependentSchemas\": {\n \"encoding\": {\n \"properties\": {\n \"prefixEncoding\": false,\n \"itemEncoding\": false\n }\n },\n \"style\": {\n \"properties\": {\n \"allowReserved\": {\n \"default\": false\n }\n }\n },\n \"explode\": {\n \"properties\": {\n \"style\": {\n \"default\": \"form\"\n },\n \"allowReserved\": {\n \"default\": false\n }\n }\n },\n \"allowReserved\": {\n \"properties\": {\n \"style\": {\n \"default\": \"form\"\n }\n }\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/specification-extensions\"\n },\n {\n \"$ref\": \"#/$defs/styles-for-form\"\n }\n ],\n \"unevaluatedProperties\": false\n },\n \"responses\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#responses-object\",\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"$ref\": \"#/$defs/response-or-reference\"\n }\n },\n \"patternProperties\": {\n \"^[1-5](?:[0-9]{2}|XX)$\": {\n \"$ref\": \"#/$defs/response-or-reference\"\n }\n },\n \"minProperties\": 1,\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false,\n \"if\": {\n \"$comment\": \"either default, or at least one response code property must exist\",\n \"patternProperties\": {\n \"^[1-5](?:[0-9]{2}|XX)$\": false\n }\n },\n \"then\": {\n \"required\": [\"default\"]\n }\n },\n \"response\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#response-object\",\n \"type\": \"object\",\n \"properties\": {\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/header-or-reference\"\n }\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\"\n },\n \"links\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/link-or-reference\"\n }\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"response-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/response\"\n }\n },\n \"callbacks\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#callback-object\",\n \"type\": \"object\",\n \"$ref\": \"#/$defs/specification-extensions\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/path-item\"\n }\n },\n \"callbacks-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/callbacks\"\n }\n },\n \"example\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#example-object\",\n \"type\": \"object\",\n \"properties\": {\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"dataValue\": true,\n \"serializedValue\": {\n \"type\": \"string\"\n },\n \"value\": true,\n \"externalValue\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"allOf\": [\n {\n \"not\": {\n \"required\": [\"value\", \"externalValue\"]\n }\n },\n {\n \"not\": {\n \"required\": [\"value\", \"dataValue\"]\n }\n },\n {\n \"not\": {\n \"required\": [\"value\", \"serializedValue\"]\n }\n },\n {\n \"not\": {\n \"required\": [\"serializedValue\", \"externalValue\"]\n }\n }\n ],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"example-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/example\"\n }\n },\n \"link\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#link-object\",\n \"type\": \"object\",\n \"properties\": {\n \"operationRef\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n },\n \"requestBody\": true,\n \"description\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"$ref\": \"#/$defs/server\"\n }\n },\n \"oneOf\": [\n {\n \"required\": [\"operationRef\"]\n },\n {\n \"required\": [\"operationId\"]\n }\n ],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"link-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/link\"\n }\n },\n \"header\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#header-object\",\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"deprecated\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"schema\": {\n \"$dynamicRef\": \"#meta\"\n },\n \"content\": {\n \"$ref\": \"#/$defs/content\",\n \"minProperties\": 1,\n \"maxProperties\": 1\n }\n },\n \"oneOf\": [\n {\n \"required\": [\"schema\"]\n },\n {\n \"required\": [\"content\"]\n }\n ],\n \"dependentSchemas\": {\n \"schema\": {\n \"properties\": {\n \"style\": {\n \"default\": \"simple\",\n \"const\": \"simple\"\n },\n \"explode\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"allowReserved\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/examples\"\n },\n {\n \"$ref\": \"#/$defs/specification-extensions\"\n }\n ],\n \"unevaluatedProperties\": false\n },\n \"header-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/header\"\n }\n },\n \"tag\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#tag-object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"externalDocs\": {\n \"$ref\": \"#/$defs/external-documentation\"\n },\n \"parent\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"name\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"reference\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#reference-object\",\n \"type\": \"object\",\n \"properties\": {\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n }\n },\n \"schema\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#schema-object\",\n \"$dynamicAnchor\": \"meta\",\n \"type\": [\"object\", \"boolean\"]\n },\n \"security-scheme\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#security-scheme-object\",\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"enum\": [\"apiKey\", \"http\", \"mutualTLS\", \"oauth2\", \"openIdConnect\"]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"deprecated\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"type\"],\n \"allOf\": [\n {\n \"$ref\": \"#/$defs/specification-extensions\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-apikey\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-http\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-http-bearer\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-oauth2\"\n },\n {\n \"$ref\": \"#/$defs/security-scheme/$defs/type-oidc\"\n }\n ],\n \"unevaluatedProperties\": false,\n \"$defs\": {\n \"type-apikey\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"apiKey\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"in\": {\n \"enum\": [\"query\", \"header\", \"cookie\"]\n }\n },\n \"required\": [\"name\", \"in\"]\n }\n },\n \"type-http\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"http\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"scheme\"]\n }\n },\n \"type-http-bearer\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"http\"\n },\n \"scheme\": {\n \"type\": \"string\",\n \"pattern\": \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"\n }\n },\n \"required\": [\"type\", \"scheme\"]\n },\n \"then\": {\n \"properties\": {\n \"bearerFormat\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"type-oauth2\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"oauth2\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"flows\": {\n \"$ref\": \"#/$defs/oauth-flows\"\n },\n \"oauth2MetadataUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"required\": [\"flows\"]\n }\n },\n \"type-oidc\": {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"openIdConnect\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"openIdConnectUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n },\n \"required\": [\"openIdConnectUrl\"]\n }\n }\n }\n },\n \"security-scheme-or-reference\": {\n \"if\": {\n \"type\": \"object\",\n \"required\": [\"$ref\"]\n },\n \"then\": {\n \"$ref\": \"#/$defs/reference\"\n },\n \"else\": {\n \"$ref\": \"#/$defs/security-scheme\"\n }\n },\n \"oauth-flows\": {\n \"type\": \"object\",\n \"properties\": {\n \"implicit\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/implicit\"\n },\n \"password\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/password\"\n },\n \"clientCredentials\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/client-credentials\"\n },\n \"authorizationCode\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/authorization-code\"\n },\n \"deviceAuthorization\": {\n \"$ref\": \"#/$defs/oauth-flows/$defs/device-authorization\"\n }\n },\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false,\n \"$defs\": {\n \"implicit\": {\n \"type\": \"object\",\n \"properties\": {\n \"authorizationUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\"authorizationUrl\", \"scopes\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"password\": {\n \"type\": \"object\",\n \"properties\": {\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\"tokenUrl\", \"scopes\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"client-credentials\": {\n \"type\": \"object\",\n \"properties\": {\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\"tokenUrl\", \"scopes\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"authorization-code\": {\n \"type\": \"object\",\n \"properties\": {\n \"authorizationUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\"authorizationUrl\", \"tokenUrl\", \"scopes\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n },\n \"device-authorization\": {\n \"type\": \"object\",\n \"properties\": {\n \"deviceAuthorizationUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"tokenUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"refreshUrl\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"scopes\": {\n \"$ref\": \"#/$defs/map-of-strings\"\n }\n },\n \"required\": [\"deviceAuthorizationUrl\", \"tokenUrl\", \"scopes\"],\n \"$ref\": \"#/$defs/specification-extensions\",\n \"unevaluatedProperties\": false\n }\n }\n },\n \"security-requirement\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#security-requirement-object\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"specification-extensions\": {\n \"$comment\": \"https://spec.openapis.org/oas/v3.2#specification-extensions\",\n \"patternProperties\": {\n \"^x-\": true\n }\n },\n \"examples\": {\n \"properties\": {\n \"example\": true,\n \"examples\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/example-or-reference\"\n }\n }\n },\n \"not\": {\n \"required\": [\"example\", \"examples\"]\n }\n },\n \"map-of-strings\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"styles-for-form\": {\n \"if\": {\n \"properties\": {\n \"style\": {\n \"const\": \"form\"\n }\n },\n \"required\": [\"style\"]\n },\n \"then\": {\n \"properties\": {\n \"explode\": {\n \"default\": true\n }\n }\n },\n \"else\": {\n \"properties\": {\n \"explode\": {\n \"default\": false\n }\n }\n }\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -2,7 +2,12 @@ import type { AnyApiDefinitionFormat, DereferenceResult, Filesystem } from '../t
2
2
  import { type ResolveReferencesOptions } from './resolve-references.js';
3
3
  export type DereferenceOptions = ResolveReferencesOptions;
4
4
  /**
5
- * Resolves all references in an OpenAPI document
5
+ * Dereferences an API definition or filesystem by resolving all references within the specification.
6
+ *
7
+ * @param value - The API definition or filesystem to dereference.\
8
+ * Can be any supported API definition format or a filesystem object.
9
+ *
10
+ * @param options - Optional options for the dereferencing process.
6
11
  */
7
- export declare function dereference(value: AnyApiDefinitionFormat | Filesystem, options?: DereferenceOptions): Promise<DereferenceResult>;
12
+ export declare function dereference(value: AnyApiDefinitionFormat | Filesystem, options?: DereferenceOptions): DereferenceResult;
8
13
  //# sourceMappingURL=dereference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dereference.d.ts","sourceRoot":"","sources":["../../src/utils/dereference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI1F,OAAO,EAAE,KAAK,wBAAwB,EAAqB,MAAM,sBAAsB,CAAA;AAEvF,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,CAAA;AAEzD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,sBAAsB,GAAG,UAAU,EAC1C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAY5B"}
1
+ {"version":3,"file":"dereference.d.ts","sourceRoot":"","sources":["../../src/utils/dereference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK1F,OAAO,EAAE,KAAK,wBAAwB,EAAqB,MAAM,sBAAsB,CAAA;AAEvF,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,CAAA;AAEzD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,sBAAsB,GAAG,UAAU,EAC1C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,iBAAiB,CAYnB"}
@@ -2,7 +2,7 @@ import { details } from "./details.js";
2
2
  import { getEntrypoint } from "./get-entrypoint.js";
3
3
  import { makeFilesystem } from "./make-filesystem.js";
4
4
  import { resolveReferences } from "./resolve-references.js";
5
- async function dereference(value, options) {
5
+ function dereference(value, options) {
6
6
  const filesystem = makeFilesystem(value);
7
7
  const entrypoint = getEntrypoint(filesystem);
8
8
  const result = resolveReferences(filesystem, options);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/dereference.ts"],
4
- "sourcesContent": ["import type { AnyApiDefinitionFormat, DereferenceResult, Filesystem } from '@/types/index'\nimport { details } from './details'\nimport { getEntrypoint } from './get-entrypoint'\nimport { makeFilesystem } from './make-filesystem'\nimport { type ResolveReferencesOptions, resolveReferences } from './resolve-references'\n\nexport type DereferenceOptions = ResolveReferencesOptions\n\n/**\n * Resolves all references in an OpenAPI document\n */\nexport async function dereference(\n value: AnyApiDefinitionFormat | Filesystem,\n options?: DereferenceOptions,\n): Promise<DereferenceResult> {\n const filesystem = makeFilesystem(value)\n\n const entrypoint = getEntrypoint(filesystem)\n const result = resolveReferences(filesystem, options)\n\n return {\n specification: entrypoint.specification,\n errors: result.errors,\n schema: result.schema,\n ...details(entrypoint.specification),\n }\n}\n"],
5
- "mappings": "AACA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAwC,yBAAyB;AAOjE,eAAsB,YACpB,OACA,SAC4B;AAC5B,QAAM,aAAa,eAAe,KAAK;AAEvC,QAAM,aAAa,cAAc,UAAU;AAC3C,QAAM,SAAS,kBAAkB,YAAY,OAAO;AAEpD,SAAO;AAAA,IACL,eAAe,WAAW;AAAA,IAC1B,QAAQ,OAAO;AAAA,IACf,QAAQ,OAAO;AAAA,IACf,GAAG,QAAQ,WAAW,aAAa;AAAA,EACrC;AACF;",
4
+ "sourcesContent": ["import type { AnyApiDefinitionFormat, DereferenceResult, Filesystem } from '@/types/index'\n\nimport { details } from './details'\nimport { getEntrypoint } from './get-entrypoint'\nimport { makeFilesystem } from './make-filesystem'\nimport { type ResolveReferencesOptions, resolveReferences } from './resolve-references'\n\nexport type DereferenceOptions = ResolveReferencesOptions\n\n/**\n * Dereferences an API definition or filesystem by resolving all references within the specification.\n *\n * @param value - The API definition or filesystem to dereference.\\\n * Can be any supported API definition format or a filesystem object.\n *\n * @param options - Optional options for the dereferencing process.\n */\nexport function dereference(\n value: AnyApiDefinitionFormat | Filesystem,\n options?: DereferenceOptions,\n): DereferenceResult {\n const filesystem = makeFilesystem(value)\n\n const entrypoint = getEntrypoint(filesystem)\n const result = resolveReferences(filesystem, options)\n\n return {\n specification: entrypoint.specification,\n errors: result.errors,\n schema: result.schema,\n ...details(entrypoint.specification),\n }\n}\n"],
5
+ "mappings": "AAEA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAwC,yBAAyB;AAY1D,SAAS,YACd,OACA,SACmB;AACnB,QAAM,aAAa,eAAe,KAAK;AAEvC,QAAM,aAAa,cAAc,UAAU;AAC3C,QAAM,SAAS,kBAAkB,YAAY,OAAO;AAEpD,SAAO;AAAA,IACL,eAAe,WAAW;AAAA,IAC1B,QAAQ,OAAO;AAAA,IACf,QAAQ,OAAO;AAAA,IACf,GAAG,QAAQ,WAAW,aAAa;AAAA,EACrC;AACF;",
6
6
  "names": []
7
7
  }
@@ -10,7 +10,7 @@ function normalize(content) {
10
10
  }
11
11
  try {
12
12
  return JSON.parse(content);
13
- } catch (_error) {
13
+ } catch {
14
14
  const hasColon = /^[^:]+:/.test(content);
15
15
  const isJson = content.slice(0, 50).trimStart().startsWith("{");
16
16
  if (!hasColon || isJson) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/normalize.ts"],
4
- "sourcesContent": ["import type { UnknownObject } from '@scalar/types/utils'\nimport { parse } from 'yaml'\n\nimport type { Filesystem } from '@/types/index'\n\nimport { isFilesystem } from './is-filesystem'\n\n/**\n * Normalize the OpenAPI document (YAML, JSON, object) to a JavaScript object.\n *\n * Doesn't modify the object if it's a `Filesystem` (multiple files) already.\n */\nexport function normalize(content: string | UnknownObject | Filesystem): UnknownObject | Filesystem {\n if (content === null) {\n return undefined\n }\n\n if (typeof content === 'string') {\n if (content.trim() === '') {\n return undefined\n }\n\n try {\n return JSON.parse(content)\n } catch (_error) {\n // Does it look like YAML?\n const hasColon = /^[^:]+:/.test(content)\n const isJson = content.slice(0, 50).trimStart().startsWith('{')\n\n if (!hasColon || isJson) {\n return undefined\n }\n\n return parse(content, {\n maxAliasCount: 10000,\n merge: true,\n })\n }\n }\n\n if (isFilesystem(content)) {\n return content\n }\n\n return content\n}\n"],
5
- "mappings": "AACA,SAAS,aAAa;AAItB,SAAS,oBAAoB;AAOtB,SAAS,UAAU,SAA0E;AAClG,MAAI,YAAY,MAAM;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,QAAI,QAAQ,KAAK,MAAM,IAAI;AACzB,aAAO;AAAA,IACT;AAEA,QAAI;AACF,aAAO,KAAK,MAAM,OAAO;AAAA,IAC3B,SAAS,QAAQ;AAEf,YAAM,WAAW,UAAU,KAAK,OAAO;AACvC,YAAM,SAAS,QAAQ,MAAM,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,GAAG;AAE9D,UAAI,CAAC,YAAY,QAAQ;AACvB,eAAO;AAAA,MACT;AAEA,aAAO,MAAM,SAAS;AAAA,QACpB,eAAe;AAAA,QACf,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,aAAa,OAAO,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;",
4
+ "sourcesContent": ["import type { UnknownObject } from '@scalar/types/utils'\nimport { parse } from 'yaml'\n\nimport type { Filesystem } from '@/types/index'\n\nimport { isFilesystem } from './is-filesystem'\n\n/**\n * Normalize the OpenAPI document (YAML, JSON, object) to a JavaScript object.\n *\n * Doesn't modify the object if it's a `Filesystem` (multiple files) already.\n */\nexport function normalize(content: string | UnknownObject | Filesystem): UnknownObject | Filesystem {\n if (content === null) {\n return undefined\n }\n\n if (typeof content === 'string') {\n if (content.trim() === '') {\n return undefined\n }\n\n try {\n return JSON.parse(content)\n } catch {\n // Does it look like YAML?\n const hasColon = /^[^:]+:/.test(content)\n const isJson = content.slice(0, 50).trimStart().startsWith('{')\n\n if (!hasColon || isJson) {\n return undefined\n }\n\n return parse(content, {\n maxAliasCount: 10000,\n merge: true,\n })\n }\n }\n\n if (isFilesystem(content)) {\n return content\n }\n\n return content\n}\n"],
5
+ "mappings": "AACA,SAAS,aAAa;AAItB,SAAS,oBAAoB;AAOtB,SAAS,UAAU,SAA0E;AAClG,MAAI,YAAY,MAAM;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,QAAI,QAAQ,KAAK,MAAM,IAAI;AACzB,aAAO;AAAA,IACT;AAEA,QAAI;AACF,aAAO,KAAK,MAAM,OAAO;AAAA,IAC3B,QAAQ;AAEN,YAAM,WAAW,UAAU,KAAK,OAAO;AACvC,YAAM,SAAS,QAAQ,MAAM,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,GAAG;AAE9D,UAAI,CAAC,YAAY,QAAQ;AACvB,eAAO;AAAA,MACT;AAEA,aAAO,MAAM,SAAS;AAAA,QACpB,eAAe;AAAA,QACf,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,aAAa,OAAO,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workThroughQueue.d.ts","sourceRoot":"","sources":["../../../../src/utils/openapi/utils/workThroughQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAS,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAOrE;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAqElG"}
1
+ {"version":3,"file":"workThroughQueue.d.ts","sourceRoot":"","sources":["../../../../src/utils/openapi/utils/workThroughQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAO9D;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAkElG"}
@@ -28,7 +28,7 @@ async function workThroughQueue(queue) {
28
28
  } else if (name === "dereference") {
29
29
  result = {
30
30
  ...result,
31
- ...await dereference(currentSpecification, options)
31
+ ...dereference(currentSpecification, options)
32
32
  };
33
33
  } else if (name === "upgrade") {
34
34
  result = {
@@ -41,8 +41,7 @@ async function workThroughQueue(queue) {
41
41
  ...await validate(currentSpecification, options)
42
42
  };
43
43
  } else {
44
- const _ = name;
45
- const nada = _;
44
+ name;
46
45
  }
47
46
  }
48
47
  return result;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/utils/openapi/utils/workThroughQueue.ts"],
4
- "sourcesContent": ["import type { CommandChain, Merge, Queue, Task } from '@/types/index'\nimport { dereference } from '@/utils/dereference'\nimport { filter } from '@/utils/filter'\nimport { load } from '@/utils/load/load'\nimport { upgrade } from '@/utils/upgrade'\nimport { validate } from '@/utils/validate'\n\n/**\n * Takes a queue of tasks and works through them\n */\nexport async function workThroughQueue<T extends Task[]>(queue: Queue<T>): Promise<CommandChain<T>> {\n const { input } = {\n ...queue,\n }\n let result = {} as CommandChain<T>\n\n // Work through the whole queue\n for (const task of queue.tasks) {\n const name: keyof Commands = task.name\n const options: any = 'options' in task ? task.options : undefined\n\n // Use the result of the previous task, or fall back to the original input\n const currentSpecification = result.specification\n ? result.specification\n : typeof input === 'object'\n ? // Detach from the original object\n structuredClone(input)\n : input\n\n // load\n if (name === 'load') {\n result = {\n ...result,\n ...(await load(input, options as Commands['load']['task']['options'])),\n } as Merge<typeof result, Awaited<typeof load>>\n }\n\n // validate\n else if (name === 'filter') {\n result = {\n ...result,\n ...filter(currentSpecification, options as Commands['filter']['task']['options']),\n } as Merge<typeof result, ReturnType<typeof filter>>\n }\n\n // dereference\n else if (name === 'dereference') {\n result = {\n ...result,\n ...(await dereference(currentSpecification, options as Commands['dereference']['task']['options'])),\n } as Merge<typeof result, Awaited<typeof dereference>>\n }\n\n // upgrade\n else if (name === 'upgrade') {\n result = {\n ...result,\n ...upgrade(currentSpecification),\n } as Merge<typeof result, ReturnType<typeof upgrade>>\n }\n\n // validate\n else if (name === 'validate') {\n result = {\n ...result,\n ...(await validate(currentSpecification, options as Commands['validate']['task']['options'])),\n } as Merge<typeof result, Awaited<typeof validate>>\n }\n\n // Make TS complain when we forgot to handle a command.\n else {\n const _: never = name\n\n // @ts-expect-error Needed to allow the unused type to still be checked\n const nada = _\n }\n }\n\n return result\n}\n"],
5
- "mappings": "AACA,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,gBAAgB;AAKzB,eAAsB,iBAAmC,OAA2C;AAClG,QAAM,EAAE,MAAM,IAAI;AAAA,IAChB,GAAG;AAAA,EACL;AACA,MAAI,SAAS,CAAC;AAGd,aAAW,QAAQ,MAAM,OAAO;AAC9B,UAAM,OAAuB,KAAK;AAClC,UAAM,UAAe,aAAa,OAAO,KAAK,UAAU;AAGxD,UAAM,uBAAuB,OAAO,gBAChC,OAAO,gBACP,OAAO,UAAU;AAAA;AAAA,MAEf,gBAAgB,KAAK;AAAA,QACrB;AAGN,QAAI,SAAS,QAAQ;AACnB,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAI,MAAM,KAAK,OAAO,OAA8C;AAAA,MACtE;AAAA,IACF,WAGS,SAAS,UAAU;AAC1B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,OAAO,sBAAsB,OAAgD;AAAA,MAClF;AAAA,IACF,WAGS,SAAS,eAAe;AAC/B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAI,MAAM,YAAY,sBAAsB,OAAqD;AAAA,MACnG;AAAA,IACF,WAGS,SAAS,WAAW;AAC3B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,QAAQ,oBAAoB;AAAA,MACjC;AAAA,IACF,WAGS,SAAS,YAAY;AAC5B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAI,MAAM,SAAS,sBAAsB,OAAkD;AAAA,MAC7F;AAAA,IACF,OAGK;AACH,YAAM,IAAW;AAGjB,YAAM,OAAO;AAAA,IACf;AAAA,EACF;AAEA,SAAO;AACT;",
4
+ "sourcesContent": ["import type { CommandChain, Queue, Task } from '@/types/index'\nimport { dereference } from '@/utils/dereference'\nimport { filter } from '@/utils/filter'\nimport { load } from '@/utils/load/load'\nimport { upgrade } from '@/utils/upgrade'\nimport { validate } from '@/utils/validate'\n\n/**\n * Takes a queue of tasks and works through them\n */\nexport async function workThroughQueue<T extends Task[]>(queue: Queue<T>): Promise<CommandChain<T>> {\n const { input } = {\n ...queue,\n }\n let result = {} as CommandChain<T>\n\n // Work through the whole queue\n for (const task of queue.tasks) {\n const name: keyof Commands = task.name\n const options: any = 'options' in task ? task.options : undefined\n\n // Use the result of the previous task, or fall back to the original input\n const currentSpecification = result.specification\n ? result.specification\n : typeof input === 'object'\n ? // Detach from the original object\n structuredClone(input)\n : input\n\n // load\n if (name === 'load') {\n result = {\n ...result,\n ...(await load(input, options as Commands['load']['task']['options'])),\n }\n }\n\n // validate\n else if (name === 'filter') {\n result = {\n ...result,\n ...filter(currentSpecification, options as Commands['filter']['task']['options']),\n }\n }\n\n // dereference\n else if (name === 'dereference') {\n result = {\n ...result,\n ...dereference(currentSpecification, options as Commands['dereference']['task']['options']),\n }\n }\n\n // upgrade\n else if (name === 'upgrade') {\n result = {\n ...result,\n ...upgrade(currentSpecification),\n }\n }\n\n // validate\n else if (name === 'validate') {\n result = {\n ...result,\n ...(await validate(currentSpecification, options as Commands['validate']['task']['options'])),\n }\n }\n\n // Make TS complain when we forgot to handle a command.\n else {\n name satisfies never\n }\n }\n\n return result\n}\n"],
5
+ "mappings": "AACA,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,gBAAgB;AAKzB,eAAsB,iBAAmC,OAA2C;AAClG,QAAM,EAAE,MAAM,IAAI;AAAA,IAChB,GAAG;AAAA,EACL;AACA,MAAI,SAAS,CAAC;AAGd,aAAW,QAAQ,MAAM,OAAO;AAC9B,UAAM,OAAuB,KAAK;AAClC,UAAM,UAAe,aAAa,OAAO,KAAK,UAAU;AAGxD,UAAM,uBAAuB,OAAO,gBAChC,OAAO,gBACP,OAAO,UAAU;AAAA;AAAA,MAEf,gBAAgB,KAAK;AAAA,QACrB;AAGN,QAAI,SAAS,QAAQ;AACnB,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAI,MAAM,KAAK,OAAO,OAA8C;AAAA,MACtE;AAAA,IACF,WAGS,SAAS,UAAU;AAC1B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,OAAO,sBAAsB,OAAgD;AAAA,MAClF;AAAA,IACF,WAGS,SAAS,eAAe;AAC/B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,YAAY,sBAAsB,OAAqD;AAAA,MAC5F;AAAA,IACF,WAGS,SAAS,WAAW;AAC3B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,QAAQ,oBAAoB;AAAA,MACjC;AAAA,IACF,WAGS,SAAS,YAAY;AAC5B,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAI,MAAM,SAAS,sBAAsB,OAAkD;AAAA,MAC7F;AAAA,IACF,OAGK;AACH;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-references.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAgB5G,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,GAAG;IAC1D;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACnE,CAAA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAE/B,KAAK,EAAE,SAAS,GAAG,UAAU,EAE7B,OAAO,CAAC,EAAE,wBAAwB,EAElC,IAAI,CAAC,EAAE,eAAe,EAEtB,MAAM,GAAE,WAAW,EAAO,GACzB,uBAAuB,CAuCzB"}
1
+ {"version":3,"file":"resolve-references.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAiB5G,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,GAAG;IAC1D;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACnE,CAAA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAE/B,KAAK,EAAE,SAAS,GAAG,UAAU,EAE7B,OAAO,CAAC,EAAE,wBAAwB,EAElC,IAAI,CAAC,EAAE,eAAe,EAEtB,MAAM,GAAE,WAAW,EAAO,GACzB,uBAAuB,CAuCzB"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/resolve-references.ts"],
4
- "sourcesContent": ["import type { OpenAPI } from '@scalar/openapi-types'\n\nimport { ERRORS } from '@/configuration'\nimport type { AnyObject, ErrorObject, Filesystem, FilesystemEntry, ThrowOnErrorOption } from '@/types/index'\nimport { getEntrypoint } from './get-entrypoint'\nimport { getSegmentsFromPath } from './get-segments-from-path'\nimport { isObject } from './is-object'\nimport { makeFilesystem } from './make-filesystem'\n\n// TODO: Add support for all pointer words\n// export const pointerWords = new Set([\n// '$ref',\n// '$id',\n// '$anchor',\n// '$dynamicRef',\n// '$dynamicAnchor',\n// '$schema',\n// ])\n\nexport type ResolveReferencesResult = {\n valid: boolean\n errors: ErrorObject[]\n schema: OpenAPI.Document\n}\n\nexport type ResolveReferencesOptions = ThrowOnErrorOption & {\n /**\n * Fired when dereferenced a schema.\n *\n * Note that for object schemas, its properties may not be dereferenced when the hook is called.\n */\n onDereference?: (data: { schema: AnyObject; ref: string }) => void\n}\n\n/**\n * Takes a specification and resolves all references.\n */\nexport function resolveReferences(\n // Just a specification, or a set of files.\n input: AnyObject | Filesystem,\n // Additional options to control the behaviour\n options?: ResolveReferencesOptions,\n // Fallback to the entrypoint\n file?: FilesystemEntry,\n // Errors that occurred during the process\n errors: ErrorObject[] = [],\n): ResolveReferencesResult {\n // Detach from input\n const clonedInput = structuredClone(input)\n\n // Make it a filesystem, even if it's just one file\n const filesystem = makeFilesystem(clonedInput)\n\n // Get the main file\n const entrypoint = getEntrypoint(filesystem)\n\n const finalInput = file?.specification ?? entrypoint.specification\n\n // Does it look like an OpenAPI document?\n if (!isObject(finalInput)) {\n if (options?.throwOnError) {\n throw new Error(ERRORS.NO_CONTENT)\n }\n\n return {\n valid: false,\n errors,\n schema: finalInput as OpenAPI.Document,\n }\n }\n\n // Recursively resolve all references\n dereference(finalInput, filesystem, file ?? entrypoint, new WeakSet(), errors, options)\n\n // Remove duplicats (according to message) from errors\n errors = errors.filter(\n (error, index, self) => index === self.findIndex((t) => t.message === error.message && t.code === error.code),\n )\n\n // Return the resolved specification\n return {\n valid: errors.length === 0,\n errors,\n schema: finalInput as OpenAPI.Document,\n }\n}\n\n/**\n * Resolves the circular reference to an object and deletes the $ref properties (in-place).\n */\nfunction dereference(\n schema: AnyObject,\n filesystem: Filesystem,\n entrypoint: FilesystemEntry,\n // references to resolved object\n resolvedSchemas: WeakSet<object>,\n // error output\n errors: ErrorObject[],\n\n options?: ResolveReferencesOptions,\n): void {\n if (schema === null || resolvedSchemas.has(schema)) {\n return\n }\n resolvedSchemas.add(schema)\n\n function resolveExternal(externalFile: FilesystemEntry) {\n dereference(externalFile.specification, filesystem, externalFile, resolvedSchemas, errors, options)\n\n return externalFile\n }\n\n while (schema.$ref !== undefined) {\n // Find the referenced content\n const resolved = resolveUri(schema.$ref, options, entrypoint, filesystem, resolveExternal, errors)\n\n // invalid\n if (typeof resolved !== 'object' || resolved === null) {\n break\n }\n const dereferencedRef = schema.$ref\n\n // Get rid of the reference\n delete schema.$ref\n\n for (const key of Object.keys(resolved)) {\n if (schema[key] === undefined) {\n schema[key] = resolved[key]\n }\n }\n\n if (dereferencedRef) {\n options?.onDereference?.({ schema, ref: dereferencedRef })\n }\n }\n\n // Iterate over the whole object\n for (const value of Object.values(schema)) {\n if (typeof value === 'object' && value !== null) {\n dereference(value, filesystem, entrypoint, resolvedSchemas, errors, options)\n }\n }\n}\n\n/**\n * Resolves a URI to a part of the specification\n *\n * The output is not necessarily dereferenced\n */\nfunction resolveUri(\n // 'foobar.json#/foo/bar'\n uri: string,\n options: ResolveReferencesOptions,\n // { filename: './foobar.json '}\n file: FilesystemEntry,\n // [ { filename: './foobar.json '} ]\n filesystem: Filesystem,\n\n // a function to resolve references in external file\n resolve: (file: FilesystemEntry) => FilesystemEntry,\n\n errors: ErrorObject[],\n): AnyObject | undefined {\n // Ignore invalid URIs\n if (typeof uri !== 'string') {\n if (options?.throwOnError) {\n throw new Error(ERRORS.INVALID_REFERENCE.replace('%s', uri))\n }\n\n errors.push({\n code: 'INVALID_REFERENCE',\n message: ERRORS.INVALID_REFERENCE.replace('%s', uri),\n })\n\n return undefined\n }\n\n // Understand the URI\n const [prefix, path] = uri.split('#', 2)\n\n /** Check whether the file is pointing to itself */\n const isDifferentFile = prefix !== file.filename\n\n // External references\n if (prefix && isDifferentFile) {\n const externalReference = filesystem.find((entry) => {\n return entry.filename === prefix\n })\n\n if (!externalReference) {\n if (options?.throwOnError) {\n throw new Error(ERRORS.EXTERNAL_REFERENCE_NOT_FOUND.replace('%s', prefix))\n }\n\n errors.push({\n code: 'EXTERNAL_REFERENCE_NOT_FOUND',\n message: ERRORS.EXTERNAL_REFERENCE_NOT_FOUND.replace('%s', prefix),\n })\n\n return undefined\n }\n // $ref: 'other-file.yaml'\n if (path === undefined) {\n return externalReference.specification\n }\n\n // $ref: 'other-file.yaml#/foo/bar'\n // resolve refs first before accessing properties directly\n return resolveUri(`#${path}`, options, resolve(externalReference), filesystem, resolve, errors)\n }\n\n // Pointers\n const segments = getSegmentsFromPath(path)\n\n // Try to find the URI\n try {\n return segments.reduce((acc, key) => {\n return acc[key]\n }, file.specification)\n } catch (_error) {\n if (options?.throwOnError) {\n throw new Error(ERRORS.INVALID_REFERENCE.replace('%s', uri))\n }\n\n errors.push({\n code: 'INVALID_REFERENCE',\n message: ERRORS.INVALID_REFERENCE.replace('%s', uri),\n })\n }\n\n return undefined\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { OpenAPI } from '@scalar/openapi-types'\n\nimport { ERRORS } from '@/configuration'\nimport type { AnyObject, ErrorObject, Filesystem, FilesystemEntry, ThrowOnErrorOption } from '@/types/index'\n\nimport { getEntrypoint } from './get-entrypoint'\nimport { getSegmentsFromPath } from './get-segments-from-path'\nimport { isObject } from './is-object'\nimport { makeFilesystem } from './make-filesystem'\n\n// TODO: Add support for all pointer words\n// export const pointerWords = new Set([\n// '$ref',\n// '$id',\n// '$anchor',\n// '$dynamicRef',\n// '$dynamicAnchor',\n// '$schema',\n// ])\n\nexport type ResolveReferencesResult = {\n valid: boolean\n errors: ErrorObject[]\n schema: OpenAPI.Document\n}\n\nexport type ResolveReferencesOptions = ThrowOnErrorOption & {\n /**\n * Fired when dereferenced a schema.\n *\n * Note that for object schemas, its properties may not be dereferenced when the hook is called.\n */\n onDereference?: (data: { schema: AnyObject; ref: string }) => void\n}\n\n/**\n * Takes a specification and resolves all references.\n */\nexport function resolveReferences(\n // Just a specification, or a set of files.\n input: AnyObject | Filesystem,\n // Additional options to control the behaviour\n options?: ResolveReferencesOptions,\n // Fallback to the entrypoint\n file?: FilesystemEntry,\n // Errors that occurred during the process\n errors: ErrorObject[] = [],\n): ResolveReferencesResult {\n // Detach from input\n const clonedInput = structuredClone(input)\n\n // Make it a filesystem, even if it's just one file\n const filesystem = makeFilesystem(clonedInput)\n\n // Get the main file\n const entrypoint = getEntrypoint(filesystem)\n\n const finalInput = file?.specification ?? entrypoint.specification\n\n // Does it look like an OpenAPI document?\n if (!isObject(finalInput)) {\n if (options?.throwOnError) {\n throw new Error(ERRORS.NO_CONTENT)\n }\n\n return {\n valid: false,\n errors,\n schema: finalInput as OpenAPI.Document,\n }\n }\n\n // Recursively resolve all references\n dereference(finalInput, filesystem, file ?? entrypoint, new WeakSet(), errors, options)\n\n // Remove duplicates (according to message) from errors\n errors = errors.filter(\n (error, index, self) => index === self.findIndex((t) => t.message === error.message && t.code === error.code),\n )\n\n // Return the resolved specification\n return {\n valid: errors.length === 0,\n errors,\n schema: finalInput as OpenAPI.Document,\n }\n}\n\n/**\n * Resolves the circular reference to an object and deletes the $ref properties (in-place).\n */\nfunction dereference(\n schema: AnyObject,\n filesystem: Filesystem,\n entrypoint: FilesystemEntry,\n // references to resolved object\n resolvedSchemas: WeakSet<object>,\n // error output\n errors: ErrorObject[],\n\n options?: ResolveReferencesOptions,\n): void {\n if (schema === null || resolvedSchemas.has(schema)) {\n return\n }\n resolvedSchemas.add(schema)\n\n function resolveExternal(externalFile: FilesystemEntry) {\n dereference(externalFile.specification, filesystem, externalFile, resolvedSchemas, errors, options)\n\n return externalFile\n }\n\n while (schema.$ref !== undefined) {\n // Find the referenced content\n const resolved = resolveUri(schema.$ref, options, entrypoint, filesystem, resolveExternal, errors)\n\n // invalid\n if (typeof resolved !== 'object' || resolved === null) {\n break\n }\n const dereferencedRef = schema.$ref\n\n // Get rid of the reference\n delete schema.$ref\n\n for (const key of Object.keys(resolved)) {\n if (schema[key] === undefined) {\n schema[key] = resolved[key]\n }\n }\n\n if (dereferencedRef) {\n options?.onDereference?.({ schema, ref: dereferencedRef })\n }\n }\n\n // Iterate over the whole object\n for (const value of Object.values(schema)) {\n if (typeof value === 'object' && value !== null) {\n dereference(value, filesystem, entrypoint, resolvedSchemas, errors, options)\n }\n }\n}\n\n/**\n * Resolves a URI to a part of the specification\n *\n * The output is not necessarily dereferenced\n */\nfunction resolveUri(\n // 'foobar.json#/foo/bar'\n uri: string,\n options: ResolveReferencesOptions,\n // { filename: './foobar.json '}\n file: FilesystemEntry,\n // [ { filename: './foobar.json '} ]\n filesystem: Filesystem,\n\n // a function to resolve references in external file\n resolve: (file: FilesystemEntry) => FilesystemEntry,\n\n errors: ErrorObject[],\n): AnyObject | undefined {\n // Ignore invalid URIs\n if (typeof uri !== 'string') {\n if (options?.throwOnError) {\n throw new Error(ERRORS.INVALID_REFERENCE.replace('%s', uri))\n }\n\n errors.push({\n code: 'INVALID_REFERENCE',\n message: ERRORS.INVALID_REFERENCE.replace('%s', uri),\n })\n\n return undefined\n }\n\n // Understand the URI\n const [prefix, path] = uri.split('#', 2)\n\n /** Check whether the file is pointing to itself */\n const isDifferentFile = prefix !== file.filename\n\n // External references\n if (prefix && isDifferentFile) {\n const externalReference = filesystem.find((entry) => {\n return entry.filename === prefix\n })\n\n if (!externalReference) {\n if (options?.throwOnError) {\n throw new Error(ERRORS.EXTERNAL_REFERENCE_NOT_FOUND.replace('%s', prefix))\n }\n\n errors.push({\n code: 'EXTERNAL_REFERENCE_NOT_FOUND',\n message: ERRORS.EXTERNAL_REFERENCE_NOT_FOUND.replace('%s', prefix),\n })\n\n return undefined\n }\n // $ref: 'other-file.yaml'\n if (path === undefined) {\n return externalReference.specification\n }\n\n // $ref: 'other-file.yaml#/foo/bar'\n // resolve refs first before accessing properties directly\n return resolveUri(`#${path}`, options, resolve(externalReference), filesystem, resolve, errors)\n }\n\n // Pointers\n const segments = getSegmentsFromPath(path)\n\n // Try to find the URI\n try {\n return segments.reduce((acc, key) => {\n return acc[key]\n }, file.specification)\n } catch (_error) {\n if (options?.throwOnError) {\n throw new Error(ERRORS.INVALID_REFERENCE.replace('%s', uri))\n }\n\n errors.push({\n code: 'INVALID_REFERENCE',\n message: ERRORS.INVALID_REFERENCE.replace('%s', uri),\n })\n }\n\n return undefined\n}\n"],
5
+ "mappings": "AAEA,SAAS,cAAc;AAGvB,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AA8BxB,SAAS,kBAEd,OAEA,SAEA,MAEA,SAAwB,CAAC,GACA;AAEzB,QAAM,cAAc,gBAAgB,KAAK;AAGzC,QAAM,aAAa,eAAe,WAAW;AAG7C,QAAM,aAAa,cAAc,UAAU;AAE3C,QAAM,aAAa,MAAM,iBAAiB,WAAW;AAGrD,MAAI,CAAC,SAAS,UAAU,GAAG;AACzB,QAAI,SAAS,cAAc;AACzB,YAAM,IAAI,MAAM,OAAO,UAAU;AAAA,IACnC;AAEA,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,EACF;AAGA,cAAY,YAAY,YAAY,QAAQ,YAAY,oBAAI,QAAQ,GAAG,QAAQ,OAAO;AAGtF,WAAS,OAAO;AAAA,IACd,CAAC,OAAO,OAAO,SAAS,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,YAAY,MAAM,WAAW,EAAE,SAAS,MAAM,IAAI;AAAA,EAC9G;AAGA,SAAO;AAAA,IACL,OAAO,OAAO,WAAW;AAAA,IACzB;AAAA,IACA,QAAQ;AAAA,EACV;AACF;AAKA,SAAS,YACP,QACA,YACA,YAEA,iBAEA,QAEA,SACM;AACN,MAAI,WAAW,QAAQ,gBAAgB,IAAI,MAAM,GAAG;AAClD;AAAA,EACF;AACA,kBAAgB,IAAI,MAAM;AAE1B,WAAS,gBAAgB,cAA+B;AACtD,gBAAY,aAAa,eAAe,YAAY,cAAc,iBAAiB,QAAQ,OAAO;AAElG,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,SAAS,QAAW;AAEhC,UAAM,WAAW,WAAW,OAAO,MAAM,SAAS,YAAY,YAAY,iBAAiB,MAAM;AAGjG,QAAI,OAAO,aAAa,YAAY,aAAa,MAAM;AACrD;AAAA,IACF;AACA,UAAM,kBAAkB,OAAO;AAG/B,WAAO,OAAO;AAEd,eAAW,OAAO,OAAO,KAAK,QAAQ,GAAG;AACvC,UAAI,OAAO,GAAG,MAAM,QAAW;AAC7B,eAAO,GAAG,IAAI,SAAS,GAAG;AAAA,MAC5B;AAAA,IACF;AAEA,QAAI,iBAAiB;AACnB,eAAS,gBAAgB,EAAE,QAAQ,KAAK,gBAAgB,CAAC;AAAA,IAC3D;AAAA,EACF;AAGA,aAAW,SAAS,OAAO,OAAO,MAAM,GAAG;AACzC,QAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,kBAAY,OAAO,YAAY,YAAY,iBAAiB,QAAQ,OAAO;AAAA,IAC7E;AAAA,EACF;AACF;AAOA,SAAS,WAEP,KACA,SAEA,MAEA,YAGA,SAEA,QACuB;AAEvB,MAAI,OAAO,QAAQ,UAAU;AAC3B,QAAI,SAAS,cAAc;AACzB,YAAM,IAAI,MAAM,OAAO,kBAAkB,QAAQ,MAAM,GAAG,CAAC;AAAA,IAC7D;AAEA,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS,OAAO,kBAAkB,QAAQ,MAAM,GAAG;AAAA,IACrD,CAAC;AAED,WAAO;AAAA,EACT;AAGA,QAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,KAAK,CAAC;AAGvC,QAAM,kBAAkB,WAAW,KAAK;AAGxC,MAAI,UAAU,iBAAiB;AAC7B,UAAM,oBAAoB,WAAW,KAAK,CAAC,UAAU;AACnD,aAAO,MAAM,aAAa;AAAA,IAC5B,CAAC;AAED,QAAI,CAAC,mBAAmB;AACtB,UAAI,SAAS,cAAc;AACzB,cAAM,IAAI,MAAM,OAAO,6BAA6B,QAAQ,MAAM,MAAM,CAAC;AAAA,MAC3E;AAEA,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,SAAS,OAAO,6BAA6B,QAAQ,MAAM,MAAM;AAAA,MACnE,CAAC;AAED,aAAO;AAAA,IACT;AAEA,QAAI,SAAS,QAAW;AACtB,aAAO,kBAAkB;AAAA,IAC3B;AAIA,WAAO,WAAW,IAAI,IAAI,IAAI,SAAS,QAAQ,iBAAiB,GAAG,YAAY,SAAS,MAAM;AAAA,EAChG;AAGA,QAAM,WAAW,oBAAoB,IAAI;AAGzC,MAAI;AACF,WAAO,SAAS,OAAO,CAAC,KAAK,QAAQ;AACnC,aAAO,IAAI,GAAG;AAAA,IAChB,GAAG,KAAK,aAAa;AAAA,EACvB,SAAS,QAAQ;AACf,QAAI,SAAS,cAAc;AACzB,YAAM,IAAI,MAAM,OAAO,kBAAkB,QAAQ,MAAM,GAAG,CAAC;AAAA,IAC7D;AAEA,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS,OAAO,kBAAkB,QAAQ,MAAM,GAAG;AAAA,IACrD,CAAC;AAAA,EACH;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9F,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAA;AAEhD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,EACtC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAWzB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9F,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAA;AAEhD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBnH"}
@@ -1,14 +1,18 @@
1
1
  import { Validator } from "../lib/Validator/Validator.js";
2
2
  import { makeFilesystem } from "./make-filesystem.js";
3
- async function validate(value, options) {
4
- const filesystem = makeFilesystem(value);
5
- const validator = new Validator();
6
- const result = await validator.validate(filesystem, options);
7
- return {
8
- ...result,
9
- specification: validator.specification,
10
- version: validator.version
11
- };
3
+ function validate(value, options) {
4
+ try {
5
+ const filesystem = makeFilesystem(value);
6
+ const validator = new Validator();
7
+ const result = validator.validate(filesystem, options);
8
+ return Promise.resolve({
9
+ ...result,
10
+ specification: validator.specification,
11
+ version: validator.version
12
+ });
13
+ } catch (err) {
14
+ return Promise.reject(err);
15
+ }
12
16
  }
13
17
  export {
14
18
  validate
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/validate.ts"],
4
- "sourcesContent": ["import type { OpenAPI } from '@scalar/openapi-types'\n\nimport { Validator } from '@/lib/Validator/Validator'\nimport type { AnyObject, Filesystem, ThrowOnErrorOption, ValidateResult } from '@/types/index'\nimport { makeFilesystem } from './make-filesystem'\n\nexport type ValidateOptions = ThrowOnErrorOption\n\n/**\n * Validates an OpenAPI document\n */\nexport async function validate(\n value: string | AnyObject | Filesystem,\n options?: ValidateOptions,\n): Promise<ValidateResult> {\n const filesystem = makeFilesystem(value)\n\n const validator = new Validator()\n const result = await validator.validate(filesystem, options)\n\n return {\n ...result,\n specification: validator.specification as OpenAPI.Document,\n version: validator.version,\n }\n}\n"],
5
- "mappings": "AAEA,SAAS,iBAAiB;AAE1B,SAAS,sBAAsB;AAO/B,eAAsB,SACpB,OACA,SACyB;AACzB,QAAM,aAAa,eAAe,KAAK;AAEvC,QAAM,YAAY,IAAI,UAAU;AAChC,QAAM,SAAS,MAAM,UAAU,SAAS,YAAY,OAAO;AAE3D,SAAO;AAAA,IACL,GAAG;AAAA,IACH,eAAe,UAAU;AAAA,IACzB,SAAS,UAAU;AAAA,EACrB;AACF;",
4
+ "sourcesContent": ["import type { OpenAPI } from '@scalar/openapi-types'\n\nimport { Validator } from '@/lib/Validator/Validator'\nimport type { AnyObject, Filesystem, ThrowOnErrorOption, ValidateResult } from '@/types/index'\n\nimport { makeFilesystem } from './make-filesystem'\n\nexport type ValidateOptions = ThrowOnErrorOption\n\n/**\n * Validates an OpenAPI document\n */\nexport function validate(value: string | AnyObject | Filesystem, options?: ValidateOptions): Promise<ValidateResult> {\n try {\n const filesystem = makeFilesystem(value)\n\n const validator = new Validator()\n const result = validator.validate(filesystem, options)\n\n /**\n * Currently contains no asynchronous logic, but returns a Promise\n * to preserve API compatibility and allow async logic in the future.\n */\n return Promise.resolve({\n ...result,\n specification: validator.specification as OpenAPI.Document,\n version: validator.version,\n })\n } catch (err) {\n return Promise.reject(err)\n }\n}\n"],
5
+ "mappings": "AAEA,SAAS,iBAAiB;AAG1B,SAAS,sBAAsB;AAOxB,SAAS,SAAS,OAAwC,SAAoD;AACnH,MAAI;AACF,UAAM,aAAa,eAAe,KAAK;AAEvC,UAAM,YAAY,IAAI,UAAU;AAChC,UAAM,SAAS,UAAU,SAAS,YAAY,OAAO;AAMrD,WAAO,QAAQ,QAAQ;AAAA,MACrB,GAAG;AAAA,MACH,eAAe,UAAU;AAAA,MACzB,SAAS,UAAU;AAAA,IACrB,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,WAAO,QAAQ,OAAO,GAAG;AAAA,EAC3B;AACF;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "parser",
18
18
  "typescript"
19
19
  ],
20
- "version": "0.22.3",
20
+ "version": "0.23.0",
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
@@ -54,9 +54,9 @@
54
54
  "jsonpointer": "^5.0.1",
55
55
  "leven": "^4.0.0",
56
56
  "yaml": "2.8.0",
57
- "@scalar/json-magic": "0.6.1",
58
- "@scalar/openapi-upgrader": "0.1.3",
59
- "@scalar/openapi-types": "0.5.0"
57
+ "@scalar/openapi-types": "0.5.1",
58
+ "@scalar/json-magic": "0.7.0",
59
+ "@scalar/openapi-upgrader": "0.1.4"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@apidevtools/swagger-parser": "10.1.0",
@@ -65,9 +65,9 @@
65
65
  "json-to-ast": "^2.1.0",
66
66
  "just-diff": "^6.0.2",
67
67
  "tinybench": "^2.8.0",
68
- "vite": "7.1.5",
69
- "@scalar/build-tooling": "0.2.7",
70
- "@scalar/types": "0.3.2"
68
+ "vite": "7.1.11",
69
+ "@scalar/build-tooling": "0.2.8",
70
+ "@scalar/types": "0.4.0"
71
71
  },
72
72
  "scripts": {
73
73
  "build": "scalar-build-esbuild",