@zwave-js/nvmedit 14.0.0-beta.4 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js +105 -58
- package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/ApplicationDataFile.js +69 -22
- package/build/cjs/lib/nvm3/files/ApplicationDataFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/ApplicationNameFile.js +71 -24
- package/build/cjs/lib/nvm3/files/ApplicationNameFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js +140 -93
- package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js +92 -45
- package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/ControllerInfoFile.js +176 -129
- package/build/cjs/lib/nvm3/files/ControllerInfoFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/NVMFile.d.ts +3 -3
- package/build/cjs/lib/nvm3/files/NVMFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/NodeInfoFiles.js +186 -111
- package/build/cjs/lib/nvm3/files/NodeInfoFiles.js.map +2 -2
- package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js +243 -84
- package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +2 -2
- package/build/cjs/lib/nvm3/files/RouteCacheFiles.js +143 -82
- package/build/cjs/lib/nvm3/files/RouteCacheFiles.js.map +2 -2
- package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js +134 -73
- package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/VersionFiles.js +98 -23
- package/build/cjs/lib/nvm3/files/VersionFiles.js.map +2 -2
- package/build/esm/lib/nvm3/files/ApplicationCCsFile.js +106 -66
- package/build/esm/lib/nvm3/files/ApplicationCCsFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationDataFile.js +63 -23
- package/build/esm/lib/nvm3/files/ApplicationDataFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationNameFile.js +66 -26
- package/build/esm/lib/nvm3/files/ApplicationNameFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js +137 -97
- package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationTypeFile.js +87 -47
- package/build/esm/lib/nvm3/files/ApplicationTypeFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ControllerInfoFile.js +172 -132
- package/build/esm/lib/nvm3/files/ControllerInfoFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/NVMFile.d.ts +3 -3
- package/build/esm/lib/nvm3/files/NVMFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/NodeInfoFiles.js +191 -127
- package/build/esm/lib/nvm3/files/NodeInfoFiles.js.map +1 -1
- package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js +221 -85
- package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
- package/build/esm/lib/nvm3/files/RouteCacheFiles.js +143 -91
- package/build/esm/lib/nvm3/files/RouteCacheFiles.js.map +1 -1
- package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js +126 -74
- package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/VersionFiles.js +87 -23
- package/build/esm/lib/nvm3/files/VersionFiles.js.map +1 -1
- package/package.json +3 -3
|
@@ -36,108 +36,155 @@ var import_safe = require("@zwave-js/core/safe");
|
|
|
36
36
|
var import_safe2 = require("@zwave-js/shared/safe");
|
|
37
37
|
var import_semver = __toESM(require("semver"), 1);
|
|
38
38
|
var import_NVMFile = require("./NVMFile.js");
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
40
|
+
function accept(f) {
|
|
41
|
+
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
42
|
+
return f;
|
|
43
|
+
}
|
|
44
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
45
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
46
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
47
|
+
var _, done = false;
|
|
48
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
49
|
+
var context = {};
|
|
50
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
51
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
52
|
+
context.addInitializer = function(f) {
|
|
53
|
+
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
|
|
54
|
+
extraInitializers.push(accept(f || null));
|
|
55
|
+
};
|
|
56
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
57
|
+
if (kind === "accessor") {
|
|
58
|
+
if (result === void 0) continue;
|
|
59
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
60
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
61
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
62
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
63
|
+
} else if (_ = accept(result)) {
|
|
64
|
+
if (kind === "field") initializers.unshift(_);
|
|
65
|
+
else descriptor[key] = _;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
69
|
+
done = true;
|
|
70
|
+
};
|
|
71
|
+
var __runInitializers = function(thisArg, initializers, value) {
|
|
72
|
+
var useValue = arguments.length > 2;
|
|
73
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
74
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
75
|
+
}
|
|
76
|
+
return useValue ? value : void 0;
|
|
44
77
|
};
|
|
45
78
|
const ApplicationRFConfigFileID = 104;
|
|
46
|
-
let ApplicationRFConfigFile =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
79
|
+
let ApplicationRFConfigFile = (() => {
|
|
80
|
+
let _classDecorators = [(0, import_NVMFile.nvmFileID)(ApplicationRFConfigFileID), (0, import_NVMFile.nvmSection)("application")];
|
|
81
|
+
let _classDescriptor;
|
|
82
|
+
let _classExtraInitializers = [];
|
|
83
|
+
let _classThis;
|
|
84
|
+
let _classSuper = import_NVMFile.NVMFile;
|
|
85
|
+
var ApplicationRFConfigFile2 = class extends _classSuper {
|
|
86
|
+
static {
|
|
87
|
+
_classThis = this;
|
|
88
|
+
}
|
|
89
|
+
static {
|
|
90
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
91
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
92
|
+
ApplicationRFConfigFile2 = _classThis = _classDescriptor.value;
|
|
93
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
94
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
95
|
+
}
|
|
96
|
+
constructor(options) {
|
|
97
|
+
super(options);
|
|
98
|
+
if ((0, import_NVMFile.gotDeserializationOptions)(options)) {
|
|
99
|
+
if (this.payload.length === 3 || this.payload.length === 6) {
|
|
100
|
+
this.rfRegion = this.payload[0];
|
|
101
|
+
this.txPower = this.payload.readInt8(1) / 10;
|
|
102
|
+
this.measured0dBm = this.payload.readInt8(2) / 10;
|
|
103
|
+
if (this.payload.length === 6) {
|
|
104
|
+
this.enablePTI = this.payload[3];
|
|
105
|
+
this.maxTXPower = this.payload.readInt16LE(4) / 10;
|
|
106
|
+
}
|
|
107
|
+
} else if (this.payload.length === 8) {
|
|
108
|
+
this.rfRegion = this.payload[0];
|
|
109
|
+
this.txPower = this.payload.readInt16LE(1) / 10;
|
|
110
|
+
this.measured0dBm = this.payload.readInt16LE(3) / 10;
|
|
111
|
+
this.enablePTI = this.payload[5];
|
|
112
|
+
this.maxTXPower = this.payload.readInt16LE(6) / 10;
|
|
113
|
+
} else if (this.payload.length === 9) {
|
|
114
|
+
this.rfRegion = this.payload[0];
|
|
115
|
+
this.txPower = this.payload.readInt16LE(1) / 10;
|
|
116
|
+
this.measured0dBm = this.payload.readInt16LE(3) / 10;
|
|
117
|
+
this.enablePTI = this.payload[5];
|
|
118
|
+
this.maxTXPower = this.payload.readInt16LE(6) / 10;
|
|
119
|
+
this.nodeIdType = this.payload[8];
|
|
120
|
+
} else {
|
|
121
|
+
throw new import_safe.ZWaveError(`ApplicationRFConfigFile has unsupported length ${this.payload.length}`, import_safe.ZWaveErrorCodes.NVM_NotSupported);
|
|
57
122
|
}
|
|
58
|
-
} else if (this.payload.length === 8) {
|
|
59
|
-
this.rfRegion = this.payload[0];
|
|
60
|
-
this.txPower = this.payload.readInt16LE(1) / 10;
|
|
61
|
-
this.measured0dBm = this.payload.readInt16LE(3) / 10;
|
|
62
|
-
this.enablePTI = this.payload[5];
|
|
63
|
-
this.maxTXPower = this.payload.readInt16LE(6) / 10;
|
|
64
|
-
} else if (this.payload.length === 9) {
|
|
65
|
-
this.rfRegion = this.payload[0];
|
|
66
|
-
this.txPower = this.payload.readInt16LE(1) / 10;
|
|
67
|
-
this.measured0dBm = this.payload.readInt16LE(3) / 10;
|
|
68
|
-
this.enablePTI = this.payload[5];
|
|
69
|
-
this.maxTXPower = this.payload.readInt16LE(6) / 10;
|
|
70
|
-
this.nodeIdType = this.payload[8];
|
|
71
123
|
} else {
|
|
72
|
-
|
|
124
|
+
this.rfRegion = options.rfRegion;
|
|
125
|
+
this.txPower = options.txPower;
|
|
126
|
+
this.measured0dBm = options.measured0dBm;
|
|
127
|
+
this.enablePTI = options.enablePTI;
|
|
128
|
+
this.maxTXPower = options.maxTXPower;
|
|
129
|
+
this.nodeIdType = options.nodeIdType;
|
|
73
130
|
}
|
|
74
|
-
} else {
|
|
75
|
-
this.rfRegion = options.rfRegion;
|
|
76
|
-
this.txPower = options.txPower;
|
|
77
|
-
this.measured0dBm = options.measured0dBm;
|
|
78
|
-
this.enablePTI = options.enablePTI;
|
|
79
|
-
this.maxTXPower = options.maxTXPower;
|
|
80
|
-
this.nodeIdType = options.nodeIdType;
|
|
81
131
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
132
|
+
rfRegion;
|
|
133
|
+
txPower;
|
|
134
|
+
measured0dBm;
|
|
135
|
+
enablePTI;
|
|
136
|
+
maxTXPower;
|
|
137
|
+
nodeIdType;
|
|
138
|
+
serialize() {
|
|
139
|
+
if (import_semver.default.lt(this.fileVersion, "7.18.1")) {
|
|
140
|
+
this.payload = new import_safe2.Bytes(import_semver.default.gte(this.fileVersion, "7.15.3") ? 6 : 3).fill(0);
|
|
141
|
+
this.payload[0] = this.rfRegion;
|
|
142
|
+
this.payload.writeIntLE(this.txPower * 10, 1, 1);
|
|
143
|
+
this.payload.writeIntLE(this.measured0dBm * 10, 2, 1);
|
|
144
|
+
if (import_semver.default.gte(this.fileVersion, "7.15.3")) {
|
|
145
|
+
this.payload[3] = this.enablePTI ?? 0;
|
|
146
|
+
this.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 4);
|
|
147
|
+
}
|
|
148
|
+
} else if (import_semver.default.lt(this.fileVersion, "7.21.0")) {
|
|
149
|
+
this.payload = new import_safe2.Bytes(8).fill(0);
|
|
150
|
+
this.payload[0] = this.rfRegion;
|
|
151
|
+
this.payload.writeInt16LE(this.txPower * 10, 1);
|
|
152
|
+
this.payload.writeInt16LE(this.measured0dBm * 10, 3);
|
|
153
|
+
this.payload[5] = this.enablePTI ?? 0;
|
|
154
|
+
this.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 6);
|
|
155
|
+
} else {
|
|
156
|
+
this.payload = new import_safe2.Bytes(9).fill(0);
|
|
157
|
+
this.payload[0] = this.rfRegion;
|
|
158
|
+
this.payload.writeInt16LE(this.txPower * 10, 1);
|
|
159
|
+
this.payload.writeInt16LE(this.measured0dBm * 10, 3);
|
|
160
|
+
this.payload[5] = this.enablePTI ?? 0;
|
|
161
|
+
this.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 6);
|
|
162
|
+
this.payload[8] = this.nodeIdType ?? import_safe.NodeIDType.Short;
|
|
98
163
|
}
|
|
99
|
-
|
|
100
|
-
this.payload = new import_safe2.Bytes(8).fill(0);
|
|
101
|
-
this.payload[0] = this.rfRegion;
|
|
102
|
-
this.payload.writeInt16LE(this.txPower * 10, 1);
|
|
103
|
-
this.payload.writeInt16LE(this.measured0dBm * 10, 3);
|
|
104
|
-
this.payload[5] = this.enablePTI ?? 0;
|
|
105
|
-
this.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 6);
|
|
106
|
-
} else {
|
|
107
|
-
this.payload = new import_safe2.Bytes(9).fill(0);
|
|
108
|
-
this.payload[0] = this.rfRegion;
|
|
109
|
-
this.payload.writeInt16LE(this.txPower * 10, 1);
|
|
110
|
-
this.payload.writeInt16LE(this.measured0dBm * 10, 3);
|
|
111
|
-
this.payload[5] = this.enablePTI ?? 0;
|
|
112
|
-
this.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 6);
|
|
113
|
-
this.payload[8] = this.nodeIdType ?? import_safe.NodeIDType.Short;
|
|
114
|
-
}
|
|
115
|
-
return super.serialize();
|
|
116
|
-
}
|
|
117
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
118
|
-
toJSON() {
|
|
119
|
-
const ret = {
|
|
120
|
-
...super.toJSON(),
|
|
121
|
-
"RF Region": (0, import_safe2.getEnumMemberName)(import_safe.RFRegion, this.rfRegion),
|
|
122
|
-
"TX Power": `${this.txPower.toFixed(1)} dBm`,
|
|
123
|
-
"Power @ 0dBm": `${this.measured0dBm.toFixed(1)} dBm`
|
|
124
|
-
};
|
|
125
|
-
if (this.enablePTI != void 0) {
|
|
126
|
-
ret["enable PTI"] = this.enablePTI;
|
|
127
|
-
}
|
|
128
|
-
if (this.maxTXPower != void 0) {
|
|
129
|
-
ret["max TX power"] = `${this.maxTXPower.toFixed(1)} dBm`;
|
|
164
|
+
return super.serialize();
|
|
130
165
|
}
|
|
131
|
-
|
|
132
|
-
|
|
166
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
167
|
+
toJSON() {
|
|
168
|
+
const ret = {
|
|
169
|
+
...super.toJSON(),
|
|
170
|
+
"RF Region": (0, import_safe2.getEnumMemberName)(import_safe.RFRegion, this.rfRegion),
|
|
171
|
+
"TX Power": `${this.txPower.toFixed(1)} dBm`,
|
|
172
|
+
"Power @ 0dBm": `${this.measured0dBm.toFixed(1)} dBm`
|
|
173
|
+
};
|
|
174
|
+
if (this.enablePTI != void 0) {
|
|
175
|
+
ret["enable PTI"] = this.enablePTI;
|
|
176
|
+
}
|
|
177
|
+
if (this.maxTXPower != void 0) {
|
|
178
|
+
ret["max TX power"] = `${this.maxTXPower.toFixed(1)} dBm`;
|
|
179
|
+
}
|
|
180
|
+
if (this.nodeIdType != void 0) {
|
|
181
|
+
ret["node ID type"] = (0, import_safe2.getEnumMemberName)(import_safe.NodeIDType, this.nodeIdType);
|
|
182
|
+
}
|
|
183
|
+
return ret;
|
|
133
184
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
};
|
|
137
|
-
ApplicationRFConfigFile = __decorate([
|
|
138
|
-
(0, import_NVMFile.nvmFileID)(ApplicationRFConfigFileID),
|
|
139
|
-
(0, import_NVMFile.nvmSection)("application")
|
|
140
|
-
], ApplicationRFConfigFile);
|
|
185
|
+
};
|
|
186
|
+
return ApplicationRFConfigFile2 = _classThis;
|
|
187
|
+
})();
|
|
141
188
|
// Annotate the CommonJS export names for ESM import in node:
|
|
142
189
|
0 && (module.exports = {
|
|
143
190
|
ApplicationRFConfigFile,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/nvm3/files/ApplicationRFConfigFile.ts"],
|
|
4
4
|
"sourcesContent": ["import {\n\tNodeIDType,\n\tRFRegion,\n\tZWaveError,\n\tZWaveErrorCodes,\n} from \"@zwave-js/core/safe\";\nimport {\n\ttype AllOrNone,\n\tBytes,\n\tgetEnumMemberName,\n} from \"@zwave-js/shared/safe\";\nimport semver from \"semver\";\nimport type { NVM3Object } from \"../object.js\";\nimport {\n\tNVMFile,\n\ttype NVMFileCreationOptions,\n\ttype NVMFileDeserializationOptions,\n\tgotDeserializationOptions,\n\tnvmFileID,\n\tnvmSection,\n} from \"./NVMFile.js\";\n\nexport type ApplicationRFConfigFileOptions =\n\t& NVMFileCreationOptions\n\t& {\n\t\trfRegion: RFRegion;\n\t\ttxPower: number;\n\t\tmeasured0dBm: number;\n\t}\n\t& AllOrNone<{\n\t\tenablePTI?: number;\n\t\tmaxTXPower?: number;\n\t}>\n\t& {\n\t\tnodeIdType?: number;\n\t};\n\nexport const ApplicationRFConfigFileID = 104;\n\n@nvmFileID(ApplicationRFConfigFileID)\n@nvmSection(\"application\")\nexport class ApplicationRFConfigFile extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | ApplicationRFConfigFileOptions,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tif (this.payload.length === 3 || this.payload.length === 6) {\n\t\t\t\tthis.rfRegion = this.payload[0];\n\t\t\t\tthis.txPower = this.payload.readInt8(1) / 10;\n\t\t\t\tthis.measured0dBm = this.payload.readInt8(2) / 10;\n\t\t\t\tif (this.payload.length === 6) {\n\t\t\t\t\tthis.enablePTI = this.payload[3];\n\t\t\t\t\tthis.maxTXPower = this.payload.readInt16LE(4) / 10;\n\t\t\t\t}\n\t\t\t} else if (this.payload.length === 8) {\n\t\t\t\tthis.rfRegion = this.payload[0];\n\t\t\t\tthis.txPower = this.payload.readInt16LE(1) / 10;\n\t\t\t\tthis.measured0dBm = this.payload.readInt16LE(3) / 10;\n\t\t\t\tthis.enablePTI = this.payload[5];\n\t\t\t\tthis.maxTXPower = this.payload.readInt16LE(6) / 10;\n\t\t\t} else if (this.payload.length === 9) {\n\t\t\t\tthis.rfRegion = this.payload[0];\n\t\t\t\tthis.txPower = this.payload.readInt16LE(1) / 10;\n\t\t\t\tthis.measured0dBm = this.payload.readInt16LE(3) / 10;\n\t\t\t\tthis.enablePTI = this.payload[5];\n\t\t\t\tthis.maxTXPower = this.payload.readInt16LE(6) / 10;\n\t\t\t\tthis.nodeIdType = this.payload[8];\n\t\t\t} else {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`ApplicationRFConfigFile has unsupported length ${this.payload.length}`,\n\t\t\t\t\tZWaveErrorCodes.NVM_NotSupported,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.rfRegion = options.rfRegion;\n\t\t\tthis.txPower = options.txPower;\n\t\t\tthis.measured0dBm = options.measured0dBm;\n\t\t\tthis.enablePTI = options.enablePTI;\n\t\t\tthis.maxTXPower = options.maxTXPower;\n\t\t\tthis.nodeIdType = options.nodeIdType;\n\t\t}\n\t}\n\n\tpublic rfRegion: RFRegion;\n\tpublic txPower: number;\n\tpublic measured0dBm: number;\n\tpublic enablePTI?: number;\n\tpublic maxTXPower?: number;\n\tpublic nodeIdType?: NodeIDType;\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tif (semver.lt(this.fileVersion, \"7.18.1\")) {\n\t\t\tthis.payload = new Bytes(\n\t\t\t\tsemver.gte(this.fileVersion, \"7.15.3\") ? 6 : 3,\n\t\t\t).fill(0);\n\t\t\tthis.payload[0] = this.rfRegion;\n\t\t\tthis.payload.writeIntLE(this.txPower * 10, 1, 1);\n\t\t\tthis.payload.writeIntLE(this.measured0dBm * 10, 2, 1);\n\t\t\tif (semver.gte(this.fileVersion, \"7.15.3\")) {\n\t\t\t\tthis.payload[3] = this.enablePTI ?? 0;\n\t\t\t\tthis.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 4);\n\t\t\t}\n\t\t} else if (semver.lt(this.fileVersion, \"7.21.0\")) {\n\t\t\tthis.payload = new Bytes(8).fill(0);\n\t\t\tthis.payload[0] = this.rfRegion;\n\t\t\tthis.payload.writeInt16LE(this.txPower * 10, 1);\n\t\t\tthis.payload.writeInt16LE(this.measured0dBm * 10, 3);\n\t\t\tthis.payload[5] = this.enablePTI ?? 0;\n\t\t\tthis.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 6);\n\t\t} else {\n\t\t\tthis.payload = new Bytes(9).fill(0);\n\t\t\tthis.payload[0] = this.rfRegion;\n\t\t\tthis.payload.writeInt16LE(this.txPower * 10, 1);\n\t\t\tthis.payload.writeInt16LE(this.measured0dBm * 10, 3);\n\t\t\tthis.payload[5] = this.enablePTI ?? 0;\n\t\t\tthis.payload.writeInt16LE((this.maxTXPower ?? 0) * 10, 6);\n\t\t\tthis.payload[8] = this.nodeIdType ?? NodeIDType.Short;\n\t\t}\n\t\treturn super.serialize();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic toJSON() {\n\t\tconst ret: Record<string, any> = {\n\t\t\t...super.toJSON(),\n\t\t\t\"RF Region\": getEnumMemberName(RFRegion, this.rfRegion),\n\t\t\t\"TX Power\": `${this.txPower.toFixed(1)} dBm`,\n\t\t\t\"Power @ 0dBm\": `${this.measured0dBm.toFixed(1)} dBm`,\n\t\t};\n\t\tif (this.enablePTI != undefined) {\n\t\t\tret[\"enable PTI\"] = this.enablePTI;\n\t\t}\n\t\tif (this.maxTXPower != undefined) {\n\t\t\tret[\"max TX power\"] = `${this.maxTXPower.toFixed(1)} dBm`;\n\t\t}\n\t\tif (this.nodeIdType != undefined) {\n\t\t\tret[\"node ID type\"] = getEnumMemberName(\n\t\t\t\tNodeIDType,\n\t\t\t\tthis.nodeIdType,\n\t\t\t);\n\t\t}\n\t\treturn ret;\n\t}\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAKO;AACP,IAAAA,eAIO;AACP,oBAAmB;AAEnB,qBAOO
|
|
6
|
-
"names": ["import_safe", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_safe", "semver"]
|
|
7
7
|
}
|
|
@@ -24,55 +24,102 @@ __export(ApplicationTypeFile_exports, {
|
|
|
24
24
|
module.exports = __toCommonJS(ApplicationTypeFile_exports);
|
|
25
25
|
var import_safe = require("@zwave-js/shared/safe");
|
|
26
26
|
var import_NVMFile = require("./NVMFile.js");
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
32
|
-
};
|
|
33
|
-
const ApplicationTypeFileID = 102;
|
|
34
|
-
let ApplicationTypeFile = class ApplicationTypeFile2 extends import_NVMFile.NVMFile {
|
|
35
|
-
constructor(options) {
|
|
36
|
-
super(options);
|
|
37
|
-
if ((0, import_NVMFile.gotDeserializationOptions)(options)) {
|
|
38
|
-
this.isListening = !!(this.payload[0] & 1);
|
|
39
|
-
this.optionalFunctionality = !!(this.payload[0] & 2);
|
|
40
|
-
this.genericDeviceClass = this.payload[1];
|
|
41
|
-
this.specificDeviceClass = this.payload[2];
|
|
42
|
-
} else {
|
|
43
|
-
this.isListening = options.isListening;
|
|
44
|
-
this.optionalFunctionality = options.optionalFunctionality;
|
|
45
|
-
this.genericDeviceClass = options.genericDeviceClass;
|
|
46
|
-
this.specificDeviceClass = options.specificDeviceClass;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
isListening;
|
|
50
|
-
optionalFunctionality;
|
|
51
|
-
genericDeviceClass;
|
|
52
|
-
specificDeviceClass;
|
|
53
|
-
serialize() {
|
|
54
|
-
this.payload = import_safe.Bytes.from([
|
|
55
|
-
(this.isListening ? 1 : 0) | (this.optionalFunctionality ? 2 : 0),
|
|
56
|
-
this.genericDeviceClass,
|
|
57
|
-
this.specificDeviceClass
|
|
58
|
-
]);
|
|
59
|
-
return super.serialize();
|
|
27
|
+
var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
28
|
+
function accept(f) {
|
|
29
|
+
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
30
|
+
return f;
|
|
60
31
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
32
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
33
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
34
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
35
|
+
var _, done = false;
|
|
36
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
37
|
+
var context = {};
|
|
38
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
39
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
40
|
+
context.addInitializer = function(f) {
|
|
41
|
+
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
|
|
42
|
+
extraInitializers.push(accept(f || null));
|
|
69
43
|
};
|
|
44
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
45
|
+
if (kind === "accessor") {
|
|
46
|
+
if (result === void 0) continue;
|
|
47
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
48
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
49
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
50
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
51
|
+
} else if (_ = accept(result)) {
|
|
52
|
+
if (kind === "field") initializers.unshift(_);
|
|
53
|
+
else descriptor[key] = _;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
57
|
+
done = true;
|
|
58
|
+
};
|
|
59
|
+
var __runInitializers = function(thisArg, initializers, value) {
|
|
60
|
+
var useValue = arguments.length > 2;
|
|
61
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
62
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
70
63
|
}
|
|
64
|
+
return useValue ? value : void 0;
|
|
71
65
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
(0, import_NVMFile.nvmSection)("application")
|
|
75
|
-
|
|
66
|
+
const ApplicationTypeFileID = 102;
|
|
67
|
+
let ApplicationTypeFile = (() => {
|
|
68
|
+
let _classDecorators = [(0, import_NVMFile.nvmFileID)(ApplicationTypeFileID), (0, import_NVMFile.nvmSection)("application")];
|
|
69
|
+
let _classDescriptor;
|
|
70
|
+
let _classExtraInitializers = [];
|
|
71
|
+
let _classThis;
|
|
72
|
+
let _classSuper = import_NVMFile.NVMFile;
|
|
73
|
+
var ApplicationTypeFile2 = class extends _classSuper {
|
|
74
|
+
static {
|
|
75
|
+
_classThis = this;
|
|
76
|
+
}
|
|
77
|
+
static {
|
|
78
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
79
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
80
|
+
ApplicationTypeFile2 = _classThis = _classDescriptor.value;
|
|
81
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
82
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
83
|
+
}
|
|
84
|
+
constructor(options) {
|
|
85
|
+
super(options);
|
|
86
|
+
if ((0, import_NVMFile.gotDeserializationOptions)(options)) {
|
|
87
|
+
this.isListening = !!(this.payload[0] & 1);
|
|
88
|
+
this.optionalFunctionality = !!(this.payload[0] & 2);
|
|
89
|
+
this.genericDeviceClass = this.payload[1];
|
|
90
|
+
this.specificDeviceClass = this.payload[2];
|
|
91
|
+
} else {
|
|
92
|
+
this.isListening = options.isListening;
|
|
93
|
+
this.optionalFunctionality = options.optionalFunctionality;
|
|
94
|
+
this.genericDeviceClass = options.genericDeviceClass;
|
|
95
|
+
this.specificDeviceClass = options.specificDeviceClass;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
isListening;
|
|
99
|
+
optionalFunctionality;
|
|
100
|
+
genericDeviceClass;
|
|
101
|
+
specificDeviceClass;
|
|
102
|
+
serialize() {
|
|
103
|
+
this.payload = import_safe.Bytes.from([
|
|
104
|
+
(this.isListening ? 1 : 0) | (this.optionalFunctionality ? 2 : 0),
|
|
105
|
+
this.genericDeviceClass,
|
|
106
|
+
this.specificDeviceClass
|
|
107
|
+
]);
|
|
108
|
+
return super.serialize();
|
|
109
|
+
}
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
111
|
+
toJSON() {
|
|
112
|
+
return {
|
|
113
|
+
...super.toJSON(),
|
|
114
|
+
listening: this.isListening,
|
|
115
|
+
"opt. functionality": this.optionalFunctionality,
|
|
116
|
+
genericDeviceClass: this.genericDeviceClass,
|
|
117
|
+
specificDeviceClass: this.specificDeviceClass
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
return ApplicationTypeFile2 = _classThis;
|
|
122
|
+
})();
|
|
76
123
|
// Annotate the CommonJS export names for ESM import in node:
|
|
77
124
|
0 && (module.exports = {
|
|
78
125
|
ApplicationTypeFile,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/nvm3/files/ApplicationTypeFile.ts"],
|
|
4
4
|
"sourcesContent": ["import { Bytes } from \"@zwave-js/shared/safe\";\nimport type { NVM3Object } from \"../object.js\";\nimport {\n\tNVMFile,\n\ttype NVMFileCreationOptions,\n\ttype NVMFileDeserializationOptions,\n\tgotDeserializationOptions,\n\tnvmFileID,\n\tnvmSection,\n} from \"./NVMFile.js\";\n\nexport interface ApplicationTypeFileOptions extends NVMFileCreationOptions {\n\tisListening: boolean;\n\toptionalFunctionality: boolean;\n\tgenericDeviceClass: number;\n\tspecificDeviceClass: number;\n}\n\nexport const ApplicationTypeFileID = 102;\n\n@nvmFileID(ApplicationTypeFileID)\n@nvmSection(\"application\")\nexport class ApplicationTypeFile extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | ApplicationTypeFileOptions,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.isListening = !!(this.payload[0] & 0b1);\n\t\t\tthis.optionalFunctionality = !!(this.payload[0] & 0b10);\n\t\t\tthis.genericDeviceClass = this.payload[1];\n\t\t\tthis.specificDeviceClass = this.payload[2];\n\t\t} else {\n\t\t\tthis.isListening = options.isListening;\n\t\t\tthis.optionalFunctionality = options.optionalFunctionality;\n\t\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t\t\tthis.specificDeviceClass = options.specificDeviceClass;\n\t\t}\n\t}\n\n\tpublic isListening: boolean;\n\tpublic optionalFunctionality: boolean;\n\tpublic genericDeviceClass: number;\n\tpublic specificDeviceClass: number;\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tthis.payload = Bytes.from([\n\t\t\t(this.isListening ? 0b1 : 0)\n\t\t\t| (this.optionalFunctionality ? 0b10 : 0),\n\t\t\tthis.genericDeviceClass,\n\t\t\tthis.specificDeviceClass,\n\t\t]);\n\t\treturn super.serialize();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic toJSON() {\n\t\treturn {\n\t\t\t...super.toJSON(),\n\t\t\tlistening: this.isListening,\n\t\t\t\"opt. functionality\": this.optionalFunctionality,\n\t\t\tgenericDeviceClass: this.genericDeviceClass,\n\t\t\tspecificDeviceClass: this.specificDeviceClass,\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAsB;AAEtB,qBAOO
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAsB;AAEtB,qBAOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wBAAwB;IAIxB,uBAAmB,MAAA;8BAF/B,0BAAU,qBAAqB,OAC/B,2BAAW,aAAa,CAAC;;;;oBACe;2CAAA,YAAO;;;;;;AAAhD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAmE;AAEnE,YAAM,OAAO;AACb,cAAI,0CAA0B,OAAO,GAAG;AACvC,aAAK,cAAc,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI;AACxC,aAAK,wBAAwB,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI;AAClD,aAAK,qBAAqB,KAAK,QAAQ,CAAC;AACxC,aAAK,sBAAsB,KAAK,QAAQ,CAAC;MAC1C,OAAO;AACN,aAAK,cAAc,QAAQ;AAC3B,aAAK,wBAAwB,QAAQ;AACrC,aAAK,qBAAqB,QAAQ;AAClC,aAAK,sBAAsB,QAAQ;MACpC;IACD;IAEO;IACA;IACA;IACA;IAEA,YAAS;AACf,WAAK,UAAU,kBAAM,KAAK;SACxB,KAAK,cAAc,IAAM,MACvB,KAAK,wBAAwB,IAAO;QACvC,KAAK;QACL,KAAK;OACL;AACD,aAAO,MAAM,UAAS;IACvB;;IAGO,SAAM;AACZ,aAAO;QACN,GAAG,MAAM,OAAM;QACf,WAAW,KAAK;QAChB,sBAAsB,KAAK;QAC3B,oBAAoB,KAAK;QACzB,qBAAqB,KAAK;;IAE5B;;;;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|