@speclynx/apidom-ns-json-schema-2020-12 1.12.1 → 2.0.1

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.
@@ -1,10 +1,11 @@
1
- import { ArrayElement, ObjectElement, isStringElement, isArrayElement, isElement, isMemberElement, includesClasses, cloneDeep, toValue } from '@speclynx/apidom-core';
1
+ import { ArrayElement, ObjectElement, isArrayElement, isElement, isMemberElement, isStringElement, includesClasses, cloneDeep, SourceMapElement } from '@speclynx/apidom-datamodel';
2
+ import { toValue } from '@speclynx/apidom-core';
3
+ import { getNodeType } from '@speclynx/apidom-traverse';
2
4
  /**
3
5
  * JSON Schema 2020-12 specification elements.
4
6
  */
5
7
  import JSONSchemaElement from "../../elements/JSONSchema.mjs";
6
8
  import LinkDescriptionElement from "../../elements/LinkDescription.mjs";
7
- import { getNodeType } from "../../traversal/visitor.mjs";
8
9
  /**
9
10
  * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
10
11
  * with empty key, empty value, or both. If the value is not provided in YAML format,
@@ -38,7 +39,7 @@ import { getNodeType } from "../../traversal/visitor.mjs";
38
39
  * (StringElement)
39
40
  * (JSONSchemaElement))
40
41
  */
41
- const isEmptyElement = element => isStringElement(element) && includesClasses(['yaml-e-node', 'yaml-e-scalar'], element);
42
+ const isEmptyElement = element => isStringElement(element) && includesClasses(element, ['yaml-e-node', 'yaml-e-scalar']);
42
43
  const schema = {
43
44
  JSONSchema202012Element: {
44
45
  prefixItems(...args) {
@@ -231,9 +232,12 @@ const findElementFactory = (ancestor, keyName) => {
231
232
  const plugin = () => () => {
232
233
  return {
233
234
  visitor: {
234
- StringElement(element, key, parent, path, ancestors) {
235
- if (!isEmptyElement(element)) return undefined;
236
- const lineage = [...ancestors, parent].filter(isElement);
235
+ StringElement(path) {
236
+ const element = path.node;
237
+ if (!isEmptyElement(element)) return;
238
+
239
+ // getAncestorNodes() returns [parent, grandparent, ..., root], so reverse to get [root, ..., parent]
240
+ const lineage = path.getAncestorNodes().reverse().filter(isElement);
237
241
  const parentElement = lineage.at(-1);
238
242
  let elementFactory;
239
243
  let context;
@@ -246,10 +250,12 @@ const plugin = () => () => {
246
250
  }
247
251
 
248
252
  // no element factory found
249
- if (typeof elementFactory !== 'function') return undefined;
250
- return elementFactory.call({
253
+ if (typeof elementFactory !== 'function') return;
254
+ const replacement = elementFactory.call({
251
255
  context
252
256
  }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
257
+ SourceMapElement.transfer(element, replacement);
258
+ path.replaceWith(replacement);
253
259
  }
254
260
  }
255
261
  };
@@ -10,7 +10,7 @@ var _PrefixItemsVisitor = _interopRequireDefault(require("./visitors/json-schema
10
10
  var _index2 = _interopRequireDefault(require("./visitors/json-schema/link-description/index.cjs"));
11
11
  const specification = (0, _ramda.pipe)(
12
12
  // JSON Schema object modifications
13
- (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', '$visitor'], _index.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveAnchor']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicAnchor'], _apidomNsJsonSchema.specificationObj.visitors.value), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveRef']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicRef'], _apidomNsJsonSchema.specificationObj.visitors.value), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'not'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'if'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'then'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'else'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'prefixItems'], _PrefixItemsVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'items'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contains'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalProperties'], _index.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalItems']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'propertyNames'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedItems'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedProperties'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentSchema'], _index.default),
13
+ (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'element'], 'jSONSchema202012'), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', '$visitor'], _index.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveAnchor']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicAnchor'], _apidomNsJsonSchema.specificationObj.visitors.value), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveRef']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicRef'], _apidomNsJsonSchema.specificationObj.visitors.value), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'not'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'if'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'then'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'else'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'prefixItems'], _PrefixItemsVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'items'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contains'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalProperties'], _index.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalItems']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'propertyNames'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedItems'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedProperties'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentSchema'], _index.default),
14
14
  // Link Description object modifications
15
- (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', '$visitor'], _index2.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'targetSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'hrefSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'headerSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionSchema'], _index.default))(_apidomNsJsonSchema.specificationObj);
15
+ (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'element'], 'linkDescription'), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', '$visitor'], _index2.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'targetSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'hrefSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'headerSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionSchema'], _index.default))(_apidomNsJsonSchema.specificationObj);
16
16
  var _default = exports.default = specification;
@@ -5,7 +5,7 @@ import JSONSchemaPrefixItemsVisitor from "./visitors/json-schema/PrefixItemsVisi
5
5
  import JSONSchemaLinkDescriptionVisitor from "./visitors/json-schema/link-description/index.mjs";
6
6
  const specification = pipe(
7
7
  // JSON Schema object modifications
8
- assocPath(['visitors', 'document', 'objects', 'JSONSchema', '$visitor'], JSONSchemaVisitor), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveAnchor']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicAnchor'], specificationObj.visitors.value), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveRef']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicRef'], specificationObj.visitors.value), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'not'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'if'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'then'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'else'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'prefixItems'], JSONSchemaPrefixItemsVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'items'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contains'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalProperties'], JSONSchemaVisitor), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalItems']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'propertyNames'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedItems'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedProperties'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentSchema'], JSONSchemaVisitor),
8
+ assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'element'], 'jSONSchema202012'), assocPath(['visitors', 'document', 'objects', 'JSONSchema', '$visitor'], JSONSchemaVisitor), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveAnchor']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicAnchor'], specificationObj.visitors.value), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveRef']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$dynamicRef'], specificationObj.visitors.value), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'not'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'if'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'then'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'else'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'prefixItems'], JSONSchemaPrefixItemsVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'items'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contains'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalProperties'], JSONSchemaVisitor), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalItems']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'propertyNames'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedItems'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedProperties'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentSchema'], JSONSchemaVisitor),
9
9
  // Link Description object modifications
