@scrypted/server 0.115.1 → 0.115.3
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/deno/deno-plugin-remote.ts +5 -0
 - package/dist/cluster/cluster-hash.js +1 -1
 - package/dist/cluster/cluster-hash.js.map +1 -1
 - package/dist/cluster/connect-rpc-object.d.ts +2 -1
 - package/dist/plugin/plugin-api.d.ts +1 -0
 - package/dist/plugin/plugin-console.js +4 -0
 - package/dist/plugin/plugin-console.js.map +1 -1
 - package/dist/plugin/plugin-remote-stats.js +19 -15
 - package/dist/plugin/plugin-remote-stats.js.map +1 -1
 - package/dist/plugin/plugin-remote-worker.js +77 -45
 - package/dist/plugin/plugin-remote-worker.js.map +1 -1
 - package/dist/plugin/runtime/child-process-worker.js +1 -1
 - package/dist/plugin/runtime/child-process-worker.js.map +1 -1
 - package/dist/plugin/runtime/deno-worker.d.ts +10 -0
 - package/dist/plugin/runtime/deno-worker.js +79 -0
 - package/dist/plugin/runtime/deno-worker.js.map +1 -0
 - package/dist/plugin/runtime/node-fork-worker.d.ts +1 -1
 - package/dist/plugin/runtime/node-fork-worker.js +2 -2
 - package/dist/plugin/runtime/node-fork-worker.js.map +1 -1
 - package/dist/plugin/runtime/node-thread-worker.d.ts +3 -3
 - package/dist/plugin/runtime/node-thread-worker.js +22 -7
 - package/dist/plugin/runtime/node-thread-worker.js.map +1 -1
 - package/dist/plugin/runtime/python-worker.d.ts +0 -1
 - package/dist/plugin/runtime/python-worker.js +0 -3
 - package/dist/plugin/runtime/python-worker.js.map +1 -1
 - package/dist/rpc-peer-eval.d.ts +4 -1
 - package/dist/rpc-peer-eval.js +18 -15
 - package/dist/rpc-peer-eval.js.map +1 -1
 - package/dist/rpc.js +2 -2
 - package/dist/rpc.js.map +1 -1
 - package/dist/runtime.js +2 -0
 - package/dist/runtime.js.map +1 -1
 - package/dist/scrypted-main-exports.js +2 -2
 - package/dist/scrypted-main-exports.js.map +1 -1
 - package/dist/scrypted-main.js +4 -1
 - package/dist/scrypted-main.js.map +1 -1
 - package/dist/scrypted-plugin-main.js +14 -4
 - package/dist/scrypted-plugin-main.js.map +1 -1
 - package/package.json +4 -3
 - package/python/plugin_remote.py +406 -218
 - package/src/cluster/cluster-hash.ts +1 -1
 - package/src/cluster/connect-rpc-object.ts +2 -1
 - package/src/plugin/plugin-api.ts +1 -0
 - package/src/plugin/plugin-console.ts +5 -0
 - package/src/plugin/plugin-remote-stats.ts +20 -15
 - package/src/plugin/plugin-remote-worker.ts +87 -47
 - package/src/plugin/runtime/child-process-worker.ts +1 -1
 - package/src/plugin/runtime/deno-worker.ts +83 -0
 - package/src/plugin/runtime/node-fork-worker.ts +3 -5
 - package/src/plugin/runtime/node-thread-worker.ts +22 -6
 - package/src/plugin/runtime/python-worker.ts +0 -4
 - package/src/rpc-peer-eval.ts +23 -19
 - package/src/rpc.ts +3 -3
 - package/src/runtime.ts +2 -0
 - package/src/scrypted-main-exports.ts +2 -2
 - package/src/scrypted-main.ts +4 -1
 - package/src/scrypted-plugin-main.ts +14 -4
 
| 
         @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); 
     | 
|
| 
       6 
6 
     | 
    
         
             
            exports.computeClusterObjectHash = computeClusterObjectHash;
         
     | 
| 
       7 
7 
     | 
    
         
             
            const crypto_1 = __importDefault(require("crypto"));
         
     | 
| 
       8 
