@zwave-js/nvmedit 14.3.3 → 14.3.4
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/convert.js +36 -20
- package/build/cjs/convert.js.map +1 -1
- package/build/cjs/lib/NVM3.js +15 -7
- package/build/cjs/lib/NVM3.js.map +1 -1
- package/build/cjs/lib/NVM500.js +4 -0
- package/build/cjs/lib/NVM500.js.map +1 -1
- package/build/cjs/lib/common/routeCache.js +4 -0
- package/build/cjs/lib/common/routeCache.js.map +1 -1
- package/build/cjs/lib/common/sucUpdateEntry.js +3 -0
- package/build/cjs/lib/common/sucUpdateEntry.js.map +1 -1
- package/build/cjs/lib/common/utils.js +8 -0
- package/build/cjs/lib/common/utils.js.map +1 -1
- package/build/cjs/lib/io/BufferedNVMReader.js +4 -0
- package/build/cjs/lib/io/BufferedNVMReader.js.map +1 -1
- package/build/cjs/lib/io/NVMFileIO.js +4 -0
- package/build/cjs/lib/io/NVMFileIO.js.map +1 -1
- package/build/cjs/lib/io/NVMMemoryIO.js +4 -0
- package/build/cjs/lib/io/NVMMemoryIO.js.map +1 -1
- package/build/cjs/lib/nvm3/adapter.js +13 -8
- package/build/cjs/lib/nvm3/adapter.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js +5 -0
- package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationDataFile.js +5 -0
- package/build/cjs/lib/nvm3/files/ApplicationDataFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationNameFile.js +5 -0
- package/build/cjs/lib/nvm3/files/ApplicationNameFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js +5 -0
- package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js +5 -0
- package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ControllerInfoFile.js +5 -0
- package/build/cjs/lib/nvm3/files/ControllerInfoFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/NVMFile.js +10 -0
- package/build/cjs/lib/nvm3/files/NVMFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/NodeInfoFiles.js +18 -0
- package/build/cjs/lib/nvm3/files/NodeInfoFiles.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js +32 -0
- package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
- package/build/cjs/lib/nvm3/files/RouteCacheFiles.js +10 -0
- package/build/cjs/lib/nvm3/files/RouteCacheFiles.js.map +1 -1
- package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js +9 -0
- package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/VersionFiles.js +14 -0
- package/build/cjs/lib/nvm3/files/VersionFiles.js.map +1 -1
- package/build/cjs/lib/nvm3/object.js +8 -0
- package/build/cjs/lib/nvm3/object.js.map +1 -1
- package/build/cjs/lib/nvm3/page.js +4 -0
- package/build/cjs/lib/nvm3/page.js.map +1 -1
- package/build/cjs/lib/nvm3/utils.js +8 -0
- package/build/cjs/lib/nvm3/utils.js.map +1 -1
- package/build/cjs/lib/nvm500/EntryParsers.js +7 -0
- package/build/cjs/lib/nvm500/EntryParsers.js.map +1 -1
- package/build/cjs/lib/nvm500/adapter.js +4 -0
- package/build/cjs/lib/nvm500/adapter.js.map +1 -1
- package/build/cjs/lib/nvm500/shared.js +2 -0
- package/build/cjs/lib/nvm500/shared.js.map +1 -1
- package/package.json +4 -4
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -39,6 +40,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
39
40
|
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
40
41
|
return f;
|
|
41
42
|
}
|
|
43
|
+
__name(accept, "accept");
|
|
42
44
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
43
45
|
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
44
46
|
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
@@ -94,6 +96,7 @@ function parseNodeInfo(nodeId, buffer, offset) {
|
|
|
94
96
|
sucUpdateIndex
|
|
95
97
|
};
|
|
96
98
|
}
|
|
99
|
+
__name(parseNodeInfo, "parseNodeInfo");
|
|
97
100
|
function encodeNodeInfo(nodeInfo) {
|
|
98
101
|
const ret = new import_safe2.Bytes(NODEINFO_SIZE);
|
|
99
102
|
const hasSpecificDeviceClass = nodeInfo.specificDeviceClass != null;
|
|
@@ -119,6 +122,7 @@ function encodeNodeInfo(nodeInfo) {
|
|
|
119
122
|
ret[5 + import_safe.NUM_NODEMASK_BYTES] = nodeInfo.sucUpdateIndex;
|
|
120
123
|
return ret;
|
|
121
124
|
}
|
|
125
|
+
__name(encodeNodeInfo, "encodeNodeInfo");
|
|
122
126
|
function parseLRNodeInfo(nodeId, buffer, offset) {
|
|
123
127
|
const capability = buffer[offset];
|
|
124
128
|
const isRouting = !!(capability & 1);
|
|
@@ -156,6 +160,7 @@ function parseLRNodeInfo(nodeId, buffer, offset) {
|
|
|
156
160
|
specificDeviceClass: hasSpecificDeviceClass ? buffer[offset + 2] : null
|
|
157
161
|
};
|
|
158
162
|
}
|
|
163
|
+
__name(parseLRNodeInfo, "parseLRNodeInfo");
|
|
159
164
|
function encodeLRNodeInfo(nodeInfo) {
|
|
160
165
|
const ret = new import_safe2.Bytes(LR_NODEINFO_SIZE);
|
|
161
166
|
let capability = 0;
|
|
@@ -179,10 +184,12 @@ function encodeLRNodeInfo(nodeInfo) {
|
|
|
179
184
|
ret[2] = nodeInfo.specificDeviceClass ?? 0;
|
|
180
185
|
return ret;
|
|
181
186
|
}
|
|
187
|
+
__name(encodeLRNodeInfo, "encodeLRNodeInfo");
|
|
182
188
|
const NodeInfoFileV0IDBase = 327936;
|
|
183
189
|
function nodeIdToNodeInfoFileIDV0(nodeId) {
|
|
184
190
|
return NodeInfoFileV0IDBase + nodeId - 1;
|
|
185
191
|
}
|
|
192
|
+
__name(nodeIdToNodeInfoFileIDV0, "nodeIdToNodeInfoFileIDV0");
|
|
186
193
|
let NodeInfoFileV0 = (() => {
|
|
187
194
|
let _classDecorators = [(0, import_NVMFile.nvmFileID)((id) => id >= NodeInfoFileV0IDBase && id < NodeInfoFileV0IDBase + import_safe.MAX_NODES), (0, import_NVMFile.nvmSection)("protocol")];
|
|
188
195
|
let _classDescriptor;
|
|
@@ -190,6 +197,9 @@ let NodeInfoFileV0 = (() => {
|
|
|
190
197
|
let _classThis;
|
|
191
198
|
let _classSuper = import_NVMFile.NVMFile;
|
|
192
199
|
var NodeInfoFileV02 = class extends _classSuper {
|
|
200
|
+
static {
|
|
201
|
+
__name(this, "NodeInfoFileV0");
|
|
202
|
+
}
|
|
193
203
|
static {
|
|
194
204
|
_classThis = this;
|
|
195
205
|
}
|
|
@@ -228,6 +238,7 @@ const NodeInfoFileV1IDBase = 328192;
|
|
|
228
238
|
function nodeIdToNodeInfoFileIDV1(nodeId) {
|
|
229
239
|
return NodeInfoFileV1IDBase + Math.floor((nodeId - 1) / NODEINFOS_PER_FILE_V1);
|
|
230
240
|
}
|
|
241
|
+
__name(nodeIdToNodeInfoFileIDV1, "nodeIdToNodeInfoFileIDV1");
|
|
231
242
|
let NodeInfoFileV1 = (() => {
|
|
232
243
|
let _classDecorators = [(0, import_NVMFile.nvmFileID)((id) => id >= NodeInfoFileV1IDBase && id < NodeInfoFileV1IDBase + import_safe.MAX_NODES / NODEINFOS_PER_FILE_V1), (0, import_NVMFile.nvmSection)("protocol")];
|
|
233
244
|
let _classDescriptor;
|
|
@@ -235,6 +246,9 @@ let NodeInfoFileV1 = (() => {
|
|
|
235
246
|
let _classThis;
|
|
236
247
|
let _classSuper = import_NVMFile.NVMFile;
|
|
237
248
|
var NodeInfoFileV12 = class extends _classSuper {
|
|
249
|
+
static {
|
|
250
|
+
__name(this, "NodeInfoFileV1");
|
|
251
|
+
}
|
|
238
252
|
static {
|
|
239
253
|
_classThis = this;
|
|
240
254
|
}
|
|
@@ -289,6 +303,7 @@ const LRNodeInfoFileV5IDBase = 329728;
|
|
|
289
303
|
function nodeIdToLRNodeInfoFileIDV5(nodeId) {
|
|
290
304
|
return LRNodeInfoFileV5IDBase + Math.floor((nodeId - 256) / LR_NODEINFOS_PER_FILE_V5);
|
|
291
305
|
}
|
|
306
|
+
__name(nodeIdToLRNodeInfoFileIDV5, "nodeIdToLRNodeInfoFileIDV5");
|
|
292
307
|
let LRNodeInfoFileV5 = (() => {
|
|
293
308
|
let _classDecorators = [(0, import_NVMFile.nvmFileID)((id) => id >= LRNodeInfoFileV5IDBase && id < LRNodeInfoFileV5IDBase + import_safe.MAX_NODES_LR / LR_NODEINFOS_PER_FILE_V5), (0, import_NVMFile.nvmSection)("protocol")];
|
|
294
309
|
let _classDescriptor;
|
|
@@ -296,6 +311,9 @@ let LRNodeInfoFileV5 = (() => {
|
|
|
296
311
|
let _classThis;
|
|
297
312
|
let _classSuper = import_NVMFile.NVMFile;
|
|
298
313
|
var LRNodeInfoFileV52 = class extends _classSuper {
|
|
314
|
+
static {
|
|
315
|
+
__name(this, "LRNodeInfoFileV5");
|
|
316
|
+
}
|
|
299
317
|
static {
|
|
300
318
|
_classThis = this;
|
|
301
319
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/nvm3/files/NodeInfoFiles.ts"],
|
|
4
4
|
"sourcesContent": ["import {\n\ttype DataRate,\n\ttype FLiRS,\n\tMAX_NODES,\n\tMAX_NODES_LR,\n\tNUM_NODEMASK_BYTES,\n\ttype NodeProtocolInfo,\n\tNodeType,\n\tencodeBitMask,\n\tencodeNodeProtocolInfo,\n\tparseBitMask,\n\tparseNodeProtocolInfo,\n} from \"@zwave-js/core/safe\";\nimport { Bytes, pick } 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 const NODEINFOS_PER_FILE_V1 = 4;\nexport const LR_NODEINFOS_PER_FILE_V5 = 50;\nconst NODEINFO_SIZE = 1 + 5 + NUM_NODEMASK_BYTES;\nconst LR_NODEINFO_SIZE = 3;\nconst EMPTY_NODEINFO_FILL = 0xff;\nconst emptyNodeInfo = new Uint8Array(NODEINFO_SIZE).fill(EMPTY_NODEINFO_FILL);\n\nexport interface NodeInfo\n\textends Omit<NodeProtocolInfo, \"hasSpecificDeviceClass\">\n{\n\tnodeId: number;\n\tgenericDeviceClass: number;\n\tspecificDeviceClass?: number | null;\n\tneighbors: number[];\n\tsucUpdateIndex: number;\n}\n\nfunction parseNodeInfo(\n\tnodeId: number,\n\tbuffer: Uint8Array,\n\toffset: number,\n): NodeInfo {\n\tconst { hasSpecificDeviceClass, ...protocolInfo } = parseNodeProtocolInfo(\n\t\tbuffer,\n\t\toffset,\n\t);\n\tconst genericDeviceClass = buffer[offset + 3];\n\tconst specificDeviceClass = hasSpecificDeviceClass\n\t\t? buffer[offset + 4]\n\t\t: null;\n\tconst neighbors = parseBitMask(\n\t\tbuffer.subarray(offset + 5, offset + 5 + NUM_NODEMASK_BYTES),\n\t);\n\tconst sucUpdateIndex = buffer[offset + 5 + NUM_NODEMASK_BYTES];\n\treturn {\n\t\tnodeId,\n\t\t...protocolInfo,\n\t\tgenericDeviceClass,\n\t\tspecificDeviceClass,\n\t\tneighbors,\n\t\tsucUpdateIndex,\n\t};\n}\n\nfunction encodeNodeInfo(nodeInfo: NodeInfo): Bytes {\n\tconst ret = new Bytes(NODEINFO_SIZE);\n\n\tconst hasSpecificDeviceClass = nodeInfo.specificDeviceClass != null;\n\tconst protocolInfo: NodeProtocolInfo = {\n\t\t...pick(nodeInfo, [\n\t\t\t\"isListening\",\n\t\t\t\"isFrequentListening\",\n\t\t\t\"isRouting\",\n\t\t\t\"supportedDataRates\",\n\t\t\t\"protocolVersion\",\n\t\t\t\"optionalFunctionality\",\n\t\t\t\"nodeType\",\n\t\t\t\"supportsSecurity\",\n\t\t\t\"supportsBeaming\",\n\t\t]),\n\t\thasSpecificDeviceClass,\n\t};\n\tret.set(encodeNodeProtocolInfo(protocolInfo), 0);\n\n\tret[3] = nodeInfo.genericDeviceClass;\n\tif (hasSpecificDeviceClass) ret[4] = nodeInfo.specificDeviceClass!;\n\tret.set(encodeBitMask(nodeInfo.neighbors, MAX_NODES), 5);\n\tret[5 + NUM_NODEMASK_BYTES] = nodeInfo.sucUpdateIndex;\n\n\treturn ret;\n}\n\nexport interface LRNodeInfo\n\textends Omit<NodeProtocolInfo, \"hasSpecificDeviceClass\">\n{\n\tnodeId: number;\n\tgenericDeviceClass: number;\n\tspecificDeviceClass?: number | null;\n}\n\nfunction parseLRNodeInfo(\n\tnodeId: number,\n\tbuffer: Uint8Array,\n\toffset: number,\n): LRNodeInfo {\n\t// The node info in LR NVM files is packed:\n\t// Byte 0 CAPABILITY:\n\t// Bit 0: Routing (?)\n\t// Bit 1: Listening\n\t// Bit 2: has specific device class (?)\n\t// Bit 3: Beam capability\n\t// Bit 4: Optional functionality\n\t// Bits 5-6: FLiRS\n\t// Bit 7: Unused (?)\n\t// Byte 1: Generic device class\n\t// Byte 2: Specific device class\n\n\t// Protocol version is always 3\n\t// Security is always true\n\t// Supported speed is always 100kbps (speed = 0, speed ext = 2)\n\t// Never: routing end node, controller\n\n\tconst capability = buffer[offset];\n\tconst isRouting = !!(capability & 0b0000_0001); // ZWLR Mesh??\n\tconst isListening = !!(capability & 0b0000_0010);\n\tconst hasSpecificDeviceClass = !!(capability & 0b0000_0100);\n\tconst supportsBeaming = !!(capability & 0b0000_1000);\n\tconst optionalFunctionality = !!(capability & 0b0001_0000);\n\tlet isFrequentListening: FLiRS;\n\tswitch (capability & 0b0110_0000) {\n\t\tcase 0b0100_0000:\n\t\t\tisFrequentListening = \"1000ms\";\n\t\t\tbreak;\n\t\tcase 0b0010_0000:\n\t\t\tisFrequentListening = \"250ms\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tisFrequentListening = false;\n\t}\n\tconst nodeType = NodeType[\"End Node\"];\n\tconst supportsSecurity = true;\n\tconst protocolVersion = 3;\n\tconst supportedDataRates: DataRate[] = [100000];\n\n\treturn {\n\t\tnodeId,\n\t\tisRouting,\n\t\tisListening,\n\t\tsupportsBeaming,\n\t\tisFrequentListening,\n\t\toptionalFunctionality,\n\t\tnodeType,\n\t\tsupportsSecurity,\n\t\tprotocolVersion,\n\t\tsupportedDataRates,\n\t\tgenericDeviceClass: buffer[offset + 1],\n\t\tspecificDeviceClass: hasSpecificDeviceClass ? buffer[offset + 2] : null,\n\t};\n}\n\nfunction encodeLRNodeInfo(nodeInfo: LRNodeInfo): Uint8Array {\n\tconst ret = new Bytes(LR_NODEINFO_SIZE);\n\n\tlet capability = 0;\n\tif (nodeInfo.isRouting) capability |= 0b0000_0001;\n\tif (nodeInfo.isListening) capability |= 0b0000_0010;\n\tif (nodeInfo.specificDeviceClass != null) capability |= 0b0000_0100;\n\tif (nodeInfo.supportsBeaming) capability |= 0b0000_1000;\n\tif (nodeInfo.optionalFunctionality) capability |= 0b0001_0000;\n\tif (nodeInfo.isFrequentListening === \"1000ms\") {\n\t\tcapability |= 0b0100_0000;\n\t} else if (nodeInfo.isFrequentListening === \"250ms\") {\n\t\tcapability |= 0b0010_0000;\n\t}\n\n\tret[0] = capability;\n\tret[1] = nodeInfo.genericDeviceClass;\n\tret[2] = nodeInfo.specificDeviceClass ?? 0;\n\n\treturn ret;\n}\n\nexport interface NodeInfoFileV0Options extends NVMFileCreationOptions {\n\tnodeInfo: NodeInfo;\n}\n\nexport const NodeInfoFileV0IDBase = 0x50100;\nexport function nodeIdToNodeInfoFileIDV0(nodeId: number): number {\n\treturn NodeInfoFileV0IDBase + nodeId - 1;\n}\n\n@nvmFileID(\n\t(id) => id >= NodeInfoFileV0IDBase && id < NodeInfoFileV0IDBase + MAX_NODES,\n)\n@nvmSection(\"protocol\")\nexport class NodeInfoFileV0 extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | NodeInfoFileV0Options,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.nodeInfo = parseNodeInfo(\n\t\t\t\tthis.fileId - NodeInfoFileV0IDBase + 1,\n\t\t\t\tthis.payload,\n\t\t\t\t0,\n\t\t\t);\n\t\t} else {\n\t\t\tthis.nodeInfo = options.nodeInfo;\n\t\t}\n\t}\n\n\tpublic nodeInfo: NodeInfo;\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tthis.fileId = nodeIdToNodeInfoFileIDV0(this.nodeInfo.nodeId);\n\t\tthis.payload = encodeNodeInfo(this.nodeInfo);\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\tnodeInfo: this.nodeInfo,\n\t\t};\n\t}\n}\n\nexport interface NodeInfoFileV1Options extends NVMFileCreationOptions {\n\tnodeInfos: NodeInfo[];\n}\n\nexport const NodeInfoFileV1IDBase = 0x50200;\nexport function nodeIdToNodeInfoFileIDV1(nodeId: number): number {\n\treturn (\n\t\tNodeInfoFileV1IDBase + Math.floor((nodeId - 1) / NODEINFOS_PER_FILE_V1)\n\t);\n}\n\n@nvmFileID(\n\t(id) =>\n\t\tid >= NodeInfoFileV1IDBase\n\t\t&& id < NodeInfoFileV1IDBase + MAX_NODES / NODEINFOS_PER_FILE_V1,\n)\n@nvmSection(\"protocol\")\nexport class NodeInfoFileV1 extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | NodeInfoFileV1Options,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.nodeInfos = [];\n\t\t\tfor (let i = 0; i < NODEINFOS_PER_FILE_V1; i++) {\n\t\t\t\tconst nodeId = (this.fileId - NodeInfoFileV1IDBase)\n\t\t\t\t\t\t* NODEINFOS_PER_FILE_V1\n\t\t\t\t\t+ 1\n\t\t\t\t\t+ i;\n\t\t\t\tconst offset = i * NODEINFO_SIZE;\n\t\t\t\tconst entry = this.payload.subarray(\n\t\t\t\t\toffset,\n\t\t\t\t\toffset + NODEINFO_SIZE,\n\t\t\t\t);\n\t\t\t\tif (entry.equals(emptyNodeInfo)) continue;\n\n\t\t\t\tconst nodeInfo = parseNodeInfo(\n\t\t\t\t\tnodeId,\n\t\t\t\t\tentry,\n\t\t\t\t\t0,\n\t\t\t\t);\n\t\t\t\tthis.nodeInfos.push(nodeInfo);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.nodeInfos = options.nodeInfos;\n\t\t}\n\t}\n\n\tpublic nodeInfos: NodeInfo[];\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\t// The infos must be sorted by node ID\n\t\tthis.nodeInfos.sort((a, b) => a.nodeId - b.nodeId);\n\t\tconst minNodeId = this.nodeInfos[0].nodeId;\n\t\tthis.fileId = nodeIdToNodeInfoFileIDV1(minNodeId);\n\n\t\tthis.payload = new Bytes(NODEINFO_SIZE * NODEINFOS_PER_FILE_V1).fill(\n\t\t\tEMPTY_NODEINFO_FILL,\n\t\t);\n\n\t\tconst minFileNodeId =\n\t\t\tMath.floor((minNodeId - 1) / NODEINFOS_PER_FILE_V1)\n\t\t\t\t* NODEINFOS_PER_FILE_V1\n\t\t\t+ 1;\n\n\t\tfor (const nodeInfo of this.nodeInfos) {\n\t\t\tconst offset = (nodeInfo.nodeId - minFileNodeId) * NODEINFO_SIZE;\n\t\t\tthis.payload.set(encodeNodeInfo(nodeInfo), offset);\n\t\t}\n\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\t\"node infos\": this.nodeInfos,\n\t\t};\n\t}\n}\n\nexport interface LRNodeInfoFileV5Options extends NVMFileCreationOptions {\n\tnodeInfos: LRNodeInfo[];\n}\n\nexport const LRNodeInfoFileV5IDBase = 0x50800;\nexport function nodeIdToLRNodeInfoFileIDV5(nodeId: number): number {\n\treturn (\n\t\tLRNodeInfoFileV5IDBase\n\t\t+ Math.floor((nodeId - 256) / LR_NODEINFOS_PER_FILE_V5)\n\t);\n}\n\n// Counting starts with 5, because we only implemented this after reaching protocol file format 5\n@nvmFileID(\n\t(id) =>\n\t\tid >= LRNodeInfoFileV5IDBase\n\t\t&& id\n\t\t\t< LRNodeInfoFileV5IDBase + MAX_NODES_LR / LR_NODEINFOS_PER_FILE_V5,\n)\n@nvmSection(\"protocol\")\nexport class LRNodeInfoFileV5 extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | LRNodeInfoFileV5Options,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.nodeInfos = [];\n\t\t\tfor (let i = 0; i < LR_NODEINFOS_PER_FILE_V5; i++) {\n\t\t\t\tconst nodeId = (this.fileId - LRNodeInfoFileV5IDBase)\n\t\t\t\t\t\t* LR_NODEINFOS_PER_FILE_V5\n\t\t\t\t\t+ 256\n\t\t\t\t\t+ i;\n\t\t\t\tconst offset = i * LR_NODEINFO_SIZE;\n\t\t\t\tconst entry = this.payload.subarray(\n\t\t\t\t\toffset,\n\t\t\t\t\toffset + LR_NODEINFO_SIZE,\n\t\t\t\t);\n\t\t\t\tif (entry.equals(emptyNodeInfo)) continue;\n\n\t\t\t\tconst nodeInfo = parseLRNodeInfo(\n\t\t\t\t\tnodeId,\n\t\t\t\t\tentry,\n\t\t\t\t\t0,\n\t\t\t\t);\n\t\t\t\tthis.nodeInfos.push(nodeInfo);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.nodeInfos = options.nodeInfos;\n\t\t}\n\t}\n\n\tpublic nodeInfos: LRNodeInfo[];\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\t// The infos must be sorted by node ID\n\t\tthis.nodeInfos.sort((a, b) => a.nodeId - b.nodeId);\n\t\tconst minNodeId = this.nodeInfos[0].nodeId;\n\t\tthis.fileId = nodeIdToLRNodeInfoFileIDV5(minNodeId);\n\n\t\tthis.payload = new Bytes(LR_NODEINFO_SIZE * LR_NODEINFOS_PER_FILE_V5)\n\t\t\t.fill(EMPTY_NODEINFO_FILL);\n\n\t\tconst minFileNodeId =\n\t\t\tMath.floor((minNodeId - 256) / LR_NODEINFOS_PER_FILE_V5)\n\t\t\t\t* LR_NODEINFOS_PER_FILE_V5\n\t\t\t+ 256;\n\n\t\tfor (const nodeInfo of this.nodeInfos) {\n\t\t\tconst offset = (nodeInfo.nodeId - minFileNodeId) * LR_NODEINFO_SIZE;\n\t\t\tthis.payload.set(encodeLRNodeInfo(nodeInfo), offset);\n\t\t}\n\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\t\"node infos\": this.nodeInfos,\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_safe"]
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -46,6 +47,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
46
47
|
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
47
48
|
return f;
|
|
48
49
|
}
|
|
50
|
+
__name(accept, "accept");
|
|
49
51
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
50
52
|
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
51
53
|
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
@@ -81,6 +83,9 @@ var __runInitializers = function(thisArg, initializers, value) {
|
|
|
81
83
|
return useValue ? value : void 0;
|
|
82
84
|
};
|
|
83
85
|
class ProtocolNodeMaskFile extends import_NVMFile.NVMFile {
|
|
86
|
+
static {
|
|
87
|
+
__name(this, "ProtocolNodeMaskFile");
|
|
88
|
+
}
|
|
84
89
|
constructor(options) {
|
|
85
90
|
super(options);
|
|
86
91
|
if ((0, import_NVMFile.gotDeserializationOptions)(options)) {
|
|
@@ -116,6 +121,9 @@ let ProtocolPreferredRepeatersFile = (() => {
|
|
|
116
121
|
let _classThis;
|
|
117
122
|
let _classSuper = ProtocolNodeMaskFile;
|
|
118
123
|
var ProtocolPreferredRepeatersFile2 = class extends _classSuper {
|
|
124
|
+
static {
|
|
125
|
+
__name(this, "ProtocolPreferredRepeatersFile");
|
|
126
|
+
}
|
|
119
127
|
static {
|
|
120
128
|
_classThis = this;
|
|
121
129
|
}
|
|
@@ -137,6 +145,9 @@ let ProtocolNodeListFile = (() => {
|
|
|
137
145
|
let _classThis;
|
|
138
146
|
let _classSuper = ProtocolNodeMaskFile;
|
|
139
147
|
var ProtocolNodeListFile2 = class extends _classSuper {
|
|
148
|
+
static {
|
|
149
|
+
__name(this, "ProtocolNodeListFile");
|
|
150
|
+
}
|
|
140
151
|
static {
|
|
141
152
|
_classThis = this;
|
|
142
153
|
}
|
|
@@ -158,6 +169,9 @@ let ProtocolAppRouteLockNodeMaskFile = (() => {
|
|
|
158
169
|
let _classThis;
|
|
159
170
|
let _classSuper = ProtocolNodeMaskFile;
|
|
160
171
|
var ProtocolAppRouteLockNodeMaskFile2 = class extends _classSuper {
|
|
172
|
+
static {
|
|
173
|
+
__name(this, "ProtocolAppRouteLockNodeMaskFile");
|
|
174
|
+
}
|
|
161
175
|
static {
|
|
162
176
|
_classThis = this;
|
|
163
177
|
}
|
|
@@ -179,6 +193,9 @@ let ProtocolRouteSlaveSUCNodeMaskFile = (() => {
|
|
|
179
193
|
let _classThis;
|
|
180
194
|
let _classSuper = ProtocolNodeMaskFile;
|
|
181
195
|
var ProtocolRouteSlaveSUCNodeMaskFile2 = class extends _classSuper {
|
|
196
|
+
static {
|
|
197
|
+
__name(this, "ProtocolRouteSlaveSUCNodeMaskFile");
|
|
198
|
+
}
|
|
182
199
|
static {
|
|
183
200
|
_classThis = this;
|
|
184
201
|
}
|
|
@@ -200,6 +217,9 @@ let ProtocolSUCPendingUpdateNodeMaskFile = (() => {
|
|
|
200
217
|
let _classThis;
|
|
201
218
|
let _classSuper = ProtocolNodeMaskFile;
|
|
202
219
|
var ProtocolSUCPendingUpdateNodeMaskFile2 = class extends _classSuper {
|
|
220
|
+
static {
|
|
221
|
+
__name(this, "ProtocolSUCPendingUpdateNodeMaskFile");
|
|
222
|
+
}
|
|
203
223
|
static {
|
|
204
224
|
_classThis = this;
|
|
205
225
|
}
|
|
@@ -221,6 +241,9 @@ let ProtocolVirtualNodeMaskFile = (() => {
|
|
|
221
241
|
let _classThis;
|
|
222
242
|
let _classSuper = ProtocolNodeMaskFile;
|
|
223
243
|
var ProtocolVirtualNodeMaskFile2 = class extends _classSuper {
|
|
244
|
+
static {
|
|
245
|
+
__name(this, "ProtocolVirtualNodeMaskFile");
|
|
246
|
+
}
|
|
224
247
|
static {
|
|
225
248
|
_classThis = this;
|
|
226
249
|
}
|
|
@@ -242,6 +265,9 @@ let ProtocolPendingDiscoveryNodeMaskFile = (() => {
|
|
|
242
265
|
let _classThis;
|
|
243
266
|
let _classSuper = ProtocolNodeMaskFile;
|
|
244
267
|
var ProtocolPendingDiscoveryNodeMaskFile2 = class extends _classSuper {
|
|
268
|
+
static {
|
|
269
|
+
__name(this, "ProtocolPendingDiscoveryNodeMaskFile");
|
|
270
|
+
}
|
|
245
271
|
static {
|
|
246
272
|
_classThis = this;
|
|
247
273
|
}
|
|
@@ -263,6 +289,9 @@ let ProtocolRouteCacheExistsNodeMaskFile = (() => {
|
|
|
263
289
|
let _classThis;
|
|
264
290
|
let _classSuper = ProtocolNodeMaskFile;
|
|
265
291
|
var ProtocolRouteCacheExistsNodeMaskFile2 = class extends _classSuper {
|
|
292
|
+
static {
|
|
293
|
+
__name(this, "ProtocolRouteCacheExistsNodeMaskFile");
|
|
294
|
+
}
|
|
266
295
|
static {
|
|
267
296
|
_classThis = this;
|
|
268
297
|
}
|
|
@@ -284,6 +313,9 @@ let ProtocolLRNodeListFile = (() => {
|
|
|
284
313
|
let _classThis;
|
|
285
314
|
let _classSuper = import_NVMFile.NVMFile;
|
|
286
315
|
var ProtocolLRNodeListFile2 = class extends _classSuper {
|
|
316
|
+
static {
|
|
317
|
+
__name(this, "ProtocolLRNodeListFile");
|
|
318
|
+
}
|
|
287
319
|
static {
|
|
288
320
|
_classThis = this;
|
|
289
321
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/nvm3/files/ProtocolNodeMaskFiles.ts"],
|
|
4
4
|
"sourcesContent": ["import { NODE_ID_MAX, encodeBitMask, parseBitMask } from \"@zwave-js/core/safe\";\nimport { type 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 ProtocolNodeMaskFileOptions extends NVMFileCreationOptions {\n\tnodeIds: number[];\n}\n\nexport class ProtocolNodeMaskFile extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | ProtocolNodeMaskFileOptions,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.nodeIdSet = new Set(parseBitMask(this.payload));\n\t\t} else {\n\t\t\tthis.nodeIdSet = new Set(options.nodeIds);\n\t\t}\n\t}\n\n\tpublic nodeIdSet: Set<number>;\n\tpublic get nodeIds(): number[] {\n\t\treturn [...this.nodeIdSet];\n\t}\n\tpublic set nodeIds(value: number[]) {\n\t\tthis.nodeIdSet = new Set(value);\n\t}\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tthis.payload = encodeBitMask([...this.nodeIdSet], NODE_ID_MAX);\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\t\"node IDs\": [...this.nodeIdSet].join(\", \"),\n\t\t};\n\t}\n}\n\nexport const ProtocolPreferredRepeatersFileID = 0x50002;\n\n@nvmFileID(ProtocolPreferredRepeatersFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolPreferredRepeatersFile extends ProtocolNodeMaskFile {}\n\nexport const ProtocolNodeListFileID = 0x50005;\n\n@nvmFileID(ProtocolNodeListFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolNodeListFile extends ProtocolNodeMaskFile {}\n\nexport const ProtocolAppRouteLockNodeMaskFileID = 0x50006;\n\n@nvmFileID(ProtocolAppRouteLockNodeMaskFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolAppRouteLockNodeMaskFile extends ProtocolNodeMaskFile {}\n\nexport const ProtocolRouteSlaveSUCNodeMaskFileID = 0x50007;\n\n@nvmFileID(ProtocolRouteSlaveSUCNodeMaskFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolRouteSlaveSUCNodeMaskFile extends ProtocolNodeMaskFile {}\n\nexport const ProtocolSUCPendingUpdateNodeMaskFileID = 0x50008;\n\n@nvmFileID(ProtocolSUCPendingUpdateNodeMaskFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolSUCPendingUpdateNodeMaskFile\n\textends ProtocolNodeMaskFile\n{}\n\nexport const ProtocolVirtualNodeMaskFileID = 0x50009;\n\n@nvmFileID(ProtocolVirtualNodeMaskFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolVirtualNodeMaskFile extends ProtocolNodeMaskFile {}\n\nexport const ProtocolPendingDiscoveryNodeMaskFileID = 0x5000a;\n\n@nvmFileID(ProtocolPendingDiscoveryNodeMaskFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolPendingDiscoveryNodeMaskFile\n\textends ProtocolNodeMaskFile\n{}\n\nexport const ProtocolRouteCacheExistsNodeMaskFileID = 0x5000b;\n\n@nvmFileID(ProtocolRouteCacheExistsNodeMaskFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolRouteCacheExistsNodeMaskFile\n\textends ProtocolNodeMaskFile\n{}\n\nexport const ProtocolLRNodeListFileID = 0x5000c;\n\n@nvmFileID(ProtocolLRNodeListFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolLRNodeListFile extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | ProtocolNodeMaskFileOptions,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.nodeIdSet = new Set(parseBitMask(this.payload, 256));\n\t\t} else {\n\t\t\tthis.nodeIdSet = new Set(options.nodeIds);\n\t\t}\n\t}\n\n\tpublic nodeIdSet: Set<number>;\n\tpublic get nodeIds(): number[] {\n\t\treturn [...this.nodeIdSet];\n\t}\n\tpublic set nodeIds(value: number[]) {\n\t\tthis.nodeIdSet = new Set(value);\n\t}\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\t// There are only 128 bytes for the bitmask, so the LR node IDs only go up to 1279\n\t\tthis.payload = encodeBitMask([...this.nodeIdSet], 1279, 256);\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\t\"node IDs\": [...this.nodeIdSet].join(\", \"),\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -36,6 +37,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
36
37
|
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
37
38
|
return f;
|
|
38
39
|
}
|
|
40
|
+
__name(accept, "accept");
|
|
39
41
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
40
42
|
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
41
43
|
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
@@ -75,6 +77,7 @@ const RouteCacheFileV0IDBase = 328704;
|
|
|
75
77
|
function nodeIdToRouteCacheFileIDV0(nodeId) {
|
|
76
78
|
return RouteCacheFileV0IDBase + nodeId - 1;
|
|
77
79
|
}
|
|
80
|
+
__name(nodeIdToRouteCacheFileIDV0, "nodeIdToRouteCacheFileIDV0");
|
|
78
81
|
let RouteCacheFileV0 = (() => {
|
|
79
82
|
let _classDecorators = [(0, import_NVMFile.nvmFileID)((id) => id >= RouteCacheFileV0IDBase && id < RouteCacheFileV0IDBase + import_safe.MAX_NODES), (0, import_NVMFile.nvmSection)("protocol")];
|
|
80
83
|
let _classDescriptor;
|
|
@@ -82,6 +85,9 @@ let RouteCacheFileV0 = (() => {
|
|
|
82
85
|
let _classThis;
|
|
83
86
|
let _classSuper = import_NVMFile.NVMFile;
|
|
84
87
|
var RouteCacheFileV02 = class extends _classSuper {
|
|
88
|
+
static {
|
|
89
|
+
__name(this, "RouteCacheFileV0");
|
|
90
|
+
}
|
|
85
91
|
static {
|
|
86
92
|
_classThis = this;
|
|
87
93
|
}
|
|
@@ -126,6 +132,7 @@ const RouteCacheFileV1IDBase = 332800;
|
|
|
126
132
|
function nodeIdToRouteCacheFileIDV1(nodeId) {
|
|
127
133
|
return RouteCacheFileV1IDBase + Math.floor((nodeId - 1) / ROUTECACHES_PER_FILE_V1);
|
|
128
134
|
}
|
|
135
|
+
__name(nodeIdToRouteCacheFileIDV1, "nodeIdToRouteCacheFileIDV1");
|
|
129
136
|
let RouteCacheFileV1 = (() => {
|
|
130
137
|
let _classDecorators = [(0, import_NVMFile.nvmFileID)((id) => id >= RouteCacheFileV1IDBase && id < RouteCacheFileV1IDBase + import_safe.MAX_NODES / ROUTECACHES_PER_FILE_V1), (0, import_NVMFile.nvmSection)("protocol")];
|
|
131
138
|
let _classDescriptor;
|
|
@@ -133,6 +140,9 @@ let RouteCacheFileV1 = (() => {
|
|
|
133
140
|
let _classThis;
|
|
134
141
|
let _classSuper = import_NVMFile.NVMFile;
|
|
135
142
|
var RouteCacheFileV12 = class extends _classSuper {
|
|
143
|
+
static {
|
|
144
|
+
__name(this, "RouteCacheFileV1");
|
|
145
|
+
}
|
|
136
146
|
static {
|
|
137
147
|
_classThis = this;
|
|
138
148
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/nvm3/files/RouteCacheFiles.ts"],
|
|
4
4
|
"sourcesContent": ["import { MAX_NODES, MAX_REPEATERS } from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\tEMPTY_ROUTECACHE_FILL,\n\tROUTECACHE_SIZE,\n\ttype RouteCache,\n\temptyRouteCache,\n\tencodeRoute,\n\tparseRoute,\n} from \"../../common/routeCache.js\";\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 const ROUTECACHES_PER_FILE_V1 = 8;\n\nexport interface RouteCacheFileV0Options extends NVMFileCreationOptions {\n\trouteCache: RouteCache;\n}\n\nexport const RouteCacheFileV0IDBase = 0x50400;\nexport function nodeIdToRouteCacheFileIDV0(nodeId: number): number {\n\treturn RouteCacheFileV0IDBase + nodeId - 1;\n}\n\n@nvmFileID(\n\t(id) =>\n\t\tid >= RouteCacheFileV0IDBase && id < RouteCacheFileV0IDBase + MAX_NODES,\n)\n@nvmSection(\"protocol\")\nexport class RouteCacheFileV0 extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | RouteCacheFileV0Options,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tconst nodeId = this.fileId - RouteCacheFileV0IDBase + 1;\n\t\t\tconst lwr = parseRoute(this.payload, 0);\n\t\t\tconst nlwr = parseRoute(this.payload, MAX_REPEATERS + 1);\n\t\t\tthis.routeCache = { nodeId, lwr, nlwr };\n\t\t} else {\n\t\t\tthis.routeCache = options.routeCache;\n\t\t}\n\t}\n\n\tpublic routeCache: RouteCache;\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tthis.fileId = nodeIdToRouteCacheFileIDV0(this.routeCache.nodeId);\n\t\tthis.payload = Bytes.concat([\n\t\t\tencodeRoute(this.routeCache.lwr),\n\t\t\tencodeRoute(this.routeCache.nlwr),\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\trouteCache: this.routeCache,\n\t\t};\n\t}\n}\n\nexport interface RouteCacheFileV1Options extends NVMFileCreationOptions {\n\trouteCaches: RouteCache[];\n}\n\nexport const RouteCacheFileV1IDBase = 0x51400;\nexport function nodeIdToRouteCacheFileIDV1(nodeId: number): number {\n\treturn (\n\t\tRouteCacheFileV1IDBase\n\t\t+ Math.floor((nodeId - 1) / ROUTECACHES_PER_FILE_V1)\n\t);\n}\n\n@nvmFileID(\n\t(id) =>\n\t\tid >= RouteCacheFileV1IDBase\n\t\t&& id < RouteCacheFileV1IDBase + MAX_NODES / ROUTECACHES_PER_FILE_V1,\n)\n@nvmSection(\"protocol\")\nexport class RouteCacheFileV1 extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | RouteCacheFileV1Options,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.routeCaches = [];\n\t\t\tfor (let i = 0; i < ROUTECACHES_PER_FILE_V1; i++) {\n\t\t\t\tconst offset = i * 2 * (MAX_REPEATERS + 1);\n\t\t\t\tconst entry = this.payload.subarray(\n\t\t\t\t\toffset,\n\t\t\t\t\toffset + 2 * (MAX_REPEATERS + 1),\n\t\t\t\t);\n\t\t\t\tif (entry.equals(emptyRouteCache)) continue;\n\n\t\t\t\tconst nodeId = (this.fileId - RouteCacheFileV1IDBase)\n\t\t\t\t\t\t* ROUTECACHES_PER_FILE_V1\n\t\t\t\t\t+ 1\n\t\t\t\t\t+ i;\n\t\t\t\tconst lwr = parseRoute(this.payload, offset);\n\t\t\t\tconst nlwr = parseRoute(\n\t\t\t\t\tthis.payload,\n\t\t\t\t\toffset + MAX_REPEATERS + 1,\n\t\t\t\t);\n\n\t\t\t\tthis.routeCaches.push({ nodeId, lwr, nlwr });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.routeCaches = options.routeCaches;\n\t\t}\n\t}\n\n\tpublic routeCaches: RouteCache[];\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\t// The route infos must be sorted by node ID\n\t\tthis.routeCaches.sort((a, b) => a.nodeId - b.nodeId);\n\t\tconst minNodeId = this.routeCaches[0].nodeId;\n\t\tthis.fileId = nodeIdToRouteCacheFileIDV1(minNodeId);\n\n\t\tthis.payload = new Bytes(ROUTECACHES_PER_FILE_V1 * ROUTECACHE_SIZE)\n\t\t\t.fill(EMPTY_ROUTECACHE_FILL);\n\n\t\tconst minFileNodeId =\n\t\t\tMath.floor((minNodeId - 1) / ROUTECACHES_PER_FILE_V1)\n\t\t\t\t* ROUTECACHES_PER_FILE_V1\n\t\t\t+ 1;\n\n\t\tfor (const routeCache of this.routeCaches) {\n\t\t\tconst offset = (routeCache.nodeId - minFileNodeId)\n\t\t\t\t* ROUTECACHE_SIZE;\n\t\t\tconst routes = Bytes.concat([\n\t\t\t\tencodeRoute(routeCache.lwr),\n\t\t\t\tencodeRoute(routeCache.nlwr),\n\t\t\t]);\n\t\t\tthis.payload.set(routes, offset);\n\t\t}\n\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\t\"route caches\": this.routeCaches,\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_safe"]
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -36,6 +37,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
36
37
|
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
37
38
|
return f;
|
|
38
39
|
}
|
|
40
|
+
__name(accept, "accept");
|
|
39
41
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
40
42
|
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
41
43
|
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
@@ -79,6 +81,9 @@ let SUCUpdateEntriesFileV0 = (() => {
|
|
|
79
81
|
let _classThis;
|
|
80
82
|
let _classSuper = import_NVMFile.NVMFile;
|
|
81
83
|
var SUCUpdateEntriesFileV02 = class extends _classSuper {
|
|
84
|
+
static {
|
|
85
|
+
__name(this, "SUCUpdateEntriesFileV0");
|
|
86
|
+
}
|
|
82
87
|
static {
|
|
83
88
|
_classThis = this;
|
|
84
89
|
}
|
|
@@ -128,6 +133,7 @@ const SUCUpdateEntriesFileV5IDMax = SUCUpdateEntriesFileV5IDBase + import_consts
|
|
|
128
133
|
function sucUpdateIndexToSUCUpdateEntriesFileIDV5(index) {
|
|
129
134
|
return SUCUpdateEntriesFileV5IDBase + Math.floor(index / SUC_UPDATES_PER_FILE_V5);
|
|
130
135
|
}
|
|
136
|
+
__name(sucUpdateIndexToSUCUpdateEntriesFileIDV5, "sucUpdateIndexToSUCUpdateEntriesFileIDV5");
|
|
131
137
|
let SUCUpdateEntriesFileV5 = (() => {
|
|
132
138
|
let _classDecorators = [(0, import_NVMFile.nvmFileID)((id) => id >= SUCUpdateEntriesFileV5IDBase && id <= SUCUpdateEntriesFileV5IDMax), (0, import_NVMFile.nvmSection)("protocol")];
|
|
133
139
|
let _classDescriptor;
|
|
@@ -135,6 +141,9 @@ let SUCUpdateEntriesFileV5 = (() => {
|
|
|
135
141
|
let _classThis;
|
|
136
142
|
let _classSuper = import_NVMFile.NVMFile;
|
|
137
143
|
var SUCUpdateEntriesFileV52 = class extends _classSuper {
|
|
144
|
+
static {
|
|
145
|
+
__name(this, "SUCUpdateEntriesFileV5");
|
|
146
|
+
}
|
|
138
147
|
static {
|
|
139
148
|
_classThis = this;
|
|
140
149
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/nvm3/files/SUCUpdateEntriesFile.ts"],
|
|
4
4
|
"sourcesContent": ["import { Bytes } from \"@zwave-js/shared/safe\";\nimport { SUC_MAX_UPDATES, SUC_UPDATE_ENTRY_SIZE } from \"../../../consts.js\";\nimport {\n\ttype SUCUpdateEntry,\n\tencodeSUCUpdateEntry,\n\tparseSUCUpdateEntry,\n} from \"../../common/sucUpdateEntry.js\";\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 const SUC_UPDATES_PER_FILE_V5 = 8;\n\nexport interface SUCUpdateEntriesFileOptions extends NVMFileCreationOptions {\n\tupdateEntries: SUCUpdateEntry[];\n}\n\nexport const SUCUpdateEntriesFileIDV0 = 0x50003;\n\n@nvmFileID(SUCUpdateEntriesFileIDV0)\n@nvmSection(\"protocol\")\nexport class SUCUpdateEntriesFileV0 extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | SUCUpdateEntriesFileOptions,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.updateEntries = [];\n\t\t\tfor (let entry = 0; entry < SUC_MAX_UPDATES; entry++) {\n\t\t\t\tconst offset = entry * SUC_UPDATE_ENTRY_SIZE;\n\t\t\t\tconst updateEntry = parseSUCUpdateEntry(this.payload, offset);\n\t\t\t\tif (updateEntry) this.updateEntries.push(updateEntry);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.updateEntries = options.updateEntries;\n\t\t}\n\t}\n\n\tpublic updateEntries: SUCUpdateEntry[];\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tthis.payload = new Bytes(SUC_MAX_UPDATES * SUC_UPDATE_ENTRY_SIZE).fill(\n\t\t\t0,\n\t\t);\n\t\tfor (let i = 0; i < this.updateEntries.length; i++) {\n\t\t\tconst offset = i * SUC_UPDATE_ENTRY_SIZE;\n\t\t\tconst entry = this.updateEntries[i];\n\t\t\tthis.payload.set(encodeSUCUpdateEntry(entry), offset);\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\t\"SUC update entries\": this.updateEntries,\n\t\t};\n\t}\n}\n\nexport const SUCUpdateEntriesFileV5IDBase = 0x54000;\nexport const SUCUpdateEntriesFileV5IDMax = SUCUpdateEntriesFileV5IDBase\n\t+ SUC_MAX_UPDATES / SUC_UPDATES_PER_FILE_V5\n\t- 1;\nexport function sucUpdateIndexToSUCUpdateEntriesFileIDV5(\n\tindex: number,\n): number {\n\treturn (\n\t\tSUCUpdateEntriesFileV5IDBase\n\t\t+ Math.floor(index / SUC_UPDATES_PER_FILE_V5)\n\t);\n}\n\n@nvmFileID(\n\t(id) =>\n\t\tid >= SUCUpdateEntriesFileV5IDBase\n\t\t&& id <= SUCUpdateEntriesFileV5IDMax,\n)\n@nvmSection(\"protocol\")\nexport class SUCUpdateEntriesFileV5 extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | SUCUpdateEntriesFileOptions,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.updateEntries = [];\n\t\t\tfor (let entry = 0; entry < SUC_UPDATES_PER_FILE_V5; entry++) {\n\t\t\t\tconst offset = entry * SUC_UPDATE_ENTRY_SIZE;\n\t\t\t\tconst updateEntry = parseSUCUpdateEntry(this.payload, offset);\n\t\t\t\tif (updateEntry) this.updateEntries.push(updateEntry);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.updateEntries = options.updateEntries;\n\t\t}\n\t}\n\n\tpublic updateEntries: SUCUpdateEntry[];\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tthis.payload = new Bytes(\n\t\t\tSUC_UPDATES_PER_FILE_V5 * SUC_UPDATE_ENTRY_SIZE,\n\t\t).fill(0xff);\n\t\tfor (let i = 0; i < this.updateEntries.length; i++) {\n\t\t\tconst offset = i * SUC_UPDATE_ENTRY_SIZE;\n\t\t\tconst entry = this.updateEntries[i];\n\t\t\tthis.payload.set(encodeSUCUpdateEntry(entry), offset);\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\t\"SUC update entries\": this.updateEntries,\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAsB;AACtB,oBAAuD;AACvD,4BAIO;AAEP,qBAOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,0BAA0B;AAMhC,MAAM,2BAA2B;IAI3B,0BAAsB,MAAA;8BAFlC,0BAAU,wBAAwB,OAClC,2BAAW,UAAU,CAAC;;;;oBACqB;8CAAA,YAAO;WAAA;;;;;;;;AAAnD,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,SAAoE;AAEpE,YAAM,OAAO;AACb,cAAI,0CAA0B,OAAO,GAAG;AACvC,aAAK,gBAAgB,CAAA;AACrB,iBAAS,QAAQ,GAAG,QAAQ,+BAAiB,SAAS;AACrD,gBAAM,SAAS,QAAQ;AACvB,gBAAM,kBAAc,2CAAoB,KAAK,SAAS,MAAM;AAC5D,cAAI;AAAa,iBAAK,cAAc,KAAK,WAAW;QACrD;MACD,OAAO;AACN,aAAK,gBAAgB,QAAQ;MAC9B;IACD;IAEO;IAEA,YAAS;AACf,WAAK,UAAU,IAAI,kBAAM,gCAAkB,mCAAqB,EAAE,KACjE,CAAC;AAEF,eAAS,IAAI,GAAG,IAAI,KAAK,cAAc,QAAQ,KAAK;AACnD,cAAM,SAAS,IAAI;AACnB,cAAM,QAAQ,KAAK,cAAc,CAAC;AAClC,aAAK,QAAQ,QAAI,4CAAqB,KAAK,GAAG,MAAM;MACrD;AACA,aAAO,MAAM,UAAS;IACvB;;IAGO,SAAM;AACZ,aAAO;QACN,GAAG,MAAM,OAAM;QACf,sBAAsB,KAAK;;IAE7B;;;;AAGM,MAAM,+BAA+B;AACrC,MAAM,8BAA8B,+BACxC,gCAAkB,0BAClB;AACG,SAAU,yCACf,OAAa;AAEb,SACC,+BACE,KAAK,MAAM,QAAQ,uBAAuB;AAE9C;AAPgB;IAeH,0BAAsB,MAAA;8BANlC,0BACA,CAAC,OACA,MAAM,gCACH,MAAM,2BAA2B,OAErC,2BAAW,UAAU,CAAC;;;;oBACqB;8CAAA,YAAO;WAAA;;;;;;;;AAAnD,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,SAAoE;AAEpE,YAAM,OAAO;AACb,cAAI,0CAA0B,OAAO,GAAG;AACvC,aAAK,gBAAgB,CAAA;AACrB,iBAAS,QAAQ,GAAG,QAAQ,yBAAyB,SAAS;AAC7D,gBAAM,SAAS,QAAQ;AACvB,gBAAM,kBAAc,2CAAoB,KAAK,SAAS,MAAM;AAC5D,cAAI;AAAa,iBAAK,cAAc,KAAK,WAAW;QACrD;MACD,OAAO;AACN,aAAK,gBAAgB,QAAQ;MAC9B;IACD;IAEO;IAEA,YAAS;AACf,WAAK,UAAU,IAAI,kBAClB,0BAA0B,mCAAqB,EAC9C,KAAK,GAAI;AACX,eAAS,IAAI,GAAG,IAAI,KAAK,cAAc,QAAQ,KAAK;AACnD,cAAM,SAAS,IAAI;AACnB,cAAM,QAAQ,KAAK,cAAc,CAAC;AAClC,aAAK,QAAQ,QAAI,4CAAqB,KAAK,GAAG,MAAM;MACrD;AACA,aAAO,MAAM,UAAS;IACvB;;IAGO,SAAM;AACZ,aAAO;QACN,GAAG,MAAM,OAAM;QACf,sBAAsB,KAAK;;IAE7B;;;;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -34,6 +35,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
34
35
|
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
35
36
|
return f;
|
|
36
37
|
}
|
|
38
|
+
__name(accept, "accept");
|
|
37
39
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
38
40
|
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
39
41
|
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
@@ -69,6 +71,9 @@ var __runInitializers = function(thisArg, initializers, value) {
|
|
|
69
71
|
return useValue ? value : void 0;
|
|
70
72
|
};
|
|
71
73
|
class VersionFile extends import_NVMFile.NVMFile {
|
|
74
|
+
static {
|
|
75
|
+
__name(this, "VersionFile");
|
|
76
|
+
}
|
|
72
77
|
constructor(options) {
|
|
73
78
|
super(options);
|
|
74
79
|
if ((0, import_NVMFile.gotDeserializationOptions)(options)) {
|
|
@@ -113,6 +118,9 @@ let ApplicationVersionFile = (() => {
|
|
|
113
118
|
let _classThis;
|
|
114
119
|
let _classSuper = VersionFile;
|
|
115
120
|
var ApplicationVersionFile2 = class extends _classSuper {
|
|
121
|
+
static {
|
|
122
|
+
__name(this, "ApplicationVersionFile");
|
|
123
|
+
}
|
|
116
124
|
static {
|
|
117
125
|
_classThis = this;
|
|
118
126
|
}
|
|
@@ -134,6 +142,9 @@ let ApplicationVersionFile800 = (() => {
|
|
|
134
142
|
let _classThis;
|
|
135
143
|
let _classSuper = VersionFile;
|
|
136
144
|
var ApplicationVersionFile8002 = class extends _classSuper {
|
|
145
|
+
static {
|
|
146
|
+
__name(this, "ApplicationVersionFile800");
|
|
147
|
+
}
|
|
137
148
|
static {
|
|
138
149
|
_classThis = this;
|
|
139
150
|
}
|
|
@@ -155,6 +166,9 @@ let ProtocolVersionFile = (() => {
|
|
|
155
166
|
let _classThis;
|
|
156
167
|
let _classSuper = VersionFile;
|
|
157
168
|
var ProtocolVersionFile2 = class extends _classSuper {
|
|
169
|
+
static {
|
|
170
|
+
__name(this, "ProtocolVersionFile");
|
|
171
|
+
}
|
|
158
172
|
static {
|
|
159
173
|
_classThis = this;
|
|
160
174
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/nvm3/files/VersionFiles.ts"],
|
|
4
4
|
"sourcesContent": ["import { Bytes } from \"@zwave-js/shared\";\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 VersionFileOptions extends NVMFileCreationOptions {\n\tformat: number;\n\tmajor: number;\n\tminor: number;\n\tpatch: number;\n}\n\nexport class VersionFile extends NVMFile {\n\tpublic constructor(\n\t\toptions: NVMFileDeserializationOptions | VersionFileOptions,\n\t) {\n\t\tsuper(options);\n\t\tif (gotDeserializationOptions(options)) {\n\t\t\tthis.format = this.payload[3];\n\t\t\tthis.major = this.payload[2];\n\t\t\tthis.minor = this.payload[1];\n\t\t\tthis.patch = this.payload[0];\n\t\t} else {\n\t\t\tthis.format = options.format;\n\t\t\tthis.major = options.major;\n\t\t\tthis.minor = options.minor;\n\t\t\tthis.patch = options.patch;\n\t\t}\n\t}\n\n\tpublic format: number;\n\tpublic major: number;\n\tpublic minor: number;\n\tpublic patch: number;\n\n\tpublic serialize(): NVM3Object & { data: Bytes } {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.patch,\n\t\t\tthis.minor,\n\t\t\tthis.major,\n\t\t\tthis.format,\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\tformat: this.format,\n\t\t\tversion: `${this.major}.${this.minor}.${this.patch}`,\n\t\t};\n\t}\n}\n\nexport const ApplicationVersionFileID = 0x51000;\n\n@nvmFileID(ApplicationVersionFileID)\n@nvmSection(\"application\")\nexport class ApplicationVersionFile extends VersionFile {}\n\n// The 800 series has a shared application/protocol file system\n// and uses a different ID for the application version file\nexport const ApplicationVersionFile800ID = 0x41000;\n\n@nvmFileID(ApplicationVersionFile800ID)\n@nvmSection(\"application\")\nexport class ApplicationVersionFile800 extends VersionFile {}\n\nexport const ProtocolVersionFileID = 0x50000;\n\n@nvmFileID(ProtocolVersionFileID)\n@nvmSection(\"protocol\")\nexport class ProtocolVersionFile extends VersionFile {}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAsB;AAEtB,qBAOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASD,MAAO,oBAAoB,uBAAO;SAAA;;;EACvC,YACC,SAA2D;AAE3D,UAAM,OAAO;AACb,YAAI,0CAA0B,OAAO,GAAG;AACvC,WAAK,SAAS,KAAK,QAAQ,CAAC;AAC5B,WAAK,QAAQ,KAAK,QAAQ,CAAC;AAC3B,WAAK,QAAQ,KAAK,QAAQ,CAAC;AAC3B,WAAK,QAAQ,KAAK,QAAQ,CAAC;IAC5B,OAAO;AACN,WAAK,SAAS,QAAQ;AACtB,WAAK,QAAQ,QAAQ;AACrB,WAAK,QAAQ,QAAQ;AACrB,WAAK,QAAQ,QAAQ;IACtB;EACD;EAEO;EACA;EACA;EACA;EAEA,YAAS;AACf,SAAK,UAAU,oBAAM,KAAK;MACzB,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;KACL;AACD,WAAO,MAAM,UAAS;EACvB;;EAGO,SAAM;AACZ,WAAO;MACN,GAAG,MAAM,OAAM;MACf,QAAQ,KAAK;MACb,SAAS,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK;;EAEpD;;AAGM,MAAM,2BAA2B;IAI3B,0BAAsB,MAAA;8BAFlC,0BAAU,wBAAwB,OAClC,2BAAW,aAAa,CAAC;;;;oBACkB;8CAAA,YAAW;WAAA;;;;;;;;AAAvD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;AAIN,MAAM,8BAA8B;IAI9B,6BAAyB,MAAA;8BAFrC,0BAAU,2BAA2B,OACrC,2BAAW,aAAa,CAAC;;;;oBACqB;iDAAA,YAAW;WAAA;;;;;;;;AAA1D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;AAEN,MAAM,wBAAwB;IAIxB,uBAAmB,MAAA;8BAF/B,0BAAU,qBAAqB,OAC/B,2BAAW,UAAU,CAAC;;;;oBACkB;2CAAA,YAAW;WAAA;;;;;;;;AAApD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -57,6 +58,7 @@ function serializeObject(obj) {
|
|
|
57
58
|
}
|
|
58
59
|
return ret;
|
|
59
60
|
}
|
|
61
|
+
__name(serializeObject, "serializeObject");
|
|
60
62
|
function fragmentLargeObject(obj, maxFirstFragmentSizeWithHeader, maxFragmentSizeWithHeader) {
|
|
61
63
|
const ret = [];
|
|
62
64
|
if (obj.data.length + import_consts.NVM3_OBJ_HEADER_SIZE_LARGE <= maxFirstFragmentSizeWithHeader) {
|
|
@@ -76,9 +78,11 @@ function fragmentLargeObject(obj, maxFirstFragmentSizeWithHeader, maxFragmentSiz
|
|
|
76
78
|
}
|
|
77
79
|
return ret;
|
|
78
80
|
}
|
|
81
|
+
__name(fragmentLargeObject, "fragmentLargeObject");
|
|
79
82
|
function getAlignedSize(size) {
|
|
80
83
|
return size + import_consts.NVM3_WORD_SIZE - 1 & ~(import_consts.NVM3_WORD_SIZE - 1);
|
|
81
84
|
}
|
|
85
|
+
__name(getAlignedSize, "getAlignedSize");
|
|
82
86
|
function getHeaderSize(obj) {
|
|
83
87
|
switch (obj.type) {
|
|
84
88
|
case import_consts.ObjectType.Deleted:
|
|
@@ -90,6 +94,7 @@ function getHeaderSize(obj) {
|
|
|
90
94
|
return import_consts.NVM3_OBJ_HEADER_SIZE_LARGE;
|
|
91
95
|
}
|
|
92
96
|
}
|
|
97
|
+
__name(getHeaderSize, "getHeaderSize");
|
|
93
98
|
function getFragmentSize(obj) {
|
|
94
99
|
switch (obj.type) {
|
|
95
100
|
case import_consts.ObjectType.Deleted:
|
|
@@ -102,9 +107,11 @@ function getFragmentSize(obj) {
|
|
|
102
107
|
return obj.data?.length ?? 0;
|
|
103
108
|
}
|
|
104
109
|
}
|
|
110
|
+
__name(getFragmentSize, "getFragmentSize");
|
|
105
111
|
function getRequiredSpace(obj) {
|
|
106
112
|
return getHeaderSize(obj) + getAlignedSize(getFragmentSize(obj));
|
|
107
113
|
}
|
|
114
|
+
__name(getRequiredSpace, "getRequiredSpace");
|
|
108
115
|
function getObjectHeader(obj, offset) {
|
|
109
116
|
const headerSize = getHeaderSize(obj);
|
|
110
117
|
const fragmentSize = getFragmentSize(obj);
|
|
@@ -118,6 +125,7 @@ function getObjectHeader(obj, offset) {
|
|
|
118
125
|
alignedSize: headerSize + getAlignedSize(fragmentSize)
|
|
119
126
|
};
|
|
120
127
|
}
|
|
128
|
+
__name(getObjectHeader, "getObjectHeader");
|
|
121
129
|
// Annotate the CommonJS export names for ESM import in node:
|
|
122
130
|
0 && (module.exports = {
|
|
123
131
|
fragmentLargeObject,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/nvm3/object.ts"],
|
|
4
4
|
"sourcesContent": ["import { Bytes } from \"@zwave-js/shared\";\nimport {\n\tFragmentType,\n\tNVM3_CODE_LARGE_SHIFT,\n\tNVM3_CODE_SMALL_SHIFT,\n\tNVM3_COUNTER_SIZE,\n\tNVM3_OBJ_FRAGTYPE_MASK,\n\tNVM3_OBJ_FRAGTYPE_SHIFT,\n\tNVM3_OBJ_HEADER_SIZE_LARGE,\n\tNVM3_OBJ_HEADER_SIZE_SMALL,\n\tNVM3_OBJ_KEY_MASK,\n\tNVM3_OBJ_KEY_SHIFT,\n\tNVM3_OBJ_LARGE_LEN_MASK,\n\tNVM3_OBJ_TYPE_MASK,\n\tNVM3_WORD_SIZE,\n\tObjectType,\n} from \"./consts.js\";\nimport { computeBergerCode, computeBergerCodeMulti } from \"./utils.js\";\n\nexport interface NVM3ObjectHeader {\n\toffset: number;\n\ttype: ObjectType;\n\tkey: number;\n\tfragmentType: FragmentType;\n\t/** The length of the header */\n\theaderSize: number;\n\t/** The length of the object data */\n\tfragmentSize: number;\n\t/** The total length of the object in the NVM */\n\talignedSize: number;\n}\n\nexport interface NVM3Object {\n\ttype: ObjectType;\n\tfragmentType: FragmentType;\n\tkey: number;\n\tdata?: Uint8Array;\n}\n\nexport function serializeObject(obj: NVM3Object): Uint8Array {\n\tconst isLarge = obj.type === ObjectType.DataLarge\n\t\t|| obj.type === ObjectType.CounterLarge;\n\tconst headerSize = isLarge\n\t\t? NVM3_OBJ_HEADER_SIZE_LARGE\n\t\t: NVM3_OBJ_HEADER_SIZE_SMALL;\n\tconst dataLength = obj.data?.length ?? 0;\n\tconst ret = new Bytes(dataLength + headerSize);\n\n\t// Write header\n\tif (isLarge) {\n\t\tlet hdr2 = dataLength & NVM3_OBJ_LARGE_LEN_MASK;\n\n\t\tconst hdr1 = (obj.type & NVM3_OBJ_TYPE_MASK)\n\t\t\t| ((obj.key & NVM3_OBJ_KEY_MASK) << NVM3_OBJ_KEY_SHIFT)\n\t\t\t| ((obj.fragmentType & NVM3_OBJ_FRAGTYPE_MASK)\n\t\t\t\t<< NVM3_OBJ_FRAGTYPE_SHIFT);\n\n\t\tconst bergerCode = computeBergerCodeMulti(\n\t\t\t[hdr1, hdr2],\n\t\t\t32 + NVM3_CODE_LARGE_SHIFT,\n\t\t);\n\t\thdr2 |= bergerCode << NVM3_CODE_LARGE_SHIFT;\n\n\t\tret.writeInt32LE(hdr1, 0);\n\t\tret.writeInt32LE(hdr2, 4);\n\t} else {\n\t\tlet typeAndLen = obj.type;\n\t\tif (typeAndLen === ObjectType.DataSmall && dataLength > 0) {\n\t\t\ttypeAndLen += dataLength;\n\t\t}\n\t\tlet hdr1 = (typeAndLen & NVM3_OBJ_TYPE_MASK)\n\t\t\t| ((obj.key & NVM3_OBJ_KEY_MASK) << NVM3_OBJ_KEY_SHIFT);\n\t\tconst bergerCode = computeBergerCode(hdr1, NVM3_CODE_SMALL_SHIFT);\n\t\thdr1 |= bergerCode << NVM3_CODE_SMALL_SHIFT;\n\n\t\tret.writeInt32LE(hdr1, 0);\n\t}\n\n\t// Write data\n\tif (obj.data) {\n\t\tret.set(obj.data, headerSize);\n\t}\n\treturn ret;\n}\n\nexport function fragmentLargeObject(\n\tobj: NVM3Object & { type: ObjectType.DataLarge | ObjectType.CounterLarge },\n\tmaxFirstFragmentSizeWithHeader: number,\n\tmaxFragmentSizeWithHeader: number,\n): NVM3Object[] {\n\tconst ret: NVM3Object[] = [];\n\n\tif (\n\t\tobj.data!.length + NVM3_OBJ_HEADER_SIZE_LARGE\n\t\t\t<= maxFirstFragmentSizeWithHeader\n\t) {\n\t\treturn [obj];\n\t}\n\n\tlet offset = 0;\n\twhile (offset < obj.data!.length) {\n\t\tconst fragmentSize = offset === 0\n\t\t\t? maxFirstFragmentSizeWithHeader - NVM3_OBJ_HEADER_SIZE_LARGE\n\t\t\t: maxFragmentSizeWithHeader - NVM3_OBJ_HEADER_SIZE_LARGE;\n\t\tconst data = obj.data!.subarray(offset, offset + fragmentSize);\n\n\t\tret.push({\n\t\t\ttype: obj.type,\n\t\t\tkey: obj.key,\n\t\t\tfragmentType: offset === 0\n\t\t\t\t? FragmentType.First\n\t\t\t\t: data.length + NVM3_OBJ_HEADER_SIZE_LARGE\n\t\t\t\t\t\t< maxFragmentSizeWithHeader\n\t\t\t\t? FragmentType.Last\n\t\t\t\t: FragmentType.Next,\n\t\t\tdata,\n\t\t});\n\n\t\toffset += fragmentSize;\n\t}\n\n\treturn ret;\n}\n\nexport function getAlignedSize(size: number): number {\n\treturn (size + NVM3_WORD_SIZE - 1) & ~(NVM3_WORD_SIZE - 1);\n}\n\nexport function getHeaderSize(obj: NVM3Object): number {\n\tswitch (obj.type) {\n\t\tcase ObjectType.Deleted:\n\t\tcase ObjectType.CounterSmall:\n\t\tcase ObjectType.DataSmall:\n\t\t\treturn NVM3_OBJ_HEADER_SIZE_SMALL;\n\t\tcase ObjectType.CounterLarge:\n\t\tcase ObjectType.DataLarge:\n\t\t\treturn NVM3_OBJ_HEADER_SIZE_LARGE;\n\t}\n}\n\nexport function getFragmentSize(obj: NVM3Object): number {\n\tswitch (obj.type) {\n\t\tcase ObjectType.Deleted:\n\t\t\treturn 0;\n\t\tcase ObjectType.CounterSmall:\n\t\t\treturn NVM3_COUNTER_SIZE;\n\t\tcase ObjectType.DataSmall:\n\t\tcase ObjectType.DataLarge:\n\t\tcase ObjectType.CounterLarge:\n\t\t\treturn obj.data?.length ?? 0;\n\t}\n}\n\nexport function getRequiredSpace(obj: NVM3Object): number {\n\treturn getHeaderSize(obj) + getAlignedSize(getFragmentSize(obj));\n}\n\nexport function getObjectHeader(\n\tobj: NVM3Object,\n\toffset: number,\n): NVM3ObjectHeader {\n\tconst headerSize = getHeaderSize(obj);\n\tconst fragmentSize = getFragmentSize(obj);\n\treturn {\n\t\toffset,\n\t\tkey: obj.key,\n\t\ttype: obj.type,\n\t\tfragmentType: obj.fragmentType,\n\t\theaderSize,\n\t\tfragmentSize,\n\t\talignedSize: headerSize + getAlignedSize(fragmentSize),\n\t};\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;AAAA,oBAAsB;AACtB,oBAeO;AACP,mBAA0D;AAsBpD,SAAU,gBAAgB,KAAe;AAC9C,QAAM,UAAU,IAAI,SAAS,yBAAW,aACpC,IAAI,SAAS,yBAAW;AAC5B,QAAM,aAAa,UAChB,2CACA;AACH,QAAM,aAAa,IAAI,MAAM,UAAU;AACvC,QAAM,MAAM,IAAI,oBAAM,aAAa,UAAU;AAG7C,MAAI,SAAS;AACZ,QAAI,OAAO,aAAa;AAExB,UAAM,OAAQ,IAAI,OAAO,oCACpB,IAAI,MAAM,oCAAsB,oCAChC,IAAI,eAAe,yCACnB;AAEL,UAAM,iBAAa,qCAClB,CAAC,MAAM,IAAI,GACX,KAAK,mCAAqB;AAE3B,YAAQ,cAAc;AAEtB,QAAI,aAAa,MAAM,CAAC;AACxB,QAAI,aAAa,MAAM,CAAC;EACzB,OAAO;AACN,QAAI,aAAa,IAAI;AACrB,QAAI,eAAe,yBAAW,aAAa,aAAa,GAAG;AAC1D,oBAAc;IACf;AACA,QAAI,OAAQ,aAAa,oCACpB,IAAI,MAAM,oCAAsB;AACrC,UAAM,iBAAa,gCAAkB,MAAM,mCAAqB;AAChE,YAAQ,cAAc;AAEtB,QAAI,aAAa,MAAM,CAAC;EACzB;AAGA,MAAI,IAAI,MAAM;AACb,QAAI,IAAI,IAAI,MAAM,UAAU;EAC7B;AACA,SAAO;AACR;AA5CgB;AA8CV,SAAU,oBACf,KACA,gCACA,2BAAiC;AAEjC,QAAM,MAAoB,CAAA;AAE1B,MACC,IAAI,KAAM,SAAS,4CACf,gCACH;AACD,WAAO,CAAC,GAAG;EACZ;AAEA,MAAI,SAAS;AACb,SAAO,SAAS,IAAI,KAAM,QAAQ;AACjC,UAAM,eAAe,WAAW,IAC7B,iCAAiC,2CACjC,4BAA4B;AAC/B,UAAM,OAAO,IAAI,KAAM,SAAS,QAAQ,SAAS,YAAY;AAE7D,QAAI,KAAK;MACR,MAAM,IAAI;MACV,KAAK,IAAI;MACT,cAAc,WAAW,IACtB,2BAAa,QACb,KAAK,SAAS,2CACZ,4BACF,2BAAa,OACb,2BAAa;MAChB;KACA;AAED,cAAU;EACX;AAEA,SAAO;AACR;AArCgB;AAuCV,SAAU,eAAe,MAAY;AAC1C,SAAQ,OAAO,+BAAiB,IAAK,EAAE,+BAAiB;AACzD;AAFgB;AAIV,SAAU,cAAc,KAAe;AAC5C,UAAQ,IAAI,MAAM;IACjB,KAAK,yBAAW;IAChB,KAAK,yBAAW;IAChB,KAAK,yBAAW;AACf,aAAO;IACR,KAAK,yBAAW;IAChB,KAAK,yBAAW;AACf,aAAO;EACT;AACD;AAVgB;AAYV,SAAU,gBAAgB,KAAe;AAC9C,UAAQ,IAAI,MAAM;IACjB,KAAK,yBAAW;AACf,aAAO;IACR,KAAK,yBAAW;AACf,aAAO;IACR,KAAK,yBAAW;IAChB,KAAK,yBAAW;IAChB,KAAK,yBAAW;AACf,aAAO,IAAI,MAAM,UAAU;EAC7B;AACD;AAXgB;AAaV,SAAU,iBAAiB,KAAe;AAC/C,SAAO,cAAc,GAAG,IAAI,eAAe,gBAAgB,GAAG,CAAC;AAChE;AAFgB;AAIV,SAAU,gBACf,KACA,QAAc;AAEd,QAAM,aAAa,cAAc,GAAG;AACpC,QAAM,eAAe,gBAAgB,GAAG;AACxC,SAAO;IACN;IACA,KAAK,IAAI;IACT,MAAM,IAAI;IACV,cAAc,IAAI;IAClB;IACA;IACA,aAAa,aAAa,eAAe,YAAY;;AAEvD;AAfgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -29,9 +30,11 @@ var import_utils = require("./utils.js");
|
|
|
29
30
|
function pageSizeToBits(pageSize) {
|
|
30
31
|
return Math.ceil(Math.log2(pageSize) - Math.log2(import_consts.NVM3_MIN_PAGE_SIZE));
|
|
31
32
|
}
|
|
33
|
+
__name(pageSizeToBits, "pageSizeToBits");
|
|
32
34
|
function pageSizeFromBits(bits) {
|
|
33
35
|
return import_consts.NVM3_MIN_PAGE_SIZE * Math.pow(2, bits);
|
|
34
36
|
}
|
|
37
|
+
__name(pageSizeFromBits, "pageSizeFromBits");
|
|
35
38
|
function serializePageHeader(header) {
|
|
36
39
|
const ret = new import_shared.Bytes(import_consts.NVM3_PAGE_HEADER_SIZE);
|
|
37
40
|
ret.writeUInt16LE(header.version, 0);
|
|
@@ -51,6 +54,7 @@ function serializePageHeader(header) {
|
|
|
51
54
|
ret.writeUInt16LE(formatInfo, 18);
|
|
52
55
|
return ret;
|
|
53
56
|
}
|
|
57
|
+
__name(serializePageHeader, "serializePageHeader");
|
|
54
58
|
// Annotate the CommonJS export names for ESM import in node:
|
|
55
59
|
0 && (module.exports = {
|
|
56
60
|
pageSizeFromBits,
|