@loancrate/json-selector 2.0.0 → 3.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 +50 -3
- package/dist/__generated__/parser.d.ts.map +1 -1
- package/dist/access.d.ts +6 -6
- package/dist/access.d.ts.map +1 -1
- package/dist/ast.d.ts +6 -3
- package/dist/ast.d.ts.map +1 -1
- package/dist/evaluate.d.ts +5 -5
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/json-selector.esm.js +3510 -0
- package/dist/json-selector.esm.js.map +1 -0
- package/dist/json-selector.umd.js +3575 -0
- package/dist/json-selector.umd.js.map +1 -0
- package/dist/visitor.d.ts +2 -1
- package/dist/visitor.d.ts.map +1 -1
- package/package.json +32 -20
- package/src/__generated__/parser.js +2730 -0
- package/src/access.ts +534 -0
- package/src/ast.ts +114 -0
- package/src/evaluate.ts +269 -0
- package/src/format.ts +144 -0
- package/src/get.ts +9 -0
- package/src/grammar.pegjs +226 -0
- package/src/index.ts +7 -0
- package/src/parse.ts +7 -0
- package/src/set.ts +13 -0
- package/src/util.ts +70 -0
- package/src/visitor.ts +79 -0
- package/dist/__generated__/parser.js +0 -2855
- package/dist/__generated__/parser.js.map +0 -1
- package/dist/access.js +0 -444
- package/dist/access.js.map +0 -1
- package/dist/ast.js +0 -3
- package/dist/ast.js.map +0 -1
- package/dist/evaluate.js +0 -168
- package/dist/evaluate.js.map +0 -1
- package/dist/format.js +0 -119
- package/dist/format.js.map +0 -1
- package/dist/get.js +0 -9
- package/dist/get.js.map +0 -1
- package/dist/index.js +0 -26
- package/dist/index.js.map +0 -1
- package/dist/parse.js +0 -10
- package/dist/parse.js.map +0 -1
- package/dist/set.js +0 -12
- package/dist/set.js.map +0 -1
- package/dist/util.js +0 -70
- package/dist/util.js.map +0 -1
- package/dist/visitor.js +0 -39
- package/dist/visitor.js.map +0 -1
package/dist/evaluate.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.compare = exports.flatten = exports.normalizeSlice = exports.slice = exports.filter = exports.project = exports.evaluateJsonSelector = void 0;
|
|
7
|
-
const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
8
|
-
const util_1 = require("./util");
|
|
9
|
-
const visitor_1 = require("./visitor");
|
|
10
|
-
function evaluateJsonSelector(selector, context) {
|
|
11
|
-
return (0, visitor_1.visitJsonSelector)(selector, {
|
|
12
|
-
current() {
|
|
13
|
-
return context;
|
|
14
|
-
},
|
|
15
|
-
literal({ value }) {
|
|
16
|
-
return value;
|
|
17
|
-
},
|
|
18
|
-
identifier({ id }) {
|
|
19
|
-
return (0, util_1.getField)(context, id);
|
|
20
|
-
},
|
|
21
|
-
fieldAccess({ expression, field }) {
|
|
22
|
-
return (0, util_1.getField)(evaluateJsonSelector(expression, context), field);
|
|
23
|
-
},
|
|
24
|
-
indexAccess({ expression, index }) {
|
|
25
|
-
return (0, util_1.getIndex)(evaluateJsonSelector(expression, context), index);
|
|
26
|
-
},
|
|
27
|
-
idAccess({ expression, id }) {
|
|
28
|
-
return (0, util_1.findId)(evaluateJsonSelector(expression, context), id);
|
|
29
|
-
},
|
|
30
|
-
project({ expression, projection }) {
|
|
31
|
-
return project(evaluateJsonSelector(expression, context), projection);
|
|
32
|
-
},
|
|
33
|
-
filter({ expression, condition }) {
|
|
34
|
-
return filter(evaluateJsonSelector(expression, context), condition);
|
|
35
|
-
},
|
|
36
|
-
slice({ expression, start, end, step }) {
|
|
37
|
-
return slice(evaluateJsonSelector(expression, context), start, end, step);
|
|
38
|
-
},
|
|
39
|
-
flatten({ expression }) {
|
|
40
|
-
return flatten(evaluateJsonSelector(expression, context));
|
|
41
|
-
},
|
|
42
|
-
not({ expression }) {
|
|
43
|
-
return (0, util_1.isFalseOrEmpty)(evaluateJsonSelector(expression, context));
|
|
44
|
-
},
|
|
45
|
-
compare({ lhs, rhs, operator }) {
|
|
46
|
-
const lv = evaluateJsonSelector(lhs, context);
|
|
47
|
-
const rv = evaluateJsonSelector(rhs, context);
|
|
48
|
-
return compare(lv, rv, operator);
|
|
49
|
-
},
|
|
50
|
-
and({ lhs, rhs }) {
|
|
51
|
-
const lv = evaluateJsonSelector(lhs, context);
|
|
52
|
-
return (0, util_1.isFalseOrEmpty)(lv) ? lv : evaluateJsonSelector(rhs, context);
|
|
53
|
-
},
|
|
54
|
-
or({ lhs, rhs }) {
|
|
55
|
-
const lv = evaluateJsonSelector(lhs, context);
|
|
56
|
-
return !(0, util_1.isFalseOrEmpty)(lv) ? lv : evaluateJsonSelector(rhs, context);
|
|
57
|
-
},
|
|
58
|
-
pipe({ lhs, rhs }) {
|
|
59
|
-
return evaluateJsonSelector(rhs, evaluateJsonSelector(lhs, context));
|
|
60
|
-
},
|
|
61
|
-
}, context);
|
|
62
|
-
}
|
|
63
|
-
exports.evaluateJsonSelector = evaluateJsonSelector;
|
|
64
|
-
function project(value, projection) {
|
|
65
|
-
if (!(0, util_1.isArray)(value)) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
if (!projection) {
|
|
69
|
-
return value;
|
|
70
|
-
}
|
|
71
|
-
const result = value
|
|
72
|
-
.map((e) => evaluateJsonSelector(projection, e))
|
|
73
|
-
.filter((e) => e != null);
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
76
|
-
exports.project = project;
|
|
77
|
-
function filter(value, condition) {
|
|
78
|
-
if (!(0, util_1.isArray)(value)) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
const result = value.filter((e) => !(0, util_1.isFalseOrEmpty)(evaluateJsonSelector(condition, e)));
|
|
82
|
-
return result;
|
|
83
|
-
}
|
|
84
|
-
exports.filter = filter;
|
|
85
|
-
function slice(value, start, end, step) {
|
|
86
|
-
if (!(0, util_1.isArray)(value)) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
({ start, end, step } = normalizeSlice(value.length, start, end, step));
|
|
90
|
-
const collected = [];
|
|
91
|
-
if (step > 0) {
|
|
92
|
-
for (let i = start; i < end; i += step) {
|
|
93
|
-
collected.push(value[i]);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
for (let i = start; i > end; i += step) {
|
|
98
|
-
collected.push(value[i]);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return collected;
|
|
102
|
-
}
|
|
103
|
-
exports.slice = slice;
|
|
104
|
-
function normalizeSlice(length, start, end, step) {
|
|
105
|
-
if (step == null) {
|
|
106
|
-
step = 1;
|
|
107
|
-
}
|
|
108
|
-
else if (step === 0) {
|
|
109
|
-
throw new Error("Invalid slice: step cannot be 0");
|
|
110
|
-
}
|
|
111
|
-
if (start == null) {
|
|
112
|
-
start = step < 0 ? length - 1 : 0;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
start = limitSlice(start, step, length);
|
|
116
|
-
}
|
|
117
|
-
if (end == null) {
|
|
118
|
-
end = step < 0 ? -1 : length;
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
end = limitSlice(end, step, length);
|
|
122
|
-
}
|
|
123
|
-
return { start, end, step };
|
|
124
|
-
}
|
|
125
|
-
exports.normalizeSlice = normalizeSlice;
|
|
126
|
-
function limitSlice(value, step, length) {
|
|
127
|
-
if (value < 0) {
|
|
128
|
-
value += length;
|
|
129
|
-
if (value < 0) {
|
|
130
|
-
value = step < 0 ? -1 : 0;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
else if (value >= length) {
|
|
134
|
-
value = step < 0 ? length - 1 : length;
|
|
135
|
-
}
|
|
136
|
-
return value;
|
|
137
|
-
}
|
|
138
|
-
function flatten(value) {
|
|
139
|
-
return (0, util_1.isArray)(value) ? value.flat() : null;
|
|
140
|
-
}
|
|
141
|
-
exports.flatten = flatten;
|
|
142
|
-
function compare(lv, rv, operator) {
|
|
143
|
-
switch (operator) {
|
|
144
|
-
case "==":
|
|
145
|
-
return (0, fast_deep_equal_1.default)(lv, rv);
|
|
146
|
-
case "!=":
|
|
147
|
-
return !(0, fast_deep_equal_1.default)(lv, rv);
|
|
148
|
-
case "<":
|
|
149
|
-
case "<=":
|
|
150
|
-
case ">":
|
|
151
|
-
case ">=":
|
|
152
|
-
if (typeof lv === "number" && typeof rv === "number") {
|
|
153
|
-
switch (operator) {
|
|
154
|
-
case "<":
|
|
155
|
-
return lv < rv;
|
|
156
|
-
case "<=":
|
|
157
|
-
return lv <= rv;
|
|
158
|
-
case ">":
|
|
159
|
-
return lv > rv;
|
|
160
|
-
case ">=":
|
|
161
|
-
return lv >= rv;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
exports.compare = compare;
|
|
168
|
-
//# sourceMappingURL=evaluate.js.map
|
package/dist/evaluate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"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"}
|
package/dist/format.js
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatJsonSelector = void 0;
|
|
4
|
-
const util_1 = require("./util");
|
|
5
|
-
const visitor_1 = require("./visitor");
|
|
6
|
-
const PRECEDENCE_ACCESS = 1;
|
|
7
|
-
const PRECEDENCE_NOT = 2;
|
|
8
|
-
const PRECEDENCE_COMPARE = 3;
|
|
9
|
-
const PRECEDENCE_AND = 4;
|
|
10
|
-
const PRECEDENCE_OR = 5;
|
|
11
|
-
const PRECEDENCE_PIPE = 6;
|
|
12
|
-
const PRECEDENCE_MAX = 7;
|
|
13
|
-
const operatorPrecedence = {
|
|
14
|
-
fieldAccess: PRECEDENCE_ACCESS,
|
|
15
|
-
idAccess: PRECEDENCE_ACCESS,
|
|
16
|
-
indexAccess: PRECEDENCE_ACCESS,
|
|
17
|
-
project: PRECEDENCE_ACCESS,
|
|
18
|
-
filter: PRECEDENCE_ACCESS,
|
|
19
|
-
slice: PRECEDENCE_ACCESS,
|
|
20
|
-
flatten: PRECEDENCE_ACCESS,
|
|
21
|
-
not: PRECEDENCE_NOT,
|
|
22
|
-
compare: PRECEDENCE_COMPARE,
|
|
23
|
-
and: PRECEDENCE_AND,
|
|
24
|
-
or: PRECEDENCE_OR,
|
|
25
|
-
pipe: PRECEDENCE_PIPE,
|
|
26
|
-
};
|
|
27
|
-
function formatSubexpression(expr, options, precedence) {
|
|
28
|
-
// Ensure @ is only used as a bare expression
|
|
29
|
-
if (!options.currentImplied) {
|
|
30
|
-
options = { ...options, currentImplied: true };
|
|
31
|
-
}
|
|
32
|
-
let result = formatJsonSelector(expr, options);
|
|
33
|
-
const subPrecedence = operatorPrecedence[expr.type];
|
|
34
|
-
if (subPrecedence != null && subPrecedence > precedence) {
|
|
35
|
-
result = `(${result})`;
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
const projectionNodeTypes = new Set([
|
|
40
|
-
"project",
|
|
41
|
-
"filter",
|
|
42
|
-
"slice",
|
|
43
|
-
"flatten",
|
|
44
|
-
]);
|
|
45
|
-
function formatJsonSelector(selector, options = {}) {
|
|
46
|
-
return (0, visitor_1.visitJsonSelector)(selector, {
|
|
47
|
-
current() {
|
|
48
|
-
return !options.currentImplied ? "@" : "";
|
|
49
|
-
},
|
|
50
|
-
literal({ value }) {
|
|
51
|
-
return (0, util_1.formatLiteral)(value);
|
|
52
|
-
},
|
|
53
|
-
identifier({ id }) {
|
|
54
|
-
return (0, util_1.formatIdentifier)(id);
|
|
55
|
-
},
|
|
56
|
-
fieldAccess({ expression, field }) {
|
|
57
|
-
const lv = formatSubexpression(expression, options, PRECEDENCE_ACCESS);
|
|
58
|
-
return `${lv}.${(0, util_1.formatIdentifier)(field)}`;
|
|
59
|
-
},
|
|
60
|
-
indexAccess({ expression, index }) {
|
|
61
|
-
const lv = formatSubexpression(expression, options, PRECEDENCE_ACCESS);
|
|
62
|
-
return `${lv}[${index}]`;
|
|
63
|
-
},
|
|
64
|
-
idAccess({ expression, id }) {
|
|
65
|
-
const lv = formatSubexpression(expression, options, PRECEDENCE_ACCESS);
|
|
66
|
-
return `${lv}[${(0, util_1.formatRawString)(id)}]`;
|
|
67
|
-
},
|
|
68
|
-
project({ expression, projection }) {
|
|
69
|
-
let result = formatSubexpression(expression, options, PRECEDENCE_ACCESS);
|
|
70
|
-
// Wildcard operator is only needed if expression is not already a projection
|
|
71
|
-
if (!projectionNodeTypes.has(expression.type)) {
|
|
72
|
-
result += "[*]";
|
|
73
|
-
}
|
|
74
|
-
if (projection) {
|
|
75
|
-
result += formatSubexpression(projection, options, PRECEDENCE_MAX);
|
|
76
|
-
}
|
|
77
|
-
return result;
|
|
78
|
-
},
|
|
79
|
-
filter({ expression, condition }) {
|
|
80
|
-
const lv = formatSubexpression(expression, options, PRECEDENCE_ACCESS);
|
|
81
|
-
const rv = formatSubexpression(condition, options, PRECEDENCE_MAX);
|
|
82
|
-
return `${lv}[?${rv}]`;
|
|
83
|
-
},
|
|
84
|
-
slice({ expression, start, end, step }) {
|
|
85
|
-
const lv = formatSubexpression(expression, options, PRECEDENCE_ACCESS);
|
|
86
|
-
const rv = `${start ?? ""}:${end ?? ""}${step != null ? `:${step}` : ""}`;
|
|
87
|
-
return `${lv}[${rv}]`;
|
|
88
|
-
},
|
|
89
|
-
flatten({ expression }) {
|
|
90
|
-
const lv = formatSubexpression(expression, options, PRECEDENCE_ACCESS);
|
|
91
|
-
return `${lv}[]`;
|
|
92
|
-
},
|
|
93
|
-
not({ expression }) {
|
|
94
|
-
return `!${formatSubexpression(expression, options, PRECEDENCE_NOT)}`;
|
|
95
|
-
},
|
|
96
|
-
compare({ lhs, operator, rhs }) {
|
|
97
|
-
const lv = formatSubexpression(lhs, options, PRECEDENCE_COMPARE);
|
|
98
|
-
const rv = formatSubexpression(rhs, options, PRECEDENCE_COMPARE - 1);
|
|
99
|
-
return `${lv} ${operator} ${rv}`;
|
|
100
|
-
},
|
|
101
|
-
and({ lhs, rhs }) {
|
|
102
|
-
const lv = formatSubexpression(lhs, options, PRECEDENCE_AND);
|
|
103
|
-
const rv = formatSubexpression(rhs, options, PRECEDENCE_AND - 1);
|
|
104
|
-
return `${lv} && ${rv}`;
|
|
105
|
-
},
|
|
106
|
-
or({ lhs, rhs }) {
|
|
107
|
-
const lv = formatSubexpression(lhs, options, PRECEDENCE_OR);
|
|
108
|
-
const rv = formatSubexpression(rhs, options, PRECEDENCE_OR - 1);
|
|
109
|
-
return `${lv} || ${rv}`;
|
|
110
|
-
},
|
|
111
|
-
pipe({ lhs, rhs }) {
|
|
112
|
-
const lv = formatSubexpression(lhs, options, PRECEDENCE_PIPE);
|
|
113
|
-
const rv = formatSubexpression(rhs, options, PRECEDENCE_PIPE - 1);
|
|
114
|
-
return `${lv} | ${rv}`;
|
|
115
|
-
},
|
|
116
|
-
}, undefined);
|
|
117
|
-
}
|
|
118
|
-
exports.formatJsonSelector = formatJsonSelector;
|
|
119
|
-
//# sourceMappingURL=format.js.map
|
package/dist/format.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/get.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getWithJsonSelector = void 0;
|
|
4
|
-
const access_1 = require("./access");
|
|
5
|
-
function getWithJsonSelector(selector, context) {
|
|
6
|
-
return (0, access_1.accessWithJsonSelector)(selector, context).get();
|
|
7
|
-
}
|
|
8
|
-
exports.getWithJsonSelector = getWithJsonSelector;
|
|
9
|
-
//# sourceMappingURL=get.js.map
|
package/dist/get.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../src/get.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAGlD,SAAgB,mBAAmB,CACjC,QAAsB,EACtB,OAAgB;IAEhB,OAAO,IAAA,+BAAsB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;AACzD,CAAC;AALD,kDAKC"}
|
package/dist/index.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.evaluateJsonSelector = void 0;
|
|
18
|
-
__exportStar(require("./access"), exports);
|
|
19
|
-
__exportStar(require("./ast"), exports);
|
|
20
|
-
var evaluate_1 = require("./evaluate");
|
|
21
|
-
Object.defineProperty(exports, "evaluateJsonSelector", { enumerable: true, get: function () { return evaluate_1.evaluateJsonSelector; } });
|
|
22
|
-
__exportStar(require("./format"), exports);
|
|
23
|
-
__exportStar(require("./get"), exports);
|
|
24
|
-
__exportStar(require("./parse"), exports);
|
|
25
|
-
__exportStar(require("./set"), exports);
|
|
26
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,wCAAsB;AACtB,uCAAkD;AAAzC,gHAAA,oBAAoB,OAAA;AAC7B,2CAAyB;AACzB,wCAAsB;AACtB,0CAAwB;AACxB,wCAAsB"}
|
package/dist/parse.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseJsonSelector = void 0;
|
|
4
|
-
const parser_1 = require("./__generated__/parser");
|
|
5
|
-
function parseJsonSelector(selectorExpression) {
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
7
|
-
return (0, parser_1.parse)(selectorExpression);
|
|
8
|
-
}
|
|
9
|
-
exports.parseJsonSelector = parseJsonSelector;
|
|
10
|
-
//# sourceMappingURL=parse.js.map
|
package/dist/parse.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;AACA,mDAA+C;AAE/C,SAAgB,iBAAiB,CAAC,kBAA0B;IAC1D,+DAA+D;IAC/D,OAAO,IAAA,cAAK,EAAC,kBAAkB,CAAC,CAAC;AACnC,CAAC;AAHD,8CAGC"}
|
package/dist/set.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setWithJsonSelector = void 0;
|
|
4
|
-
const access_1 = require("./access");
|
|
5
|
-
function setWithJsonSelector(selector, context, value) {
|
|
6
|
-
const accessor = (0, access_1.accessWithJsonSelector)(selector, context);
|
|
7
|
-
const oldValue = accessor.get();
|
|
8
|
-
accessor.set(value);
|
|
9
|
-
return oldValue;
|
|
10
|
-
}
|
|
11
|
-
exports.setWithJsonSelector = setWithJsonSelector;
|
|
12
|
-
//# sourceMappingURL=set.js.map
|
package/dist/set.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../src/set.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAGlD,SAAgB,mBAAmB,CACjC,QAAsB,EACtB,OAAgB,EAChB,KAAc;IAEd,MAAM,QAAQ,GAAG,IAAA,+BAAsB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,QAAQ,CAAC;AAClB,CAAC;AATD,kDASC"}
|
package/dist/util.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatRawString = exports.formatIdentifier = exports.isValidIdentifier = exports.formatLiteral = exports.findIdIndex = exports.findId = exports.getIndex = exports.getField = exports.isFalseOrEmpty = exports.isObject = exports.asArray = exports.isArray = void 0;
|
|
4
|
-
function isArray(value) {
|
|
5
|
-
return Array.isArray(value);
|
|
6
|
-
}
|
|
7
|
-
exports.isArray = isArray;
|
|
8
|
-
function asArray(value) {
|
|
9
|
-
return value == null ? [] : isArray(value) ? value : [value];
|
|
10
|
-
}
|
|
11
|
-
exports.asArray = asArray;
|
|
12
|
-
function isObject(value) {
|
|
13
|
-
return typeof value === "object" && value != null;
|
|
14
|
-
}
|
|
15
|
-
exports.isObject = isObject;
|
|
16
|
-
function isFalseOrEmpty(value) {
|
|
17
|
-
return (value == null ||
|
|
18
|
-
value === false ||
|
|
19
|
-
value === "" ||
|
|
20
|
-
(isArray(value) && value.length === 0) ||
|
|
21
|
-
(isObject(value) && !hasOwnProperties(value)));
|
|
22
|
-
}
|
|
23
|
-
exports.isFalseOrEmpty = isFalseOrEmpty;
|
|
24
|
-
function hasOwnProperties(value) {
|
|
25
|
-
for (const key in value) {
|
|
26
|
-
if (Object.prototype.hasOwnProperty.call(value, key)) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
function getField(obj, name) {
|
|
33
|
-
return isObject(obj) ? obj[name] ?? null : null;
|
|
34
|
-
}
|
|
35
|
-
exports.getField = getField;
|
|
36
|
-
function getIndex(obj, index) {
|
|
37
|
-
return isArray(obj)
|
|
38
|
-
? obj[index < 0 ? obj.length + index : index] ?? null
|
|
39
|
-
: null;
|
|
40
|
-
}
|
|
41
|
-
exports.getIndex = getIndex;
|
|
42
|
-
function findId(obj, id) {
|
|
43
|
-
return isArray(obj)
|
|
44
|
-
? obj.find((e) => isObject(e) && e.id === id) ?? null
|
|
45
|
-
: null;
|
|
46
|
-
}
|
|
47
|
-
exports.findId = findId;
|
|
48
|
-
function findIdIndex(arr, id) {
|
|
49
|
-
return arr.findIndex((e) => isObject(e) && e.id === id);
|
|
50
|
-
}
|
|
51
|
-
exports.findIdIndex = findIdIndex;
|
|
52
|
-
function formatLiteral(value) {
|
|
53
|
-
return "`" + JSON.stringify(value).replace(/`/g, "\\`") + "`";
|
|
54
|
-
}
|
|
55
|
-
exports.formatLiteral = formatLiteral;
|
|
56
|
-
function isValidIdentifier(s) {
|
|
57
|
-
return /^[a-z_][0-9a-z_]*$/i.test(s);
|
|
58
|
-
}
|
|
59
|
-
exports.isValidIdentifier = isValidIdentifier;
|
|
60
|
-
function formatIdentifier(s) {
|
|
61
|
-
return isValidIdentifier(s) ? s : JSON.stringify(s);
|
|
62
|
-
}
|
|
63
|
-
exports.formatIdentifier = formatIdentifier;
|
|
64
|
-
function formatRawString(s) {
|
|
65
|
-
// https://jmespath.org/specification.html#raw-string-literals
|
|
66
|
-
// eslint-disable-next-line no-control-regex
|
|
67
|
-
return `'${s.replace(/[\0-\x1F]/g, "").replace(/['\\]/g, (c) => `\\${c}`)}'`;
|
|
68
|
-
}
|
|
69
|
-
exports.formatRawString = formatRawString;
|
|
70
|
-
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/dist/visitor.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.visitJsonSelector = void 0;
|
|
4
|
-
function visitJsonSelector(selector, visitor, context) {
|
|
5
|
-
switch (selector.type) {
|
|
6
|
-
case "current":
|
|
7
|
-
return visitor.current(selector, context);
|
|
8
|
-
case "literal":
|
|
9
|
-
return visitor.literal(selector, context);
|
|
10
|
-
case "identifier":
|
|
11
|
-
return visitor.identifier(selector, context);
|
|
12
|
-
case "fieldAccess":
|
|
13
|
-
return visitor.fieldAccess(selector, context);
|
|
14
|
-
case "indexAccess":
|
|
15
|
-
return visitor.indexAccess(selector, context);
|
|
16
|
-
case "idAccess":
|
|
17
|
-
return visitor.idAccess(selector, context);
|
|
18
|
-
case "project":
|
|
19
|
-
return visitor.project(selector, context);
|
|
20
|
-
case "filter":
|
|
21
|
-
return visitor.filter(selector, context);
|
|
22
|
-
case "slice":
|
|
23
|
-
return visitor.slice(selector, context);
|
|
24
|
-
case "flatten":
|
|
25
|
-
return visitor.flatten(selector, context);
|
|
26
|
-
case "not":
|
|
27
|
-
return visitor.not(selector, context);
|
|
28
|
-
case "compare":
|
|
29
|
-
return visitor.compare(selector, context);
|
|
30
|
-
case "and":
|
|
31
|
-
return visitor.and(selector, context);
|
|
32
|
-
case "or":
|
|
33
|
-
return visitor.or(selector, context);
|
|
34
|
-
case "pipe":
|
|
35
|
-
return visitor.pipe(selector, context);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.visitJsonSelector = visitJsonSelector;
|
|
39
|
-
//# sourceMappingURL=visitor.js.map
|
package/dist/visitor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":";;;AAqCA,SAAgB,iBAAiB,CAC/B,QAAsB,EACtB,OAAsB,EACtB,OAAU;IAEV,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACrB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,YAAY;YACf,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,aAAa;YAChB,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,KAAK,aAAa;YAChB,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,KAAK,IAAI;YACP,OAAO,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC1C;AACH,CAAC;AArCD,8CAqCC"}
|