@matterbridge/core 3.5.3 → 3.5.4-dev-20260211-520e349
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/README.md +1 -1
- package/dist/cli.d.ts +0 -24
- package/dist/cli.js +1 -97
- package/dist/cliEmitter.d.ts +0 -36
- package/dist/cliEmitter.js +0 -37
- package/dist/cliHistory.d.ts +0 -42
- package/dist/cliHistory.js +0 -38
- package/dist/clusters/export.d.ts +0 -1
- package/dist/clusters/export.js +0 -2
- package/dist/deviceManager.d.ts +0 -108
- package/dist/deviceManager.js +1 -114
- package/dist/devices/airConditioner.d.ts +0 -75
- package/dist/devices/airConditioner.js +0 -57
- package/dist/devices/basicVideoPlayer.d.ts +0 -58
- package/dist/devices/basicVideoPlayer.js +1 -56
- package/dist/devices/batteryStorage.d.ts +0 -43
- package/dist/devices/batteryStorage.js +1 -48
- package/dist/devices/castingVideoPlayer.d.ts +0 -63
- package/dist/devices/castingVideoPlayer.js +2 -65
- package/dist/devices/cooktop.d.ts +0 -55
- package/dist/devices/cooktop.js +0 -56
- package/dist/devices/dishwasher.d.ts +0 -55
- package/dist/devices/dishwasher.js +0 -57
- package/dist/devices/evse.d.ts +0 -57
- package/dist/devices/evse.js +10 -74
- package/dist/devices/export.d.ts +0 -1
- package/dist/devices/export.js +0 -5
- package/dist/devices/extractorHood.d.ts +0 -41
- package/dist/devices/extractorHood.js +0 -43
- package/dist/devices/heatPump.d.ts +0 -43
- package/dist/devices/heatPump.js +2 -50
- package/dist/devices/laundryDryer.d.ts +0 -58
- package/dist/devices/laundryDryer.js +3 -62
- package/dist/devices/laundryWasher.d.ts +0 -64
- package/dist/devices/laundryWasher.js +4 -70
- package/dist/devices/microwaveOven.d.ts +1 -77
- package/dist/devices/microwaveOven.js +5 -88
- package/dist/devices/oven.d.ts +0 -82
- package/dist/devices/oven.js +0 -85
- package/dist/devices/refrigerator.d.ts +0 -100
- package/dist/devices/refrigerator.js +0 -102
- package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
- package/dist/devices/roboticVacuumCleaner.js +9 -100
- package/dist/devices/solarPower.d.ts +0 -36
- package/dist/devices/solarPower.js +0 -38
- package/dist/devices/speaker.d.ts +0 -79
- package/dist/devices/speaker.js +0 -84
- package/dist/devices/temperatureControl.d.ts +0 -21
- package/dist/devices/temperatureControl.js +3 -24
- package/dist/devices/waterHeater.d.ts +0 -74
- package/dist/devices/waterHeater.js +2 -82
- package/dist/dgram/export.d.ts +0 -1
- package/dist/dgram/export.js +0 -1
- package/dist/export.d.ts +0 -23
- package/dist/export.js +0 -28
- package/dist/frontend.d.ts +0 -187
- package/dist/frontend.js +62 -581
- package/dist/helpers.d.ts +0 -43
- package/dist/helpers.js +0 -86
- package/dist/jestutils/export.d.ts +0 -1
- package/dist/jestutils/export.js +0 -1
- package/dist/jestutils/jestHelpers.d.ts +0 -259
- package/dist/jestutils/jestHelpers.js +15 -396
- package/dist/matter/behaviors.d.ts +0 -1
- package/dist/matter/behaviors.js +0 -2
- package/dist/matter/clusters.d.ts +0 -1
- package/dist/matter/clusters.js +0 -2
- package/dist/matter/devices.d.ts +0 -1
- package/dist/matter/devices.js +0 -2
- package/dist/matter/endpoints.d.ts +0 -1
- package/dist/matter/endpoints.js +0 -2
- package/dist/matter/export.d.ts +0 -1
- package/dist/matter/export.js +0 -2
- package/dist/matter/types.d.ts +0 -1
- package/dist/matter/types.js +0 -2
- package/dist/matterNode.d.ts +0 -258
- package/dist/matterNode.js +8 -356
- package/dist/matterbridge.d.ts +0 -389
- package/dist/matterbridge.js +48 -878
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
- package/dist/matterbridgeAccessoryPlatform.js +0 -50
- package/dist/matterbridgeBehaviors.d.ts +0 -24
- package/dist/matterbridgeBehaviors.js +5 -65
- package/dist/matterbridgeDeviceTypes.d.ts +0 -649
- package/dist/matterbridgeDeviceTypes.js +6 -673
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
- package/dist/matterbridgeDynamicPlatform.js +0 -50
- package/dist/matterbridgeEndpoint.d.ts +0 -1369
- package/dist/matterbridgeEndpoint.js +56 -1514
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
- package/dist/matterbridgeEndpointHelpers.js +20 -483
- package/dist/matterbridgeEndpointTypes.d.ts +0 -70
- package/dist/matterbridgeEndpointTypes.js +0 -25
- package/dist/matterbridgePlatform.d.ts +0 -434
- package/dist/matterbridgePlatform.js +1 -473
- package/dist/pluginManager.d.ts +0 -307
- package/dist/pluginManager.js +6 -346
- package/dist/spawn.d.ts +0 -32
- package/dist/spawn.js +1 -71
- package/dist/utils/export.d.ts +0 -1
- package/dist/utils/export.js +0 -1
- package/package.json +27 -6
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cliEmitter.d.ts.map +0 -1
- package/dist/cliEmitter.js.map +0 -1
- package/dist/cliHistory.d.ts.map +0 -1
- package/dist/cliHistory.js.map +0 -1
- package/dist/clusters/export.d.ts.map +0 -1
- package/dist/clusters/export.js.map +0 -1
- package/dist/crypto/attestationDecoder.d.ts +0 -180
- package/dist/crypto/attestationDecoder.d.ts.map +0 -1
- package/dist/crypto/attestationDecoder.js +0 -176
- package/dist/crypto/attestationDecoder.js.map +0 -1
- package/dist/crypto/declarationDecoder.d.ts +0 -72
- package/dist/crypto/declarationDecoder.d.ts.map +0 -1
- package/dist/crypto/declarationDecoder.js +0 -241
- package/dist/crypto/declarationDecoder.js.map +0 -1
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts +0 -9
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts.map +0 -1
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js +0 -120
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js.map +0 -1
- package/dist/crypto/read-extensions.d.ts +0 -2
- package/dist/crypto/read-extensions.d.ts.map +0 -1
- package/dist/crypto/read-extensions.js +0 -81
- package/dist/crypto/read-extensions.js.map +0 -1
- package/dist/crypto/testData.d.ts +0 -31
- package/dist/crypto/testData.d.ts.map +0 -1
- package/dist/crypto/testData.js +0 -131
- package/dist/crypto/testData.js.map +0 -1
- package/dist/crypto/walk-der.d.ts +0 -2
- package/dist/crypto/walk-der.d.ts.map +0 -1
- package/dist/crypto/walk-der.js +0 -165
- package/dist/crypto/walk-der.js.map +0 -1
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/devices/airConditioner.d.ts.map +0 -1
- package/dist/devices/airConditioner.js.map +0 -1
- package/dist/devices/basicVideoPlayer.d.ts.map +0 -1
- package/dist/devices/basicVideoPlayer.js.map +0 -1
- package/dist/devices/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.js.map +0 -1
- package/dist/devices/castingVideoPlayer.d.ts.map +0 -1
- package/dist/devices/castingVideoPlayer.js.map +0 -1
- package/dist/devices/cooktop.d.ts.map +0 -1
- package/dist/devices/cooktop.js.map +0 -1
- package/dist/devices/dishwasher.d.ts.map +0 -1
- package/dist/devices/dishwasher.js.map +0 -1
- package/dist/devices/evse.d.ts.map +0 -1
- package/dist/devices/evse.js.map +0 -1
- package/dist/devices/export.d.ts.map +0 -1
- package/dist/devices/export.js.map +0 -1
- package/dist/devices/extractorHood.d.ts.map +0 -1
- package/dist/devices/extractorHood.js.map +0 -1
- package/dist/devices/heatPump.d.ts.map +0 -1
- package/dist/devices/heatPump.js.map +0 -1
- package/dist/devices/laundryDryer.d.ts.map +0 -1
- package/dist/devices/laundryDryer.js.map +0 -1
- package/dist/devices/laundryWasher.d.ts.map +0 -1
- package/dist/devices/laundryWasher.js.map +0 -1
- package/dist/devices/microwaveOven.d.ts.map +0 -1
- package/dist/devices/microwaveOven.js.map +0 -1
- package/dist/devices/oven.d.ts.map +0 -1
- package/dist/devices/oven.js.map +0 -1
- package/dist/devices/refrigerator.d.ts.map +0 -1
- package/dist/devices/refrigerator.js.map +0 -1
- package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/devices/roboticVacuumCleaner.js.map +0 -1
- package/dist/devices/solarPower.d.ts.map +0 -1
- package/dist/devices/solarPower.js.map +0 -1
- package/dist/devices/speaker.d.ts.map +0 -1
- package/dist/devices/speaker.js.map +0 -1
- package/dist/devices/temperatureControl.d.ts.map +0 -1
- package/dist/devices/temperatureControl.js.map +0 -1
- package/dist/devices/waterHeater.d.ts.map +0 -1
- package/dist/devices/waterHeater.js.map +0 -1
- package/dist/dgram/export.d.ts.map +0 -1
- package/dist/dgram/export.js.map +0 -1
- package/dist/export.d.ts.map +0 -1
- package/dist/export.js.map +0 -1
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/jestutils/export.d.ts.map +0 -1
- package/dist/jestutils/export.js.map +0 -1
- package/dist/jestutils/jestHelpers.d.ts.map +0 -1
- package/dist/jestutils/jestHelpers.js.map +0 -1
- package/dist/matter/behaviors.d.ts.map +0 -1
- package/dist/matter/behaviors.js.map +0 -1
- package/dist/matter/clusters.d.ts.map +0 -1
- package/dist/matter/clusters.js.map +0 -1
- package/dist/matter/devices.d.ts.map +0 -1
- package/dist/matter/devices.js.map +0 -1
- package/dist/matter/endpoints.d.ts.map +0 -1
- package/dist/matter/endpoints.js.map +0 -1
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matter/types.d.ts.map +0 -1
- package/dist/matter/types.js.map +0 -1
- package/dist/matterNode.d.ts.map +0 -1
- package/dist/matterNode.js.map +0 -1
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
- package/dist/matterbridgeEndpointTypes.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/mb_coap.d.ts +0 -24
- package/dist/mb_coap.d.ts.map +0 -1
- package/dist/mb_coap.js +0 -89
- package/dist/mb_coap.js.map +0 -1
- package/dist/mb_health.d.ts +0 -77
- package/dist/mb_health.d.ts.map +0 -1
- package/dist/mb_health.js +0 -147
- package/dist/mb_health.js.map +0 -1
- package/dist/mb_mdns.d.ts +0 -24
- package/dist/mb_mdns.d.ts.map +0 -1
- package/dist/mb_mdns.js +0 -285
- package/dist/mb_mdns.js.map +0 -1
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/spawn.d.ts.map +0 -1
- package/dist/spawn.js.map +0 -1
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/workers/brand.d.ts +0 -25
- package/dist/workers/brand.d.ts.map +0 -1
- package/dist/workers/brand.extend.d.ts +0 -10
- package/dist/workers/brand.extend.d.ts.map +0 -1
- package/dist/workers/brand.extend.js +0 -15
- package/dist/workers/brand.extend.js.map +0 -1
- package/dist/workers/brand.invalid.d.ts +0 -9
- package/dist/workers/brand.invalid.d.ts.map +0 -1
- package/dist/workers/brand.invalid.js +0 -19
- package/dist/workers/brand.invalid.js.map +0 -1
- package/dist/workers/brand.js +0 -67
- package/dist/workers/brand.js.map +0 -1
- package/dist/workers/clusterTypes.d.ts +0 -47
- package/dist/workers/clusterTypes.d.ts.map +0 -1
- package/dist/workers/clusterTypes.js +0 -57
- package/dist/workers/clusterTypes.js.map +0 -1
- package/dist/workers/frontendWorker.d.ts +0 -2
- package/dist/workers/frontendWorker.d.ts.map +0 -1
- package/dist/workers/frontendWorker.js +0 -90
- package/dist/workers/frontendWorker.js.map +0 -1
- package/dist/workers/helloWorld.d.ts +0 -2
- package/dist/workers/helloWorld.d.ts.map +0 -1
- package/dist/workers/helloWorld.js +0 -135
- package/dist/workers/helloWorld.js.map +0 -1
- package/dist/workers/matterWorker.d.ts +0 -2
- package/dist/workers/matterWorker.d.ts.map +0 -1
- package/dist/workers/matterWorker.js +0 -104
- package/dist/workers/matterWorker.js.map +0 -1
- package/dist/workers/matterbridgeWorker.d.ts +0 -2
- package/dist/workers/matterbridgeWorker.d.ts.map +0 -1
- package/dist/workers/matterbridgeWorker.js +0 -75
- package/dist/workers/matterbridgeWorker.js.map +0 -1
- package/dist/workers/messageLab.d.ts +0 -134
- package/dist/workers/messageLab.d.ts.map +0 -1
- package/dist/workers/messageLab.js +0 -129
- package/dist/workers/messageLab.js.map +0 -1
- package/dist/workers/testWorker.d.ts +0 -2
- package/dist/workers/testWorker.d.ts.map +0 -1
- package/dist/workers/testWorker.js +0 -45
- package/dist/workers/testWorker.js.map +0 -1
- package/dist/workers/usage.d.ts +0 -19
- package/dist/workers/usage.d.ts.map +0 -1
- package/dist/workers/usage.js +0 -140
- package/dist/workers/usage.js.map +0 -1
- package/dist/workers/workerManager.d.ts +0 -115
- package/dist/workers/workerManager.d.ts.map +0 -1
- package/dist/workers/workerManager.js +0 -464
- package/dist/workers/workerManager.js.map +0 -1
- package/dist/workers/workerServer.d.ts +0 -126
- package/dist/workers/workerServer.d.ts.map +0 -1
- package/dist/workers/workerServer.js +0 -340
- package/dist/workers/workerServer.js.map +0 -1
- package/dist/workers/workerTypes.d.ts +0 -23
- package/dist/workers/workerTypes.d.ts.map +0 -1
- package/dist/workers/workerTypes.js +0 -3
- package/dist/workers/workerTypes.js.map +0 -1
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import { threadId, threadName, isMainThread, Worker, workerData, parentPort } from 'node:worker_threads';
|
|
3
|
-
import { pathToFileURL } from 'node:url';
|
|
4
|
-
import { resolve } from 'node:path';
|
|
5
|
-
import { inspect } from 'node:util';
|
|
6
|
-
import { exec } from 'node:child_process';
|
|
7
|
-
// import { Tracker } from '../utils/tracker.js';
|
|
8
|
-
/**
|
|
9
|
-
* Typed helper to create an ESM Worker.
|
|
10
|
-
*
|
|
11
|
-
* This function uses pathToFileURL to convert the relative path to a file URL,
|
|
12
|
-
* which is necessary for ESM modules. It also sets the worker type to 'module'.
|
|
13
|
-
*
|
|
14
|
-
* @param {string} name - name of the worker
|
|
15
|
-
* @param {string} relativePath - path to the worker file code: it must be an ESM module in javascript
|
|
16
|
-
* @param {Record<string, boolean | number | string | object>} [workerData] - optional data to pass to the worker
|
|
17
|
-
* @param {string[]} [argv] - optional command line arguments to pass to the worker. If not provided, inherits from the main thread.
|
|
18
|
-
* @param {NodeJS.ProcessEnv} [env] - optional environment variables to pass to the worker. If not provided, inherits from the main thread.
|
|
19
|
-
* @param {string[]} [execArgv] - optional execArgv to pass to the worker. If not provided no execArgv are passed.
|
|
20
|
-
* @returns {Worker} - the created Worker instance
|
|
21
|
-
*/
|
|
22
|
-
function createESMWorker(name, relativePath, workerData, argv, env, execArgv) {
|
|
23
|
-
const fileURL = pathToFileURL(resolve(relativePath));
|
|
24
|
-
const options = {
|
|
25
|
-
workerData,
|
|
26
|
-
type: 'module',
|
|
27
|
-
name,
|
|
28
|
-
argv: argv ?? process.argv.slice(2), // Pass command line arguments to worker
|
|
29
|
-
env: env ?? process.env, // Inherit environment variables
|
|
30
|
-
execArgv, // execArgv for node like --inspect
|
|
31
|
-
};
|
|
32
|
-
return new Worker(fileURL, options);
|
|
33
|
-
}
|
|
34
|
-
if (!isMainThread) {
|
|
35
|
-
console.log('Hello world!');
|
|
36
|
-
console.log(`${isMainThread ? 'Main thread' : 'Worker thread'}: ${threadName}:${threadId} Pid: ${process.pid}`);
|
|
37
|
-
console.log(`ParentPort: ${parentPort ? 'active' : 'not active'}`);
|
|
38
|
-
console.log(`WorkerData: ${inspect(workerData, true, 10, true)}`);
|
|
39
|
-
console.log(`Argv: ${process.argv.slice(2).join(' ')}`);
|
|
40
|
-
console.log(`Env: ${inspect(process.env, true, 10, true)}`);
|
|
41
|
-
exec(workerData.command, (error, stdout, stderr) => {
|
|
42
|
-
if (error) {
|
|
43
|
-
console.error(`Error executing npm list: ${error.message}`);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (stderr) {
|
|
47
|
-
console.error(`npm list stderr:\n${stderr}`);
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
console.log(`npm list output:\n${stdout}`);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
if (isMainThread) {
|
|
54
|
-
createESMWorker('HelloWorld', './dist/workers/helloWorld.js', { command: 'npm list --global --depth=0' });
|
|
55
|
-
}
|
|
56
|
-
/*
|
|
57
|
-
if (isMainThread) {
|
|
58
|
-
createESMWorker('HelloWorld', './dist/workers/helloWorld.js', { command: 'npm_install' }, ['--npm_install']);
|
|
59
|
-
createESMWorker('HelloWorld', './dist/workers/helloWorld.js', { command: 'npm_list' }, ['--npm_list']);
|
|
60
|
-
const worker = createESMWorker('HelloWorld', './dist/workers/helloWorld.js', { command: 'tracker' }, ['--tracker', '--debug'], { WORKER_ENV: 'production' }, ['--inspect']);
|
|
61
|
-
const savedName = worker.threadName;
|
|
62
|
-
const savedId = worker.threadId;
|
|
63
|
-
|
|
64
|
-
worker.on('online', () => {
|
|
65
|
-
console.log(`Worker thread ${worker.threadName}:${worker.threadId} is online.`);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
worker.on('exit', (code) => {
|
|
69
|
-
console.log(`Worker thread ${savedName}:${savedId} exited with code ${code}.`);
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
worker.on('error', (error) => {
|
|
73
|
-
console.error(`Worker thread ${worker.threadName}:${worker.threadId} encountered an error: ${error.message}`);
|
|
74
|
-
});
|
|
75
|
-
} else {
|
|
76
|
-
if (process.argv.includes('--npm_install')) {
|
|
77
|
-
console.log('Installing npm packages:');
|
|
78
|
-
import('node:child_process')
|
|
79
|
-
.then(({ exec }) => {
|
|
80
|
-
exec('npm install --global --verbose matterbridge-webhooks', (error, stdout, stderr) => {
|
|
81
|
-
if (error) {
|
|
82
|
-
console.error(`Error executing npm install: ${error.message}`);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
if (stderr) {
|
|
86
|
-
console.error(`npm install stderr:\n${stderr}`);
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
console.log(`npm install output:\n${stdout}`);
|
|
90
|
-
});
|
|
91
|
-
return;
|
|
92
|
-
})
|
|
93
|
-
.catch((error) => {
|
|
94
|
-
console.error(`Error importing child_process: ${error.message}`);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
if (process.argv.includes('--npm_list')) {
|
|
98
|
-
console.log('Listing npm packages:');
|
|
99
|
-
import('node:child_process')
|
|
100
|
-
.then(({ exec }) => {
|
|
101
|
-
exec('npm list --global --depth=0', (error, stdout, stderr) => {
|
|
102
|
-
if (error) {
|
|
103
|
-
console.error(`Error executing npm list: ${error.message}`);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
if (stderr) {
|
|
107
|
-
console.error(`npm list stderr: ${stderr}`);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
console.log(`npm list output:\n${stdout}`);
|
|
111
|
-
});
|
|
112
|
-
return;
|
|
113
|
-
})
|
|
114
|
-
.catch((error) => {
|
|
115
|
-
console.error(`Error importing child_process: ${error.message}`);
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
if (process.argv.includes('--tracker')) {
|
|
119
|
-
const tracker = new Tracker('Hello world!');
|
|
120
|
-
tracker.start(5000);
|
|
121
|
-
|
|
122
|
-
console.log('Hello world!');
|
|
123
|
-
console.log(`Thread: ${threadName}:${threadId}\nPid: ${process.pid}\n${isMainThread ? 'Main thread' : 'Worker thread'}`);
|
|
124
|
-
console.log(`ParentPort: ${parentPort ? 'active' : 'not active'}`);
|
|
125
|
-
console.log(`WorkerData: ${inspect(workerData, true, 10, true)}`);
|
|
126
|
-
console.log(`Argv: ${process.argv.slice(2).join(' ')}`);
|
|
127
|
-
console.log(`Env: ${inspect(process.env, true, 10, true)}`);
|
|
128
|
-
|
|
129
|
-
setTimeout(() => {
|
|
130
|
-
tracker.stop();
|
|
131
|
-
}, 31000);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
*/
|
|
135
|
-
//# sourceMappingURL=helloWorld.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helloWorld.js","sourceRoot":"","sources":["../../src/workers/helloWorld.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAiB,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACxH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,iDAAiD;AAEjD;;;;;;;;;;;;;GAaG;AACH,SAAS,eAAe,CACtB,IAAY,EACZ,YAAoB,EACpB,UAA+D,EAC/D,IAAe,EACf,GAAuB,EACvB,QAAmB;IAEnB,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAqC;QAChD,UAAU;QACV,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,wCAAwC;QAC7E,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,gCAAgC;QACzD,QAAQ,EAAE,mCAAmC;KAC9C,CAAC;IACF,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,IAAI,CAAC,YAAY,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,KAAK,UAAU,IAAI,QAAQ,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChH,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AACD,IAAI,YAAY,EAAE,CAAC;IACjB,eAAe,CAAC,YAAY,EAAE,8BAA8B,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;AAC5G,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matterWorker.d.ts","sourceRoot":"","sources":["../../src/workers/matterWorker.ts"],"names":[],"mappings":""}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
// pluginWorker.ts
|
|
2
|
-
// Worker entry for plugin logic
|
|
3
|
-
import { parentPort, workerData } from 'node:worker_threads';
|
|
4
|
-
import path from 'node:path';
|
|
5
|
-
import { debugStringify } from 'node-ansi-logger';
|
|
6
|
-
import { NodeStorageManager } from 'node-persist-manager';
|
|
7
|
-
import { hasParameter } from '@matterbridge/utils';
|
|
8
|
-
import { NODE_STORAGE_DIR } from '@matterbridge/types';
|
|
9
|
-
import { MatterNode } from '../matterNode.js';
|
|
10
|
-
import { PluginManager } from '../pluginManager.js';
|
|
11
|
-
import { WorkerServer } from './workerServer.js';
|
|
12
|
-
let matter;
|
|
13
|
-
const server = new WorkerServer('MatterWorker', parentPort, workerData);
|
|
14
|
-
server.on('control_message', async (msg) => {
|
|
15
|
-
// Handle control messages from manager if needed
|
|
16
|
-
if (msg.type !== 'ping')
|
|
17
|
-
server.log.debug(`${server.name} received control message: ${debugStringify(msg)}`);
|
|
18
|
-
switch (msg.type) {
|
|
19
|
-
case 'init':
|
|
20
|
-
// Initialization logic if needed
|
|
21
|
-
matter = new MatterNode(server.matterbridge);
|
|
22
|
-
await matter.create();
|
|
23
|
-
await matter.start();
|
|
24
|
-
if (hasParameter('addplugins')) {
|
|
25
|
-
server.matterbridge.nodeStorage = new NodeStorageManager({
|
|
26
|
-
dir: path.join(server.matterbridge.matterbridgeDirectory, NODE_STORAGE_DIR),
|
|
27
|
-
writeQueue: false,
|
|
28
|
-
expiredInterval: undefined,
|
|
29
|
-
logging: false,
|
|
30
|
-
});
|
|
31
|
-
server.matterbridge.nodeContext = await server.matterbridge.nodeStorage.createStorage('matterbridge');
|
|
32
|
-
// @ts-expect-error Assigning log to matterbridge for worker
|
|
33
|
-
server.matterbridge.log = server.log;
|
|
34
|
-
server.matterbridge.addBridgedEndpoint = async (pluginName, device) => {
|
|
35
|
-
return matter.addBridgedEndpoint(pluginName, device);
|
|
36
|
-
};
|
|
37
|
-
server.matterbridge.removeBridgedEndpoint = async (pluginName, device) => {
|
|
38
|
-
return matter.removeBridgedEndpoint(pluginName, device);
|
|
39
|
-
};
|
|
40
|
-
server.matterbridge.removeAllBridgedEndpoints = async (pluginName) => {
|
|
41
|
-
return matter.removeAllBridgedEndpoints(pluginName);
|
|
42
|
-
};
|
|
43
|
-
const plugins = new PluginManager(server.matterbridge);
|
|
44
|
-
await plugins.add('../matterbridge-test');
|
|
45
|
-
plugins.destroy();
|
|
46
|
-
}
|
|
47
|
-
server.parentPost({ ...msg, success: true });
|
|
48
|
-
break;
|
|
49
|
-
case 'ping':
|
|
50
|
-
// Ping handled in WorkerServer
|
|
51
|
-
break;
|
|
52
|
-
case 'exit':
|
|
53
|
-
// Cleanup logic if needed
|
|
54
|
-
await matter.stop();
|
|
55
|
-
await matter.destroy();
|
|
56
|
-
server.parentPost({ ...msg, success: true });
|
|
57
|
-
server.exit(0);
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
server.on('manager_message', async (msg) => {
|
|
62
|
-
// Handle direct messages from manager if needed
|
|
63
|
-
if (server.isWorkerRequest(msg)) {
|
|
64
|
-
server.log.debug(`${server.name} received manager message: ${debugStringify(msg)}`);
|
|
65
|
-
switch (msg.type) {
|
|
66
|
-
case 'matter_start':
|
|
67
|
-
{
|
|
68
|
-
server.matterbridge.nodeStorage = new NodeStorageManager({
|
|
69
|
-
dir: path.join(server.matterbridge.matterbridgeDirectory, NODE_STORAGE_DIR),
|
|
70
|
-
writeQueue: false,
|
|
71
|
-
expiredInterval: undefined,
|
|
72
|
-
logging: false,
|
|
73
|
-
});
|
|
74
|
-
server.matterbridge.nodeContext = await server.matterbridge.nodeStorage.createStorage('matterbridge');
|
|
75
|
-
const plugins = new PluginManager(server.matterbridge);
|
|
76
|
-
await plugins.loadFromStorage();
|
|
77
|
-
for (const plugin of plugins.array().filter((p) => p.enabled)) {
|
|
78
|
-
await plugins.load(plugin, true, 'MatterWorker starting matter');
|
|
79
|
-
}
|
|
80
|
-
plugins.destroy();
|
|
81
|
-
}
|
|
82
|
-
await matter.startServerNode();
|
|
83
|
-
server.broadcast({ type: 'matter_start', src: 'matter', dst: 'all', id: msg.id, result: { storeId: matter.serverNode?.id || '', success: true } });
|
|
84
|
-
break;
|
|
85
|
-
case 'matter_stop':
|
|
86
|
-
await matter.stopServerNode();
|
|
87
|
-
server.broadcast({ type: 'matter_stop', src: 'matter', dst: 'all', id: msg.id, result: { storeId: matter.serverNode?.id || '', success: true } });
|
|
88
|
-
break;
|
|
89
|
-
default:
|
|
90
|
-
// Handle unknown message types
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
server.on('broadcast_message', (msg) => {
|
|
96
|
-
// Handle broadcast messages from other workers if needed
|
|
97
|
-
server.log.debug(`${server.name} received broadcast message: ${debugStringify(msg)}`);
|
|
98
|
-
switch (msg.type) {
|
|
99
|
-
default:
|
|
100
|
-
// Handle unknown message types
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
//# sourceMappingURL=matterWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matterWorker.js","sourceRoot":"","sources":["../../src/workers/matterWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matterbridgeWorker.d.ts","sourceRoot":"","sources":["../../src/workers/matterbridgeWorker.ts"],"names":[],"mappings":""}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// matterbridgeWorker.ts
|
|
2
|
-
// Worker entry for matterbridge logic
|
|
3
|
-
import { parentPort, workerData } from 'node:worker_threads';
|
|
4
|
-
import path from 'node:path';
|
|
5
|
-
import { debugStringify } from 'node-ansi-logger';
|
|
6
|
-
import { NodeStorageManager } from 'node-persist-manager';
|
|
7
|
-
import { NODE_STORAGE_DIR } from '@matterbridge/types';
|
|
8
|
-
import { Matterbridge } from '../matterbridge.js';
|
|
9
|
-
import { WorkerServer } from './workerServer.js';
|
|
10
|
-
let matterbridge;
|
|
11
|
-
const server = new WorkerServer('MatterbridgeWorker', parentPort, workerData);
|
|
12
|
-
process.argv.push('--homedir', './temp');
|
|
13
|
-
process.argv.push('--frontend', '0');
|
|
14
|
-
process.argv.push('--test');
|
|
15
|
-
server.on('control_message', async (msg) => {
|
|
16
|
-
// Handle control messages from manager if needed
|
|
17
|
-
if (msg.type !== 'ping')
|
|
18
|
-
server.log.debug(`${server.name} received control message: ${debugStringify(msg)}`);
|
|
19
|
-
switch (msg.type) {
|
|
20
|
-
case 'init':
|
|
21
|
-
// Initialization logic if needed
|
|
22
|
-
matterbridge = await Matterbridge.loadInstance(false);
|
|
23
|
-
matterbridge.nodeStorage = new NodeStorageManager({
|
|
24
|
-
dir: path.join(server.matterbridge.matterbridgeDirectory, NODE_STORAGE_DIR),
|
|
25
|
-
writeQueue: false,
|
|
26
|
-
expiredInterval: undefined,
|
|
27
|
-
logging: false,
|
|
28
|
-
});
|
|
29
|
-
matterbridge.nodeContext = await matterbridge.nodeStorage.createStorage('matterbridge');
|
|
30
|
-
await matterbridge.plugins.loadFromStorage();
|
|
31
|
-
server.parentPost({ ...msg, success: true });
|
|
32
|
-
break;
|
|
33
|
-
case 'ping':
|
|
34
|
-
// Ping handled in WorkerServer
|
|
35
|
-
break;
|
|
36
|
-
case 'exit':
|
|
37
|
-
// Cleanup logic if needed
|
|
38
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
|
-
await matterbridge.cleanup('MatterbridgeWorker exiting on request from manager', false, 0);
|
|
40
|
-
server.parentPost({ ...msg, success: true });
|
|
41
|
-
server.exit(0);
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
server.on('manager_message', (msg) => {
|
|
46
|
-
// Handle direct messages from manager if needed
|
|
47
|
-
server.log.debug(`${server.name} received manager message: ${debugStringify(msg)}`);
|
|
48
|
-
switch (msg.type) {
|
|
49
|
-
case 'matterbridge_initialize':
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
-
matterbridge.initialize();
|
|
52
|
-
break;
|
|
53
|
-
default:
|
|
54
|
-
// Handle unknown message types
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
server.on('broadcast_message', async (msg) => {
|
|
59
|
-
// Handle broadcast messages from other workers if needed
|
|
60
|
-
if (server.isWorkerRequest(msg)) {
|
|
61
|
-
server.log.debug(`${server.name} received broadcast message: ${debugStringify(msg)}`);
|
|
62
|
-
switch (msg.type) {
|
|
63
|
-
case 'get_log_level':
|
|
64
|
-
server.broadcast({ ...msg, result: { logLevel: await matterbridge.getLogLevel() } });
|
|
65
|
-
break;
|
|
66
|
-
case 'set_log_level':
|
|
67
|
-
await matterbridge.setLogLevel(msg.params.logLevel);
|
|
68
|
-
break;
|
|
69
|
-
default:
|
|
70
|
-
// Handle unknown message types
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
//# sourceMappingURL=matterbridgeWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matterbridgeWorker.js","sourceRoot":"","sources":["../../src/workers/matterbridgeWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/** Types of worker source */
|
|
2
|
-
export type WorkerSrcType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates';
|
|
3
|
-
/** Types of worker destination */
|
|
4
|
-
export type WorkerDstType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates' | 'all';
|
|
5
|
-
/** Normalized message request structure */
|
|
6
|
-
type NormalizeRequest<T> = T extends {
|
|
7
|
-
params: infer P;
|
|
8
|
-
} ? ([P] extends [undefined] ? {
|
|
9
|
-
params?: undefined;
|
|
10
|
-
} : {
|
|
11
|
-
params: P;
|
|
12
|
-
}) : Record<never, never>;
|
|
13
|
-
/** Normalized message response structure that guarantees a successful result */
|
|
14
|
-
type NormalizeResponseSuccess<T> = T & {
|
|
15
|
-
error?: never;
|
|
16
|
-
};
|
|
17
|
-
/** Normalized message response structure that contains an error */
|
|
18
|
-
type NormalizeResponseError<T> = {
|
|
19
|
-
error: string;
|
|
20
|
-
} & {
|
|
21
|
-
[K in keyof T]?: never;
|
|
22
|
-
};
|
|
23
|
-
/** Normalized message response structure */
|
|
24
|
-
type NormalizeResponse<T> = NormalizeResponseSuccess<T> | NormalizeResponseError<T>;
|
|
25
|
-
/** Message request structure with id, timestamp, src and dst */
|
|
26
|
-
type WorkerMessageRequestMap = {
|
|
27
|
-
[K in keyof WorkerMessageTypes]: {
|
|
28
|
-
type: K;
|
|
29
|
-
id?: number;
|
|
30
|
-
timestamp?: number;
|
|
31
|
-
src: WorkerSrcType;
|
|
32
|
-
dst: WorkerDstType;
|
|
33
|
-
} & NormalizeRequest<WorkerMessageTypes[K]['request']>;
|
|
34
|
-
};
|
|
35
|
-
/** Message request structure with id, timestamp, src and dst */
|
|
36
|
-
export type WorkerMessageRequest<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageRequestMap[K];
|
|
37
|
-
/** Message response structure with id, timestamp, elapsed, src and dst */
|
|
38
|
-
type WorkerMessageResponseMap = {
|
|
39
|
-
[K in keyof WorkerMessageTypes]: {
|
|
40
|
-
type: K;
|
|
41
|
-
id?: number;
|
|
42
|
-
timestamp?: number;
|
|
43
|
-
elapsed?: number;
|
|
44
|
-
src: WorkerSrcType;
|
|
45
|
-
dst: WorkerDstType;
|
|
46
|
-
} & NormalizeResponse<WorkerMessageTypes[K]['response']>;
|
|
47
|
-
};
|
|
48
|
-
/** Message response structure with id, timestamp, elapsed, src and dst */
|
|
49
|
-
export type WorkerMessageResponse<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseMap[K];
|
|
50
|
-
/** Message response success structure that guarantees a successful result */
|
|
51
|
-
type WorkerMessageResponseSuccessMap = {
|
|
52
|
-
[K in keyof WorkerMessageTypes]: {
|
|
53
|
-
type: K;
|
|
54
|
-
id?: number;
|
|
55
|
-
timestamp?: number;
|
|
56
|
-
elapsed?: number;
|
|
57
|
-
src: WorkerSrcType;
|
|
58
|
-
dst: WorkerDstType;
|
|
59
|
-
} & NormalizeResponseSuccess<WorkerMessageTypes[K]['response']>;
|
|
60
|
-
};
|
|
61
|
-
/** Message response success structure with id, timestamp, elapsed, src and dst */
|
|
62
|
-
export type WorkerMessageResponseSuccess<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseSuccessMap[K];
|
|
63
|
-
/** Union type for WorkerMessageRequest and WorkerMessageResponse */
|
|
64
|
-
export type WorkerMessage<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageRequest<K> | WorkerMessageResponse<K>;
|
|
65
|
-
/** Map of all worker message types with their request and response structures */
|
|
66
|
-
export type WorkerMessageTypes = {
|
|
67
|
-
jest: {
|
|
68
|
-
request: {
|
|
69
|
-
params: {
|
|
70
|
-
userId: number;
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
response: {
|
|
74
|
-
result: {
|
|
75
|
-
name: string;
|
|
76
|
-
age: number;
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
jest_simple: {
|
|
81
|
-
request: {
|
|
82
|
-
params: undefined;
|
|
83
|
-
};
|
|
84
|
-
response: {
|
|
85
|
-
result: {
|
|
86
|
-
success: true;
|
|
87
|
-
};
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* Generate a pseudo-random identifier between 1,000,000 and 9,999,999.
|
|
93
|
-
*
|
|
94
|
-
* @returns {number} A seven-digit identifier.
|
|
95
|
-
*/
|
|
96
|
-
export declare function getUniqueId(): number;
|
|
97
|
-
/**
|
|
98
|
-
* Send a request message from the worker implementation.
|
|
99
|
-
*
|
|
100
|
-
* @template K
|
|
101
|
-
* @param {WorkerMessageRequest<K>} msg The request message to send.
|
|
102
|
-
* @returns {void}
|
|
103
|
-
*/
|
|
104
|
-
export declare function request<K extends keyof WorkerMessageTypes>(msg: WorkerMessageRequest<K>): void;
|
|
105
|
-
/**
|
|
106
|
-
* Send a response message from the worker implementation.
|
|
107
|
-
*
|
|
108
|
-
* @template K
|
|
109
|
-
* @param {WorkerMessageResponse<K>} msg The response message to send.
|
|
110
|
-
* @returns {void}
|
|
111
|
-
*/
|
|
112
|
-
export declare function respond<K extends keyof WorkerMessageTypes>(msg: WorkerMessageResponse<K>): void;
|
|
113
|
-
/**
|
|
114
|
-
* Type guard to verify a value matches the WorkerMessageRequest structure.
|
|
115
|
-
*
|
|
116
|
-
* @param {unknown} value Value to test.
|
|
117
|
-
* @returns {value is WorkerMessageRequest} True when the value looks like a request message.
|
|
118
|
-
*/
|
|
119
|
-
export declare function isWorkerRequest(value: unknown): value is WorkerMessageRequest;
|
|
120
|
-
/**
|
|
121
|
-
* Type guard to verify a value matches the WorkerMessageResponse structure.
|
|
122
|
-
*
|
|
123
|
-
* @param {unknown} value Value to test.
|
|
124
|
-
* @returns {value is WorkerMessageResponse} True when the value looks like a response message.
|
|
125
|
-
*/
|
|
126
|
-
export declare function isWorkerResponse(value: unknown): value is WorkerMessageResponse;
|
|
127
|
-
/**
|
|
128
|
-
* Example handler function demonstrating type guards.
|
|
129
|
-
*
|
|
130
|
-
* @param {WorkerMessage} msg The incoming worker message.
|
|
131
|
-
*/
|
|
132
|
-
export declare function handler(msg: WorkerMessage): void;
|
|
133
|
-
export {};
|
|
134
|
-
//# sourceMappingURL=messageLab.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messageLab.d.ts","sourceRoot":"","sources":["../../src/workers/messageLab.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate a pseudo-random identifier between 1,000,000 and 9,999,999.
|
|
3
|
-
*
|
|
4
|
-
* @returns {number} A seven-digit identifier.
|
|
5
|
-
*/
|
|
6
|
-
export function getUniqueId() {
|
|
7
|
-
return Math.floor(Math.random() * 900000000) + 100000000;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Send a request message from the worker implementation.
|
|
11
|
-
*
|
|
12
|
-
* @template K
|
|
13
|
-
* @param {WorkerMessageRequest<K>} msg The request message to send.
|
|
14
|
-
* @returns {void}
|
|
15
|
-
*/
|
|
16
|
-
export function request(msg) {
|
|
17
|
-
if (msg.id === undefined) {
|
|
18
|
-
msg.id = getUniqueId();
|
|
19
|
-
}
|
|
20
|
-
if (msg.timestamp === undefined) {
|
|
21
|
-
msg.timestamp = Date.now();
|
|
22
|
-
}
|
|
23
|
-
// to complete
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Send a response message from the worker implementation.
|
|
27
|
-
*
|
|
28
|
-
* @template K
|
|
29
|
-
* @param {WorkerMessageResponse<K>} msg The response message to send.
|
|
30
|
-
* @returns {void}
|
|
31
|
-
*/
|
|
32
|
-
export function respond(msg) {
|
|
33
|
-
if (msg.timestamp) {
|
|
34
|
-
msg.elapsed = Date.now() - msg.timestamp;
|
|
35
|
-
}
|
|
36
|
-
msg.timestamp = Date.now();
|
|
37
|
-
// to complete
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Type guard to verify a value matches the WorkerMessageRequest structure.
|
|
41
|
-
*
|
|
42
|
-
* @param {unknown} value Value to test.
|
|
43
|
-
* @returns {value is WorkerMessageRequest} True when the value looks like a request message.
|
|
44
|
-
*/
|
|
45
|
-
export function isWorkerRequest(value) {
|
|
46
|
-
if (typeof value !== 'object' || value === null) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
const message = value;
|
|
50
|
-
return (typeof message.type === 'string' &&
|
|
51
|
-
typeof message.src === 'string' &&
|
|
52
|
-
typeof message.dst === 'string' &&
|
|
53
|
-
typeof message.id === 'number' &&
|
|
54
|
-
typeof message.timestamp === 'number');
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Type guard to verify a value matches the WorkerMessageResponse structure.
|
|
58
|
-
*
|
|
59
|
-
* @param {unknown} value Value to test.
|
|
60
|
-
* @returns {value is WorkerMessageResponse} True when the value looks like a response message.
|
|
61
|
-
*/
|
|
62
|
-
export function isWorkerResponse(value) {
|
|
63
|
-
if (typeof value !== 'object' || value === null) {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
const message = value;
|
|
67
|
-
if (typeof message.type !== 'string' ||
|
|
68
|
-
typeof message.src !== 'string' ||
|
|
69
|
-
typeof message.dst !== 'string' ||
|
|
70
|
-
typeof message.id !== 'number' ||
|
|
71
|
-
typeof message.timestamp !== 'number') {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
const hasError = typeof message.error === 'string';
|
|
75
|
-
const hasResult = message.result !== undefined;
|
|
76
|
-
return hasError !== hasResult;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Example handler function demonstrating type guards.
|
|
80
|
-
*
|
|
81
|
-
* @param {WorkerMessage} msg The incoming worker message.
|
|
82
|
-
*/
|
|
83
|
-
export function handler(msg) {
|
|
84
|
-
if (isWorkerRequest(msg)) {
|
|
85
|
-
switch (msg.type) {
|
|
86
|
-
case 'jest':
|
|
87
|
-
// msg.params is inferred as '{ userId: number }' here
|
|
88
|
-
if (msg.params.userId === 1) {
|
|
89
|
-
respond({ type: 'jest', src: msg.src, dst: msg.dst, id: msg.id, timestamp: msg.timestamp, result: { name: 'Alice', age: 30 } });
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
respond({ type: 'jest', src: msg.src, dst: msg.dst, id: msg.id, timestamp: msg.timestamp, error: 'User not found' });
|
|
93
|
-
}
|
|
94
|
-
respond({ type: 'jest', src: msg.src, dst: msg.dst, id: msg.id, timestamp: msg.timestamp, result: { name: 'Test', age: 42 } });
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// Correct request example usage
|
|
100
|
-
request({ type: 'jest', src: 'frontend', dst: 'manager', params: { userId: 1 } });
|
|
101
|
-
request({ type: 'jest_simple', src: 'frontend', dst: 'manager' });
|
|
102
|
-
// Negative request type assertions
|
|
103
|
-
// @ts-expect-error unknown message type value
|
|
104
|
-
request({ type: 'unknown', src: 'frontend', dst: 'manager' });
|
|
105
|
-
// @ts-expect-error missing required params for jest request
|
|
106
|
-
request({ type: 'jest', src: 'frontend', dst: 'manager' });
|
|
107
|
-
// @ts-expect-error params.userId must be a number
|
|
108
|
-
request({ type: 'jest', src: 'frontend', dst: 'manager', params: { userId: '1' } });
|
|
109
|
-
// @ts-expect-error params must be undefined for jest_simple request
|
|
110
|
-
request({ type: 'jest_simple', src: 'frontend', dst: 'manager', params: {} });
|
|
111
|
-
// Correct response example usage
|
|
112
|
-
respond({ type: 'jest', src: 'manager', dst: 'frontend', result: { name: 'Test', age: 42 } });
|
|
113
|
-
respond({ type: 'jest', src: 'manager', dst: 'frontend', error: 'Not found' });
|
|
114
|
-
respond({ type: 'jest_simple', src: 'manager', dst: 'frontend', result: { success: true } });
|
|
115
|
-
respond({ type: 'jest_simple', src: 'manager', dst: 'frontend', error: 'Failed' });
|
|
116
|
-
// Negative response type assertions
|
|
117
|
-
// @ts-expect-error response.result.logLevel has wrong type
|
|
118
|
-
respond({ type: 'unknown', src: 'manager', dst: 'frontend', result: { logLevel: 'info' } });
|
|
119
|
-
// @ts-expect-error response.error must be a string when provided
|
|
120
|
-
respond({ type: 'jest', src: 'manager', dst: 'frontend', error: 42 });
|
|
121
|
-
// @ts-expect-error response.result.age must be a number
|
|
122
|
-
respond({ type: 'jest', src: 'manager', dst: 'frontend', result: { name: 'Test', age: '42' } });
|
|
123
|
-
// @ts-expect-error response.result.name must be a string
|
|
124
|
-
respond({ type: 'jest', src: 'manager', dst: 'frontend', result: { name: 123, age: 42 } });
|
|
125
|
-
// @ts-expect-error response.error must be a string when provided
|
|
126
|
-
respond({ type: 'jest', src: 'manager', dst: 'frontend', error: 42 });
|
|
127
|
-
// @ts-expect-error result with error is not allowed
|
|
128
|
-
respond({ type: 'jest', src: 'manager', dst: 'frontend', result: { name: 'Test', age: 42 }, error: 'Not found' });
|
|
129
|
-
//# sourceMappingURL=messageLab.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messageLab.js","sourceRoot":"","sources":["../../src/workers/messageLab.ts"],"names":[],"mappings":"AA8EA;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAqC,GAA4B;IACtF,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACzB,GAAG,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,CAAC;IACD,cAAc;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAqC,GAA6B;IACvF,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IAC3C,CAAC;IACD,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,cAAc;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAAsC,CAAC;IACvD,OAAO,CACL,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAChC,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;QAC/B,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;QAC/B,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;QAC9B,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CACtC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAA+E,CAAC;IAChG,IACE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAChC,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;QAC/B,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;QAC/B,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;QAC9B,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAC/C,OAAO,QAAQ,KAAK,SAAS,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,GAAkB;IACxC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,MAAM;gBACT,sDAAsD;gBACtD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClI,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBACvH,CAAC;gBACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/H,MAAM;QACV,CAAC;IACH,CAAC;AACH,CAAC;AACD,gCAAgC;AAChC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClF,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAElE,mCAAmC;AACnC,8CAA8C;AAC9C,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9D,4DAA4D;AAC5D,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3D,kDAAkD;AAClD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACpF,oEAAoE;AACpE,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAE9E,iCAAiC;AACjC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9F,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/E,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7F,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEnF,oCAAoC;AACpC,2DAA2D;AAC3D,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5F,iEAAiE;AACjE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AACtE,wDAAwD;AACxD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAChG,yDAAyD;AACzD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3F,iEAAiE;AACjE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AACtE,oDAAoD;AACpD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testWorker.d.ts","sourceRoot":"","sources":["../../src/workers/testWorker.ts"],"names":[],"mappings":""}
|