@speclynx/apidom-reference 4.0.2 → 4.0.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.
- package/CHANGELOG.md +6 -0
- package/package.json +26 -27
- package/src/File.cjs +50 -0
- package/src/File.mjs +44 -0
- package/src/File.ts +63 -0
- package/src/Reference.cjs +31 -0
- package/src/Reference.mjs +27 -0
- package/src/Reference.ts +38 -0
- package/src/ReferenceSet.cjs +60 -0
- package/src/ReferenceSet.mjs +57 -0
- package/src/ReferenceSet.ts +73 -0
- package/src/bundle/index.cjs +61 -0
- package/src/bundle/index.mjs +55 -0
- package/src/bundle/index.ts +57 -0
- package/src/bundle/strategies/BundleStrategy.cjs +20 -0
- package/src/bundle/strategies/BundleStrategy.mjs +16 -0
- package/src/bundle/strategies/BundleStrategy.ts +27 -0
- package/src/bundle/strategies/openapi-3-1/index.cjs +35 -0
- package/src/bundle/strategies/openapi-3-1/index.mjs +29 -0
- package/src/bundle/strategies/openapi-3-1/index.ts +57 -0
- package/src/configuration/empty.cjs +9 -0
- package/src/configuration/empty.mjs +1 -0
- package/src/configuration/empty.ts +1 -0
- package/src/configuration/saturated.cjs +88 -0
- package/src/configuration/saturated.mjs +80 -0
- package/src/configuration/saturated.ts +72 -0
- package/src/dereference/index.cjs +90 -0
- package/src/dereference/index.mjs +83 -0
- package/src/dereference/index.ts +96 -0
- package/src/dereference/strategies/DereferenceStrategy.cjs +20 -0
- package/src/dereference/strategies/DereferenceStrategy.mjs +16 -0
- package/src/dereference/strategies/DereferenceStrategy.ts +27 -0
- package/src/dereference/strategies/apidom/index.cjs +89 -0
- package/src/dereference/strategies/apidom/index.mjs +83 -0
- package/src/dereference/strategies/apidom/index.ts +128 -0
- package/src/dereference/strategies/apidom/selectors/element-id.cjs +47 -0
- package/src/dereference/strategies/apidom/selectors/element-id.mjs +41 -0
- package/src/dereference/strategies/apidom/selectors/element-id.ts +48 -0
- package/src/dereference/strategies/apidom/visitor.cjs +266 -0
- package/src/dereference/strategies/apidom/visitor.mjs +259 -0
- package/src/dereference/strategies/apidom/visitor.ts +316 -0
- package/src/dereference/strategies/arazzo-1/index.cjs +109 -0
- package/src/dereference/strategies/arazzo-1/index.mjs +100 -0
- package/src/dereference/strategies/arazzo-1/index.ts +158 -0
- package/src/dereference/strategies/arazzo-1/selectors/$anchor.cjs +12 -0
- package/src/dereference/strategies/arazzo-1/selectors/$anchor.mjs +1 -0
- package/src/dereference/strategies/arazzo-1/selectors/$anchor.ts +9 -0
- package/src/dereference/strategies/arazzo-1/selectors/uri.cjs +8 -0
- package/src/dereference/strategies/arazzo-1/selectors/uri.mjs +1 -0
- package/src/dereference/strategies/arazzo-1/selectors/uri.ts +5 -0
- package/src/dereference/strategies/arazzo-1/source-descriptions.cjs +248 -0
- package/src/dereference/strategies/arazzo-1/source-descriptions.mjs +243 -0
- package/src/dereference/strategies/arazzo-1/source-descriptions.ts +317 -0
- package/src/dereference/strategies/arazzo-1/util.cjs +37 -0
- package/src/dereference/strategies/arazzo-1/util.mjs +29 -0
- package/src/dereference/strategies/arazzo-1/util.ts +33 -0
- package/src/dereference/strategies/arazzo-1/visitor.cjs +507 -0
- package/src/dereference/strategies/arazzo-1/visitor.mjs +500 -0
- package/src/dereference/strategies/arazzo-1/visitor.ts +574 -0
- package/src/dereference/strategies/asyncapi-2/index.cjs +94 -0
- package/src/dereference/strategies/asyncapi-2/index.mjs +88 -0
- package/src/dereference/strategies/asyncapi-2/index.ts +133 -0
- package/src/dereference/strategies/asyncapi-2/visitor.cjs +501 -0
- package/src/dereference/strategies/asyncapi-2/visitor.mjs +494 -0
- package/src/dereference/strategies/asyncapi-2/visitor.ts +589 -0
- package/src/dereference/strategies/openapi-2/index.cjs +96 -0
- package/src/dereference/strategies/openapi-2/index.mjs +90 -0
- package/src/dereference/strategies/openapi-2/index.ts +136 -0
- package/src/dereference/strategies/openapi-2/visitor.cjs +629 -0
- package/src/dereference/strategies/openapi-2/visitor.mjs +622 -0
- package/src/dereference/strategies/openapi-2/visitor.ts +745 -0
- package/src/dereference/strategies/openapi-3-0/index.cjs +96 -0
- package/src/dereference/strategies/openapi-3-0/index.mjs +90 -0
- package/src/dereference/strategies/openapi-3-0/index.ts +134 -0
- package/src/dereference/strategies/openapi-3-0/visitor.cjs +622 -0
- package/src/dereference/strategies/openapi-3-0/visitor.mjs +615 -0
- package/src/dereference/strategies/openapi-3-0/visitor.ts +760 -0
- package/src/dereference/strategies/openapi-3-1/index.cjs +99 -0
- package/src/dereference/strategies/openapi-3-1/index.mjs +90 -0
- package/src/dereference/strategies/openapi-3-1/index.ts +141 -0
- package/src/dereference/strategies/openapi-3-1/selectors/$anchor.cjs +65 -0
- package/src/dereference/strategies/openapi-3-1/selectors/$anchor.mjs +54 -0
- package/src/dereference/strategies/openapi-3-1/selectors/$anchor.ts +64 -0
- package/src/dereference/strategies/openapi-3-1/selectors/uri.cjs +50 -0
- package/src/dereference/strategies/openapi-3-1/selectors/uri.mjs +42 -0
- package/src/dereference/strategies/openapi-3-1/selectors/uri.ts +54 -0
- package/src/dereference/strategies/openapi-3-1/util.cjs +68 -0
- package/src/dereference/strategies/openapi-3-1/util.mjs +59 -0
- package/src/dereference/strategies/openapi-3-1/util.ts +83 -0
- package/src/dereference/strategies/openapi-3-1/visitor.cjs +874 -0
- package/src/dereference/strategies/openapi-3-1/visitor.mjs +867 -0
- package/src/dereference/strategies/openapi-3-1/visitor.ts +1053 -0
- package/src/dereference/util.cjs +31 -0
- package/src/dereference/util.mjs +27 -0
- package/src/dereference/util.ts +29 -0
- package/src/errors/BundleError.cjs +10 -0
- package/src/errors/BundleError.mjs +7 -0
- package/src/errors/BundleError.ts +8 -0
- package/src/errors/DereferenceError.cjs +10 -0
- package/src/errors/DereferenceError.mjs +7 -0
- package/src/errors/DereferenceError.ts +8 -0
- package/src/errors/EvaluationElementIdError.cjs +10 -0
- package/src/errors/EvaluationElementIdError.mjs +7 -0
- package/src/errors/EvaluationElementIdError.ts +8 -0
- package/src/errors/EvaluationJsonSchema$anchorError.cjs +11 -0
- package/src/errors/EvaluationJsonSchema$anchorError.mjs +6 -0
- package/src/errors/EvaluationJsonSchema$anchorError.ts +8 -0
- package/src/errors/EvaluationJsonSchemaUriError.cjs +11 -0
- package/src/errors/EvaluationJsonSchemaUriError.mjs +6 -0
- package/src/errors/EvaluationJsonSchemaUriError.ts +8 -0
- package/src/errors/InvalidJsonSchema$anchorError.cjs +15 -0
- package/src/errors/InvalidJsonSchema$anchorError.mjs +10 -0
- package/src/errors/InvalidJsonSchema$anchorError.ts +12 -0
- package/src/errors/JsonSchema$anchorError.cjs +10 -0
- package/src/errors/JsonSchema$anchorError.mjs +7 -0
- package/src/errors/JsonSchema$anchorError.ts +8 -0
- package/src/errors/JsonSchemaUriError.cjs +10 -0
- package/src/errors/JsonSchemaUriError.mjs +7 -0
- package/src/errors/JsonSchemaUriError.ts +8 -0
- package/src/errors/MaximumBundleDepthError.cjs +11 -0
- package/src/errors/MaximumBundleDepthError.mjs +6 -0
- package/src/errors/MaximumBundleDepthError.ts +8 -0
- package/src/errors/MaximumDereferenceDepthError.cjs +11 -0
- package/src/errors/MaximumDereferenceDepthError.mjs +6 -0
- package/src/errors/MaximumDereferenceDepthError.ts +8 -0
- package/src/errors/MaximumResolveDepthError.cjs +11 -0
- package/src/errors/MaximumResolveDepthError.mjs +6 -0
- package/src/errors/MaximumResolveDepthError.ts +8 -0
- package/src/errors/ParseError.cjs +10 -0
- package/src/errors/ParseError.mjs +7 -0
- package/src/errors/ParseError.ts +8 -0
- package/src/errors/ParserError.cjs +11 -0
- package/src/errors/ParserError.mjs +6 -0
- package/src/errors/ParserError.ts +8 -0
- package/src/errors/PluginError.cjs +18 -0
- package/src/errors/PluginError.mjs +15 -0
- package/src/errors/PluginError.ts +15 -0
- package/src/errors/ResolveError.cjs +10 -0
- package/src/errors/ResolveError.mjs +7 -0
- package/src/errors/ResolveError.ts +8 -0
- package/src/errors/ResolverError.cjs +11 -0
- package/src/errors/ResolverError.mjs +6 -0
- package/src/errors/ResolverError.ts +8 -0
- package/src/errors/UnmatchedBundleStrategyError.cjs +11 -0
- package/src/errors/UnmatchedBundleStrategyError.mjs +6 -0
- package/src/errors/UnmatchedBundleStrategyError.ts +8 -0
- package/src/errors/UnmatchedDereferenceStrategyError.cjs +11 -0
- package/src/errors/UnmatchedDereferenceStrategyError.mjs +6 -0
- package/src/errors/UnmatchedDereferenceStrategyError.ts +8 -0
- package/src/errors/UnmatchedParserError.cjs +11 -0
- package/src/errors/UnmatchedParserError.mjs +6 -0
- package/src/errors/UnmatchedParserError.ts +8 -0
- package/src/errors/UnmatchedResolveStrategyError.cjs +11 -0
- package/src/errors/UnmatchedResolveStrategyError.mjs +6 -0
- package/src/errors/UnmatchedResolveStrategyError.ts +8 -0
- package/src/errors/UnmatchedResolverError.cjs +11 -0
- package/src/errors/UnmatchedResolverError.mjs +6 -0
- package/src/errors/UnmatchedResolverError.ts +8 -0
- package/src/errors/UnresolvableReferenceError.cjs +11 -0
- package/src/errors/UnresolvableReferenceError.mjs +6 -0
- package/src/errors/UnresolvableReferenceError.ts +8 -0
- package/src/index.cjs +146 -0
- package/src/index.mjs +103 -0
- package/src/index.ts +135 -0
- package/src/options/index.cjs +194 -0
- package/src/options/index.mjs +191 -0
- package/src/options/index.ts +239 -0
- package/src/options/util.cjs +24 -0
- package/src/options/util.mjs +19 -0
- package/src/options/util.ts +22 -0
- package/src/parse/index.cjs +69 -0
- package/src/parse/index.mjs +63 -0
- package/src/parse/index.ts +67 -0
- package/src/parse/parsers/Parser.cjs +62 -0
- package/src/parse/parsers/Parser.mjs +58 -0
- package/src/parse/parsers/Parser.ts +80 -0
- package/src/parse/parsers/apidom-json/index.cjs +70 -0
- package/src/parse/parsers/apidom-json/index.mjs +64 -0
- package/src/parse/parsers/apidom-json/index.ts +78 -0
- package/src/parse/parsers/arazzo-json-1/index.cjs +62 -0
- package/src/parse/parsers/arazzo-json-1/index.mjs +56 -0
- package/src/parse/parsers/arazzo-json-1/index.ts +76 -0
- package/src/parse/parsers/arazzo-json-1/source-descriptions.cjs +221 -0
- package/src/parse/parsers/arazzo-json-1/source-descriptions.mjs +214 -0
- package/src/parse/parsers/arazzo-json-1/source-descriptions.ts +280 -0
- package/src/parse/parsers/arazzo-yaml-1/index.cjs +62 -0
- package/src/parse/parsers/arazzo-yaml-1/index.mjs +56 -0
- package/src/parse/parsers/arazzo-yaml-1/index.ts +77 -0
- package/src/parse/parsers/arazzo-yaml-1/source-descriptions.cjs +12 -0
- package/src/parse/parsers/arazzo-yaml-1/source-descriptions.mjs +7 -0
- package/src/parse/parsers/arazzo-yaml-1/source-descriptions.ts +16 -0
- package/src/parse/parsers/asyncapi-json-2/index.cjs +54 -0
- package/src/parse/parsers/asyncapi-json-2/index.mjs +48 -0
- package/src/parse/parsers/asyncapi-json-2/index.ts +58 -0
- package/src/parse/parsers/asyncapi-yaml-2/index.cjs +54 -0
- package/src/parse/parsers/asyncapi-yaml-2/index.mjs +48 -0
- package/src/parse/parsers/asyncapi-yaml-2/index.ts +58 -0
- package/src/parse/parsers/binary/index-browser.cjs +56 -0
- package/src/parse/parsers/binary/index-browser.mjs +50 -0
- package/src/parse/parsers/binary/index-browser.ts +60 -0
- package/src/parse/parsers/binary/index-node.cjs +51 -0
- package/src/parse/parsers/binary/index-node.mjs +45 -0
- package/src/parse/parsers/binary/index-node.ts +57 -0
- package/src/parse/parsers/json/index.cjs +53 -0
- package/src/parse/parsers/json/index.mjs +47 -0
- package/src/parse/parsers/json/index.ts +52 -0
- package/src/parse/parsers/openapi-json-2/index.cjs +54 -0
- package/src/parse/parsers/openapi-json-2/index.mjs +48 -0
- package/src/parse/parsers/openapi-json-2/index.ts +58 -0
- package/src/parse/parsers/openapi-json-3-0/index.cjs +54 -0
- package/src/parse/parsers/openapi-json-3-0/index.mjs +48 -0
- package/src/parse/parsers/openapi-json-3-0/index.ts +59 -0
- package/src/parse/parsers/openapi-json-3-1/index.cjs +54 -0
- package/src/parse/parsers/openapi-json-3-1/index.mjs +48 -0
- package/src/parse/parsers/openapi-json-3-1/index.ts +59 -0
- package/src/parse/parsers/openapi-yaml-2/index.cjs +54 -0
- package/src/parse/parsers/openapi-yaml-2/index.mjs +48 -0
- package/src/parse/parsers/openapi-yaml-2/index.ts +58 -0
- package/src/parse/parsers/openapi-yaml-3-0/index.cjs +54 -0
- package/src/parse/parsers/openapi-yaml-3-0/index.mjs +48 -0
- package/src/parse/parsers/openapi-yaml-3-0/index.ts +59 -0
- package/src/parse/parsers/openapi-yaml-3-1/index.cjs +54 -0
- package/src/parse/parsers/openapi-yaml-3-1/index.mjs +48 -0
- package/src/parse/parsers/openapi-yaml-3-1/index.ts +59 -0
- package/src/parse/parsers/yaml-1-2/index.cjs +56 -0
- package/src/parse/parsers/yaml-1-2/index.mjs +50 -0
- package/src/parse/parsers/yaml-1-2/index.ts +60 -0
- package/src/resolve/index.cjs +67 -0
- package/src/resolve/index.mjs +60 -0
- package/src/resolve/index.ts +75 -0
- package/src/resolve/resolvers/HTTPResolver.cjs +45 -0
- package/src/resolve/resolvers/HTTPResolver.mjs +37 -0
- package/src/resolve/resolvers/HTTPResolver.ts +58 -0
- package/src/resolve/resolvers/Resolver.cjs +20 -0
- package/src/resolve/resolvers/Resolver.mjs +16 -0
- package/src/resolve/resolvers/Resolver.ts +25 -0
- package/src/resolve/resolvers/file/index-browser.cjs +24 -0
- package/src/resolve/resolvers/file/index-browser.mjs +19 -0
- package/src/resolve/resolvers/file/index-browser.ts +24 -0
- package/src/resolve/resolvers/file/index-node.cjs +49 -0
- package/src/resolve/resolvers/file/index-node.mjs +42 -0
- package/src/resolve/resolvers/file/index-node.ts +55 -0
- package/src/resolve/resolvers/http-axios/cache/MemoryCache.cjs +41 -0
- package/src/resolve/resolvers/http-axios/cache/MemoryCache.mjs +37 -0
- package/src/resolve/resolvers/http-axios/cache/MemoryCache.ts +46 -0
- package/src/resolve/resolvers/http-axios/index.cjs +113 -0
- package/src/resolve/resolvers/http-axios/index.mjs +105 -0
- package/src/resolve/resolvers/http-axios/index.ts +130 -0
- package/src/resolve/strategies/ResolveStrategy.cjs +20 -0
- package/src/resolve/strategies/ResolveStrategy.mjs +16 -0
- package/src/resolve/strategies/ResolveStrategy.ts +26 -0
- package/src/resolve/strategies/apidom/index.cjs +49 -0
- package/src/resolve/strategies/apidom/index.mjs +43 -0
- package/src/resolve/strategies/apidom/index.ts +78 -0
- package/src/resolve/strategies/asyncapi-2/index.cjs +49 -0
- package/src/resolve/strategies/asyncapi-2/index.mjs +43 -0
- package/src/resolve/strategies/asyncapi-2/index.ts +78 -0
- package/src/resolve/strategies/openapi-2/index.cjs +49 -0
- package/src/resolve/strategies/openapi-2/index.mjs +43 -0
- package/src/resolve/strategies/openapi-2/index.ts +78 -0
- package/src/resolve/strategies/openapi-3-0/index.cjs +49 -0
- package/src/resolve/strategies/openapi-3-0/index.mjs +43 -0
- package/src/resolve/strategies/openapi-3-0/index.ts +78 -0
- package/src/resolve/strategies/openapi-3-1/index.cjs +49 -0
- package/src/resolve/strategies/openapi-3-1/index.mjs +43 -0
- package/src/resolve/strategies/openapi-3-1/index.ts +78 -0
- package/src/resolve/util.cjs +37 -0
- package/src/resolve/util.mjs +30 -0
- package/src/resolve/util.ts +39 -0
- package/src/util/plugins.cjs +39 -0
- package/src/util/plugins.mjs +34 -0
- package/src/util/plugins.ts +37 -0
- package/src/util/url.cjs +288 -0
- package/src/util/url.mjs +274 -0
- package/src/util/url.ts +285 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import ResolveStrategy, { ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
2
|
+
import ReferenceSet from '../../../ReferenceSet.ts';
|
|
3
|
+
import File from '../../../File.ts';
|
|
4
|
+
import { merge as mergeOptions } from '../../../options/util.ts';
|
|
5
|
+
import UnmatchedDereferenceStrategyError from '../../../errors/UnmatchedDereferenceStrategyError.ts';
|
|
6
|
+
import type { ReferenceOptions } from '../../../options/index.ts';
|
|
7
|
+
|
|
8
|
+
export type { default as ResolveStrategy, ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
9
|
+
export type { default as ReferenceSet, ReferenceSetOptions } from '../../../ReferenceSet.ts';
|
|
10
|
+
export type { default as File, FileOptions } from '../../../File.ts';
|
|
11
|
+
export type {
|
|
12
|
+
ReferenceOptions as ApiDOMReferenceOptions,
|
|
13
|
+
ReferenceBundleOptions as ApiDOMReferenceBundleOptions,
|
|
14
|
+
ReferenceDereferenceOptions as ApiDOMReferenceDereferenceOptions,
|
|
15
|
+
ReferenceParseOptions as ApiDOMReferenceParseOptions,
|
|
16
|
+
ReferenceResolveOptions as ApiDOMReferenceResolveOptions,
|
|
17
|
+
} from '../../../options/index.ts';
|
|
18
|
+
export type { default as Parser, ParserOptions } from '../../../parse/parsers/Parser.ts';
|
|
19
|
+
export type { default as Resolver, ResolverOptions } from '../../resolvers/Resolver.ts';
|
|
20
|
+
export type {
|
|
21
|
+
default as DereferenceStrategy,
|
|
22
|
+
DereferenceStrategyOptions,
|
|
23
|
+
} from '../../../dereference/strategies/DereferenceStrategy.ts';
|
|
24
|
+
export type {
|
|
25
|
+
default as BundleStrategy,
|
|
26
|
+
BundleStrategyOptions,
|
|
27
|
+
} from '../../../bundle/strategies/BundleStrategy.ts';
|
|
28
|
+
export type { default as Reference, ReferenceOptions } from '../../../Reference.ts';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export interface AsyncAPI2ResolveStrategyOptions extends Omit<ResolveStrategyOptions, 'name'> {}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
class AsyncAPI2ResolveStrategy extends ResolveStrategy {
|
|
39
|
+
constructor(options?: AsyncAPI2ResolveStrategyOptions) {
|
|
40
|
+
super({ ...(options ?? {}), name: 'asyncapi-2' });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
canResolve(file: File, options: ReferenceOptions) {
|
|
44
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
45
|
+
(strategy) => strategy.name === 'asyncapi-2',
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
if (dereferenceStrategy === undefined) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async resolve(file: File, options: ReferenceOptions) {
|
|
56
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
57
|
+
(strategy) => strategy.name === 'asyncapi-2',
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
if (dereferenceStrategy === undefined) {
|
|
61
|
+
throw new UnmatchedDereferenceStrategyError(
|
|
62
|
+
`"asyncapi-2" resolve strategy requires "asyncapi-2" dereference strategy to be configured for file "${file.uri}"`,
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const refSet = new ReferenceSet();
|
|
67
|
+
const mergedOptions = mergeOptions(options, {
|
|
68
|
+
resolve: { internal: false },
|
|
69
|
+
dereference: { refSet },
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
73
|
+
|
|
74
|
+
return refSet;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default AsyncAPI2ResolveStrategy;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _ResolveStrategy = _interopRequireDefault(require("../ResolveStrategy.cjs"));
|
|
7
|
+
var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
|
|
8
|
+
var _util = require("../../../options/util.cjs");
|
|
9
|
+
var _UnmatchedDereferenceStrategyError = _interopRequireDefault(require("../../../errors/UnmatchedDereferenceStrategyError.cjs"));
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
class OpenAPI2ResolveStrategy extends _ResolveStrategy.default {
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super({
|
|
20
|
+
...(options ?? {}),
|
|
21
|
+
name: 'openapi-2'
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
canResolve(file, options) {
|
|
25
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-2');
|
|
26
|
+
if (dereferenceStrategy === undefined) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
30
|
+
}
|
|
31
|
+
async resolve(file, options) {
|
|
32
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-2');
|
|
33
|
+
if (dereferenceStrategy === undefined) {
|
|
34
|
+
throw new _UnmatchedDereferenceStrategyError.default(`"openapi-2" resolve strategy requires "openapi-2" dereference strategy to be configured for file "${file.uri}"`);
|
|
35
|
+
}
|
|
36
|
+
const refSet = new _ReferenceSet.default();
|
|
37
|
+
const mergedOptions = (0, _util.merge)(options, {
|
|
38
|
+
resolve: {
|
|
39
|
+
internal: false
|
|
40
|
+
},
|
|
41
|
+
dereference: {
|
|
42
|
+
refSet
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
46
|
+
return refSet;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
var _default = exports.default = OpenAPI2ResolveStrategy;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import ResolveStrategy from "../ResolveStrategy.mjs";
|
|
2
|
+
import ReferenceSet from "../../../ReferenceSet.mjs";
|
|
3
|
+
import { merge as mergeOptions } from "../../../options/util.mjs";
|
|
4
|
+
import UnmatchedDereferenceStrategyError from "../../../errors/UnmatchedDereferenceStrategyError.mjs";
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
class OpenAPI2ResolveStrategy extends ResolveStrategy {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
super({
|
|
14
|
+
...(options ?? {}),
|
|
15
|
+
name: 'openapi-2'
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
canResolve(file, options) {
|
|
19
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-2');
|
|
20
|
+
if (dereferenceStrategy === undefined) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
24
|
+
}
|
|
25
|
+
async resolve(file, options) {
|
|
26
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-2');
|
|
27
|
+
if (dereferenceStrategy === undefined) {
|
|
28
|
+
throw new UnmatchedDereferenceStrategyError(`"openapi-2" resolve strategy requires "openapi-2" dereference strategy to be configured for file "${file.uri}"`);
|
|
29
|
+
}
|
|
30
|
+
const refSet = new ReferenceSet();
|
|
31
|
+
const mergedOptions = mergeOptions(options, {
|
|
32
|
+
resolve: {
|
|
33
|
+
internal: false
|
|
34
|
+
},
|
|
35
|
+
dereference: {
|
|
36
|
+
refSet
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
40
|
+
return refSet;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export default OpenAPI2ResolveStrategy;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import ResolveStrategy, { ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
2
|
+
import ReferenceSet from '../../../ReferenceSet.ts';
|
|
3
|
+
import File from '../../../File.ts';
|
|
4
|
+
import { merge as mergeOptions } from '../../../options/util.ts';
|
|
5
|
+
import UnmatchedDereferenceStrategyError from '../../../errors/UnmatchedDereferenceStrategyError.ts';
|
|
6
|
+
import type { ReferenceOptions } from '../../../options/index.ts';
|
|
7
|
+
|
|
8
|
+
export type { default as ResolveStrategy, ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
9
|
+
export type { default as ReferenceSet, ReferenceSetOptions } from '../../../ReferenceSet.ts';
|
|
10
|
+
export type { default as File, FileOptions } from '../../../File.ts';
|
|
11
|
+
export type {
|
|
12
|
+
ReferenceOptions as ApiDOMReferenceOptions,
|
|
13
|
+
ReferenceBundleOptions as ApiDOMReferenceBundleOptions,
|
|
14
|
+
ReferenceDereferenceOptions as ApiDOMReferenceDereferenceOptions,
|
|
15
|
+
ReferenceParseOptions as ApiDOMReferenceParseOptions,
|
|
16
|
+
ReferenceResolveOptions as ApiDOMReferenceResolveOptions,
|
|
17
|
+
} from '../../../options/index.ts';
|
|
18
|
+
export type { default as Parser, ParserOptions } from '../../../parse/parsers/Parser.ts';
|
|
19
|
+
export type { default as Resolver, ResolverOptions } from '../../resolvers/Resolver.ts';
|
|
20
|
+
export type {
|
|
21
|
+
default as DereferenceStrategy,
|
|
22
|
+
DereferenceStrategyOptions,
|
|
23
|
+
} from '../../../dereference/strategies/DereferenceStrategy.ts';
|
|
24
|
+
export type {
|
|
25
|
+
default as BundleStrategy,
|
|
26
|
+
BundleStrategyOptions,
|
|
27
|
+
} from '../../../bundle/strategies/BundleStrategy.ts';
|
|
28
|
+
export type { default as Reference, ReferenceOptions } from '../../../Reference.ts';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export interface OpenAPI2ResolveStrategyOptions extends Omit<ResolveStrategyOptions, 'name'> {}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
class OpenAPI2ResolveStrategy extends ResolveStrategy {
|
|
39
|
+
constructor(options?: OpenAPI2ResolveStrategyOptions) {
|
|
40
|
+
super({ ...(options ?? {}), name: 'openapi-2' });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
canResolve(file: File, options: ReferenceOptions) {
|
|
44
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
45
|
+
(strategy) => strategy.name === 'openapi-2',
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
if (dereferenceStrategy === undefined) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async resolve(file: File, options: ReferenceOptions) {
|
|
56
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
57
|
+
(strategy) => strategy.name === 'openapi-2',
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
if (dereferenceStrategy === undefined) {
|
|
61
|
+
throw new UnmatchedDereferenceStrategyError(
|
|
62
|
+
`"openapi-2" resolve strategy requires "openapi-2" dereference strategy to be configured for file "${file.uri}"`,
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const refSet = new ReferenceSet();
|
|
67
|
+
const mergedOptions = mergeOptions(options, {
|
|
68
|
+
resolve: { internal: false },
|
|
69
|
+
dereference: { refSet },
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
73
|
+
|
|
74
|
+
return refSet;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default OpenAPI2ResolveStrategy;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _ResolveStrategy = _interopRequireDefault(require("../ResolveStrategy.cjs"));
|
|
7
|
+
var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
|
|
8
|
+
var _util = require("../../../options/util.cjs");
|
|
9
|
+
var _UnmatchedDereferenceStrategyError = _interopRequireDefault(require("../../../errors/UnmatchedDereferenceStrategyError.cjs"));
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
class OpenAPI3_0ResolveStrategy extends _ResolveStrategy.default {
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super({
|
|
20
|
+
...(options ?? {}),
|
|
21
|
+
name: 'openapi-3-0'
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
canResolve(file, options) {
|
|
25
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-0');
|
|
26
|
+
if (dereferenceStrategy === undefined) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
30
|
+
}
|
|
31
|
+
async resolve(file, options) {
|
|
32
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-0');
|
|
33
|
+
if (dereferenceStrategy === undefined) {
|
|
34
|
+
throw new _UnmatchedDereferenceStrategyError.default(`"openapi-3-0" resolve strategy requires "openapi-3-0" dereference strategy to be configured for file "${file.uri}"`);
|
|
35
|
+
}
|
|
36
|
+
const refSet = new _ReferenceSet.default();
|
|
37
|
+
const mergedOptions = (0, _util.merge)(options, {
|
|
38
|
+
resolve: {
|
|
39
|
+
internal: false
|
|
40
|
+
},
|
|
41
|
+
dereference: {
|
|
42
|
+
refSet
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
46
|
+
return refSet;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
var _default = exports.default = OpenAPI3_0ResolveStrategy;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import ResolveStrategy from "../ResolveStrategy.mjs";
|
|
2
|
+
import ReferenceSet from "../../../ReferenceSet.mjs";
|
|
3
|
+
import { merge as mergeOptions } from "../../../options/util.mjs";
|
|
4
|
+
import UnmatchedDereferenceStrategyError from "../../../errors/UnmatchedDereferenceStrategyError.mjs";
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
class OpenAPI3_0ResolveStrategy extends ResolveStrategy {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
super({
|
|
14
|
+
...(options ?? {}),
|
|
15
|
+
name: 'openapi-3-0'
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
canResolve(file, options) {
|
|
19
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-0');
|
|
20
|
+
if (dereferenceStrategy === undefined) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
24
|
+
}
|
|
25
|
+
async resolve(file, options) {
|
|
26
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-0');
|
|
27
|
+
if (dereferenceStrategy === undefined) {
|
|
28
|
+
throw new UnmatchedDereferenceStrategyError(`"openapi-3-0" resolve strategy requires "openapi-3-0" dereference strategy to be configured for file "${file.uri}"`);
|
|
29
|
+
}
|
|
30
|
+
const refSet = new ReferenceSet();
|
|
31
|
+
const mergedOptions = mergeOptions(options, {
|
|
32
|
+
resolve: {
|
|
33
|
+
internal: false
|
|
34
|
+
},
|
|
35
|
+
dereference: {
|
|
36
|
+
refSet
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
40
|
+
return refSet;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export default OpenAPI3_0ResolveStrategy;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import ResolveStrategy, { ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
2
|
+
import ReferenceSet from '../../../ReferenceSet.ts';
|
|
3
|
+
import File from '../../../File.ts';
|
|
4
|
+
import { merge as mergeOptions } from '../../../options/util.ts';
|
|
5
|
+
import UnmatchedDereferenceStrategyError from '../../../errors/UnmatchedDereferenceStrategyError.ts';
|
|
6
|
+
import type { ReferenceOptions } from '../../../options/index.ts';
|
|
7
|
+
|
|
8
|
+
export type { default as ResolveStrategy, ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
9
|
+
export type { default as ReferenceSet, ReferenceSetOptions } from '../../../ReferenceSet.ts';
|
|
10
|
+
export type { default as File, FileOptions } from '../../../File.ts';
|
|
11
|
+
export type {
|
|
12
|
+
ReferenceOptions as ApiDOMReferenceOptions,
|
|
13
|
+
ReferenceBundleOptions as ApiDOMReferenceBundleOptions,
|
|
14
|
+
ReferenceDereferenceOptions as ApiDOMReferenceDereferenceOptions,
|
|
15
|
+
ReferenceParseOptions as ApiDOMReferenceParseOptions,
|
|
16
|
+
ReferenceResolveOptions as ApiDOMReferenceResolveOptions,
|
|
17
|
+
} from '../../../options/index.ts';
|
|
18
|
+
export type { default as Parser, ParserOptions } from '../../../parse/parsers/Parser.ts';
|
|
19
|
+
export type { default as Resolver, ResolverOptions } from '../../resolvers/Resolver.ts';
|
|
20
|
+
export type {
|
|
21
|
+
default as DereferenceStrategy,
|
|
22
|
+
DereferenceStrategyOptions,
|
|
23
|
+
} from '../../../dereference/strategies/DereferenceStrategy.ts';
|
|
24
|
+
export type {
|
|
25
|
+
default as BundleStrategy,
|
|
26
|
+
BundleStrategyOptions,
|
|
27
|
+
} from '../../../bundle/strategies/BundleStrategy.ts';
|
|
28
|
+
export type { default as Reference, ReferenceOptions } from '../../../Reference.ts';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export interface OpenAPI3_0ResolveStrategyOptions extends Omit<ResolveStrategyOptions, 'name'> {}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
class OpenAPI3_0ResolveStrategy extends ResolveStrategy {
|
|
39
|
+
constructor(options?: OpenAPI3_0ResolveStrategyOptions) {
|
|
40
|
+
super({ ...(options ?? {}), name: 'openapi-3-0' });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
canResolve(file: File, options: ReferenceOptions): boolean {
|
|
44
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
45
|
+
(strategy) => strategy.name === 'openapi-3-0',
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
if (dereferenceStrategy === undefined) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async resolve(file: File, options: ReferenceOptions) {
|
|
56
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
57
|
+
(strategy) => strategy.name === 'openapi-3-0',
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
if (dereferenceStrategy === undefined) {
|
|
61
|
+
throw new UnmatchedDereferenceStrategyError(
|
|
62
|
+
`"openapi-3-0" resolve strategy requires "openapi-3-0" dereference strategy to be configured for file "${file.uri}"`,
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const refSet = new ReferenceSet();
|
|
67
|
+
const mergedOptions = mergeOptions(options, {
|
|
68
|
+
resolve: { internal: false },
|
|
69
|
+
dereference: { refSet },
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
73
|
+
|
|
74
|
+
return refSet;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default OpenAPI3_0ResolveStrategy;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _ResolveStrategy = _interopRequireDefault(require("../ResolveStrategy.cjs"));
|
|
7
|
+
var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
|
|
8
|
+
var _util = require("../../../options/util.cjs");
|
|
9
|
+
var _UnmatchedDereferenceStrategyError = _interopRequireDefault(require("../../../errors/UnmatchedDereferenceStrategyError.cjs"));
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
class OpenAPI3_1ResolveStrategy extends _ResolveStrategy.default {
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super({
|
|
20
|
+
...(options ?? {}),
|
|
21
|
+
name: 'openapi-3-1'
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
canResolve(file, options) {
|
|
25
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-1');
|
|
26
|
+
if (dereferenceStrategy === undefined) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
30
|
+
}
|
|
31
|
+
async resolve(file, options) {
|
|
32
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-1');
|
|
33
|
+
if (dereferenceStrategy === undefined) {
|
|
34
|
+
throw new _UnmatchedDereferenceStrategyError.default(`"openapi-3-1" resolve strategy requires "openapi-3-1" dereference strategy to be configured for file "${file.uri}"`);
|
|
35
|
+
}
|
|
36
|
+
const refSet = new _ReferenceSet.default();
|
|
37
|
+
const mergedOptions = (0, _util.merge)(options, {
|
|
38
|
+
resolve: {
|
|
39
|
+
internal: false
|
|
40
|
+
},
|
|
41
|
+
dereference: {
|
|
42
|
+
refSet
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
46
|
+
return refSet;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
var _default = exports.default = OpenAPI3_1ResolveStrategy;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import ResolveStrategy from "../ResolveStrategy.mjs";
|
|
2
|
+
import ReferenceSet from "../../../ReferenceSet.mjs";
|
|
3
|
+
import { merge as mergeOptions } from "../../../options/util.mjs";
|
|
4
|
+
import UnmatchedDereferenceStrategyError from "../../../errors/UnmatchedDereferenceStrategyError.mjs";
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
class OpenAPI3_1ResolveStrategy extends ResolveStrategy {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
super({
|
|
14
|
+
...(options ?? {}),
|
|
15
|
+
name: 'openapi-3-1'
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
canResolve(file, options) {
|
|
19
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-1');
|
|
20
|
+
if (dereferenceStrategy === undefined) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
24
|
+
}
|
|
25
|
+
async resolve(file, options) {
|
|
26
|
+
const dereferenceStrategy = options.dereference.strategies.find(strategy => strategy.name === 'openapi-3-1');
|
|
27
|
+
if (dereferenceStrategy === undefined) {
|
|
28
|
+
throw new UnmatchedDereferenceStrategyError(`"openapi-3-1" resolve strategy requires "openapi-3-1" dereference strategy to be configured for file "${file.uri}"`);
|
|
29
|
+
}
|
|
30
|
+
const refSet = new ReferenceSet();
|
|
31
|
+
const mergedOptions = mergeOptions(options, {
|
|
32
|
+
resolve: {
|
|
33
|
+
internal: false
|
|
34
|
+
},
|
|
35
|
+
dereference: {
|
|
36
|
+
refSet
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
40
|
+
return refSet;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export default OpenAPI3_1ResolveStrategy;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import ResolveStrategy, { ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
2
|
+
import ReferenceSet from '../../../ReferenceSet.ts';
|
|
3
|
+
import File from '../../../File.ts';
|
|
4
|
+
import { merge as mergeOptions } from '../../../options/util.ts';
|
|
5
|
+
import UnmatchedDereferenceStrategyError from '../../../errors/UnmatchedDereferenceStrategyError.ts';
|
|
6
|
+
import type { ReferenceOptions } from '../../../options/index.ts';
|
|
7
|
+
|
|
8
|
+
export type { default as ResolveStrategy, ResolveStrategyOptions } from '../ResolveStrategy.ts';
|
|
9
|
+
export type { default as ReferenceSet, ReferenceSetOptions } from '../../../ReferenceSet.ts';
|
|
10
|
+
export type { default as File, FileOptions } from '../../../File.ts';
|
|
11
|
+
export type {
|
|
12
|
+
ReferenceOptions as ApiDOMReferenceOptions,
|
|
13
|
+
ReferenceBundleOptions as ApiDOMReferenceBundleOptions,
|
|
14
|
+
ReferenceDereferenceOptions as ApiDOMReferenceDereferenceOptions,
|
|
15
|
+
ReferenceParseOptions as ApiDOMReferenceParseOptions,
|
|
16
|
+
ReferenceResolveOptions as ApiDOMReferenceResolveOptions,
|
|
17
|
+
} from '../../../options/index.ts';
|
|
18
|
+
export type { default as Parser, ParserOptions } from '../../../parse/parsers/Parser.ts';
|
|
19
|
+
export type { default as Resolver, ResolverOptions } from '../../resolvers/Resolver.ts';
|
|
20
|
+
export type {
|
|
21
|
+
default as DereferenceStrategy,
|
|
22
|
+
DereferenceStrategyOptions,
|
|
23
|
+
} from '../../../dereference/strategies/DereferenceStrategy.ts';
|
|
24
|
+
export type {
|
|
25
|
+
default as BundleStrategy,
|
|
26
|
+
BundleStrategyOptions,
|
|
27
|
+
} from '../../../bundle/strategies/BundleStrategy.ts';
|
|
28
|
+
export type { default as Reference, ReferenceOptions } from '../../../Reference.ts';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export interface OpenAPI3_1ResolveStrategyOptions extends Omit<ResolveStrategyOptions, 'name'> {}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
class OpenAPI3_1ResolveStrategy extends ResolveStrategy {
|
|
39
|
+
constructor(options?: OpenAPI3_1ResolveStrategyOptions) {
|
|
40
|
+
super({ ...(options ?? {}), name: 'openapi-3-1' });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
canResolve(file: File, options: ReferenceOptions): boolean {
|
|
44
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
45
|
+
(strategy) => strategy.name === 'openapi-3-1',
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
if (dereferenceStrategy === undefined) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return dereferenceStrategy.canDereference(file, options);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async resolve(file: File, options: ReferenceOptions) {
|
|
56
|
+
const dereferenceStrategy = options.dereference.strategies.find(
|
|
57
|
+
(strategy) => strategy.name === 'openapi-3-1',
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
if (dereferenceStrategy === undefined) {
|
|
61
|
+
throw new UnmatchedDereferenceStrategyError(
|
|
62
|
+
`"openapi-3-1" resolve strategy requires "openapi-3-1" dereference strategy to be configured for file "${file.uri}"`,
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const refSet = new ReferenceSet();
|
|
67
|
+
const mergedOptions = mergeOptions(options, {
|
|
68
|
+
resolve: { internal: false },
|
|
69
|
+
dereference: { refSet },
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
73
|
+
|
|
74
|
+
return refSet;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default OpenAPI3_1ResolveStrategy;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.readFile = void 0;
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var plugins = _interopRequireWildcard(require("../util/plugins.cjs"));
|
|
9
|
+
var _ResolveError = _interopRequireDefault(require("../errors/ResolveError.cjs"));
|
|
10
|
+
var _UnmatchedResolverError = _interopRequireDefault(require("../errors/UnmatchedResolverError.cjs"));
|
|
11
|
+
/**
|
|
12
|
+
* Reads the given file, using the configured resolver plugins.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const readFile = async (file, options) => {
|
|
16
|
+
const optsBoundResolvers = options.resolve.resolvers.map(resolver => {
|
|
17
|
+
const clonedResolver = Object.create(resolver);
|
|
18
|
+
return Object.assign(clonedResolver, options.resolve.resolverOpts);
|
|
19
|
+
});
|
|
20
|
+
const resolvers = await plugins.filter('canRead', [file, options], optsBoundResolvers);
|
|
21
|
+
|
|
22
|
+
// we couldn't find any resolver for this File
|
|
23
|
+
if ((0, _ramda.isEmpty)(resolvers)) {
|
|
24
|
+
throw new _UnmatchedResolverError.default(`Could not find a resolver that can read the file "${file.uri}"`);
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const {
|
|
28
|
+
result
|
|
29
|
+
} = await plugins.run('read', [file, options], resolvers);
|
|
30
|
+
return result;
|
|
31
|
+
} catch (error) {
|
|
32
|
+
throw new _ResolveError.default(`Error while reading file "${file.uri}"`, {
|
|
33
|
+
cause: error
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.readFile = readFile;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isEmpty } from 'ramda';
|
|
2
|
+
import * as plugins from "../util/plugins.mjs";
|
|
3
|
+
import ResolveError from "../errors/ResolveError.mjs";
|
|
4
|
+
import UnmatchedResolverError from "../errors/UnmatchedResolverError.mjs";
|
|
5
|
+
/**
|
|
6
|
+
* Reads the given file, using the configured resolver plugins.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const readFile = async (file, options) => {
|
|
10
|
+
const optsBoundResolvers = options.resolve.resolvers.map(resolver => {
|
|
11
|
+
const clonedResolver = Object.create(resolver);
|
|
12
|
+
return Object.assign(clonedResolver, options.resolve.resolverOpts);
|
|
13
|
+
});
|
|
14
|
+
const resolvers = await plugins.filter('canRead', [file, options], optsBoundResolvers);
|
|
15
|
+
|
|
16
|
+
// we couldn't find any resolver for this File
|
|
17
|
+
if (isEmpty(resolvers)) {
|
|
18
|
+
throw new UnmatchedResolverError(`Could not find a resolver that can read the file "${file.uri}"`);
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const {
|
|
22
|
+
result
|
|
23
|
+
} = await plugins.run('read', [file, options], resolvers);
|
|
24
|
+
return result;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
throw new ResolveError(`Error while reading file "${file.uri}"`, {
|
|
27
|
+
cause: error
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
};
|