@speclynx/apidom-reference 4.0.1 → 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 +10 -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,57 @@
|
|
|
1
|
+
import { isEmpty, propEq } from 'ramda';
|
|
2
|
+
import { ParseResultElement } from '@speclynx/apidom-datamodel';
|
|
3
|
+
|
|
4
|
+
import File from '../File.ts';
|
|
5
|
+
import * as plugins from '../util/plugins.ts';
|
|
6
|
+
import UnmatchedBundleStrategyError from '../errors/UnmatchedBundleStrategyError.ts';
|
|
7
|
+
import BundleError from '../errors/BundleError.ts';
|
|
8
|
+
import parse from '../parse/index.ts';
|
|
9
|
+
import { merge as mergeOptions } from '../options/util.ts';
|
|
10
|
+
import * as url from '../util/url.ts';
|
|
11
|
+
import type { ReferenceOptions } from '../options/index.ts';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Bundle a file with all its external references to a compound document.
|
|
15
|
+
*/
|
|
16
|
+
const bundle = async (uri: string, options: ReferenceOptions): Promise<ParseResultElement> => {
|
|
17
|
+
const { refSet } = options.bundle;
|
|
18
|
+
const sanitizedURI = url.sanitize(uri);
|
|
19
|
+
const mergedOptions = mergeOptions(options, { resolve: { baseURI: sanitizedURI } });
|
|
20
|
+
let parseResult;
|
|
21
|
+
|
|
22
|
+
// if refSet was provided, use it to avoid unnecessary parsing
|
|
23
|
+
if (refSet !== null && refSet.has(sanitizedURI)) {
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
({ value: parseResult } = refSet.find(propEq(sanitizedURI, 'uri')));
|
|
26
|
+
} else {
|
|
27
|
+
parseResult = await parse(uri, mergedOptions);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const file = new File({
|
|
31
|
+
uri: mergedOptions.resolve.baseURI,
|
|
32
|
+
parseResult,
|
|
33
|
+
mediaType: mergedOptions.parse.mediaType,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const bundleStrategies = await plugins.filter(
|
|
37
|
+
'canBundle',
|
|
38
|
+
[file, mergedOptions],
|
|
39
|
+
mergedOptions.bundle.strategies,
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
// we couldn't find any bundle strategy for this File
|
|
43
|
+
if (isEmpty(bundleStrategies)) {
|
|
44
|
+
throw new UnmatchedBundleStrategyError(
|
|
45
|
+
`Could not find a bundle strategy that can bundle the file "${file.uri}"`,
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const { result } = await plugins.run('bundle', [file, mergedOptions], bundleStrategies);
|
|
51
|
+
return result;
|
|
52
|
+
} catch (error: any) {
|
|
53
|
+
throw new BundleError(`Error while bundling file "${file.uri}"`, { cause: error });
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default bundle;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class BundleStrategy {
|
|
13
|
+
name;
|
|
14
|
+
constructor({
|
|
15
|
+
name
|
|
16
|
+
}) {
|
|
17
|
+
this.name = name;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
var _default = exports.default = BundleStrategy;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ParseResultElement } from '@speclynx/apidom-datamodel';
|
|
2
|
+
|
|
3
|
+
import File from '../../File.ts';
|
|
4
|
+
import type { ReferenceOptions } from '../../options/index.ts';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export interface BundleStrategyOptions {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
abstract class BundleStrategy {
|
|
17
|
+
public readonly name: string;
|
|
18
|
+
|
|
19
|
+
constructor({ name }: BundleStrategyOptions) {
|
|
20
|
+
this.name = name;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
abstract canBundle(file: File, options: ReferenceOptions): boolean;
|
|
24
|
+
abstract bundle(file: File, options: ReferenceOptions): Promise<ParseResultElement>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default BundleStrategy;
|
|
@@ -0,0 +1,35 @@
|
|
|
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 _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-1");
|
|
7
|
+
var _BundleStrategy = _interopRequireDefault(require("../BundleStrategy.cjs"));
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class OpenAPI3_1BundleStrategy extends _BundleStrategy.default {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super({
|
|
18
|
+
...(options ?? {}),
|
|
19
|
+
name: 'openapi-3-1'
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
canBundle(file) {
|
|
23
|
+
// assert by media type
|
|
24
|
+
if (file.mediaType !== 'text/plain') {
|
|
25
|
+
return _apidomNsOpenapi.mediaTypes.includes(file.mediaType);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// assert by inspecting ApiDOM
|
|
29
|
+
return (0, _apidomNsOpenapi.isOpenApi3_1Element)(file.parseResult?.result);
|
|
30
|
+
}
|
|
31
|
+
async bundle(file) {
|
|
32
|
+
return file.parseResult;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
var _default = exports.default = OpenAPI3_1BundleStrategy;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { mediaTypes, isOpenApi3_1Element } from '@speclynx/apidom-ns-openapi-3-1';
|
|
2
|
+
import BundleStrategy from "../BundleStrategy.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
class OpenAPI3_1BundleStrategy extends BundleStrategy {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super({
|
|
12
|
+
...(options ?? {}),
|
|
13
|
+
name: 'openapi-3-1'
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
canBundle(file) {
|
|
17
|
+
// assert by media type
|
|
18
|
+
if (file.mediaType !== 'text/plain') {
|
|
19
|
+
return mediaTypes.includes(file.mediaType);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// assert by inspecting ApiDOM
|
|
23
|
+
return isOpenApi3_1Element(file.parseResult?.result);
|
|
24
|
+
}
|
|
25
|
+
async bundle(file) {
|
|
26
|
+
return file.parseResult;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export default OpenAPI3_1BundleStrategy;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ParseResultElement } from '@speclynx/apidom-datamodel';
|
|
2
|
+
import { mediaTypes, isOpenApi3_1Element } from '@speclynx/apidom-ns-openapi-3-1';
|
|
3
|
+
|
|
4
|
+
import File from '../../../File.ts';
|
|
5
|
+
import BundleStrategy, { BundleStrategyOptions } from '../BundleStrategy.ts';
|
|
6
|
+
|
|
7
|
+
export type {
|
|
8
|
+
default as DereferenceStrategy,
|
|
9
|
+
DereferenceStrategyOptions,
|
|
10
|
+
} from '../../../dereference/strategies/DereferenceStrategy.ts';
|
|
11
|
+
export type { default as File, FileOptions } from '../../../File.ts';
|
|
12
|
+
export type { default as Reference, ReferenceOptions } from '../../../Reference.ts';
|
|
13
|
+
export type { default as ReferenceSet, ReferenceSetOptions } from '../../../ReferenceSet.ts';
|
|
14
|
+
export type {
|
|
15
|
+
ReferenceOptions as ApiDOMReferenceOptions,
|
|
16
|
+
ReferenceBundleOptions as ApiDOMReferenceBundleOptions,
|
|
17
|
+
ReferenceDereferenceOptions as ApiDOMReferenceDereferenceOptions,
|
|
18
|
+
ReferenceParseOptions as ApiDOMReferenceParseOptions,
|
|
19
|
+
ReferenceResolveOptions as ApiDOMReferenceResolveOptions,
|
|
20
|
+
} from '../../../options/index.ts';
|
|
21
|
+
export type { default as Parser, ParserOptions } from '../../../parse/parsers/Parser.ts';
|
|
22
|
+
export type { default as Resolver, ResolverOptions } from '../../../resolve/resolvers/Resolver.ts';
|
|
23
|
+
export type {
|
|
24
|
+
default as ResolveStrategy,
|
|
25
|
+
ResolveStrategyOptions,
|
|
26
|
+
} from '../../../resolve/strategies/ResolveStrategy.ts';
|
|
27
|
+
export type { default as BundleStrategy, BundleStrategyOptions } from '../BundleStrategy.ts';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
export interface OpenAPI3_1BundleStrategyOptions extends Omit<BundleStrategyOptions, 'name'> {}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
class OpenAPI3_1BundleStrategy extends BundleStrategy {
|
|
38
|
+
constructor(options?: OpenAPI3_1BundleStrategyOptions) {
|
|
39
|
+
super({ ...(options ?? {}), name: 'openapi-3-1' });
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
canBundle(file: File): boolean {
|
|
43
|
+
// assert by media type
|
|
44
|
+
if (file.mediaType !== 'text/plain') {
|
|
45
|
+
return mediaTypes.includes(file.mediaType);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// assert by inspecting ApiDOM
|
|
49
|
+
return isOpenApi3_1Element(file.parseResult?.result);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async bundle(file: File): Promise<ParseResultElement> {
|
|
53
|
+
return file.parseResult!;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export default OpenAPI3_1BundleStrategy;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _index = require("../index.cjs");
|
|
5
|
+
Object.keys(_index).forEach(function (key) {
|
|
6
|
+
if (key === "default" || key === "__esModule") return;
|
|
7
|
+
if (key in exports && exports[key] === _index[key]) return;
|
|
8
|
+
exports[key] = _index[key];
|
|
9
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../index.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../index.ts';
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
var _indexNode = _interopRequireDefault(require("../resolve/resolvers/file/index-node.cjs"));
|
|
6
|
+
var _index = _interopRequireDefault(require("../resolve/resolvers/http-axios/index.cjs"));
|
|
7
|
+
var _index2 = _interopRequireDefault(require("../resolve/strategies/openapi-2/index.cjs"));
|
|
8
|
+
var _index3 = _interopRequireDefault(require("../resolve/strategies/openapi-3-0/index.cjs"));
|
|
9
|
+
var _index4 = _interopRequireDefault(require("../resolve/strategies/openapi-3-1/index.cjs"));
|
|
10
|
+
var _index5 = _interopRequireDefault(require("../resolve/strategies/asyncapi-2/index.cjs"));
|
|
11
|
+
var _index6 = _interopRequireDefault(require("../resolve/strategies/apidom/index.cjs"));
|
|
12
|
+
var _index7 = _interopRequireDefault(require("../parse/parsers/openapi-json-2/index.cjs"));
|
|
13
|
+
var _index8 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-2/index.cjs"));
|
|
14
|
+
var _index9 = _interopRequireDefault(require("../parse/parsers/openapi-json-3-0/index.cjs"));
|
|
15
|
+
var _index0 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-3-0/index.cjs"));
|
|
16
|
+
var _index1 = _interopRequireDefault(require("../parse/parsers/openapi-json-3-1/index.cjs"));
|
|
17
|
+
var _index10 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-3-1/index.cjs"));
|
|
18
|
+
var _index11 = _interopRequireDefault(require("../parse/parsers/asyncapi-json-2/index.cjs"));
|
|
19
|
+
var _index12 = _interopRequireDefault(require("../parse/parsers/asyncapi-yaml-2/index.cjs"));
|
|
20
|
+
var _index13 = _interopRequireDefault(require("../parse/parsers/arazzo-json-1/index.cjs"));
|
|
21
|
+
var _index14 = _interopRequireDefault(require("../parse/parsers/arazzo-yaml-1/index.cjs"));
|
|
22
|
+
var _index15 = _interopRequireDefault(require("../parse/parsers/apidom-json/index.cjs"));
|
|
23
|
+
var _index16 = _interopRequireDefault(require("../parse/parsers/json/index.cjs"));
|
|
24
|
+
var _index17 = _interopRequireDefault(require("../parse/parsers/yaml-1-2/index.cjs"));
|
|
25
|
+
var _indexNode2 = _interopRequireDefault(require("../parse/parsers/binary/index-node.cjs"));
|
|
26
|
+
var _index18 = _interopRequireDefault(require("../dereference/strategies/apidom/index.cjs"));
|
|
27
|
+
var _index19 = _interopRequireDefault(require("../dereference/strategies/openapi-2/index.cjs"));
|
|
28
|
+
var _index20 = _interopRequireDefault(require("../dereference/strategies/openapi-3-0/index.cjs"));
|
|
29
|
+
var _index21 = _interopRequireDefault(require("../dereference/strategies/openapi-3-1/index.cjs"));
|
|
30
|
+
var _index22 = _interopRequireDefault(require("../dereference/strategies/asyncapi-2/index.cjs"));
|
|
31
|
+
var _index23 = _interopRequireDefault(require("../dereference/strategies/arazzo-1/index.cjs"));
|
|
32
|
+
var _index24 = _interopRequireDefault(require("../bundle/strategies/openapi-3-1/index.cjs"));
|
|
33
|
+
var _index25 = require("../index.cjs");
|
|
34
|
+
Object.keys(_index25).forEach(function (key) {
|
|
35
|
+
if (key === "default" || key === "__esModule") return;
|
|
36
|
+
if (key in exports && exports[key] === _index25[key]) return;
|
|
37
|
+
exports[key] = _index25[key];
|
|
38
|
+
});
|
|
39
|
+
_index25.options.parse.parsers = [new _index7.default({
|
|
40
|
+
allowEmpty: true,
|
|
41
|
+
sourceMap: false
|
|
42
|
+
}), new _index8.default({
|
|
43
|
+
allowEmpty: true,
|
|
44
|
+
sourceMap: false
|
|
45
|
+
}), new _index9.default({
|
|
46
|
+
allowEmpty: true,
|
|
47
|
+
sourceMap: false
|
|
48
|
+
}), new _index0.default({
|
|
49
|
+
allowEmpty: true,
|
|
50
|
+
sourceMap: false
|
|
51
|
+
}), new _index1.default({
|
|
52
|
+
allowEmpty: true,
|
|
53
|
+
sourceMap: false
|
|
54
|
+
}), new _index10.default({
|
|
55
|
+
allowEmpty: true,
|
|
56
|
+
sourceMap: false
|
|
57
|
+
}), new _index11.default({
|
|
58
|
+
allowEmpty: true,
|
|
59
|
+
sourceMap: false
|
|
60
|
+
}), new _index12.default({
|
|
61
|
+
allowEmpty: true,
|
|
62
|
+
sourceMap: false
|
|
63
|
+
}), new _index13.default({
|
|
64
|
+
allowEmpty: true,
|
|
65
|
+
sourceMap: false
|
|
66
|
+
}), new _index14.default({
|
|
67
|
+
allowEmpty: true,
|
|
68
|
+
sourceMap: false
|
|
69
|
+
}), new _index15.default({
|
|
70
|
+
allowEmpty: true,
|
|
71
|
+
sourceMap: false
|
|
72
|
+
}), new _index16.default({
|
|
73
|
+
allowEmpty: true,
|
|
74
|
+
sourceMap: false
|
|
75
|
+
}), new _index17.default({
|
|
76
|
+
allowEmpty: true,
|
|
77
|
+
sourceMap: false
|
|
78
|
+
}), new _indexNode2.default({
|
|
79
|
+
allowEmpty: true
|
|
80
|
+
})];
|
|
81
|
+
_index25.options.resolve.resolvers = [new _indexNode.default(), new _index.default({
|
|
82
|
+
timeout: 5000,
|
|
83
|
+
redirects: 5,
|
|
84
|
+
withCredentials: false
|
|
85
|
+
})];
|
|
86
|
+
_index25.options.resolve.strategies = [new _index2.default(), new _index3.default(), new _index4.default(), new _index5.default(), new _index6.default()];
|
|
87
|
+
_index25.options.dereference.strategies = [new _index19.default(), new _index20.default(), new _index21.default(), new _index22.default(), new _index23.default(), new _index18.default()];
|
|
88
|
+
_index25.options.bundle.strategies = [new _index24.default()];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import FileResolver from "../resolve/resolvers/file/index-node.mjs";
|
|
2
|
+
import HTTPResolverAxios from "../resolve/resolvers/http-axios/index.mjs";
|
|
3
|
+
import OpenAPI2ResolveStrategy from "../resolve/strategies/openapi-2/index.mjs";
|
|
4
|
+
import OpenAPI3_0ResolveStrategy from "../resolve/strategies/openapi-3-0/index.mjs";
|
|
5
|
+
import OpenAPI3_1ResolveStrategy from "../resolve/strategies/openapi-3-1/index.mjs";
|
|
6
|
+
import AsyncAPI2ResolveStrategy from "../resolve/strategies/asyncapi-2/index.mjs";
|
|
7
|
+
import ApiDOMResolveStrategy from "../resolve/strategies/apidom/index.mjs";
|
|
8
|
+
import OpenAPIJSON2Parser from "../parse/parsers/openapi-json-2/index.mjs";
|
|
9
|
+
import OpenAPIYAML2Parser from "../parse/parsers/openapi-yaml-2/index.mjs";
|
|
10
|
+
import OpenAPIJSON3_0Parser from "../parse/parsers/openapi-json-3-0/index.mjs";
|
|
11
|
+
import OpenAPIYAML3_0Parser from "../parse/parsers/openapi-yaml-3-0/index.mjs";
|
|
12
|
+
import OpenAPIJSON3_1Parser from "../parse/parsers/openapi-json-3-1/index.mjs";
|
|
13
|
+
import OpenAPIYAML3_1Parser from "../parse/parsers/openapi-yaml-3-1/index.mjs";
|
|
14
|
+
import AsyncAPIJSON2Parser from "../parse/parsers/asyncapi-json-2/index.mjs";
|
|
15
|
+
import AsyncAPIYAML2Parser from "../parse/parsers/asyncapi-yaml-2/index.mjs";
|
|
16
|
+
import ArazzoJSON1Parser from "../parse/parsers/arazzo-json-1/index.mjs";
|
|
17
|
+
import ArazzoYAML1Parser from "../parse/parsers/arazzo-yaml-1/index.mjs";
|
|
18
|
+
import APIDOMJSONParser from "../parse/parsers/apidom-json/index.mjs";
|
|
19
|
+
import JSONParser from "../parse/parsers/json/index.mjs";
|
|
20
|
+
import YAMLParser from "../parse/parsers/yaml-1-2/index.mjs";
|
|
21
|
+
import BinaryParser from "../parse/parsers/binary/index-node.mjs";
|
|
22
|
+
import ApiDOMDereferenceStrategy from "../dereference/strategies/apidom/index.mjs";
|
|
23
|
+
import OpenAPI2DereferenceStrategy from "../dereference/strategies/openapi-2/index.mjs";
|
|
24
|
+
import OpenAPI3_0DereferenceStrategy from "../dereference/strategies/openapi-3-0/index.mjs";
|
|
25
|
+
import OpenAPI3_1DereferenceStrategy from "../dereference/strategies/openapi-3-1/index.mjs";
|
|
26
|
+
import AsyncAPI2DereferenceStrategy from "../dereference/strategies/asyncapi-2/index.mjs";
|
|
27
|
+
import Arazzo1DereferenceStrategy from "../dereference/strategies/arazzo-1/index.mjs";
|
|
28
|
+
import OpenAPI3_1BundleStrategy from "../bundle/strategies/openapi-3-1/index.mjs";
|
|
29
|
+
import { options } from "../index.mjs";
|
|
30
|
+
options.parse.parsers = [new OpenAPIJSON2Parser({
|
|
31
|
+
allowEmpty: true,
|
|
32
|
+
sourceMap: false
|
|
33
|
+
}), new OpenAPIYAML2Parser({
|
|
34
|
+
allowEmpty: true,
|
|
35
|
+
sourceMap: false
|
|
36
|
+
}), new OpenAPIJSON3_0Parser({
|
|
37
|
+
allowEmpty: true,
|
|
38
|
+
sourceMap: false
|
|
39
|
+
}), new OpenAPIYAML3_0Parser({
|
|
40
|
+
allowEmpty: true,
|
|
41
|
+
sourceMap: false
|
|
42
|
+
}), new OpenAPIJSON3_1Parser({
|
|
43
|
+
allowEmpty: true,
|
|
44
|
+
sourceMap: false
|
|
45
|
+
}), new OpenAPIYAML3_1Parser({
|
|
46
|
+
allowEmpty: true,
|
|
47
|
+
sourceMap: false
|
|
48
|
+
}), new AsyncAPIJSON2Parser({
|
|
49
|
+
allowEmpty: true,
|
|
50
|
+
sourceMap: false
|
|
51
|
+
}), new AsyncAPIYAML2Parser({
|
|
52
|
+
allowEmpty: true,
|
|
53
|
+
sourceMap: false
|
|
54
|
+
}), new ArazzoJSON1Parser({
|
|
55
|
+
allowEmpty: true,
|
|
56
|
+
sourceMap: false
|
|
57
|
+
}), new ArazzoYAML1Parser({
|
|
58
|
+
allowEmpty: true,
|
|
59
|
+
sourceMap: false
|
|
60
|
+
}), new APIDOMJSONParser({
|
|
61
|
+
allowEmpty: true,
|
|
62
|
+
sourceMap: false
|
|
63
|
+
}), new JSONParser({
|
|
64
|
+
allowEmpty: true,
|
|
65
|
+
sourceMap: false
|
|
66
|
+
}), new YAMLParser({
|
|
67
|
+
allowEmpty: true,
|
|
68
|
+
sourceMap: false
|
|
69
|
+
}), new BinaryParser({
|
|
70
|
+
allowEmpty: true
|
|
71
|
+
})];
|
|
72
|
+
options.resolve.resolvers = [new FileResolver(), new HTTPResolverAxios({
|
|
73
|
+
timeout: 5000,
|
|
74
|
+
redirects: 5,
|
|
75
|
+
withCredentials: false
|
|
76
|
+
})];
|
|
77
|
+
options.resolve.strategies = [new OpenAPI2ResolveStrategy(), new OpenAPI3_0ResolveStrategy(), new OpenAPI3_1ResolveStrategy(), new AsyncAPI2ResolveStrategy(), new ApiDOMResolveStrategy()];
|
|
78
|
+
options.dereference.strategies = [new OpenAPI2DereferenceStrategy(), new OpenAPI3_0DereferenceStrategy(), new OpenAPI3_1DereferenceStrategy(), new AsyncAPI2DereferenceStrategy(), new Arazzo1DereferenceStrategy(), new ApiDOMDereferenceStrategy()];
|
|
79
|
+
options.bundle.strategies = [new OpenAPI3_1BundleStrategy()];
|
|
80
|
+
export * from "../index.mjs";
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import FileResolver from '../resolve/resolvers/file/index-node.ts';
|
|
2
|
+
import HTTPResolverAxios from '../resolve/resolvers/http-axios/index.ts';
|
|
3
|
+
import OpenAPI2ResolveStrategy from '../resolve/strategies/openapi-2/index.ts';
|
|
4
|
+
import OpenAPI3_0ResolveStrategy from '../resolve/strategies/openapi-3-0/index.ts';
|
|
5
|
+
import OpenAPI3_1ResolveStrategy from '../resolve/strategies/openapi-3-1/index.ts';
|
|
6
|
+
import AsyncAPI2ResolveStrategy from '../resolve/strategies/asyncapi-2/index.ts';
|
|
7
|
+
import ApiDOMResolveStrategy from '../resolve/strategies/apidom/index.ts';
|
|
8
|
+
import OpenAPIJSON2Parser from '../parse/parsers/openapi-json-2/index.ts';
|
|
9
|
+
import OpenAPIYAML2Parser from '../parse/parsers/openapi-yaml-2/index.ts';
|
|
10
|
+
import OpenAPIJSON3_0Parser from '../parse/parsers/openapi-json-3-0/index.ts';
|
|
11
|
+
import OpenAPIYAML3_0Parser from '../parse/parsers/openapi-yaml-3-0/index.ts';
|
|
12
|
+
import OpenAPIJSON3_1Parser from '../parse/parsers/openapi-json-3-1/index.ts';
|
|
13
|
+
import OpenAPIYAML3_1Parser from '../parse/parsers/openapi-yaml-3-1/index.ts';
|
|
14
|
+
import AsyncAPIJSON2Parser from '../parse/parsers/asyncapi-json-2/index.ts';
|
|
15
|
+
import AsyncAPIYAML2Parser from '../parse/parsers/asyncapi-yaml-2/index.ts';
|
|
16
|
+
import ArazzoJSON1Parser from '../parse/parsers/arazzo-json-1/index.ts';
|
|
17
|
+
import ArazzoYAML1Parser from '../parse/parsers/arazzo-yaml-1/index.ts';
|
|
18
|
+
import APIDOMJSONParser from '../parse/parsers/apidom-json/index.ts';
|
|
19
|
+
import JSONParser from '../parse/parsers/json/index.ts';
|
|
20
|
+
import YAMLParser from '../parse/parsers/yaml-1-2/index.ts';
|
|
21
|
+
import BinaryParser from '../parse/parsers/binary/index-node.ts';
|
|
22
|
+
import ApiDOMDereferenceStrategy from '../dereference/strategies/apidom/index.ts';
|
|
23
|
+
import OpenAPI2DereferenceStrategy from '../dereference/strategies/openapi-2/index.ts';
|
|
24
|
+
import OpenAPI3_0DereferenceStrategy from '../dereference/strategies/openapi-3-0/index.ts';
|
|
25
|
+
import OpenAPI3_1DereferenceStrategy from '../dereference/strategies/openapi-3-1/index.ts';
|
|
26
|
+
import AsyncAPI2DereferenceStrategy from '../dereference/strategies/asyncapi-2/index.ts';
|
|
27
|
+
import Arazzo1DereferenceStrategy from '../dereference/strategies/arazzo-1/index.ts';
|
|
28
|
+
import OpenAPI3_1BundleStrategy from '../bundle/strategies/openapi-3-1/index.ts';
|
|
29
|
+
import { options } from '../index.ts';
|
|
30
|
+
|
|
31
|
+
options.parse.parsers = [
|
|
32
|
+
new OpenAPIJSON2Parser({ allowEmpty: true, sourceMap: false }),
|
|
33
|
+
new OpenAPIYAML2Parser({ allowEmpty: true, sourceMap: false }),
|
|
34
|
+
new OpenAPIJSON3_0Parser({ allowEmpty: true, sourceMap: false }),
|
|
35
|
+
new OpenAPIYAML3_0Parser({ allowEmpty: true, sourceMap: false }),
|
|
36
|
+
new OpenAPIJSON3_1Parser({ allowEmpty: true, sourceMap: false }),
|
|
37
|
+
new OpenAPIYAML3_1Parser({ allowEmpty: true, sourceMap: false }),
|
|
38
|
+
new AsyncAPIJSON2Parser({ allowEmpty: true, sourceMap: false }),
|
|
39
|
+
new AsyncAPIYAML2Parser({ allowEmpty: true, sourceMap: false }),
|
|
40
|
+
new ArazzoJSON1Parser({ allowEmpty: true, sourceMap: false }),
|
|
41
|
+
new ArazzoYAML1Parser({ allowEmpty: true, sourceMap: false }),
|
|
42
|
+
new APIDOMJSONParser({ allowEmpty: true, sourceMap: false }),
|
|
43
|
+
new JSONParser({ allowEmpty: true, sourceMap: false }),
|
|
44
|
+
new YAMLParser({ allowEmpty: true, sourceMap: false }),
|
|
45
|
+
new BinaryParser({ allowEmpty: true }),
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
options.resolve.resolvers = [
|
|
49
|
+
new FileResolver(),
|
|
50
|
+
new HTTPResolverAxios({ timeout: 5000, redirects: 5, withCredentials: false }),
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
options.resolve.strategies = [
|
|
54
|
+
new OpenAPI2ResolveStrategy(),
|
|
55
|
+
new OpenAPI3_0ResolveStrategy(),
|
|
56
|
+
new OpenAPI3_1ResolveStrategy(),
|
|
57
|
+
new AsyncAPI2ResolveStrategy(),
|
|
58
|
+
new ApiDOMResolveStrategy(),
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
options.dereference.strategies = [
|
|
62
|
+
new OpenAPI2DereferenceStrategy(),
|
|
63
|
+
new OpenAPI3_0DereferenceStrategy(),
|
|
64
|
+
new OpenAPI3_1DereferenceStrategy(),
|
|
65
|
+
new AsyncAPI2DereferenceStrategy(),
|
|
66
|
+
new Arazzo1DereferenceStrategy(),
|
|
67
|
+
new ApiDOMDereferenceStrategy(),
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
options.bundle.strategies = [new OpenAPI3_1BundleStrategy()];
|
|
71
|
+
|
|
72
|
+
export * from '../index.ts';
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.dereferenceApiDOM = exports.default = void 0;
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _apidomDatamodel = require("@speclynx/apidom-datamodel");
|
|
9
|
+
var _File = _interopRequireDefault(require("../File.cjs"));
|
|
10
|
+
var plugins = _interopRequireWildcard(require("../util/plugins.cjs"));
|
|
11
|
+
var _UnmatchedDereferenceStrategyError = _interopRequireDefault(require("../errors/UnmatchedDereferenceStrategyError.cjs"));
|
|
12
|
+
var _DereferenceError = _interopRequireDefault(require("../errors/DereferenceError.cjs"));
|
|
13
|
+
var _UnresolvableReferenceError = _interopRequireDefault(require("../errors/UnresolvableReferenceError.cjs"));
|
|
14
|
+
var _index = _interopRequireDefault(require("../parse/index.cjs"));
|
|
15
|
+
var _util = require("../options/util.cjs");
|
|
16
|
+
var url = _interopRequireWildcard(require("../util/url.cjs"));
|
|
17
|
+
/**
|
|
18
|
+
* Dereferences ApiDOM with all its external references.
|
|
19
|
+
*/
|
|
20
|
+
const dereferenceApiDOM = async (element, options) => {
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
let parseResult = element;
|
|
23
|
+
let surrogateWrapping = false;
|
|
24
|
+
|
|
25
|
+
// wrap element into parse result
|
|
26
|
+
if (!(0, _apidomDatamodel.isParseResultElement)(element)) {
|
|
27
|
+
const elementClone = (0, _apidomDatamodel.cloneShallow)(element);
|
|
28
|
+
elementClone.classes.push('result');
|
|
29
|
+
parseResult = new _apidomDatamodel.ParseResultElement([elementClone]);
|
|
30
|
+
surrogateWrapping = true;
|
|
31
|
+
}
|
|
32
|
+
const file = new _File.default({
|
|
33
|
+
uri: options.resolve.baseURI,
|
|
34
|
+
parseResult,
|
|
35
|
+
mediaType: options.parse.mediaType
|
|
36
|
+
});
|
|
37
|
+
const dereferenceStrategies = await plugins.filter('canDereference', [file, options], options.dereference.strategies);
|
|
38
|
+
|
|
39
|
+
// we couldn't find any dereference strategy for this File
|
|
40
|
+
if ((0, _ramda.isEmpty)(dereferenceStrategies)) {
|
|
41
|
+
throw new _UnmatchedDereferenceStrategyError.default(`Could not find a dereference strategy that can dereference the file "${file.uri}"`);
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const {
|
|
45
|
+
result
|
|
46
|
+
} = await plugins.run('dereference', [file, options], dereferenceStrategies);
|
|
47
|
+
// unwrap the element from ParseResult assuming first element is the actual result
|
|
48
|
+
return surrogateWrapping ? result.get(0) : result;
|
|
49
|
+
} catch (error) {
|
|
50
|
+
if (error instanceof _UnresolvableReferenceError.default) {
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
throw new _DereferenceError.default(`Error while dereferencing file "${file.uri}"`, {
|
|
54
|
+
cause: error
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Dereferences a file with all its external references.
|
|
61
|
+
*/
|
|
62
|
+
exports.dereferenceApiDOM = dereferenceApiDOM;
|
|
63
|
+
const dereference = async (uri, options) => {
|
|
64
|
+
const {
|
|
65
|
+
refSet
|
|
66
|
+
} = options.dereference;
|
|
67
|
+
const sanitizedURI = url.sanitize(uri);
|
|
68
|
+
let parseResult;
|
|
69
|
+
|
|
70
|
+
// if refSet was provided, use it to avoid unnecessary parsing
|
|
71
|
+
if (refSet !== null && refSet.has(sanitizedURI)) {
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
({
|
|
74
|
+
value: parseResult
|
|
75
|
+
} = refSet.find((0, _ramda.propEq)(sanitizedURI, 'uri')));
|
|
76
|
+
} else {
|
|
77
|
+
parseResult = await (0, _index.default)(uri, options);
|
|
78
|
+
}
|
|
79
|
+
const mergedOptions = (0, _util.merge)(options, {
|
|
80
|
+
resolve: {
|
|
81
|
+
baseURI: sanitizedURI
|
|
82
|
+
},
|
|
83
|
+
dereference: {
|
|
84
|
+
// if refSet was not provided, then we can work in mutable mode
|
|
85
|
+
immutable: options.dereference.immutable && refSet !== null
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return dereferenceApiDOM(parseResult, mergedOptions);
|
|
89
|
+
};
|
|
90
|
+
var _default = exports.default = dereference;
|