@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/common/FieldValue.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,SAAS,WAAW,aAAa,iBAAiB,2BAA2B;AAsB/E,IAAU;AAAA,CAAV,CAAUA,gBAAV;AAGI,EAAMA,YAAA,UAAU;AAGhB,EAAMA,YAAA,UAAU;AAGhB,EAAMA,YAAA,YAAY;AAGlB,EAAMA,YAAA,aAAa;AAGnB,EAAMA,YAAA,QAAQ;AAGd,EAAMA,YAAA,OAAO;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["FieldValue", "type"]
|
|
6
6
|
}
|
|
@@ -31,6 +31,10 @@ export declare namespace Metatype {
|
|
|
31
31
|
* Determine the JS type for a metatype.
|
|
32
32
|
*/
|
|
33
33
|
function native(type: Metatype | undefined): ObjectConstructor | ArrayConstructor | NumberConstructor | DateConstructor | Uint8ArrayConstructor | BigIntConstructor | BooleanConstructor | StringConstructor | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Map metatype value to JS type.
|
|
36
|
+
*/
|
|
37
|
+
type Native<T> = T extends "boolean" ? boolean : T extends "integer" | "float" ? number : T extends "string" ? string : T extends "bitmap" | "object" ? Record<string, unknown> : T extends "array" ? unknown[] : T extends "bytes" ? Uint8Array : T extends "date" ? Date : T extends "any" ? unknown : never;
|
|
34
38
|
/**
|
|
35
39
|
* Functions that perform conversion of arbitrary values to a metatype.
|
|
36
40
|
*
|
|
@@ -39,7 +43,21 @@ export declare namespace Metatype {
|
|
|
39
43
|
*
|
|
40
44
|
* @throws {@link UnsupportedCastError} if the cast is deemed impossible
|
|
41
45
|
*/
|
|
42
|
-
const
|
|
46
|
+
function cast<const T extends `${Metatype}`>(type: T, value: unknown): Native<T>;
|
|
47
|
+
namespace cast {
|
|
48
|
+
export var any: (value: unknown) => unknown;
|
|
49
|
+
export var boolean: (value: unknown) => boolean | null | undefined;
|
|
50
|
+
export var bitmap: (value: any) => number | bigint | Record<string, number> | null | undefined;
|
|
51
|
+
var _a: (value: any) => number | string | null | undefined;
|
|
52
|
+
export var integer: (value: any) => number | bigint | null | undefined;
|
|
53
|
+
export var float: (value: any) => number | null | undefined;
|
|
54
|
+
export var bytes: (value: any) => Uint8Array | null | undefined;
|
|
55
|
+
export var array: (value: any) => Array<unknown> | null | undefined;
|
|
56
|
+
export var object: (value: any) => Record<string, unknown> | null | undefined;
|
|
57
|
+
export var string: (value: any) => string | null | undefined;
|
|
58
|
+
export var date: (value: any) => Date | null | undefined;
|
|
59
|
+
export { _a as enum };
|
|
60
|
+
}
|
|
43
61
|
/**
|
|
44
62
|
* These are the native types used by this module.
|
|
45
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metatype.d.ts","sourceRoot":"","sources":["../../../src/common/Metatype.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAY,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,qBAAa,oBAAqB,SAAQ,mBAAmB;CAAG;AAEhE;;GAEG;AACH,oBAAY,QAAQ;IAChB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CAChB;AAED,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,SAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,WAUrD;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,+KA4BhD;IAED
|
|
1
|
+
{"version":3,"file":"Metatype.d.ts","sourceRoot":"","sources":["../../../src/common/Metatype.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAY,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,qBAAa,oBAAqB,SAAQ,mBAAmB;CAAG;AAEhE;;GAEG;AACH,oBAAY,QAAQ;IAChB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CAChB;AAED,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,SAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,WAUrD;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,+KA4BhD;IAED;;OAEG;IACH,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GACrC,OAAO,GACP,CAAC,SAAS,SAAS,GAAG,OAAO,GAC3B,MAAM,GACN,CAAC,SAAS,QAAQ,GAChB,MAAM,GACN,CAAC,SAAS,QAAQ,GAAG,QAAQ,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,SAAS,OAAO,GACf,OAAO,EAAE,GACT,CAAC,SAAS,OAAO,GACf,UAAU,GACV,CAAC,SAAS,MAAM,GACd,IAAI,GACJ,CAAC,SAAS,KAAK,GACb,OAAO,GACP,KAAK,CAAC;IAE1B;;;;;;;OAOG;IACH,SAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAE/C,MAAM,CAAC,CAAC,CAAC,CACpC;cAHe,IAAI;gCAKD,OAAO;oCAEH,OAAO,KAAG,OAAO,GAAG,IAAI,GAAG,SAAS;mCAuCrC,GAAG,KAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS;wBAyBnE,GAAG,KAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;oCAgBrC,GAAG,KAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;kCAsC1C,GAAG,KAAG,MAAM,GAAG,IAAI,GAAG,SAAS;kCAiB/B,GAAG,KAAG,UAAU,GAAG,IAAI,GAAG,SAAS;kCAoBnC,GAAG,KAAG,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS;mCAqBtC,GAAG,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS;mCAmBhD,GAAG,KAAG,MAAM,GAAG,IAAI,GAAG,SAAS;iCAoBjC,GAAG,KAAG,IAAI,GAAG,IAAI,GAAG,SAAS;;;IAejD;;OAEG;IACH,KAAY,UAAU,GAChB,OAAO,OAAO,GACd,OAAO,MAAM,GACb,OAAO,MAAM,GACb,OAAO,KAAK,GACZ,OAAO,KAAK,GACZ,OAAO,MAAM,GACb,OAAO,MAAM,GACb,OAAO,IAAI,CAAC;CACrB"}
|
|
@@ -55,194 +55,195 @@ var Metatype = /* @__PURE__ */ ((Metatype2) => {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
Metatype2.native = native;
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
function cast(type, value) {
|
|
59
|
+
const caster = cast[type];
|
|
60
|
+
return caster(value);
|
|
61
|
+
}
|
|
62
|
+
Metatype2.cast = cast;
|
|
63
|
+
cast.any = (value) => value;
|
|
64
|
+
cast.boolean = (value) => {
|
|
65
|
+
if (typeof value === "boolean" || value === null || value === void 0) {
|
|
60
66
|
return value;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
case "on":
|
|
77
|
-
case "yes":
|
|
78
|
-
case "true":
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (typeof value === "number" || typeof value === "bigint") {
|
|
83
|
-
return !!value;
|
|
67
|
+
}
|
|
68
|
+
if (typeof value === "string") {
|
|
69
|
+
const normalized = value.toLowerCase().trim();
|
|
70
|
+
switch (normalized) {
|
|
71
|
+
case "":
|
|
72
|
+
case "0":
|
|
73
|
+
case "off":
|
|
74
|
+
case "no":
|
|
75
|
+
case "false":
|
|
76
|
+
return false;
|
|
77
|
+
case "1":
|
|
78
|
+
case "on":
|
|
79
|
+
case "yes":
|
|
80
|
+
case "true":
|
|
81
|
+
return true;
|
|
84
82
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
}
|
|
84
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
|
85
|
+
return !!value;
|
|
86
|
+
}
|
|
87
|
+
if (ArrayBuffer.isView(value)) {
|
|
88
|
+
for (const byte of new Uint8Array(value.buffer)) {
|
|
89
|
+
if (byte) {
|
|
90
|
+
return true;
|
|
90
91
|
}
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
throw new UnsupportedCastError(`Cannot convert "${value}" to boolean`);
|
|
94
|
-
},
|
|
95
|
-
bitmap(value) {
|
|
96
|
-
if (value === null || value === void 0) {
|
|
97
|
-
return value;
|
|
98
92
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to boolean`);
|
|
96
|
+
};
|
|
97
|
+
cast.bitmap = (value) => {
|
|
98
|
+
if (value === null || value === void 0) {
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
if (typeof value === "string") {
|
|
102
|
+
value = cast.integer(value);
|
|
103
|
+
}
|
|
104
|
+
if (typeof value === "number") {
|
|
105
|
+
if (Number.isFinite(value)) {
|
|
107
106
|
return value;
|
|
108
|
-
} else if (isObject(value)) {
|
|
109
|
-
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, Metatype2.cast.integer(v)]));
|
|
110
|
-
}
|
|
111
|
-
throw new UnsupportedCastError(`Cannot convert "${value}" to bitmap`);
|
|
112
|
-
},
|
|
113
|
-
enum(value) {
|
|
114
|
-
if (typeof value === "string") {
|
|
115
|
-
if (value.trim().match(/^(?:[0-9]+|0x[0-9a-f]+|0b[01]+)$/)) {
|
|
116
|
-
value = Number.parseInt(value);
|
|
117
|
-
} else {
|
|
118
|
-
return value;
|
|
119
|
-
}
|
|
120
107
|
}
|
|
121
|
-
|
|
108
|
+
} else if (typeof value === "bigint") {
|
|
109
|
+
return value;
|
|
110
|
+
} else if (isObject(value)) {
|
|
111
|
+
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, cast.integer(v)]));
|
|
112
|
+
}
|
|
113
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to bitmap`);
|
|
114
|
+
};
|
|
115
|
+
cast.enum = (value) => {
|
|
116
|
+
if (typeof value === "string") {
|
|
117
|
+
if (value.trim().match(/^(?:[0-9]+|0x[0-9a-f]+|0b[01]+)$/)) {
|
|
118
|
+
value = Number.parseInt(value);
|
|
119
|
+
} else {
|
|
122
120
|
return value;
|
|
123
121
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
122
|
+
}
|
|
123
|
+
if (typeof value === "number" && !Number.isNaN(value) && Number.isFinite(value)) {
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to an enum value`);
|
|
127
|
+
};
|
|
128
|
+
cast.integer = (value) => {
|
|
129
|
+
if (value === null || value === void 0) {
|
|
130
|
+
return value;
|
|
131
|
+
}
|
|
132
|
+
switch (typeof value) {
|
|
133
|
+
case "number":
|
|
134
|
+
return Math.floor(value);
|
|
135
|
+
case "bigint":
|
|
128
136
|
return value;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (typeof value === "string") {
|
|
142
|
-
try {
|
|
143
|
-
const big = BigInt(value);
|
|
144
|
-
const little = Number.parseInt(value);
|
|
145
|
-
if (big === BigInt(little)) {
|
|
146
|
-
return little;
|
|
147
|
-
}
|
|
148
|
-
return big;
|
|
149
|
-
} catch (e) {
|
|
150
|
-
if (!(e instanceof SyntaxError)) {
|
|
151
|
-
throw e;
|
|
152
|
-
}
|
|
137
|
+
case "boolean":
|
|
138
|
+
return value ? 1 : 0;
|
|
139
|
+
}
|
|
140
|
+
if (value instanceof Date) {
|
|
141
|
+
return value.getTime();
|
|
142
|
+
}
|
|
143
|
+
if (typeof value === "string") {
|
|
144
|
+
try {
|
|
145
|
+
const big = BigInt(value);
|
|
146
|
+
const little = Number.parseInt(value);
|
|
147
|
+
if (big === BigInt(little)) {
|
|
148
|
+
return little;
|
|
153
149
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (typeof value === "number" || value === null || value === void 0) {
|
|
159
|
-
return value;
|
|
160
|
-
}
|
|
161
|
-
if (value instanceof Date) {
|
|
162
|
-
return value.getTime();
|
|
163
|
-
}
|
|
164
|
-
const number = Number(value);
|
|
165
|
-
if (!Number.isNaN(number) && Number.isFinite(value)) {
|
|
166
|
-
return number;
|
|
167
|
-
}
|
|
168
|
-
throw new UnsupportedCastError(`Cannot convert "${value}" to a float`);
|
|
169
|
-
},
|
|
170
|
-
bytes(value) {
|
|
171
|
-
if (value === void 0 || value === null || value instanceof Uint8Array) {
|
|
172
|
-
return value;
|
|
173
|
-
}
|
|
174
|
-
if (typeof value === "string") {
|
|
175
|
-
return Bytes.fromHex(value);
|
|
176
|
-
}
|
|
177
|
-
if (typeof value === "boolean") {
|
|
178
|
-
return new Uint8Array([value ? 1 : 0]);
|
|
179
|
-
}
|
|
180
|
-
if (typeof value === "number" || typeof value === "bigint") {
|
|
181
|
-
return Bytes.fromHex(value.toString(16));
|
|
182
|
-
}
|
|
183
|
-
throw new UnsupportedCastError(`Cannot convert "${value}" to bytes`);
|
|
184
|
-
},
|
|
185
|
-
array(value) {
|
|
186
|
-
if (value === void 0 || value === null || Array.isArray(value)) {
|
|
187
|
-
return value;
|
|
188
|
-
}
|
|
189
|
-
if (typeof value === "string") {
|
|
190
|
-
try {
|
|
191
|
-
const parsed = JSON.parse(value);
|
|
192
|
-
if (Array.isArray(parsed)) {
|
|
193
|
-
return parsed;
|
|
194
|
-
}
|
|
195
|
-
} catch (e) {
|
|
196
|
-
if (!(e instanceof SyntaxError)) {
|
|
197
|
-
throw e;
|
|
198
|
-
}
|
|
150
|
+
return big;
|
|
151
|
+
} catch (e) {
|
|
152
|
+
if (!(e instanceof SyntaxError)) {
|
|
153
|
+
throw e;
|
|
199
154
|
}
|
|
200
155
|
}
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
156
|
+
}
|
|
157
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to an integer`);
|
|
158
|
+
};
|
|
159
|
+
cast.float = (value) => {
|
|
160
|
+
if (typeof value === "number" || value === null || value === void 0) {
|
|
161
|
+
return value;
|
|
162
|
+
}
|
|
163
|
+
if (value instanceof Date) {
|
|
164
|
+
return value.getTime();
|
|
165
|
+
}
|
|
166
|
+
const number = Number(value);
|
|
167
|
+
if (!Number.isNaN(number) && Number.isFinite(value)) {
|
|
168
|
+
return number;
|
|
169
|
+
}
|
|
170
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to a float`);
|
|
171
|
+
};
|
|
172
|
+
cast.bytes = (value) => {
|
|
173
|
+
if (value === void 0 || value === null || value instanceof Uint8Array) {
|
|
174
|
+
return value;
|
|
175
|
+
}
|
|
176
|
+
if (typeof value === "string") {
|
|
177
|
+
return Bytes.fromHex(value);
|
|
178
|
+
}
|
|
179
|
+
if (typeof value === "boolean") {
|
|
180
|
+
return new Uint8Array([value ? 1 : 0]);
|
|
181
|
+
}
|
|
182
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
|
183
|
+
return Bytes.fromHex(value.toString(16));
|
|
184
|
+
}
|
|
185
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to bytes`);
|
|
186
|
+
};
|
|
187
|
+
cast.array = (value) => {
|
|
188
|
+
if (value === void 0 || value === null || Array.isArray(value)) {
|
|
189
|
+
return value;
|
|
190
|
+
}
|
|
191
|
+
if (typeof value === "string") {
|
|
192
|
+
try {
|
|
193
|
+
const parsed = JSON.parse(value);
|
|
194
|
+
if (Array.isArray(parsed)) {
|
|
210
195
|
return parsed;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
196
|
+
}
|
|
197
|
+
} catch (e) {
|
|
198
|
+
if (!(e instanceof SyntaxError)) {
|
|
199
|
+
throw e;
|
|
215
200
|
}
|
|
216
201
|
}
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
return
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
return value.toString();
|
|
233
|
-
},
|
|
234
|
-
date(value) {
|
|
235
|
-
if (value === void 0 || value === null || value instanceof Date) {
|
|
236
|
-
return value;
|
|
237
|
-
}
|
|
238
|
-
if (typeof value === "number" || typeof value === "string") {
|
|
239
|
-
const date = new Date(value);
|
|
240
|
-
if (!Number.isNaN(date.getTime())) {
|
|
241
|
-
return date;
|
|
202
|
+
}
|
|
203
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to array`);
|
|
204
|
+
};
|
|
205
|
+
cast.object = (value) => {
|
|
206
|
+
if (value === void 0 || typeof value === "object" && !Array.isArray(value) && !(value instanceof Date)) {
|
|
207
|
+
return value;
|
|
208
|
+
}
|
|
209
|
+
if (typeof value === "string") {
|
|
210
|
+
try {
|
|
211
|
+
const parsed = JSON.parse(value);
|
|
212
|
+
return parsed;
|
|
213
|
+
} catch (e) {
|
|
214
|
+
if (!(e instanceof SyntaxError)) {
|
|
215
|
+
throw e;
|
|
242
216
|
}
|
|
243
217
|
}
|
|
244
|
-
throw new UnexpectedDataError();
|
|
245
218
|
}
|
|
219
|
+
throw new UnsupportedCastError(`Cannot convert "${value}" to object`);
|
|
220
|
+
};
|
|
221
|
+
cast.string = (value) => {
|
|
222
|
+
if (value === void 0 || value === null) {
|
|
223
|
+
return value;
|
|
224
|
+
}
|
|
225
|
+
if (typeof value === "string") {
|
|
226
|
+
return value;
|
|
227
|
+
}
|
|
228
|
+
if (value instanceof Date) {
|
|
229
|
+
return value.toISOString();
|
|
230
|
+
}
|
|
231
|
+
if (typeof value === "object" || Array.isArray(value)) {
|
|
232
|
+
return JSON.stringify(value);
|
|
233
|
+
}
|
|
234
|
+
return value.toString();
|
|
235
|
+
};
|
|
236
|
+
cast.date = (value) => {
|
|
237
|
+
if (value === void 0 || value === null || value instanceof Date) {
|
|
238
|
+
return value;
|
|
239
|
+
}
|
|
240
|
+
if (typeof value === "number" || typeof value === "string") {
|
|
241
|
+
const date = new Date(value);
|
|
242
|
+
if (!Number.isNaN(date.getTime())) {
|
|
243
|
+
return date;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
throw new UnexpectedDataError();
|
|
246
247
|
};
|
|
247
248
|
})(Metatype || (Metatype = {}));
|
|
248
249
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/common/Metatype.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,UAAU,2BAA2B;AAE9C,MAAM,6BAA6B,oBAAoB;AAAC;AAKxD,IAAK,WAAL,kBAAKA,cAAL;AACH,EAAAA,UAAA,SAAM;AACN,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,WAAQ;AACR,EAAAA,UAAA,WAAQ;AACR,EAAAA,UAAA,WAAQ;AACR,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,UAAO;AAXC,SAAAA;AAAA,GAAA;AAAA,CAcL,CAAUA,cAAV;AAII,WAAS,YAAY,MAA4B;AACpD,YAAQ,MAAM;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MAEX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAVO,EAAAA,UAAS;AAeT,WAAS,OAAO,MAA4B;AAC/C,YAAQ,MAAM;AAAA,MACV,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,IACf;AAAA,EACJ;AA5BO,EAAAA,UAAS;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Metatype"]
|
|
6
6
|
}
|
|
@@ -39,7 +39,7 @@ export declare namespace Specification {
|
|
|
39
39
|
/**
|
|
40
40
|
* Matter specification version.
|
|
41
41
|
*/
|
|
42
|
-
type Revision = `${number}.${number}`;
|
|
42
|
+
type Revision = `${number}.${number}` | `${number}.${number}.${number}.${number}`;
|
|
43
43
|
/**
|
|
44
44
|
* The default specification revision for Matter.js.
|
|
45
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Specification.d.ts","sourceRoot":"","sources":["../../../src/common/Specification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,oBAAY,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;CAC1B;AAED,yBAAiB,aAAa,CAAC;IAC3B;;OAEG;IACH,KAAY,KAAK;QACb,IAAI,8BAA8B;QAClC,OAAO,6CAA6C;QACpD,MAAM,wCAAwC;QAC9C,SAAS,4CAA4C;KACxD;IAED;;OAEG;IACH,KAAY,cAAc,GAAG;QACzB;;WAEG;QACH,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAE7B;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,KAAY,QAAQ,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Specification.d.ts","sourceRoot":"","sources":["../../../src/common/Specification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,oBAAY,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;CAC1B;AAED,yBAAiB,aAAa,CAAC;IAC3B;;OAEG;IACH,KAAY,KAAK;QACb,IAAI,8BAA8B;QAClC,OAAO,6CAA6C;QACpD,MAAM,wCAAwC;QAC9C,SAAS,4CAA4C;KACxD;IAED;;OAEG;IACH,KAAY,cAAc,GAAG;QACzB;;WAEG;QACH,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAE7B;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,KAAY,QAAQ,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;IAEzF;;OAEG;IACI,MAAM,QAAQ,YAAY,CAAC;IAElC;;;;OAIG;IACI,MAAM,qBAAqB,WAAa,CAAC;IAEhD;;OAEG;IACI,MAAM,mBAAmB,KAAK,CAAC;IAEtC;;OAEG;IACI,MAAM,0BAA0B,KAAK,CAAC;CAChD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ElementTag } from "#common/ElementTag.js";
|
|
7
|
+
import { Model } from "#models/Model.js";
|
|
8
|
+
/**
|
|
9
|
+
* A high level summary of changes between two models.
|
|
10
|
+
*/
|
|
11
|
+
export type ModelDiff = ModelDiff.Add | ModelDiff.Delete | ModelDiff.List | ModelDiff.Summary;
|
|
12
|
+
/**
|
|
13
|
+
* Diff two models.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ModelDiff(from: Model, to: Model, depth?: number): ModelDiff | undefined;
|
|
16
|
+
export declare namespace ModelDiff {
|
|
17
|
+
/**
|
|
18
|
+
* Convert a diff to a diagnostic for serialization.
|
|
19
|
+
*/
|
|
20
|
+
function diagnosticOf(diff: ModelDiff | undefined): unknown;
|
|
21
|
+
interface Identity {
|
|
22
|
+
name: string;
|
|
23
|
+
tag: ElementTag;
|
|
24
|
+
}
|
|
25
|
+
interface Add extends Identity {
|
|
26
|
+
kind: "add";
|
|
27
|
+
}
|
|
28
|
+
interface Delete extends Identity {
|
|
29
|
+
kind: "delete";
|
|
30
|
+
}
|
|
31
|
+
interface List extends Identity {
|
|
32
|
+
kind: "list";
|
|
33
|
+
children: ModelDiff[];
|
|
34
|
+
}
|
|
35
|
+
interface Summary extends Identity {
|
|
36
|
+
kind: "summary";
|
|
37
|
+
changes: Record<ElementTag, number>;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=ModelDiff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelDiff.d.ts","sourceRoot":"","sources":["../../../src/logic/ModelDiff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;AAE9F;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,SAAI,yBAG1D;AAkED,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACH,SAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAgCjE;IAED,UAAiB,QAAQ;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,UAAU,CAAC;KACnB;IAED,UAAiB,GAAI,SAAQ,QAAQ;QACjC,IAAI,EAAE,KAAK,CAAC;KACf;IAED,UAAiB,MAAO,SAAQ,QAAQ;QACpC,IAAI,EAAE,QAAQ,CAAC;KAClB;IAED,UAAiB,IAAK,SAAQ,QAAQ;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,SAAS,EAAE,CAAC;KACzB;IAED,UAAiB,OAAQ,SAAQ,QAAQ;QACrC,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KACvC;CACJ"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Specification } from "#index.js";
|
|
7
|
+
import { Diagnostic } from "@matter/general";
|
|
8
|
+
import { ModelVariantTraversal } from "./ModelVariantTraversal.js";
|
|
9
|
+
function ModelDiff(from, to, depth = 2) {
|
|
10
|
+
const traversal = new DiffTraversal(depth);
|
|
11
|
+
return traversal.traverse({ from, to });
|
|
12
|
+
}
|
|
13
|
+
class DiffTraversal extends ModelVariantTraversal {
|
|
14
|
+
#detailDepth;
|
|
15
|
+
#currentDepth = 0;
|
|
16
|
+
constructor(depth) {
|
|
17
|
+
super(Specification.REVISION, ["from", "to"]);
|
|
18
|
+
this.#detailDepth = depth;
|
|
19
|
+
}
|
|
20
|
+
visit(variants, recurse) {
|
|
21
|
+
if (variants.map.to === void 0) {
|
|
22
|
+
if (variants.map.from === void 0) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
kind: "delete",
|
|
27
|
+
tag: variants.tag,
|
|
28
|
+
name: variants.name
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (variants.map.from === void 0) {
|
|
32
|
+
return {
|
|
33
|
+
kind: "add",
|
|
34
|
+
tag: variants.tag,
|
|
35
|
+
name: variants.name
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (this.#currentDepth >= this.#detailDepth) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.#currentDepth++;
|
|
42
|
+
const children = recurse().filter((child) => child !== void 0);
|
|
43
|
+
this.#currentDepth--;
|
|
44
|
+
if (!children.length) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (this.#currentDepth < this.#detailDepth - 1) {
|
|
48
|
+
return {
|
|
49
|
+
kind: "list",
|
|
50
|
+
tag: variants.tag,
|
|
51
|
+
name: variants.name,
|
|
52
|
+
children
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const changes = {};
|
|
56
|
+
for (const child of children) {
|
|
57
|
+
changes[child.tag] = (changes[child.tag] ?? 0) + 1;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
kind: "summary",
|
|
61
|
+
tag: variants.tag,
|
|
62
|
+
name: variants.name,
|
|
63
|
+
changes
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
((ModelDiff2) => {
|
|
68
|
+
function diagnosticOf(diff) {
|
|
69
|
+
const id = `${diff?.tag}#${diff?.name}`;
|
|
70
|
+
switch (diff?.kind) {
|
|
71
|
+
case "add":
|
|
72
|
+
return Diagnostic.added(id);
|
|
73
|
+
case "delete":
|
|
74
|
+
return Diagnostic.deleted(id);
|
|
75
|
+
case "list":
|
|
76
|
+
if (diff.children.length) {
|
|
77
|
+
return [id, Diagnostic.list(diff.children.map(diagnosticOf))];
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case "summary":
|
|
81
|
+
const changes = Object.entries(diff.changes).map(([tag, count]) => {
|
|
82
|
+
if (count < 0) {
|
|
83
|
+
return Diagnostic.deleted(`${-count} ${tag}`);
|
|
84
|
+
}
|
|
85
|
+
if (count > 0) {
|
|
86
|
+
return Diagnostic.added(`${count} ${tag}`);
|
|
87
|
+
}
|
|
88
|
+
return Diagnostic.weak(`${0} ${tag}`);
|
|
89
|
+
});
|
|
90
|
+
return [`${id}`, ...changes];
|
|
91
|
+
}
|
|
92
|
+
return Diagnostic.weak("(unchanged)");
|
|
93
|
+
}
|
|
94
|
+
ModelDiff2.diagnosticOf = diagnosticOf;
|
|
95
|
+
})(ModelDiff || (ModelDiff = {}));
|
|
96
|
+
export {
|
|
97
|
+
ModelDiff
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=ModelDiff.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/logic/ModelDiff.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAC3B,SAAS,6BAA4C;AAU9C,SAAS,UAAU,MAAa,IAAW,QAAQ,GAAG;AACzD,QAAM,YAAY,IAAI,cAAc,KAAK;AACzC,SAAO,UAAU,SAAS,EAAE,MAAM,GAAG,CAAC;AAC1C;AAEA,MAAM,sBAAsB,sBAA6C;AAAA,EACrE;AAAA,EACA,gBAAgB;AAAA,EAEhB,YAAY,OAAe;AACvB,UAAM,cAAc,UAAU,CAAC,QAAQ,IAAI,CAAC;AAC5C,SAAK,eAAe;AAAA,EACxB;AAAA,EAEmB,MAAM,UAAyB,SAAiE;AAC/G,QAAI,SAAS,IAAI,OAAO,QAAW;AAC/B,UAAI,SAAS,IAAI,SAAS,QAAW;AACjC;AAAA,MACJ;AACA,aAAO;AAAA,QACH,MAAM;AAAA,QACN,KAAK,SAAS;AAAA,QACd,MAAM,SAAS;AAAA,MACnB;AAAA,IACJ;AAEA,QAAI,SAAS,IAAI,SAAS,QAAW;AACjC,aAAO;AAAA,QACH,MAAM;AAAA,QACN,KAAK,SAAS;AAAA,QACd,MAAM,SAAS;AAAA,MACnB;AAAA,IACJ;AAEA,QAAI,KAAK,iBAAiB,KAAK,cAAc;AACzC;AAAA,IACJ;AAEA,SAAK;AACL,UAAM,WAAW,QAAQ,EAAE,OAAO,WAAS,UAAU,MAAS;AAC9D,SAAK;AAEL,QAAI,CAAC,SAAS,QAAQ;AAClB;AAAA,IACJ;AAEA,QAAI,KAAK,gBAAgB,KAAK,eAAe,GAAG;AAC5C,aAAO;AAAA,QACH,MAAM;AAAA,QACN,KAAK,SAAS;AAAA,QACd,MAAM,SAAS;AAAA,QACf;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,UAAU,CAAC;AACjB,eAAW,SAAS,UAAU;AAC1B,cAAQ,MAAM,GAAG,KAAK,QAAQ,MAAM,GAAG,KAAK,KAAK;AAAA,IACrD;AAEA,WAAO;AAAA,MACH,MAAM;AAAA,MACN,KAAK,SAAS;AAAA,MACd,MAAM,SAAS;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,eAAV;AAII,WAAS,aAAa,MAAsC;AAC/D,UAAM,KAAK,GAAG,MAAM,GAAG,IAAI,MAAM,IAAI;AACrC,YAAQ,MAAM,MAAM;AAAA,MAChB,KAAK;AACD,eAAO,WAAW,MAAM,EAAE;AAAA,MAE9B,KAAK;AACD,eAAO,WAAW,QAAQ,EAAE;AAAA,MAEhC,KAAK;AACD,YAAI,KAAK,SAAS,QAAQ;AACtB,iBAAO,CAAC,IAAI,WAAW,KAAK,KAAK,SAAS,IAAI,YAAY,CAAC,CAAC;AAAA,QAChE;AACA;AAAA,MAEJ,KAAK;AACD,cAAM,UAAU,OAAO,QAAQ,KAAK,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAC/D,cAAI,QAAQ,GAAG;AACX,mBAAO,WAAW,QAAQ,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE;AAAA,UAChD;AAEA,cAAI,QAAQ,GAAG;AACX,mBAAO,WAAW,MAAM,GAAG,KAAK,IAAI,GAAG,EAAE;AAAA,UAC7C;AAEA,iBAAO,WAAW,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE;AAAA,QACxC,CAAC;AAED,eAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO;AAAA,IACnC;AAEA,WAAO,WAAW,KAAK,aAAa;AAAA,EACxC;AAhCO,EAAAA,WAAS;AAAA,GAJH;",
|
|
5
|
+
"names": ["ModelDiff"]
|
|
6
|
+
}
|