@matter/model 0.12.0-alpha.0-20241229-9d9c99934 → 0.12.0-alpha.0-20241231-9ac20db97

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.
Files changed (41) hide show
  1. package/dist/cjs/aspects/Constraint.d.ts +24 -15
  2. package/dist/cjs/aspects/Constraint.d.ts.map +1 -1
  3. package/dist/cjs/aspects/Constraint.js +268 -198
  4. package/dist/cjs/aspects/Constraint.js.map +2 -2
  5. package/dist/cjs/common/FieldValue.d.ts +9 -3
  6. package/dist/cjs/common/FieldValue.d.ts.map +1 -1
  7. package/dist/cjs/common/FieldValue.js +1 -1
  8. package/dist/cjs/common/FieldValue.js.map +1 -1
  9. package/dist/cjs/logic/definition-validation/ValueValidator.js +1 -1
  10. package/dist/cjs/logic/definition-validation/ValueValidator.js.map +1 -1
  11. package/dist/cjs/parser/Lexer.d.ts +3 -3
  12. package/dist/cjs/parser/Lexer.d.ts.map +1 -1
  13. package/dist/cjs/parser/Lexer.js +35 -31
  14. package/dist/cjs/parser/Lexer.js.map +1 -1
  15. package/dist/cjs/parser/Token.d.ts +5 -2
  16. package/dist/cjs/parser/Token.d.ts.map +1 -1
  17. package/dist/cjs/parser/TokenStream.js +2 -2
  18. package/dist/esm/aspects/Constraint.d.ts +24 -15
  19. package/dist/esm/aspects/Constraint.d.ts.map +1 -1
  20. package/dist/esm/aspects/Constraint.js +269 -199
  21. package/dist/esm/aspects/Constraint.js.map +2 -2
  22. package/dist/esm/common/FieldValue.d.ts +9 -3
  23. package/dist/esm/common/FieldValue.d.ts.map +1 -1
  24. package/dist/esm/common/FieldValue.js +1 -1
  25. package/dist/esm/common/FieldValue.js.map +1 -1
  26. package/dist/esm/logic/definition-validation/ValueValidator.js +1 -1
  27. package/dist/esm/logic/definition-validation/ValueValidator.js.map +1 -1
  28. package/dist/esm/parser/Lexer.d.ts +3 -3
  29. package/dist/esm/parser/Lexer.d.ts.map +1 -1
  30. package/dist/esm/parser/Lexer.js +35 -31
  31. package/dist/esm/parser/Lexer.js.map +1 -1
  32. package/dist/esm/parser/Token.d.ts +5 -2
  33. package/dist/esm/parser/Token.d.ts.map +1 -1
  34. package/dist/esm/parser/TokenStream.js +2 -2
  35. package/package.json +4 -4
  36. package/src/aspects/Constraint.ts +340 -215
  37. package/src/common/FieldValue.ts +9 -4
  38. package/src/logic/definition-validation/ValueValidator.ts +1 -1
  39. package/src/parser/Lexer.ts +38 -40
  40. package/src/parser/Token.ts +11 -1
  41. 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 { camelize, isObject } from "@matter/general";
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 = Constraint.parse(this, definition);
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 (isObject(value2)) {
68
- const { type, name } = value2;
69
- if (type === FieldValue.reference && typeof name === "string") {
70
- value2 = valueOf(properties?.[camelize(name)], raw);
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 Constraint.serialize(this);
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
- ((Constraint2) => {
123
- function parseValue(numOrName) {
124
- let value;
125
- if (numOrName.match(/^-?0[xb]/)) {
126
- value = Number.parseInt(numOrName.replace(/[_ ]/g, ""));
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 (numOrName.endsWith("%")) {
143
- return FieldValue.Percent(value);
157
+ if (ast.entry) {
158
+ return `${serializeAtom(ast)}[${serialize(ast.entry)}]`;
144
159
  }
145
- if (numOrName.endsWith("\xB0C")) {
146
- return FieldValue.Celsius(value);
160
+ if (ast.cpMax) {
161
+ return `${serializeAtom(ast)}{${ast.cpMax}}`;
147
162
  }
148
- return value;
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
- function parse(constraint, definition) {
218
- let pos = 2;
219
- let current = definition[0];
220
- let peeked = definition[1];
221
- function next() {
222
- current = peeked;
223
- if (pos === definition.length) {
224
- peeked = void 0;
225
- } else {
226
- peeked = definition[pos];
227
- pos++;
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
- const atom = parseAtom(constraint, words);
240
- words = Array();
241
- return atom;
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 `${FieldValue.serialize(ast.value)}`;
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 ${FieldValue.serialize(ast.min)}`;
191
+ return `min ${serializeValue(ast.min)}`;
317
192
  }
318
- return `${FieldValue.serialize(ast.min)} to ${FieldValue.serialize(ast.max)}`;
193
+ return `${serializeValue(ast.min)} to ${serializeValue(ast.max)}`;
319
194
  }
320
195
  if (ast.max !== void 0 && ast.max !== null) {
321
- return `max ${FieldValue.serialize(ast.max)}`;
196
+ return `max ${serializeValue(ast.max)}`;
322
197
  }
323
198
  if (ast.in !== void 0) {
324
- return `in ${FieldValue.serialize(ast.in)}`;
199
+ return `in ${serializeValue(ast.in)}`;
325
200
  }
326
201
  return "all";
327
202
  }
328
- function serialize(ast) {
329
- if (ast.parts) {
330
- return ast.parts.map(serialize).join(", ");
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
- if (ast.entry) {
333
- return `${serializeAtom(ast)}[${serialize(ast.entry)}]`;
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
- Constraint2.serialize = serialize;
338
- })(Constraint || (Constraint = {}));
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": "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",
5
- "names": ["value", "Constraint", "parseBound"]
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: FieldValue | undefined, type: Type): boolean | "" | 0 | 0n | null | undefined;
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: FieldValue | undefined, typeName?: string): number | undefined;
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: FieldValue | undefined): string | undefined;
116
+ function referenced(value: Open | undefined): string | undefined;
111
117
  /**
112
118
  * Convert an arbitrary value to a proper FieldValue.
113
119
  *
@@ -1 +1 @@
1
- {"version":3,"file":"FieldValue.d.ts","sourceRoot":"","sources":["../../../src/common/FieldValue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldValue.d.ts","sourceRoot":"","sources":["../../../src/common/FieldValue.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ var FieldValue;
50
50
  return `${value.value}\xB0C`;
51
51
  }
52
52
  if (is(value, FieldValue2.percent)) {
53
- return `${value.value}%';`;
53
+ return `${value.value}%`;
54
54
  }
55
55
  if (is(value, FieldValue2.properties)) {
56
56
  return stringSerialize(value.properties) ?? "?";