@swagger-api/apidom-core 1.0.0-beta.9 → 1.0.0-rc.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swagger-api/apidom-core",
3
- "version": "1.0.0-beta.9",
3
+ "version": "1.0.0-rc.1",
4
4
  "description": "Tools for manipulating ApiDOM structures.",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -26,10 +26,10 @@
26
26
  "build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",
27
27
  "lint": "eslint ./",
28
28
  "lint:fix": "eslint ./ --fix",
29
- "clean": "rimraf --glob 'src/**/*.mjs' 'src/**/*.cjs' 'test/**/*.mjs' ./dist ./types",
29
+ "clean": "rimraf --glob 'src/**/*.mjs' 'src/**/*.cjs' ./dist ./types",
30
30
  "typescript:check-types": "tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit",
31
31
  "typescript:declaration": "tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json && copyfiles -u 2 ../@types/minim.d.ts ./types && node ./scripts/file-replace-bof.js './types/apidom-core.d.ts' '/// <reference path=\"./minim.d.ts\" />\nimport * as minim from \"minim\";'",
32
- "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
+ "test": "NODE_ENV=test ts-mocha --exit",
33
33
  "test:update-snapshots": "cross-env UPDATE_SNAPSHOT=1 NODE_ENV=test mocha",
34
34
  "prepack": "copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .",
35
35
  "postpack": "rimraf NOTICE LICENSES"
@@ -41,14 +41,14 @@
41
41
  "author": "Vladimír Gorej",
42
42
  "license": "Apache-2.0",
43
43
  "dependencies": {
44
- "@babel/runtime-corejs3": "^7.20.7",
45
- "@swagger-api/apidom-ast": "^1.0.0-beta.9",
46
- "@swagger-api/apidom-error": "^1.0.0-beta.9",
44
+ "@babel/runtime-corejs3": "^7.26.10",
45
+ "@swagger-api/apidom-ast": "^1.0.0-rc.1",
46
+ "@swagger-api/apidom-error": "^1.0.0-rc.1",
47
47
  "@types/ramda": "~0.30.0",
48
48
  "minim": "~0.23.8",
49
49
  "ramda": "~0.30.0",
50
50
  "ramda-adjunct": "^5.0.0",
51
- "short-unique-id": "^5.0.2",
51
+ "short-unique-id": "^5.3.2",
52
52
  "ts-mixer": "^6.0.3"
53
53
  },
54
54
  "files": [
@@ -62,5 +62,5 @@
62
62
  "README.md",
63
63
  "CHANGELOG.md"
64
64
  ],
65
- "gitHead": "2d97871bd8addd42274917c6d131a09eebe9b1f8"
65
+ "gitHead": "e08fdf4c8a8070453c33066cc50f4e949fc4bd20"
66
66
  }
@@ -7,6 +7,7 @@ var _minim = require("minim");
7
7
  var _index = require("../predicates/index.cjs");
8
8
  var _DeepCloneError = _interopRequireDefault(require("./errors/DeepCloneError.cjs"));
9
9
  var _ShallowCloneError = _interopRequireDefault(require("./errors/ShallowCloneError.cjs"));
10
+ var _util = require("../util.cjs");
10
11
  /**
11
12
  * @public
12
13
  */
