@matter/nodejs 0.11.0-alpha.0-20241005-e3e4e4a7a
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/LICENSE +201 -0
- package/README.md +1 -0
- package/dist/cjs/behavior/index.d.ts +7 -0
- package/dist/cjs/behavior/index.d.ts.map +1 -0
- package/dist/cjs/behavior/index.js +8 -0
- package/dist/cjs/behavior/index.js.map +6 -0
- package/dist/cjs/behavior/instrumentation.d.ts +11 -0
- package/dist/cjs/behavior/instrumentation.d.ts.map +1 -0
- package/dist/cjs/behavior/instrumentation.js +47 -0
- package/dist/cjs/behavior/instrumentation.js.map +6 -0
- package/dist/cjs/behavior/register.d.ts +7 -0
- package/dist/cjs/behavior/register.d.ts.map +1 -0
- package/dist/cjs/behavior/register.js +9 -0
- package/dist/cjs/behavior/register.js.map +6 -0
- package/dist/cjs/crypto/NodeJsCrypto.d.ts +29 -0
- package/dist/cjs/crypto/NodeJsCrypto.d.ts.map +1 -0
- package/dist/cjs/crypto/NodeJsCrypto.js +154 -0
- package/dist/cjs/crypto/NodeJsCrypto.js.map +6 -0
- package/dist/cjs/crypto/index.d.ts +8 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -0
- package/dist/cjs/crypto/index.js +25 -0
- package/dist/cjs/crypto/index.js.map +6 -0
- package/dist/cjs/crypto/register.d.ts +7 -0
- package/dist/cjs/crypto/register.d.ts.map +1 -0
- package/dist/cjs/crypto/register.js +21 -0
- package/dist/cjs/crypto/register.js.map +6 -0
- package/dist/cjs/environment/NodeJsActionTracer.d.ts +15 -0
- package/dist/cjs/environment/NodeJsActionTracer.d.ts.map +1 -0
- package/dist/cjs/environment/NodeJsActionTracer.js +80 -0
- package/dist/cjs/environment/NodeJsActionTracer.js.map +6 -0
- package/dist/cjs/environment/NodeJsEnvironment.d.ts +55 -0
- package/dist/cjs/environment/NodeJsEnvironment.d.ts.map +1 -0
- package/dist/cjs/environment/NodeJsEnvironment.js +121 -0
- package/dist/cjs/environment/NodeJsEnvironment.js.map +6 -0
- package/dist/cjs/environment/ProcessManager.d.ts +45 -0
- package/dist/cjs/environment/ProcessManager.d.ts.map +1 -0
- package/dist/cjs/environment/ProcessManager.js +112 -0
- package/dist/cjs/environment/ProcessManager.js.map +6 -0
- package/dist/cjs/environment/index.d.ts +10 -0
- package/dist/cjs/environment/index.d.ts.map +1 -0
- package/dist/cjs/environment/index.js +27 -0
- package/dist/cjs/environment/index.js.map +6 -0
- package/dist/cjs/environment/register.d.ts +7 -0
- package/dist/cjs/environment/register.d.ts.map +1 -0
- package/dist/cjs/environment/register.js +10 -0
- package/dist/cjs/environment/register.js.map +6 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +29 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/log/FileLogger.d.ts +13 -0
- package/dist/cjs/log/FileLogger.d.ts.map +1 -0
- package/dist/cjs/log/FileLogger.js +46 -0
- package/dist/cjs/log/FileLogger.js.map +6 -0
- package/dist/cjs/log/index.d.ts +7 -0
- package/dist/cjs/log/index.d.ts.map +1 -0
- package/dist/cjs/log/index.js +24 -0
- package/dist/cjs/log/index.js.map +6 -0
- package/dist/cjs/net/NodeJsNetwork.d.ts +27 -0
- package/dist/cjs/net/NodeJsNetwork.d.ts.map +1 -0
- package/dist/cjs/net/NodeJsNetwork.js +145 -0
- package/dist/cjs/net/NodeJsNetwork.js.map +6 -0
- package/dist/cjs/net/NodeJsUdpChannel.d.ts +23 -0
- package/dist/cjs/net/NodeJsUdpChannel.d.ts.map +1 -0
- package/dist/cjs/net/NodeJsUdpChannel.js +181 -0
- package/dist/cjs/net/NodeJsUdpChannel.js.map +6 -0
- package/dist/cjs/net/index.d.ts +9 -0
- package/dist/cjs/net/index.d.ts.map +1 -0
- package/dist/cjs/net/index.js +26 -0
- package/dist/cjs/net/index.js.map +6 -0
- package/dist/cjs/net/register.d.ts +7 -0
- package/dist/cjs/net/register.d.ts.map +1 -0
- package/dist/cjs/net/register.js +16 -0
- package/dist/cjs/net/register.js.map +6 -0
- package/dist/cjs/package.json +11 -0
- package/dist/cjs/storage/StorageBackendDisk.d.ts +27 -0
- package/dist/cjs/storage/StorageBackendDisk.d.ts.map +1 -0
- package/dist/cjs/storage/StorageBackendDisk.js +128 -0
- package/dist/cjs/storage/StorageBackendDisk.js.map +6 -0
- package/dist/cjs/storage/StorageBackendJsonFile.d.ts +27 -0
- package/dist/cjs/storage/StorageBackendJsonFile.d.ts.map +1 -0
- package/dist/cjs/storage/StorageBackendJsonFile.js +110 -0
- package/dist/cjs/storage/StorageBackendJsonFile.js.map +6 -0
- package/dist/cjs/storage/index.d.ts +8 -0
- package/dist/cjs/storage/index.d.ts.map +1 -0
- package/dist/cjs/storage/index.js +25 -0
- package/dist/cjs/storage/index.js.map +6 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/behavior/index.d.ts +7 -0
- package/dist/esm/behavior/index.d.ts.map +1 -0
- package/dist/esm/behavior/index.js +7 -0
- package/dist/esm/behavior/index.js.map +6 -0
- package/dist/esm/behavior/instrumentation.d.ts +11 -0
- package/dist/esm/behavior/instrumentation.d.ts.map +1 -0
- package/dist/esm/behavior/instrumentation.js +27 -0
- package/dist/esm/behavior/instrumentation.js.map +6 -0
- package/dist/esm/behavior/register.d.ts +7 -0
- package/dist/esm/behavior/register.d.ts.map +1 -0
- package/dist/esm/behavior/register.js +8 -0
- package/dist/esm/behavior/register.js.map +6 -0
- package/dist/esm/crypto/NodeJsCrypto.d.ts +29 -0
- package/dist/esm/crypto/NodeJsCrypto.d.ts.map +1 -0
- package/dist/esm/crypto/NodeJsCrypto.js +135 -0
- package/dist/esm/crypto/NodeJsCrypto.js.map +6 -0
- package/dist/esm/crypto/index.d.ts +8 -0
- package/dist/esm/crypto/index.d.ts.map +1 -0
- package/dist/esm/crypto/index.js +8 -0
- package/dist/esm/crypto/index.js.map +6 -0
- package/dist/esm/crypto/register.d.ts +7 -0
- package/dist/esm/crypto/register.d.ts.map +1 -0
- package/dist/esm/crypto/register.js +20 -0
- package/dist/esm/crypto/register.js.map +6 -0
- package/dist/esm/environment/NodeJsActionTracer.d.ts +15 -0
- package/dist/esm/environment/NodeJsActionTracer.d.ts.map +1 -0
- package/dist/esm/environment/NodeJsActionTracer.js +60 -0
- package/dist/esm/environment/NodeJsActionTracer.js.map +6 -0
- package/dist/esm/environment/NodeJsEnvironment.d.ts +55 -0
- package/dist/esm/environment/NodeJsEnvironment.d.ts.map +1 -0
- package/dist/esm/environment/NodeJsEnvironment.js +108 -0
- package/dist/esm/environment/NodeJsEnvironment.js.map +6 -0
- package/dist/esm/environment/ProcessManager.d.ts +45 -0
- package/dist/esm/environment/ProcessManager.d.ts.map +1 -0
- package/dist/esm/environment/ProcessManager.js +92 -0
- package/dist/esm/environment/ProcessManager.js.map +6 -0
- package/dist/esm/environment/index.d.ts +10 -0
- package/dist/esm/environment/index.d.ts.map +1 -0
- package/dist/esm/environment/index.js +10 -0
- package/dist/esm/environment/index.js.map +6 -0
- package/dist/esm/environment/register.d.ts +7 -0
- package/dist/esm/environment/register.d.ts.map +1 -0
- package/dist/esm/environment/register.js +9 -0
- package/dist/esm/environment/register.js.map +6 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/log/FileLogger.d.ts +13 -0
- package/dist/esm/log/FileLogger.d.ts.map +1 -0
- package/dist/esm/log/FileLogger.js +26 -0
- package/dist/esm/log/FileLogger.js.map +6 -0
- package/dist/esm/log/index.d.ts +7 -0
- package/dist/esm/log/index.d.ts.map +1 -0
- package/dist/esm/log/index.js +7 -0
- package/dist/esm/log/index.js.map +6 -0
- package/dist/esm/net/NodeJsNetwork.d.ts +27 -0
- package/dist/esm/net/NodeJsNetwork.d.ts.map +1 -0
- package/dist/esm/net/NodeJsNetwork.js +133 -0
- package/dist/esm/net/NodeJsNetwork.js.map +6 -0
- package/dist/esm/net/NodeJsUdpChannel.d.ts +23 -0
- package/dist/esm/net/NodeJsUdpChannel.d.ts.map +1 -0
- package/dist/esm/net/NodeJsUdpChannel.js +159 -0
- package/dist/esm/net/NodeJsUdpChannel.js.map +6 -0
- package/dist/esm/net/index.d.ts +9 -0
- package/dist/esm/net/index.d.ts.map +1 -0
- package/dist/esm/net/index.js +9 -0
- package/dist/esm/net/index.js.map +6 -0
- package/dist/esm/net/register.d.ts +7 -0
- package/dist/esm/net/register.d.ts.map +1 -0
- package/dist/esm/net/register.js +15 -0
- package/dist/esm/net/register.js.map +6 -0
- package/dist/esm/package.json +11 -0
- package/dist/esm/storage/StorageBackendDisk.d.ts +27 -0
- package/dist/esm/storage/StorageBackendDisk.d.ts.map +1 -0
- package/dist/esm/storage/StorageBackendDisk.js +108 -0
- package/dist/esm/storage/StorageBackendDisk.js.map +6 -0
- package/dist/esm/storage/StorageBackendJsonFile.d.ts +27 -0
- package/dist/esm/storage/StorageBackendJsonFile.d.ts.map +1 -0
- package/dist/esm/storage/StorageBackendJsonFile.js +90 -0
- package/dist/esm/storage/StorageBackendJsonFile.js.map +6 -0
- package/dist/esm/storage/index.d.ts +8 -0
- package/dist/esm/storage/index.d.ts.map +1 -0
- package/dist/esm/storage/index.js +8 -0
- package/dist/esm/storage/index.js.map +6 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +114 -0
- package/src/behavior/index.ts +7 -0
- package/src/behavior/instrumentation.ts +32 -0
- package/src/behavior/register.ts +9 -0
- package/src/crypto/NodeJsCrypto.ts +164 -0
- package/src/crypto/index.ts +8 -0
- package/src/crypto/register.ts +25 -0
- package/src/environment/NodeJsActionTracer.ts +70 -0
- package/src/environment/NodeJsEnvironment.ts +172 -0
- package/src/environment/ProcessManager.ts +128 -0
- package/src/environment/index.ts +10 -0
- package/src/environment/register.ts +10 -0
- package/src/index.ts +12 -0
- package/src/log/FileLogger.ts +30 -0
- package/src/log/index.ts +7 -0
- package/src/net/NodeJsNetwork.ts +157 -0
- package/src/net/NodeJsUdpChannel.ts +179 -0
- package/src/net/index.ts +9 -0
- package/src/net/register.ts +20 -0
- package/src/storage/StorageBackendDisk.ts +132 -0
- package/src/storage/StorageBackendJsonFile.ts +102 -0
- package/src/storage/index.ts +8 -0
- package/src/tsconfig.json +28 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/log/FileLogger.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAAqB;AAPrB;AAAA;AAAA;AAAA;AAAA;AAcA,eAAsB,iBAAiB,MAAc;AACjD,QAAM,aAAa,UAAM,sBAAK,MAAM,GAAG;AACvC,QAAM,SAAS,WAAW,kBAAkB;AAC5C,UAAQ;AAAA,IACJ;AAAA,IACA,MAAM,KAAK,WAAW,MAAM,EAAE,MAAM,SAAO,OAAO,QAAQ,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAAA,EACvG;AAEA,SAAO,CAAC,QAAkB,iBAAyB;AAC/C,QAAI;AACA,aAAO,MAAM,GAAG,YAAY;AAAA,CAAI;AAAA,IACpC,SAAS,OAAO;AACZ,cAAQ,MAAM,gCAAgC,KAAK,EAAE;AAAA,IACzD;AAAA,EACJ;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/log/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var log_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(log_exports);
|
|
18
|
+
__reExport(log_exports, require("./FileLogger.js"), module.exports);
|
|
19
|
+
/**
|
|
20
|
+
* @license
|
|
21
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
22
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
23
|
+
*/
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Network, NetworkInterface, NetworkInterfaceDetails, UdpChannel, UdpChannelOptions } from "#general";
|
|
7
|
+
export declare class NodeJsNetwork extends Network {
|
|
8
|
+
static getMulticastInterfaceIpv4(netInterface: string): string | undefined;
|
|
9
|
+
static getMembershipMulticastInterfaces(netInterface: string | undefined, ipv4: boolean): (string | undefined)[];
|
|
10
|
+
static getNetInterfaceZoneIpv6(netInterface: string): string | undefined;
|
|
11
|
+
static getNetInterfaceForIp(ip: string): string | undefined;
|
|
12
|
+
private static readonly netInterfaces;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
private static getNetInterfaceForRemoteAddress;
|
|
15
|
+
private static getNetInterfaceZoneIpv6Internal;
|
|
16
|
+
/**
|
|
17
|
+
* Get all network interfaces.
|
|
18
|
+
* The optional configuration parameter allows to map interface names to types if this mapping is known.
|
|
19
|
+
* Each network interface which has no mapped type is returned as Ethernet for now.
|
|
20
|
+
*
|
|
21
|
+
* @param configuration - An array of objects with the name and type properties.
|
|
22
|
+
*/
|
|
23
|
+
getNetInterfaces(configuration?: NetworkInterface[]): NetworkInterface[];
|
|
24
|
+
getIpMac(netInterface: string): NetworkInterfaceDetails | undefined;
|
|
25
|
+
createUdpChannel(options: UdpChannelOptions): Promise<UdpChannel>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=NodeJsNetwork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeJsNetwork.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsNetwork.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKH,OAAO,EAEP,gBAAgB,EAChB,uBAAuB,EAEvB,UAAU,EACV,iBAAiB,EACpB,MAAM,UAAU,CAAC;AAMlB,qBAAa,aAAc,SAAQ,OAAO;IACtC,MAAM,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAW1E,MAAM,CAAC,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE;IAwBhH,MAAM,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMxE,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM;IAMtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAInC;IAEa,KAAK;IAIpB,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAwB9C,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAa9C;;;;;;OAMG;IACH,gBAAgB,CAAC,aAAa,GAAE,gBAAgB,EAAO,GAAG,gBAAgB,EAAE;IAmB5E,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAQ1D,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;CAG7E"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var NodeJsNetwork_exports = {};
|
|
20
|
+
__export(NodeJsNetwork_exports, {
|
|
21
|
+
NodeJsNetwork: () => NodeJsNetwork
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(NodeJsNetwork_exports);
|
|
24
|
+
var import_general = require("#general");
|
|
25
|
+
var import_os = require("os");
|
|
26
|
+
var import_NodeJsUdpChannel = require("./NodeJsUdpChannel.js");
|
|
27
|
+
/**
|
|
28
|
+
* @license
|
|
29
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
30
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
31
|
+
*/
|
|
32
|
+
const logger = import_general.Logger.get("NetworkNode");
|
|
33
|
+
class NodeJsNetwork extends import_general.Network {
|
|
34
|
+
static getMulticastInterfaceIpv4(netInterface) {
|
|
35
|
+
const netInterfaceInfo = (0, import_os.networkInterfaces)()[netInterface];
|
|
36
|
+
if (netInterfaceInfo === void 0) throw new import_general.NetworkError(`Unknown interface: ${netInterface}`);
|
|
37
|
+
for (const { address, family } of netInterfaceInfo) {
|
|
38
|
+
if (family === "IPv4") {
|
|
39
|
+
return address;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return void 0;
|
|
43
|
+
}
|
|
44
|
+
static getMembershipMulticastInterfaces(netInterface, ipv4) {
|
|
45
|
+
if (ipv4) {
|
|
46
|
+
return [void 0];
|
|
47
|
+
} else {
|
|
48
|
+
let networkInterfaceEntries = Object.entries((0, import_os.networkInterfaces)());
|
|
49
|
+
if (netInterface !== void 0) {
|
|
50
|
+
networkInterfaceEntries = networkInterfaceEntries.filter(([name]) => name === netInterface);
|
|
51
|
+
}
|
|
52
|
+
const multicastInterfaces = networkInterfaceEntries.flatMap(([netInterface2, netInterfaceInfo]) => {
|
|
53
|
+
if (netInterfaceInfo === void 0) return [];
|
|
54
|
+
const zone = this.getNetInterfaceZoneIpv6Internal(netInterface2, netInterfaceInfo);
|
|
55
|
+
return zone === void 0 ? [] : [`::%${zone}`];
|
|
56
|
+
});
|
|
57
|
+
if (multicastInterfaces.length === 0) {
|
|
58
|
+
logger.warn(
|
|
59
|
+
`No IPv6 multicast interface found${netInterface !== void 0 ? ` for interface ${netInterface}` : ""}.`
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
return multicastInterfaces;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
static getNetInterfaceZoneIpv6(netInterface) {
|
|
66
|
+
const netInterfaceInfo = (0, import_os.networkInterfaces)()[netInterface];
|
|
67
|
+
if (netInterfaceInfo === void 0) throw new import_general.NetworkError(`Unknown interface: ${netInterface}`);
|
|
68
|
+
return this.getNetInterfaceZoneIpv6Internal(netInterface, netInterfaceInfo);
|
|
69
|
+
}
|
|
70
|
+
static getNetInterfaceForIp(ip) {
|
|
71
|
+
return this.netInterfaces.get(ip);
|
|
72
|
+
}
|
|
73
|
+
static netInterfaces = new import_general.Cache(
|
|
74
|
+
"Network interface",
|
|
75
|
+
(ip) => this.getNetInterfaceForRemoteAddress(ip),
|
|
76
|
+
5 * 60 * 1e3
|
|
77
|
+
);
|
|
78
|
+
async close() {
|
|
79
|
+
await NodeJsNetwork.netInterfaces.close();
|
|
80
|
+
}
|
|
81
|
+
static getNetInterfaceForRemoteAddress(ip) {
|
|
82
|
+
if (ip.includes("%")) {
|
|
83
|
+
return ip.split("%")[1];
|
|
84
|
+
} else {
|
|
85
|
+
const interfaces = (0, import_os.networkInterfaces)();
|
|
86
|
+
for (const name in interfaces) {
|
|
87
|
+
const netInterfaces = interfaces[name];
|
|
88
|
+
for (const { address, netmask } of netInterfaces) {
|
|
89
|
+
if ((0, import_general.onSameNetwork)(ip, address, netmask)) {
|
|
90
|
+
return this.getNetInterfaceZoneIpv6Internal(name, netInterfaces);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if ((0, import_general.isIPv6)(ip)) {
|
|
95
|
+
if (ip.startsWith("fd")) {
|
|
96
|
+
return "";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return void 0;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
static getNetInterfaceZoneIpv6Internal(netInterface, netInterfaceInfos) {
|
|
103
|
+
if (process.platform !== "win32") {
|
|
104
|
+
return netInterface;
|
|
105
|
+
}
|
|
106
|
+
if (netInterfaceInfos === void 0) return void 0;
|
|
107
|
+
return netInterfaceInfos.find(({ address, family }) => family === "IPv6" && address.startsWith("fe80::"))?.scopeid?.toString();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get all network interfaces.
|
|
111
|
+
* The optional configuration parameter allows to map interface names to types if this mapping is known.
|
|
112
|
+
* Each network interface which has no mapped type is returned as Ethernet for now.
|
|
113
|
+
*
|
|
114
|
+
* @param configuration - An array of objects with the name and type properties.
|
|
115
|
+
*/
|
|
116
|
+
getNetInterfaces(configuration = []) {
|
|
117
|
+
const result = new Array();
|
|
118
|
+
const interfaces = (0, import_os.networkInterfaces)();
|
|
119
|
+
for (const name in interfaces) {
|
|
120
|
+
const netInterfaces = interfaces[name];
|
|
121
|
+
if (netInterfaces.length === 0) continue;
|
|
122
|
+
if (netInterfaces[0].internal) continue;
|
|
123
|
+
let type = import_general.InterfaceType.Ethernet;
|
|
124
|
+
if (configuration.length > 0) {
|
|
125
|
+
const nameType = configuration.find(({ name: mapName }) => name === mapName);
|
|
126
|
+
if (nameType !== void 0 && nameType.type !== void 0) {
|
|
127
|
+
type = nameType.type;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
result.push({ name, type });
|
|
131
|
+
}
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
getIpMac(netInterface) {
|
|
135
|
+
const netInterfaceInfo = (0, import_os.networkInterfaces)()[netInterface];
|
|
136
|
+
if (netInterfaceInfo === void 0) return void 0;
|
|
137
|
+
const ipV4 = netInterfaceInfo.filter(({ family }) => family === "IPv4").map(({ address }) => address);
|
|
138
|
+
const ipV6 = netInterfaceInfo.filter(({ family }) => family === "IPv6").map(({ address }) => address);
|
|
139
|
+
return { mac: netInterfaceInfo[0].mac, ipV4, ipV6 };
|
|
140
|
+
}
|
|
141
|
+
createUdpChannel(options) {
|
|
142
|
+
return import_NodeJsUdpChannel.NodeJsUdpChannel.create(options);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=NodeJsNetwork.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/net/NodeJsNetwork.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["netInterface"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ChannelType, UdpChannel, UdpChannelOptions } from "#general";
|
|
7
|
+
import * as dgram from "dgram";
|
|
8
|
+
export declare class NodeJsUdpChannel implements UdpChannel {
|
|
9
|
+
private readonly type;
|
|
10
|
+
private readonly socket;
|
|
11
|
+
private readonly netInterface?;
|
|
12
|
+
static create({ listeningPort, type, listeningAddress, netInterface, membershipAddresses, }: UdpChannelOptions): Promise<NodeJsUdpChannel>;
|
|
13
|
+
readonly maxPayloadSize: number;
|
|
14
|
+
constructor(type: "udp4" | "udp6", socket: dgram.Socket, netInterface?: string | undefined);
|
|
15
|
+
onData(listener: (netInterface: string, peerAddress: string, peerPort: number, data: Uint8Array) => void): {
|
|
16
|
+
close: () => Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
send(host: string, port: number, data: Uint8Array): Promise<void>;
|
|
19
|
+
close(): Promise<void>;
|
|
20
|
+
get port(): number;
|
|
21
|
+
supports(type: ChannelType, address?: string): boolean;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=NodeJsUdpChannel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeJsUdpChannel.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsUdpChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,WAAW,EAOX,UAAU,EACV,iBAAiB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,qBAAa,gBAAiB,YAAW,UAAU;IA6D3C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;WA9DrB,MAAM,CAAC,EAChB,aAAa,EACb,IAAI,EACJ,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACtB,EAAE,iBAAiB;IAmDpB,QAAQ,CAAC,cAAc,SAAwB;gBAG1B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,YAAA;IAG1C,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI;;;IAelG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAiBjD,KAAK;IAQX,IAAI,IAAI,WAEP;IAED,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;CAiB/C"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var NodeJsUdpChannel_exports = {};
|
|
30
|
+
__export(NodeJsUdpChannel_exports, {
|
|
31
|
+
NodeJsUdpChannel: () => NodeJsUdpChannel
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(NodeJsUdpChannel_exports);
|
|
34
|
+
var import_general = require("#general");
|
|
35
|
+
var import_protocol = require("#protocol");
|
|
36
|
+
var dgram = __toESM(require("dgram"), 1);
|
|
37
|
+
var import_NodeJsNetwork = require("./NodeJsNetwork.js");
|
|
38
|
+
/**
|
|
39
|
+
* @license
|
|
40
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
41
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
42
|
+
*/
|
|
43
|
+
const logger = import_general.Logger.get("UdpChannelNode");
|
|
44
|
+
function createDgramSocket(host, port, options) {
|
|
45
|
+
const socket = dgram.createSocket(options);
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
const handleBindError = (error) => {
|
|
48
|
+
try {
|
|
49
|
+
socket.close();
|
|
50
|
+
} catch (error2) {
|
|
51
|
+
logger.debug("Error on closing socket", error2);
|
|
52
|
+
}
|
|
53
|
+
reject(error);
|
|
54
|
+
};
|
|
55
|
+
socket.on("error", handleBindError);
|
|
56
|
+
socket.bind(port, host, () => {
|
|
57
|
+
const { address: localHost, port: localPort } = socket.address();
|
|
58
|
+
logger.debug(
|
|
59
|
+
"Socket created and bound ",
|
|
60
|
+
import_general.Diagnostic.dict({
|
|
61
|
+
remoteAddress: `${host}:${port}`,
|
|
62
|
+
localAddress: `${localHost}:${localPort}`
|
|
63
|
+
})
|
|
64
|
+
);
|
|
65
|
+
socket.removeListener("error", handleBindError);
|
|
66
|
+
socket.on("error", (error) => logger.error(error));
|
|
67
|
+
resolve(socket);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
class NodeJsUdpChannel {
|
|
72
|
+
constructor(type, socket, netInterface) {
|
|
73
|
+
this.type = type;
|
|
74
|
+
this.socket = socket;
|
|
75
|
+
this.netInterface = netInterface;
|
|
76
|
+
}
|
|
77
|
+
static async create({
|
|
78
|
+
listeningPort,
|
|
79
|
+
type,
|
|
80
|
+
listeningAddress,
|
|
81
|
+
netInterface,
|
|
82
|
+
membershipAddresses
|
|
83
|
+
}) {
|
|
84
|
+
const socketOptions = { type, reuseAddr: true };
|
|
85
|
+
if (type === "udp6") {
|
|
86
|
+
socketOptions.ipv6Only = true;
|
|
87
|
+
}
|
|
88
|
+
const socket = await createDgramSocket(listeningAddress, listeningPort, socketOptions);
|
|
89
|
+
socket.setBroadcast(true);
|
|
90
|
+
let netInterfaceZone;
|
|
91
|
+
if (netInterface !== void 0) {
|
|
92
|
+
netInterfaceZone = import_NodeJsNetwork.NodeJsNetwork.getNetInterfaceZoneIpv6(netInterface);
|
|
93
|
+
let multicastInterface;
|
|
94
|
+
if (type === "udp4") {
|
|
95
|
+
multicastInterface = import_NodeJsNetwork.NodeJsNetwork.getMulticastInterfaceIpv4(netInterface);
|
|
96
|
+
if (multicastInterface === void 0) {
|
|
97
|
+
throw new import_general.NetworkError(`No IPv4 addresses on interface: ${netInterface}`);
|
|
98
|
+
}
|
|
99
|
+
} else {
|
|
100
|
+
if (netInterfaceZone === void 0) {
|
|
101
|
+
throw new import_general.NetworkError(`No IPv6 addresses on interface: ${netInterface}`);
|
|
102
|
+
}
|
|
103
|
+
multicastInterface = `::%${netInterfaceZone}`;
|
|
104
|
+
}
|
|
105
|
+
logger.debug(
|
|
106
|
+
"Initialize multicast",
|
|
107
|
+
import_general.Diagnostic.dict({
|
|
108
|
+
address: `${multicastInterface}:${listeningPort}`,
|
|
109
|
+
interface: netInterface,
|
|
110
|
+
type
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
socket.setMulticastInterface(multicastInterface);
|
|
114
|
+
}
|
|
115
|
+
if (membershipAddresses !== void 0) {
|
|
116
|
+
const multicastInterfaces = import_NodeJsNetwork.NodeJsNetwork.getMembershipMulticastInterfaces(netInterface, type === "udp4");
|
|
117
|
+
for (const address of membershipAddresses) {
|
|
118
|
+
for (const multicastInterface of multicastInterfaces) {
|
|
119
|
+
try {
|
|
120
|
+
socket.addMembership(address, multicastInterface);
|
|
121
|
+
} catch (error) {
|
|
122
|
+
logger.warn(
|
|
123
|
+
`Error adding membership for address ${address}${multicastInterface ? ` with interface ${multicastInterface}` : ""}: ${error}`
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return new NodeJsUdpChannel(type, socket, netInterfaceZone);
|
|
130
|
+
}
|
|
131
|
+
maxPayloadSize = import_general.MAX_UDP_MESSAGE_SIZE;
|
|
132
|
+
onData(listener) {
|
|
133
|
+
const messageListener = (data, { address, port }) => {
|
|
134
|
+
const netInterface = this.netInterface ?? import_NodeJsNetwork.NodeJsNetwork.getNetInterfaceForIp(address);
|
|
135
|
+
if (netInterface === void 0) return;
|
|
136
|
+
listener(netInterface, address, port, data);
|
|
137
|
+
};
|
|
138
|
+
this.socket.on("message", messageListener);
|
|
139
|
+
return {
|
|
140
|
+
close: async () => {
|
|
141
|
+
this.socket.removeListener("message", messageListener);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
async send(host, port, data) {
|
|
146
|
+
return new Promise((resolve, reject) => {
|
|
147
|
+
this.socket.send(data, port, host, (error) => {
|
|
148
|
+
if (error !== null) {
|
|
149
|
+
const netError = error instanceof Error && "code" in error && error.code === "EHOSTUNREACH" ? new import_protocol.RetransmissionLimitReachedError(error.message) : new import_general.NetworkError(error.message);
|
|
150
|
+
netError.stack = error.stack;
|
|
151
|
+
reject(netError);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
resolve();
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
async close() {
|
|
159
|
+
try {
|
|
160
|
+
this.socket.close();
|
|
161
|
+
} catch (error) {
|
|
162
|
+
logger.debug("Error on closing socket", error);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
get port() {
|
|
166
|
+
return this.socket.address().port;
|
|
167
|
+
}
|
|
168
|
+
supports(type, address) {
|
|
169
|
+
if (type !== import_general.ChannelType.UDP) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
if (address === void 0) {
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
if (this.type === "udp4") {
|
|
176
|
+
return (0, import_general.isIPv4)(address);
|
|
177
|
+
}
|
|
178
|
+
return (0, import_general.isIPv6)(address);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=NodeJsUdpChannel.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/net/NodeJsUdpChannel.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["error"]
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/net/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,eAAe,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var net_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(net_exports);
|
|
18
|
+
var import_register = require("./register.js");
|
|
19
|
+
__reExport(net_exports, require("./NodeJsNetwork.js"), module.exports);
|
|
20
|
+
__reExport(net_exports, require("./NodeJsUdpChannel.js"), module.exports);
|
|
21
|
+
/**
|
|
22
|
+
* @license
|
|
23
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
24
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
25
|
+
*/
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/net/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_general = require("#general");
|
|
3
|
+
var import_NodeJsNetwork = require("./NodeJsNetwork.js");
|
|
4
|
+
/**
|
|
5
|
+
* @license
|
|
6
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
7
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
8
|
+
*/
|
|
9
|
+
try {
|
|
10
|
+
import_general.Network.get();
|
|
11
|
+
} catch (error) {
|
|
12
|
+
import_general.NoProviderError.accept(error);
|
|
13
|
+
import_general.Network.get = (0, import_general.singleton)(() => new import_NodeJsNetwork.NodeJsNetwork());
|
|
14
|
+
process.on("beforeExit", () => void import_general.Network.get().close());
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/net/register.ts"],
|
|
4
|
+
"mappings": ";AAMA,qBAAoD;AACpD,2BAA8B;AAP9B;AAAA;AAAA;AAAA;AAAA;AAUA,IAAI;AACA,yBAAQ,IAAI;AAChB,SAAS,OAAO;AACZ,iCAAgB,OAAO,KAAK;AAE5B,yBAAQ,UAAM,0BAAU,MAAM,IAAI,mCAAc,CAAC;AAGjD,UAAQ,GAAG,cAAc,MAAM,KAAK,uBAAQ,IAAI,EAAE,MAAM,CAAC;AAC7D;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { SupportedStorageTypes, SyncStorage } from "#general";
|
|
7
|
+
export declare class StorageBackendDisk extends SyncStorage {
|
|
8
|
+
private readonly localStorage;
|
|
9
|
+
protected isInitialized: boolean;
|
|
10
|
+
constructor(path: string, clear?: boolean);
|
|
11
|
+
get initialized(): boolean;
|
|
12
|
+
initialize(): void;
|
|
13
|
+
close(): void;
|
|
14
|
+
clear(): void;
|
|
15
|
+
getContextBaseKey(contexts: string[], allowEmptyContext?: boolean): string;
|
|
16
|
+
buildStorageKey(contexts: string[], key: string): string;
|
|
17
|
+
get<T extends SupportedStorageTypes>(contexts: string[], key: string): T | undefined;
|
|
18
|
+
set(contexts: string[], key: string, value: SupportedStorageTypes): void;
|
|
19
|
+
set(contexts: string[], values: Record<string, SupportedStorageTypes>): void;
|
|
20
|
+
delete(contexts: string[], key: string): void;
|
|
21
|
+
/** Returns all keys of a storage context without keys of sub-contexts */
|
|
22
|
+
keys(contexts: string[]): string[];
|
|
23
|
+
values(contexts: string[]): Record<string, SupportedStorageTypes>;
|
|
24
|
+
contexts(contexts: string[]): string[];
|
|
25
|
+
clearAll(contexts: string[]): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=StorageBackendDisk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageBackendDisk.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageBackendDisk.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA0B,qBAAqB,EAAE,WAAW,EAAU,MAAM,UAAU,CAAC;AAG9F,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,SAAS,CAAC,aAAa,UAAS;gBAEpB,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ;IAMvC,IAAI,WAAW,YAEd;IAED,UAAU;IAIV,KAAK;IAIL,KAAK;IAIL,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,iBAAiB,UAAQ;IAY/D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAQ/C,GAAG,CAAC,CAAC,SAAS,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAMpF,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IACxE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,IAAI;IAe5E,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAItC,yEAAyE;IACzE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;IAavB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;IASzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;IAkB3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;CAS9B"}
|