sockethub 5.0.0-alpha.0 → 5.0.0-alpha.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.
Files changed (102) hide show
  1. package/bin/sockethub +2 -29
  2. package/build.js +21 -0
  3. package/package.json +15 -65
  4. package/{dist/defaults.json → sockethub.config.json} +8 -7
  5. package/tsconfig.json +6 -68
  6. package/README.md +0 -98
  7. package/config.json.example +0 -32
  8. package/coverage/tmp/coverage-15699-1646422276150-0.json +0 -1
  9. package/dist/bootstrap/init.js +0 -74
  10. package/dist/bootstrap/init.js.map +0 -1
  11. package/dist/bootstrap/platforms.js +0 -103
  12. package/dist/common.js +0 -20
  13. package/dist/common.js.map +0 -1
  14. package/dist/config.js +0 -60
  15. package/dist/config.js.map +0 -1
  16. package/dist/crypto.js +0 -38
  17. package/dist/crypto.js.map +0 -1
  18. package/dist/janitor.js +0 -98
  19. package/dist/janitor.js.map +0 -1
  20. package/dist/middleware/create-activity-object.js +0 -19
  21. package/dist/middleware/create-activity-object.js.map +0 -1
  22. package/dist/middleware/expand-activity-stream.js +0 -33
  23. package/dist/middleware/expand-activity-stream.js.map +0 -1
  24. package/dist/middleware/expand-activity-stream.test.data.js +0 -360
  25. package/dist/middleware/expand-activity-stream.test.data.js.map +0 -1
  26. package/dist/middleware/store-credentials.js +0 -19
  27. package/dist/middleware/store-credentials.js.map +0 -1
  28. package/dist/middleware/validate.js +0 -77
  29. package/dist/middleware/validate.js.map +0 -1
  30. package/dist/middleware/validate.test.data.js +0 -321
  31. package/dist/middleware/validate.test.data.js.map +0 -1
  32. package/dist/middleware.js +0 -54
  33. package/dist/middleware.js.map +0 -1
  34. package/dist/platform-instance.js +0 -226
  35. package/dist/platform-instance.js.map +0 -1
  36. package/dist/platform.js +0 -186
  37. package/dist/platform.js.map +0 -1
  38. package/dist/process-manager.js +0 -78
  39. package/dist/process-manager.js.map +0 -1
  40. package/dist/routes.js +0 -84
  41. package/dist/routes.js.map +0 -1
  42. package/dist/serve.js +0 -102
  43. package/dist/serve.js.map +0 -1
  44. package/dist/sockethub-client.js +0 -2604
  45. package/dist/sockethub-client.js.map +0 -1
  46. package/dist/sockethub-client.min.js +0 -2
  47. package/dist/sockethub-client.min.js.LICENSE.txt +0 -24
  48. package/dist/sockethub.js +0 -130
  49. package/dist/sockethub.js.map +0 -1
  50. package/dist/store.js +0 -17
  51. package/dist/store.js.map +0 -1
  52. package/src/bootstrap/init.d.ts +0 -8
  53. package/src/bootstrap/init.ts +0 -91
  54. package/src/bootstrap/platforms.js +0 -103
  55. package/src/common.test.ts +0 -54
  56. package/src/common.ts +0 -14
  57. package/src/config.d.ts +0 -2
  58. package/src/config.test.ts +0 -28
  59. package/src/config.ts +0 -72
  60. package/src/crypto.d.ts +0 -5
  61. package/src/crypto.test.ts +0 -41
  62. package/src/crypto.ts +0 -41
  63. package/src/defaults.json +0 -32
  64. package/src/janitor.d.ts +0 -8
  65. package/src/janitor.ts +0 -89
  66. package/src/middleware/create-activity-object.test.ts +0 -10
  67. package/src/middleware/create-activity-object.ts +0 -13
  68. package/src/middleware/expand-activity-stream.test.data.ts +0 -365
  69. package/src/middleware/expand-activity-stream.test.ts +0 -78
  70. package/src/middleware/expand-activity-stream.ts +0 -27
  71. package/src/middleware/store-credentials.test.ts +0 -72
  72. package/src/middleware/store-credentials.ts +0 -16
  73. package/src/middleware/validate.d.ts +0 -1
  74. package/src/middleware/validate.test.data.ts +0 -320
  75. package/src/middleware/validate.test.ts +0 -47
  76. package/src/middleware/validate.ts +0 -49
  77. package/src/middleware.d.ts +0 -21
  78. package/src/middleware.test.ts +0 -148
  79. package/src/middleware.ts +0 -52
  80. package/src/platform-instance.test.ts +0 -237
  81. package/src/platform-instance.ts +0 -236
  82. package/src/platform.ts +0 -189
  83. package/src/process-manager.ts +0 -64
  84. package/src/routes.test.ts +0 -100
  85. package/src/routes.ts +0 -93
  86. package/src/serve.ts +0 -79
  87. package/src/sockethub-client.test.ts +0 -235
  88. package/src/sockethub-client.ts +0 -164
  89. package/src/sockethub.d.ts +0 -1
  90. package/src/sockethub.ts +0 -184
  91. package/src/store.test.ts +0 -26
  92. package/src/store.ts +0 -17
  93. package/test/init-suite.js +0 -41
  94. package/test/sockethub-suite.js +0 -25
  95. package/views/examples/dummy.ejs +0 -93
  96. package/views/examples/feeds.ejs +0 -90
  97. package/views/examples/irc.ejs +0 -239
  98. package/views/examples/shared.js +0 -72
  99. package/views/examples/xmpp.ejs +0 -191
  100. package/views/index.ejs +0 -17
  101. package/webpack.minified.config.js +0 -14
  102. package/webpack.normal.config.js +0 -14