10
- assocPath(['visitors', 'document', 'objects', 'LinkDescription', '$visitor'], JSONSchemaLinkDescriptionVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'targetSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'hrefSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'headerSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionSchema'], JSONSchemaVisitor))(specificationObj);
10
+ assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'element'], 'linkDescription'), assocPath(['visitors', 'document', 'objects', 'LinkDescription', '$visitor'], JSONSchemaLinkDescriptionVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'targetSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'hrefSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'headerSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionSchema'], JSONSchemaVisitor))(specificationObj);
11
11
  export default specification;
@@ -4,15 +4,20 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
  var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
- var _apidomCore = require("@speclynx/apidom-core");
7
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
8
8
  var jsonSchema202012Predicates = _interopRequireWildcard(require("../predicates.cjs"));
9
9
  var _namespace = _interopRequireDefault(require("../namespace.cjs"));
10
+ /**
11
+ * @public
12
+ */
13
+
10
14
  const createToolbox = () => {
11
- const namespace = (0, _apidomCore.createNamespace)(_namespace.default);
15
+ const namespace = new _apidomDatamodel.Namespace();
12
16
  const predicates = {
13
17
  ...jsonSchema202012Predicates,
14
- isStringElement: _apidomCore.isStringElement
18
+ isStringElement: _apidomDatamodel.isStringElement
15
19
  };
20
+ namespace.use(_namespace.default);
16
21
  return {
17
22
  predicates,
18
23
  namespace
@@ -1,12 +1,16 @@
1
- import { createNamespace, isStringElement } from '@speclynx/apidom-core';
1
+ import { isStringElement, Namespace } from '@speclynx/apidom-datamodel';
2
2
  import * as jsonSchema202012Predicates from "../predicates.mjs";
3
3
  import jsonSchema202012Namespace from "../namespace.mjs";
4
+ /**
5
+ * @public
6
+ */
4
7
  const createToolbox = () => {
5
- const namespace = createNamespace(jsonSchema202012Namespace);
8
+ const namespace = new Namespace();
6
9
  const predicates = {
7
10
  ...jsonSchema202012Predicates,
8
11
  isStringElement
9
12
  };
13
+ namespace.use(jsonSchema202012Namespace);
10
14
  return {
11
15
  predicates,
12
16
  namespace
@@ -2,8 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
- var _tsMixer = require("ts-mixer");
6
- var _apidomCore = require("@speclynx/apidom-core");
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
6
  var _apidomNsJsonSchema = require("@speclynx/apidom-ns-json-schema-2019-09");
8
7
  /**
9
8
  * @public
@@ -12,19 +11,20 @@ var _apidomNsJsonSchema = require("@speclynx/apidom-ns-json-schema-2019-09");
12
11
  /**
13
12
  * @public
14
13
  */
15
- class PrefixItemsVisitor extends (0, _tsMixer.Mixin)(_apidomNsJsonSchema.SpecificationVisitor, _apidomNsJsonSchema.ParentSchemaAwareVisitor, _apidomNsJsonSchema.FallbackVisitor) {
14
+ class PrefixItemsVisitor extends _apidomNsJsonSchema.BaseSchemaArrayVisitor {
16
15
  constructor(options) {
17
16
  super(options);
18
- this.element = new _apidomCore.ArrayElement();
17
+ this.element = new _apidomDatamodel.ArrayElement();
19
18
  this.element.classes.push('json-schema-prefixItems');
20
19
  }
21
- ArrayElement(arrayElement) {
20
+ ArrayElement(path) {
21
+ const arrayElement = path.node;
22
22
  arrayElement.forEach(item => {
23
23
  const element = this.toRefractedElement(['document', 'objects', 'JSONSchema'], item);
24
24
  this.element.push(element);
25
25
  });
26
26
  this.copyMetaAndAttributes(arrayElement, this.element);
27
- return _apidomCore.BREAK;
27
+ path.stop();
28
28
  }
29
29
  }
30
30
  var _default = exports.default = PrefixItemsVisitor;
@@ -1,6 +1,5 @@
1
- import { Mixin } from 'ts-mixer';
2
- import { ArrayElement, BREAK } from '@speclynx/apidom-core';
3
- import { SpecificationVisitor, FallbackVisitor, ParentSchemaAwareVisitor } from '@speclynx/apidom-ns-json-schema-2019-09';
1
+ import { ArrayElement } from '@speclynx/apidom-datamodel';
2
+ import { BaseSchemaArrayVisitor } from '@speclynx/apidom-ns-json-schema-2019-09';
4
3
 
5
4
  /**
6
5
  * @public
@@ -9,19 +8,20 @@ import { SpecificationVisitor, FallbackVisitor, ParentSchemaAwareVisitor } from
9
8
  /**
10
9
  * @public
11
10
  */
12
- class PrefixItemsVisitor extends Mixin(SpecificationVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
11
+ class PrefixItemsVisitor extends BaseSchemaArrayVisitor {
13
12
  constructor(options) {
14
13
  super(options);
15
14
  this.element = new ArrayElement();
16
15
  this.element.classes.push('json-schema-prefixItems');
17
16
  }
18
- ArrayElement(arrayElement) {
17
+ ArrayElement(path) {
18
+ const arrayElement = path.node;
19
19
  arrayElement.forEach(item => {
20
20
  const element = this.toRefractedElement(['document', 'objects', 'JSONSchema'], item);
21
21
  this.element.push(element);
22
22
  });
23
23
  this.copyMetaAndAttributes(arrayElement, this.element);
24
- return BREAK;
24
+ path.stop();
25
25
  }
26
26
  }
27
27
  export default PrefixItemsVisitor;