@speclynx/apidom-ns-openapi-3-1 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 +9 -10
- package/src/elements/Callback.cjs +10 -0
- package/src/elements/Callback.mjs +7 -0
- package/src/elements/Callback.ts +8 -0
- package/src/elements/Components.cjs +17 -0
- package/src/elements/Components.mjs +14 -0
- package/src/elements/Components.ts +17 -0
- package/src/elements/Contact.cjs +10 -0
- package/src/elements/Contact.mjs +7 -0
- package/src/elements/Contact.ts +8 -0
- package/src/elements/Discriminator.cjs +10 -0
- package/src/elements/Discriminator.mjs +7 -0
- package/src/elements/Discriminator.ts +8 -0
- package/src/elements/Encoding.cjs +10 -0
- package/src/elements/Encoding.mjs +7 -0
- package/src/elements/Encoding.ts +8 -0
- package/src/elements/Example.cjs +10 -0
- package/src/elements/Example.mjs +7 -0
- package/src/elements/Example.ts +8 -0
- package/src/elements/ExternalDocumentation.cjs +10 -0
- package/src/elements/ExternalDocumentation.mjs +7 -0
- package/src/elements/ExternalDocumentation.ts +8 -0
- package/src/elements/Header.cjs +17 -0
- package/src/elements/Header.mjs +13 -0
- package/src/elements/Header.ts +18 -0
- package/src/elements/Info.cjs +23 -0
- package/src/elements/Info.mjs +19 -0
- package/src/elements/Info.ts +27 -0
- package/src/elements/JsonSchemaDialect.cjs +16 -0
- package/src/elements/JsonSchemaDialect.mjs +13 -0
- package/src/elements/JsonSchemaDialect.ts +15 -0
- package/src/elements/License.cjs +17 -0
- package/src/elements/License.mjs +14 -0
- package/src/elements/License.ts +17 -0
- package/src/elements/Link.cjs +10 -0
- package/src/elements/Link.mjs +7 -0
- package/src/elements/Link.ts +8 -0
- package/src/elements/MediaType.cjs +17 -0
- package/src/elements/MediaType.mjs +13 -0
- package/src/elements/MediaType.ts +18 -0
- package/src/elements/OAuthFlow.cjs +10 -0
- package/src/elements/OAuthFlow.mjs +7 -0
- package/src/elements/OAuthFlow.ts +8 -0
- package/src/elements/OAuthFlows.cjs +10 -0
- package/src/elements/OAuthFlows.mjs +7 -0
- package/src/elements/OAuthFlows.ts +8 -0
- package/src/elements/OpenApi3-1.cjs +77 -0
- package/src/elements/OpenApi3-1.mjs +73 -0
- package/src/elements/OpenApi3-1.ts +107 -0
- package/src/elements/Openapi.cjs +10 -0
- package/src/elements/Openapi.mjs +7 -0
- package/src/elements/Openapi.ts +8 -0
- package/src/elements/Operation.cjs +17 -0
- package/src/elements/Operation.mjs +13 -0
- package/src/elements/Operation.ts +19 -0
- package/src/elements/Parameter.cjs +17 -0
- package/src/elements/Parameter.mjs +13 -0
- package/src/elements/Parameter.ts +18 -0
- package/src/elements/PathItem.cjs +59 -0
- package/src/elements/PathItem.mjs +55 -0
- package/src/elements/PathItem.ts +74 -0
- package/src/elements/Paths.cjs +10 -0
- package/src/elements/Paths.mjs +7 -0
- package/src/elements/Paths.ts +8 -0
- package/src/elements/Reference.cjs +28 -0
- package/src/elements/Reference.mjs +25 -0
- package/src/elements/Reference.ts +29 -0
- package/src/elements/RequestBody.cjs +10 -0
- package/src/elements/RequestBody.mjs +7 -0
- package/src/elements/RequestBody.ts +8 -0
- package/src/elements/Response.cjs +10 -0
- package/src/elements/Response.mjs +7 -0
- package/src/elements/Response.ts +8 -0
- package/src/elements/Responses.cjs +10 -0
- package/src/elements/Responses.mjs +7 -0
- package/src/elements/Responses.ts +8 -0
- package/src/elements/Schema.cjs +50 -0
- package/src/elements/Schema.mjs +46 -0
- package/src/elements/Schema.ts +59 -0
- package/src/elements/SecurityRequirement.cjs +10 -0
- package/src/elements/SecurityRequirement.mjs +7 -0
- package/src/elements/SecurityRequirement.ts +8 -0
- package/src/elements/SecurityScheme.cjs +10 -0
- package/src/elements/SecurityScheme.mjs +7 -0
- package/src/elements/SecurityScheme.ts +8 -0
- package/src/elements/Server.cjs +10 -0
- package/src/elements/Server.mjs +7 -0
- package/src/elements/Server.ts +8 -0
- package/src/elements/ServerVariable.cjs +10 -0
- package/src/elements/ServerVariable.mjs +7 -0
- package/src/elements/ServerVariable.ts +8 -0
- package/src/elements/Tag.cjs +10 -0
- package/src/elements/Tag.mjs +7 -0
- package/src/elements/Tag.ts +8 -0
- package/src/elements/Xml.cjs +10 -0
- package/src/elements/Xml.mjs +7 -0
- package/src/elements/Xml.ts +8 -0
- package/src/elements/nces/ComponentsPathItems.cjs +16 -0
- package/src/elements/nces/ComponentsPathItems.mjs +13 -0
- package/src/elements/nces/ComponentsPathItems.ts +15 -0
- package/src/elements/nces/Webhooks.cjs +16 -0
- package/src/elements/nces/Webhooks.mjs +13 -0
- package/src/elements/nces/Webhooks.ts +15 -0
- package/src/index.cjs +182 -0
- package/src/index.mjs +31 -0
- package/src/index.ts +592 -0
- package/src/media-types.cjs +34 -0
- package/src/media-types.mjs +30 -0
- package/src/media-types.ts +46 -0
- package/src/namespace.cjs +81 -0
- package/src/namespace.mjs +76 -0
- package/src/namespace.ts +80 -0
- package/src/predicates.cjs +228 -0
- package/src/predicates.mjs +195 -0
- package/src/predicates.ts +229 -0
- package/src/refractor/index.cjs +368 -0
- package/src/refractor/index.mjs +330 -0
- package/src/refractor/index.ts +380 -0
- package/src/refractor/inspect.cjs +207 -0
- package/src/refractor/inspect.mjs +171 -0
- package/src/refractor/inspect.ts +241 -0
- package/src/refractor/plugins/normalize-header-examples/NormalizeStorage.cjs +38 -0
- package/src/refractor/plugins/normalize-header-examples/NormalizeStorage.mjs +34 -0
- package/src/refractor/plugins/normalize-header-examples/NormalizeStorage.ts +53 -0
- package/src/refractor/plugins/normalize-header-examples/index.cjs +109 -0
- package/src/refractor/plugins/normalize-header-examples/index.mjs +103 -0
- package/src/refractor/plugins/normalize-header-examples/index.ts +125 -0
- package/src/refractor/plugins/normalize-operation-ids.cjs +166 -0
- package/src/refractor/plugins/normalize-operation-ids.mjs +161 -0
- package/src/refractor/plugins/normalize-operation-ids.ts +198 -0
- package/src/refractor/plugins/normalize-parameter-examples.cjs +109 -0
- package/src/refractor/plugins/normalize-parameter-examples.mjs +103 -0
- package/src/refractor/plugins/normalize-parameter-examples.ts +128 -0
- package/src/refractor/plugins/normalize-parameters.cjs +109 -0
- package/src/refractor/plugins/normalize-parameters.mjs +103 -0
- package/src/refractor/plugins/normalize-parameters.ts +136 -0
- package/src/refractor/plugins/normalize-security-requirements.cjs +75 -0
- package/src/refractor/plugins/normalize-security-requirements.mjs +69 -0
- package/src/refractor/plugins/normalize-security-requirements.ts +87 -0
- package/src/refractor/plugins/normalize-servers.cjs +124 -0
- package/src/refractor/plugins/normalize-servers.mjs +118 -0
- package/src/refractor/plugins/normalize-servers.ts +144 -0
- package/src/refractor/plugins/replace-empty-element.cjs +669 -0
- package/src/refractor/plugins/replace-empty-element.mjs +661 -0
- package/src/refractor/plugins/replace-empty-element.ts +726 -0
- package/src/refractor/predicates.cjs +36 -0
- package/src/refractor/predicates.mjs +31 -0
- package/src/refractor/predicates.ts +39 -0
- package/src/refractor/specification.cjs +531 -0
- package/src/refractor/specification.mjs +526 -0
- package/src/refractor/specification.ts +594 -0
- package/src/refractor/toolbox.cjs +61 -0
- package/src/refractor/toolbox.mjs +53 -0
- package/src/refractor/toolbox.ts +70 -0
- package/src/refractor/visitors/open-api-3-1/JsonSchemaDialectVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-1/JsonSchemaDialectVisitor.mjs +19 -0
- package/src/refractor/visitors/open-api-3-1/JsonSchemaDialectVisitor.ts +32 -0
- package/src/refractor/visitors/open-api-3-1/OpenapiVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-1/OpenapiVisitor.mjs +19 -0
- package/src/refractor/visitors/open-api-3-1/OpenapiVisitor.ts +30 -0
- package/src/refractor/visitors/open-api-3-1/WebhooksVisitor.cjs +43 -0
- package/src/refractor/visitors/open-api-3-1/WebhooksVisitor.mjs +37 -0
- package/src/refractor/visitors/open-api-3-1/WebhooksVisitor.ts +57 -0
- package/src/refractor/visitors/open-api-3-1/bases.cjs +46 -0
- package/src/refractor/visitors/open-api-3-1/bases.mjs +43 -0
- package/src/refractor/visitors/open-api-3-1/bases.ts +66 -0
- package/src/refractor/visitors/open-api-3-1/callback/index.cjs +36 -0
- package/src/refractor/visitors/open-api-3-1/callback/index.mjs +31 -0
- package/src/refractor/visitors/open-api-3-1/callback/index.ts +56 -0
- package/src/refractor/visitors/open-api-3-1/components/PathItemsVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-3-1/components/PathItemsVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-3-1/components/PathItemsVisitor.ts +45 -0
- package/src/refractor/visitors/open-api-3-1/components/SchemasVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-3-1/components/SchemasVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-3-1/components/SchemasVisitor.ts +26 -0
- package/src/refractor/visitors/open-api-3-1/components/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/components/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/components/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/contact/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/contact/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/contact/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/distriminator/index.cjs +22 -0
- package/src/refractor/visitors/open-api-3-1/distriminator/index.mjs +17 -0
- package/src/refractor/visitors/open-api-3-1/distriminator/index.ts +32 -0
- package/src/refractor/visitors/open-api-3-1/encoding/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/encoding/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/encoding/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/example/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/example/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/example/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/external-documentation/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/external-documentation/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/external-documentation/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/header/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/header/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/header/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/index.cjs +41 -0
- package/src/refractor/visitors/open-api-3-1/index.mjs +35 -0
- package/src/refractor/visitors/open-api-3-1/index.ts +52 -0
- package/src/refractor/visitors/open-api-3-1/info/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/info/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/info/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/license/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/license/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/license/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/link/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/link/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/link/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/media-type/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/media-type/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/media-type/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flow/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flow/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flow/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flows/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flows/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flows/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/operation/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/operation/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/operation/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/parameter/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/parameter/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/parameter/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/path-item/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/path-item/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/path-item/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/paths/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/paths/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/paths/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/reference/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/reference/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/reference/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/request-body/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/request-body/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/request-body/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/response/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/response/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/response/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/responses/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/responses/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/responses/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/schema/$defsVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-1/schema/$defsVisitor.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/schema/$defsVisitor.ts +21 -0
- package/src/refractor/visitors/open-api-3-1/schema/AllOfVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/AllOfVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/AllOfVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-1/schema/AnyOfVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/AnyOfVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/AnyOfVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-1/schema/DependentSchemasVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/DependentSchemasVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/DependentSchemasVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-1/schema/OneOfVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/OneOfVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/OneOfVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-1/schema/PatternPropertiesVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/PatternPropertiesVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/PatternPropertiesVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-1/schema/PrefixItemsVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/PrefixItemsVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/PrefixItemsVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-1/schema/PropertiesVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/PropertiesVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/PropertiesVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-1/schema/index.cjs +76 -0
- package/src/refractor/visitors/open-api-3-1/schema/index.mjs +70 -0
- package/src/refractor/visitors/open-api-3-1/schema/index.ts +88 -0
- package/src/refractor/visitors/open-api-3-1/security-requirement/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/security-requirement/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/security-requirement/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/security-scheme/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/security-scheme/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/security-scheme/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/server/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/server/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/server/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/server-variable/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/server-variable/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/server-variable/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/tag/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/tag/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/tag/index.ts +29 -0
- package/src/refractor/visitors/open-api-3-1/xml/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/xml/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/xml/index.ts +29 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Namespace, isStringElement, isArrayElement, isObjectElement, isMemberElement } from '@speclynx/apidom-datamodel';
|
|
2
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
3
|
+
import { compile as compileJSONPointerTokens } from '@speclynx/apidom-json-pointer';
|
|
4
|
+
import * as openApi3_1Predicates from "../predicates.mjs";
|
|
5
|
+
import * as refractorPredicates from "./predicates.mjs";
|
|
6
|
+
import openApi3_1Namespace from "../namespace.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Translates visitor ancestor lineage to a JSON Pointer tokens.
|
|
12
|
+
* Ancestor lineage is constructed of following visitor method arguments:
|
|
13
|
+
*
|
|
14
|
+
* - ancestors
|
|
15
|
+
* - parent
|
|
16
|
+
* - element
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export const ancestorLineageToJSONPointer = elementPath => {
|
|
20
|
+
const jsonPointerTokens = elementPath.reduce((path, element, index) => {
|
|
21
|
+
if (isMemberElement(element)) {
|
|
22
|
+
const token = String(toValue(element.key));
|
|
23
|
+
path.push(token);
|
|
24
|
+
} else if (isArrayElement(elementPath[index - 2])) {
|
|
25
|
+
const arrayElement = elementPath[index - 2];
|
|
26
|
+
const token = String(arrayElement.content?.indexOf(element) ?? -1);
|
|
27
|
+
path.push(token);
|
|
28
|
+
}
|
|
29
|
+
return path;
|
|
30
|
+
}, []);
|
|
31
|
+
return compileJSONPointerTokens(jsonPointerTokens);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
const createToolbox = () => {
|
|
38
|
+
const namespace = new Namespace();
|
|
39
|
+
const predicates = {
|
|
40
|
+
...refractorPredicates,
|
|
41
|
+
...openApi3_1Predicates,
|
|
42
|
+
isStringElement,
|
|
43
|
+
isArrayElement,
|
|
44
|
+
isObjectElement
|
|
45
|
+
};
|
|
46
|
+
namespace.use(openApi3_1Namespace);
|
|
47
|
+
return {
|
|
48
|
+
predicates,
|
|
49
|
+
ancestorLineageToJSONPointer,
|
|
50
|
+
namespace
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export default createToolbox;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Element,
|
|
3
|
+
Namespace,
|
|
4
|
+
ArrayElement,
|
|
5
|
+
isStringElement,
|
|
6
|
+
isArrayElement,
|
|
7
|
+
isObjectElement,
|
|
8
|
+
isMemberElement,
|
|
9
|
+
} from '@speclynx/apidom-datamodel';
|
|
10
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
11
|
+
import { compile as compileJSONPointerTokens } from '@speclynx/apidom-json-pointer';
|
|
12
|
+
|
|
13
|
+
import * as openApi3_1Predicates from '../predicates.ts';
|
|
14
|
+
import * as refractorPredicates from './predicates.ts';
|
|
15
|
+
import openApi3_1Namespace from '../namespace.ts';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export interface Toolbox {
|
|
21
|
+
predicates: Record<string, (...args: any[]) => boolean>;
|
|
22
|
+
ancestorLineageToJSONPointer: typeof ancestorLineageToJSONPointer;
|
|
23
|
+
namespace: Namespace;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Translates visitor ancestor lineage to a JSON Pointer tokens.
|
|
28
|
+
* Ancestor lineage is constructed of following visitor method arguments:
|
|
29
|
+
*
|
|
30
|
+
* - ancestors
|
|
31
|
+
* - parent
|
|
32
|
+
* - element
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
export const ancestorLineageToJSONPointer = <T extends (Element | Element[])[]>(elementPath: T) => {
|
|
36
|
+
const jsonPointerTokens = elementPath.reduce((path, element, index) => {
|
|
37
|
+
if (isMemberElement(element)) {
|
|
38
|
+
const token = String(toValue(element.key));
|
|
39
|
+
path.push(token);
|
|
40
|
+
} else if (isArrayElement(elementPath[index - 2])) {
|
|
41
|
+
const arrayElement = elementPath[index - 2] as ArrayElement;
|
|
42
|
+
const token = String((arrayElement.content as Element[])?.indexOf(element as Element) ?? -1);
|
|
43
|
+
path.push(token);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return path;
|
|
47
|
+
}, [] as string[]);
|
|
48
|
+
|
|
49
|
+
return compileJSONPointerTokens(jsonPointerTokens);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
const createToolbox = (): Toolbox => {
|
|
56
|
+
const namespace = new Namespace();
|
|
57
|
+
const predicates = {
|
|
58
|
+
...refractorPredicates,
|
|
59
|
+
...openApi3_1Predicates,
|
|
60
|
+
isStringElement,
|
|
61
|
+
isArrayElement,
|
|
62
|
+
isObjectElement,
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
namespace.use(openApi3_1Namespace);
|
|
66
|
+
|
|
67
|
+
return { predicates, ancestorLineageToJSONPointer, namespace };
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export default createToolbox;
|
|
@@ -0,0 +1,25 @@
|
|
|
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 _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _JsonSchemaDialect = _interopRequireDefault(require("../../../elements/JsonSchemaDialect.cjs"));
|
|
8
|
+
var _bases = require("./bases.cjs");
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
class JsonSchemaDialectVisitor extends _bases.BaseSpecificationVisitor {
|
|
17
|
+
StringElement(path) {
|
|
18
|
+
const stringElement = path.node;
|
|
19
|
+
const jsonSchemaDialectElement = new _JsonSchemaDialect.default((0, _apidomCore.toValue)(stringElement));
|
|
20
|
+
this.copyMetaAndAttributes(stringElement, jsonSchemaDialectElement);
|
|
21
|
+
this.element = jsonSchemaDialectElement;
|
|
22
|
+
path.stop();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var _default = exports.default = JsonSchemaDialectVisitor;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
2
|
+
import JsonSchemaDialectElement from "../../../elements/JsonSchemaDialect.mjs";
|
|
3
|
+
import { BaseSpecificationVisitor } from "./bases.mjs";
|
|
4
|
+
/**
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class JsonSchemaDialectVisitor extends BaseSpecificationVisitor {
|
|
11
|
+
StringElement(path) {
|
|
12
|
+
const stringElement = path.node;
|
|
13
|
+
const jsonSchemaDialectElement = new JsonSchemaDialectElement(toValue(stringElement));
|
|
14
|
+
this.copyMetaAndAttributes(stringElement, jsonSchemaDialectElement);
|
|
15
|
+
this.element = jsonSchemaDialectElement;
|
|
16
|
+
path.stop();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default JsonSchemaDialectVisitor;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { StringElement } from '@speclynx/apidom-datamodel';
|
|
2
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
3
|
+
import { Path } from '@speclynx/apidom-traverse';
|
|
4
|
+
|
|
5
|
+
import JsonSchemaDialectElement from '../../../elements/JsonSchemaDialect.ts';
|
|
6
|
+
import { BaseSpecificationVisitor, BaseSpecificationVisitorOptions } from './bases.ts';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export interface JsonSchemaDialectVisitorOptions extends BaseSpecificationVisitorOptions {}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
class JsonSchemaDialectVisitor extends BaseSpecificationVisitor {
|
|
17
|
+
declare public element: JsonSchemaDialectElement;
|
|
18
|
+
|
|
19
|
+
StringElement(path: Path<StringElement>) {
|
|
20
|
+
const stringElement = path.node;
|
|
21
|
+
const jsonSchemaDialectElement = new JsonSchemaDialectElement(
|
|
22
|
+
toValue(stringElement) as string | undefined,
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
this.copyMetaAndAttributes(stringElement, jsonSchemaDialectElement);
|
|
26
|
+
|
|
27
|
+
this.element = jsonSchemaDialectElement;
|
|
28
|
+
path.stop();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export default JsonSchemaDialectVisitor;
|
|
@@ -0,0 +1,25 @@
|
|
|
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 _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _bases = require("./bases.cjs");
|
|
8
|
+
var _Openapi = _interopRequireDefault(require("../../../elements/Openapi.cjs"));
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
class OpenapiVisitor extends _bases.BaseSpecificationVisitor {
|
|
17
|
+
StringElement(path) {
|
|
18
|
+
const stringElement = path.node;
|
|
19
|
+
const openapiElement = new _Openapi.default((0, _apidomCore.toValue)(stringElement));
|
|
20
|
+
this.copyMetaAndAttributes(stringElement, openapiElement);
|
|
21
|
+
this.element = openapiElement;
|
|
22
|
+
path.stop();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var _default = exports.default = OpenapiVisitor;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
2
|
+
import { BaseSpecificationVisitor } from "./bases.mjs";
|
|
3
|
+
import OpenapiElement from "../../../elements/Openapi.mjs";
|
|
4
|
+
/**
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class OpenapiVisitor extends BaseSpecificationVisitor {
|
|
11
|
+
StringElement(path) {
|
|
12
|
+
const stringElement = path.node;
|
|
13
|
+
const openapiElement = new OpenapiElement(toValue(stringElement));
|
|
14
|
+
this.copyMetaAndAttributes(stringElement, openapiElement);
|
|
15
|
+
this.element = openapiElement;
|
|
16
|
+
path.stop();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default OpenapiVisitor;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { StringElement } from '@speclynx/apidom-datamodel';
|
|
2
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
3
|
+
import { Path } from '@speclynx/apidom-traverse';
|
|
4
|
+
|
|
5
|
+
import { BaseSpecificationVisitor, BaseSpecificationVisitorOptions } from './bases.ts';
|
|
6
|
+
import OpenapiElement from '../../../elements/Openapi.ts';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export type { BaseSpecificationVisitorOptions as OpenapiVisitorOptions };
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
class OpenapiVisitor extends BaseSpecificationVisitor {
|
|
17
|
+
declare public element: OpenapiElement;
|
|
18
|
+
|
|
19
|
+
StringElement(path: Path<StringElement>) {
|
|
20
|
+
const stringElement = path.node;
|
|
21
|
+
const openapiElement = new OpenapiElement(toValue(stringElement) as string | undefined);
|
|
22
|
+
|
|
23
|
+
this.copyMetaAndAttributes(stringElement, openapiElement);
|
|
24
|
+
|
|
25
|
+
this.element = openapiElement;
|
|
26
|
+
path.stop();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default OpenapiVisitor;
|
|
@@ -0,0 +1,43 @@
|
|
|
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 _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
8
|
+
var _Webhooks = _interopRequireDefault(require("../../../elements/nces/Webhooks.cjs"));
|
|
9
|
+
var _predicates = require("../../../predicates.cjs");
|
|
10
|
+
var _bases = require("./bases.cjs");
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
class WebhooksVisitor extends _bases.BaseMapVisitor {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
super(options);
|
|
21
|
+
this.element = new _Webhooks.default();
|
|
22
|
+
this.specPath = element => (0, _apidomNsOpenapi.isReferenceLikeElement)(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'PathItem'];
|
|
23
|
+
}
|
|
24
|
+
ObjectElement(path) {
|
|
25
|
+
_apidomNsOpenapi.MapVisitor.prototype.ObjectElement.call(this, path);
|
|
26
|
+
|
|
27
|
+
// decorate every ReferenceElement with metadata about their referencing type
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
this.element.filter(_predicates.isReferenceElement).forEach(referenceElement => {
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
referenceElement.setMetaProperty('referenced-element', 'pathItem');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// decorate every PathItemElement with Webhook name metadata
|
|
35
|
+
this.element.filter(_predicates.isPathItemElement)
|
|
36
|
+
// @ts-ignore
|
|
37
|
+
.forEach((pathItemElement, key) => {
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
pathItemElement.setMetaProperty('webhook-name', (0, _apidomCore.toValue)(key));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var _default = exports.default = WebhooksVisitor;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
2
|
+
import { isReferenceLikeElement, MapVisitor } from '@speclynx/apidom-ns-openapi-3-0';
|
|
3
|
+
import WebhooksElement from "../../../elements/nces/Webhooks.mjs";
|
|
4
|
+
import { isPathItemElement, isReferenceElement } from "../../../predicates.mjs";
|
|
5
|
+
import { BaseMapVisitor } from "./bases.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class WebhooksVisitor extends BaseMapVisitor {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super(options);
|
|
15
|
+
this.element = new WebhooksElement();
|
|
16
|
+
this.specPath = element => isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'PathItem'];
|
|
17
|
+
}
|
|
18
|
+
ObjectElement(path) {
|
|
19
|
+
MapVisitor.prototype.ObjectElement.call(this, path);
|
|
20
|
+
|
|
21
|
+
// decorate every ReferenceElement with metadata about their referencing type
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
this.element.filter(isReferenceElement).forEach(referenceElement => {
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
referenceElement.setMetaProperty('referenced-element', 'pathItem');
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// decorate every PathItemElement with Webhook name metadata
|
|
29
|
+
this.element.filter(isPathItemElement)
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
.forEach((pathItemElement, key) => {
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
pathItemElement.setMetaProperty('webhook-name', toValue(key));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default WebhooksVisitor;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ObjectElement, StringElement } from '@speclynx/apidom-datamodel';
|
|
2
|
+
import { toValue } from '@speclynx/apidom-core';
|
|
3
|
+
import { Path } from '@speclynx/apidom-traverse';
|
|
4
|
+
import { isReferenceLikeElement, MapVisitor, SpecPath } from '@speclynx/apidom-ns-openapi-3-0';
|
|
5
|
+
|
|
6
|
+
import ReferenceElement from '../../../elements/Reference.ts';
|
|
7
|
+
import PathItemElement from '../../../elements/PathItem.ts';
|
|
8
|
+
import WebhooksElement from '../../../elements/nces/Webhooks.ts';
|
|
9
|
+
import { isPathItemElement, isReferenceElement } from '../../../predicates.ts';
|
|
10
|
+
import { BaseMapVisitor, BaseMapVisitorOptions } from './bases.ts';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export interface WebhooksVisitorOptions extends BaseMapVisitorOptions {}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
class WebhooksVisitor extends BaseMapVisitor {
|
|
21
|
+
declare public readonly element: WebhooksElement;
|
|
22
|
+
|
|
23
|
+
declare protected readonly specPath: SpecPath<
|
|
24
|
+
['document', 'objects', 'Reference'] | ['document', 'objects', 'PathItem']
|
|
25
|
+
>;
|
|
26
|
+
|
|
27
|
+
constructor(options: WebhooksVisitorOptions) {
|
|
28
|
+
super(options);
|
|
29
|
+
this.element = new WebhooksElement();
|
|
30
|
+
this.specPath = (element: unknown) =>
|
|
31
|
+
isReferenceLikeElement(element)
|
|
32
|
+
? ['document', 'objects', 'Reference']
|
|
33
|
+
: ['document', 'objects', 'PathItem'];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
ObjectElement(path: Path<ObjectElement>) {
|
|
37
|
+
MapVisitor.prototype.ObjectElement.call(this, path);
|
|
38
|
+
|
|
39
|
+
// decorate every ReferenceElement with metadata about their referencing type
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
this.element.filter(isReferenceElement).forEach((referenceElement: ReferenceElement) => {
|
|
42
|
+
// @ts-ignore
|
|
43
|
+
referenceElement.setMetaProperty('referenced-element', 'pathItem');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// decorate every PathItemElement with Webhook name metadata
|
|
47
|
+
this.element
|
|
48
|
+
.filter(isPathItemElement)
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
.forEach((pathItemElement: PathItemElement, key: StringElement) => {
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
pathItemElement.setMetaProperty('webhook-name', toValue(key));
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export default WebhooksVisitor;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.BaseSpecificationVisitor = exports.BaseSchemaVisitor = exports.BaseMapVisitor = exports.BaseFixedFieldsVisitor = void 0;
|
|
5
|
+
var _tsMixer = require("ts-mixer");
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _apidomNsJsonSchema = require("@speclynx/apidom-ns-json-schema-2020-12");
|
|
8
|
+
/**
|
|
9
|
+
* Base class for visitors using Mixin(SpecificationVisitor, FallbackVisitor)
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
const BaseSpecificationVisitor = exports.BaseSpecificationVisitor = (0, _tsMixer.Mixin)(_apidomNsOpenapi.SpecificationVisitor, _apidomNsOpenapi.FallbackVisitor);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Base class for visitors using Mixin(FixedFieldsVisitor, FallbackVisitor)
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
const BaseFixedFieldsVisitor = exports.BaseFixedFieldsVisitor = (0, _tsMixer.Mixin)(_apidomNsOpenapi.FixedFieldsVisitor, _apidomNsOpenapi.FallbackVisitor);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Base class for visitors using Mixin(MapVisitor, FallbackVisitor)
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
const BaseMapVisitor = exports.BaseMapVisitor = (0, _tsMixer.Mixin)(_apidomNsOpenapi.MapVisitor, _apidomNsOpenapi.FallbackVisitor);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Base class for visitors using Mixin(FixedFieldsVisitor, ParentSchemaAwareVisitor, FallbackVisitor)
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
const BaseSchemaVisitor = exports.BaseSchemaVisitor = (0, _tsMixer.Mixin)(_apidomNsOpenapi.FixedFieldsVisitor, _apidomNsJsonSchema.ParentSchemaAwareVisitor, _apidomNsOpenapi.FallbackVisitor);
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { SpecificationVisitor, FallbackVisitor, FixedFieldsVisitor, MapVisitor } from '@speclynx/apidom-ns-openapi-3-0';
|
|
3
|
+
import { ParentSchemaAwareVisitor } from '@speclynx/apidom-ns-json-schema-2020-12';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Base class for visitors using Mixin(SpecificationVisitor, FallbackVisitor)
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export const BaseSpecificationVisitor = Mixin(SpecificationVisitor, FallbackVisitor);
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Base class for visitors using Mixin(FixedFieldsVisitor, FallbackVisitor)
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export const BaseFixedFieldsVisitor = Mixin(FixedFieldsVisitor, FallbackVisitor);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Base class for visitors using Mixin(MapVisitor, FallbackVisitor)
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export const BaseMapVisitor = Mixin(MapVisitor, FallbackVisitor);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Base class for visitors using Mixin(FixedFieldsVisitor, ParentSchemaAwareVisitor, FallbackVisitor)
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
export const BaseSchemaVisitor = Mixin(FixedFieldsVisitor, ParentSchemaAwareVisitor, FallbackVisitor);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import {
|
|
3
|
+
SpecificationVisitor,
|
|
4
|
+
SpecificationVisitorOptions,
|
|
5
|
+
FallbackVisitor,
|
|
6
|
+
FallbackVisitorOptions,
|
|
7
|
+
FixedFieldsVisitor,
|
|
8
|
+
FixedFieldsVisitorOptions,
|
|
9
|
+
MapVisitor,
|
|
10
|
+
MapVisitorOptions,
|
|
11
|
+
} from '@speclynx/apidom-ns-openapi-3-0';
|
|
12
|
+
import {
|
|
13
|
+
ParentSchemaAwareVisitor,
|
|
14
|
+
ParentSchemaAwareVisitorOptions,
|
|
15
|
+
} from '@speclynx/apidom-ns-json-schema-2020-12';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Base class for visitors using Mixin(SpecificationVisitor, FallbackVisitor)
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
export const BaseSpecificationVisitor = Mixin(SpecificationVisitor, FallbackVisitor);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export interface BaseSpecificationVisitorOptions
|
|
27
|
+
extends SpecificationVisitorOptions, FallbackVisitorOptions {}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Base class for visitors using Mixin(FixedFieldsVisitor, FallbackVisitor)
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export const BaseFixedFieldsVisitor = Mixin(FixedFieldsVisitor, FallbackVisitor);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
export interface BaseFixedFieldsVisitorOptions
|
|
39
|
+
extends FixedFieldsVisitorOptions, FallbackVisitorOptions {}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Base class for visitors using Mixin(MapVisitor, FallbackVisitor)
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
45
|
+
export const BaseMapVisitor = Mixin(MapVisitor, FallbackVisitor);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
export interface BaseMapVisitorOptions extends MapVisitorOptions, FallbackVisitorOptions {}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Base class for visitors using Mixin(FixedFieldsVisitor, ParentSchemaAwareVisitor, FallbackVisitor)
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
export const BaseSchemaVisitor = Mixin(
|
|
57
|
+
FixedFieldsVisitor,
|
|
58
|
+
ParentSchemaAwareVisitor,
|
|
59
|
+
FallbackVisitor,
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
export interface BaseSchemaVisitorOptions
|
|
66
|
+
extends FixedFieldsVisitorOptions, ParentSchemaAwareVisitorOptions, FallbackVisitorOptions {}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.BaseCallbackVisitor = void 0;
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _Callback = _interopRequireDefault(require("../../../../elements/Callback.cjs"));
|
|
8
|
+
var _predicates = require("../../../../predicates.cjs");
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
const BaseCallbackVisitor = exports.BaseCallbackVisitor = _apidomNsOpenapi.specificationObj.visitors.document.objects.Callback.$visitor;
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
class CallbackVisitor extends BaseCallbackVisitor {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super(options);
|
|
19
|
+
this.element = new _Callback.default();
|
|
20
|
+
this.specPath = element => {
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
return (0, _apidomNsOpenapi.isReferenceLikeElement)(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'PathItem'];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
ObjectElement(path) {
|
|
26
|
+
BaseCallbackVisitor.prototype.ObjectElement.call(this, path);
|
|
27
|
+
|
|
28
|
+
// decorate every ReferenceElement with metadata about their referencing type
|
|
29
|
+
// @ts-ignore
|
|
30
|
+
this.element.filter(_predicates.isReferenceElement).forEach(referenceElement => {
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
referenceElement.setMetaProperty('referenced-element', 'pathItem');
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
var _default = exports.default = CallbackVisitor;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { isReferenceLikeElement, specificationObj as OpenApi3_1Specification } from '@speclynx/apidom-ns-openapi-3-0';
|
|
2
|
+
import CallbackElement from "../../../../elements/Callback.mjs";
|
|
3
|
+
import { isReferenceElement } from "../../../../predicates.mjs";
|
|
4
|
+
/**
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export const BaseCallbackVisitor = OpenApi3_1Specification.visitors.document.objects.Callback.$visitor;
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
class CallbackVisitor extends BaseCallbackVisitor {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
super(options);
|
|
14
|
+
this.element = new CallbackElement();
|
|
15
|
+
this.specPath = element => {
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'PathItem'];
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
ObjectElement(path) {
|
|
21
|
+
BaseCallbackVisitor.prototype.ObjectElement.call(this, path);
|
|
22
|
+
|
|
23
|
+
// decorate every ReferenceElement with metadata about their referencing type
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
this.element.filter(isReferenceElement).forEach(referenceElement => {
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
referenceElement.setMetaProperty('referenced-element', 'pathItem');
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default CallbackVisitor;
|