@matter/types 0.16.0-alpha.0-20251004-92135c7df → 0.16.0-alpha.0-20251011-d8942d7d5
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/common/ModelBounds.d.ts +74 -0
- package/dist/cjs/common/ModelBounds.d.ts.map +1 -0
- package/dist/cjs/common/ModelBounds.js +102 -0
- package/dist/cjs/common/ModelBounds.js.map +6 -0
- package/dist/cjs/common/StatusResponseError.d.ts +1 -0
- package/dist/cjs/common/StatusResponseError.d.ts.map +1 -1
- package/dist/cjs/common/StatusResponseError.js +4 -1
- package/dist/cjs/common/StatusResponseError.js.map +1 -1
- package/dist/cjs/common/index.d.ts +1 -0
- package/dist/cjs/common/index.d.ts.map +1 -1
- package/dist/cjs/common/index.js +1 -0
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/tlv/TlvOfModel.d.ts +9 -0
- package/dist/cjs/tlv/TlvOfModel.d.ts.map +1 -0
- package/dist/cjs/tlv/TlvOfModel.js +227 -0
- package/dist/cjs/tlv/TlvOfModel.js.map +6 -0
- package/dist/cjs/tlv/index.d.ts +1 -0
- package/dist/cjs/tlv/index.d.ts.map +1 -1
- package/dist/cjs/tlv/index.js +1 -0
- package/dist/cjs/tlv/index.js.map +1 -1
- package/dist/esm/common/ModelBounds.d.ts +74 -0
- package/dist/esm/common/ModelBounds.d.ts.map +1 -0
- package/dist/esm/common/ModelBounds.js +99 -0
- package/dist/esm/common/ModelBounds.js.map +6 -0
- package/dist/esm/common/StatusResponseError.d.ts +1 -0
- package/dist/esm/common/StatusResponseError.d.ts.map +1 -1
- package/dist/esm/common/StatusResponseError.js +4 -1
- package/dist/esm/common/StatusResponseError.js.map +1 -1
- package/dist/esm/common/index.d.ts +1 -0
- package/dist/esm/common/index.d.ts.map +1 -1
- package/dist/esm/common/index.js +1 -0
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/tlv/TlvOfModel.d.ts +9 -0
- package/dist/esm/tlv/TlvOfModel.d.ts.map +1 -0
- package/dist/esm/tlv/TlvOfModel.js +260 -0
- package/dist/esm/tlv/TlvOfModel.js.map +6 -0
- package/dist/esm/tlv/index.d.ts +1 -0
- package/dist/esm/tlv/index.d.ts.map +1 -1
- package/dist/esm/tlv/index.js +1 -0
- package/dist/esm/tlv/index.js.map +1 -1
- package/package.json +5 -5
- package/src/common/ModelBounds.ts +118 -0
- package/src/common/StatusResponseError.ts +5 -1
- package/src/common/index.ts +1 -0
- package/src/tlv/TlvOfModel.ts +312 -0
- package/src/tlv/index.ts +1 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Constraint, ValueModel } from "#model";
|
|
7
|
+
/**
|
|
8
|
+
* Helpers for generation of TLV schema from models.
|
|
9
|
+
*
|
|
10
|
+
* We must export these so long as we codegen TLV directly in TlvGenerator.ts.
|
|
11
|
+
*/
|
|
12
|
+
export declare namespace ModelBounds {
|
|
13
|
+
function createLengthBounds(model: ValueModel): {
|
|
14
|
+
[key: string]: number;
|
|
15
|
+
} | undefined;
|
|
16
|
+
function createNumberBounds(model: ValueModel): {
|
|
17
|
+
[key: string]: number;
|
|
18
|
+
} | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Bounds for numeric types.
|
|
21
|
+
*/
|
|
22
|
+
const NumericRanges: {
|
|
23
|
+
uint8: {
|
|
24
|
+
min: number;
|
|
25
|
+
max: number;
|
|
26
|
+
};
|
|
27
|
+
uint16: {
|
|
28
|
+
min: number;
|
|
29
|
+
max: number;
|
|
30
|
+
};
|
|
31
|
+
uint24: {
|
|
32
|
+
min: number;
|
|
33
|
+
max: number;
|
|
34
|
+
};
|
|
35
|
+
uint32: {
|
|
36
|
+
min: number;
|
|
37
|
+
max: number;
|
|
38
|
+
};
|
|
39
|
+
uint64: {
|
|
40
|
+
min: number;
|
|
41
|
+
max: bigint;
|
|
42
|
+
};
|
|
43
|
+
int8: {
|
|
44
|
+
min: number;
|
|
45
|
+
max: number;
|
|
46
|
+
};
|
|
47
|
+
int16: {
|
|
48
|
+
min: number;
|
|
49
|
+
max: number;
|
|
50
|
+
};
|
|
51
|
+
int32: {
|
|
52
|
+
min: number;
|
|
53
|
+
max: number;
|
|
54
|
+
};
|
|
55
|
+
int64: {
|
|
56
|
+
min: bigint;
|
|
57
|
+
max: bigint;
|
|
58
|
+
};
|
|
59
|
+
float32: {
|
|
60
|
+
min: number;
|
|
61
|
+
max: number;
|
|
62
|
+
};
|
|
63
|
+
percent: {
|
|
64
|
+
min: number;
|
|
65
|
+
max: number;
|
|
66
|
+
};
|
|
67
|
+
percent100ths: {
|
|
68
|
+
min: number;
|
|
69
|
+
max: number;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export declare function extractApplicableConstraint(model: ValueModel): Constraint;
|
|
74
|
+
//# sourceMappingURL=ModelBounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelBounds.d.ts","sourceRoot":"","sources":["../../../src/common/ModelBounds.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,OAAO,EAAE,UAAU,EAAc,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5D;;;;GAIG;AACH,yBAAiB,WAAW,CAAC;IACzB,SAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU;;kBASnD;IAED,SAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU;;kBASnD;IAED;;OAEG;IACI,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAazB,CAAC;CACL;AA6BD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,cAiB5D"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var ModelBounds_exports = {};
|
|
20
|
+
__export(ModelBounds_exports, {
|
|
21
|
+
ModelBounds: () => ModelBounds,
|
|
22
|
+
extractApplicableConstraint: () => extractApplicableConstraint
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(ModelBounds_exports);
|
|
25
|
+
var import_general = require("#general");
|
|
26
|
+
var import_model = require("#model");
|
|
27
|
+
/**
|
|
28
|
+
* @license
|
|
29
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
30
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
31
|
+
*/
|
|
32
|
+
var ModelBounds;
|
|
33
|
+
((ModelBounds2) => {
|
|
34
|
+
function createLengthBounds(model) {
|
|
35
|
+
const constraint = extractApplicableConstraint(model);
|
|
36
|
+
const value = import_model.FieldValue.numericValue(constraint.value, model.type);
|
|
37
|
+
if (value !== void 0) {
|
|
38
|
+
return { length: value };
|
|
39
|
+
}
|
|
40
|
+
return createRangeBounds(constraint, "minLength", "maxLength");
|
|
41
|
+
}
|
|
42
|
+
ModelBounds2.createLengthBounds = createLengthBounds;
|
|
43
|
+
function createNumberBounds(model) {
|
|
44
|
+
const constraint = model.effectiveConstraint;
|
|
45
|
+
const value = import_model.FieldValue.numericValue(constraint.value, model.type);
|
|
46
|
+
if (value !== void 0) {
|
|
47
|
+
return { min: value, max: value };
|
|
48
|
+
}
|
|
49
|
+
return createRangeBounds(constraint, "min", "max", model.type);
|
|
50
|
+
}
|
|
51
|
+
ModelBounds2.createNumberBounds = createNumberBounds;
|
|
52
|
+
ModelBounds2.NumericRanges = {
|
|
53
|
+
uint8: { min: 0, max: import_general.UINT8_MAX },
|
|
54
|
+
uint16: { min: 0, max: import_general.UINT16_MAX },
|
|
55
|
+
uint24: { min: 0, max: import_general.UINT24_MAX },
|
|
56
|
+
uint32: { min: 0, max: import_general.UINT32_MAX },
|
|
57
|
+
uint64: { min: 0, max: import_general.UINT64_MAX },
|
|
58
|
+
int8: { min: import_general.INT8_MIN, max: import_general.INT8_MAX },
|
|
59
|
+
int16: { min: import_general.INT16_MIN, max: import_general.INT16_MAX },
|
|
60
|
+
int32: { min: import_general.INT32_MIN, max: import_general.INT32_MAX },
|
|
61
|
+
int64: { min: import_general.INT64_MIN, max: import_general.INT64_MAX },
|
|
62
|
+
float32: { min: import_general.FLOAT32_MIN, max: import_general.FLOAT32_MAX },
|
|
63
|
+
percent: { min: 0, max: 100 },
|
|
64
|
+
percent100ths: { min: 0, max: 1e4 }
|
|
65
|
+
};
|
|
66
|
+
})(ModelBounds || (ModelBounds = {}));
|
|
67
|
+
function createRangeBounds(constraint, minKey, maxKey, type) {
|
|
68
|
+
let min = import_model.FieldValue.numericValue(constraint.min, type);
|
|
69
|
+
let max = import_model.FieldValue.numericValue(constraint.max, type);
|
|
70
|
+
if (min === ModelBounds.NumericRanges[type]?.min) {
|
|
71
|
+
min = void 0;
|
|
72
|
+
}
|
|
73
|
+
if (max === ModelBounds.NumericRanges[type]?.max) {
|
|
74
|
+
max = void 0;
|
|
75
|
+
}
|
|
76
|
+
if (min === void 0 && max === void 0) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const bounds = {};
|
|
80
|
+
if (min !== void 0) {
|
|
81
|
+
bounds[minKey] = min;
|
|
82
|
+
}
|
|
83
|
+
if (max !== void 0) {
|
|
84
|
+
bounds[maxKey] = max;
|
|
85
|
+
}
|
|
86
|
+
return bounds;
|
|
87
|
+
}
|
|
88
|
+
function extractApplicableConstraint(model) {
|
|
89
|
+
let constraint = model.effectiveConstraint;
|
|
90
|
+
if (constraint.in) {
|
|
91
|
+
const siblingName = import_model.FieldValue.referenced(constraint.in);
|
|
92
|
+
if (siblingName) {
|
|
93
|
+
const sibling = model.parent?.member((0, import_general.camelize)(siblingName, true));
|
|
94
|
+
const siblingConstraint = sibling.effectiveConstraint;
|
|
95
|
+
if (siblingConstraint.entry) {
|
|
96
|
+
constraint = siblingConstraint.entry;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return constraint;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=ModelBounds.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/common/ModelBounds.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAiBO;AACP,mBAAmD;AAxBnD;AAAA;AAAA;AAAA;AAAA;AA+BO,IAAU;AAAA,CAAV,CAAUA,iBAAV;AACI,WAAS,mBAAmB,OAAmB;AAClD,UAAM,aAAa,4BAA4B,KAAK;AAEpD,UAAM,QAAQ,wBAAW,aAAa,WAAW,OAAO,MAAM,IAAI;AAClE,QAAI,UAAU,QAAW;AACrB,aAAO,EAAE,QAAQ,MAAM;AAAA,IAC3B;AAEA,WAAO,kBAAkB,YAAY,aAAa,WAAW;AAAA,EACjE;AATO,EAAAA,aAAS;AAWT,WAAS,mBAAmB,OAAmB;AAClD,UAAM,aAAa,MAAM;AAEzB,UAAM,QAAQ,wBAAW,aAAa,WAAW,OAAO,MAAM,IAAI;AAClE,QAAI,UAAU,QAAW;AACrB,aAAO,EAAE,KAAK,OAAO,KAAK,MAAM;AAAA,IACpC;AAEA,WAAO,kBAAkB,YAAY,OAAO,OAAO,MAAM,IAAI;AAAA,EACjE;AATO,EAAAA,aAAS;AAcT,EAAMA,aAAA,gBAAgB;AAAA,IACzB,OAAO,EAAE,KAAK,GAAG,KAAK,yBAAU;AAAA,IAChC,QAAQ,EAAE,KAAK,GAAG,KAAK,0BAAW;AAAA,IAClC,QAAQ,EAAE,KAAK,GAAG,KAAK,0BAAW;AAAA,IAClC,QAAQ,EAAE,KAAK,GAAG,KAAK,0BAAW;AAAA,IAClC,QAAQ,EAAE,KAAK,GAAG,KAAK,0BAAW;AAAA,IAClC,MAAM,EAAE,KAAK,yBAAU,KAAK,wBAAS;AAAA,IACrC,OAAO,EAAE,KAAK,0BAAW,KAAK,yBAAU;AAAA,IACxC,OAAO,EAAE,KAAK,0BAAW,KAAK,yBAAU;AAAA,IACxC,OAAO,EAAE,KAAK,0BAAW,KAAK,yBAAU;AAAA,IACxC,SAAS,EAAE,KAAK,4BAAa,KAAK,2BAAY;AAAA,IAC9C,SAAS,EAAE,KAAK,GAAG,KAAK,IAAI;AAAA,IAC5B,eAAe,EAAE,KAAK,GAAG,KAAK,IAAM;AAAA,EACxC;AAAA,GAvCa;AA0CjB,SAAS,kBAAkB,YAAwB,QAAgB,QAAgB,MAAe;AAC9F,MAAI,MAAM,wBAAW,aAAa,WAAW,KAAK,IAAI;AACtD,MAAI,MAAM,wBAAW,aAAa,WAAW,KAAK,IAAI;AAEtD,MAAI,QAAS,YAAY,cAAsB,IAAW,GAAG,KAAK;AAC9D,UAAM;AAAA,EACV;AAEA,MAAI,QAAS,YAAY,cAAsB,IAAW,GAAG,KAAK;AAC9D,UAAM;AAAA,EACV;AAEA,MAAI,QAAQ,UAAa,QAAQ,QAAW;AACxC;AAAA,EACJ;AAEA,QAAM,SAAS,CAAC;AAChB,MAAI,QAAQ,QAAW;AACnB,WAAO,MAAM,IAAI;AAAA,EACrB;AACA,MAAI,QAAQ,QAAW;AACnB,WAAO,MAAM,IAAI;AAAA,EACrB;AAEA,SAAO;AACX;AAEO,SAAS,4BAA4B,OAAmB;AAC3D,MAAI,aAAa,MAAM;AAIvB,MAAI,WAAW,IAAI;AACf,UAAM,cAAc,wBAAW,WAAW,WAAW,EAAE;AACvD,QAAI,aAAa;AACb,YAAM,UAAU,MAAM,QAAQ,WAAO,yBAAS,aAAa,IAAI,CAAC;AAChE,YAAM,oBAAoB,QAAQ;AAClC,UAAI,kBAAkB,OAAO;AACzB,qBAAa,kBAAkB;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;",
|
|
5
|
+
"names": ["ModelBounds"]
|
|
6
|
+
}
|
|
@@ -12,6 +12,7 @@ export declare class StatusResponseError extends MatterError {
|
|
|
12
12
|
readonly code: Status;
|
|
13
13
|
readonly clusterCode?: number | undefined;
|
|
14
14
|
constructor(message: string, code: Status, clusterCode?: number | undefined);
|
|
15
|
+
get bareMessage(): string;
|
|
15
16
|
static is(error: unknown, ...codes: Status[]): error is StatusResponseError;
|
|
16
17
|
get id(): string;
|
|
17
18
|
static create(code: Status, message?: string, clusterCode?: number): StatusResponseError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusResponseError.d.ts","sourceRoot":"","sources":["../../../src/common/StatusResponseError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAA0B,MAAM,iBAAiB,CAAC;AAItE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;aAG5B,IAAI,EAAE,MAAM;aACZ,WAAW,CAAC,EAAE,MAAM;gBAFpC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,YAAA;IAKxC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,mBAAmB;IAI3E,IAAa,EAAE,WAWd;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CASrE;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,mBAAmB;CAAG;AAEtE;;GAEG;AACH,eAAO,MAAM,cAAc,EA8BtB,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,OAAO,EAAE,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC,CAAC;AAEhH,qFAAqF;AACrF,qBAAa,2BAA4B,SAAQ,mBAAmB;CAAG"}
|
|
1
|
+
{"version":3,"file":"StatusResponseError.d.ts","sourceRoot":"","sources":["../../../src/common/StatusResponseError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAA0B,MAAM,iBAAiB,CAAC;AAItE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;aAG5B,IAAI,EAAE,MAAM;aACZ,WAAW,CAAC,EAAE,MAAM;gBAFpC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,YAAA;IAKxC,IAAI,WAAW,WAEd;IAED,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,mBAAmB;IAI3E,IAAa,EAAE,WAWd;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CASrE;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,mBAAmB;CAAG;AAEtE;;GAEG;AACH,eAAO,MAAM,cAAc,EA8BtB,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,OAAO,EAAE,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC,CAAC;AAEhH,qFAAqF;AACrF,qBAAa,2BAA4B,SAAQ,mBAAmB;CAAG"}
|
|
@@ -38,6 +38,9 @@ class StatusResponseError extends import_general.MatterError {
|
|
|
38
38
|
this.code = code;
|
|
39
39
|
this.clusterCode = clusterCode;
|
|
40
40
|
}
|
|
41
|
+
get bareMessage() {
|
|
42
|
+
return this.message.replace(/ \(code .+\)$/, "");
|
|
43
|
+
}
|
|
41
44
|
static is(error, ...codes) {
|
|
42
45
|
return error instanceof StatusResponseError && (!codes.length || codes.includes(error.code));
|
|
43
46
|
}
|
|
@@ -77,7 +80,7 @@ const StatusResponse = Object.fromEntries(
|
|
|
77
80
|
if (clusterCode !== void 0) {
|
|
78
81
|
codeStr = `${codeStr}; cluster code ${clusterCode}`;
|
|
79
82
|
}
|
|
80
|
-
this.message =
|
|
83
|
+
this.message = `${message} (${codeStr})`;
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
86
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/common/StatusResponseError.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAuB;AACvB,qBAAoD;AAPpD;AAAA;AAAA;AAAA;AAAA;AASA,MAAM,sBAAsB,CAAC;AAKtB,MAAM,4BAA4B,2BAAY;AAAA,EAC1C,YACH,SACgB,MACA,aAClB;AACE,UAAM,OAAO;AAHG;AACA;AAAA,EAGpB;AAAA,EAEA,OAAO,GAAG,UAAmB,OAA+C;AACxE,WAAO,iBAAiB,wBAAwB,CAAC,MAAM,UAAU,MAAM,SAAS,MAAM,IAAI;AAAA,EAC9F;AAAA,EAEA,IAAa,KAAK;AACd,UAAM,KAAK,MAAM;AAEjB,QAAI,OAAO,mBAAmB;AAC1B,YAAM,OAAO,qBAAO,KAAK,IAAI;AAC7B,UAAI,MAAM;AACN,mBAAO,2BAAW,IAAI;AAAA,MAC1B;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,OAAO,MAAc,SAAkB,aAAsB;AAChE,UAAM,OAAO,oBAAoB,IAAI;AAErC,QAAI,MAAM;AACN,aAAO,IAAI,KAAK,SAAS,WAAW;AAAA,IACxC;AAEA,UAAM,IAAI,2BAA2B,WAAW,2BAA2B,MAAM,WAAW;AAAA,EAChG;AACJ;AAKO,MAAM,mCAAmC,oBAAoB;AAAC;AAK9D,MAAM,iBAAiB,OAAO;AAAA,EACjC,OAAO,QAAQ,oBAAM,EAChB,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AACnB,QAAI,OAAO,SAAS,UAAU;AAC1B,aAAO;AAAA,IACX;AACA,UAAM,KAAK;AAAA,MACP,CAAC,IAAI,GAAG,cAAc,oBAAoB;AAAA,QACtC,YAAY,SAAkB,aAAsB;AAChD,cAAI,YAAY,QAAW;AACvB,0BAAU,+BAAW,2BAAW,IAAI,CAAC;AAAA,UACzC;AAEA,gBAAM,SAAS,MAAgB,WAAW;AAE1C,cAAI,UAAU,QAAQ,IAAI;AAC1B,cAAI,gBAAgB,QAAW;AAC3B,sBAAU,GAAG,OAAO,kBAAkB,WAAW;AAAA,UACrD;AAEA,eAAK,UAAU,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAuB;AACvB,qBAAoD;AAPpD;AAAA;AAAA;AAAA;AAAA;AASA,MAAM,sBAAsB,CAAC;AAKtB,MAAM,4BAA4B,2BAAY;AAAA,EAC1C,YACH,SACgB,MACA,aAClB;AACE,UAAM,OAAO;AAHG;AACA;AAAA,EAGpB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,QAAQ,QAAQ,iBAAiB,EAAE;AAAA,EACnD;AAAA,EAEA,OAAO,GAAG,UAAmB,OAA+C;AACxE,WAAO,iBAAiB,wBAAwB,CAAC,MAAM,UAAU,MAAM,SAAS,MAAM,IAAI;AAAA,EAC9F;AAAA,EAEA,IAAa,KAAK;AACd,UAAM,KAAK,MAAM;AAEjB,QAAI,OAAO,mBAAmB;AAC1B,YAAM,OAAO,qBAAO,KAAK,IAAI;AAC7B,UAAI,MAAM;AACN,mBAAO,2BAAW,IAAI;AAAA,MAC1B;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,OAAO,MAAc,SAAkB,aAAsB;AAChE,UAAM,OAAO,oBAAoB,IAAI;AAErC,QAAI,MAAM;AACN,aAAO,IAAI,KAAK,SAAS,WAAW;AAAA,IACxC;AAEA,UAAM,IAAI,2BAA2B,WAAW,2BAA2B,MAAM,WAAW;AAAA,EAChG;AACJ;AAKO,MAAM,mCAAmC,oBAAoB;AAAC;AAK9D,MAAM,iBAAiB,OAAO;AAAA,EACjC,OAAO,QAAQ,oBAAM,EAChB,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AACnB,QAAI,OAAO,SAAS,UAAU;AAC1B,aAAO;AAAA,IACX;AACA,UAAM,KAAK;AAAA,MACP,CAAC,IAAI,GAAG,cAAc,oBAAoB;AAAA,QACtC,YAAY,SAAkB,aAAsB;AAChD,cAAI,YAAY,QAAW;AACvB,0BAAU,+BAAW,2BAAW,IAAI,CAAC;AAAA,UACzC;AAEA,gBAAM,SAAS,MAAgB,WAAW;AAE1C,cAAI,UAAU,QAAQ,IAAI;AAC1B,cAAI,gBAAgB,QAAW;AAC3B,sBAAU,GAAG,OAAO,kBAAkB,WAAW;AAAA,UACrD;AAEA,eAAK,UAAU,GAAG,OAAO,KAAK,OAAO;AAAA,QACzC;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,cAAc,GAAG,IAAI;AAC3B,WAAO,eAAe,aAAa,QAAQ,EAAE,OAAO,KAAK,CAAC;AAC1D,wBAAoB,IAAI,IAAI;AAC5B,WAAO,CAAC,GAAG,IAAI,SAAS,WAAW;AAAA,EACvC,CAAC,EACA,OAAO,OAAK,CAAC;AACtB;AAGO,MAAM,oCAAoC,oBAAoB;AAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
|
package/dist/cjs/common/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
15
15
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
16
|
var common_exports = {};
|
|
17
17
|
module.exports = __toCommonJS(common_exports);
|
|
18
|
+
__reExport(common_exports, require("./ModelBounds.js"), module.exports);
|
|
18
19
|
__reExport(common_exports, require("./ProductDescription.js"), module.exports);
|
|
19
20
|
__reExport(common_exports, require("./StatusCode.js"), module.exports);
|
|
20
21
|
__reExport(common_exports, require("./StatusResponseError.js"), module.exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/common/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,2BAAc,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,2BAAc,6BANd;AAOA,2BAAc,oCAPd;AAQA,2BAAc,4BARd;AASA,2BAAc,qCATd;AAUA,2BAAc,iCAVd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ClusterModel, ValueModel } from "#model";
|
|
7
|
+
import { TlvSchema } from "./TlvSchema.js";
|
|
8
|
+
export declare function TlvOfModel(model: ClusterModel | ValueModel): TlvSchema<unknown>;
|
|
9
|
+
//# sourceMappingURL=TlvOfModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TlvOfModel.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvOfModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,EAGH,YAAY,EA6BZ,UAAU,EAEb,MAAM,QAAQ,CAAC;AA6BhB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,sBAO1D"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var TlvOfModel_exports = {};
|
|
20
|
+
__export(TlvOfModel_exports, {
|
|
21
|
+
TlvOfModel: () => TlvOfModel
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(TlvOfModel_exports);
|
|
24
|
+
var import_ModelBounds = require("#common/ModelBounds.js");
|
|
25
|
+
var import_AttributeId = require("#datatype/AttributeId.js");
|
|
26
|
+
var import_ClusterId = require("#datatype/ClusterId.js");
|
|
27
|
+
var import_CommandId = require("#datatype/CommandId.js");
|
|
28
|
+
var import_DeviceTypeId = require("#datatype/DeviceTypeId.js");
|
|
29
|
+
var import_EndpointNumber = require("#datatype/EndpointNumber.js");
|
|
30
|
+
var import_EventId = require("#datatype/EventId.js");
|
|
31
|
+
var import_FabricId = require("#datatype/FabricId.js");
|
|
32
|
+
var import_FabricIndex = require("#datatype/FabricIndex.js");
|
|
33
|
+
var import_GroupId = require("#datatype/GroupId.js");
|
|
34
|
+
var import_NodeId = require("#datatype/NodeId.js");
|
|
35
|
+
var import_SubjectId = require("#datatype/SubjectId.js");
|
|
36
|
+
var import_VendorId = require("#datatype/VendorId.js");
|
|
37
|
+
var import_general = require("#general");
|
|
38
|
+
var import_model = require("#model");
|
|
39
|
+
var import_BitmapSchema = require("#schema/BitmapSchema.js");
|
|
40
|
+
var import_TlvAny = require("./TlvAny.js");
|
|
41
|
+
var import_TlvArray = require("./TlvArray.js");
|
|
42
|
+
var import_TlvBoolean = require("./TlvBoolean.js");
|
|
43
|
+
var import_TlvNullable = require("./TlvNullable.js");
|
|
44
|
+
var import_TlvNumber = require("./TlvNumber.js");
|
|
45
|
+
var import_TlvObject = require("./TlvObject.js");
|
|
46
|
+
var import_TlvString = require("./TlvString.js");
|
|
47
|
+
/**
|
|
48
|
+
* @license
|
|
49
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
50
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
51
|
+
*/
|
|
52
|
+
const cache = /* @__PURE__ */ new WeakMap();
|
|
53
|
+
function TlvOfModel(model) {
|
|
54
|
+
let tlv = cache.get(model);
|
|
55
|
+
if (tlv === void 0) {
|
|
56
|
+
tlv = generateTlv(model);
|
|
57
|
+
cache.set(model, tlv);
|
|
58
|
+
}
|
|
59
|
+
return tlv;
|
|
60
|
+
}
|
|
61
|
+
const NumberMapping = {
|
|
62
|
+
// Signed int
|
|
63
|
+
[import_model.int8.name]: import_TlvNumber.TlvInt8,
|
|
64
|
+
[import_model.int16.name]: import_TlvNumber.TlvInt16,
|
|
65
|
+
[import_model.int32.name]: import_TlvNumber.TlvInt32,
|
|
66
|
+
[import_model.int64.name]: import_TlvNumber.TlvInt64,
|
|
67
|
+
// Unsigned int
|
|
68
|
+
[import_model.uint8.name]: import_TlvNumber.TlvUInt8,
|
|
69
|
+
[import_model.uint16.name]: import_TlvNumber.TlvUInt16,
|
|
70
|
+
[import_model.uint32.name]: import_TlvNumber.TlvUInt32,
|
|
71
|
+
[import_model.uint64.name]: import_TlvNumber.TlvUInt64,
|
|
72
|
+
// Bitmap
|
|
73
|
+
[import_model.map8.name]: import_TlvNumber.TlvUInt8,
|
|
74
|
+
[import_model.map16.name]: import_TlvNumber.TlvUInt16,
|
|
75
|
+
[import_model.map32.name]: import_TlvNumber.TlvUInt32,
|
|
76
|
+
// ID
|
|
77
|
+
[import_model.attribId.name]: import_AttributeId.TlvAttributeId,
|
|
78
|
+
[import_model.clusterId.name]: import_ClusterId.TlvClusterId,
|
|
79
|
+
[import_model.commandId.name]: import_CommandId.TlvCommandId,
|
|
80
|
+
[import_model.devtypeId.name]: import_DeviceTypeId.TlvDeviceTypeId,
|
|
81
|
+
[import_model.endpointNo.name]: import_EndpointNumber.TlvEndpointNumber,
|
|
82
|
+
[import_model.eventId.name]: import_EventId.TlvEventId,
|
|
83
|
+
[import_model.fabricId.name]: import_FabricId.TlvFabricId,
|
|
84
|
+
[import_model.fabricIdx.name]: import_FabricIndex.TlvFabricIndex,
|
|
85
|
+
[import_model.groupId.name]: import_GroupId.TlvGroupId,
|
|
86
|
+
[import_model.nodeId.name]: import_NodeId.TlvNodeId,
|
|
87
|
+
[import_model.subjectId.name]: import_SubjectId.TlvSubjectId,
|
|
88
|
+
[import_model.vendorId.name]: import_VendorId.TlvVendorId,
|
|
89
|
+
// Percent
|
|
90
|
+
[import_model.percent.name]: import_TlvNumber.TlvPercent,
|
|
91
|
+
[import_model.percent100ths.name]: import_TlvNumber.TlvPercent100ths,
|
|
92
|
+
// Time
|
|
93
|
+
[import_model.epochUs.name]: import_TlvNumber.TlvEpochUs,
|
|
94
|
+
[import_model.epochS.name]: import_TlvNumber.TlvEpochS,
|
|
95
|
+
[import_model.posixMs.name]: import_TlvNumber.TlvPosixMs,
|
|
96
|
+
[import_model.systimeUs.name]: import_TlvNumber.TlvSysTimeUs,
|
|
97
|
+
[import_model.systimeMs.name]: import_TlvNumber.TlvSysTimeMS
|
|
98
|
+
// The following are defined in the specification but we don't support them so they're apparently unused
|
|
99
|
+
//[int24.name]: TlvInt24,
|
|
100
|
+
//[int40.name]: TlvInt40,
|
|
101
|
+
//[int48.name]: TlvInt48,
|
|
102
|
+
//[uint24.name]: TlvInt24,
|
|
103
|
+
//[uint40.name]: TlvInt40,
|
|
104
|
+
//[uint48.name]: TlvInt48,
|
|
105
|
+
//[map64.name]: TlvUInt64,
|
|
106
|
+
};
|
|
107
|
+
function generateTlv(model) {
|
|
108
|
+
const metatype = model.effectiveMetatype;
|
|
109
|
+
if (metatype === import_model.Metatype.object) {
|
|
110
|
+
return generateStruct(model);
|
|
111
|
+
}
|
|
112
|
+
if (!(model instanceof import_model.ValueModel)) {
|
|
113
|
+
throw new import_general.InternalError(`Inappropriate use of ${model.tag} model as datatype`);
|
|
114
|
+
}
|
|
115
|
+
let tlv;
|
|
116
|
+
const metabase = model.metabase;
|
|
117
|
+
if (metabase === void 0) {
|
|
118
|
+
throw new import_general.InternalError(`No metabase for model ${model.name}`);
|
|
119
|
+
}
|
|
120
|
+
switch (metatype) {
|
|
121
|
+
case import_model.Metatype.any:
|
|
122
|
+
tlv = import_TlvAny.TlvAny;
|
|
123
|
+
break;
|
|
124
|
+
case import_model.Metatype.boolean:
|
|
125
|
+
tlv = import_TlvBoolean.TlvBoolean;
|
|
126
|
+
break;
|
|
127
|
+
case import_model.Metatype.bitmap:
|
|
128
|
+
tlv = generateBitmap(model);
|
|
129
|
+
break;
|
|
130
|
+
case import_model.Metatype.array:
|
|
131
|
+
tlv = generateList(model);
|
|
132
|
+
break;
|
|
133
|
+
case import_model.Metatype.bytes:
|
|
134
|
+
tlv = generateString(import_TlvString.TlvByteString, model);
|
|
135
|
+
break;
|
|
136
|
+
case import_model.Metatype.string:
|
|
137
|
+
tlv = generateString(import_TlvString.TlvString, model);
|
|
138
|
+
break;
|
|
139
|
+
case import_model.Metatype.enum:
|
|
140
|
+
tlv = (0, import_TlvNumber.TlvEnum)();
|
|
141
|
+
break;
|
|
142
|
+
case import_model.Metatype.float:
|
|
143
|
+
if (metabase.name === "single") {
|
|
144
|
+
tlv = import_TlvNumber.TlvFloat;
|
|
145
|
+
} else {
|
|
146
|
+
tlv = import_TlvNumber.TlvDouble;
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case import_model.Metatype.integer:
|
|
150
|
+
tlv = generateInteger(model);
|
|
151
|
+
break;
|
|
152
|
+
default:
|
|
153
|
+
throw new import_general.InternalError(`No TLV mapping for model ${model.name}`);
|
|
154
|
+
}
|
|
155
|
+
if (model.quality.nullable) {
|
|
156
|
+
tlv = (0, import_TlvNullable.TlvNullable)(tlv);
|
|
157
|
+
}
|
|
158
|
+
return tlv;
|
|
159
|
+
}
|
|
160
|
+
function generateStruct(model) {
|
|
161
|
+
const entries = model.conformant.properties.map((p) => [(0, import_general.camelize)(p.name), TlvOfModel(model)]);
|
|
162
|
+
const fields = Object.fromEntries(entries);
|
|
163
|
+
return (0, import_TlvObject.TlvObject)(fields);
|
|
164
|
+
}
|
|
165
|
+
function generateBitmap(model) {
|
|
166
|
+
const { fields } = model.conformant;
|
|
167
|
+
if (!fields.length) {
|
|
168
|
+
return primitiveFallbackOf(model);
|
|
169
|
+
}
|
|
170
|
+
const entries = fields.map((field) => {
|
|
171
|
+
const name = (0, import_general.camelize)(field.name);
|
|
172
|
+
const { constraint } = field;
|
|
173
|
+
if (typeof constraint.value === "number") {
|
|
174
|
+
return [name, (0, import_BitmapSchema.BitFlag)(constraint.value)];
|
|
175
|
+
}
|
|
176
|
+
if (typeof constraint.min === "number" && typeof constraint.max === "number") {
|
|
177
|
+
return [name, (0, import_BitmapSchema.BitField)(constraint.min, constraint.max - constraint.min + 1)];
|
|
178
|
+
}
|
|
179
|
+
throw new import_general.ImplementationError(`Bit field ${field.path} is not properly constrained`);
|
|
180
|
+
});
|
|
181
|
+
const metabaseName = model.metabase?.name;
|
|
182
|
+
const num = metabaseName ? NumberMapping[metabaseName] : void 0;
|
|
183
|
+
if (!num) {
|
|
184
|
+
throw new import_general.ImplementationError(`Could not determine numeric type for bitmap ${model.path} type "${model.type}"`);
|
|
185
|
+
}
|
|
186
|
+
return (0, import_TlvNumber.TlvBitmap)(num, Object.fromEntries(entries));
|
|
187
|
+
}
|
|
188
|
+
function generateList(model) {
|
|
189
|
+
const entry = model.conformant.fields.for("entry");
|
|
190
|
+
const bounds = import_ModelBounds.ModelBounds.createLengthBounds(model);
|
|
191
|
+
if (entry === void 0) {
|
|
192
|
+
return (0, import_TlvArray.TlvArray)(import_TlvAny.TlvAny, bounds);
|
|
193
|
+
}
|
|
194
|
+
return (0, import_TlvArray.TlvArray)(TlvOfModel(model), bounds);
|
|
195
|
+
}
|
|
196
|
+
function generateString(base, model) {
|
|
197
|
+
const bounds = import_ModelBounds.ModelBounds.createLengthBounds(model);
|
|
198
|
+
if (bounds) {
|
|
199
|
+
return base.bound(bounds);
|
|
200
|
+
}
|
|
201
|
+
return base;
|
|
202
|
+
}
|
|
203
|
+
function generateInteger(model) {
|
|
204
|
+
const base = model.metabase;
|
|
205
|
+
if (base === void 0) {
|
|
206
|
+
throw new import_general.InternalError(`No metabase for model ${model.path} type ${model.type}`);
|
|
207
|
+
}
|
|
208
|
+
const tlv = NumberMapping[base.name];
|
|
209
|
+
if (tlv === void 0) {
|
|
210
|
+
throw new import_general.InternalError(`No mapping for model ${model.path} metabase ${base.name}`);
|
|
211
|
+
}
|
|
212
|
+
if ("bound" in tlv) {
|
|
213
|
+
const bounds = import_ModelBounds.ModelBounds.createNumberBounds(model);
|
|
214
|
+
if (bounds) {
|
|
215
|
+
return tlv.bound(bounds);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return tlv;
|
|
219
|
+
}
|
|
220
|
+
function primitiveFallbackOf(model) {
|
|
221
|
+
const primitive = model.metabase?.primitiveBase;
|
|
222
|
+
if (primitive === void 0) {
|
|
223
|
+
throw new import_general.ImplementationError(`Could not determine primitive base for ${model.path}`);
|
|
224
|
+
}
|
|
225
|
+
return TlvOfModel(primitive);
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=TlvOfModel.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/tlv/TlvOfModel.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/cjs/tlv/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./TlvNoArguments.js";
|
|
|
11
11
|
export * from "./TlvNullable.js";
|
|
12
12
|
export * from "./TlvNumber.js";
|
|
13
13
|
export * from "./TlvObject.js";
|
|
14
|
+
export * from "./TlvOfModel.js";
|
|
14
15
|
export * from "./TlvSchema.js";
|
|
15
16
|
export * from "./TlvString.js";
|
|
16
17
|
export * from "./TlvVoid.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tlv/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tlv/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
package/dist/cjs/tlv/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __reExport(tlv_exports, require("./TlvNoArguments.js"), module.exports);
|
|
|
23
23
|
__reExport(tlv_exports, require("./TlvNullable.js"), module.exports);
|
|
24
24
|
__reExport(tlv_exports, require("./TlvNumber.js"), module.exports);
|
|
25
25
|
__reExport(tlv_exports, require("./TlvObject.js"), module.exports);
|
|
26
|
+
__reExport(tlv_exports, require("./TlvOfModel.js"), module.exports);
|
|
26
27
|
__reExport(tlv_exports, require("./TlvSchema.js"), module.exports);
|
|
27
28
|
__reExport(tlv_exports, require("./TlvString.js"), module.exports);
|
|
28
29
|
__reExport(tlv_exports, require("./TlvVoid.js"), module.exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/tlv/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,wBANd;AAOA,wBAAc,0BAPd;AAQA,wBAAc,4BARd;AASA,wBAAc,0BATd;AAUA,wBAAc,gCAVd;AAWA,wBAAc,6BAXd;AAYA,wBAAc,2BAZd;AAaA,wBAAc,2BAbd;AAcA,wBAAc,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,wBANd;AAOA,wBAAc,0BAPd;AAQA,wBAAc,4BARd;AASA,wBAAc,0BATd;AAUA,wBAAc,gCAVd;AAWA,wBAAc,6BAXd;AAYA,wBAAc,2BAZd;AAaA,wBAAc,2BAbd;AAcA,wBAAc,4BAdd;AAeA,wBAAc,2BAfd;AAgBA,wBAAc,2BAhBd;AAiBA,wBAAc,yBAjBd;AAkBA,wBAAc,4BAlBd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Constraint, ValueModel } from "#model";
|
|
7
|
+
/**
|
|
8
|
+
* Helpers for generation of TLV schema from models.
|
|
9
|
+
*
|
|
10
|
+
* We must export these so long as we codegen TLV directly in TlvGenerator.ts.
|
|
11
|
+
*/
|
|
12
|
+
export declare namespace ModelBounds {
|
|
13
|
+
function createLengthBounds(model: ValueModel): {
|
|
14
|
+
[key: string]: number;
|
|
15
|
+
} | undefined;
|
|
16
|
+
function createNumberBounds(model: ValueModel): {
|
|
17
|
+
[key: string]: number;
|
|
18
|
+
} | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Bounds for numeric types.
|
|
21
|
+
*/
|
|
22
|
+
const NumericRanges: {
|
|
23
|
+
uint8: {
|
|
24
|
+
min: number;
|
|
25
|
+
max: number;
|
|
26
|
+
};
|
|
27
|
+
uint16: {
|
|
28
|
+
min: number;
|
|
29
|
+
max: number;
|
|
30
|
+
};
|
|
31
|
+
uint24: {
|
|
32
|
+
min: number;
|
|
33
|
+
max: number;
|
|
34
|
+
};
|
|
35
|
+
uint32: {
|
|
36
|
+
min: number;
|
|
37
|
+
max: number;
|
|
38
|
+
};
|
|
39
|
+
uint64: {
|
|
40
|
+
min: number;
|
|
41
|
+
max: bigint;
|
|
42
|
+
};
|
|
43
|
+
int8: {
|
|
44
|
+
min: number;
|
|
45
|
+
max: number;
|
|
46
|
+
};
|
|
47
|
+
int16: {
|
|
48
|
+
min: number;
|
|
49
|
+
max: number;
|
|
50
|
+
};
|
|
51
|
+
int32: {
|
|
52
|
+
min: number;
|
|
53
|
+
max: number;
|
|
54
|
+
};
|
|
55
|
+
int64: {
|
|
56
|
+
min: bigint;
|
|
57
|
+
max: bigint;
|
|
58
|
+
};
|
|
59
|
+
float32: {
|
|
60
|
+
min: number;
|
|
61
|
+
max: number;
|
|
62
|
+
};
|
|
63
|
+
percent: {
|
|
64
|
+
min: number;
|
|
65
|
+
max: number;
|
|
66
|
+
};
|
|
67
|
+
percent100ths: {
|
|
68
|
+
min: number;
|
|
69
|
+
max: number;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export declare function extractApplicableConstraint(model: ValueModel): Constraint;
|
|
74
|
+
//# sourceMappingURL=ModelBounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelBounds.d.ts","sourceRoot":"","sources":["../../../src/common/ModelBounds.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,OAAO,EAAE,UAAU,EAAc,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5D;;;;GAIG;AACH,yBAAiB,WAAW,CAAC;IACzB,SAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU;;kBASnD;IAED,SAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU;;kBASnD;IAED;;OAEG;IACI,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAazB,CAAC;CACL;AA6BD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,cAiB5D"}
|