@hyperjump/json-pointer 0.9.8 → 1.0.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/README.md +1 -2
- package/lib/index.d.ts +7 -20
- package/lib/index.js +8 -10
- package/package.json +3 -10
- package/dist/json-pointer-amd.js +0 -210
- package/dist/json-pointer-amd.js.map +0 -1
- package/dist/json-pointer-amd.min.js +0 -2
- package/dist/json-pointer-amd.min.js.map +0 -1
- package/dist/json-pointer-cjs.js +0 -208
- package/dist/json-pointer-cjs.js.map +0 -1
- package/dist/json-pointer-cjs.min.js +0 -2
- package/dist/json-pointer-cjs.min.js.map +0 -1
- package/dist/json-pointer-esm.js +0 -206
- package/dist/json-pointer-esm.js.map +0 -1
- package/dist/json-pointer-esm.min.js +0 -2
- package/dist/json-pointer-esm.min.js.map +0 -1
- package/dist/json-pointer-iife.js +0 -211
- package/dist/json-pointer-iife.js.map +0 -1
- package/dist/json-pointer-iife.min.js +0 -2
- package/dist/json-pointer-iife.min.js.map +0 -1
- package/dist/json-pointer-system.js +0 -213
- package/dist/json-pointer-system.js.map +0 -1
- package/dist/json-pointer-system.min.js +0 -2
- package/dist/json-pointer-system.min.js.map +0 -1
- package/dist/json-pointer-umd.js +0 -214
- package/dist/json-pointer-umd.js.map +0 -1
- package/dist/json-pointer-umd.min.js +0 -2
- package/dist/json-pointer-umd.min.js.map +0 -1
- package/lib/index.mjs +0 -10
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-pointer-cjs.js","sources":["../node_modules/just-curry-it/index.cjs","../lib/index.js"],"sourcesContent":["module.exports = curry;\n\n/*\n function add(a, b, c) {\n return a + b + c;\n }\n curry(add)(1)(2)(3); // 6\n curry(add)(1)(2)(2); // 5\n curry(add)(2)(4, 3); // 9\n\n function add(...args) {\n return args.reduce((sum, n) => sum + n, 0)\n }\n var curryAdd4 = curry(add, 4)\n curryAdd4(1)(2, 3)(4); // 10\n\n function converter(ratio, input) {\n return (input*ratio).toFixed(1);\n }\n const curriedConverter = curry(converter)\n const milesToKm = curriedConverter(1.62);\n milesToKm(35); // 56.7\n milesToKm(10); // 16.2\n*/\n\nfunction curry(fn, arity) {\n return function curried() {\n if (arity == null) {\n arity = fn.length;\n }\n var args = [].slice.call(arguments);\n if (args.length >= arity) {\n return fn.apply(this, args);\n } else {\n return function() {\n return curried.apply(this, args.concat([].slice.call(arguments)));\n };\n }\n };\n}\n","const curry = require(\"just-curry-it\");\n\n\nconst nil = \"\";\n\nconst EXISTS = Symbol(\"EXISTS\");\n\nconst segmentGenerator = (pointer) => {\n if (pointer.length > 0 && pointer[0] !== \"/\") {\n throw Error(\"Invalid JSON Pointer\");\n }\n\n let segmentStart = 1;\n let segmentEnd = 0;\n\n return (mode) => {\n if (mode === EXISTS) {\n return segmentEnd < pointer.length;\n }\n\n if (segmentEnd >= pointer.length) {\n return;\n }\n\n const position = pointer.indexOf(\"/\", segmentStart);\n segmentEnd = position === -1 ? pointer.length : position;\n const segment = unescape(pointer.slice(segmentStart, segmentEnd));\n segmentStart = segmentEnd + 1;\n\n return segment;\n };\n};\n\nconst get = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _get(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _get = (nextSegment, subject, cursor) => {\n if (!nextSegment(EXISTS)) {\n return subject;\n } else {\n const segment = nextSegment();\n return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));\n }\n};\n\nconst set = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _set = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return value;\n } else if (nextSegment(EXISTS)) {\n if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n return clonedSubject;\n } else {\n return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };\n }\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[computeSegment(subject, segment)] = value;\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n return { ...subject, [segment]: value };\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst assign = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _assign = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (!nextSegment(EXISTS) && !isScalar(subject)) {\n subject[computeSegment(subject, segment)] = value;\n } else {\n _assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n }\n};\n\nconst unset = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _unset(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _unset = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n delete clonedSubject[computeSegment(subject, segment)];\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n // eslint-disable-next-line no-unused-vars\n const { [segment]: _, ...result } = subject;\n return result;\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst remove = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _remove(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _remove = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n _remove(nextSegment, value, append(segment, cursor));\n } else if (!isScalar(subject)) {\n delete subject[segment];\n } else {\n applySegment(subject, segment, cursor);\n }\n};\n\nconst append = curry((segment, pointer) => pointer + \"/\" + escape(segment));\n\nconst escape = (segment) => segment.toString().replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\nconst unescape = (segment) => segment.toString().replace(/~1/g, \"/\").replace(/~0/g, \"~\");\nconst computeSegment = (value, segment) => Array.isArray(value) && segment === \"-\" ? value.length : segment;\n\nconst applySegment = (value, segment, cursor = \"\") => {\n if (value === undefined) {\n throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);\n } else if (value === null) {\n throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);\n } else if (isScalar(value)) {\n throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);\n } else {\n const computedSegment = computeSegment(value, segment);\n return value[computedSegment];\n }\n};\n\nconst isScalar = (value) => value === null || typeof value !== \"object\";\n\nmodule.exports = { nil, append, get, set, assign, unset, remove };\n"],"names":["curry","require$$0"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const r=function(r,t){return function e(){null==t&&(t=r.length);var n=[].slice.call(arguments);return n.length>=t?r.apply(this,n):function(){return e.apply(this,n.concat([].slice.call(arguments)))}}},t="",e=Symbol("EXISTS"),n=r=>{if(r.length>0&&"/"!==r[0])throw Error("Invalid JSON Pointer");let t=1,n=0;return o=>{if(o===e)return n<r.length;if(n>=r.length)return;const i=r.indexOf("/",t);n=-1===i?r.length:i;const l=f(r.slice(t,n));return t=n+1,l}},o=(r,t,n)=>{if(r(e)){const e=r();return o(r,p(t,e,n),c(e,n))}return t},i=(r,t,n,o)=>{const l=r();if(void 0===l)return n;if(r(e)){if(Array.isArray(t)){const e=[...t];return e[l]=i(r,p(t,l,o),n,c(l,o)),e}return{...t,[l]:i(r,p(t,l,o),n,c(l,o))}}if(Array.isArray(t)){const r=[...t];return r[d(t,l)]=n,r}return"object"==typeof t&&null!==t?{...t,[l]:n}:p(t,l,o)},l=(r,t,n,o)=>{const i=r();void 0!==i&&(r(e)||y(t)?l(r,p(t,i,o),n,c(i,o)):t[d(t,i)]=n)},s=(r,t,n)=>{const o=r();if(void 0!==o){if(r(e)){const e=p(t,o,n);return{...t,[o]:s(r,e,c(o,n))}}if(Array.isArray(t)){const r=[...t];return delete r[d(t,o)],r}if("object"==typeof t&&null!==t){const{[o]:r,...e}=t;return e}return p(t,o,n)}},u=(r,t,n)=>{const o=r();if(void 0!==o)if(r(e)){const e=p(t,o,n);u(r,e,c(o,n))}else y(t)?p(t,o,n):delete t[o]},c=r(((r,t)=>t+"/"+a(r))),a=r=>r.toString().replace(/~/g,"~0").replace(/\//g,"~1"),f=r=>r.toString().replace(/~1/g,"/").replace(/~0/g,"~"),d=(r,t)=>Array.isArray(r)&&"-"===t?r.length:t,p=(r,t,e="")=>{if(void 0===r)throw TypeError(`Value at '${e}' is undefined and does not have property '${t}'`);if(null===r)throw TypeError(`Value at '${e}' is null and does not have property '${t}'`);if(y(r))throw TypeError(`Value at '${e}' is a ${typeof r} and does not have property '${t}'`);return r[d(r,t)]},y=r=>null===r||"object"!=typeof r;var v={nil:t,append:c,get:(r,e)=>{const i=n(r),l=r=>o(i,r,t);return void 0===e?l:l(e)},set:(e,o,l)=>{const s=n(e),u=r(((r,e)=>i(s,r,e,t)));return void 0===o?u:u(o,l)},assign:(e,o,i)=>{const s=n(e),u=r(((r,e)=>l(s,r,e,t)));return void 0===o?u:u(o,i)},unset:(r,e)=>{const o=n(r),i=r=>s(o,r,t);return void 0===e?i:i(e)},remove:(r,e)=>{const o=n(r),i=r=>u(o,r,t);return void 0===e?i:i(e)}};module.exports=v;
|
|
2
|
-
//# sourceMappingURL=json-pointer-cjs.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-pointer-cjs.min.js","sources":["../lib/index.js","../node_modules/just-curry-it/index.cjs"],"sourcesContent":["const curry = require(\"just-curry-it\");\n\n\nconst nil = \"\";\n\nconst EXISTS = Symbol(\"EXISTS\");\n\nconst segmentGenerator = (pointer) => {\n if (pointer.length > 0 && pointer[0] !== \"/\") {\n throw Error(\"Invalid JSON Pointer\");\n }\n\n let segmentStart = 1;\n let segmentEnd = 0;\n\n return (mode) => {\n if (mode === EXISTS) {\n return segmentEnd < pointer.length;\n }\n\n if (segmentEnd >= pointer.length) {\n return;\n }\n\n const position = pointer.indexOf(\"/\", segmentStart);\n segmentEnd = position === -1 ? pointer.length : position;\n const segment = unescape(pointer.slice(segmentStart, segmentEnd));\n segmentStart = segmentEnd + 1;\n\n return segment;\n };\n};\n\nconst get = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _get(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _get = (nextSegment, subject, cursor) => {\n if (!nextSegment(EXISTS)) {\n return subject;\n } else {\n const segment = nextSegment();\n return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));\n }\n};\n\nconst set = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _set = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return value;\n } else if (nextSegment(EXISTS)) {\n if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n return clonedSubject;\n } else {\n return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };\n }\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[computeSegment(subject, segment)] = value;\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n return { ...subject, [segment]: value };\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst assign = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _assign = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (!nextSegment(EXISTS) && !isScalar(subject)) {\n subject[computeSegment(subject, segment)] = value;\n } else {\n _assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n }\n};\n\nconst unset = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _unset(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _unset = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n delete clonedSubject[computeSegment(subject, segment)];\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n // eslint-disable-next-line no-unused-vars\n const { [segment]: _, ...result } = subject;\n return result;\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst remove = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _remove(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _remove = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n _remove(nextSegment, value, append(segment, cursor));\n } else if (!isScalar(subject)) {\n delete subject[segment];\n } else {\n applySegment(subject, segment, cursor);\n }\n};\n\nconst append = curry((segment, pointer) => pointer + \"/\" + escape(segment));\n\nconst escape = (segment) => segment.toString().replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\nconst unescape = (segment) => segment.toString().replace(/~1/g, \"/\").replace(/~0/g, \"~\");\nconst computeSegment = (value, segment) => Array.isArray(value) && segment === \"-\" ? value.length : segment;\n\nconst applySegment = (value, segment, cursor = \"\") => {\n if (value === undefined) {\n throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);\n } else if (value === null) {\n throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);\n } else if (isScalar(value)) {\n throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);\n } else {\n const computedSegment = computeSegment(value, segment);\n return value[computedSegment];\n }\n};\n\nconst isScalar = (value) => value === null || typeof value !== \"object\";\n\nmodule.exports = { nil, append, get, set, assign, unset, remove };\n","module.exports = curry;\n\n/*\n function add(a, b, c) {\n return a + b + c;\n }\n curry(add)(1)(2)(3); // 6\n curry(add)(1)(2)(2); // 5\n curry(add)(2)(4, 3); // 9\n\n function add(...args) {\n return args.reduce((sum, n) => sum + n, 0)\n }\n var curryAdd4 = curry(add, 4)\n curryAdd4(1)(2, 3)(4); // 10\n\n function converter(ratio, input) {\n return (input*ratio).toFixed(1);\n }\n const curriedConverter = curry(converter)\n const milesToKm = curriedConverter(1.62);\n milesToKm(35); // 56.7\n milesToKm(10); // 16.2\n*/\n\nfunction curry(fn, arity) {\n return function curried() {\n if (arity == null) {\n arity = fn.length;\n }\n var args = [].slice.call(arguments);\n if (args.length >= arity) {\n return fn.apply(this, args);\n } else {\n return function() {\n return curried.apply(this, args.concat([].slice.call(arguments)));\n };\n }\n };\n}\n"],"names":["curry","fn","arity","curried","length","args","slice","call","arguments","apply","this","concat","nil","EXISTS","Symbol","segmentGenerator","pointer","Error","segmentStart","segmentEnd","mode","position","indexOf","segment","unescape","_get","nextSegment","subject","cursor","applySegment","append","_set","value","undefined","Array","isArray","clonedSubject","computeSegment","_assign","isScalar","_unset","_","result","_remove","escape","toString","replace","TypeError","lib","get","set","assign","unset","remove"],"mappings":"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"}
|
package/dist/json-pointer-esm.js
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
var justCurryIt = curry$1;
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
function add(a, b, c) {
|
|
5
|
-
return a + b + c;
|
|
6
|
-
}
|
|
7
|
-
curry(add)(1)(2)(3); // 6
|
|
8
|
-
curry(add)(1)(2)(2); // 5
|
|
9
|
-
curry(add)(2)(4, 3); // 9
|
|
10
|
-
|
|
11
|
-
function add(...args) {
|
|
12
|
-
return args.reduce((sum, n) => sum + n, 0)
|
|
13
|
-
}
|
|
14
|
-
var curryAdd4 = curry(add, 4)
|
|
15
|
-
curryAdd4(1)(2, 3)(4); // 10
|
|
16
|
-
|
|
17
|
-
function converter(ratio, input) {
|
|
18
|
-
return (input*ratio).toFixed(1);
|
|
19
|
-
}
|
|
20
|
-
const curriedConverter = curry(converter)
|
|
21
|
-
const milesToKm = curriedConverter(1.62);
|
|
22
|
-
milesToKm(35); // 56.7
|
|
23
|
-
milesToKm(10); // 16.2
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
function curry$1(fn, arity) {
|
|
27
|
-
return function curried() {
|
|
28
|
-
if (arity == null) {
|
|
29
|
-
arity = fn.length;
|
|
30
|
-
}
|
|
31
|
-
var args = [].slice.call(arguments);
|
|
32
|
-
if (args.length >= arity) {
|
|
33
|
-
return fn.apply(this, args);
|
|
34
|
-
} else {
|
|
35
|
-
return function() {
|
|
36
|
-
return curried.apply(this, args.concat([].slice.call(arguments)));
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const curry = justCurryIt;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const nil = "";
|
|
46
|
-
|
|
47
|
-
const EXISTS = Symbol("EXISTS");
|
|
48
|
-
|
|
49
|
-
const segmentGenerator = (pointer) => {
|
|
50
|
-
if (pointer.length > 0 && pointer[0] !== "/") {
|
|
51
|
-
throw Error("Invalid JSON Pointer");
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
let segmentStart = 1;
|
|
55
|
-
let segmentEnd = 0;
|
|
56
|
-
|
|
57
|
-
return (mode) => {
|
|
58
|
-
if (mode === EXISTS) {
|
|
59
|
-
return segmentEnd < pointer.length;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (segmentEnd >= pointer.length) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const position = pointer.indexOf("/", segmentStart);
|
|
67
|
-
segmentEnd = position === -1 ? pointer.length : position;
|
|
68
|
-
const segment = unescape(pointer.slice(segmentStart, segmentEnd));
|
|
69
|
-
segmentStart = segmentEnd + 1;
|
|
70
|
-
|
|
71
|
-
return segment;
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const get = (pointer, subject = undefined) => {
|
|
76
|
-
const nextSegment = segmentGenerator(pointer);
|
|
77
|
-
const fn = (subject) => _get(nextSegment, subject, nil);
|
|
78
|
-
return subject === undefined ? fn : fn(subject);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const _get = (nextSegment, subject, cursor) => {
|
|
82
|
-
if (!nextSegment(EXISTS)) {
|
|
83
|
-
return subject;
|
|
84
|
-
} else {
|
|
85
|
-
const segment = nextSegment();
|
|
86
|
-
return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const set = (pointer, subject = undefined, value = undefined) => {
|
|
91
|
-
const nextSegment = segmentGenerator(pointer);
|
|
92
|
-
const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));
|
|
93
|
-
return subject === undefined ? fn : fn(subject, value);
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
const _set = (nextSegment, subject, value, cursor) => {
|
|
97
|
-
const segment = nextSegment();
|
|
98
|
-
if (segment === undefined) {
|
|
99
|
-
return value;
|
|
100
|
-
} else if (nextSegment(EXISTS)) {
|
|
101
|
-
if (Array.isArray(subject)) {
|
|
102
|
-
const clonedSubject = [...subject];
|
|
103
|
-
clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));
|
|
104
|
-
return clonedSubject;
|
|
105
|
-
} else {
|
|
106
|
-
return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };
|
|
107
|
-
}
|
|
108
|
-
} else if (Array.isArray(subject)) {
|
|
109
|
-
const clonedSubject = [...subject];
|
|
110
|
-
clonedSubject[computeSegment(subject, segment)] = value;
|
|
111
|
-
return clonedSubject;
|
|
112
|
-
} else if (typeof subject === "object" && subject !== null) {
|
|
113
|
-
return { ...subject, [segment]: value };
|
|
114
|
-
} else {
|
|
115
|
-
return applySegment(subject, segment, cursor);
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
const assign = (pointer, subject = undefined, value = undefined) => {
|
|
120
|
-
const nextSegment = segmentGenerator(pointer);
|
|
121
|
-
const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));
|
|
122
|
-
return subject === undefined ? fn : fn(subject, value);
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
const _assign = (nextSegment, subject, value, cursor) => {
|
|
126
|
-
const segment = nextSegment();
|
|
127
|
-
if (segment === undefined) {
|
|
128
|
-
return;
|
|
129
|
-
} else if (!nextSegment(EXISTS) && !isScalar(subject)) {
|
|
130
|
-
subject[computeSegment(subject, segment)] = value;
|
|
131
|
-
} else {
|
|
132
|
-
_assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
const unset = (pointer, subject = undefined) => {
|
|
137
|
-
const nextSegment = segmentGenerator(pointer);
|
|
138
|
-
const fn = (subject) => _unset(nextSegment, subject, nil);
|
|
139
|
-
return subject === undefined ? fn : fn(subject);
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
const _unset = (nextSegment, subject, cursor) => {
|
|
143
|
-
const segment = nextSegment();
|
|
144
|
-
if (segment === undefined) {
|
|
145
|
-
return;
|
|
146
|
-
} else if (nextSegment(EXISTS)) {
|
|
147
|
-
const value = applySegment(subject, segment, cursor);
|
|
148
|
-
return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };
|
|
149
|
-
} else if (Array.isArray(subject)) {
|
|
150
|
-
const clonedSubject = [...subject];
|
|
151
|
-
delete clonedSubject[computeSegment(subject, segment)];
|
|
152
|
-
return clonedSubject;
|
|
153
|
-
} else if (typeof subject === "object" && subject !== null) {
|
|
154
|
-
// eslint-disable-next-line no-unused-vars
|
|
155
|
-
const { [segment]: _, ...result } = subject;
|
|
156
|
-
return result;
|
|
157
|
-
} else {
|
|
158
|
-
return applySegment(subject, segment, cursor);
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
const remove = (pointer, subject = undefined) => {
|
|
163
|
-
const nextSegment = segmentGenerator(pointer);
|
|
164
|
-
const fn = (subject) => _remove(nextSegment, subject, nil);
|
|
165
|
-
return subject === undefined ? fn : fn(subject);
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
const _remove = (nextSegment, subject, cursor) => {
|
|
169
|
-
const segment = nextSegment();
|
|
170
|
-
if (segment === undefined) {
|
|
171
|
-
return;
|
|
172
|
-
} else if (nextSegment(EXISTS)) {
|
|
173
|
-
const value = applySegment(subject, segment, cursor);
|
|
174
|
-
_remove(nextSegment, value, append(segment, cursor));
|
|
175
|
-
} else if (!isScalar(subject)) {
|
|
176
|
-
delete subject[segment];
|
|
177
|
-
} else {
|
|
178
|
-
applySegment(subject, segment, cursor);
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
const append = curry((segment, pointer) => pointer + "/" + escape(segment));
|
|
183
|
-
|
|
184
|
-
const escape = (segment) => segment.toString().replace(/~/g, "~0").replace(/\//g, "~1");
|
|
185
|
-
const unescape = (segment) => segment.toString().replace(/~1/g, "/").replace(/~0/g, "~");
|
|
186
|
-
const computeSegment = (value, segment) => Array.isArray(value) && segment === "-" ? value.length : segment;
|
|
187
|
-
|
|
188
|
-
const applySegment = (value, segment, cursor = "") => {
|
|
189
|
-
if (value === undefined) {
|
|
190
|
-
throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);
|
|
191
|
-
} else if (value === null) {
|
|
192
|
-
throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);
|
|
193
|
-
} else if (isScalar(value)) {
|
|
194
|
-
throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);
|
|
195
|
-
} else {
|
|
196
|
-
const computedSegment = computeSegment(value, segment);
|
|
197
|
-
return value[computedSegment];
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
const isScalar = (value) => value === null || typeof value !== "object";
|
|
202
|
-
|
|
203
|
-
var lib = { nil, append, get, set, assign, unset, remove };
|
|
204
|
-
|
|
205
|
-
export { lib as default };
|
|
206
|
-
//# sourceMappingURL=json-pointer-esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-pointer-esm.js","sources":["../node_modules/just-curry-it/index.cjs","../lib/index.js"],"sourcesContent":["module.exports = curry;\n\n/*\n function add(a, b, c) {\n return a + b + c;\n }\n curry(add)(1)(2)(3); // 6\n curry(add)(1)(2)(2); // 5\n curry(add)(2)(4, 3); // 9\n\n function add(...args) {\n return args.reduce((sum, n) => sum + n, 0)\n }\n var curryAdd4 = curry(add, 4)\n curryAdd4(1)(2, 3)(4); // 10\n\n function converter(ratio, input) {\n return (input*ratio).toFixed(1);\n }\n const curriedConverter = curry(converter)\n const milesToKm = curriedConverter(1.62);\n milesToKm(35); // 56.7\n milesToKm(10); // 16.2\n*/\n\nfunction curry(fn, arity) {\n return function curried() {\n if (arity == null) {\n arity = fn.length;\n }\n var args = [].slice.call(arguments);\n if (args.length >= arity) {\n return fn.apply(this, args);\n } else {\n return function() {\n return curried.apply(this, args.concat([].slice.call(arguments)));\n };\n }\n };\n}\n","const curry = require(\"just-curry-it\");\n\n\nconst nil = \"\";\n\nconst EXISTS = Symbol(\"EXISTS\");\n\nconst segmentGenerator = (pointer) => {\n if (pointer.length > 0 && pointer[0] !== \"/\") {\n throw Error(\"Invalid JSON Pointer\");\n }\n\n let segmentStart = 1;\n let segmentEnd = 0;\n\n return (mode) => {\n if (mode === EXISTS) {\n return segmentEnd < pointer.length;\n }\n\n if (segmentEnd >= pointer.length) {\n return;\n }\n\n const position = pointer.indexOf(\"/\", segmentStart);\n segmentEnd = position === -1 ? pointer.length : position;\n const segment = unescape(pointer.slice(segmentStart, segmentEnd));\n segmentStart = segmentEnd + 1;\n\n return segment;\n };\n};\n\nconst get = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _get(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _get = (nextSegment, subject, cursor) => {\n if (!nextSegment(EXISTS)) {\n return subject;\n } else {\n const segment = nextSegment();\n return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));\n }\n};\n\nconst set = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _set = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return value;\n } else if (nextSegment(EXISTS)) {\n if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n return clonedSubject;\n } else {\n return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };\n }\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[computeSegment(subject, segment)] = value;\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n return { ...subject, [segment]: value };\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst assign = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _assign = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (!nextSegment(EXISTS) && !isScalar(subject)) {\n subject[computeSegment(subject, segment)] = value;\n } else {\n _assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n }\n};\n\nconst unset = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _unset(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _unset = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n delete clonedSubject[computeSegment(subject, segment)];\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n // eslint-disable-next-line no-unused-vars\n const { [segment]: _, ...result } = subject;\n return result;\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst remove = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _remove(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _remove = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n _remove(nextSegment, value, append(segment, cursor));\n } else if (!isScalar(subject)) {\n delete subject[segment];\n } else {\n applySegment(subject, segment, cursor);\n }\n};\n\nconst append = curry((segment, pointer) => pointer + \"/\" + escape(segment));\n\nconst escape = (segment) => segment.toString().replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\nconst unescape = (segment) => segment.toString().replace(/~1/g, \"/\").replace(/~0/g, \"~\");\nconst computeSegment = (value, segment) => Array.isArray(value) && segment === \"-\" ? value.length : segment;\n\nconst applySegment = (value, segment, cursor = \"\") => {\n if (value === undefined) {\n throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);\n } else if (value === null) {\n throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);\n } else if (isScalar(value)) {\n throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);\n } else {\n const computedSegment = computeSegment(value, segment);\n return value[computedSegment];\n }\n};\n\nconst isScalar = (value) => value === null || typeof value !== \"object\";\n\nmodule.exports = { nil, append, get, set, assign, unset, remove };\n"],"names":["curry","require$$0"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const r=function(r,t){return function e(){null==t&&(t=r.length);var n=[].slice.call(arguments);return n.length>=t?r.apply(this,n):function(){return e.apply(this,n.concat([].slice.call(arguments)))}}},t="",e=Symbol("EXISTS"),n=r=>{if(r.length>0&&"/"!==r[0])throw Error("Invalid JSON Pointer");let t=1,n=0;return o=>{if(o===e)return n<r.length;if(n>=r.length)return;const i=r.indexOf("/",t);n=-1===i?r.length:i;const l=f(r.slice(t,n));return t=n+1,l}},o=(r,t,n)=>{if(r(e)){const e=r();return o(r,p(t,e,n),a(e,n))}return t},i=(r,t,n,o)=>{const l=r();if(void 0===l)return n;if(r(e)){if(Array.isArray(t)){const e=[...t];return e[l]=i(r,p(t,l,o),n,a(l,o)),e}return{...t,[l]:i(r,p(t,l,o),n,a(l,o))}}if(Array.isArray(t)){const r=[...t];return r[d(t,l)]=n,r}return"object"==typeof t&&null!==t?{...t,[l]:n}:p(t,l,o)},l=(r,t,n,o)=>{const i=r();void 0!==i&&(r(e)||y(t)?l(r,p(t,i,o),n,a(i,o)):t[d(t,i)]=n)},s=(r,t,n)=>{const o=r();if(void 0!==o){if(r(e)){const e=p(t,o,n);return{...t,[o]:s(r,e,a(o,n))}}if(Array.isArray(t)){const r=[...t];return delete r[d(t,o)],r}if("object"==typeof t&&null!==t){const{[o]:r,...e}=t;return e}return p(t,o,n)}},u=(r,t,n)=>{const o=r();if(void 0!==o)if(r(e)){const e=p(t,o,n);u(r,e,a(o,n))}else y(t)?p(t,o,n):delete t[o]},a=r(((r,t)=>t+"/"+c(r))),c=r=>r.toString().replace(/~/g,"~0").replace(/\//g,"~1"),f=r=>r.toString().replace(/~1/g,"/").replace(/~0/g,"~"),d=(r,t)=>Array.isArray(r)&&"-"===t?r.length:t,p=(r,t,e="")=>{if(void 0===r)throw TypeError(`Value at '${e}' is undefined and does not have property '${t}'`);if(null===r)throw TypeError(`Value at '${e}' is null and does not have property '${t}'`);if(y(r))throw TypeError(`Value at '${e}' is a ${typeof r} and does not have property '${t}'`);return r[d(r,t)]},y=r=>null===r||"object"!=typeof r;var v={nil:t,append:a,get:(r,e)=>{const i=n(r),l=r=>o(i,r,t);return void 0===e?l:l(e)},set:(e,o,l)=>{const s=n(e),u=r(((r,e)=>i(s,r,e,t)));return void 0===o?u:u(o,l)},assign:(e,o,i)=>{const s=n(e),u=r(((r,e)=>l(s,r,e,t)));return void 0===o?u:u(o,i)},unset:(r,e)=>{const o=n(r),i=r=>s(o,r,t);return void 0===e?i:i(e)},remove:(r,e)=>{const o=n(r),i=r=>u(o,r,t);return void 0===e?i:i(e)}};export{v as default};
|
|
2
|
-
//# sourceMappingURL=json-pointer-esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-pointer-esm.min.js","sources":["../lib/index.js","../node_modules/just-curry-it/index.cjs"],"sourcesContent":["const curry = require(\"just-curry-it\");\n\n\nconst nil = \"\";\n\nconst EXISTS = Symbol(\"EXISTS\");\n\nconst segmentGenerator = (pointer) => {\n if (pointer.length > 0 && pointer[0] !== \"/\") {\n throw Error(\"Invalid JSON Pointer\");\n }\n\n let segmentStart = 1;\n let segmentEnd = 0;\n\n return (mode) => {\n if (mode === EXISTS) {\n return segmentEnd < pointer.length;\n }\n\n if (segmentEnd >= pointer.length) {\n return;\n }\n\n const position = pointer.indexOf(\"/\", segmentStart);\n segmentEnd = position === -1 ? pointer.length : position;\n const segment = unescape(pointer.slice(segmentStart, segmentEnd));\n segmentStart = segmentEnd + 1;\n\n return segment;\n };\n};\n\nconst get = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _get(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _get = (nextSegment, subject, cursor) => {\n if (!nextSegment(EXISTS)) {\n return subject;\n } else {\n const segment = nextSegment();\n return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));\n }\n};\n\nconst set = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _set = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return value;\n } else if (nextSegment(EXISTS)) {\n if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n return clonedSubject;\n } else {\n return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };\n }\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[computeSegment(subject, segment)] = value;\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n return { ...subject, [segment]: value };\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst assign = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _assign = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (!nextSegment(EXISTS) && !isScalar(subject)) {\n subject[computeSegment(subject, segment)] = value;\n } else {\n _assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n }\n};\n\nconst unset = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _unset(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _unset = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n delete clonedSubject[computeSegment(subject, segment)];\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n // eslint-disable-next-line no-unused-vars\n const { [segment]: _, ...result } = subject;\n return result;\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst remove = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _remove(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _remove = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n _remove(nextSegment, value, append(segment, cursor));\n } else if (!isScalar(subject)) {\n delete subject[segment];\n } else {\n applySegment(subject, segment, cursor);\n }\n};\n\nconst append = curry((segment, pointer) => pointer + \"/\" + escape(segment));\n\nconst escape = (segment) => segment.toString().replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\nconst unescape = (segment) => segment.toString().replace(/~1/g, \"/\").replace(/~0/g, \"~\");\nconst computeSegment = (value, segment) => Array.isArray(value) && segment === \"-\" ? value.length : segment;\n\nconst applySegment = (value, segment, cursor = \"\") => {\n if (value === undefined) {\n throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);\n } else if (value === null) {\n throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);\n } else if (isScalar(value)) {\n throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);\n } else {\n const computedSegment = computeSegment(value, segment);\n return value[computedSegment];\n }\n};\n\nconst isScalar = (value) => value === null || typeof value !== \"object\";\n\nmodule.exports = { nil, append, get, set, assign, unset, remove };\n","module.exports = curry;\n\n/*\n function add(a, b, c) {\n return a + b + c;\n }\n curry(add)(1)(2)(3); // 6\n curry(add)(1)(2)(2); // 5\n curry(add)(2)(4, 3); // 9\n\n function add(...args) {\n return args.reduce((sum, n) => sum + n, 0)\n }\n var curryAdd4 = curry(add, 4)\n curryAdd4(1)(2, 3)(4); // 10\n\n function converter(ratio, input) {\n return (input*ratio).toFixed(1);\n }\n const curriedConverter = curry(converter)\n const milesToKm = curriedConverter(1.62);\n milesToKm(35); // 56.7\n milesToKm(10); // 16.2\n*/\n\nfunction curry(fn, arity) {\n return function curried() {\n if (arity == null) {\n arity = fn.length;\n }\n var args = [].slice.call(arguments);\n if (args.length >= arity) {\n return fn.apply(this, args);\n } else {\n return function() {\n return curried.apply(this, args.concat([].slice.call(arguments)));\n };\n }\n };\n}\n"],"names":["curry","fn","arity","curried","length","args","slice","call","arguments","apply","this","concat","nil","EXISTS","Symbol","segmentGenerator","pointer","Error","segmentStart","segmentEnd","mode","position","indexOf","segment","unescape","_get","nextSegment","subject","cursor","applySegment","append","_set","value","undefined","Array","isArray","clonedSubject","computeSegment","_assign","isScalar","_unset","_","result","_remove","escape","toString","replace","TypeError","lib","get","set","assign","unset","remove"],"mappings":"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"}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
var JsonPointer = (function () {
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
var justCurryIt = curry$1;
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
function add(a, b, c) {
|
|
8
|
-
return a + b + c;
|
|
9
|
-
}
|
|
10
|
-
curry(add)(1)(2)(3); // 6
|
|
11
|
-
curry(add)(1)(2)(2); // 5
|
|
12
|
-
curry(add)(2)(4, 3); // 9
|
|
13
|
-
|
|
14
|
-
function add(...args) {
|
|
15
|
-
return args.reduce((sum, n) => sum + n, 0)
|
|
16
|
-
}
|
|
17
|
-
var curryAdd4 = curry(add, 4)
|
|
18
|
-
curryAdd4(1)(2, 3)(4); // 10
|
|
19
|
-
|
|
20
|
-
function converter(ratio, input) {
|
|
21
|
-
return (input*ratio).toFixed(1);
|
|
22
|
-
}
|
|
23
|
-
const curriedConverter = curry(converter)
|
|
24
|
-
const milesToKm = curriedConverter(1.62);
|
|
25
|
-
milesToKm(35); // 56.7
|
|
26
|
-
milesToKm(10); // 16.2
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
function curry$1(fn, arity) {
|
|
30
|
-
return function curried() {
|
|
31
|
-
if (arity == null) {
|
|
32
|
-
arity = fn.length;
|
|
33
|
-
}
|
|
34
|
-
var args = [].slice.call(arguments);
|
|
35
|
-
if (args.length >= arity) {
|
|
36
|
-
return fn.apply(this, args);
|
|
37
|
-
} else {
|
|
38
|
-
return function() {
|
|
39
|
-
return curried.apply(this, args.concat([].slice.call(arguments)));
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const curry = justCurryIt;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const nil = "";
|
|
49
|
-
|
|
50
|
-
const EXISTS = Symbol("EXISTS");
|
|
51
|
-
|
|
52
|
-
const segmentGenerator = (pointer) => {
|
|
53
|
-
if (pointer.length > 0 && pointer[0] !== "/") {
|
|
54
|
-
throw Error("Invalid JSON Pointer");
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
let segmentStart = 1;
|
|
58
|
-
let segmentEnd = 0;
|
|
59
|
-
|
|
60
|
-
return (mode) => {
|
|
61
|
-
if (mode === EXISTS) {
|
|
62
|
-
return segmentEnd < pointer.length;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (segmentEnd >= pointer.length) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const position = pointer.indexOf("/", segmentStart);
|
|
70
|
-
segmentEnd = position === -1 ? pointer.length : position;
|
|
71
|
-
const segment = unescape(pointer.slice(segmentStart, segmentEnd));
|
|
72
|
-
segmentStart = segmentEnd + 1;
|
|
73
|
-
|
|
74
|
-
return segment;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const get = (pointer, subject = undefined) => {
|
|
79
|
-
const nextSegment = segmentGenerator(pointer);
|
|
80
|
-
const fn = (subject) => _get(nextSegment, subject, nil);
|
|
81
|
-
return subject === undefined ? fn : fn(subject);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const _get = (nextSegment, subject, cursor) => {
|
|
85
|
-
if (!nextSegment(EXISTS)) {
|
|
86
|
-
return subject;
|
|
87
|
-
} else {
|
|
88
|
-
const segment = nextSegment();
|
|
89
|
-
return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
const set = (pointer, subject = undefined, value = undefined) => {
|
|
94
|
-
const nextSegment = segmentGenerator(pointer);
|
|
95
|
-
const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));
|
|
96
|
-
return subject === undefined ? fn : fn(subject, value);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const _set = (nextSegment, subject, value, cursor) => {
|
|
100
|
-
const segment = nextSegment();
|
|
101
|
-
if (segment === undefined) {
|
|
102
|
-
return value;
|
|
103
|
-
} else if (nextSegment(EXISTS)) {
|
|
104
|
-
if (Array.isArray(subject)) {
|
|
105
|
-
const clonedSubject = [...subject];
|
|
106
|
-
clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));
|
|
107
|
-
return clonedSubject;
|
|
108
|
-
} else {
|
|
109
|
-
return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };
|
|
110
|
-
}
|
|
111
|
-
} else if (Array.isArray(subject)) {
|
|
112
|
-
const clonedSubject = [...subject];
|
|
113
|
-
clonedSubject[computeSegment(subject, segment)] = value;
|
|
114
|
-
return clonedSubject;
|
|
115
|
-
} else if (typeof subject === "object" && subject !== null) {
|
|
116
|
-
return { ...subject, [segment]: value };
|
|
117
|
-
} else {
|
|
118
|
-
return applySegment(subject, segment, cursor);
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
const assign = (pointer, subject = undefined, value = undefined) => {
|
|
123
|
-
const nextSegment = segmentGenerator(pointer);
|
|
124
|
-
const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));
|
|
125
|
-
return subject === undefined ? fn : fn(subject, value);
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const _assign = (nextSegment, subject, value, cursor) => {
|
|
129
|
-
const segment = nextSegment();
|
|
130
|
-
if (segment === undefined) {
|
|
131
|
-
return;
|
|
132
|
-
} else if (!nextSegment(EXISTS) && !isScalar(subject)) {
|
|
133
|
-
subject[computeSegment(subject, segment)] = value;
|
|
134
|
-
} else {
|
|
135
|
-
_assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
const unset = (pointer, subject = undefined) => {
|
|
140
|
-
const nextSegment = segmentGenerator(pointer);
|
|
141
|
-
const fn = (subject) => _unset(nextSegment, subject, nil);
|
|
142
|
-
return subject === undefined ? fn : fn(subject);
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
const _unset = (nextSegment, subject, cursor) => {
|
|
146
|
-
const segment = nextSegment();
|
|
147
|
-
if (segment === undefined) {
|
|
148
|
-
return;
|
|
149
|
-
} else if (nextSegment(EXISTS)) {
|
|
150
|
-
const value = applySegment(subject, segment, cursor);
|
|
151
|
-
return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };
|
|
152
|
-
} else if (Array.isArray(subject)) {
|
|
153
|
-
const clonedSubject = [...subject];
|
|
154
|
-
delete clonedSubject[computeSegment(subject, segment)];
|
|
155
|
-
return clonedSubject;
|
|
156
|
-
} else if (typeof subject === "object" && subject !== null) {
|
|
157
|
-
// eslint-disable-next-line no-unused-vars
|
|
158
|
-
const { [segment]: _, ...result } = subject;
|
|
159
|
-
return result;
|
|
160
|
-
} else {
|
|
161
|
-
return applySegment(subject, segment, cursor);
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
const remove = (pointer, subject = undefined) => {
|
|
166
|
-
const nextSegment = segmentGenerator(pointer);
|
|
167
|
-
const fn = (subject) => _remove(nextSegment, subject, nil);
|
|
168
|
-
return subject === undefined ? fn : fn(subject);
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
const _remove = (nextSegment, subject, cursor) => {
|
|
172
|
-
const segment = nextSegment();
|
|
173
|
-
if (segment === undefined) {
|
|
174
|
-
return;
|
|
175
|
-
} else if (nextSegment(EXISTS)) {
|
|
176
|
-
const value = applySegment(subject, segment, cursor);
|
|
177
|
-
_remove(nextSegment, value, append(segment, cursor));
|
|
178
|
-
} else if (!isScalar(subject)) {
|
|
179
|
-
delete subject[segment];
|
|
180
|
-
} else {
|
|
181
|
-
applySegment(subject, segment, cursor);
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
const append = curry((segment, pointer) => pointer + "/" + escape(segment));
|
|
186
|
-
|
|
187
|
-
const escape = (segment) => segment.toString().replace(/~/g, "~0").replace(/\//g, "~1");
|
|
188
|
-
const unescape = (segment) => segment.toString().replace(/~1/g, "/").replace(/~0/g, "~");
|
|
189
|
-
const computeSegment = (value, segment) => Array.isArray(value) && segment === "-" ? value.length : segment;
|
|
190
|
-
|
|
191
|
-
const applySegment = (value, segment, cursor = "") => {
|
|
192
|
-
if (value === undefined) {
|
|
193
|
-
throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);
|
|
194
|
-
} else if (value === null) {
|
|
195
|
-
throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);
|
|
196
|
-
} else if (isScalar(value)) {
|
|
197
|
-
throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);
|
|
198
|
-
} else {
|
|
199
|
-
const computedSegment = computeSegment(value, segment);
|
|
200
|
-
return value[computedSegment];
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
const isScalar = (value) => value === null || typeof value !== "object";
|
|
205
|
-
|
|
206
|
-
var lib = { nil, append, get, set, assign, unset, remove };
|
|
207
|
-
|
|
208
|
-
return lib;
|
|
209
|
-
|
|
210
|
-
})();
|
|
211
|
-
//# sourceMappingURL=json-pointer-iife.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-pointer-iife.js","sources":["../node_modules/just-curry-it/index.cjs","../lib/index.js"],"sourcesContent":["module.exports = curry;\n\n/*\n function add(a, b, c) {\n return a + b + c;\n }\n curry(add)(1)(2)(3); // 6\n curry(add)(1)(2)(2); // 5\n curry(add)(2)(4, 3); // 9\n\n function add(...args) {\n return args.reduce((sum, n) => sum + n, 0)\n }\n var curryAdd4 = curry(add, 4)\n curryAdd4(1)(2, 3)(4); // 10\n\n function converter(ratio, input) {\n return (input*ratio).toFixed(1);\n }\n const curriedConverter = curry(converter)\n const milesToKm = curriedConverter(1.62);\n milesToKm(35); // 56.7\n milesToKm(10); // 16.2\n*/\n\nfunction curry(fn, arity) {\n return function curried() {\n if (arity == null) {\n arity = fn.length;\n }\n var args = [].slice.call(arguments);\n if (args.length >= arity) {\n return fn.apply(this, args);\n } else {\n return function() {\n return curried.apply(this, args.concat([].slice.call(arguments)));\n };\n }\n };\n}\n","const curry = require(\"just-curry-it\");\n\n\nconst nil = \"\";\n\nconst EXISTS = Symbol(\"EXISTS\");\n\nconst segmentGenerator = (pointer) => {\n if (pointer.length > 0 && pointer[0] !== \"/\") {\n throw Error(\"Invalid JSON Pointer\");\n }\n\n let segmentStart = 1;\n let segmentEnd = 0;\n\n return (mode) => {\n if (mode === EXISTS) {\n return segmentEnd < pointer.length;\n }\n\n if (segmentEnd >= pointer.length) {\n return;\n }\n\n const position = pointer.indexOf(\"/\", segmentStart);\n segmentEnd = position === -1 ? pointer.length : position;\n const segment = unescape(pointer.slice(segmentStart, segmentEnd));\n segmentStart = segmentEnd + 1;\n\n return segment;\n };\n};\n\nconst get = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _get(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _get = (nextSegment, subject, cursor) => {\n if (!nextSegment(EXISTS)) {\n return subject;\n } else {\n const segment = nextSegment();\n return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));\n }\n};\n\nconst set = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _set = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return value;\n } else if (nextSegment(EXISTS)) {\n if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n return clonedSubject;\n } else {\n return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };\n }\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[computeSegment(subject, segment)] = value;\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n return { ...subject, [segment]: value };\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst assign = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _assign = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (!nextSegment(EXISTS) && !isScalar(subject)) {\n subject[computeSegment(subject, segment)] = value;\n } else {\n _assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n }\n};\n\nconst unset = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _unset(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _unset = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n delete clonedSubject[computeSegment(subject, segment)];\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n // eslint-disable-next-line no-unused-vars\n const { [segment]: _, ...result } = subject;\n return result;\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst remove = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _remove(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _remove = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n _remove(nextSegment, value, append(segment, cursor));\n } else if (!isScalar(subject)) {\n delete subject[segment];\n } else {\n applySegment(subject, segment, cursor);\n }\n};\n\nconst append = curry((segment, pointer) => pointer + \"/\" + escape(segment));\n\nconst escape = (segment) => segment.toString().replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\nconst unescape = (segment) => segment.toString().replace(/~1/g, \"/\").replace(/~0/g, \"~\");\nconst computeSegment = (value, segment) => Array.isArray(value) && segment === \"-\" ? value.length : segment;\n\nconst applySegment = (value, segment, cursor = \"\") => {\n if (value === undefined) {\n throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);\n } else if (value === null) {\n throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);\n } else if (isScalar(value)) {\n throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);\n } else {\n const computedSegment = computeSegment(value, segment);\n return value[computedSegment];\n }\n};\n\nconst isScalar = (value) => value === null || typeof value !== \"object\";\n\nmodule.exports = { nil, append, get, set, assign, unset, remove };\n"],"names":["curry","require$$0"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var JsonPointer=function(){"use strict";var r=function(r,t){return function e(){null==t&&(t=r.length);var n=[].slice.call(arguments);return n.length>=t?r.apply(this,n):function(){return e.apply(this,n.concat([].slice.call(arguments)))}}};const t=r,e="",n=Symbol("EXISTS"),o=r=>{if(r.length>0&&"/"!==r[0])throw Error("Invalid JSON Pointer");let t=1,e=0;return o=>{if(o===n)return e<r.length;if(e>=r.length)return;const i=r.indexOf("/",t);e=-1===i?r.length:i;const l=d(r.slice(t,e));return t=e+1,l}},i=(r,t,e)=>{if(r(n)){const n=r();return i(r,y(t,n,e),a(n,e))}return t},l=(r,t,e,o)=>{const i=r();if(void 0===i)return e;if(r(n)){if(Array.isArray(t)){const n=[...t];return n[i]=l(r,y(t,i,o),e,a(i,o)),n}return{...t,[i]:l(r,y(t,i,o),e,a(i,o))}}if(Array.isArray(t)){const r=[...t];return r[p(t,i)]=e,r}return"object"==typeof t&&null!==t?{...t,[i]:e}:y(t,i,o)},s=(r,t,e,o)=>{const i=r();void 0!==i&&(r(n)||v(t)?s(r,y(t,i,o),e,a(i,o)):t[p(t,i)]=e)},u=(r,t,e)=>{const o=r();if(void 0!==o){if(r(n)){const n=y(t,o,e);return{...t,[o]:u(r,n,a(o,e))}}if(Array.isArray(t)){const r=[...t];return delete r[p(t,o)],r}if("object"==typeof t&&null!==t){const{[o]:r,...e}=t;return e}return y(t,o,e)}},c=(r,t,e)=>{const o=r();if(void 0!==o)if(r(n)){const n=y(t,o,e);c(r,n,a(o,e))}else v(t)?y(t,o,e):delete t[o]},a=t(((r,t)=>t+"/"+f(r))),f=r=>r.toString().replace(/~/g,"~0").replace(/\//g,"~1"),d=r=>r.toString().replace(/~1/g,"/").replace(/~0/g,"~"),p=(r,t)=>Array.isArray(r)&&"-"===t?r.length:t,y=(r,t,e="")=>{if(void 0===r)throw TypeError(`Value at '${e}' is undefined and does not have property '${t}'`);if(null===r)throw TypeError(`Value at '${e}' is null and does not have property '${t}'`);if(v(r))throw TypeError(`Value at '${e}' is a ${typeof r} and does not have property '${t}'`);return r[p(r,t)]},v=r=>null===r||"object"!=typeof r;return{nil:e,append:a,get:(r,t)=>{const n=o(r),l=r=>i(n,r,e);return void 0===t?l:l(t)},set:(r,n,i)=>{const s=o(r),u=t(((r,t)=>l(s,r,t,e)));return void 0===n?u:u(n,i)},assign:(r,n,i)=>{const l=o(r),u=t(((r,t)=>s(l,r,t,e)));return void 0===n?u:u(n,i)},unset:(r,t)=>{const n=o(r),i=r=>u(n,r,e);return void 0===t?i:i(t)},remove:(r,t)=>{const n=o(r),i=r=>c(n,r,e);return void 0===t?i:i(t)}}}();
|
|
2
|
-
//# sourceMappingURL=json-pointer-iife.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-pointer-iife.min.js","sources":["../node_modules/just-curry-it/index.cjs","../lib/index.js"],"sourcesContent":["module.exports = curry;\n\n/*\n function add(a, b, c) {\n return a + b + c;\n }\n curry(add)(1)(2)(3); // 6\n curry(add)(1)(2)(2); // 5\n curry(add)(2)(4, 3); // 9\n\n function add(...args) {\n return args.reduce((sum, n) => sum + n, 0)\n }\n var curryAdd4 = curry(add, 4)\n curryAdd4(1)(2, 3)(4); // 10\n\n function converter(ratio, input) {\n return (input*ratio).toFixed(1);\n }\n const curriedConverter = curry(converter)\n const milesToKm = curriedConverter(1.62);\n milesToKm(35); // 56.7\n milesToKm(10); // 16.2\n*/\n\nfunction curry(fn, arity) {\n return function curried() {\n if (arity == null) {\n arity = fn.length;\n }\n var args = [].slice.call(arguments);\n if (args.length >= arity) {\n return fn.apply(this, args);\n } else {\n return function() {\n return curried.apply(this, args.concat([].slice.call(arguments)));\n };\n }\n };\n}\n","const curry = require(\"just-curry-it\");\n\n\nconst nil = \"\";\n\nconst EXISTS = Symbol(\"EXISTS\");\n\nconst segmentGenerator = (pointer) => {\n if (pointer.length > 0 && pointer[0] !== \"/\") {\n throw Error(\"Invalid JSON Pointer\");\n }\n\n let segmentStart = 1;\n let segmentEnd = 0;\n\n return (mode) => {\n if (mode === EXISTS) {\n return segmentEnd < pointer.length;\n }\n\n if (segmentEnd >= pointer.length) {\n return;\n }\n\n const position = pointer.indexOf(\"/\", segmentStart);\n segmentEnd = position === -1 ? pointer.length : position;\n const segment = unescape(pointer.slice(segmentStart, segmentEnd));\n segmentStart = segmentEnd + 1;\n\n return segment;\n };\n};\n\nconst get = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _get(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _get = (nextSegment, subject, cursor) => {\n if (!nextSegment(EXISTS)) {\n return subject;\n } else {\n const segment = nextSegment();\n return _get(nextSegment, applySegment(subject, segment, cursor), append(segment, cursor));\n }\n};\n\nconst set = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _set(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _set = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return value;\n } else if (nextSegment(EXISTS)) {\n if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[segment] = _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n return clonedSubject;\n } else {\n return { ...subject, [segment]: _set(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor)) };\n }\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n clonedSubject[computeSegment(subject, segment)] = value;\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n return { ...subject, [segment]: value };\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst assign = (pointer, subject = undefined, value = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = curry((subject, value) => _assign(nextSegment, subject, value, nil));\n return subject === undefined ? fn : fn(subject, value);\n};\n\nconst _assign = (nextSegment, subject, value, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (!nextSegment(EXISTS) && !isScalar(subject)) {\n subject[computeSegment(subject, segment)] = value;\n } else {\n _assign(nextSegment, applySegment(subject, segment, cursor), value, append(segment, cursor));\n }\n};\n\nconst unset = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _unset(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _unset = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n return { ...subject, [segment]: _unset(nextSegment, value, append(segment, cursor)) };\n } else if (Array.isArray(subject)) {\n const clonedSubject = [...subject];\n delete clonedSubject[computeSegment(subject, segment)];\n return clonedSubject;\n } else if (typeof subject === \"object\" && subject !== null) {\n // eslint-disable-next-line no-unused-vars\n const { [segment]: _, ...result } = subject;\n return result;\n } else {\n return applySegment(subject, segment, cursor);\n }\n};\n\nconst remove = (pointer, subject = undefined) => {\n const nextSegment = segmentGenerator(pointer);\n const fn = (subject) => _remove(nextSegment, subject, nil);\n return subject === undefined ? fn : fn(subject);\n};\n\nconst _remove = (nextSegment, subject, cursor) => {\n const segment = nextSegment();\n if (segment === undefined) {\n return;\n } else if (nextSegment(EXISTS)) {\n const value = applySegment(subject, segment, cursor);\n _remove(nextSegment, value, append(segment, cursor));\n } else if (!isScalar(subject)) {\n delete subject[segment];\n } else {\n applySegment(subject, segment, cursor);\n }\n};\n\nconst append = curry((segment, pointer) => pointer + \"/\" + escape(segment));\n\nconst escape = (segment) => segment.toString().replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\nconst unescape = (segment) => segment.toString().replace(/~1/g, \"/\").replace(/~0/g, \"~\");\nconst computeSegment = (value, segment) => Array.isArray(value) && segment === \"-\" ? value.length : segment;\n\nconst applySegment = (value, segment, cursor = \"\") => {\n if (value === undefined) {\n throw TypeError(`Value at '${cursor}' is undefined and does not have property '${segment}'`);\n } else if (value === null) {\n throw TypeError(`Value at '${cursor}' is null and does not have property '${segment}'`);\n } else if (isScalar(value)) {\n throw TypeError(`Value at '${cursor}' is a ${typeof value} and does not have property '${segment}'`);\n } else {\n const computedSegment = computeSegment(value, segment);\n return value[computedSegment];\n }\n};\n\nconst isScalar = (value) => value === null || typeof value !== \"object\";\n\nmodule.exports = { nil, append, get, set, assign, unset, remove };\n"],"names":["justCurryIt","fn","arity","curried","length","args","slice","call","arguments","apply","this","concat","curry","require$$0","nil","EXISTS","Symbol","segmentGenerator","pointer","Error","segmentStart","segmentEnd","mode","position","indexOf","segment","unescape","_get","nextSegment","subject","cursor","applySegment","append","_set","value","undefined","Array","isArray","clonedSubject","computeSegment","_assign","isScalar","_unset","_","result","_remove","escape","toString","replace","TypeError","get","set","assign","unset","remove"],"mappings":"4CAAAA,EAyBA,SAAeC,EAAIC,GACjB,OAAO,SAASC,IACD,MAATD,IACFA,EAAQD,EAAGG,QAEb,IAAIC,EAAO,GAAGC,MAAMC,KAAKC,WACzB,OAAIH,EAAKD,QAAUF,EACVD,EAAGQ,MAAMC,KAAML,GAEf,WACL,OAAOF,EAAQM,MAAMC,KAAML,EAAKM,OAAO,GAAGL,MAAMC,KAAKC,YAC7D,CAEA,CACA,ECvCA,MAAMI,EAAQC,EAGRC,EAAM,GAENC,EAASC,OAAO,UAEhBC,EAAoBC,IACxB,GAAIA,EAAQd,OAAS,GAAoB,MAAfc,EAAQ,GAChC,MAAMC,MAAM,wBAGd,IAAIC,EAAe,EACfC,EAAa,EAEjB,OAAQC,IACN,GAAIA,IAASP,EACX,OAAOM,EAAaH,EAAQd,OAG9B,GAAIiB,GAAcH,EAAQd,OACxB,OAGF,MAAMmB,EAAWL,EAAQM,QAAQ,IAAKJ,GACtCC,GAA2B,IAAdE,EAAkBL,EAAQd,OAASmB,EAChD,MAAME,EAAUC,EAASR,EAAQZ,MAAMc,EAAcC,IAGrD,OAFAD,EAAeC,EAAa,EAErBI,CAAO,CACf,EASGE,EAAO,CAACC,EAAaC,EAASC,KAClC,GAAKF,EAAYb,GAEV,CACL,MAAMU,EAAUG,IAChB,OAAOD,EAAKC,EAAaG,EAAaF,EAASJ,EAASK,GAASE,EAAOP,EAASK,GAClF,CAJC,OAAOD,CAIR,EASGI,EAAO,CAACL,EAAaC,EAASK,EAAOJ,KACzC,MAAML,EAAUG,IAChB,QAAgBO,IAAZV,EACF,OAAOS,EACF,GAAIN,EAAYb,GAAS,CAC9B,GAAIqB,MAAMC,QAAQR,GAAU,CAC1B,MAAMS,EAAgB,IAAIT,GAE1B,OADAS,EAAcb,GAAWQ,EAAKL,EAAaG,EAAaF,EAASJ,EAASK,GAASI,EAAOF,EAAOP,EAASK,IACnGQ,CACb,CACM,MAAO,IAAKT,EAASJ,CAACA,GAAUQ,EAAKL,EAAaG,EAAaF,EAASJ,EAASK,GAASI,EAAOF,EAAOP,EAASK,IAEpH,CAAM,GAAIM,MAAMC,QAAQR,GAAU,CACjC,MAAMS,EAAgB,IAAIT,GAE1B,OADAS,EAAcC,EAAeV,EAASJ,IAAYS,EAC3CI,CACR,CAAM,MAAuB,iBAAZT,GAAoC,OAAZA,EACjC,IAAKA,EAASJ,CAACA,GAAUS,GAEzBH,EAAaF,EAASJ,EAASK,EACvC,EASGU,EAAU,CAACZ,EAAaC,EAASK,EAAOJ,KAC5C,MAAML,EAAUG,SACAO,IAAZV,IAEQG,EAAYb,IAAY0B,EAASZ,GAG3CW,EAAQZ,EAAaG,EAAaF,EAASJ,EAASK,GAASI,EAAOF,EAAOP,EAASK,IAFpFD,EAAQU,EAAeV,EAASJ,IAAYS,EAG7C,EASGQ,EAAS,CAACd,EAAaC,EAASC,KACpC,MAAML,EAAUG,IAChB,QAAgBO,IAAZV,EAAJ,CAEO,GAAIG,EAAYb,GAAS,CAC9B,MAAMmB,EAAQH,EAAaF,EAASJ,EAASK,GAC7C,MAAO,IAAKD,EAASJ,CAACA,GAAUiB,EAAOd,EAAaM,EAAOF,EAAOP,EAASK,IAC5E,CAAM,GAAIM,MAAMC,QAAQR,GAAU,CACjC,MAAMS,EAAgB,IAAIT,GAE1B,cADOS,EAAcC,EAAeV,EAASJ,IACtCa,CACR,CAAM,GAAuB,iBAAZT,GAAoC,OAAZA,EAAkB,CAE1D,MAAQJ,CAACA,GAAUkB,KAAMC,GAAWf,EACpC,OAAOe,CACX,CACI,OAAOb,EAAaF,EAASJ,EAASK,EACvC,GASGe,EAAU,CAACjB,EAAaC,EAASC,KACrC,MAAML,EAAUG,IAChB,QAAgBO,IAAZV,EAEG,GAAIG,EAAYb,GAAS,CAC9B,MAAMmB,EAAQH,EAAaF,EAASJ,EAASK,GAC7Ce,EAAQjB,EAAaM,EAAOF,EAAOP,EAASK,GAChD,MAAcW,EAASZ,GAGnBE,EAAaF,EAASJ,EAASK,UAFxBD,EAAQJ,EAGhB,EAGGO,EAASpB,GAAM,CAACa,EAASP,IAAYA,EAAU,IAAM4B,EAAOrB,KAE5DqB,EAAUrB,GAAYA,EAAQsB,WAAWC,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAC5EtB,EAAYD,GAAYA,EAAQsB,WAAWC,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAC9ET,EAAiB,CAACL,EAAOT,IAAYW,MAAMC,QAAQH,IAAsB,MAAZT,EAAkBS,EAAM9B,OAASqB,EAE9FM,EAAe,CAACG,EAAOT,EAASK,EAAS,MAC7C,QAAcK,IAAVD,EACF,MAAMe,UAAU,aAAanB,+CAAoDL,MAC5E,GAAc,OAAVS,EACT,MAAMe,UAAU,aAAanB,0CAA+CL,MACvE,GAAIgB,EAASP,GAClB,MAAMe,UAAU,aAAanB,kBAAuBI,iCAAqCT,MAGzF,OAAOS,EADiBK,EAAeL,EAAOT,GAE/C,EAGGgB,EAAYP,GAAoB,OAAVA,GAAmC,iBAAVA,QAEpC,CAAEpB,MAAKkB,SAAQkB,IAhIpB,CAAChC,EAASW,KACpB,MAAMD,EAAcX,EAAiBC,GAC/BjB,EAAM4B,GAAYF,EAAKC,EAAaC,EAASf,GACnD,YAAmBqB,IAAZN,EAAwB5B,EAAKA,EAAG4B,EAAQ,EA6HZsB,IAjHzB,CAACjC,EAASW,EAAqBK,KACzC,MAAMN,EAAcX,EAAiBC,GAC/BjB,EAAKW,GAAM,CAACiB,EAASK,IAAUD,EAAKL,EAAaC,EAASK,EAAOpB,KACvE,YAAmBqB,IAAZN,EAAwB5B,EAAKA,EAAG4B,EAASK,EAAM,EA8GdkB,OApF3B,CAAClC,EAASW,EAAqBK,KAC5C,MAAMN,EAAcX,EAAiBC,GAC/BjB,EAAKW,GAAM,CAACiB,EAASK,IAAUM,EAAQZ,EAAaC,EAASK,EAAOpB,KAC1E,YAAmBqB,IAAZN,EAAwB5B,EAAKA,EAAG4B,EAASK,EAAM,EAiFNmB,MAnEpC,CAACnC,EAASW,KACtB,MAAMD,EAAcX,EAAiBC,GAC/BjB,EAAM4B,GAAYa,EAAOd,EAAaC,EAASf,GACrD,YAAmBqB,IAAZN,EAAwB5B,EAAKA,EAAG4B,EAAQ,EAgEQyB,OAzC1C,CAACpC,EAASW,KACvB,MAAMD,EAAcX,EAAiBC,GAC/BjB,EAAM4B,GAAYgB,EAAQjB,EAAaC,EAASf,GACtD,YAAmBqB,IAAZN,EAAwB5B,EAAKA,EAAG4B,EAAQ"}
|