@sockethub/server 5.0.0-alpha.3 → 5.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/tmp/coverage-39338-1663949520416-0.json +1 -0
- package/dist/bootstrap/init.js +2 -1
- package/dist/bootstrap/init.js.map +1 -1
- package/dist/config.d.ts +7 -1
- package/dist/config.js +6 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/janitor.d.ts +27 -12
- package/dist/janitor.js +97 -66
- package/dist/janitor.js.map +1 -1
- package/dist/listener.d.ts +4 -1
- package/dist/listener.js +8 -5
- package/dist/listener.js.map +1 -1
- package/dist/middleware/create-activity-object.d.ts +3 -1
- package/dist/middleware/create-activity-object.js.map +1 -1
- package/dist/middleware/expand-activity-stream.d.ts +2 -1
- package/dist/middleware/expand-activity-stream.js +4 -1
- package/dist/middleware/expand-activity-stream.js.map +1 -1
- package/dist/middleware/expand-activity-stream.test.data.js +4 -4
- package/dist/middleware/expand-activity-stream.test.data.js.map +1 -1
- package/dist/middleware/store-credentials.d.ts +3 -3
- package/dist/middleware/store-credentials.js +2 -12
- package/dist/middleware/store-credentials.js.map +1 -1
- package/dist/middleware/validate.d.ts +2 -2
- package/dist/middleware/validate.js +1 -3
- package/dist/middleware/validate.js.map +1 -1
- package/dist/middleware/validate.test.data.js +5 -5
- package/dist/middleware/validate.test.data.js.map +1 -1
- package/dist/middleware.d.ts +14 -3
- package/dist/middleware.js +3 -1
- package/dist/middleware.js.map +1 -1
- package/dist/platform-instance.d.ts +11 -10
- package/dist/platform-instance.js +77 -62
- package/dist/platform-instance.js.map +1 -1
- package/dist/platform.js +93 -104
- package/dist/platform.js.map +1 -1
- package/dist/process-manager.js +7 -3
- package/dist/process-manager.js.map +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/routes.js +1 -1
- package/dist/routes.js.map +1 -1
- package/dist/sockethub.d.ts +1 -22
- package/dist/sockethub.js +19 -26
- package/dist/sockethub.js.map +1 -1
- package/package.json +30 -36
- package/src/bootstrap/init.d.ts +17 -7
- package/src/bootstrap/init.ts +2 -1
- package/src/config.ts +9 -1
- package/src/index.ts +3 -2
- package/src/janitor.test.ts +189 -0
- package/src/janitor.ts +110 -65
- package/src/listener.ts +11 -7
- package/src/middleware/create-activity-object.ts +5 -2
- package/src/middleware/expand-activity-stream.test.data.ts +5 -5
- package/src/middleware/expand-activity-stream.test.ts +2 -2
- package/src/middleware/expand-activity-stream.ts +12 -7
- package/src/middleware/store-credentials.test.ts +4 -6
- package/src/middleware/store-credentials.ts +8 -14
- package/src/middleware/validate.test.data.ts +5 -5
- package/src/middleware/validate.ts +4 -6
- package/src/middleware.ts +28 -11
- package/src/platform-instance.test.ts +18 -18
- package/src/platform-instance.ts +98 -73
- package/src/platform.ts +79 -101
- package/src/process-manager.ts +1 -1
- package/src/routes.ts +3 -2
- package/src/sockethub.ts +29 -57
- package/views/examples/dummy.ejs +3 -1
- package/views/examples/shared.js +1 -1
- package/views/examples/xmpp.ejs +60 -34
- package/coverage/tmp/coverage-93126-1649152190997-0.json +0 -1
- package/dist/common.d.ts +0 -3
- package/dist/common.js +0 -20
- package/dist/common.js.map +0 -1
- package/dist/crypto.d.ts +0 -10
- package/dist/crypto.js +0 -38
- package/dist/crypto.js.map +0 -1
- package/dist/store.d.ts +0 -5
- package/dist/store.js +0 -17
- package/dist/store.js.map +0 -1
- package/src/common.test.ts +0 -54
- package/src/common.ts +0 -14
- package/src/config.d.ts +0 -2
- package/src/crypto.d.ts +0 -5
- package/src/crypto.test.ts +0 -41
- package/src/crypto.ts +0 -41
- package/src/janitor.d.ts +0 -8
- package/src/middleware/validate.d.ts +0 -1
- package/src/middleware.d.ts +0 -21
- package/src/sockethub.d.ts +0 -1
- package/src/store.test.ts +0 -28
- package/src/store.ts +0 -17
- package/test/queue.functional.test.js +0 -0
|
@@ -131,10 +131,10 @@ exports.default = [
|
|
|
131
131
|
"image": {
|
|
132
132
|
"height": 250,
|
|
133
133
|
"mediaType": "image/jpeg",
|
|
134
|
-
"url": "
|
|
134
|
+
"url": "https://example.org/image.jpg",
|
|
135
135
|
"width": 250
|
|
136
136
|
},
|
|
137
|
-
"url": "
|
|
137
|
+
"url": "https://sockethub.org"
|
|
138
138
|
},
|
|
139
139
|
"output": "same"
|
|
140
140
|
},
|
|
@@ -146,7 +146,7 @@ exports.default = [
|
|
|
146
146
|
"id": "irc://sh-9K3Vk@irc.freenode.net",
|
|
147
147
|
"type": "person",
|
|
148
148
|
"name": "sh-9K3Vk",
|
|
149
|
-
"url": "
|
|
149
|
+
"url": "https://sockethub.org"
|
|
150
150
|
},
|
|
151
151
|
"output": "same"
|
|
152
152
|
},
|
|
@@ -212,7 +212,7 @@ exports.default = [
|
|
|
212
212
|
"context": "fake",
|
|
213
213
|
"target": { "id": "irc://irc.dooder.net/a-room", "type": "room" }
|
|
214
214
|
},
|
|
215
|
-
"error": "Error: activity stream: must have required property
|
|
215
|
+
"error": "Error: activity stream: must have required property 'type'"
|
|
216
216
|
},
|
|
217
217
|
{
|
|
218
218
|
"name": "invalid context property",
|
|
@@ -235,7 +235,7 @@ exports.default = [
|
|
|
235
235
|
"context": "fake",
|
|
236
236
|
"target": { "id": "irc://irc.dooder.net/a-room", "type": "room" }
|
|
237
237
|
},
|
|
238
|
-
"error": "Error: activity stream: must have required property
|
|
238
|
+
"error": "Error: activity stream: must have required property 'actor'"
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
241
|
"name": "traditional message",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.test.data.js","sourceRoot":"/","sources":["middleware/validate.test.data.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validate.test.data.js","sourceRoot":"/","sources":["middleware/validate.test.data.ts"],"names":[],"mappings":"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"}
|
package/dist/middleware.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
import { IActivityStream } from "@sockethub/schemas";
|
|
1
2
|
export default function middleware(name: string): MiddlewareChain;
|
|
3
|
+
export interface MiddlewareChainInterface {
|
|
4
|
+
(error: IActivityStream | Error, data?: IActivityStream | MiddlewareChainInterface, next?: MiddlewareChainInterface): void;
|
|
5
|
+
}
|
|
6
|
+
interface ErrorHandlerInterface {
|
|
7
|
+
(err: Error, data?: unknown, cb?: unknown): void;
|
|
8
|
+
}
|
|
9
|
+
export interface LogErrorInterface {
|
|
10
|
+
(msg: Error): void;
|
|
11
|
+
}
|
|
2
12
|
export declare class MiddlewareChain {
|
|
3
13
|
name: string;
|
|
4
14
|
private chain;
|
|
5
15
|
private errHandler;
|
|
6
|
-
private logger;
|
|
16
|
+
private readonly logger;
|
|
7
17
|
constructor(name: string);
|
|
8
|
-
use(func:
|
|
9
|
-
done(): (data:
|
|
18
|
+
use(func: ErrorHandlerInterface | MiddlewareChainInterface): this;
|
|
19
|
+
done(): (data: unknown, callback: MiddlewareChainInterface) => void;
|
|
10
20
|
}
|
|
21
|
+
export {};
|
package/dist/middleware.js
CHANGED
|
@@ -32,7 +32,9 @@ class MiddlewareChain {
|
|
|
32
32
|
return (data, callback) => {
|
|
33
33
|
let position = 0;
|
|
34
34
|
if (typeof callback !== 'function') {
|
|
35
|
-
callback = () => {
|
|
35
|
+
callback = () => {
|
|
36
|
+
// ensure we have a callback function
|
|
37
|
+
};
|
|
36
38
|
}
|
|
37
39
|
const next = (_data) => {
|
|
38
40
|
if (_data instanceof Error) {
|
package/dist/middleware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"/","sources":["middleware.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"/","sources":["middleware.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAG9B,SAAwB,UAAU,CAAC,IAAY;IAC7C,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAFD,6BAEC;AAgBD,MAAa,eAAe;IAM1B,YAAY,IAAY;QAJhB,UAAK,GAAoC,EAAE,CAAC;QAC5C,eAAU,GAA0B,CAAC,GAAU,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAIzE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAA,aAAK,EAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,IAAsD;QACxD,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC7E;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,IAA6B,CAAC;SACjD;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAgC,CAAC,CAAC;SACnD;aAAM;YACL,MAAM,IAAI,KAAK,CACb,gEAAgE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;SACnF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,OAAO,CAAC,IAAa,EAAE,QAAkC,EAAE,EAAE;YAC3D,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,QAAQ,GAAG,GAAG,EAAE;oBACd,qCAAqC;gBACvC,CAAC,CAAC;aACH;YACD,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,EAAE;gBAC9B,IAAI,KAAK,YAAY,KAAK,EAAE;oBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;iBACxC;qBAAM,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE;oBACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAwB,EAAE,IAAI,CAAC,CAAC;iBACxD;qBAAM;oBACL,QAAQ,CAAC,KAAwB,CAAC,CAAC;iBACpC;YACH,CAAC,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,CAAC,CAAC;IACJ,CAAC;CACF;AA/CD,0CA+CC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { ChildProcess } from 'child_process';
|
|
3
3
|
import { Debugger } from 'debug';
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
4
|
+
import { IActivityStream, CompletedJobHandler } from "@sockethub/schemas";
|
|
5
|
+
import { JobQueue } from "@sockethub/data-layer";
|
|
6
6
|
export declare const platformInstances: Map<string, PlatformInstance>;
|
|
7
7
|
export interface PlatformInstanceParams {
|
|
8
8
|
identifier: string;
|
|
@@ -10,33 +10,34 @@ export interface PlatformInstanceParams {
|
|
|
10
10
|
parentId?: string;
|
|
11
11
|
actor?: string;
|
|
12
12
|
}
|
|
13
|
-
export interface MessageFromParent extends Array<string |
|
|
13
|
+
export interface MessageFromParent extends Array<string | unknown> {
|
|
14
14
|
0: string;
|
|
15
|
-
1:
|
|
15
|
+
1: unknown;
|
|
16
16
|
}
|
|
17
17
|
interface PlatformConfig {
|
|
18
18
|
persist?: boolean;
|
|
19
19
|
requireCredentials?: Array<string>;
|
|
20
20
|
}
|
|
21
21
|
export default class PlatformInstance {
|
|
22
|
-
flaggedForTermination: boolean;
|
|
23
22
|
id: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
flaggedForTermination: boolean;
|
|
24
|
+
initialized: boolean;
|
|
25
|
+
jobQueue: JobQueue;
|
|
26
|
+
readonly global: boolean;
|
|
27
|
+
readonly completedJobHandlers: Map<string, CompletedJobHandler>;
|
|
28
|
+
readonly config: PlatformConfig;
|
|
27
29
|
readonly name: string;
|
|
28
30
|
readonly process: ChildProcess;
|
|
29
31
|
readonly debug: Debugger;
|
|
30
32
|
readonly parentId: string;
|
|
31
33
|
readonly sessions: Set<string>;
|
|
32
34
|
readonly sessionCallbacks: object;
|
|
33
|
-
readonly global?: boolean;
|
|
34
35
|
private readonly actor?;
|
|
35
36
|
constructor(params: PlatformInstanceParams);
|
|
36
37
|
/**
|
|
37
38
|
* Destroys all references to this platform instance, internal listeners and controlled processes
|
|
38
39
|
*/
|
|
39
|
-
|
|
40
|
+
shutdown(): Promise<void>;
|
|
40
41
|
/**
|
|
41
42
|
* When jobs are completed or failed, we prepare the results and send them to the client socket
|
|
42
43
|
*/
|
|
@@ -7,15 +7,17 @@ exports.platformInstances = void 0;
|
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
8
|
const path_1 = require("path");
|
|
9
9
|
const debug_1 = require("debug");
|
|
10
|
-
const
|
|
10
|
+
const data_layer_1 = require("@sockethub/data-layer");
|
|
11
11
|
const config_1 = __importDefault(require("./config"));
|
|
12
12
|
const listener_1 = require("./listener");
|
|
13
|
-
const
|
|
13
|
+
const nconf_1 = __importDefault(require("nconf"));
|
|
14
14
|
// collection of platform instances, stored by `id`
|
|
15
15
|
exports.platformInstances = new Map();
|
|
16
16
|
class PlatformInstance {
|
|
17
17
|
constructor(params) {
|
|
18
18
|
this.flaggedForTermination = false;
|
|
19
|
+
this.initialized = false;
|
|
20
|
+
this.global = false;
|
|
19
21
|
this.completedJobHandlers = new Map();
|
|
20
22
|
this.config = {};
|
|
21
23
|
this.sessions = new Set();
|
|
@@ -23,7 +25,6 @@ class PlatformInstance {
|
|
|
23
25
|
'close': (() => new Map())(),
|
|
24
26
|
'message': (() => new Map())()
|
|
25
27
|
};
|
|
26
|
-
this.global = false;
|
|
27
28
|
this.id = params.identifier;
|
|
28
29
|
this.name = params.platform;
|
|
29
30
|
this.parentId = params.parentId;
|
|
@@ -33,55 +34,60 @@ class PlatformInstance {
|
|
|
33
34
|
else {
|
|
34
35
|
this.global = true;
|
|
35
36
|
}
|
|
36
|
-
this.debug = (0, debug_1.debug)(`sockethub:platform-instance:${this.id}`);
|
|
37
|
+
this.debug = (0, debug_1.debug)(`sockethub:server:platform-instance:${this.id}`);
|
|
38
|
+
const env = {};
|
|
39
|
+
if (process.env.DEBUG) {
|
|
40
|
+
env.DEBUG = process.env.DEBUG;
|
|
41
|
+
}
|
|
42
|
+
if (config_1.default.get('redis:url')) {
|
|
43
|
+
env.REDIS_URL = config_1.default.get('redis:url');
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
env.REDIS_HOST = config_1.default.get('redis:host');
|
|
47
|
+
env.REDIS_PORT = config_1.default.get('redis:port');
|
|
48
|
+
}
|
|
37
49
|
// spin off a process
|
|
38
|
-
const env = config_1.default.get('redis:url') ? { REDIS_URL: config_1.default.get('redis:url') }
|
|
39
|
-
: { REDIS_HOST: config_1.default.get('redis:host'), REDIS_PORT: config_1.default.get('redis:port') };
|
|
40
50
|
this.process = (0, child_process_1.fork)((0, path_1.join)(__dirname, 'platform.js'), [this.parentId, this.name, this.id], { env: env });
|
|
41
51
|
}
|
|
42
52
|
/**
|
|
43
53
|
* Destroys all references to this platform instance, internal listeners and controlled processes
|
|
44
54
|
*/
|
|
45
|
-
async
|
|
46
|
-
this.debug(
|
|
55
|
+
async shutdown() {
|
|
56
|
+
this.debug('shutdown');
|
|
47
57
|
this.flaggedForTermination = true;
|
|
48
58
|
try {
|
|
49
|
-
await this.
|
|
59
|
+
await this.process.removeAllListeners('close');
|
|
60
|
+
await this.process.unref();
|
|
61
|
+
this.process.kill();
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
// needs to happen
|
|
50
65
|
}
|
|
51
|
-
catch (e) { }
|
|
52
66
|
try {
|
|
53
|
-
await this.
|
|
67
|
+
await this.jobQueue.shutdown();
|
|
68
|
+
delete this.jobQueue;
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
// this needs to happen
|
|
54
72
|
}
|
|
55
|
-
catch (e) { }
|
|
56
73
|
try {
|
|
57
|
-
delete
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
74
|
+
exports.platformInstances.delete(this.id);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
// this needs to happen
|
|
61
78
|
}
|
|
62
|
-
catch (e) { }
|
|
63
|
-
exports.platformInstances.delete(this.id);
|
|
64
79
|
}
|
|
65
80
|
/**
|
|
66
81
|
* When jobs are completed or failed, we prepare the results and send them to the client socket
|
|
67
82
|
*/
|
|
68
83
|
initQueue(secret) {
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
71
|
-
|
|
72
|
-
this.
|
|
73
|
-
await this.handleJobResult('completed', (0, common_1.decryptJobData)(job, secret), result);
|
|
74
|
-
await job.remove();
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
this.queue.on('global:error', (jobId, result) => {
|
|
78
|
-
this.debug("unknown queue error", jobId, result);
|
|
84
|
+
this.jobQueue = new data_layer_1.JobQueue(this.parentId, this.id, secret, nconf_1.default.get('redis'));
|
|
85
|
+
this.jobQueue.initResultEvents();
|
|
86
|
+
this.jobQueue.on('global:completed', async (job, result) => {
|
|
87
|
+
await this.handleJobResult('completed', job, result);
|
|
79
88
|
});
|
|
80
|
-
this.
|
|
81
|
-
this.
|
|
82
|
-
await this.handleJobResult('failed', (0, common_1.decryptJobData)(job, secret), result);
|
|
83
|
-
await job.remove();
|
|
84
|
-
});
|
|
89
|
+
this.jobQueue.on('global:failed', async (job, result) => {
|
|
90
|
+
await this.handleJobResult('failed', job, result);
|
|
85
91
|
});
|
|
86
92
|
}
|
|
87
93
|
/**
|
|
@@ -91,7 +97,7 @@ class PlatformInstance {
|
|
|
91
97
|
registerSession(sessionId) {
|
|
92
98
|
if (!this.sessions.has(sessionId)) {
|
|
93
99
|
this.sessions.add(sessionId);
|
|
94
|
-
for (
|
|
100
|
+
for (const type of Object.keys(this.sessionCallbacks)) {
|
|
95
101
|
const cb = this.callbackFunction(type, sessionId);
|
|
96
102
|
this.process.on(type, cb);
|
|
97
103
|
this.sessionCallbacks[type].set(sessionId, cb);
|
|
@@ -110,18 +116,19 @@ class PlatformInstance {
|
|
|
110
116
|
// this property should never be exposed externally
|
|
111
117
|
delete msg.sessionSecret;
|
|
112
118
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
119
|
+
finally {
|
|
120
|
+
msg.context = this.name;
|
|
121
|
+
if ((msg.type === 'error') && (typeof msg.actor === 'undefined') && (this.actor)) {
|
|
122
|
+
// ensure an actor is present if not otherwise defined
|
|
123
|
+
msg.actor = { id: this.actor, type: 'unknown' };
|
|
124
|
+
}
|
|
125
|
+
socket.emit('message', msg);
|
|
118
126
|
}
|
|
119
|
-
socket.emit('message', msg);
|
|
120
127
|
}, (err) => this.debug(`sendToClient ${err}`));
|
|
121
128
|
}
|
|
122
129
|
// send message to every connected socket associated with this platform instance.
|
|
123
130
|
async broadcastToSharedPeers(sessionId, msg) {
|
|
124
|
-
for (
|
|
131
|
+
for (const sid of this.sessions.values()) {
|
|
125
132
|
if (sid !== sessionId) {
|
|
126
133
|
this.debug(`broadcasting message to ${sid}`);
|
|
127
134
|
await this.sendToClient(sid, msg);
|
|
@@ -129,29 +136,37 @@ class PlatformInstance {
|
|
|
129
136
|
}
|
|
130
137
|
}
|
|
131
138
|
// handle job results coming in on the queue from platform instances
|
|
132
|
-
async handleJobResult(type,
|
|
133
|
-
|
|
134
|
-
delete jobData.msg.sessionSecret;
|
|
135
|
-
let msg = jobData.msg;
|
|
139
|
+
async handleJobResult(type, job, result) {
|
|
140
|
+
const msg = job.msg;
|
|
136
141
|
if (type === 'failed') {
|
|
137
142
|
msg.error = result ? result : "job failed for unknown reason";
|
|
138
|
-
|
|
139
|
-
this.debug(`critical job type ${jobData.msg.type} failed, terminating platform instance`);
|
|
140
|
-
await this.destroy();
|
|
141
|
-
}
|
|
143
|
+
this.debug(`${job.title} ${type}: ${msg.error}`);
|
|
142
144
|
}
|
|
143
145
|
// send result to client
|
|
144
|
-
const callback = this.completedJobHandlers.get(
|
|
146
|
+
const callback = this.completedJobHandlers.get(job.title);
|
|
145
147
|
if (callback) {
|
|
146
148
|
callback(msg);
|
|
147
|
-
this.completedJobHandlers.delete(
|
|
149
|
+
this.completedJobHandlers.delete(job.title);
|
|
148
150
|
}
|
|
149
151
|
else {
|
|
150
|
-
await this.sendToClient(
|
|
152
|
+
await this.sendToClient(job.sessionId, msg);
|
|
151
153
|
}
|
|
152
154
|
// let all related peers know of result as an independent message
|
|
153
155
|
// (not as part of a job completion, or failure)
|
|
154
|
-
await this.broadcastToSharedPeers(
|
|
156
|
+
await this.broadcastToSharedPeers(job.sessionId, msg);
|
|
157
|
+
if ((this.config.persist) && (this.config.requireCredentials.includes(job.msg.type))) {
|
|
158
|
+
if (type === 'failed') {
|
|
159
|
+
this.debug(`critical job type ${job.msg.type} failed, flagging for termination`);
|
|
160
|
+
await this.jobQueue.pause();
|
|
161
|
+
this.initialized = false;
|
|
162
|
+
this.flaggedForTermination = true;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
await this.jobQueue.resume();
|
|
166
|
+
this.initialized = true;
|
|
167
|
+
this.flaggedForTermination = false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
155
170
|
}
|
|
156
171
|
/**
|
|
157
172
|
* Sends error message to client and clears all references to this class.
|
|
@@ -167,7 +182,7 @@ class PlatformInstance {
|
|
|
167
182
|
};
|
|
168
183
|
this.sendToClient(sessionId, errorObject);
|
|
169
184
|
this.sessions.clear();
|
|
170
|
-
await this.
|
|
185
|
+
await this.shutdown();
|
|
171
186
|
}
|
|
172
187
|
/**
|
|
173
188
|
* Updates the instance with a new identifier, updating the platformInstances mapping as well.
|
|
@@ -186,21 +201,21 @@ class PlatformInstance {
|
|
|
186
201
|
*/
|
|
187
202
|
callbackFunction(listener, sessionId) {
|
|
188
203
|
const funcs = {
|
|
189
|
-
'close': (e) => {
|
|
204
|
+
'close': async (e) => {
|
|
190
205
|
this.debug(`close even triggered ${this.id}: ${e}`);
|
|
191
|
-
this.reportError(sessionId, `Error: session thread closed unexpectedly: ${e}`);
|
|
206
|
+
await this.reportError(sessionId, `Error: session thread closed unexpectedly: ${e}`);
|
|
192
207
|
},
|
|
193
|
-
'message': (
|
|
194
|
-
if (
|
|
208
|
+
'message': async ([first, second, third]) => {
|
|
209
|
+
if (first === 'updateActor') {
|
|
195
210
|
// We need to update the key to the store in order to find it in the future.
|
|
196
|
-
this.updateIdentifier(
|
|
211
|
+
this.updateIdentifier(third);
|
|
197
212
|
}
|
|
198
|
-
else if (
|
|
199
|
-
this.reportError(sessionId,
|
|
213
|
+
else if ((first === 'error') && (typeof second === "string")) {
|
|
214
|
+
await this.reportError(sessionId, second);
|
|
200
215
|
}
|
|
201
216
|
else {
|
|
202
217
|
// treat like a message to clients
|
|
203
|
-
this.sendToClient(sessionId,
|
|
218
|
+
this.sendToClient(sessionId, second);
|
|
204
219
|
}
|
|
205
220
|
}
|
|
206
221
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-instance.js","sourceRoot":"/","sources":["platform-instance.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"platform-instance.js","sourceRoot":"/","sources":["platform-instance.ts"],"names":[],"mappings":"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"}
|