@swagger-api/apidom-json-pointer 0.75.0 → 0.76.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 +7 -0
- package/cjs/compile.cjs +23 -0
- package/cjs/errors/CompilationJsonPointerError.cjs +16 -0
- package/cjs/errors/EvaluationJsonPointerError.cjs +19 -10
- package/cjs/errors/InvalidJsonPointerError.cjs +9 -10
- package/cjs/errors/JsonPointerError.cjs +8 -0
- package/cjs/escape.cjs +9 -0
- package/cjs/evaluate.cjs +60 -0
- package/cjs/index.cjs +23 -93
- package/cjs/parse.cjs +50 -0
- package/cjs/unescape.cjs +23 -0
- package/dist/apidom-json-pointer.browser.js +13682 -6337
- package/dist/apidom-json-pointer.browser.min.js +1 -1
- package/es/compile.js +16 -0
- package/es/errors/CompilationJsonPointerError.js +12 -0
- package/es/errors/EvaluationJsonPointerError.js +25 -10
- package/es/errors/InvalidJsonPointerError.js +10 -10
- package/es/errors/JsonPointerError.js +3 -0
- package/es/escape.js +5 -0
- package/es/evaluate.js +53 -0
- package/es/index.js +9 -86
- package/es/parse.js +42 -0
- package/es/unescape.js +19 -0
- package/package.json +4 -3
- package/types/dist.d.ts +39 -5
- package/cjs/errors/index.cjs +0 -9
- package/es/errors/index.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.76.0](https://github.com/swagger-api/apidom/compare/v0.75.0...v0.76.0) (2023-09-01)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **json-path:** use error hierarchy and metadata when throwing errors ([#3107](https://github.com/swagger-api/apidom/issues/3107)) ([d55a846](https://github.com/swagger-api/apidom/commit/d55a8466de9814f19aedbacb48c55761f2f3fe38)), closes [#3039](https://github.com/swagger-api/apidom/issues/3039)
|
|
11
|
+
- **json-pointer:** use error hierarchy and metadata when throwing errors ([#3106](https://github.com/swagger-api/apidom/issues/3106)) ([a17f250](https://github.com/swagger-api/apidom/commit/a17f25052db0d83f1ac3fcea94f2e58b50105df8)), closes [#3039](https://github.com/swagger-api/apidom/issues/3039)
|
|
12
|
+
|
|
6
13
|
# [0.75.0](https://github.com/swagger-api/apidom/compare/v0.74.1...v0.75.0) (2023-08-22)
|
|
7
14
|
|
|
8
15
|
### Features
|
package/cjs/compile.cjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _escape = _interopRequireDefault(require("./escape.cjs"));
|
|
7
|
+
var _CompilationJsonPointerError = _interopRequireDefault(require("./errors/CompilationJsonPointerError.cjs"));
|
|
8
|
+
// compile :: String[] -> String
|
|
9
|
+
const compile = tokens => {
|
|
10
|
+
try {
|
|
11
|
+
if (tokens.length === 0) {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
return `/${tokens.map(_escape.default).join('/')}`;
|
|
15
|
+
} catch (error) {
|
|
16
|
+
throw new _CompilationJsonPointerError.default('JSON Pointer compilation of tokens encountered an error.', {
|
|
17
|
+
tokens,
|
|
18
|
+
cause: error
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
var _default = compile;
|
|
23
|
+
exports.default = _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _JsonPointerError = _interopRequireDefault(require("./JsonPointerError.cjs"));
|
|
7
|
+
class CompilationJsonPointerError extends _JsonPointerError.default {
|
|
8
|
+
constructor(message, structuredOptions) {
|
|
9
|
+
super(message, structuredOptions);
|
|
10
|
+
if (typeof structuredOptions !== 'undefined') {
|
|
11
|
+
this.tokens = [...structuredOptions.tokens];
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
var _default = CompilationJsonPointerError;
|
|
16
|
+
exports.default = _default;
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
3
4
|
exports.__esModule = true;
|
|
4
5
|
exports.default = void 0;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (typeof
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
var _apidomCore = require("@swagger-api/apidom-core");
|
|
7
|
+
var _JsonPointerError = _interopRequireDefault(require("./JsonPointerError.cjs"));
|
|
8
|
+
class EvaluationJsonPointerError extends _JsonPointerError.default {
|
|
9
|
+
constructor(message, structuredOptions) {
|
|
10
|
+
super(message, structuredOptions);
|
|
11
|
+
if (typeof structuredOptions !== 'undefined') {
|
|
12
|
+
this.pointer = structuredOptions.pointer;
|
|
13
|
+
if (Array.isArray(structuredOptions.tokens)) {
|
|
14
|
+
this.tokens = [...structuredOptions.tokens];
|
|
15
|
+
}
|
|
16
|
+
this.failedToken = structuredOptions.failedToken;
|
|
17
|
+
this.failedTokenPosition = structuredOptions.failedTokenPosition;
|
|
18
|
+
this.element = structuredOptions.element.element;
|
|
19
|
+
if ((0, _apidomCore.hasElementSourceMap)(structuredOptions.element)) {
|
|
20
|
+
this.elementSourceMap = (0, _apidomCore.toValue)(structuredOptions.element.getMetaProperty('sourceMap'));
|
|
21
|
+
}
|
|
14
22
|
}
|
|
15
23
|
}
|
|
16
24
|
}
|
|
17
|
-
|
|
25
|
+
var _default = EvaluationJsonPointerError;
|
|
26
|
+
exports.default = _default;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
3
4
|
exports.__esModule = true;
|
|
4
5
|
exports.default = void 0;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Error.captureStackTrace(this, this.constructor);
|
|
12
|
-
} else {
|
|
13
|
-
this.stack = new Error(`Invalid JSON Pointer "${pointer}". Pointers must begin with "/"`).stack;
|
|
6
|
+
var _JsonPointerError = _interopRequireDefault(require("./JsonPointerError.cjs"));
|
|
7
|
+
class InvalidJsonPointerError extends _JsonPointerError.default {
|
|
8
|
+
constructor(message, structuredOptions) {
|
|
9
|
+
super(message, structuredOptions);
|
|
10
|
+
if (typeof structuredOptions !== 'undefined') {
|
|
11
|
+
this.pointer = structuredOptions.pointer;
|
|
14
12
|
}
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
|
-
|
|
15
|
+
var _default = InvalidJsonPointerError;
|
|
16
|
+
exports.default = _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
var _apidomError = require("@swagger-api/apidom-error");
|
|
6
|
+
class JsonPointerError extends _apidomError.ApiDOMStructuredError {}
|
|
7
|
+
var _default = JsonPointerError;
|
|
8
|
+
exports.default = _default;
|
package/cjs/escape.cjs
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
var _ramda = require("ramda");
|
|
6
|
+
// escape :: String -> String
|
|
7
|
+
const escape = (0, _ramda.pipe)((0, _ramda.replace)(/~/g, '~0'), (0, _ramda.replace)(/\//g, '~1'), encodeURIComponent);
|
|
8
|
+
var _default = escape;
|
|
9
|
+
exports.default = _default;
|
package/cjs/evaluate.cjs
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _ramdaAdjunct = require("ramda-adjunct");
|
|
7
|
+
var _apidomCore = require("@swagger-api/apidom-core");
|
|
8
|
+
var _parse = _interopRequireDefault(require("./parse.cjs"));
|
|
9
|
+
var _EvaluationJsonPointerError = _interopRequireDefault(require("./errors/EvaluationJsonPointerError.cjs"));
|
|
10
|
+
// evaluates JSON Pointer against ApiDOM fragment
|
|
11
|
+
const evaluate = (pointer, element) => {
|
|
12
|
+
let tokens;
|
|
13
|
+
try {
|
|
14
|
+
tokens = (0, _parse.default)(pointer);
|
|
15
|
+
} catch (error) {
|
|
16
|
+
throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while parsing the pointer "${pointer}".`, {
|
|
17
|
+
pointer,
|
|
18
|
+
element,
|
|
19
|
+
cause: error
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return tokens.reduce((acc, token, tokenPosition) => {
|
|
23
|
+
if ((0, _apidomCore.isObjectElement)(acc)) {
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
if (!acc.hasKey(token)) {
|
|
26
|
+
throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while evaluating token "${token}" against an ObjectElement`, {
|
|
27
|
+
pointer,
|
|
28
|
+
tokens,
|
|
29
|
+
failedToken: token,
|
|
30
|
+
failedTokenPosition: tokenPosition,
|
|
31
|
+
element: acc
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
return acc.get(token);
|
|
36
|
+
}
|
|
37
|
+
if ((0, _apidomCore.isArrayElement)(acc)) {
|
|
38
|
+
if (!(token in acc.content) || !(0, _ramdaAdjunct.isInteger)(Number(token))) {
|
|
39
|
+
throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while evaluating token "${token}" against an ArrayElement`, {
|
|
40
|
+
pointer,
|
|
41
|
+
tokens,
|
|
42
|
+
failedToken: token,
|
|
43
|
+
failedTokenPosition: tokenPosition,
|
|
44
|
+
element: acc
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
return acc.get(Number(token));
|
|
49
|
+
}
|
|
50
|
+
throw new _EvaluationJsonPointerError.default(`JSON Pointer evaluation failed while evaluating token "${token}" against an unexpected Element`, {
|
|
51
|
+
pointer,
|
|
52
|
+
tokens,
|
|
53
|
+
failedToken: token,
|
|
54
|
+
failedTokenPosition: tokenPosition,
|
|
55
|
+
element: acc
|
|
56
|
+
});
|
|
57
|
+
}, element);
|
|
58
|
+
};
|
|
59
|
+
var _default = evaluate;
|
|
60
|
+
exports.default = _default;
|
package/cjs/index.cjs
CHANGED
|
@@ -1,96 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
3
4
|
exports.__esModule = true;
|
|
4
|
-
exports.uriToPointer = exports.unescape = exports.parse = exports.evaluate = exports.escape = exports.compile = void 0;
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const escape = (0, _ramda.pipe)((0, _ramda.replace)(/~/g, '~0'), (0, _ramda.replace)(/\//g, '~1'), encodeURIComponent);
|
|
27
|
-
|
|
28
|
-
// unescape :: String -> String
|
|
29
|
-
exports.escape = escape;
|
|
30
|
-
const unescape = (0, _ramda.pipe)((0, _ramda.replace)(/~1/g, '/'), (0, _ramda.replace)(/~0/g, '~'), safeDecodeURIComponent);
|
|
31
|
-
|
|
32
|
-
// parse :: String -> String[]
|
|
33
|
-
exports.unescape = unescape;
|
|
34
|
-
const parse = pointer => {
|
|
35
|
-
if ((0, _ramdaAdjunct.isEmptyString)(pointer)) {
|
|
36
|
-
return [];
|
|
37
|
-
}
|
|
38
|
-
if (!(0, _ramda.startsWith)('/', pointer)) {
|
|
39
|
-
throw new _index.InvalidJsonPointerError(pointer);
|
|
40
|
-
}
|
|
41
|
-
const tokens = (0, _ramda.pipe)((0, _ramda.split)('/'), (0, _ramda.map)(unescape))(pointer);
|
|
42
|
-
return (0, _ramda.tail)(tokens);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
// compile :: String[] -> String
|
|
46
|
-
exports.parse = parse;
|
|
47
|
-
const compile = tokens => {
|
|
48
|
-
if (tokens.length === 0) {
|
|
49
|
-
return '';
|
|
50
|
-
}
|
|
51
|
-
return `/${tokens.map(escape).join('/')}`;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// evaluates JSON Pointer against ApiDOM fragment
|
|
55
|
-
exports.compile = compile;
|
|
56
|
-
const evaluate = (pointer, element) => {
|
|
57
|
-
const tokens = parse(pointer);
|
|
58
|
-
return tokens.reduce((acc, token) => {
|
|
59
|
-
if ((0, _apidomCore.isObjectElement)(acc)) {
|
|
60
|
-
// @ts-ignore
|
|
61
|
-
if (!acc.hasKey(token)) {
|
|
62
|
-
throw new _index.EvaluationJsonPointerError(`Evaluation failed on token: "${token}"`);
|
|
63
|
-
}
|
|
64
|
-
// @ts-ignore
|
|
65
|
-
return acc.get(token);
|
|
66
|
-
}
|
|
67
|
-
if ((0, _apidomCore.isArrayElement)(acc)) {
|
|
68
|
-
if (!(token in acc.content) || !(0, _ramdaAdjunct.isInteger)(Number(token))) {
|
|
69
|
-
throw new _index.EvaluationJsonPointerError(`Evaluation failed on token: "${token}"`);
|
|
70
|
-
}
|
|
71
|
-
// @ts-ignore
|
|
72
|
-
return acc.get(Number(token));
|
|
73
|
-
}
|
|
74
|
-
throw new _index.EvaluationJsonPointerError(`Evaluation failed on token: "${token}"`);
|
|
75
|
-
}, element);
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Returns the hash (URL fragment), of the given path.
|
|
80
|
-
* If there is no hash, then the root hash ("#") is returned.
|
|
81
|
-
*/
|
|
82
|
-
exports.evaluate = evaluate;
|
|
83
|
-
const getHash = uri => {
|
|
84
|
-
const hashIndex = uri.indexOf('#');
|
|
85
|
-
if (hashIndex !== -1) {
|
|
86
|
-
return uri.substring(hashIndex);
|
|
87
|
-
}
|
|
88
|
-
return '#';
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
// uriToPointer :: String -> String
|
|
92
|
-
const uriToPointer = uri => {
|
|
93
|
-
const hash = getHash(uri);
|
|
94
|
-
return (0, _ramdaAdjunct.trimCharsStart)('#', hash);
|
|
95
|
-
};
|
|
96
|
-
exports.uriToPointer = uriToPointer;
|
|
5
|
+
exports.uriToPointer = exports.unescape = exports.parse = exports.evaluate = exports.escape = exports.compile = exports.JsonPointerError = exports.InvalidJsonPointerError = exports.EvaluationJsonPointerError = exports.CompilationJsonPointerError = void 0;
|
|
6
|
+
var _JsonPointerError = _interopRequireDefault(require("./errors/JsonPointerError.cjs"));
|
|
7
|
+
exports.JsonPointerError = _JsonPointerError.default;
|
|
8
|
+
var _InvalidJsonPointerError = _interopRequireDefault(require("./errors/InvalidJsonPointerError.cjs"));
|
|
9
|
+
exports.InvalidJsonPointerError = _InvalidJsonPointerError.default;
|
|
10
|
+
var _CompilationJsonPointerError = _interopRequireDefault(require("./errors/CompilationJsonPointerError.cjs"));
|
|
11
|
+
exports.CompilationJsonPointerError = _CompilationJsonPointerError.default;
|
|
12
|
+
var _EvaluationJsonPointerError = _interopRequireDefault(require("./errors/EvaluationJsonPointerError.cjs"));
|
|
13
|
+
exports.EvaluationJsonPointerError = _EvaluationJsonPointerError.default;
|
|
14
|
+
var _escape = _interopRequireDefault(require("./escape.cjs"));
|
|
15
|
+
exports.escape = _escape.default;
|
|
16
|
+
var _unescape = _interopRequireDefault(require("./unescape.cjs"));
|
|
17
|
+
exports.unescape = _unescape.default;
|
|
18
|
+
var _parse = _interopRequireWildcard(require("./parse.cjs"));
|
|
19
|
+
exports.parse = _parse.default;
|
|
20
|
+
exports.uriToPointer = _parse.uriToPointer;
|
|
21
|
+
var _compile = _interopRequireDefault(require("./compile.cjs"));
|
|
22
|
+
exports.compile = _compile.default;
|
|
23
|
+
var _evaluate = _interopRequireDefault(require("./evaluate.cjs"));
|
|
24
|
+
exports.evaluate = _evaluate.default;
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
package/cjs/parse.cjs
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
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"));
|
|
10
|
+
// parse :: String -> String[]
|
|
11
|
+
const parse = pointer => {
|
|
12
|
+
if ((0, _ramdaAdjunct.isEmptyString)(pointer)) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
if (!(0, _ramda.startsWith)('/', pointer)) {
|
|
16
|
+
throw new _InvalidJsonPointerError.default(`Invalid JSON Pointer "${pointer}". JSON Pointers must begin with "/"`, {
|
|
17
|
+
pointer
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const tokens = (0, _ramda.pipe)((0, _ramda.split)('/'), (0, _ramda.map)(_unescape.default))(pointer);
|
|
22
|
+
return (0, _ramda.tail)(tokens);
|
|
23
|
+
} catch (error) {
|
|
24
|
+
throw new _InvalidJsonPointerError.default(`JSON Pointer parsing of "${pointer}" encountered an error.`, {
|
|
25
|
+
pointer,
|
|
26
|
+
cause: error
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Returns the hash (URL fragment), of the given path.
|
|
33
|
+
* If there is no hash, then the root hash ("#") is returned.
|
|
34
|
+
*/
|
|
35
|
+
const getHash = uri => {
|
|
36
|
+
const hashIndex = uri.indexOf('#');
|
|
37
|
+
if (hashIndex !== -1) {
|
|
38
|
+
return uri.substring(hashIndex);
|
|
39
|
+
}
|
|
40
|
+
return '#';
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// uriToPointer :: String -> String
|
|
44
|
+
const uriToPointer = uri => {
|
|
45
|
+
const hash = getHash(uri);
|
|
46
|
+
return (0, _ramdaAdjunct.trimCharsStart)('#', hash);
|
|
47
|
+
};
|
|
48
|
+
exports.uriToPointer = uriToPointer;
|
|
49
|
+
var _default = parse;
|
|
50
|
+
exports.default = _default;
|
package/cjs/unescape.cjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
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
|
+
|
|
20
|
+
// unescape :: String -> String
|
|
21
|
+
const unescape = (0, _ramda.pipe)((0, _ramda.replace)(/~1/g, '/'), (0, _ramda.replace)(/~0/g, '~'), safeDecodeURIComponent);
|
|
22
|
+
var _default = unescape;
|
|
23
|
+
exports.default = _default;
|