@swagger-api/apidom-json-pointer 1.0.0-beta.32 → 1.0.0-beta.33

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/src/escape.cjs CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
- var _ramda = require("ramda");
5
+ var _jsonPointer = require("@swaggerexpert/json-pointer");
6
6
  /**
7
7
  * @public
8
8
  */
9
- const escape = (0, _ramda.pipe)((0, _ramda.replace)(/~/g, '~0'), (0, _ramda.replace)(/\//g, '~1'), encodeURIComponent);
9
+ const escape = referenceToken => {
10
+ return _jsonPointer.URIFragmentIdentifier.to((0, _jsonPointer.escape)(referenceToken)).slice(1);
11
+ };
10
12
  var _default = exports.default = escape;
package/src/escape.mjs CHANGED
@@ -1,7 +1,9 @@
1
- import { pipe, replace } from 'ramda';
1
+ import { escape as baseEscape, URIFragmentIdentifier } from '@swaggerexpert/json-pointer';
2
2
 
3
3
  /**
4
4
  * @public
5
5
  */
6
- const escape = pipe(replace(/~/g, '~0'), replace(/\//g, '~1'), encodeURIComponent);
6
+ const escape = referenceToken => {
7
+ return URIFragmentIdentifier.to(baseEscape(referenceToken)).slice(1);
8
+ };
7
9
  export default escape;
package/src/evaluate.cjs CHANGED
@@ -3,60 +3,33 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
- var _ramdaAdjunct = require("ramda-adjunct");
6
+ var _jsonPointer = require("@swaggerexpert/json-pointer");
7
+ var _apidom = require("@swaggerexpert/json-pointer/evaluate/realms/apidom");
7
8
  var _apidomCore = require("@swagger-api/apidom-core");
8
- var _parse = _interopRequireDefault(require("./parse.cjs"));
9
9
  var _EvaluationJsonPointerError = _interopRequireDefault(require("./errors/EvaluationJsonPointerError.cjs"));
10
10
  /**
11
11
  * Evaluates JSON Pointer against ApiDOM fragment.
12
12
  * @public
13
13
  */
14
14
  const evaluate = (pointer, element) => {
15
- let tokens;
16
15
  try {
17
- tokens = (0, _parse.default)(pointer);
16
+ return (0, _apidom.evaluate)(element, _jsonPointer.URIFragmentIdentifier.from(pointer));
18
17
  } catch (error) {
19
- throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while parsing the pointer "${pointer}".`, {
18
+ if (error instanceof _jsonPointer.JSONPointerEvaluateError) {
19
+ throw new _EvaluationJsonPointerError.default(error.message, {
20
+ pointer,
21
+ tokens: error.referenceTokens,
22
+ failedToken: error.referenceToken,
23
+ failedTokenPosition: error.referenceTokenPosition,
24
+ element: (0, _apidomCore.cloneDeep)(element),
25
+ cause: error
26
+ });
27
+ }
28
+ throw new _EvaluationJsonPointerError.default(error.message, {
20
29
  pointer,
21
30
  element: (0, _apidomCore.cloneDeep)(element),
22
31
  cause: error
23
32
  });
24
33
  }
25
- return tokens.reduce((acc, token, tokenPosition) => {
26
- if ((0, _apidomCore.isObjectElement)(acc)) {
27
- // @ts-ignore
28
- if (!acc.hasKey(token)) {
29
- throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while evaluating token "${token}" against an ObjectElement`, {
30
- pointer,
31
- tokens,
32
- failedToken: token,
33
- failedTokenPosition: tokenPosition,
34
- element: (0, _apidomCore.cloneDeep)(acc)
35
- });
36
- }
37
- // @ts-ignore
38
- return acc.get(token);
39
- }
40
- if ((0, _apidomCore.isArrayElement)(acc)) {
41
- if (!(token in acc.content) || !(0, _ramdaAdjunct.isInteger)(Number(token))) {
42
- throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while evaluating token "${token}" against an ArrayElement`, {
43
- pointer,
44
- tokens,
45
- failedToken: token,
46
- failedTokenPosition: tokenPosition,
47
- element: (0, _apidomCore.cloneDeep)(acc)
48
- });
49
- }
50
- // @ts-ignore
51
- return acc.get(Number(token));
52
- }
53
- throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while evaluating token "${token}" against an unexpected Element`, {
54
- pointer,
55
- tokens,
56
- failedToken: token,
57
- failedTokenPosition: tokenPosition,
58
- element: (0, _apidomCore.cloneDeep)(acc)
59
- });
60
- }, element);
61
34
  };
62
35
  var _default = exports.default = evaluate;
package/src/evaluate.mjs CHANGED
@@ -1,57 +1,30 @@
1
- import { isInteger } from 'ramda-adjunct';
2
- import { isObjectElement, isArrayElement, cloneDeep } from '@swagger-api/apidom-core';
3
- import parse from "./parse.mjs";
1
+ import { JSONPointerEvaluateError, URIFragmentIdentifier } from '@swaggerexpert/json-pointer';
2
+ import { evaluate as baseEvaluate } from '@swaggerexpert/json-pointer/evaluate/realms/apidom';
3
+ import { cloneDeep } from '@swagger-api/apidom-core';
4
4
  import EvaluationJsonPointerError from "./errors/EvaluationJsonPointerError.mjs";
5
5
  /**
6
6
  * Evaluates JSON Pointer against ApiDOM fragment.
7
7
  * @public
8
8
  */
9
9
  const evaluate = (pointer, element) => {
10
- let tokens;
11
10
  try {
12
- tokens = parse(pointer);
11
+ return baseEvaluate(element, URIFragmentIdentifier.from(pointer));
13
12
  } catch (error) {
14
- throw new EvaluationJsonPointerError(`JSON Pointer evaluation failed while parsing the pointer "${pointer}".`, {
13
+ if (error instanceof JSONPointerEvaluateError) {
14
+ throw new EvaluationJsonPointerError(error.message, {
15
+ pointer,
16
+ tokens: error.referenceTokens,
17
+ failedToken: error.referenceToken,
18
+ failedTokenPosition: error.referenceTokenPosition,
19
+ element: cloneDeep(element),
20
+ cause: error
21
+ });
22
+ }
23
+ throw new EvaluationJsonPointerError(error.message, {
15
24
  pointer,
16
25
  element: cloneDeep(element),
17
26
  cause: error
18
27
  });
19
28
  }
20
- return tokens.reduce((acc, token, tokenPosition) => {
21
- if (isObjectElement(acc)) {
22
- // @ts-ignore
23
- if (!acc.hasKey(token)) {
24
- throw new EvaluationJsonPointerError(`JSON Pointer evaluation failed while evaluating token "${token}" against an ObjectElement`, {
25
- pointer,
26
- tokens,
27
- failedToken: token,
28
- failedTokenPosition: tokenPosition,
29
- element: cloneDeep(acc)
30
- });
31
- }
32
- // @ts-ignore
33
- return acc.get(token);
34
- }
35
- if (isArrayElement(acc)) {
36
- if (!(token in acc.content) || !isInteger(Number(token))) {
37
- throw new EvaluationJsonPointerError(`JSON Pointer evaluation failed while evaluating token "${token}" against an ArrayElement`, {
38
- pointer,
39
- tokens,
40
- failedToken: token,
41
- failedTokenPosition: tokenPosition,
42
- element: cloneDeep(acc)
43
- });
44
- }
45
- // @ts-ignore
46
- return acc.get(Number(token));
47
- }
48
- throw new EvaluationJsonPointerError(`JSON Pointer evaluation failed while evaluating token "${token}" against an unexpected Element`, {
49
- pointer,
50
- tokens,
51
- failedToken: token,
52
- failedTokenPosition: tokenPosition,
53
- element: cloneDeep(acc)
54
- });
55
- }, element);
56
29
  };
57
30
  export default evaluate;
package/src/index.cjs CHANGED
@@ -12,14 +12,14 @@ var _CompilationJsonPointerError = _interopRequireDefault(require("./errors/Comp
12
12
  exports.CompilationJsonPointerError = _CompilationJsonPointerError.default;
13
13
  var _EvaluationJsonPointerError = _interopRequireDefault(require("./errors/EvaluationJsonPointerError.cjs"));
14
14
  exports.EvaluationJsonPointerError = _EvaluationJsonPointerError.default;
15
+ var _parse = _interopRequireWildcard(require("./parse.cjs"));
16
+ exports.parse = _parse.default;
17
+ exports.uriToPointer = _parse.uriToPointer;
18
+ var _evaluate = _interopRequireDefault(require("./evaluate.cjs"));
19
+ exports.evaluate = _evaluate.default;
15
20
  var _escape = _interopRequireDefault(require("./escape.cjs"));
16
21
  exports.escape = _escape.default;
17
22
  var _unescape = _interopRequireDefault(require("./unescape.cjs"));
18
23
  exports.unescape = _unescape.default;
19
- var _parse = _interopRequireWildcard(require("./parse.cjs"));
20
- exports.parse = _parse.default;
21
- exports.uriToPointer = _parse.uriToPointer;
22
24
  var _compile = _interopRequireDefault(require("./compile.cjs"));
23
- exports.compile = _compile.default;
24
- var _evaluate = _interopRequireDefault(require("./evaluate.cjs"));
25
- exports.evaluate = _evaluate.default;
25
+ exports.compile = _compile.default;
package/src/index.mjs CHANGED
@@ -2,8 +2,8 @@ export { default as JsonPointerError } from "./errors/JsonPointerError.mjs";
2
2
  export { default as InvalidJsonPointerError } from "./errors/InvalidJsonPointerError.mjs";
3
3
  export { default as CompilationJsonPointerError } from "./errors/CompilationJsonPointerError.mjs";
4
4
  export { default as EvaluationJsonPointerError } from "./errors/EvaluationJsonPointerError.mjs";
5
+ export { default as parse, uriToPointer } from "./parse.mjs";
6
+ export { default as evaluate } from "./evaluate.mjs";
5
7
  export { default as escape } from "./escape.mjs";
6
8
  export { default as unescape } from "./unescape.mjs";
7
- export { default as parse, uriToPointer } from "./parse.mjs";
8
- export { default as compile } from "./compile.mjs";
9
- export { default as evaluate } from "./evaluate.mjs";
9
+ export { default as compile } from "./compile.mjs";
package/src/parse.cjs CHANGED
@@ -1,33 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  exports.uriToPointer = exports.default = void 0;
6
- var _ramda = require("ramda");
7
- var _ramdaAdjunct = require("ramda-adjunct");
8
- var _unescape = _interopRequireDefault(require("./unescape.cjs"));
9
- var _InvalidJsonPointerError = _interopRequireDefault(require("./errors/InvalidJsonPointerError.cjs"));
5
+ var _jsonPointer = require("@swaggerexpert/json-pointer");
10
6
  /**
11
7
  * @public
12
8
  */
13
- const parse = pointer => {
14
- if ((0, _ramdaAdjunct.isEmptyString)(pointer)) {
15
- return [];
16
- }
17
- if (!(0, _ramda.startsWith)('/', pointer)) {
18
- throw new _InvalidJsonPointerError.default(`Invalid JSON Pointer "${pointer}". JSON Pointers must begin with "/"`, {
19
- pointer
20
- });
21
- }
22
- try {
23
- const tokens = (0, _ramda.pipe)((0, _ramda.split)('/'), (0, _ramda.map)(_unescape.default))(pointer);
24
- return (0, _ramda.tail)(tokens);
25
- } catch (error) {
26
- throw new _InvalidJsonPointerError.default(`JSON Pointer parsing of "${pointer}" encountered an error.`, {
27
- pointer,
28
- cause: error
29
- });
30
- }
9
+ const parse = (pointer, options) => {
10
+ const {
11
+ tree
12
+ } = (0, _jsonPointer.parse)(_jsonPointer.URIFragmentIdentifier.from(pointer), options);
13
+ return tree;
31
14
  };
32
15
 
33
16
  /**
@@ -47,7 +30,7 @@ const getHash = uri => {
47
30
  */
48
31
  const uriToPointer = uri => {
49
32
  const hash = getHash(uri);
50
- return (0, _ramdaAdjunct.trimCharsStart)('#', hash);
33
+ return _jsonPointer.URIFragmentIdentifier.from(hash);
51
34
  };
52
35
  exports.uriToPointer = uriToPointer;
53
36
  var _default = exports.default = parse;
package/src/parse.mjs CHANGED
@@ -1,28 +1,13 @@
1
- import { map, pipe, split, startsWith, tail } from 'ramda';
2
- import { isEmptyString, trimCharsStart } from 'ramda-adjunct';
3
- import unescape from "./unescape.mjs";
4
- import InvalidJsonPointerError from "./errors/InvalidJsonPointerError.mjs";
1
+ import { parse as jsonPointerParse, URIFragmentIdentifier } from '@swaggerexpert/json-pointer';
2
+
5
3
  /**
6
4
  * @public
7
5
  */
8
- const parse = pointer => {
9
- if (isEmptyString(pointer)) {
10
- return [];
11
- }
12
- if (!startsWith('/', pointer)) {
13
- throw new InvalidJsonPointerError(`Invalid JSON Pointer "${pointer}". JSON Pointers must begin with "/"`, {
14
- pointer
15
- });
16
- }
17
- try {
18
- const tokens = pipe(split('/'), map(unescape))(pointer);
19
- return tail(tokens);
20
- } catch (error) {
21
- throw new InvalidJsonPointerError(`JSON Pointer parsing of "${pointer}" encountered an error.`, {
22
- pointer,
23
- cause: error
24
- });
25
- }
6
+ const parse = (pointer, options) => {
7
+ const {
8
+ tree
9
+ } = jsonPointerParse(URIFragmentIdentifier.from(pointer), options);
10
+ return tree;
26
11
  };
27
12
 
28
13
  /**
@@ -42,6 +27,6 @@ const getHash = uri => {
42
27
  */
43
28
  export const uriToPointer = uri => {
44
29
  const hash = getHash(uri);
45
- return trimCharsStart('#', hash);
30
+ return URIFragmentIdentifier.from(hash);
46
31
  };
47
32
  export default parse;
package/src/unescape.cjs CHANGED
@@ -2,23 +2,11 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
- var _ramda = require("ramda");
6
- /**
7
- * decodeURIComponent can throw URIError in certain cases like 'c%d'.
8
- * safeDecodeURIComponent is a safe variant of decodeURIComponent that never trows.
9
- *
10
- * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Malformed_URI|More info about URIError}
11
- */
12
- const safeDecodeURIComponent = encodedURIComponent => {
13
- try {
14
- return decodeURIComponent(encodedURIComponent);
15
- } catch {
16
- return encodedURIComponent;
17
- }
18
- };
19
-
5
+ var _jsonPointer = require("@swaggerexpert/json-pointer");
20
6
  /**
21
7
  * @public
22
8
  */
23
- const unescape = (0, _ramda.pipe)((0, _ramda.replace)(/~1/g, '/'), (0, _ramda.replace)(/~0/g, '~'), safeDecodeURIComponent);
9
+ const unescape = referenceToken => {
10
+ return _jsonPointer.URIFragmentIdentifier.from((0, _jsonPointer.unescape)(referenceToken));
11
+ };
24
12
  var _default = exports.default = unescape;
package/src/unescape.mjs CHANGED
@@ -1,21 +1,9 @@
1
- import { pipe, replace } from 'ramda';
2
-
3
- /**
4
- * decodeURIComponent can throw URIError in certain cases like 'c%d'.
5
- * safeDecodeURIComponent is a safe variant of decodeURIComponent that never trows.
6
- *
7
- * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Malformed_URI|More info about URIError}
8
- */
9
- const safeDecodeURIComponent = encodedURIComponent => {
10
- try {
11
- return decodeURIComponent(encodedURIComponent);
12
- } catch {
13
- return encodedURIComponent;
14
- }
15
- };
1
+ import { unescape as baseUnescape, URIFragmentIdentifier } from '@swaggerexpert/json-pointer';
16
2
 
17
3
  /**
18
4
  * @public
19
5
  */
20
- const unescape = pipe(replace(/~1/g, '/'), replace(/~0/g, '~'), safeDecodeURIComponent);
6
+ const unescape = referenceToken => {
7
+ return URIFragmentIdentifier.from(baseUnescape(referenceToken));
8
+ };
21
9
  export default unescape;
@@ -1,6 +1,7 @@
1
1
  import { ApiDOMErrorOptions } from '@swagger-api/apidom-error';
2
2
  import { ApiDOMStructuredError } from '@swagger-api/apidom-error';
3
3
  import { Element as Element_2 } from '@swagger-api/apidom-core';
4
+ import { ParseOptions } from '@swaggerexpert/json-pointer';
4
5
 
5
6
  /**
6
7
  * @public
@@ -25,7 +26,7 @@ export declare const compile: (tokens: string[]) => string;
25
26
  /**
26
27
  * @public
27
28
  */
28
- declare const escape_2: (str: string) => string;
29
+ declare const escape_2: (referenceToken: string) => string;
29
30
  export { escape_2 as escape }
30
31
 
31
32
  /**
@@ -81,12 +82,12 @@ export declare class JsonPointerError extends ApiDOMStructuredError {
81
82
  /**
82
83
  * @public
83
84
  */
84
- export declare const parse: (pointer: string) => string[];
85
+ export declare const parse: (pointer: string, options?: ParseOptions) => string[];
85
86
 
86
87
  /**
87
88
  * @public
88
89
  */
89
- declare const unescape_2: (str: string) => string;
90
+ declare const unescape_2: (referenceToken: string) => string;
90
91
  export { unescape_2 as unescape }
91
92
 
92
93
  /**