@@ -109,6 +110,9 @@ const cloneShallowElement = element => {
109
110
  // @ts-ignore
110
111
  const copy = new element.constructor();
111
112
  copy.element = element.element;
113
+ if ((0, _index.hasElementSourceMap)(element)) {
114
+ (0, _util.assignSourceMap)(copy, element);
115
+ }
112
116
  if (element.meta.length > 0) {
113
117
  copy._meta = cloneDeep(element.meta);
114
118
  }
@@ -1,7 +1,8 @@
1
1
  import { ArraySlice, ObjectSlice, KeyValuePair } from 'minim';
2
- import { isElement } from "../predicates/index.mjs";
2
+ import { hasElementSourceMap, isElement } from "../predicates/index.mjs";
3
3
  import DeepCloneError from "./errors/DeepCloneError.mjs";
4
4
  import ShallowCloneError from "./errors/ShallowCloneError.mjs";
5
+ import { assignSourceMap } from "../util.mjs";
5
6
  /**
6
7
  * @public
7
8
  */
@@ -101,6 +102,9 @@ const cloneShallowElement = element => {
101
102
  // @ts-ignore
102
103
  const copy = new element.constructor();
103
104
  copy.element = element.element;
105
+ if (hasElementSourceMap(element)) {
106
+ assignSourceMap(copy, element);
107
+ }
104
108
  if (element.meta.length > 0) {
105
109
  copy._meta = cloneDeep(element.meta);
106
110
  }
package/src/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
4
4
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
5
  exports.__esModule = true;
6
- exports.visit = exports.traverse = exports.transclude = exports.toYAML = exports.toValue = exports.toString = exports.toJSON = exports.some = exports.sexprs = exports.reject = exports.refractorPluginSemanticElementIdentity = exports.refractorPluginElementIdentity = exports.refract = exports.parents = exports.namespace = exports.mergeRight = exports.mergeLeft = exports.mergeAllVisitors = exports.keyMap = exports.isStringElement = exports.isSourceMapElement = exports.isRefElement = exports.isPrimitiveElement = exports.isParseResultElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isElement = exports.isBooleanElement = exports.isArrayElement = exports.isAnnotationElement = exports.includesSymbols = exports.includesClasses = exports.hasElementSourceMap = exports.getNodeType = exports.from = exports.findAtOffset = exports.find = exports.filter = exports.dispatchRefractorPlugins = exports.dereference = exports.dehydrate = exports.defaultIdentityManager = exports.deepmerge = exports.createPredicate = exports.createNamespace = exports.cloneShallow = exports.cloneNode = exports.cloneDeep = exports.Transcluder = exports.StringElement = exports.SourceMapElement = exports.ShallowCloneError = exports.RefElement = exports.ParseResultElement = exports.ObjectSlice = exports.ObjectElement = exports.NumberElement = exports.NullElement = exports.Namespace = exports.MemberElement = exports.MediaTypes = exports.LinkElement = exports.KeyValuePair = exports.IdentityManager = exports.ElementIdentityError = exports.Element = exports.DeepCloneError = exports.CommentElement = exports.CloneError = exports.BooleanElement = exports.BREAK = exports.ArraySlice = exports.ArrayElement = exports.AnnotationElement = void 0;
6
+ exports.visit = exports.traverse = exports.transclude = exports.toYAML = exports.toValue = exports.toString = exports.toJSON = exports.some = exports.sexprs = exports.reject = exports.refractorPluginSemanticElementIdentity = exports.refractorPluginElementIdentity = exports.refract = exports.parents = exports.namespace = exports.mergeRight = exports.mergeLeft = exports.mergeAllVisitors = exports.keyMap = exports.isStringElement = exports.isRefElement = exports.isPrimitiveElement = exports.isParseResultElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isElement = exports.isBooleanElement = exports.isArrayElement = exports.isAnnotationElement = exports.includesSymbols = exports.includesClasses = exports.hasElementSourceMap = exports.getNodeType = exports.from = exports.findAtOffset = exports.find = exports.filter = exports.dispatchRefractorPlugins = exports.dereference = exports.dehydrate = exports.defaultIdentityManager = exports.deepmerge = exports.createPredicate = exports.createNamespace = exports.cloneShallow = exports.cloneNode = exports.cloneDeep = exports.assignSourceMap = exports.Transcluder = exports.StringElement = exports.ShallowCloneError = exports.RefElement = exports.ParseResultElement = exports.ObjectSlice = exports.ObjectElement = exports.NumberElement = exports.NullElement = exports.Namespace = exports.MemberElement = exports.MediaTypes = exports.LinkElement = exports.KeyValuePair = exports.IdentityManager = exports.ElementIdentityError = exports.Element = exports.DeepCloneError = exports.CommentElement = exports.CloneError = exports.BooleanElement = exports.BREAK = exports.ArraySlice = exports.ArrayElement = exports.AnnotationElement = void 0;
7
7
  var _index = require("./refractor/plugins/dispatcher/index.cjs");
8
8
  exports.dispatchRefractorPlugins = _index.dispatchPluginsSync;
9
9
  var _elementIdentity = _interopRequireDefault(require("./refractor/plugins/element-identity.cjs"));
@@ -35,7 +35,6 @@ exports.RefElement = _registration.RefElement;
35
35
  exports.AnnotationElement = _registration.AnnotationElement;
36
36
  exports.CommentElement = _registration.CommentElement;
37
37
  exports.ParseResultElement = _registration.ParseResultElement;
38
- exports.SourceMapElement = _registration.SourceMapElement;
39
38
  var _index2 = require("./predicates/index.cjs");
40
39
  exports.isElement = _index2.isElement;
41
40
  exports.isStringElement = _index2.isStringElement;
@@ -49,7 +48,6 @@ exports.isLinkElement = _index2.isLinkElement;
49
48
  exports.isRefElement = _index2.isRefElement;
50
49
  exports.isAnnotationElement = _index2.isAnnotationElement;
51
50
  exports.isParseResultElement = _index2.isParseResultElement;
52
- exports.isSourceMapElement = _index2.isSourceMapElement;
53
51
  exports.isPrimitiveElement = _index2.isPrimitiveElement;
54
52
  exports.hasElementSourceMap = _index2.hasElementSourceMap;
55
53
  exports.includesSymbols = _index2.includesSymbols;
@@ -76,6 +74,7 @@ exports.transclude = _index4.transclude;
76
74
  exports.Transcluder = _index4.default;
77
75
  var _util = require("./util.cjs");
78
76
  exports.dereference = _util.dereference;
77
+ exports.assignSourceMap = _util.assignSourceMap;
79
78
  var _index5 = require("./clone/index.cjs");
80
79
  exports.cloneShallow = _index5.cloneShallow;
81
80
  exports.cloneDeep = _index5.cloneDeep;
package/src/index.mjs CHANGED
@@ -4,13 +4,13 @@ export { default as refractorPluginSemanticElementIdentity } from "./refractor/p
4
4
  export { default as MediaTypes } from "./media-types.mjs";
5
5
  export { Element, MemberElement, KeyValuePair, ObjectSlice, ArraySlice, refract } from 'minim';
6
6
  export { default as namespace, Namespace, createNamespace } from "./namespace.mjs";
7
- export { ObjectElement, ArrayElement, BooleanElement, NullElement, NumberElement, StringElement, LinkElement, RefElement, AnnotationElement, CommentElement, ParseResultElement, SourceMapElement } from "./refractor/registration.mjs";
8
- export { isElement, isStringElement, isNumberElement, isNullElement, isBooleanElement, isArrayElement, isObjectElement, isMemberElement, isLinkElement, isRefElement, isAnnotationElement, isParseResultElement, isSourceMapElement, isPrimitiveElement, hasElementSourceMap, includesSymbols, includesClasses } from "./predicates/index.mjs";
7
+ export { ObjectElement, ArrayElement, BooleanElement, NullElement, NumberElement, StringElement, LinkElement, RefElement, AnnotationElement, CommentElement, ParseResultElement } from "./refractor/registration.mjs";
8
+ export { isElement, isStringElement, isNumberElement, isNullElement, isBooleanElement, isArrayElement, isObjectElement, isMemberElement, isLinkElement, isRefElement, isAnnotationElement, isParseResultElement, isPrimitiveElement, hasElementSourceMap, includesSymbols, includesClasses } from "./predicates/index.mjs";
9
9
  export { default as createPredicate } from "./predicates/helpers.mjs";
10
10
  export { filter, reject, find, findAtOffset, some, traverse, parents } from "./traversal/index.mjs";
11
11
  export { visit, BREAK, mergeAllVisitors, getNodeType, cloneNode, keyMapDefault as keyMap } from "./traversal/visitor.mjs";
12
12
  export { transclude, default as Transcluder } from "./transcluder/index.mjs";
13
- export { dereference } from "./util.mjs";
13
+ export { dereference, assignSourceMap } from "./util.mjs";
14
14
  export { cloneShallow, cloneDeep } from "./clone/index.mjs";
15
15
  export { default as CloneError } from "./clone/errors/CloneError.mjs";
16
16
  export { default as DeepCloneError } from "./clone/errors/DeepCloneError.mjs";
@@ -93,7 +93,7 @@ const mergeObjectElement = (targetElement, sourceElement, options) => {
93
93
  if ((0, _index.isObjectElement)(targetElement) && targetElement.hasKey(keyValue) && options.isMergeableElement(value)) {
94
94
  const targetValue = targetElement.get(keyValue);
95
95
  clonedMember = (0, _index2.cloneShallow)(member);
96
- clonedMember.value = getMergeFunction(key, options)(targetValue, value);
96
+ clonedMember.value = getMergeFunction(key, options)(targetValue, value, options);
97
97
  } else {
98
98
  clonedMember = (0, _index2.cloneShallow)(member);
99
99
  clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
@@ -76,7 +76,7 @@ const mergeObjectElement = (targetElement, sourceElement, options) => {
76
76
  if (isObjectElement(targetElement) && targetElement.hasKey(keyValue) && options.isMergeableElement(value)) {
77
77
  const targetValue = targetElement.get(keyValue);
78
78
  clonedMember = cloneShallow(member);
79
- clonedMember.value = getMergeFunction(key, options)(targetValue, value);
79
+ clonedMember.value = getMergeFunction(key, options)(targetValue, value, options);
80
80
  } else {
81
81
  clonedMember = cloneShallow(member);
82
82
  clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
package/src/namespace.cjs CHANGED
@@ -8,7 +8,6 @@ var _ramdaAdjunct = require("ramda-adjunct");
8
8
  var _Annotation = _interopRequireDefault(require("./elements/Annotation.cjs"));
9
9
  var _Comment = _interopRequireDefault(require("./elements/Comment.cjs"));
10
10
  var _ParseResult = _interopRequireDefault(require("./elements/ParseResult.cjs"));
11
- var _SourceMap = _interopRequireDefault(require("./elements/SourceMap.cjs"));
12
11
  /**
13
12
  * @public
14
13
  */
@@ -18,7 +17,6 @@ class Namespace extends _minim.Namespace {
18
17
  this.register('annotation', _Annotation.default);
19
18
  this.register('comment', _Comment.default);
20
19
  this.register('parseResult', _ParseResult.default);
21
- this.register('sourceMap', _SourceMap.default);
22
20
  }
23
21
  }
24
22
 
package/src/namespace.mjs CHANGED
@@ -3,7 +3,6 @@ import { isPlainObject } from 'ramda-adjunct';
3
3
  import AnnotationElement from "./elements/Annotation.mjs";
4
4
  import CommentElement from "./elements/Comment.mjs";
5
5
  import ParseResultElement from "./elements/ParseResult.mjs";
6
- import SourceMapElement from "./elements/SourceMap.mjs";
7
6
  /**
8
7
  * @public
9
8
  */
@@ -13,7 +12,6 @@ export class Namespace extends MinimNamespace {
13
12
  this.register('annotation', AnnotationElement);
14
13
  this.register('comment', CommentElement);
15
14
  this.register('parseResult', ParseResultElement);
16
- this.register('sourceMap', SourceMapElement);
17
15
  }
18
16
  }
19
17
 
@@ -3,14 +3,13 @@
3
3
  var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
4
4
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
5
  exports.__esModule = true;
6
- exports.isStringElement = exports.isSourceMapElement = exports.isRefElement = exports.isPrimitiveElement = exports.isParseResultElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isElement = exports.isCommentElement = exports.isBooleanElement = exports.isArrayElement = exports.isAnnotationElement = exports.includesSymbols = exports.includesClasses = exports.hasElementSourceMap = void 0;
6
+ exports.isStringElement = exports.isRefElement = exports.isPrimitiveElement = exports.isParseResultElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isElement = exports.isCommentElement = exports.isBooleanElement = exports.isArrayElement = exports.isAnnotationElement = exports.includesSymbols = exports.includesClasses = exports.hasElementSourceMap = void 0;
7
7
  var _minim = require("minim");
8
8
  var _ramda = require("ramda");
9
9
  var _ramdaAdjunct = require("ramda-adjunct");
10
10
  var _Annotation = _interopRequireDefault(require("../elements/Annotation.cjs"));
11
11
  var _Comment = _interopRequireDefault(require("../elements/Comment.cjs"));
12
12
  var _ParseResult = _interopRequireDefault(require("../elements/ParseResult.cjs"));
13
- var _SourceMap = _interopRequireDefault(require("../elements/SourceMap.cjs"));
14
13
  var _helpers = _interopRequireWildcard(require("./helpers.cjs"));
15
14
  /**
16
15
  * @public
@@ -150,17 +149,6 @@ const isParseResultElement = exports.isParseResultElement = (0, _helpers.default
150
149
  return element => element instanceof _ParseResult.default || hasBasicElementProps(element) && isElementType('parseResult', element) && primitiveEq('array', element);
151
150
  });
152
151
 
153
- /**
154
- * @public
155
- */
156
- const isSourceMapElement = exports.isSourceMapElement = (0, _helpers.default)(({
157
- hasBasicElementProps,
158
- isElementType,
159
- primitiveEq
160
- }) => {
161
- return element => element instanceof _SourceMap.default || hasBasicElementProps(element) && isElementType('sourceMap', element) && primitiveEq('array', element);
162
- });
163
-
164
152
  /**
165
153
  * @public
166
154
  */
@@ -177,7 +165,10 @@ const isPrimitiveElement = element => {
177
165
  */
178
166
  exports.isPrimitiveElement = isPrimitiveElement;
179
167
  const hasElementSourceMap = element => {
180
- return isSourceMapElement(element.meta.get('sourceMap'));
168
+ if (!isElement(element)) {
169
+ return false;
170
+ }
171
+ return Number.isInteger(element.startPositionRow) && Number.isInteger(element.startPositionColumn) && Number.isInteger(element.startIndex) && Number.isInteger(element.endPositionRow) && Number.isInteger(element.endPositionColumn) && Number.isInteger(element.endIndex);
181
172
  };
182
173
 
183
174
  /**
@@ -4,7 +4,6 @@ import { included } from 'ramda-adjunct';
4
4
  import AnnotationElement from "../elements/Annotation.mjs";
5
5
  import CommentElement from "../elements/Comment.mjs";
6
6
  import ParserResultElement from "../elements/ParseResult.mjs";
7
- import SourceMapElement from "../elements/SourceMap.mjs";
8
7
  import createPredicate, { isElementType as isElementTypeHelper } from "./helpers.mjs";
9
8
  /**
10
9
  * @public
@@ -144,17 +143,6 @@ export const isParseResultElement = createPredicate(({
144
143
  return element => element instanceof ParserResultElement || hasBasicElementProps(element) && isElementType('parseResult', element) && primitiveEq('array', element);
145
144
  });
146
145
 
147
- /**
148
- * @public
149
- */
150
- export const isSourceMapElement = createPredicate(({
151
- hasBasicElementProps,
152
- isElementType,
153
- primitiveEq
154
- }) => {
155
- return element => element instanceof SourceMapElement || hasBasicElementProps(element) && isElementType('sourceMap', element) && primitiveEq('array', element);
156
- });
157
-
158
146
  /**
159
147
  * @public
160
148
  */
@@ -170,7 +158,10 @@ export const isPrimitiveElement = element => {
170
158
  * @public
171
159
  */
172
160
  export const hasElementSourceMap = element => {
173
- return isSourceMapElement(element.meta.get('sourceMap'));
161
+ if (!isElement(element)) {
162
+ return false;
163
+ }
164
+ return Number.isInteger(element.startPositionRow) && Number.isInteger(element.startPositionColumn) && Number.isInteger(element.startIndex) && Number.isInteger(element.endPositionRow) && Number.isInteger(element.endPositionColumn) && Number.isInteger(element.endIndex);
174
165
  };
175
166
 
176
167
  /**
@@ -17,8 +17,6 @@ var _Comment = _interopRequireDefault(require("../elements/Comment.cjs"));
17
17
  exports.CommentElement = _Comment.default;
18
18
  var _ParseResult = _interopRequireDefault(require("../elements/ParseResult.cjs"));
19
19
  exports.ParseResultElement = _ParseResult.default;
20
- var _SourceMap = _interopRequireDefault(require("../elements/SourceMap.cjs"));
21
- exports.SourceMapElement = _SourceMap.default;
22
20
  var _index = require("./index.cjs");
23
21
  _minim.ObjectElement.refract = (0, _index.createRefractor)(_minim.ObjectElement);
24
22
  _minim.ArrayElement.refract = (0, _index.createRefractor)(_minim.ArrayElement);
@@ -30,5 +28,4 @@ _minim.LinkElement.refract = (0, _index.createRefractor)(_minim.LinkElement);
30
28
  _minim.RefElement.refract = (0, _index.createRefractor)(_minim.RefElement);
31
29
  _Annotation.default.refract = (0, _index.createRefractor)(_Annotation.default);
32
30
  _Comment.default.refract = (0, _index.createRefractor)(_Comment.default);
33
- _ParseResult.default.refract = (0, _index.createRefractor)(_ParseResult.default);
34
- _SourceMap.default.refract = (0, _index.createRefractor)(_SourceMap.default);
31
+ _ParseResult.default.refract = (0, _index.createRefractor)(_ParseResult.default);
@@ -2,7 +2,6 @@ import { ObjectElement, ArrayElement, StringElement, BooleanElement, NullElement
2
2
  import AnnotationElement from "../elements/Annotation.mjs";
3
3
  import CommentElement from "../elements/Comment.mjs";
4
4
  import ParseResultElement from "../elements/ParseResult.mjs";
5
- import SourceMapElement from "../elements/SourceMap.mjs";
6
5
  import { createRefractor } from "./index.mjs";
7
6
  ObjectElement.refract = createRefractor(ObjectElement);
8
7
  ArrayElement.refract = createRefractor(ArrayElement);
@@ -15,5 +14,4 @@ RefElement.refract = createRefractor(RefElement);
15
14
  AnnotationElement.refract = createRefractor(AnnotationElement);
16
15
  CommentElement.refract = createRefractor(CommentElement);
17
16
  ParseResultElement.refract = createRefractor(ParseResultElement);
18
- SourceMapElement.refract = createRefractor(SourceMapElement);
19
- export { ObjectElement, ArrayElement, StringElement, BooleanElement, NullElement, NumberElement, LinkElement, RefElement, AnnotationElement, CommentElement, ParseResultElement, SourceMapElement };
17
+ export { ObjectElement, ArrayElement, StringElement, BooleanElement, NullElement, NumberElement, LinkElement, RefElement, AnnotationElement, CommentElement, ParseResultElement };
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  exports.default = void 0;
6
5
  var _ramda = require("ramda");
7
6
  var _ramdaAdjunct = require("ramda-adjunct");
8
7
  var _index = require("../predicates/index.cjs");
9
8
  var _visitor = require("./visitor.cjs");
10
- var _index2 = _interopRequireDefault(require("../transformers/serializers/value/index.cjs"));
11
9
  class Visitor {
12
10
  result;
13
11
  offset;
@@ -24,10 +22,11 @@ class Visitor {
24
22
  if (!(0, _index.hasElementSourceMap)(element)) {
25
23
  return undefined; // dive in
26
24
  }
27
- const sourceMapElement = element.getMetaProperty('sourceMap');
28
- const charStart = (0, _index2.default)(sourceMapElement.positionStart.get(2));
29
- const charEnd = (0, _index2.default)(sourceMapElement.positionEnd.get(2));
30
- const isWithinOffsetRange = this.offset >= charStart && (this.offset < charEnd || this.includeRightBound && this.offset <= charEnd);
25
+ const {
26
+ startIndex,
27
+ endIndex
28
+ } = element;
29
+ const isWithinOffsetRange = this.offset >= startIndex && (this.offset < endIndex || this.includeRightBound && this.offset <= endIndex);
31
30
  if (isWithinOffsetRange) {
32
31
  this.result.push(element);
33
32
  return undefined; // push to stack and dive in
@@ -2,7 +2,6 @@ import { last, pathOr } from 'ramda';
2
2
  import { isNumber } from 'ramda-adjunct';
3
3
  import { hasElementSourceMap } from "../predicates/index.mjs";
4
4
  import { visit } from "./visitor.mjs";
5
- import toValue from "../transformers/serializers/value/index.mjs";
6
5
  class Visitor {
7
6
  result;
8
7
  offset;
@@ -19,10 +18,11 @@ class Visitor {
19
18
  if (!hasElementSourceMap(element)) {
20
19
  return undefined; // dive in
21
20
  }
22
- const sourceMapElement = element.getMetaProperty('sourceMap');
23
- const charStart = toValue(sourceMapElement.positionStart.get(2));
24
- const charEnd = toValue(sourceMapElement.positionEnd.get(2));
25
- const isWithinOffsetRange = this.offset >= charStart && (this.offset < charEnd || this.includeRightBound && this.offset <= charEnd);
21
+ const {
22
+ startIndex,
23
+ endIndex
24
+ } = element;
25
+ const isWithinOffsetRange = this.offset >= startIndex && (this.offset < endIndex || this.includeRightBound && this.offset <= endIndex);
26
26
  if (isWithinOffsetRange) {
27
27
  this.result.push(element);
28
28
  return undefined; // push to stack and dive in
@@ -53,8 +53,7 @@ const keyMapDefault = exports.keyMapDefault = {
53
53
  LinkElement: [],
54
54
  Annotation: [],
55
55
  Comment: [],
56
- ParseResultElement: ['content'],
57
- SourceMap: ['content']
56
+ ParseResultElement: ['content']
58
57
  };
59
58
  class PredicateVisitor {
60
59
  result;
@@ -47,8 +47,7 @@ export const keyMapDefault = {
47
47
  LinkElement: [],
48
48
  Annotation: [],
49
49
  Comment: [],
50
- ParseResultElement: ['content'],
51
- SourceMap: ['content']
50
+ ParseResultElement: ['content']
52
51
  };
53
52
  export class PredicateVisitor {
54
53
  result;
package/src/util.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.dereference = void 0;
4
+ exports.dereference = exports.assignSourceMap = void 0;
5
5
  var _ramda = require("ramda");
6
6
  var _ramdaAdjunct = require("ramda-adjunct");
7
7
  /**
@@ -25,4 +25,19 @@ const dereference = (object, root) => {
25
25
  return val;
26
26
  }, object);
27
27
  };
28
- exports.dereference = dereference;
28
+ exports.dereference = dereference;
29
+ /**
30
+ * @public
31
+ */
32
+ /* eslint-disable no-param-reassign */
33
+ const assignSourceMap = (to, from) => {
34
+ to.startPositionRow = from == null ? void 0 : from.startPositionRow;
35
+ to.startPositionColumn = from == null ? void 0 : from.startPositionColumn;
36
+ to.startIndex = from == null ? void 0 : from.startIndex;
37
+ to.endPositionRow = from == null ? void 0 : from.endPositionRow;
38
+ to.endPositionColumn = from == null ? void 0 : from.endPositionColumn;
39
+ to.endIndex = from == null ? void 0 : from.endIndex;
40
+ return to;
41
+ };
42
+ /* eslint-enable no-param-reassign */
43
+ exports.assignSourceMap = assignSourceMap;
package/src/util.mjs CHANGED
@@ -21,4 +21,18 @@ export const dereference = (object, root) => {
21
21
  }
22
22
  return val;
23
23
  }, object);
24
- };
24
+ };
25
+ /**
26
+ * @public
27
+ */
28
+ /* eslint-disable no-param-reassign */
29
+ export const assignSourceMap = (to, from) => {
30
+ to.startPositionRow = from === null || from === void 0 ? void 0 : from.startPositionRow;
31
+ to.startPositionColumn = from === null || from === void 0 ? void 0 : from.startPositionColumn;
32
+ to.startIndex = from === null || from === void 0 ? void 0 : from.startIndex;
33
+ to.endPositionRow = from === null || from === void 0 ? void 0 : from.endPositionRow;
34
+ to.endPositionColumn = from === null || from === void 0 ? void 0 : from.endPositionColumn;
35
+ to.endIndex = from === null || from === void 0 ? void 0 : from.endIndex;
36
+ return to;
37
+ };
38
+ /* eslint-enable no-param-reassign */
@@ -43,6 +43,11 @@ export { ArrayElement }
43
43
 
44
44
  export { ArraySlice }
45
45
 
46
+ /**
47
+ * @public
48
+ */
49
+ export declare const assignSourceMap: (to: SourceMapContainer, from?: SourceMapContainer) => SourceMapContainer;
50
+
46
51
  export { Attributes }
47
52
 
48
53
  declare namespace basePredicates {
@@ -60,7 +65,6 @@ declare namespace basePredicates {
60
65
  isAnnotationElement,
61
66
  isCommentElement,
62
67
  isParseResultElement,
63
- isSourceMapElement,
64
68
  PrimitiveElement,
65
69
  isPrimitiveElement,
66
70
  hasElementSourceMap,
@@ -377,7 +381,7 @@ export declare const hasClass: (cls: string, element: unknown) => element is Ele
377
381
  /**
378
382
  * @public
379
383
  */
380
- export declare const hasElementSourceMap: <T extends Element_2>(element: T) => boolean;
384
+ export declare const hasElementSourceMap: <T extends Element_2>(element?: T) => boolean;
381
385
 
382
386
  /**
383
387
  * @public
@@ -478,11 +482,6 @@ export declare const isPrimitiveElement: ElementPredicate<PrimitiveElement>;
478
482
  */
479
483
  export declare const isRefElement: ElementPredicate<RefElement>;
480
484
 
481
- /**
482
- * @public
483
- */
484
- export declare const isSourceMapElement: ElementPredicate<SourceMapElement>;
485
-
486
485
  /**
487
486
  * @public
488
487
  */
@@ -504,7 +503,6 @@ export declare const keyMap: {
504
503
  Annotation: never[];
505
504
  Comment: never[];
506
505
  ParseResultElement: string[];
507
- SourceMap: string[];
508
506
  };
509
507
 
510
508
  export { KeyValuePair }
@@ -595,23 +593,6 @@ export declare class ParseResultElement extends ArrayElement {
595
593
  replaceResult(replacement: Element_2): boolean;
596
594
  }
597
595
 
598
- /**
599
- * @public
600
- */
601
- export declare interface Position {
602
- row: number;
603
- column: number;
604
- char: number;
605
- }
606
-
607
- /**
608
- * @public
609
- */
610
- export declare interface PositionRange {
611
- start: Position;
612
- end: Position;
613
- }
614
-
615
596
  /**
616
597
  * @public
617
598
  */
@@ -703,15 +684,15 @@ export declare class ShallowCloneError extends CloneError {
703
684
  */
704
685
  export declare const some: <T extends Element_2>(predicate: (element: any) => boolean, element: T) => boolean;
705
686
 
706
- /**
707
- * @public
708
- */
709
- export declare class SourceMapElement extends ArrayElement {
710
- constructor(content?: Array<any>, meta?: Meta, attributes?: Attributes);
711
- get positionStart(): Element_2 | undefined;
712
- get positionEnd(): Element_2 | undefined;
713
- set position(position: PositionRange | undefined);
714
- }
687
+ declare type SourceMapContainer = {
688
+ startPositionRow?: number;
689
+ startPositionColumn?: number;
690
+ startIndex?: number;
691
+ endPositionRow?: number;
692
+ endPositionColumn?: number;
693
+ endIndex?: number;
694
+ [key: string]: any;
695
+ };
715
696
 
716
697
  export { StringElement }
717
698
 
@@ -799,7 +780,6 @@ export declare const visit: (root: Element_2, visitor: any, { keyMap, ...rest }?
799
780
  Annotation: never[];
800
781
  Comment: never[];
801
782
  ParseResultElement: string[];
802
- SourceMap: string[];
803
783
  } | undefined;
804
784
  }) => Element_2;
805
785
 
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.default = void 0;
5
- var _minim = require("minim");
6
- /**
7
- * @public
8
- */
9
-
10
- /**
11
- * @public
12
- */
13
-
14
- /**
15
- * @public
16
- */
17
- class SourceMap extends _minim.ArrayElement {
18
- constructor(content, meta, attributes) {
19
- super(content, meta, attributes);
20
- this.element = 'sourceMap';
21
- }
22
- get positionStart() {
23
- return this.children.filter(item => item.classes.contains('position')).get(0);
24
- }
25
- get positionEnd() {
26
- return this.children.filter(item => item.classes.contains('position')).get(1);
27
- }
28
- set position(position) {
29
- if (typeof position === 'undefined') {
30
- return;
31
- }
32
- const start = new _minim.ArrayElement([position.start.row, position.start.column, position.start.char]);
33
- const end = new _minim.ArrayElement([position.end.row, position.end.column, position.end.char]);
34
- start.classes.push('position');
35
- end.classes.push('position');
36
- this.push(start).push(end);
37
- }
38
- }
39
- var _default = exports.default = SourceMap;
@@ -1,36 +0,0 @@
1
- import { ArrayElement } from 'minim';
2
-
3
- /**
4
- * @public
5
- */
6
-
7
- /**
8
- * @public
9
- */
10
-
11
- /**
12
- * @public
13
- */
14
- class SourceMap extends ArrayElement {
15
- constructor(content, meta, attributes) {
16
- super(content, meta, attributes);
17
- this.element = 'sourceMap';
18
- }
19
- get positionStart() {
20
- return this.children.filter(item => item.classes.contains('position')).get(0);
21
- }
22
- get positionEnd() {
23
- return this.children.filter(item => item.classes.contains('position')).get(1);
24
- }
25
- set position(position) {
26
- if (typeof position === 'undefined') {
27
- return;
28
- }
29
- const start = new ArrayElement([position.start.row, position.start.column, position.start.char]);
30
- const end = new ArrayElement([position.end.row, position.end.column, position.end.char]);
31
- start.classes.push('position');
32
- end.classes.push('position');
33
- this.push(start).push(end);
34
- }
35
- }
36
- export default SourceMap;