@matter/model 0.12.0-alpha.0-20241228-9f74a0273 → 0.12.0-alpha.0-20241231-14ac774ba
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/dist/cjs/aspects/Constraint.d.ts +24 -15
- package/dist/cjs/aspects/Constraint.d.ts.map +1 -1
- package/dist/cjs/aspects/Constraint.js +268 -198
- package/dist/cjs/aspects/Constraint.js.map +2 -2
- package/dist/cjs/common/FieldValue.d.ts +10 -4
- package/dist/cjs/common/FieldValue.d.ts.map +1 -1
- package/dist/cjs/common/FieldValue.js +1 -1
- package/dist/cjs/common/FieldValue.js.map +1 -1
- package/dist/cjs/common/Metatype.d.ts +19 -1
- package/dist/cjs/common/Metatype.d.ts.map +1 -1
- package/dist/cjs/common/Metatype.js +171 -170
- package/dist/cjs/common/Metatype.js.map +1 -1
- package/dist/cjs/common/Specification.d.ts +1 -1
- package/dist/cjs/common/Specification.d.ts.map +1 -1
- package/dist/cjs/logic/ModelDiff.d.ts +40 -0
- package/dist/cjs/logic/ModelDiff.d.ts.map +1 -0
- package/dist/cjs/logic/ModelDiff.js +119 -0
- package/dist/cjs/logic/ModelDiff.js.map +6 -0
- package/dist/cjs/logic/definition-validation/ValueValidator.js +1 -1
- package/dist/cjs/logic/definition-validation/ValueValidator.js.map +1 -1
- package/dist/cjs/logic/index.d.ts +1 -0
- package/dist/cjs/logic/index.d.ts.map +1 -1
- package/dist/cjs/logic/index.js +1 -0
- package/dist/cjs/logic/index.js.map +1 -1
- package/dist/cjs/parser/Lexer.d.ts +3 -3
- package/dist/cjs/parser/Lexer.d.ts.map +1 -1
- package/dist/cjs/parser/Lexer.js +35 -31
- package/dist/cjs/parser/Lexer.js.map +1 -1
- package/dist/cjs/parser/Token.d.ts +5 -2
- package/dist/cjs/parser/Token.d.ts.map +1 -1
- package/dist/cjs/parser/TokenStream.js +2 -2
- package/dist/esm/aspects/Constraint.d.ts +24 -15
- package/dist/esm/aspects/Constraint.d.ts.map +1 -1
- package/dist/esm/aspects/Constraint.js +269 -199
- package/dist/esm/aspects/Constraint.js.map +2 -2
- package/dist/esm/common/FieldValue.d.ts +10 -4
- package/dist/esm/common/FieldValue.d.ts.map +1 -1
- package/dist/esm/common/FieldValue.js +1 -1
- package/dist/esm/common/FieldValue.js.map +1 -1
- package/dist/esm/common/Metatype.d.ts +19 -1
- package/dist/esm/common/Metatype.d.ts.map +1 -1
- package/dist/esm/common/Metatype.js +171 -170
- package/dist/esm/common/Metatype.js.map +1 -1
- package/dist/esm/common/Specification.d.ts +1 -1
- package/dist/esm/common/Specification.d.ts.map +1 -1
- package/dist/esm/logic/ModelDiff.d.ts +40 -0
- package/dist/esm/logic/ModelDiff.d.ts.map +1 -0
- package/dist/esm/logic/ModelDiff.js +99 -0
- package/dist/esm/logic/ModelDiff.js.map +6 -0
- package/dist/esm/logic/definition-validation/ValueValidator.js +1 -1
- package/dist/esm/logic/definition-validation/ValueValidator.js.map +1 -1
- package/dist/esm/logic/index.d.ts +1 -0
- package/dist/esm/logic/index.d.ts.map +1 -1
- package/dist/esm/logic/index.js +1 -0
- package/dist/esm/logic/index.js.map +1 -1
- package/dist/esm/parser/Lexer.d.ts +3 -3
- package/dist/esm/parser/Lexer.d.ts.map +1 -1
- package/dist/esm/parser/Lexer.js +35 -31
- package/dist/esm/parser/Lexer.js.map +1 -1
- package/dist/esm/parser/Token.d.ts +5 -2
- package/dist/esm/parser/Token.d.ts.map +1 -1
- package/dist/esm/parser/TokenStream.js +2 -2
- package/package.json +4 -4
- package/src/aspects/Constraint.ts +340 -215
- package/src/common/FieldValue.ts +10 -5
- package/src/common/Metatype.ts +200 -181
- package/src/common/Specification.ts +1 -1
- package/src/logic/ModelDiff.ts +150 -0
- package/src/logic/definition-validation/ValueValidator.ts +1 -1
- package/src/logic/index.ts +1 -0
- package/src/parser/Lexer.ts +38 -40
- package/src/parser/Token.ts +11 -1
- package/src/parser/TokenStream.ts +2 -2
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* Copyright 2022-2024 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { Lexer } from "#parser/Lexer.js";
|
|
7
|
+
import { TokenStream } from "#parser/TokenStream.js";
|
|
8
|
+
import { camelize } from "@matter/general";
|
|
7
9
|
import { FieldValue } from "../common/index.js";
|
|
8
10
|
import { Aspect } from "./Aspect.js";
|
|
9
11
|
class Constraint extends Aspect {
|
|
@@ -18,7 +20,7 @@ class Constraint extends Aspect {
|
|
|
18
20
|
if (definition.match(/(?:0b[0x ]*x[0x ]*)|(?:0x[0x_]*x[0x_]*)|(?:00[0x]*x)/i)) {
|
|
19
21
|
break;
|
|
20
22
|
}
|
|
21
|
-
ast =
|
|
23
|
+
ast = Parser.parse(this, definition);
|
|
22
24
|
break;
|
|
23
25
|
case "number":
|
|
24
26
|
ast = { value: definition };
|
|
@@ -51,6 +53,9 @@ class Constraint extends Aspect {
|
|
|
51
53
|
if (ast.entry !== void 0) {
|
|
52
54
|
this.entry = new Constraint(ast.entry);
|
|
53
55
|
}
|
|
56
|
+
if (ast.cpMax !== void 0) {
|
|
57
|
+
this.cpMax = ast.cpMax;
|
|
58
|
+
}
|
|
54
59
|
if (ast.parts !== void 0) {
|
|
55
60
|
this.parts = ast.parts.map((p) => new Constraint(p));
|
|
56
61
|
}
|
|
@@ -64,10 +69,34 @@ class Constraint extends Aspect {
|
|
|
64
69
|
if (!raw && (typeof value2 === "string" || Array.isArray(value2))) {
|
|
65
70
|
return value2.length;
|
|
66
71
|
}
|
|
67
|
-
if (
|
|
68
|
-
const { type
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
if (typeof value2 === "object" && value2 !== null && "type" in value2) {
|
|
73
|
+
const { type } = value2;
|
|
74
|
+
switch (type) {
|
|
75
|
+
case FieldValue.reference:
|
|
76
|
+
if (typeof value2.name === "string") {
|
|
77
|
+
value2 = valueOf(properties?.[camelize(value2.name)], raw);
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case "+":
|
|
81
|
+
{
|
|
82
|
+
const lhs = valueOf(value2.lhs);
|
|
83
|
+
const rhs = valueOf(value2.rhs);
|
|
84
|
+
if (typeof lhs === "number" && typeof rhs === "number") {
|
|
85
|
+
return lhs + rhs;
|
|
86
|
+
}
|
|
87
|
+
return void 0;
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
case "-":
|
|
91
|
+
{
|
|
92
|
+
const lhs = valueOf(value2.lhs);
|
|
93
|
+
const rhs = valueOf(value2.rhs);
|
|
94
|
+
if (typeof lhs === "number" && typeof rhs === "number") {
|
|
95
|
+
return lhs - rhs;
|
|
96
|
+
}
|
|
97
|
+
return void 0;
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
71
100
|
}
|
|
72
101
|
}
|
|
73
102
|
return value2;
|
|
@@ -78,7 +107,7 @@ class Constraint extends Aspect {
|
|
|
78
107
|
if (this.in) {
|
|
79
108
|
let set = valueOf(this.in, true);
|
|
80
109
|
if (!Array.isArray(set)) {
|
|
81
|
-
set = [set];
|
|
110
|
+
set = set === void 0 ? [] : [set];
|
|
82
111
|
}
|
|
83
112
|
return set.indexOf(value) !== -1;
|
|
84
113
|
}
|
|
@@ -110,7 +139,7 @@ class Constraint extends Aspect {
|
|
|
110
139
|
if (!this.valid && this.definition) {
|
|
111
140
|
return this.definition.toString();
|
|
112
141
|
}
|
|
113
|
-
return
|
|
142
|
+
return Serializer.serialize(this);
|
|
114
143
|
}
|
|
115
144
|
freeze() {
|
|
116
145
|
if (this.parts) {
|
|
@@ -119,223 +148,264 @@ class Constraint extends Aspect {
|
|
|
119
148
|
super.freeze();
|
|
120
149
|
}
|
|
121
150
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
} else {
|
|
128
|
-
value = Number.parseFloat(numOrName);
|
|
129
|
-
}
|
|
130
|
-
if (typeof numOrName === "string") {
|
|
131
|
-
const lower = numOrName.toLowerCase();
|
|
132
|
-
switch (lower) {
|
|
133
|
-
case "true":
|
|
134
|
-
return true;
|
|
135
|
-
case "false":
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (Number.isNaN(value)) {
|
|
140
|
-
return FieldValue.Reference(camelize(numOrName));
|
|
151
|
+
var Serializer;
|
|
152
|
+
((Serializer2) => {
|
|
153
|
+
function serialize(ast) {
|
|
154
|
+
if (ast.parts) {
|
|
155
|
+
return ast.parts.map(serialize).join(", ");
|
|
141
156
|
}
|
|
142
|
-
if (
|
|
143
|
-
return
|
|
157
|
+
if (ast.entry) {
|
|
158
|
+
return `${serializeAtom(ast)}[${serialize(ast.entry)}]`;
|
|
144
159
|
}
|
|
145
|
-
if (
|
|
146
|
-
return
|
|
160
|
+
if (ast.cpMax) {
|
|
161
|
+
return `${serializeAtom(ast)}{${ast.cpMax}}`;
|
|
147
162
|
}
|
|
148
|
-
return
|
|
149
|
-
}
|
|
150
|
-
function parseAtom(constraint, words) {
|
|
151
|
-
switch (words.length) {
|
|
152
|
-
case 0:
|
|
153
|
-
return void 0;
|
|
154
|
-
case 1:
|
|
155
|
-
switch (words[0].toLowerCase()) {
|
|
156
|
-
case "desc":
|
|
157
|
-
return { desc: true };
|
|
158
|
-
case "all":
|
|
159
|
-
case "any":
|
|
160
|
-
return {};
|
|
161
|
-
}
|
|
162
|
-
const value = parseValue(words[0]);
|
|
163
|
-
if (value === void 0 || value === null) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
return { value };
|
|
167
|
-
case 2:
|
|
168
|
-
switch (words[0].toLowerCase()) {
|
|
169
|
-
case "min":
|
|
170
|
-
const min = parseValue(words[1]);
|
|
171
|
-
if (min === void 0 || min === null) {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
return { min };
|
|
175
|
-
case "max":
|
|
176
|
-
const max = parseValue(words[1]);
|
|
177
|
-
if (max === void 0 || max === null) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
return { max };
|
|
181
|
-
case "in":
|
|
182
|
-
const ref = parseValue(words[1]);
|
|
183
|
-
return { in: ref };
|
|
184
|
-
default:
|
|
185
|
-
constraint.error(
|
|
186
|
-
"INVALID_CONSTRAINT",
|
|
187
|
-
`Two word constraint "${words.join(" ")}" does not start with "min" or "max"`
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
return;
|
|
191
|
-
case 3:
|
|
192
|
-
if (words[1].toLowerCase() === "to") {
|
|
193
|
-
let parseBound2 = function(name, pos) {
|
|
194
|
-
if (words[pos].toLowerCase() === name) {
|
|
195
|
-
return void 0;
|
|
196
|
-
}
|
|
197
|
-
return parseValue(words[pos]);
|
|
198
|
-
};
|
|
199
|
-
var parseBound = parseBound2;
|
|
200
|
-
const ast = {};
|
|
201
|
-
const min = parseBound2("min", 0);
|
|
202
|
-
if (min !== void 0 && min !== null) {
|
|
203
|
-
ast.min = min;
|
|
204
|
-
}
|
|
205
|
-
const max = parseBound2("max", 2);
|
|
206
|
-
if (max !== void 0 && max !== null) {
|
|
207
|
-
ast.max = max;
|
|
208
|
-
}
|
|
209
|
-
if (ast.min !== void 0 && ast.min !== null || ast.max !== void 0 && ast.max !== null) {
|
|
210
|
-
return ast;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
constraint.error("INVALID_CONSTRAINT", `Unrecognized value constraint "${words.join(" ")}"`);
|
|
163
|
+
return serializeAtom(ast);
|
|
216
164
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
function scan(depth) {
|
|
231
|
-
const parts = Array();
|
|
232
|
-
let words = Array();
|
|
233
|
-
let word = "";
|
|
234
|
-
function parseWords() {
|
|
235
|
-
if (word) {
|
|
236
|
-
words.push(word);
|
|
237
|
-
word = "";
|
|
165
|
+
Serializer2.serialize = serialize;
|
|
166
|
+
function serializeValue(value, inExpr = false) {
|
|
167
|
+
if (typeof value !== "object" || value === null || Array.isArray(value) || value instanceof Date) {
|
|
168
|
+
return FieldValue.serialize(value);
|
|
169
|
+
}
|
|
170
|
+
switch (value.type) {
|
|
171
|
+
case "+":
|
|
172
|
+
case "-":
|
|
173
|
+
const sum = `${serializeValue(value.lhs, true)} ${value.type} ${serializeValue(value.rhs, true)}`;
|
|
174
|
+
if (inExpr) {
|
|
175
|
+
return `(${sum})`;
|
|
238
176
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
return
|
|
242
|
-
}
|
|
243
|
-
function emit() {
|
|
244
|
-
const atom = parseWords();
|
|
245
|
-
if (atom !== void 0) {
|
|
246
|
-
parts.push(atom);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
while (current !== void 0) {
|
|
250
|
-
switch (current) {
|
|
251
|
-
case " ":
|
|
252
|
-
case " ":
|
|
253
|
-
case "\r":
|
|
254
|
-
case "\n":
|
|
255
|
-
case "\v":
|
|
256
|
-
case "\f":
|
|
257
|
-
if (word) {
|
|
258
|
-
words.push(word);
|
|
259
|
-
word = "";
|
|
260
|
-
}
|
|
261
|
-
break;
|
|
262
|
-
case "[":
|
|
263
|
-
next();
|
|
264
|
-
let ast = parseWords();
|
|
265
|
-
const entry = scan(depth + 1);
|
|
266
|
-
if (entry) {
|
|
267
|
-
if (!ast) {
|
|
268
|
-
ast = {};
|
|
269
|
-
}
|
|
270
|
-
ast.entry = entry;
|
|
271
|
-
}
|
|
272
|
-
if (ast) {
|
|
273
|
-
parts.push(ast);
|
|
274
|
-
}
|
|
275
|
-
break;
|
|
276
|
-
case "]":
|
|
277
|
-
if (!depth) {
|
|
278
|
-
constraint.error("INVALID_CONSTRAINT", 'Unexpected "]"');
|
|
279
|
-
break;
|
|
280
|
-
}
|
|
281
|
-
emit();
|
|
282
|
-
if (parts.length > 1) {
|
|
283
|
-
return { parts };
|
|
284
|
-
}
|
|
285
|
-
return parts[0];
|
|
286
|
-
case ",":
|
|
287
|
-
emit();
|
|
288
|
-
break;
|
|
289
|
-
default:
|
|
290
|
-
word += current;
|
|
291
|
-
break;
|
|
292
|
-
}
|
|
293
|
-
next();
|
|
294
|
-
}
|
|
295
|
-
if (depth) {
|
|
296
|
-
constraint.error("INVALID_CONSTRAINT", "Unterminated sub-constraint");
|
|
297
|
-
}
|
|
298
|
-
emit();
|
|
299
|
-
if (parts.length < 2) {
|
|
300
|
-
return parts[0];
|
|
301
|
-
}
|
|
302
|
-
return { parts };
|
|
177
|
+
return sum;
|
|
178
|
+
default:
|
|
179
|
+
return FieldValue.serialize(value);
|
|
303
180
|
}
|
|
304
|
-
return scan(0);
|
|
305
181
|
}
|
|
306
|
-
Constraint2.parse = parse;
|
|
307
182
|
function serializeAtom(ast) {
|
|
308
183
|
if (ast.desc) {
|
|
309
184
|
return "desc";
|
|
310
185
|
}
|
|
311
186
|
if (ast.value !== void 0 && ast.value !== null) {
|
|
312
|
-
return `${
|
|
187
|
+
return `${serializeValue(ast.value)}`;
|
|
313
188
|
}
|
|
314
189
|
if (ast.min !== void 0 && ast.min !== null) {
|
|
315
190
|
if (ast.max === void 0 || ast.max === null) {
|
|
316
|
-
return `min ${
|
|
191
|
+
return `min ${serializeValue(ast.min)}`;
|
|
317
192
|
}
|
|
318
|
-
return `${
|
|
193
|
+
return `${serializeValue(ast.min)} to ${serializeValue(ast.max)}`;
|
|
319
194
|
}
|
|
320
195
|
if (ast.max !== void 0 && ast.max !== null) {
|
|
321
|
-
return `max ${
|
|
196
|
+
return `max ${serializeValue(ast.max)}`;
|
|
322
197
|
}
|
|
323
198
|
if (ast.in !== void 0) {
|
|
324
|
-
return `in ${
|
|
199
|
+
return `in ${serializeValue(ast.in)}`;
|
|
325
200
|
}
|
|
326
201
|
return "all";
|
|
327
202
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
203
|
+
})(Serializer || (Serializer = {}));
|
|
204
|
+
var Parser;
|
|
205
|
+
((Parser2) => {
|
|
206
|
+
const lexer = new Lexer(["in", "min", "max", "to", "all", "desc", "true", "false"]);
|
|
207
|
+
function parse(constraint, definition) {
|
|
208
|
+
const tokens = TokenStream(lexer.lex(definition, (code, message) => constraint.error(code, message)));
|
|
209
|
+
const result = parseParts();
|
|
210
|
+
if (tokens.token && tokens.token?.type !== ",") {
|
|
211
|
+
constraint.error("UNEXPECTED_CONSTRAINT_TOKEN", `Unexpected ${tokens.description}`);
|
|
331
212
|
}
|
|
332
|
-
|
|
333
|
-
|
|
213
|
+
return result;
|
|
214
|
+
function parseParts() {
|
|
215
|
+
const parts = Array();
|
|
216
|
+
while (true) {
|
|
217
|
+
const part = parsePart();
|
|
218
|
+
if (part !== void 0) {
|
|
219
|
+
parts.push(part);
|
|
220
|
+
}
|
|
221
|
+
if (tokens.done) {
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
if (tokens.token?.type !== ",") {
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
tokens.next();
|
|
228
|
+
}
|
|
229
|
+
if (!parts.length) {
|
|
230
|
+
return {};
|
|
231
|
+
}
|
|
232
|
+
if (parts.length === 1) {
|
|
233
|
+
return parts[0];
|
|
234
|
+
}
|
|
235
|
+
return { parts };
|
|
236
|
+
}
|
|
237
|
+
function parsePart() {
|
|
238
|
+
const result2 = parsePartWithoutSubconstraint();
|
|
239
|
+
if (result2 === void 0) {
|
|
240
|
+
return result2;
|
|
241
|
+
}
|
|
242
|
+
switch (tokens.token?.type) {
|
|
243
|
+
case "[":
|
|
244
|
+
{
|
|
245
|
+
tokens.next();
|
|
246
|
+
const entry = parseParts();
|
|
247
|
+
if (tokens.token?.type !== "]") {
|
|
248
|
+
constraint.error("MISSING_ENTRY_END", 'Entry constraint does not end with "]"');
|
|
249
|
+
}
|
|
250
|
+
tokens.next();
|
|
251
|
+
if (entry !== void 0) {
|
|
252
|
+
result2.entry = entry;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
break;
|
|
256
|
+
case "{":
|
|
257
|
+
{
|
|
258
|
+
tokens.next();
|
|
259
|
+
if (tokens.token?.type !== "value") {
|
|
260
|
+
constraint.error(
|
|
261
|
+
"MISSING_CODEPOINT_MAX",
|
|
262
|
+
"Codepoint constraint does not specify maximum codepoint length"
|
|
263
|
+
);
|
|
264
|
+
if (tokens.peeked?.type === "}") {
|
|
265
|
+
tokens.next();
|
|
266
|
+
}
|
|
267
|
+
} else {
|
|
268
|
+
result2.cpMax = FieldValue.numericValue(
|
|
269
|
+
tokens.token.value
|
|
270
|
+
);
|
|
271
|
+
tokens.next();
|
|
272
|
+
}
|
|
273
|
+
if (tokens.token?.type !== "}") {
|
|
274
|
+
constraint.error("MISSING_CODEPOINT_END", 'Codepoint constraint does not end with "}"');
|
|
275
|
+
}
|
|
276
|
+
tokens.next();
|
|
277
|
+
}
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
return result2;
|
|
281
|
+
}
|
|
282
|
+
function parsePartWithoutSubconstraint() {
|
|
283
|
+
const { token } = tokens;
|
|
284
|
+
if (!token) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
switch (token.type) {
|
|
288
|
+
case "desc":
|
|
289
|
+
tokens.next();
|
|
290
|
+
return { desc: true };
|
|
291
|
+
case "all":
|
|
292
|
+
tokens.next();
|
|
293
|
+
return {};
|
|
294
|
+
case "min":
|
|
295
|
+
case "max":
|
|
296
|
+
tokens.next();
|
|
297
|
+
return parseSingleBound(token.type);
|
|
298
|
+
case "in":
|
|
299
|
+
tokens.next();
|
|
300
|
+
if (tokens.token?.type === "word") {
|
|
301
|
+
const name = tokens.token.value;
|
|
302
|
+
tokens.next();
|
|
303
|
+
return { in: FieldValue.Reference(name) };
|
|
304
|
+
}
|
|
305
|
+
constraint.error("MISSING_IN_FIELD", 'Expected field name to follow "in"');
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
const value = parseExpression();
|
|
309
|
+
if (value === void 0 || tokens.token?.type !== "to") {
|
|
310
|
+
return { value };
|
|
311
|
+
}
|
|
312
|
+
tokens.next();
|
|
313
|
+
const max = parseExpression();
|
|
314
|
+
if (max === void 0) {
|
|
315
|
+
constraint.error("MISSING_UPPER_BOUND", `"to" must be followed by upper boundary value`);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
return {
|
|
319
|
+
min: value,
|
|
320
|
+
max
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
function parseSingleBound(kind) {
|
|
324
|
+
const bound = parseExpression();
|
|
325
|
+
if (bound === void 0) {
|
|
326
|
+
constraint.error("MISSING_SINGLE_BOUND", `"${kind}" must be followed by boundary value`);
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
return { [kind]: bound };
|
|
330
|
+
}
|
|
331
|
+
function parseExpression() {
|
|
332
|
+
const value = parseValueExpression();
|
|
333
|
+
if (value === void 0) {
|
|
334
|
+
return value;
|
|
335
|
+
}
|
|
336
|
+
switch (tokens.token?.type) {
|
|
337
|
+
case "+":
|
|
338
|
+
case "-":
|
|
339
|
+
const type = tokens.token.type;
|
|
340
|
+
tokens.next();
|
|
341
|
+
const rhs = parseValueExpression();
|
|
342
|
+
if (rhs === void 0) {
|
|
343
|
+
constraint.error("MISSING_RIGHT_OPERAND", `Missing operand after "${type}"`);
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
return {
|
|
347
|
+
type,
|
|
348
|
+
lhs: value,
|
|
349
|
+
rhs
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
return value;
|
|
353
|
+
}
|
|
354
|
+
function parseValueExpression() {
|
|
355
|
+
const { token } = tokens;
|
|
356
|
+
if (token === void 0) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
switch (token.type) {
|
|
360
|
+
case "value":
|
|
361
|
+
tokens.next();
|
|
362
|
+
return token.value;
|
|
363
|
+
case "true":
|
|
364
|
+
tokens.next();
|
|
365
|
+
return true;
|
|
366
|
+
case "false":
|
|
367
|
+
tokens.next();
|
|
368
|
+
return false;
|
|
369
|
+
case "word":
|
|
370
|
+
const ref = FieldValue.Reference(camelize(token.value));
|
|
371
|
+
tokens.next();
|
|
372
|
+
return ref;
|
|
373
|
+
case "-":
|
|
374
|
+
case "+": {
|
|
375
|
+
tokens.next();
|
|
376
|
+
let number = tokens.token?.type === "value" ? tokens.token.value : void 0;
|
|
377
|
+
if (number !== void 0) {
|
|
378
|
+
tokens.next();
|
|
379
|
+
if (token.type === "-") {
|
|
380
|
+
if (typeof number === "number") {
|
|
381
|
+
number *= -1;
|
|
382
|
+
} else if (FieldValue.is(number, FieldValue.percent) || FieldValue.is(number, FieldValue.celsius)) {
|
|
383
|
+
number.value *= -1;
|
|
384
|
+
} else {
|
|
385
|
+
number = void 0;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
if (number === void 0) {
|
|
390
|
+
constraint.error("MISSING_NUMBER", `Unary "${token.type}" not followed by numeric value`);
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
return number;
|
|
394
|
+
}
|
|
395
|
+
case "(": {
|
|
396
|
+
tokens.next();
|
|
397
|
+
const result2 = parseExpression();
|
|
398
|
+
if (tokens.token?.type !== ")") {
|
|
399
|
+
constraint.error("MISSING_GROUP_END", 'Group does not end with ")"');
|
|
400
|
+
}
|
|
401
|
+
tokens.next();
|
|
402
|
+
return result2;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
334
405
|
}
|
|
335
|
-
return serializeAtom(ast);
|
|
336
406
|
}
|
|
337
|
-
|
|
338
|
-
})(
|
|
407
|
+
Parser2.parse = parse;
|
|
408
|
+
})(Parser || (Parser = {}));
|
|
339
409
|
export {
|
|
340
410
|
Constraint
|
|
341
411
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/aspects/Constraint.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
|
5
|
-
"names": ["value", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["value", "Serializer", "Parser", "result"]
|
|
6
6
|
}
|
|
@@ -22,6 +22,12 @@ export declare namespace FieldValue {
|
|
|
22
22
|
type bytes = typeof bytes;
|
|
23
23
|
const none = "none";
|
|
24
24
|
type none = typeof none;
|
|
25
|
+
/**
|
|
26
|
+
* A field value that allows type extension.
|
|
27
|
+
*/
|
|
28
|
+
type Open = FieldValue | {
|
|
29
|
+
type: string;
|
|
30
|
+
};
|
|
25
31
|
/**
|
|
26
32
|
* If a field value isn't a primitive type, it's an object with a type field indicating one of these types.
|
|
27
33
|
*/
|
|
@@ -29,7 +35,7 @@ export declare namespace FieldValue {
|
|
|
29
35
|
/**
|
|
30
36
|
* Test for one of the special placeholder types.
|
|
31
37
|
*/
|
|
32
|
-
function is(value:
|
|
38
|
+
function is(value: Open | undefined, type: Type): boolean | "" | 0 | 0n | null | undefined;
|
|
33
39
|
/**
|
|
34
40
|
* Flag for an invalid value. Not part of the FieldValue union but returned when casting to a field value if the
|
|
35
41
|
* cast is impossible
|
|
@@ -91,7 +97,7 @@ export declare namespace FieldValue {
|
|
|
91
97
|
/**
|
|
92
98
|
* Given a type name as a hint, do our best to convert a field value to a number.
|
|
93
99
|
*/
|
|
94
|
-
function numericValue(value:
|
|
100
|
+
function numericValue(value: Open | undefined, typeName?: string): number | undefined;
|
|
95
101
|
/**
|
|
96
102
|
* Extract object properties from the value.
|
|
97
103
|
*/
|
|
@@ -107,7 +113,7 @@ export declare namespace FieldValue {
|
|
|
107
113
|
/**
|
|
108
114
|
* Get the referenced name if the FieldValue is a reference.
|
|
109
115
|
*/
|
|
110
|
-
function referenced(value:
|
|
116
|
+
function referenced(value: Open | undefined): string | undefined;
|
|
111
117
|
/**
|
|
112
118
|
* Convert an arbitrary value to a proper FieldValue.
|
|
113
119
|
*
|
|
@@ -116,6 +122,6 @@ export declare namespace FieldValue {
|
|
|
116
122
|
*
|
|
117
123
|
* @returns the cast value or FieldValue.Invalid if cast is not possible
|
|
118
124
|
*/
|
|
119
|
-
function cast(type:
|
|
125
|
+
function cast<const T extends Metatype>(type: T, value: any): FieldValue | FieldValue.Invalid | undefined;
|
|
120
126
|
}
|
|
121
127
|
//# sourceMappingURL=FieldValue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldValue.d.ts","sourceRoot":"","sources":["../../../src/common/FieldValue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAChB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,UAAU,EAAE,GACZ,UAAU,CAAC,UAAU,GACrB,UAAU,CAAC,SAAS,GACpB,UAAU,CAAC,OAAO,GAClB,UAAU,CAAC,OAAO,GAClB,UAAU,CAAC,KAAK,GAChB,UAAU,CAAC,IAAI,CAAC;AAEtB,yBAAiB,UAAU,CAAC;IAGjB,MAAM,OAAO,YAAY,CAAC;IACjC,KAAY,OAAO,GAAG,OAAO,OAAO,CAAC;IAE9B,MAAM,OAAO,YAAY,CAAC;IACjC,KAAY,OAAO,GAAG,OAAO,OAAO,CAAC;IAE9B,MAAM,SAAS,cAAc,CAAC;IACrC,KAAY,SAAS,GAAG,OAAO,SAAS,CAAC;IAElC,MAAM,UAAU,eAAe,CAAC;IACvC,KAAY,UAAU,GAAG,OAAO,UAAU,CAAC;IAEpC,MAAM,KAAK,UAAU,CAAC;IAC7B,KAAY,KAAK,GAAG,OAAO,KAAK,CAAC;IAE1B,MAAM,IAAI,SAAS,CAAC;IAC3B,KAAY,IAAI,GAAG,OAAO,IAAI,CAAC;IAE/B;;OAEG;IACH,KAAY,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC;IAE7E;;OAEG;IACH,SAAgB,EAAE,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"FieldValue.d.ts","sourceRoot":"","sources":["../../../src/common/FieldValue.ts"],"names":[],"mappings":"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"}
|