@@ -1,321 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = [
4
- {
5
- "name": "mismatched types",
6
- "valid": false,
7
- "type": "credentials",
8
- "input": {
9
- "id": "blah",
10
- "type": "send",
11
- "context": "dummy",
12
- "actor": {
13
- "id": "dood@irc.freenode.net",
14
- "type": "person",
15
- "name": "dood"
16
- },
17
- "target": {
18
- "id": "irc.freenode.net/sockethub",
19
- "type": "person",
20
- "name": "sockethub"
21
- },
22
- "object": {
23
- "type": "credentials",
24
- "user": 'foo',
25
- "pass": 'bar'
26
- }
27
- },
28
- 'error': "Error: credential activity streams must have credentials set as type"
29
- },
30
- {
31
- "name": "basic",
32
- "valid": true,
33
- "type": "credentials",
34
- "input": {
35
- "id": "blah",
36
- "type": "credentials",
37
- "context": "dummy",
38
- "actor": {
39
- "id": "dood@irc.freenode.net",
40
- "type": "person",
41
- "name": "dood"
42
- },
43
- "object": {
44
- 'type': 'credentials',
45
- "user": 'foo',
46
- "pass": 'bar'
47
- }
48
- },
49
- "output": "same"
50
- },
51
- {
52
- "name": "irc credentials",
53
- "valid": true,
54
- "type": "credentials",
55
- "input": {
56
- "context": "irc",
57
- "type": "credentials",
58
- "actor": {
59
- "id": "sh-9K3Vk@irc.freenode.net",
60
- "type": "person",
61
- "name": "sh-9K3Vk",
62
- "image": {
63
- "height": 250,
64
- "mediaType": "image/jpeg",
65
- "url": "http://example.org/image.jpg",
66
- "width": 250
67
- },
68
- "url": "http://sockethub.org"
69
- },
70
- "object": {
71
- "type": "credentials",
72
- "nick": "sh-9K3Vk",
73
- "port": 6667,
74
- "secure": false,
75
- "server": "irc.freenode.net"
76
- }
77
- },
78
- "output": "same"
79
- },
80
- {
81
- "name": "bad irc credentials: user/nick host/server",
82
- "valid": false,
83
- "type": "credentials",
84
- "input": {
85
- "context": "irc",
86
- "type": "credentials",
87
- "actor": {
88
- "id": "sh-9K3Vk@irc.freenode.net",
89
- "type": "person",
90
- "name": "sh-9K3Vk",
91
- "image": {
92
- "height": 250,
93
- "mediaType": "image/jpeg",
94
- "url": "http://example.org/image.jpg",
95
- "width": 250
96
- },
97
- "url": "http://sockethub.org"
98
- },
99
- "object": {
100
- "type": "credentials",
101
- "user": "sh-9K3Vk",
102
- "port": 6667,
103
- "secure": false,
104
- "host": "irc.freenode.net"
105
- }
106
- },
107
- "error": "Error: /object: must NOT have additional properties"
108
- },
109
- {
110
- "name": "no type specified",
111
- "valid": false,
112
- "type": "credentials",
113
- "input": {
114
- "actor": "hyper_rau@localhost",
115
- "context": "xmpp",
116
- "object": {
117
- "username": "hyper_rau",
118
- "password": "123",
119
- "server": "localhost",
120
- "port": 5222,
121
- "resource": "laptop"
122
- }
123
- },
124
- "error": "Error: credential activity streams must have credentials set as type"
125
- },
126
- {
127
- "name": "basic person",
128
- "type": "activity-object",
129
- "valid": true,
130
- "input": {
131
- "id": "blah",
132
- "type": "person",
133
- "name": "dood"
134
- },
135
- "output": "same"
136
- },
137
- {
138
- "name": "person with extras",
139
- "valid": true,
140
- "type": "activity-object",
141
- "input": {
142
- "id": "blah",
143
- "type": "person",
144
- "name": "bob",
145
- "hello": "there",
146
- "i": [
147
- "am",
148
- "extras"
149
- ]
150
- },
151
- "output": "same"
152
- },
153
- {
154
- "name": "alone credentials (as activity-object)",
155
- "valid": false,
156
- "type": "activity-object",
157
- "input": {
158
- "type": "credentials",
159
- "nick": "sh-9K3Vk",
160
- "port": 6667,
161
- "secure": false,
162
- "server": "irc.freenode.net"
163
- },
164
- "error": "Error: /object: must match exactly one schema in oneOf: " +
165
- "credentials, feed, message, me, person, room, service, website, " +
166
- "attendance, presence, relationship, topic, address"
167
- },
168
- {
169
- "name": "alone credentials (as credentials)",
170
- "valid": false,
171
- "type": "credentials",
172
- "input": {
173
- "type": "credentials",
174
- "nick": "sh-9K3Vk",
175
- "port": 6667,
176
- "secure": false,
177
- "server": "irc.freenode.net"
178
- },
179
- "error": "Error: platform context undefined not registered with this sockethub instance."
180
- },
181
- {
182
- "name": "new person",
183
- "valid": true,
184
- "type": "activity-object",
185
- "input": {
186
- "id": "sh-9K3Vk@irc.freenode.net",
187
- "type": "person",
188
- "name": "sh-9K3Vk",
189
- "image": {
190
- "height": 250,
191
- "mediaType": "image/jpeg",
192
- "url": "http://example.org/image.jpg",
193
- "width": 250
194
- },
195
- "url": "http://sockethub.org"
196
- },
197
- "output": "same"
198
- },
199
- {
200
- "name": "new person",
201
- "valid": true,
202
- "type": "activity-object",
203
- "input": {
204
- "id": "irc://sh-9K3Vk@irc.freenode.net",
205
- "type": "person",
206
- "name": "sh-9K3Vk",
207
- "url": "http://sockethub.org"
208
- },
209
- "output": "same"
210
- },
211
- {
212
- "name": "bad parent object",
213
- "valid": false,
214
- "type": "activity-stream",
215
- "input": {
216
- "string": "this is a string",
217
- "array": [
218
- "this",
219
- "is",
220
- {
221
- "an": "array"
222
- }
223
- ],
224
- "as": {
225
- "id": "blah",
226
- "type": "send",
227
- "context": "hello",
228
- "actor": {
229
- "name": "dood"
230
- },
231
- "target": {
232
- "type": "person",
233
- "name": "bob"
234
- },
235
- "object": {
236
- "type": "credentials"
237
- }
238
- },
239
- "noId": {
240
- "name": "dood"
241
- },
242
- "noId2": {
243
- "type": "person",
244
- "name": "bob"
245
- },
246
- "noDisplayName": {
247
- "id": "larg"
248
- }
249
- },
250
- "error": "Error: platform context undefined not registered with this sockethub instance."
251
- },
252
- {
253
- "name": "unexpected AS",
254
- "valid": false,
255
- "type": "message",
256
- "input": {
257
- "actor": "irc://uuu@localhost",
258
- "type": "join",
259
- "context": "irc",
260
- "target": "irc://irc.dooder.net/a-room"
261
- },
262
- "error": "Error: /actor: must be object"
263
- },
264
- {
265
- "name": "missing type property",
266
- "valid": false,
267
- "type": "message",
268
- "input": {
269
- "actor": { "id": "irc://uuu@localhost", "type": "person" },
270
- "context": "irc",
271
- "target": { "id": "irc://irc.dooder.net/a-room", "type": "room" }
272
- },
273
- "error": "Error: activity stream: must have required property \'type\'"
274
- },
275
- {
276
- "name": "invalid context property",
277
- "valid": false,
278
- "type": "message",
279
- "input": {
280
- "actor": { "id": "irc://uuu@localhost", "type": "person" },
281
- "type": "foo",
282
- "context": "foobar",
283
- "target": { "id": "irc://irc.dooder.net/a-room", "type": "room" }
284
- },
285
- "error": "Error: platform context foobar not registered with this sockethub instance."
286
- },
287
- {
288
- "name": "missing actor property",
289
- "valid": false,
290
- "type": "message",
291
- "input": {
292
- "type": "foo",
293
- "context": "irc",
294
- "target": { "id": "irc://irc.dooder.net/a-room", "type": "room" }
295
- },
296
- "error": "Error: activity stream: must have required property \'actor\'"
297
- },
298
- {
299
- "name": "traditional message",
300
- "valid": true,
301
- "type": "message",
302
- "input": {
303
- "type": "update",
304
- "context": "irc",
305
- "actor": { "id": "irc://uuu@localhost", "type": "person" }
306
- }
307
- },
308
- {
309
- "name": "message with wrong type",
310
- "valid": false,
311
- "type": "message",
312
- "input": {
313
- "type": "foorg",
314
- "context": "irc",
315
- "actor": { "id": "irc://uuu@localhost", "type": "person" }
316
- },
317
- "error": "Error: platform type foorg not supported by irc platform. " +
318
- "(types: credentials, connect, update, join, leave, send, query, announce)"
319
- }
320
- ];
321
- //# sourceMappingURL=/middleware/validate.test.data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.test.data.js","sourceRoot":"/","sources":["middleware/validate.test.data.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MiddlewareChain = void 0;
4
- const debug_1 = require("debug");
5
- function middleware(name) {
6
- return new MiddlewareChain(name);
7
- }
8
- exports.default = middleware;
9
- class MiddlewareChain {
10
- constructor(name) {
11
- this.chain = [];
12
- this.errHandler = (err) => { throw err; };
13
- this.name = name;
14
- this.logger = (0, debug_1.debug)(`sockethub:middleware:${name}`);
15
- }
16
- use(func) {
17
- if (typeof func !== 'function') {
18
- throw new Error('middleware use() can only take a function as an argument');
19
- }
20
- if (func.length === 3) {
21
- this.errHandler = func;
22
- }
23
- else if (func.length === 2) {
24
- this.chain.push(func);
25
- }
26
- else {
27
- throw new Error('middleware function provided with incorrect number of params: ' + func.length);
28
- }
29
- return this;
30
- }
31
- done() {
32
- return (data, callback) => {
33
- let position = 0;
34
- if (typeof callback !== 'function') {
35
- callback = () => { };
36
- }
37
- const next = (_data) => {
38
- if (_data instanceof Error) {
39
- this.logger(_data);
40
- this.errHandler(_data, data, callback);
41
- }
42
- else if (typeof this.chain[position] === 'function') {
43
- this.chain[position++](_data, next);
44
- }
45
- else {
46
- callback(_data);
47
- }
48
- };
49
- next(data);
50
- };
51
- }
52
- }
53
- exports.MiddlewareChain = MiddlewareChain;
54
- //# sourceMappingURL=/middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"/","sources":["middleware.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAE9B,SAAwB,UAAU,CAAC,IAAY;IAC7C,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAFD,6BAEC;AAED,MAAa,eAAe;IAM1B,YAAY,IAAY;QAJhB,UAAK,GAAoB,EAAE,CAAC;QAC5B,eAAU,GAAa,CAAC,GAAU,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAI5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAA,aAAK,EAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,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,IAAI,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;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,IAAS,EAAE,QAAkB,EAAE,EAAE;YACvC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;aACrB;YACD,MAAM,IAAI,GAAG,CAAC,KAAU,EAAE,EAAE;gBAC1B,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,KAAK,EAAE,IAAI,CAAC,CAAC;iBACrC;qBAAM;oBACL,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACjB;YACH,CAAC,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,CAAC,CAAC;IACJ,CAAC;CACF;AA7CD,0CA6CC"}
@@ -1,226 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.platformInstances = void 0;
16
- const child_process_1 = require("child_process");
17
- const path_1 = require("path");
18
- const debug_1 = require("debug");
19
- const bull_1 = __importDefault(require("bull"));
20
- const config_1 = __importDefault(require("./config"));
21
- const serve_1 = require("./serve");
22
- const common_1 = require("./common");
23
- // collection of platform instances, stored by `id`
24
- exports.platformInstances = new Map();
25
- class PlatformInstance {
26
- constructor(params) {
27
- this.flaggedForTermination = false;
28
- this.completedJobHandlers = new Map();
29
- this.config = {};
30
- this.sessions = new Set();
31
- this.sessionCallbacks = {
32
- 'close': (() => new Map())(),
33
- 'message': (() => new Map())()
34
- };
35
- this.global = false;
36
- this.id = params.identifier;
37
- this.name = params.platform;
38
- this.parentId = params.parentId;
39
- if (params.actor) {
40
- this.actor = params.actor;
41
- }
42
- else {
43
- this.global = true;
44
- }
45
- this.debug = (0, debug_1.debug)(`sockethub:platform-instance:${this.id}`);
46
- // spin off a process
47
- this.process = (0, child_process_1.fork)((0, path_1.join)(__dirname, 'platform.js'), [this.parentId, this.name, this.id]);
48
- }
49
- /**
50
- * Destroys all references to this platform instance, internal listeners and controlled processes
51
- */
52
- destroy() {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- this.debug(`cleaning up`);
55
- this.flaggedForTermination = true;
56
- try {
57
- yield this.queue.removeAllListeners();
58
- }
59
- catch (e) { }
60
- try {
61
- yield this.queue.obliterate({ force: true });
62
- }
63
- catch (e) { }
64
- try {
65
- delete this.queue;
66
- yield this.process.removeAllListeners('close');
67
- yield this.process.unref();
68
- yield this.process.kill();
69
- }
70
- catch (e) { }
71
- exports.platformInstances.delete(this.id);
72
- });
73
- }
74
- /**
75
- * When jobs are completed or failed, we prepare the results and send them to the client socket
76
- */
77
- initQueue(secret) {
78
- this.queue = new bull_1.default(this.parentId + this.id, { redis: config_1.default.get('redis') });
79
- this.queue.on('global:completed', (jobId, resultString) => {
80
- const result = resultString ? JSON.parse(resultString) : "";
81
- this.queue.getJob(jobId).then((job) => __awaiter(this, void 0, void 0, function* () {
82
- yield this.handleJobResult('completed', (0, common_1.decryptJobData)(job, secret), result);
83
- yield job.remove();
84
- }));
85
- });
86
- this.queue.on('global:error', (jobId, result) => {
87
- this.debug("unknown queue error", jobId, result);
88
- });
89
- this.queue.on('global:failed', (jobId, result) => {
90
- this.queue.getJob(jobId).then((job) => __awaiter(this, void 0, void 0, function* () {
91
- yield this.handleJobResult('failed', (0, common_1.decryptJobData)(job, secret), result);
92
- yield job.remove();
93
- }));
94
- });
95
- }
96
- /**
97
- * Register listener to be called when the process emits a message.
98
- * @param sessionId ID of socket connection that will receive messages from platform emits
99
- */
100
- registerSession(sessionId) {
101
- if (!this.sessions.has(sessionId)) {
102
- this.sessions.add(sessionId);
103
- for (let type of Object.keys(this.sessionCallbacks)) {
104
- const cb = this.callbackFunction(type, sessionId);
105
- this.process.on(type, cb);
106
- this.sessionCallbacks[type].set(sessionId, cb);
107
- }
108
- }
109
- }
110
- /**
111
- * Sends a message to client (user), can be registered with an event emitted from the platform
112
- * process.
113
- * @param sessionId ID of the socket connection to send the message to
114
- * @param msg ActivityStream object to send to client
115
- */
116
- sendToClient(sessionId, msg) {
117
- (0, serve_1.getSocket)(sessionId).then((socket) => {
118
- try {
119
- // this property should never be exposed externally
120
- delete msg.sessionSecret;
121
- }
122
- catch (e) { }
123
- msg.context = this.name;
124
- if ((msg.type === 'error') && (typeof msg.actor === 'undefined') && (this.actor)) {
125
- // ensure an actor is present if not otherwise defined
126
- msg.actor = { id: this.actor };
127
- }
128
- socket.emit('message', msg);
129
- }, (err) => this.debug(`sendToClient ${err}`));
130
- }
131
- // send message to every connected socket associated with this platform instance.
132
- broadcastToSharedPeers(sessionId, msg) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- for (let sid of this.sessions.values()) {
135
- if (sid !== sessionId) {
136
- this.debug(`broadcasting message to ${sid}`);
137
- yield this.sendToClient(sid, msg);
138
- }
139
- }
140
- });
141
- }
142
- // handle job results coming in on the queue from platform instances
143
- handleJobResult(type, jobData, result) {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- this.debug(`${type} job ${jobData.title}`);
146
- delete jobData.msg.sessionSecret;
147
- let msg = jobData.msg;
148
- if (type === 'failed') {
149
- msg.error = result ? result : "job failed for unknown reason";
150
- if ((this.config.persist) && (this.config.requireCredentials.includes(jobData.msg.type))) {
151
- this.debug(`critical job type ${jobData.msg.type} failed, terminating platform instance`);
152
- yield this.destroy();
153
- }
154
- }
155
- // send result to client
156
- const callback = this.completedJobHandlers.get(jobData.title);
157
- if (callback) {
158
- callback(msg);
159
- this.completedJobHandlers.delete(jobData.title);
160
- }
161
- else {
162
- yield this.sendToClient(jobData.sessionId, msg);
163
- }
164
- // let all related peers know of result as an independent message
165
- // (not as part of a job completion, or failure)
166
- yield this.broadcastToSharedPeers(jobData.sessionId, msg);
167
- });
168
- }
169
- /**
170
- * Sends error message to client and clears all references to this class.
171
- * @param sessionId
172
- * @param errorMessage
173
- */
174
- reportError(sessionId, errorMessage) {
175
- return __awaiter(this, void 0, void 0, function* () {
176
- const errorObject = {
177
- context: this.name,
178
- type: 'error',
179
- actor: { id: this.actor },
180
- error: errorMessage
181
- };
182
- this.sendToClient(sessionId, errorObject);
183
- this.sessions.clear();
184
- yield this.destroy();
185
- });
186
- }
187
- /**
188
- * Updates the instance with a new identifier, updating the platformInstances mapping as well.
189
- * @param identifier
190
- */
191
- updateIdentifier(identifier) {
192
- exports.platformInstances.delete(this.id);
193
- this.id = identifier;
194
- exports.platformInstances.set(this.id, this);
195
- }
196
- /**
197
- * Generates a function tied to a given client session (socket connection), the generated
198
- * function will be called for each session ID registered, for every platform emit.
199
- * @param listener
200
- * @param sessionId
201
- */
202
- callbackFunction(listener, sessionId) {
203
- const funcs = {
204
- 'close': (e) => {
205
- this.debug(`close even triggered ${this.id}: ${e}`);
206
- this.reportError(sessionId, `Error: session thread closed unexpectedly: ${e}`);
207
- },
208
- 'message': (data) => {
209
- if (data[0] === 'updateActor') {
210
- // We need to update the key to the store in order to find it in the future.
211
- this.updateIdentifier(data[2]);
212
- }
213
- else if (data[0] === 'error') {
214
- this.reportError(sessionId, data[1]);
215
- }
216
- else {
217
- // treat like a message to clients
218
- this.sendToClient(sessionId, data[1]);
219
- }
220
- }
221
- };
222
- return funcs[listener];
223
- }
224
- }
225
- exports.default = PlatformInstance;
226
- //# sourceMappingURL=/platform-instance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform-instance.js","sourceRoot":"/","sources":["platform-instance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAAmD;AACnD,+BAA4B;AAC5B,iCAAwC;AACxC,gDAAyB;AAEzB,sDAA8B;AAE9B,mCAAoC;AACpC,qCAA0C;AAE1C,mDAAmD;AACtC,QAAA,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;AAkBrE,MAAqB,gBAAgB;IAkBnC,YAAY,MAA8B;QAjB1C,0BAAqB,GAAY,KAAK,CAAC;QAGvC,yBAAoB,GAA0B,IAAI,GAAG,EAAE,CAAC;QACxD,WAAM,GAAmB,EAAE,CAAC;QAKnB,aAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;QAClC,qBAAgB,GAAW;YAClC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE;YAC5B,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE;SAC/B,CAAC;QACc,WAAM,GAAa,KAAK,CAAC;QAIvC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QAED,IAAI,CAAC,KAAK,GAAG,IAAA,aAAK,EAAC,+BAA+B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,qBAAqB;QACrB,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAI,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACU,OAAO;;YAClB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;aACvC;YAAC,OAAO,CAAC,EAAE,GAAG;YACf,IAAI;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aAC9C;YAAC,OAAO,CAAC,EAAE,GAAG;YACf,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC;gBAClB,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE,GAAG;YACf,yBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;KAAA;IAED;;OAEG;IACI,SAAS,CAAC,MAAc;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,cAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAO,GAAiB,EAAE,EAAE;gBACxD,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAA,uBAAc,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC7E,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC,CAAA,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAO,GAAiB,EAAE,EAAE;gBACxD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAA,uBAAc,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC1E,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC,CAAA,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,SAAiB;QACtC,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7B,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBACnD,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aAChD;SACF;IACH,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,SAAiB,EAAE,GAAmB;QACxD,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,IAAI;gBACF,mDAAmD;gBACnD,OAAO,GAAG,CAAC,aAAa,CAAC;aAC1B;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAChF,sDAAsD;gBACtD,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aAChC;YACD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,iFAAiF;IACnE,sBAAsB,CAAC,SAAiB,EAAE,GAAmB;;YACzE,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE;gBACtC,IAAI,GAAG,KAAK,SAAS,EAAE;oBACrB,IAAI,CAAC,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;oBAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACnC;aACF;QACH,CAAC;KAAA;IAED,oEAAoE;IACtD,eAAe,CAAC,IAAY,EAAE,OAAyB,EAAE,MAAM;;YAC3E,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YACjC,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACtB,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACrB,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC;gBAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;oBACxF,IAAI,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,GAAG,CAAC,IAAI,wCAAwC,CAAC,CAAC;oBAC1F,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;iBACtB;aACF;YAED,wBAAwB;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACjD;iBAAM;gBACL,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aACjD;YAED,iEAAiE;YACjE,gDAAgD;YAChD,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;KAAA;IAED;;;;OAIG;IACW,WAAW,CAAC,SAAiB,EAAE,YAAiB;;YAC5D,MAAM,WAAW,GAAmB;gBAClC,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;gBACzB,KAAK,EAAE,YAAY;aACpB,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;KAAA;IAED;;;OAGG;IACK,gBAAgB,CAAC,UAAkB;QACzC,yBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC;QACrB,yBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,QAAgB,EAAE,SAAiB;QAC1D,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,8CAA8C,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,SAAS,EAAE,CAAC,IAAyB,EAAE,EAAE;gBACvC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;oBAC7B,4EAA4E;oBAC5E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC;qBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;oBAC9B,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACtC;qBAAM;oBACL,kCAAkC;oBAClC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC;YACH,CAAC;SACF,CAAC;QACF,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;CACF;AA9MD,mCA8MC"}