@speclynx/apidom-ns-json-schema-draft-4 1.12.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/NOTICE +16 -7
- package/README.md +24 -24
- package/dist/apidom-ns-json-schema-draft-4.browser.js +1 -1
- package/package.json +8 -8
- package/src/elements/JSONReference.cjs +2 -2
- package/src/elements/JSONReference.mjs +1 -2
- package/src/elements/JSONSchema.cjs +9 -9
- package/src/elements/JSONSchema.mjs +8 -8
- package/src/elements/LinkDescription.cjs +2 -2
- package/src/elements/LinkDescription.mjs +1 -1
- package/src/elements/Media.cjs +2 -2
- package/src/elements/Media.mjs +1 -2
- package/src/index.cjs +24 -21
- package/src/index.mjs +3 -4
- package/src/predicates.cjs +8 -29
- package/src/predicates.mjs +4 -29
- package/src/refractor/index.cjs +57 -16
- package/src/refractor/index.mjs +51 -15
- package/src/refractor/inspect.cjs +55 -0
- package/src/refractor/inspect.mjs +47 -0
- package/src/refractor/plugins/replace-empty-element.cjs +27 -21
- package/src/refractor/plugins/replace-empty-element.mjs +14 -8
- package/src/refractor/predicates.cjs +2 -2
- package/src/refractor/predicates.mjs +1 -1
- package/src/refractor/specification.cjs +14 -3
- package/src/refractor/specification.mjs +14 -3
- package/src/refractor/toolbox.cjs +10 -3
- package/src/refractor/toolbox.mjs +8 -2
- package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
- package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
- package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
- package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
- package/src/refractor/visitors/Visitor.cjs +10 -8
- package/src/refractor/visitors/Visitor.mjs +11 -9
- package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -3
- package/src/refractor/visitors/generics/AlternatingVisitor.mjs +3 -3
- package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +10 -7
- package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +9 -6
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +9 -6
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -5
- package/src/refractor/visitors/json-schema/AllOfVisitor.cjs +7 -10
- package/src/refractor/visitors/json-schema/AllOfVisitor.mjs +6 -8
- package/src/refractor/visitors/json-schema/AnyOfVisitor.cjs +7 -10
- package/src/refractor/visitors/json-schema/AnyOfVisitor.mjs +6 -8
- package/src/refractor/visitors/json-schema/DefinitionsVisitor.cjs +4 -8
- package/src/refractor/visitors/json-schema/DefinitionsVisitor.mjs +3 -6
- package/src/refractor/visitors/json-schema/DependenciesVisitor.cjs +4 -8
- package/src/refractor/visitors/json-schema/DependenciesVisitor.mjs +3 -6
- package/src/refractor/visitors/json-schema/EnumVisitor.cjs +2 -3
- package/src/refractor/visitors/json-schema/EnumVisitor.mjs +2 -3
- package/src/refractor/visitors/json-schema/ItemsVisitor.cjs +10 -12
- package/src/refractor/visitors/json-schema/ItemsVisitor.mjs +9 -10
- package/src/refractor/visitors/json-schema/LinksVisitor.cjs +7 -10
- package/src/refractor/visitors/json-schema/LinksVisitor.mjs +6 -8
- package/src/refractor/visitors/json-schema/OneOfVisitor.cjs +7 -10
- package/src/refractor/visitors/json-schema/OneOfVisitor.mjs +6 -8
- package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.cjs +4 -8
- package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.mjs +3 -6
- package/src/refractor/visitors/json-schema/PropertiesVisitor.cjs +4 -8
- package/src/refractor/visitors/json-schema/PropertiesVisitor.mjs +3 -6
- package/src/refractor/visitors/json-schema/RequiredVisitor.cjs +2 -3
- package/src/refractor/visitors/json-schema/RequiredVisitor.mjs +2 -3
- package/src/refractor/visitors/json-schema/TypeVisitor.cjs +4 -6
- package/src/refractor/visitors/json-schema/TypeVisitor.mjs +4 -6
- package/src/refractor/visitors/json-schema/bases.cjs +45 -0
- package/src/refractor/visitors/json-schema/bases.mjs +39 -0
- package/src/refractor/visitors/json-schema/index.cjs +12 -12
- package/src/refractor/visitors/json-schema/index.mjs +11 -11
- package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.cjs +2 -3
- package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.mjs +2 -3
- package/src/refractor/visitors/json-schema/json-reference/index.cjs +6 -8
- package/src/refractor/visitors/json-schema/json-reference/index.mjs +5 -7
- package/src/refractor/visitors/json-schema/link-description/index.cjs +2 -4
- package/src/refractor/visitors/json-schema/link-description/index.mjs +2 -4
- package/src/refractor/visitors/json-schema/media/index.cjs +2 -4
- package/src/refractor/visitors/json-schema/media/index.mjs +2 -4
- package/types/apidom-ns-json-schema-draft-4.d.ts +169 -151
- package/src/refractor/registration.cjs +0 -19
- package/src/refractor/registration.mjs +0 -10
- package/src/traversal/visitor.cjs +0 -26
- package/src/traversal/visitor.mjs +0 -22
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speclynx/apidom-ns-json-schema-draft-4",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "JSON Schema Draft 4 namespace for ApiDOM.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
},
|
|
10
10
|
"type": "module",
|
|
11
11
|
"sideEffects": [
|
|
12
|
-
"./src/refractor/
|
|
13
|
-
"./src/refractor/
|
|
12
|
+
"./src/refractor/inspect.mjs",
|
|
13
|
+
"./src/refractor/inspect.cjs"
|
|
14
14
|
],
|
|
15
15
|
"unpkg": "./dist/apidom-ns-json-schema-draft-4.browser.min.js",
|
|
16
16
|
"main": "./src/index.cjs",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"test": "npm run build:es && cross-env BABEL_ENV=es babel test --out-dir test --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward' && cross-env NODE_ENV=test mocha",
|
|
32
32
|
"test:update-snapshots": "cross-env UPDATE_SNAPSHOT=1 BABEL_ENV=cjs mocha",
|
|
33
33
|
"typescript:check-types": "tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit",
|
|
34
|
-
"typescript:declaration": "tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json
|
|
34
|
+
"typescript:declaration": "tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json",
|
|
35
35
|
"prepack": "copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .",
|
|
36
36
|
"postpack": "rimraf NOTICE LICENSES"
|
|
37
37
|
},
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"license": "Apache-2.0",
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@babel/runtime-corejs3": "^7.28.4",
|
|
46
|
-
"@speclynx/apidom-
|
|
47
|
-
"@speclynx/apidom-
|
|
48
|
-
"@
|
|
46
|
+
"@speclynx/apidom-core": "^2.1.0",
|
|
47
|
+
"@speclynx/apidom-datamodel": "^2.1.0",
|
|
48
|
+
"@speclynx/apidom-traverse": "^2.1.0",
|
|
49
49
|
"ramda": "~0.32.0",
|
|
50
50
|
"ramda-adjunct": "^6.0.0",
|
|
51
51
|
"ts-mixer": "^6.0.4"
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"README.md",
|
|
61
61
|
"CHANGELOG.md"
|
|
62
62
|
],
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "dd02cfbbe82b0a31c6e7c444cec140e740e1c6e9"
|
|
64
64
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
|
-
var
|
|
5
|
+
var _apidomDatamodel = require("@speclynx/apidom-datamodel");
|
|
6
6
|
/**
|
|
7
7
|
* In Draft 4, $ref behaves a little differently. When an object contains a $ref property,
|
|
8
8
|
* the object is considered a reference, not a schema. Therefore, any other properties you put in that object will
|
|
@@ -13,7 +13,7 @@ var _apidomCore = require("@speclynx/apidom-core");
|
|
|
13
13
|
* @public
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
class JSONReference extends
|
|
16
|
+
class JSONReference extends _apidomDatamodel.ObjectElement {
|
|
17
17
|
constructor(content, meta, attributes) {
|
|
18
18
|
super(content, meta, attributes);
|
|
19
19
|
this.element = 'JSONReference';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ObjectElement } from '@speclynx/apidom-
|
|
2
|
-
|
|
1
|
+
import { ObjectElement } from '@speclynx/apidom-datamodel';
|
|
3
2
|
/**
|
|
4
3
|
* In Draft 4, $ref behaves a little differently. When an object contains a $ref property,
|
|
5
4
|
* the object is considered a reference, not a schema. Therefore, any other properties you put in that object will
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
|
-
var
|
|
5
|
+
var _apidomDatamodel = require("@speclynx/apidom-datamodel");
|
|
6
6
|
/**
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
class JSONSchema extends
|
|
9
|
+
class JSONSchema extends _apidomDatamodel.ObjectElement {
|
|
10
10
|
constructor(content, meta, attributes) {
|
|
11
11
|
super(content, meta, attributes);
|
|
12
12
|
this.element = 'JSONSchemaDraft4';
|
|
@@ -18,11 +18,11 @@ class JSONSchema extends _apidomCore.ObjectElement {
|
|
|
18
18
|
* URI: https://tools.ietf.org/html/draft-wright-json-schema-00
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
get
|
|
21
|
+
get idField() {
|
|
22
22
|
return this.get('id');
|
|
23
23
|
}
|
|
24
|
-
set
|
|
25
|
-
this.set('id',
|
|
24
|
+
set idField(idField) {
|
|
25
|
+
this.set('id', idField);
|
|
26
26
|
}
|
|
27
27
|
get $schema() {
|
|
28
28
|
return this.get('$schema');
|
|
@@ -105,10 +105,10 @@ class JSONSchema extends _apidomCore.ObjectElement {
|
|
|
105
105
|
set additionalItems(additionalItems) {
|
|
106
106
|
this.set('additionalItems', additionalItems);
|
|
107
107
|
}
|
|
108
|
-
get
|
|
108
|
+
get itemsField() {
|
|
109
109
|
return this.get('items');
|
|
110
110
|
}
|
|
111
|
-
set
|
|
111
|
+
set itemsField(items) {
|
|
112
112
|
this.set('items', items);
|
|
113
113
|
}
|
|
114
114
|
get maxItems() {
|
|
@@ -274,10 +274,10 @@ class JSONSchema extends _apidomCore.ObjectElement {
|
|
|
274
274
|
set base(base) {
|
|
275
275
|
this.set('base', base);
|
|
276
276
|
}
|
|
277
|
-
get
|
|
277
|
+
get linksField() {
|
|
278
278
|
return this.get('links');
|
|
279
279
|
}
|
|
280
|
-
set
|
|
280
|
+
set linksField(links) {
|
|
281
281
|
this.set('links', links);
|
|
282
282
|
}
|
|
283
283
|
get media() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ObjectElement } from '@speclynx/apidom-
|
|
1
|
+
import { ObjectElement } from '@speclynx/apidom-datamodel';
|
|
2
2
|
/**
|
|
3
3
|
* @public
|
|
4
4
|
*/
|
|
@@ -14,11 +14,11 @@ class JSONSchema extends ObjectElement {
|
|
|
14
14
|
* URI: https://tools.ietf.org/html/draft-wright-json-schema-00
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
get
|
|
17
|
+
get idField() {
|
|
18
18
|
return this.get('id');
|
|
19
19
|
}
|
|
20
|
-
set
|
|
21
|
-
this.set('id',
|
|
20
|
+
set idField(idField) {
|
|
21
|
+
this.set('id', idField);
|
|
22
22
|
}
|
|
23
23
|
get $schema() {
|
|
24
24
|
return this.get('$schema');
|
|
@@ -101,10 +101,10 @@ class JSONSchema extends ObjectElement {
|
|
|
101
101
|
set additionalItems(additionalItems) {
|
|
102
102
|
this.set('additionalItems', additionalItems);
|
|
103
103
|
}
|
|
104
|
-
get
|
|
104
|
+
get itemsField() {
|
|
105
105
|
return this.get('items');
|
|
106
106
|
}
|
|
107
|
-
set
|
|
107
|
+
set itemsField(items) {
|
|
108
108
|
this.set('items', items);
|
|
109
109
|
}
|
|
110
110
|
get maxItems() {
|
|
@@ -270,10 +270,10 @@ class JSONSchema extends ObjectElement {
|
|
|
270
270
|
set base(base) {
|
|
271
271
|
this.set('base', base);
|
|
272
272
|
}
|
|
273
|
-
get
|
|
273
|
+
get linksField() {
|
|
274
274
|
return this.get('links');
|
|
275
275
|
}
|
|
276
|
-
set
|
|
276
|
+
set linksField(links) {
|
|
277
277
|
this.set('links', links);
|
|
278
278
|
}
|
|
279
279
|
get media() {
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
|
-
var
|
|
5
|
+
var _apidomDatamodel = require("@speclynx/apidom-datamodel");
|
|
6
6
|
/**
|
|
7
7
|
* URI: https://datatracker.ietf.org/doc/html/draft-wright-json-schema-hyperschema-00#section-5
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
class LinkDescription extends
|
|
11
|
+
class LinkDescription extends _apidomDatamodel.ObjectElement {
|
|
12
12
|
constructor(content, meta, attributes) {
|
|
13
13
|
super(content, meta, attributes);
|
|
14
14
|
this.element = 'linkDescription';
|
package/src/elements/Media.cjs
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
|
-
var
|
|
5
|
+
var _apidomDatamodel = require("@speclynx/apidom-datamodel");
|
|
6
6
|
/**
|
|
7
7
|
* URI: https://datatracker.ietf.org/doc/html/draft-wright-json-schema-hyperschema-00#section-4.3
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
class Media extends
|
|
11
|
+
class Media extends _apidomDatamodel.ObjectElement {
|
|
12
12
|
constructor(content, meta, attributes) {
|
|
13
13
|
super(content, meta, attributes);
|
|
14
14
|
this.element = 'media';
|
package/src/elements/Media.mjs
CHANGED
package/src/index.cjs
CHANGED
|
@@ -3,18 +3,7 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
4
|
var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.specificationObj = exports.refractorPluginReplaceEmptyElement = exports.
|
|
7
|
-
var _apidomCore = require("@speclynx/apidom-core");
|
|
8
|
-
exports.isRefElement = _apidomCore.isRefElement;
|
|
9
|
-
exports.isLinkElement = _apidomCore.isLinkElement;
|
|
10
|
-
exports.isMemberElement = _apidomCore.isMemberElement;
|
|
11
|
-
exports.isObjectElement = _apidomCore.isObjectElement;
|
|
12
|
-
exports.isArrayElement = _apidomCore.isArrayElement;
|
|
13
|
-
exports.isBooleanElement = _apidomCore.isBooleanElement;
|
|
14
|
-
exports.isNullElement = _apidomCore.isNullElement;
|
|
15
|
-
exports.isElement = _apidomCore.isElement;
|
|
16
|
-
exports.isNumberElement = _apidomCore.isNumberElement;
|
|
17
|
-
exports.isStringElement = _apidomCore.isStringElement;
|
|
6
|
+
exports.specificationObj = exports.refractorPluginReplaceEmptyElement = exports.refractMedia = exports.refractLinkDescription = exports.refractJSONSchema = exports.refractJSONReference = exports.refract = exports.mediaTypes = exports.isMediaElement = exports.isLinkDescriptionElement = exports.isJSONSchemaElement = exports.isJSONReferenceLikeElement = exports.isJSONReferenceElement = exports.default = exports.Visitor = exports.SpecificationVisitor = exports.PropertiesVisitorBase = exports.PatternedFieldsVisitor = exports.PatternPropertiesVisitorBase = exports.ParentSchemaAwareVisitor = exports.OneOfVisitorBase = exports.MediaVisitorBase = exports.MediaElement = exports.MapVisitor = exports.LinksVisitorBase = exports.LinkDescriptionVisitorBase = exports.LinkDescriptionVisitor = exports.LinkDescriptionElement = exports.JSONSchemaVisitorBase = exports.JSONSchemaVisitor = exports.JSONSchemaElement = exports.JSONSchemaDraft4MediaTypes = exports.JSONReferenceVisitorBase = exports.JSONReferenceElement = exports.ItemsVisitorBase = exports.ItemsVisitor = exports.FixedFieldsVisitor = exports.FallbackVisitor = exports.DependenciesVisitorBase = exports.DefinitionsVisitorBase = exports.AnyOfVisitorBase = exports.AlternatingVisitor = exports.AllOfVisitorBase = void 0;
|
|
18
7
|
var _mediaTypes = _interopRequireWildcard(require("./media-types.cjs"));
|
|
19
8
|
exports.mediaTypes = _mediaTypes.default;
|
|
20
9
|
exports.JSONSchemaDraft4MediaTypes = _mediaTypes.JSONSchemaDraft4MediaTypes;
|
|
@@ -24,7 +13,10 @@ var _replaceEmptyElement = _interopRequireDefault(require("./refractor/plugins/r
|
|
|
24
13
|
exports.refractorPluginReplaceEmptyElement = _replaceEmptyElement.default;
|
|
25
14
|
var _index = _interopRequireWildcard(require("./refractor/index.cjs"));
|
|
26
15
|
exports.refract = _index.default;
|
|
27
|
-
exports.
|
|
16
|
+
exports.refractJSONSchema = _index.refractJSONSchema;
|
|
17
|
+
exports.refractJSONReference = _index.refractJSONReference;
|
|
18
|
+
exports.refractMedia = _index.refractMedia;
|
|
19
|
+
exports.refractLinkDescription = _index.refractLinkDescription;
|
|
28
20
|
var _specification = _interopRequireDefault(require("./refractor/specification.cjs"));
|
|
29
21
|
exports.specificationObj = _specification.default;
|
|
30
22
|
var _predicates = require("./predicates.cjs");
|
|
@@ -50,17 +42,28 @@ var _AlternatingVisitor = _interopRequireDefault(require("./refractor/visitors/g
|
|
|
50
42
|
exports.AlternatingVisitor = _AlternatingVisitor.default;
|
|
51
43
|
var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./refractor/visitors/json-schema/ParentSchemaAwareVisitor.cjs"));
|
|
52
44
|
exports.ParentSchemaAwareVisitor = _ParentSchemaAwareVisitor.default;
|
|
45
|
+
var _bases = require("./refractor/visitors/json-schema/bases.cjs");
|
|
46
|
+
exports.JSONSchemaVisitorBase = _bases.JSONSchemaVisitorBase;
|
|
47
|
+
exports.JSONReferenceVisitorBase = _bases.JSONReferenceVisitorBase;
|
|
48
|
+
exports.LinkDescriptionVisitorBase = _bases.LinkDescriptionVisitorBase;
|
|
49
|
+
exports.MediaVisitorBase = _bases.MediaVisitorBase;
|
|
50
|
+
exports.AllOfVisitorBase = _bases.AllOfVisitorBase;
|
|
51
|
+
exports.AnyOfVisitorBase = _bases.AnyOfVisitorBase;
|
|
52
|
+
exports.OneOfVisitorBase = _bases.OneOfVisitorBase;
|
|
53
|
+
exports.ItemsVisitorBase = _bases.ItemsVisitorBase;
|
|
54
|
+
exports.LinksVisitorBase = _bases.LinksVisitorBase;
|
|
55
|
+
exports.DefinitionsVisitorBase = _bases.DefinitionsVisitorBase;
|
|
56
|
+
exports.DependenciesVisitorBase = _bases.DependenciesVisitorBase;
|
|
57
|
+
exports.PatternPropertiesVisitorBase = _bases.PatternPropertiesVisitorBase;
|
|
58
|
+
exports.PropertiesVisitorBase = _bases.PropertiesVisitorBase;
|
|
53
59
|
var _index2 = _interopRequireDefault(require("./refractor/visitors/json-schema/link-description/index.cjs"));
|
|
54
60
|
exports.LinkDescriptionVisitor = _index2.default;
|
|
55
61
|
var _index3 = _interopRequireDefault(require("./refractor/visitors/json-schema/index.cjs"));
|
|
56
62
|
exports.JSONSchemaVisitor = _index3.default;
|
|
57
63
|
var _ItemsVisitor = _interopRequireDefault(require("./refractor/visitors/json-schema/ItemsVisitor.cjs"));
|
|
58
64
|
exports.ItemsVisitor = _ItemsVisitor.default;
|
|
59
|
-
var
|
|
60
|
-
exports.
|
|
61
|
-
exports.
|
|
62
|
-
|
|
63
|
-
exports.
|
|
64
|
-
exports.JSONReferenceElement = _registration.JSONReferenceElement;
|
|
65
|
-
exports.MediaElement = _registration.MediaElement;
|
|
66
|
-
exports.LinkDescriptionElement = _registration.LinkDescriptionElement;
|
|
65
|
+
var _inspect = require("./refractor/inspect.cjs");
|
|
66
|
+
exports.JSONSchemaElement = _inspect.JSONSchemaElement;
|
|
67
|
+
exports.JSONReferenceElement = _inspect.JSONReferenceElement;
|
|
68
|
+
exports.MediaElement = _inspect.MediaElement;
|
|
69
|
+
exports.LinkDescriptionElement = _inspect.LinkDescriptionElement;
|
package/src/index.mjs
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
export { isRefElement, isLinkElement, isMemberElement, isObjectElement, isArrayElement, isBooleanElement, isNullElement, isElement, isNumberElement, isStringElement } from '@speclynx/apidom-core';
|
|
2
1
|
export { default as mediaTypes, JSONSchemaDraft4MediaTypes } from "./media-types.mjs";
|
|
3
2
|
export { default } from "./namespace.mjs";
|
|
4
3
|
export { default as refractorPluginReplaceEmptyElement } from "./refractor/plugins/replace-empty-element.mjs";
|
|
5
|
-
export { default as refract,
|
|
4
|
+
export { default as refract, refractJSONSchema, refractJSONReference, refractMedia, refractLinkDescription } from "./refractor/index.mjs";
|
|
6
5
|
export { default as specificationObj } from "./refractor/specification.mjs";
|
|
7
6
|
export { isJSONReferenceElement, isJSONSchemaElement, isLinkDescriptionElement, isMediaElement } from "./predicates.mjs";
|
|
8
7
|
export { isJSONReferenceLikeElement } from "./refractor/predicates.mjs";
|
|
@@ -14,11 +13,11 @@ export { default as PatternedFieldsVisitor } from "./refractor/visitors/generics
|
|
|
14
13
|
export { default as MapVisitor } from "./refractor/visitors/generics/MapVisitor.mjs";
|
|
15
14
|
export { default as AlternatingVisitor } from "./refractor/visitors/generics/AlternatingVisitor.mjs";
|
|
16
15
|
export { default as ParentSchemaAwareVisitor } from "./refractor/visitors/json-schema/ParentSchemaAwareVisitor.mjs";
|
|
16
|
+
export { JSONSchemaVisitorBase, JSONReferenceVisitorBase, LinkDescriptionVisitorBase, MediaVisitorBase, AllOfVisitorBase, AnyOfVisitorBase, OneOfVisitorBase, ItemsVisitorBase, LinksVisitorBase, DefinitionsVisitorBase, DependenciesVisitorBase, PatternPropertiesVisitorBase, PropertiesVisitorBase } from "./refractor/visitors/json-schema/bases.mjs";
|
|
17
17
|
export { default as LinkDescriptionVisitor } from "./refractor/visitors/json-schema/link-description/index.mjs";
|
|
18
18
|
export { default as JSONSchemaVisitor } from "./refractor/visitors/json-schema/index.mjs";
|
|
19
19
|
export { default as ItemsVisitor } from "./refractor/visitors/json-schema/ItemsVisitor.mjs";
|
|
20
|
-
export { keyMap, getNodeType } from "./traversal/visitor.mjs";
|
|
21
20
|
/**
|
|
22
21
|
* JSON Schema Draft 4 specification elements.
|
|
23
22
|
*/
|
|
24
|
-
export { JSONSchemaElement, JSONReferenceElement, MediaElement, LinkDescriptionElement } from "./refractor/
|
|
23
|
+
export { JSONSchemaElement, JSONReferenceElement, MediaElement, LinkDescriptionElement } from "./refractor/inspect.mjs";
|
package/src/predicates.cjs
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports.isMediaElement = exports.isLinkDescriptionElement = exports.isJSONSchemaElement = exports.isJSONReferenceElement = void 0;
|
|
6
|
-
var _apidomCore = require("@speclynx/apidom-core");
|
|
7
6
|
var _JSONSchema = _interopRequireDefault(require("./elements/JSONSchema.cjs"));
|
|
8
7
|
var _JSONReference = _interopRequireDefault(require("./elements/JSONReference.cjs"));
|
|
9
8
|
var _Media = _interopRequireDefault(require("./elements/Media.cjs"));
|
|
@@ -11,43 +10,23 @@ var _LinkDescription = _interopRequireDefault(require("./elements/LinkDescriptio
|
|
|
11
10
|
/**
|
|
12
11
|
* @public
|
|
13
12
|
*/
|
|
14
|
-
const isJSONSchemaElement =
|
|
15
|
-
hasBasicElementProps,
|
|
16
|
-
isElementType,
|
|
17
|
-
primitiveEq
|
|
18
|
-
}) => {
|
|
19
|
-
return element => element instanceof _JSONSchema.default || hasBasicElementProps(element) && isElementType('JSONSchemaDraft4', element) && primitiveEq('object', element);
|
|
20
|
-
});
|
|
13
|
+
const isJSONSchemaElement = element => element instanceof _JSONSchema.default;
|
|
21
14
|
|
|
22
15
|
/**
|
|
23
16
|
* @public
|
|
24
17
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
isElementType,
|
|
28
|
-
primitiveEq
|
|
29
|
-
}) => {
|
|
30
|
-
return element => element instanceof _JSONReference.default || hasBasicElementProps(element) && isElementType('JSONReference', element) && primitiveEq('object', element);
|
|
31
|
-
});
|
|
18
|
+
exports.isJSONSchemaElement = isJSONSchemaElement;
|
|
19
|
+
const isJSONReferenceElement = element => element instanceof _JSONReference.default;
|
|
32
20
|
|
|
33
21
|
/**
|
|
34
22
|
* @public
|
|
35
23
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
isElementType,
|
|
39
|
-
primitiveEq
|
|
40
|
-
}) => {
|
|
41
|
-
return element => element instanceof _Media.default || hasBasicElementProps(element) && isElementType('media', element) && primitiveEq('object', element);
|
|
42
|
-
});
|
|
24
|
+
exports.isJSONReferenceElement = isJSONReferenceElement;
|
|
25
|
+
const isMediaElement = element => element instanceof _Media.default;
|
|
43
26
|
|
|
44
27
|
/**
|
|
45
28
|
* @public
|
|
46
29
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
primitiveEq
|
|
51
|
-
}) => {
|
|
52
|
-
return element => element instanceof _LinkDescription.default || hasBasicElementProps(element) && isElementType('linkDescription', element) && primitiveEq('object', element);
|
|
53
|
-
});
|
|
30
|
+
exports.isMediaElement = isMediaElement;
|
|
31
|
+
const isLinkDescriptionElement = element => element instanceof _LinkDescription.default;
|
|
32
|
+
exports.isLinkDescriptionElement = isLinkDescriptionElement;
|
package/src/predicates.mjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createPredicate } from '@speclynx/apidom-core';
|
|
2
1
|
import JSONSchemaElement from "./elements/JSONSchema.mjs";
|
|
3
2
|
import JSONReferenceElement from "./elements/JSONReference.mjs";
|
|
4
3
|
import MediaElement from "./elements/Media.mjs";
|
|
@@ -6,43 +5,19 @@ import LinkDescriptionElement from "./elements/LinkDescription.mjs";
|
|
|
6
5
|
/**
|
|
7
6
|
* @public
|
|
8
7
|
*/
|
|
9
|
-
export const isJSONSchemaElement =
|
|
10
|
-
hasBasicElementProps,
|
|
11
|
-
isElementType,
|
|
12
|
-
primitiveEq
|
|
13
|
-
}) => {
|
|
14
|
-
return element => element instanceof JSONSchemaElement || hasBasicElementProps(element) && isElementType('JSONSchemaDraft4', element) && primitiveEq('object', element);
|
|
15
|
-
});
|
|
8
|
+
export const isJSONSchemaElement = element => element instanceof JSONSchemaElement;
|
|
16
9
|
|
|
17
10
|
/**
|
|
18
11
|
* @public
|
|
19
12
|
*/
|
|
20
|
-
export const isJSONReferenceElement =
|
|
21
|
-
hasBasicElementProps,
|
|
22
|
-
isElementType,
|
|
23
|
-
primitiveEq
|
|
24
|
-
}) => {
|
|
25
|
-
return element => element instanceof JSONReferenceElement || hasBasicElementProps(element) && isElementType('JSONReference', element) && primitiveEq('object', element);
|
|
26
|
-
});
|
|
13
|
+
export const isJSONReferenceElement = element => element instanceof JSONReferenceElement;
|
|
27
14
|
|
|
28
15
|
/**
|
|
29
16
|
* @public
|
|
30
17
|
*/
|
|
31
|
-
export const isMediaElement =
|
|
32
|
-
hasBasicElementProps,
|
|
33
|
-
isElementType,
|
|
34
|
-
primitiveEq
|
|
35
|
-
}) => {
|
|
36
|
-
return element => element instanceof MediaElement || hasBasicElementProps(element) && isElementType('media', element) && primitiveEq('object', element);
|
|
37
|
-
});
|
|
18
|
+
export const isMediaElement = element => element instanceof MediaElement;
|
|
38
19
|
|
|
39
20
|
/**
|
|
40
21
|
* @public
|
|
41
22
|
*/
|
|
42
|
-
export const isLinkDescriptionElement =
|
|
43
|
-
hasBasicElementProps,
|
|
44
|
-
isElementType,
|
|
45
|
-
primitiveEq
|
|
46
|
-
}) => {
|
|
47
|
-
return element => element instanceof LinkDescriptionElement || hasBasicElementProps(element) && isElementType('linkDescription', element) && primitiveEq('object', element);
|
|
48
|
-
});
|
|
23
|
+
export const isLinkDescriptionElement = element => element instanceof LinkDescriptionElement;
|
package/src/refractor/index.cjs
CHANGED
|
@@ -2,52 +2,93 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.
|
|
5
|
+
exports.refractMedia = exports.refractLinkDescription = exports.refractJSONSchema = exports.refractJSONReference = exports.default = void 0;
|
|
6
6
|
var _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _apidomTraverse = require("@speclynx/apidom-traverse");
|
|
8
|
+
var _apidomDatamodel = require("@speclynx/apidom-datamodel");
|
|
7
9
|
var _ramda = require("ramda");
|
|
8
10
|
var _specification = _interopRequireDefault(require("./specification.cjs"));
|
|
9
|
-
var _visitor = require("../traversal/visitor.cjs");
|
|
10
11
|
var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
|
|
11
20
|
/**
|
|
12
21
|
* @public
|
|
13
22
|
*/
|
|
14
23
|
const refract = (value, {
|
|
15
|
-
|
|
24
|
+
element = 'jSONSchemaDraft4',
|
|
16
25
|
plugins = [],
|
|
17
26
|
specificationObj = _specification.default
|
|
18
27
|
} = {}) => {
|
|
19
|
-
const
|
|
20
|
-
const resolvedSpec = (0, _apidomCore.
|
|
28
|
+
const genericElement = (0, _apidomDatamodel.refract)(value);
|
|
29
|
+
const resolvedSpec = (0, _apidomCore.resolveSpecification)(specificationObj);
|
|
30
|
+
const elementMap = resolvedSpec.elementMap;
|
|
31
|
+
const specPath = elementMap[element];
|
|
32
|
+
if (!specPath) {
|
|
33
|
+
throw new Error(`Unknown element type: "${element}"`);
|
|
34
|
+
}
|
|
21
35
|
|
|
22
36
|
/**
|
|
23
37
|
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
24
38
|
* We don't allow consumers to hook into this translation.
|
|
25
|
-
* Though we allow consumers to define their
|
|
39
|
+
* Though we allow consumers to define their own plugins on already transformed ApiDOM.
|
|
26
40
|
*/
|
|
27
41
|
const RootVisitorClass = (0, _ramda.path)(specPath, resolvedSpec);
|
|
28
42
|
const rootVisitor = new RootVisitorClass({
|
|
29
43
|
specObj: resolvedSpec
|
|
30
44
|
});
|
|
31
|
-
(0,
|
|
45
|
+
(0, _apidomTraverse.traverse)(genericElement, rootVisitor);
|
|
32
46
|
|
|
33
47
|
/**
|
|
34
48
|
* Running plugins visitors means extra single traversal === performance hit.
|
|
35
49
|
*/
|
|
36
50
|
return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
|
|
37
|
-
toolboxCreator: _toolbox.default
|
|
38
|
-
visitorOptions: {
|
|
39
|
-
keyMap: _visitor.keyMap,
|
|
40
|
-
nodeTypeGetter: _visitor.getNodeType
|
|
41
|
-
}
|
|
51
|
+
toolboxCreator: _toolbox.default
|
|
42
52
|
});
|
|
43
53
|
};
|
|
44
54
|
|
|
45
55
|
/**
|
|
56
|
+
* Refracts a value into a JSONSchemaElement.
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
const refractJSONSchema = (value, options = {}) => refract(value, {
|
|
60
|
+
...options,
|
|
61
|
+
element: 'jSONSchemaDraft4'
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Refracts a value into a JSONReferenceElement.
|
|
66
|
+
* @public
|
|
67
|
+
*/
|
|
68
|
+
exports.refractJSONSchema = refractJSONSchema;
|
|
69
|
+
const refractJSONReference = (value, options = {}) => refract(value, {
|
|
70
|
+
...options,
|
|
71
|
+
element: 'jSONReference'
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Refracts a value into a MediaElement.
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
exports.refractJSONReference = refractJSONReference;
|
|
79
|
+
const refractMedia = (value, options = {}) => refract(value, {
|
|
80
|
+
...options,
|
|
81
|
+
element: 'media'
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Refracts a value into a LinkDescriptionElement.
|
|
46
86
|
* @public
|
|
47
87
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
...options
|
|
88
|
+
exports.refractMedia = refractMedia;
|
|
89
|
+
const refractLinkDescription = (value, options = {}) => refract(value, {
|
|
90
|
+
...options,
|
|
91
|
+
element: 'linkDescription'
|
|
51
92
|
});
|
|
52
|
-
exports.
|
|
93
|
+
exports.refractLinkDescription = refractLinkDescription;
|
|
53
94
|
var _default = exports.default = refract;
|
package/src/refractor/index.mjs
CHANGED
|
@@ -1,47 +1,83 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveSpecification, dispatchRefractorPlugins } from '@speclynx/apidom-core';
|
|
2
|
+
import { traverse } from '@speclynx/apidom-traverse';
|
|
3
|
+
import { refract as baseRefract } from '@speclynx/apidom-datamodel';
|
|
2
4
|
import { path } from 'ramda';
|
|
3
5
|
import specification from "./specification.mjs";
|
|
4
|
-
import { keyMap, getNodeType } from "../traversal/visitor.mjs";
|
|
5
6
|
import createToolbox from "./toolbox.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
6
13
|
/**
|
|
7
14
|
* @public
|
|
8
15
|
*/
|
|
9
16
|
const refract = (value, {
|
|
10
|
-
|
|
17
|
+
element = 'jSONSchemaDraft4',
|
|
11
18
|
plugins = [],
|
|
12
19
|
specificationObj = specification
|
|
13
20
|
} = {}) => {
|
|
14
|
-
const
|
|
15
|
-
const resolvedSpec =
|
|
21
|
+
const genericElement = baseRefract(value);
|
|
22
|
+
const resolvedSpec = resolveSpecification(specificationObj);
|
|
23
|
+
const elementMap = resolvedSpec.elementMap;
|
|
24
|
+
const specPath = elementMap[element];
|
|
25
|
+
if (!specPath) {
|
|
26
|
+
throw new Error(`Unknown element type: "${element}"`);
|
|
27
|
+
}
|
|
16
28
|
|
|
17
29
|
/**
|
|
18
30
|
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
19
31
|
* We don't allow consumers to hook into this translation.
|
|
20
|
-
* Though we allow consumers to define their
|
|
32
|
+
* Though we allow consumers to define their own plugins on already transformed ApiDOM.
|
|
21
33
|
*/
|
|
22
34
|
const RootVisitorClass = path(specPath, resolvedSpec);
|
|
23
35
|
const rootVisitor = new RootVisitorClass({
|
|
24
36
|
specObj: resolvedSpec
|
|
25
37
|
});
|
|
26
|
-
|
|
38
|
+
traverse(genericElement, rootVisitor);
|
|
27
39
|
|
|
28
40
|
/**
|
|
29
41
|
* Running plugins visitors means extra single traversal === performance hit.
|
|
30
42
|
*/
|
|
31
43
|
return dispatchRefractorPlugins(rootVisitor.element, plugins, {
|
|
32
|
-
toolboxCreator: createToolbox
|
|
33
|
-
visitorOptions: {
|
|
34
|
-
keyMap,
|
|
35
|
-
nodeTypeGetter: getNodeType
|
|
36
|
-
}
|
|
44
|
+
toolboxCreator: createToolbox
|
|
37
45
|
});
|
|
38
46
|
};
|
|
39
47
|
|
|
40
48
|
/**
|
|
49
|
+
* Refracts a value into a JSONSchemaElement.
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export const refractJSONSchema = (value, options = {}) => refract(value, {
|
|
53
|
+
...options,
|
|
54
|
+
element: 'jSONSchemaDraft4'
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Refracts a value into a JSONReferenceElement.
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
export const refractJSONReference = (value, options = {}) => refract(value, {
|
|
62
|
+
...options,
|
|
63
|
+
element: 'jSONReference'
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Refracts a value into a MediaElement.
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
export const refractMedia = (value, options = {}) => refract(value, {
|
|
71
|
+
...options,
|
|
72
|
+
element: 'media'
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Refracts a value into a LinkDescriptionElement.
|
|
41
77
|
* @public
|
|
42
78
|
*/
|
|
43
|
-
export const
|
|
44
|
-
|
|
45
|
-
|
|
79
|
+
export const refractLinkDescription = (value, options = {}) => refract(value, {
|
|
80
|
+
...options,
|
|
81
|
+
element: 'linkDescription'
|
|
46
82
|
});
|
|
47
83
|
export default refract;
|