8 
     | 
    
         
             
            function computeClusterObjectHash(o, clusterSecret) {
         
     | 
| 
       9 
     | 
    
         
            -
                const sha256 = crypto_1.default.createHash('sha256').update(`${o.id}${o.port}${o. 
     | 
| 
      
 9 
     | 
    
         
            +
                const sha256 = crypto_1.default.createHash('sha256').update(`${o.id}${o.address || ''}${o.port}${o.sourceKey || ''}${o.proxyId}${clusterSecret}`).digest().toString('base64');
         
     | 
| 
       10 
10 
     | 
    
         
             
                return sha256;
         
     | 
| 
       11 
11 
     | 
    
         
             
            }
         
     | 
| 
       12 
12 
     | 
    
         
             
            //# sourceMappingURL=cluster-hash.js.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"cluster-hash.js","sourceRoot":"","sources":["../../src/cluster/cluster-hash.ts"],"names":[],"mappings":";;;;;AAGA,4DAGC;AAND,oDAA4B;AAG5B,SAAgB,wBAAwB,CAAC,CAAgB,EAAE,aAAqB;IAC5E,MAAM,MAAM,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"cluster-hash.js","sourceRoot":"","sources":["../../src/cluster/cluster-hash.ts"],"names":[],"mappings":";;;;;AAGA,4DAGC;AAND,oDAA4B;AAG5B,SAAgB,wBAAwB,CAAC,CAAgB,EAAE,aAAqB;IAC5E,MAAM,MAAM,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpK,OAAO,MAAM,CAAC;AAClB,CAAC"}
         
     | 
| 
         @@ -31,6 +31,10 @@ const events_1 = require("events"); 
     | 
|
| 
       31 
31 
     | 
    
         
             
            const net_1 = __importStar(require("net"));
         
     | 
| 
       32 
32 
     | 
    
         
             
            const stream_1 = require("stream");
         
     | 
| 
       33 
33 
     | 
    
         
             
            const listen_zero_1 = require("../listen-zero");
         
     | 
| 
      
 34 
     | 
    
         
            +
            // deno's createRequire or node console doesn't hook inspect...
         
     | 
| 
      
 35 
     | 
    
         
            +
            // so grab teh deno console from globalThis which was set earlier in deno-plugin-remote.ts
         
     | 
| 
      
 36 
     | 
    
         
            +
            if (process.versions.deno)
         
     | 
| 
      
 37 
     | 
    
         
            +
                console = globalThis.denoConsole || console;
         
     | 
| 
       34 
38 
     | 
    
         
             
            function getConsole(hook, also, alsoPrefix) {
         
     | 
| 
       35 
39 
     | 
    
         
             
                const stdout = new stream_1.PassThrough();
         
     | 
| 
       36 
40 
     | 
    
         
             
                const stderr = new stream_1.PassThrough();
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"plugin-console.js","sourceRoot":"","sources":["../../src/plugin/plugin-console.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;; 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"plugin-console.js","sourceRoot":"","sources":["../../src/plugin/plugin-console.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -3,21 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true }); 
     | 
|
| 
       3 
3 
     | 
    
         
             
            exports.startStatsUpdater = startStatsUpdater;
         
     | 
| 
       4 
4 
     | 
    
         
             
            function startStatsUpdater(allMemoryStats, updateStats) {
         
     | 
| 
       5 
5 
     | 
    
         
             
                setInterval(() => {
         
     | 
| 
       6 
     | 
    
         
            -
                     
     | 
| 
       7 
     | 
    
         
            -
                     
     | 
| 
       8 
     | 
    
         
            -
                     
     | 
| 
       9 
     | 
    
         
            -
                         
     | 
| 
       10 
     | 
    
         
            -
                         
     | 
| 
       11 
     | 
    
         
            -
                         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                         
     | 
| 
       18 
     | 
    
         
            -
                         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 6 
     | 
    
         
            +
                    let cpuUsage;
         
     | 
| 
      
 7 
     | 
    
         
            +
                    let memoryUsage;
         
     | 
| 
      
 8 
     | 
    
         
            +
                    if (process.cpuUsage) {
         
     | 
| 
      
 9 
     | 
    
         
            +
                        cpuUsage = process.cpuUsage();
         
     | 
| 
      
 10 
     | 
    
         
            +
                        allMemoryStats.set(undefined, process.memoryUsage());
         
     | 
| 
      
 11 
     | 
    
         
            +
                        memoryUsage = {
         
     | 
| 
      
 12 
     | 
    
         
            +
                            rss: 0,
         
     | 
| 
      
 13 
     | 
    
         
            +
                            heapTotal: 0,
         
     | 
| 
      
 14 
     | 
    
         
            +
                            heapUsed: 0,
         
     | 
| 
      
 15 
     | 
    
         
            +
                            external: 0,
         
     | 
| 
      
 16 
     | 
    
         
            +
                            arrayBuffers: 0,
         
     | 
| 
      
 17 
     | 
    
         
            +
                        };
         
     | 
| 
      
 18 
     | 
    
         
            +
                        for (const mu of allMemoryStats.values()) {
         
     | 
| 
      
 19 
     | 
    
         
            +
                            memoryUsage.rss += mu.rss;
         
     | 
| 
      
 20 
     | 
    
         
            +
                            memoryUsage.heapTotal += mu.heapTotal;
         
     | 
| 
      
 21 
     | 
    
         
            +
                            memoryUsage.heapUsed += mu.heapUsed;
         
     | 
| 
      
 22 
     | 
    
         
            +
                            memoryUsage.external += mu.external;
         
     | 
| 
      
 23 
     | 
    
         
            +
                            memoryUsage.arrayBuffers += mu.arrayBuffers;
         
     | 
| 
      
 24 
     | 
    
         
            +
                        }
         
     | 
| 
       21 
25 
     | 
    
         
             
                    }
         
     | 
| 
       22 
26 
     | 
    
         
             
                    updateStats({
         
     | 
| 
       23 
27 
     | 
    
         
             
                        type: 'stats',
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"plugin-remote-stats.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-stats.ts"],"names":[],"mappings":";;AAQA, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"plugin-remote-stats.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-stats.ts"],"names":[],"mappings":";;AAQA,8CAgCC;AAhCD,SAAgB,iBAAiB,CAAC,cAAyD,EAAE,WAAyC;IAClI,WAAW,CAAC,GAAG,EAAE;QACb,IAAI,QAAyB,CAAC;QAC9B,IAAI,WAA+B,CAAC;QACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAErD,WAAW,GAAG;gBACV,GAAG,EAAE,CAAC;gBACN,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,CAAC;aAClB,CAAA;YAED,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;gBAC1B,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC;gBACtC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC;YAChD,CAAC;QAEL,CAAC;QAED,WAAW,CAAC;YACR,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,QAAQ;YACb,WAAW;SACd,CAAC,CAAC;IACP,CAAC,EAAE,KAAK,CAAC,CAAC;AACd,CAAC"}
         
     | 
| 
         @@ -80,9 +80,14 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       80 
80 
     | 
    
         
             
                        throw new Error(`unknown service ${name}`);
         
     | 
| 
       81 
81 
     | 
    
         
             
                    },
         
     | 
| 
       82 
82 
     | 
    
         
             
                    async onLoadZip(scrypted, params, packageJson, getZip, zipOptions) {
         
     | 
| 
      
 83 
     | 
    
         
            +
                        const mainFile = zipOptions?.main || 'main';
         
     | 
| 
      
 84 
     | 
    
         
            +
                        const mainNodejs = `${mainFile}.nodejs.js`;
         
     | 
| 
      
 85 
     | 
    
         
            +
                        const pluginMainNodeJs = `/plugin/${mainNodejs}`;
         
     | 
| 
      
 86 
     | 
    
         
            +
                        const pluginIdMainNodeJs = `/${pluginId}/${mainNodejs}`;
         
     | 
| 
       83 
87 
     | 
    
         
             
                        const { clusterId, clusterSecret, zipHash } = zipOptions;
         
     | 
| 
       84 
88 
     | 
    
         
             
                        const { zipFile, unzippedPath } = await (0, node_worker_common_1.prepareZip)((0, plugin_volume_1.getPluginVolume)(pluginId), zipHash, getZip);
         
     | 
| 
       85 
     | 
    
         
            -
                        const  
     | 
| 
      
 89 
     | 
    
         
            +
                        const SCRYPTED_CLUSTER_ADDRESS = process.env.SCRYPTED_CLUSTER_ADDRESS;
         
     | 
| 
      
 90 
     | 
    
         
            +
                        const onProxySerialization = (value, sourceKey) => {
         
     | 
| 
       86 
91 
     | 
    
         
             
                            const properties = rpc_1.RpcPeer.prepareProxyProperties(value) || {};
         
     | 
| 
       87 
92 
     | 
    
         
             
                            let clusterEntry = properties.__cluster;
         
     | 
| 
       88 
93 
     | 
    
         
             
                            // ensure globally stable proxyIds.
         
     | 
| 
         @@ -90,15 +95,15 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       90 
95 
     | 
    
         
             
                            // if the cluster entry already exists, check if it belongs to this node.
         
     | 
| 
       91 
96 
     | 
    
         
             
                            // if it belongs to this node, the entry must also be for this peer.
         
     | 
| 
       92 
97 
     | 
    
         
             
                            // relying on the liveness/gc of a different peer may cause race conditions.
         
     | 
| 
       93 
     | 
    
         
            -
                            if (clusterEntry && clusterPort === clusterEntry.port &&  
     | 
| 
      
 98 
     | 
    
         
            +
                            if (clusterEntry && clusterPort === clusterEntry.port && sourceKey !== clusterEntry.sourceKey)
         
     | 
| 
       94 
99 
     | 
    
         
             
                                clusterEntry = undefined;
         
     | 
| 
       95 
     | 
    
         
            -
                            // set the cluster identity if it does not exist.
         
     | 
| 
       96 
100 
     | 
    
         
             
                            if (!clusterEntry) {
         
     | 
| 
       97 
101 
     | 
    
         
             
                                clusterEntry = {
         
     | 
| 
       98 
102 
     | 
    
         
             
                                    id: clusterId,
         
     | 
| 
      
 103 
     | 
    
         
            +
                                    address: SCRYPTED_CLUSTER_ADDRESS,
         
     | 
| 
       99 
104 
     | 
    
         
             
                                    port: clusterPort,
         
     | 
| 
       100 
105 
     | 
    
         
             
                                    proxyId,
         
     | 
| 
       101 
     | 
    
         
            -
                                     
     | 
| 
      
 106 
     | 
    
         
            +
                                    sourceKey,
         
     | 
| 
       102 
107 
     | 
    
         
             
                                    sha256: null,
         
     | 
| 
       103 
108 
     | 
    
         
             
                                };
         
     | 
| 
       104 
109 
     | 
    
         
             
                                clusterEntry.sha256 = (0, cluster_hash_1.computeClusterObjectHash)(clusterEntry, clusterSecret);
         
     | 
| 
         @@ -110,8 +115,10 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       110 
115 
     | 
    
         
             
                            };
         
     | 
| 
       111 
116 
     | 
    
         
             
                        };
         
     | 
| 
       112 
117 
     | 
    
         
             
                        peer.onProxySerialization = onProxySerialization;
         
     | 
| 
       113 
     | 
    
         
            -
                        const resolveObject = async (id,  
     | 
| 
       114 
     | 
    
         
            -
                            const sourcePeer =  
     | 
| 
      
 118 
     | 
    
         
            +
                        const resolveObject = async (id, sourceKey) => {
         
     | 
| 
      
 119 
     | 
    
         
            +
                            const sourcePeer = sourceKey
         
     | 
| 
      
 120 
     | 
    
         
            +
                                ? await clusterPeers.get(sourceKey)
         
     | 
| 
      
 121 
     | 
    
         
            +
                                : peer;
         
     | 
| 
       115 
122 
     | 
    
         
             
                            return sourcePeer?.localProxyMap.get(id);
         
     | 
| 
       116 
123 
     | 
    
         
             
                        };
         
     | 
| 
       117 
124 
     | 
    
         
             
                        // all cluster clients, incoming and outgoing, connect with random ports which can be used as peer ids
         
     | 
| 
         @@ -119,63 +126,79 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       119 
126 
     | 
    
         
             
                        // incoming connections: use the remote random/unique port
         
     | 
| 
       120 
127 
     | 
    
         
             
                        // outgoing connections: use the local random/unique port
         
     | 
| 
       121 
128 
     | 
    
         
             
                        const clusterPeers = new Map();
         
     | 
| 
      
 129 
     | 
    
         
            +
                        function getClusterPeerKey(address, port) {
         
     | 
| 
      
 130 
     | 
    
         
            +
                            return `${address}:${port}`;
         
     | 
| 
      
 131 
     | 
    
         
            +
                        }
         
     | 
| 
       122 
132 
     | 
    
         
             
                        const clusterRpcServer = net_1.default.createServer(client => {
         
     | 
| 
       123 
133 
     | 
    
         
             
                            const clusterPeer = (0, rpc_serializer_1.createDuplexRpcPeer)(peer.selfName, 'cluster-client', client, client);
         
     | 
| 
      
 134 
     | 
    
         
            +
                            const clusterPeerAddress = client.remoteAddress;
         
     | 
| 
       124 
135 
     | 
    
         
             
                            const clusterPeerPort = client.remotePort;
         
     | 
| 
       125 
     | 
    
         
            -
                             
     | 
| 
       126 
     | 
    
         
            -
                             
     | 
| 
      
 136 
     | 
    
         
            +
                            const clusterPeerKey = getClusterPeerKey(clusterPeerAddress, clusterPeerPort);
         
     | 
| 
      
 137 
     | 
    
         
            +
                            // the listening peer sourceKey (client address/port) is used by the OTHER peer (the client)
         
     | 
| 
      
 138 
     | 
    
         
            +
                            // to determine if it is already connected to THIS peer (the server).
         
     | 
| 
      
 139 
     | 
    
         
            +
                            clusterPeer.onProxySerialization = (value) => onProxySerialization(value, clusterPeerKey);
         
     | 
| 
      
 140 
     | 
    
         
            +
                            clusterPeers.set(clusterPeerKey, Promise.resolve(clusterPeer));
         
     | 
| 
       127 
141 
     | 
    
         
             
                            startPluginRemoteOptions?.onClusterPeer?.(clusterPeer);
         
     | 
| 
       128 
142 
     | 
    
         
             
                            const connectRPCObject = async (o) => {
         
     | 
| 
       129 
143 
     | 
    
         
             
                                const sha256 = (0, cluster_hash_1.computeClusterObjectHash)(o, clusterSecret);
         
     | 
| 
       130 
144 
     | 
    
         
             
                                if (sha256 !== o.sha256)
         
     | 
| 
       131 
145 
     | 
    
         
             
                                    throw new Error('secret incorrect');
         
     | 
| 
       132 
     | 
    
         
            -
                                return resolveObject(o.proxyId, o. 
     | 
| 
      
 146 
     | 
    
         
            +
                                return resolveObject(o.proxyId, o.sourceKey);
         
     | 
| 
       133 
147 
     | 
    
         
             
                            };
         
     | 
| 
       134 
148 
     | 
    
         
             
                            clusterPeer.params['connectRPCObject'] = connectRPCObject;
         
     | 
| 
       135 
149 
     | 
    
         
             
                            client.on('close', () => {
         
     | 
| 
       136 
     | 
    
         
            -
                                clusterPeers.delete( 
     | 
| 
      
 150 
     | 
    
         
            +
                                clusterPeers.delete(clusterPeerKey);
         
     | 
| 
       137 
151 
     | 
    
         
             
                                clusterPeer.kill('cluster socket closed');
         
     | 
| 
       138 
152 
     | 
    
         
             
                            });
         
     | 
| 
       139 
153 
     | 
    
         
             
                        });
         
     | 
| 
       140 
     | 
    
         
            -
                        const  
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
                             
     | 
| 
       143 
     | 
    
         
            -
             
     | 
| 
       144 
     | 
    
         
            -
             
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
       146 
     | 
    
         
            -
             
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
             
     | 
| 
       151 
     | 
    
         
            -
             
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
                                     
     | 
| 
       156 
     | 
    
         
            -
                                     
     | 
| 
       157 
     | 
    
         
            -
             
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
             
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
     | 
    
         
            -
             
     | 
| 
      
 154 
     | 
    
         
            +
                        const listenAddress = SCRYPTED_CLUSTER_ADDRESS
         
     | 
| 
      
 155 
     | 
    
         
            +
                            ? '0.0.0.0'
         
     | 
| 
      
 156 
     | 
    
         
            +
                            : '127.0.0.1';
         
     | 
| 
      
 157 
     | 
    
         
            +
                        const clusterPort = await (0, listen_zero_1.listenZero)(clusterRpcServer, listenAddress);
         
     | 
| 
      
 158 
     | 
    
         
            +
                        const ensureClusterPeer = (address, connectPort) => {
         
     | 
| 
      
 159 
     | 
    
         
            +
                            if (!address || address === SCRYPTED_CLUSTER_ADDRESS)
         
     | 
| 
      
 160 
     | 
    
         
            +
                                address = '127.0.0.1';
         
     | 
| 
      
 161 
     | 
    
         
            +
                            const clusterPeerKey = getClusterPeerKey(address, connectPort);
         
     | 
| 
      
 162 
     | 
    
         
            +
                            let clusterPeerPromise = clusterPeers.get(clusterPeerKey);
         
     | 
| 
      
 163 
     | 
    
         
            +
                            if (clusterPeerPromise)
         
     | 
| 
      
 164 
     | 
    
         
            +
                                return clusterPeerPromise;
         
     | 
| 
      
 165 
     | 
    
         
            +
                            clusterPeerPromise = (async () => {
         
     | 
| 
      
 166 
     | 
    
         
            +
                                const socket = net_1.default.connect(connectPort, address);
         
     | 
| 
      
 167 
     | 
    
         
            +
                                socket.on('close', () => clusterPeers.delete(clusterPeerKey));
         
     | 
| 
      
 168 
     | 
    
         
            +
                                try {
         
     | 
| 
      
 169 
     | 
    
         
            +
                                    await (0, events_1.once)(socket, 'connect');
         
     | 
| 
      
 170 
     | 
    
         
            +
                                    // this connecting peer sourceKey (server address/port) is used by the OTHER peer (the server)
         
     | 
| 
      
 171 
     | 
    
         
            +
                                    // to determine if it is already connected to THIS peer (the client).
         
     | 
| 
      
 172 
     | 
    
         
            +
                                    const { address: sourceAddress, port: sourcePort } = socket.address();
         
     | 
| 
      
 173 
     | 
    
         
            +
                                    if (sourceAddress !== SCRYPTED_CLUSTER_ADDRESS && sourceAddress !== '127.0.0.1')
         
     | 
| 
      
 174 
     | 
    
         
            +
                                        console.warn("source address mismatch", sourceAddress);
         
     | 
| 
      
 175 
     | 
    
         
            +
                                    const sourcePeerKey = getClusterPeerKey(sourceAddress, sourcePort);
         
     | 
| 
      
 176 
     | 
    
         
            +
                                    const clusterPeer = (0, rpc_serializer_1.createDuplexRpcPeer)(peer.selfName, 'cluster-server', socket, socket);
         
     | 
| 
      
 177 
     | 
    
         
            +
                                    clusterPeer.onProxySerialization = (value) => onProxySerialization(value, sourcePeerKey);
         
     | 
| 
      
 178 
     | 
    
         
            +
                                    return clusterPeer;
         
     | 
| 
      
 179 
     | 
    
         
            +
                                }
         
     | 
| 
      
 180 
     | 
    
         
            +
                                catch (e) {
         
     | 
| 
      
 181 
     | 
    
         
            +
                                    console.error('failure ipc connect', e);
         
     | 
| 
      
 182 
     | 
    
         
            +
                                    socket.destroy();
         
     | 
| 
      
 183 
     | 
    
         
            +
                                    throw e;
         
     | 
| 
      
 184 
     | 
    
         
            +
                                }
         
     | 
| 
      
 185 
     | 
    
         
            +
                            })();
         
     | 
| 
      
 186 
     | 
    
         
            +
                            clusterPeers.set(clusterPeerKey, clusterPeerPromise);
         
     | 
| 
       164 
187 
     | 
    
         
             
                            return clusterPeerPromise;
         
     | 
| 
       165 
188 
     | 
    
         
             
                        };
         
     | 
| 
       166 
189 
     | 
    
         
             
                        scrypted.connectRPCObject = async (value) => {
         
     | 
| 
       167 
190 
     | 
    
         
             
                            const clusterObject = value?.__cluster;
         
     | 
| 
       168 
191 
     | 
    
         
             
                            if (clusterObject?.id !== clusterId)
         
     | 
| 
       169 
192 
     | 
    
         
             
                                return value;
         
     | 
| 
       170 
     | 
    
         
            -
                            const { port, proxyId,  
     | 
| 
      
 193 
     | 
    
         
            +
                            const { address, port, proxyId, sourceKey } = clusterObject;
         
     | 
| 
       171 
194 
     | 
    
         
             
                            // handle the case when trying to connect to an object is on this cluster node,
         
     | 
| 
       172 
195 
     | 
    
         
             
                            // returning the actual object, rather than initiating a loopback connection.
         
     | 
| 
       173 
196 
     | 
    
         
             
                            if (port === clusterPort)
         
     | 
| 
       174 
     | 
    
         
            -
                                return resolveObject(proxyId,  
     | 
| 
      
 197 
     | 
    
         
            +
                                return resolveObject(proxyId, sourceKey);
         
     | 
| 
       175 
198 
     | 
    
         
             
                            try {
         
     | 
| 
       176 
     | 
    
         
            -
                                const clusterPeerPromise = ensureClusterPeer(port);
         
     | 
| 
      
 199 
     | 
    
         
            +
                                const clusterPeerPromise = ensureClusterPeer(address, port);
         
     | 
| 
       177 
200 
     | 
    
         
             
                                const clusterPeer = await clusterPeerPromise;
         
     | 
| 
       178 
     | 
    
         
            -
                                //  
     | 
| 
      
 201 
     | 
    
         
            +
                                // may already have this proxy so check first.
         
     | 
| 
       179 
202 
     | 
    
         
             
                                const existing = clusterPeer.remoteWeakProxies[proxyId]?.deref();
         
     | 
| 
       180 
203 
     | 
    
         
             
                                if (existing)
         
     | 
| 
       181 
204 
     | 
    
         
             
                                    return existing;
         
     | 
| 
         @@ -238,7 +261,7 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       238 
261 
     | 
    
         
             
                        // window.exports = exports;
         
     | 
| 
       239 
262 
     | 
    
         
             
                        // params.window = window;
         
     | 
| 
       240 
263 
     | 
    
         
             
                        params.exports = exports;
         
     | 
| 
       241 
     | 
    
         
            -
                        const entry = pluginReader( 
     | 
| 
      
 264 
     | 
    
         
            +
                        const entry = pluginReader(`${mainNodejs}.map`);
         
     | 
| 
       242 
265 
     | 
    
         
             
                        const map = entry?.toString();
         
     | 
| 
       243 
266 
     | 
    
         
             
                        // plugins may install their own sourcemap support during startup, so
         
     | 
| 
       244 
267 
     | 
    
         
             
                        // hook the sourcemap installation after everything is loaded.
         
     | 
| 
         @@ -256,11 +279,11 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       256 
279 
     | 
    
         
             
                            (0, source_map_support_1.install)({
         
     | 
| 
       257 
280 
     | 
    
         
             
                                environment: 'node',
         
     | 
| 
       258 
281 
     | 
    
         
             
                                retrieveSourceMap(source) {
         
     | 
| 
       259 
     | 
    
         
            -
                                    if (source ===  
     | 
| 
      
 282 
     | 
    
         
            +
                                    if (source === pluginMainNodeJs || source === pluginIdMainNodeJs) {
         
     | 
| 
       260 
283 
     | 
    
         
             
                                        if (!map)
         
     | 
| 
       261 
284 
     | 
    
         
             
                                            return null;
         
     | 
| 
       262 
285 
     | 
    
         
             
                                        return {
         
     | 
| 
       263 
     | 
    
         
            -
                                            url:  
     | 
| 
      
 286 
     | 
    
         
            +
                                            url: pluginMainNodeJs,
         
     | 
| 
       264 
287 
     | 
    
         
             
                                            map,
         
     | 
| 
       265 
288 
     | 
    
         
             
                                        };
         
     | 
| 
       266 
289 
     | 
    
         
             
                                    }
         
     | 
| 
         @@ -279,13 +302,13 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       279 
302 
     | 
    
         
             
                            pong ||= await peer.getParam('pong');
         
     | 
| 
       280 
303 
     | 
    
         
             
                            await pong(time);
         
     | 
| 
       281 
304 
     | 
    
         
             
                        };
         
     | 
| 
       282 
     | 
    
         
            -
                        const main = pluginReader( 
     | 
| 
      
 305 
     | 
    
         
            +
                        const main = pluginReader(mainNodejs);
         
     | 
| 
       283 
306 
     | 
    
         
             
                        const script = main.toString();
         
     | 
| 
       284 
307 
     | 
    
         
             
                        scrypted.connect = (socket, options) => {
         
     | 
| 
       285 
308 
     | 
    
         
             
                            process.send(options, socket);
         
     | 
| 
       286 
309 
     | 
    
         
             
                        };
         
     | 
| 
       287 
310 
     | 
    
         
             
                        const pluginRemoteAPI = scrypted.pluginRemoteAPI;
         
     | 
| 
       288 
     | 
    
         
            -
                        scrypted.fork = () => {
         
     | 
| 
      
 311 
     | 
    
         
            +
                        scrypted.fork = (options) => {
         
     | 
| 
       289 
312 
     | 
    
         
             
                            const ntw = new node_thread_worker_1.NodeThreadWorker(mainFilename, pluginId, {
         
     | 
| 
       290 
313 
     | 
    
         
             
                                packageJson,
         
     | 
| 
       291 
314 
     | 
    
         
             
                                env: process.env,
         
     | 
| 
         @@ -293,6 +316,8 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       293 
316 
     | 
    
         
             
                                zipFile,
         
     | 
| 
       294 
317 
     | 
    
         
             
                                unzippedPath,
         
     | 
| 
       295 
318 
     | 
    
         
             
                                zipHash,
         
     | 
| 
      
 319 
     | 
    
         
            +
                            }, {
         
     | 
| 
      
 320 
     | 
    
         
            +
                                name: options?.name,
         
     | 
| 
       296 
321 
     | 
    
         
             
                            });
         
     | 
| 
       297 
322 
     | 
    
         
             
                            const result = (async () => {
         
     | 
| 
       298 
323 
     | 
    
         
             
                                const threadPeer = new rpc_1.RpcPeer('main', 'thread', (message, reject) => ntw.send(message, reject));
         
     | 
| 
         @@ -316,17 +341,24 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       316 
341 
     | 
    
         
             
                                const forkApi = new PluginForkAPI(api);
         
     | 
| 
       317 
342 
     | 
    
         
             
                                const remote = await (0, plugin_remote_1.setupPluginRemote)(threadPeer, forkApi, pluginId, { serverVersion }, () => systemManager.getSystemState());
         
     | 
| 
       318 
343 
     | 
    
         
             
                                forks.add(remote);
         
     | 
| 
       319 
     | 
    
         
            -
                                ntw. 
     | 
| 
      
 344 
     | 
    
         
            +
                                ntw.on('exit', () => {
         
     | 
| 
       320 
345 
     | 
    
         
             
                                    threadPeer.kill('worker exited');
         
     | 
| 
       321 
346 
     | 
    
         
             
                                    forkApi.removeListeners();
         
     | 
| 
       322 
347 
     | 
    
         
             
                                    forks.delete(remote);
         
     | 
| 
       323 
348 
     | 
    
         
             
                                    allMemoryStats.delete(ntw);
         
     | 
| 
       324 
349 
     | 
    
         
             
                                });
         
     | 
| 
      
 350 
     | 
    
         
            +
                                ntw.on('error', e => {
         
     | 
| 
      
 351 
     | 
    
         
            +
                                    threadPeer.kill('worker error ' + e);
         
     | 
| 
      
 352 
     | 
    
         
            +
                                    forkApi.removeListeners();
         
     | 
| 
      
 353 
     | 
    
         
            +
                                    forks.delete(remote);
         
     | 
| 
      
 354 
     | 
    
         
            +
                                    allMemoryStats.delete(ntw);
         
     | 
| 
      
 355 
     | 
    
         
            +
                                });
         
     | 
| 
       325 
356 
     | 
    
         
             
                                for (const [nativeId, dmd] of deviceManager.nativeIds.entries()) {
         
     | 
| 
       326 
357 
     | 
    
         
             
                                    await remote.setNativeId(nativeId, dmd.id, dmd.storage);
         
     | 
| 
       327 
358 
     | 
    
         
             
                                }
         
     | 
| 
       328 
359 
     | 
    
         
             
                                const forkOptions = Object.assign({}, zipOptions);
         
     | 
| 
       329 
360 
     | 
    
         
             
                                forkOptions.fork = true;
         
     | 
| 
      
 361 
     | 
    
         
            +
                                forkOptions.main = options?.filename;
         
     | 
| 
       330 
362 
     | 
    
         
             
                                return remote.loadZip(packageJson, getZip, forkOptions);
         
     | 
| 
       331 
363 
     | 
    
         
             
                            })();
         
     | 
| 
       332 
364 
     | 
    
         
             
                            result.catch(() => ntw.kill());
         
     | 
| 
         @@ -336,7 +368,7 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp 
     | 
|
| 
       336 
368 
     | 
    
         
             
                            };
         
     | 
| 
       337 
369 
     | 
    
         
             
                        };
         
     | 
| 
       338 
370 
     | 
    
         
             
                        try {
         
     | 
| 
       339 
     | 
    
         
            -
                            const filename = zipOptions?.debug ?  
     | 
| 
      
 371 
     | 
    
         
            +
                            const filename = zipOptions?.debug ? pluginMainNodeJs : pluginIdMainNodeJs;
         
     | 
| 
       340 
372 
     | 
    
         
             
                            (0, rpc_peer_eval_1.evalLocal)(peer, script, filename, params);
         
     | 
| 
       341 
373 
     | 
    
         
             
                            if (zipOptions?.fork) {
         
     | 
| 
       342 
374 
     | 
    
         
             
                                // pluginConsole?.log('plugin forked');
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"plugin-remote-worker.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-worker.ts"],"names":[],"mappings":"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"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"plugin-remote-worker.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-worker.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"child-process-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/child-process-worker.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAKlC,MAAsB,kBAAmB,SAAQ,iBAAY;IAGtC;IAFT,MAAM,CAA6B;IAE7C,YAAmB,QAAgB,EAAE,OAA6B;QAC9D,KAAK,EAAE,CAAC;QADO,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;IAED,WAAW;QACP,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,MAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,MAAM, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"child-process-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/child-process-worker.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAKlC,MAAsB,kBAAmB,SAAQ,iBAAY;IAGtC;IAFT,MAAM,CAA6B;IAE7C,YAAmB,QAAgB,EAAE,OAA6B;QAC9D,KAAK,EAAE,CAAC;QADO,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;IAED,WAAW;QACP,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,MAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,OAAO;QACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;CAIJ;AAtCD,gDAsCC"}
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { RpcMessage, RpcPeer } from "../../rpc";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { createRpcDuplexSerializer } from '../../rpc-serializer';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { ChildProcessWorker } from "./child-process-worker";
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { RuntimeWorkerOptions } from "./runtime-worker";
         
     | 
| 
      
 5 
     | 
    
         
            +
            export declare class DenoWorker extends ChildProcessWorker {
         
     | 
| 
      
 6 
     | 
    
         
            +
                serializer: ReturnType<typeof createRpcDuplexSerializer>;
         
     | 
| 
      
 7 
     | 
    
         
            +
                constructor(mainFilename: string, pluginId: string, options: RuntimeWorkerOptions);
         
     | 
| 
      
 8 
     | 
    
         
            +
                setupRpcPeer(peer: RpcPeer): void;
         
     | 
| 
      
 9 
     | 
    
         
            +
                send(message: RpcMessage, reject?: (e: Error) => void, serializationContext?: any): void;
         
     | 
| 
      
 10 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -0,0 +1,79 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            "use strict";
         
     | 
| 
      
 2 
     | 
    
         
            +
            var __importDefault = (this && this.__importDefault) || function (mod) {
         
     | 
| 
      
 3 
     | 
    
         
            +
                return (mod && mod.__esModule) ? mod : { "default": mod };
         
     | 
| 
      
 4 
     | 
    
         
            +
            };
         
     | 
| 
      
 5 
     | 
    
         
            +
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
      
 6 
     | 
    
         
            +
            exports.DenoWorker = void 0;
         
     | 
| 
      
 7 
     | 
    
         
            +
            const deno_1 = require("@scrypted/deno");
         
     | 
| 
      
 8 
     | 
    
         
            +
            const child_process_1 = __importDefault(require("child_process"));
         
     | 
| 
      
 9 
     | 
    
         
            +
            const path_1 = __importDefault(require("path"));
         
     | 
| 
      
 10 
     | 
    
         
            +
            const child_process_worker_1 = require("./child-process-worker");
         
     | 
| 
      
 11 
     | 
    
         
            +
            class DenoWorker extends child_process_worker_1.ChildProcessWorker {
         
     | 
| 
      
 12 
     | 
    
         
            +
                serializer;
         
     | 
| 
      
 13 
     | 
    
         
            +
                constructor(mainFilename, pluginId, options) {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    super(pluginId, options);
         
     | 
| 
      
 15 
     | 
    
         
            +
                    const { env, pluginDebug } = options;
         
     | 
| 
      
 16 
     | 
    
         
            +
                    const execArgv = [];
         
     | 
| 
      
 17 
     | 
    
         
            +
                    if (pluginDebug) {
         
     | 
| 
      
 18 
     | 
    
         
            +
                        execArgv.push(`--inspect=0.0.0.0:${pluginDebug.inspectPort}`);
         
     | 
| 
      
 19 
     | 
    
         
            +
                    }
         
     | 
| 
      
 20 
     | 
    
         
            +
                    const args = [
         
     | 
| 
      
 21 
     | 
    
         
            +
                        '--unstable-byonm', '--unstable-bare-node-builtins', '--unstable-sloppy-imports', '--unstable-webgpu',
         
     | 
| 
      
 22 
     | 
    
         
            +
                        'run',
         
     | 
| 
      
 23 
     | 
    
         
            +
                        ...execArgv,
         
     | 
| 
      
 24 
     | 
    
         
            +
                        '--allow-all',
         
     | 
| 
      
 25 
     | 
    
         
            +
                        path_1.default.join(__dirname, '../../../deno', 'deno-plugin-remote.ts'),
         
     | 
| 
      
 26 
     | 
    
         
            +
                        // TODO: send this across.
         
     | 
| 
      
 27 
     | 
    
         
            +
                        // mainFilename.replace('dist', 'src').replace('.js', '.ts'),
         
     | 
| 
      
 28 
     | 
    
         
            +
                        'child', this.pluginId
         
     | 
| 
      
 29 
     | 
    
         
            +
                    ];
         
     | 
| 
      
 30 
     | 
    
         
            +
                    this.worker = child_process_1.default.spawn((0, deno_1.getDenoPath)(), args, {
         
     | 
| 
      
 31 
     | 
    
         
            +
                        // stdio: ['pipe', 'pipe', 'pipe', 'pipe', 'pipe'],
         
     | 
| 
      
 32 
     | 
    
         
            +
                        stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
         
     | 
| 
      
 33 
     | 
    
         
            +
                        env: Object.assign({
         
     | 
| 
      
 34 
     | 
    
         
            +
                            SCRYPTED_MAIN_FILENAME: mainFilename,
         
     | 
| 
      
 35 
     | 
    
         
            +
                        }, process.env, env),
         
     | 
| 
      
 36 
     | 
    
         
            +
                        serialization: 'json',
         
     | 
| 
      
 37 
     | 
    
         
            +
                        // execArgv,
         
     | 
| 
      
 38 
     | 
    
         
            +
                    });
         
     | 
| 
      
 39 
     | 
    
         
            +
                    this.worker.stderr.on('data', (data) => {
         
     | 
| 
      
 40 
     | 
    
         
            +
                        console.error(`stderr: ${data}`);
         
     | 
| 
      
 41 
     | 
    
         
            +
                    });
         
     | 
| 
      
 42 
     | 
    
         
            +
                    this.worker.stdout.on('data', (data) => {
         
     | 
| 
      
 43 
     | 
    
         
            +
                        console.log(`stdout: ${data}`);
         
     | 
| 
      
 44 
     | 
    
         
            +
                    });
         
     | 
| 
      
 45 
     | 
    
         
            +
                    this.setupWorker();
         
     | 
| 
      
 46 
     | 
    
         
            +
                }
         
     | 
| 
      
 47 
     | 
    
         
            +
                setupRpcPeer(peer) {
         
     | 
| 
      
 48 
     | 
    
         
            +
                    this.worker.on('message', (message, sendHandle) => {
         
     | 
| 
      
 49 
     | 
    
         
            +
                        if (message.type && sendHandle) {
         
     | 
| 
      
 50 
     | 
    
         
            +
                            peer.handleMessage(message, {
         
     | 
| 
      
 51 
     | 
    
         
            +
                                sendHandle,
         
     | 
| 
      
 52 
     | 
    
         
            +
                            });
         
     | 
| 
      
 53 
     | 
    
         
            +
                        }
         
     | 
| 
      
 54 
     | 
    
         
            +
                        else if (sendHandle) {
         
     | 
| 
      
 55 
     | 
    
         
            +
                            this.emit('rpc', message, sendHandle);
         
     | 
| 
      
 56 
     | 
    
         
            +
                        }
         
     | 
| 
      
 57 
     | 
    
         
            +
                        else {
         
     | 
| 
      
 58 
     | 
    
         
            +
                            peer.handleMessage(message);
         
     | 
| 
      
 59 
     | 
    
         
            +
                        }
         
     | 
| 
      
 60 
     | 
    
         
            +
                    });
         
     | 
| 
      
 61 
     | 
    
         
            +
                    peer.transportSafeArgumentTypes.add(Buffer.name);
         
     | 
| 
      
 62 
     | 
    
         
            +
                    peer.transportSafeArgumentTypes.add(Uint8Array.name);
         
     | 
| 
      
 63 
     | 
    
         
            +
                }
         
     | 
| 
      
 64 
     | 
    
         
            +
                send(message, reject, serializationContext) {
         
     | 
| 
      
 65 
     | 
    
         
            +
                    try {
         
     | 
| 
      
 66 
     | 
    
         
            +
                        if (!this.worker)
         
     | 
| 
      
 67 
     | 
    
         
            +
                            throw new Error('fork worker has been killed');
         
     | 
| 
      
 68 
     | 
    
         
            +
                        this.worker.send(message, serializationContext?.sendHandle, e => {
         
     | 
| 
      
 69 
     | 
    
         
            +
                            if (e && reject)
         
     | 
| 
      
 70 
     | 
    
         
            +
                                reject(e);
         
     | 
| 
      
 71 
     | 
    
         
            +
                        });
         
     | 
| 
      
 72 
     | 
    
         
            +
                    }
         
     | 
| 
      
 73 
     | 
    
         
            +
                    catch (e) {
         
     | 
| 
      
 74 
     | 
    
         
            +
                        reject?.(e);
         
     | 
| 
      
 75 
     | 
    
         
            +
                    }
         
     | 
| 
      
 76 
     | 
    
         
            +
                }
         
     | 
| 
      
 77 
     | 
    
         
            +
            }
         
     | 
| 
      
 78 
     | 
    
         
            +
            exports.DenoWorker = DenoWorker;
         
     | 
| 
      
 79 
     | 
    
         
            +
            //# sourceMappingURL=deno-worker.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"deno-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/deno-worker.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { RuntimeWorkerOptions as RuntimeWorkerOptions } from "./runtime-worker";
         
     | 
| 
       2 
1 
     | 
    
         
             
            import { RpcMessage, RpcPeer } from "../../rpc";
         
     | 
| 
       3 
2 
     | 
    
         
             
            import { ChildProcessWorker } from "./child-process-worker";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { RuntimeWorkerOptions } from "./runtime-worker";
         
     | 
| 
       4 
4 
     | 
    
         
             
            export declare class NodeForkWorker extends ChildProcessWorker {
         
     | 
| 
       5 
5 
     | 
    
         
             
                constructor(mainFilename: string, pluginId: string, options: RuntimeWorkerOptions);
         
     | 
| 
       6 
6 
     | 
    
         
             
                setupRpcPeer(peer: RpcPeer): void;
         
     | 
| 
         @@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) { 
     | 
|
| 
       5 
5 
     | 
    
         
             
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
       6 
6 
     | 
    
         
             
            exports.NodeForkWorker = void 0;
         
     | 
| 
       7 
7 
     | 
    
         
             
            const child_process_1 = __importDefault(require("child_process"));
         
     | 
| 
       8 
     | 
    
         
            -
            const child_process_worker_1 = require("./child-process-worker");
         
     | 
| 
       9 
     | 
    
         
            -
            const socket_serializer_1 = require("../socket-serializer");
         
     | 
| 
       10 
8 
     | 
    
         
             
            const net_1 = __importDefault(require("net"));
         
     | 
| 
      
 9 
     | 
    
         
            +
            const socket_serializer_1 = require("../socket-serializer");
         
     | 
| 
      
 10 
     | 
    
         
            +
            const child_process_worker_1 = require("./child-process-worker");
         
     | 
| 
       11 
11 
     | 
    
         
             
            class NodeForkWorker extends child_process_worker_1.ChildProcessWorker {
         
     | 
| 
       12 
12 
     | 
    
         
             
                constructor(mainFilename, pluginId, options) {
         
     | 
| 
       13 
13 
     | 
    
         
             
                    super(pluginId, options);
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"node-fork-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-fork-worker.ts"],"names":[],"mappings":";;;;;; 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"node-fork-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-fork-worker.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAC1C,8CAAsB;AAEtB,4DAAgE;AAChE,iEAA4D;AAG5D,MAAa,cAAe,SAAQ,yCAAkB;IAElD,YAAY,YAAoB,EAAE,QAAgB,EAAE,OAA6B;QAC7E,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAErC,MAAM,QAAQ,GAAa,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACxC,aAAa,EAAE,UAAU;YACzB,QAAQ;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,IAAa;QACtB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC9C,IAAK,OAAe,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,OAAc,EAAE;oBAC/B,UAAU;iBACb,CAAC,CAAC;YACP,CAAC;iBACI,IAAI,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,OAAc,CAAC,CAAC;YACvC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,aAAG,CAAC,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,4CAAwB,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,MAA2B,EAAE,oBAA0B;QAC7E,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE;gBAC5D,IAAI,CAAC,IAAI,MAAM;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACL,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5B,CAAC;CACJ;AA1DD,wCA0DC"}
         
     |