@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
package/dist/platform.js
CHANGED
|
@@ -1,13 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
const debug_1 = __importDefault(require("debug"));
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const common_1 = require("./common");
|
|
10
|
-
const store_1 = require("./store");
|
|
30
|
+
const crypto_1 = __importStar(require("@sockethub/crypto"));
|
|
31
|
+
const data_layer_1 = require("@sockethub/data-layer");
|
|
11
32
|
// command-line params
|
|
12
33
|
const parentId = process.argv[2];
|
|
13
34
|
const platformName = process.argv[3];
|
|
@@ -16,8 +37,10 @@ const loggerPrefix = `sockethub:platform:${platformName}:${identifier}`;
|
|
|
16
37
|
let logger = (0, debug_1.default)(loggerPrefix);
|
|
17
38
|
const redisConfig = process.env.REDIS_URL ? process.env.REDIS_URL
|
|
18
39
|
: { host: process.env.REDIS_HOST, port: process.env.REDIS_PORT };
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
19
41
|
const PlatformModule = require(`@sockethub/platform-${platformName}`);
|
|
20
|
-
let
|
|
42
|
+
let jobQueue;
|
|
43
|
+
let jobQueueStarted = false;
|
|
21
44
|
let parentSecret1, parentSecret2;
|
|
22
45
|
logger(`platform handler initialized for ${platformName} ${identifier}`);
|
|
23
46
|
/**
|
|
@@ -34,11 +57,15 @@ process.on('uncaughtException', (err) => {
|
|
|
34
57
|
* Incoming messages from the worker to this platform. Data is an array, the first property is the
|
|
35
58
|
* method to call, the rest are params.
|
|
36
59
|
*/
|
|
37
|
-
process.on('message', (data) => {
|
|
60
|
+
process.on('message', async (data) => {
|
|
38
61
|
if (data[0] === 'secrets') {
|
|
39
|
-
parentSecret1 = data[1]
|
|
40
|
-
|
|
41
|
-
|
|
62
|
+
const { parentSecret2: parentSecret3, parentSecret1: parentSecret } = data[1];
|
|
63
|
+
parentSecret1 = parentSecret;
|
|
64
|
+
parentSecret2 = parentSecret3;
|
|
65
|
+
await startQueueListener();
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
throw new Error('received unknown command from parent thread');
|
|
42
69
|
}
|
|
43
70
|
});
|
|
44
71
|
/**
|
|
@@ -50,98 +77,56 @@ const platformSession = {
|
|
|
50
77
|
updateActor: updateActor
|
|
51
78
|
};
|
|
52
79
|
const platform = new PlatformModule(platformSession);
|
|
53
|
-
/**
|
|
54
|
-
* Get the credentials stored for this user in this sessions store, if given the correct
|
|
55
|
-
* sessionSecret.
|
|
56
|
-
* @param actorId
|
|
57
|
-
* @param sessionId
|
|
58
|
-
* @param sessionSecret
|
|
59
|
-
* @param cb
|
|
60
|
-
*/
|
|
61
|
-
function getCredentials(actorId, sessionId, sessionSecret, cb) {
|
|
62
|
-
if (platform.config.noCredentials) {
|
|
63
|
-
return cb();
|
|
64
|
-
}
|
|
65
|
-
const store = (0, store_1.getSessionStore)(parentId, parentSecret1, sessionId, sessionSecret);
|
|
66
|
-
store.get(actorId, (err, credentials) => {
|
|
67
|
-
if (platform.config.persist) {
|
|
68
|
-
// don't continue if we don't get credentials
|
|
69
|
-
if (err) {
|
|
70
|
-
return cb(err);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
else if (!credentials) {
|
|
74
|
-
// also skip if this is a non-persist platform with no credentials
|
|
75
|
-
return cb();
|
|
76
|
-
}
|
|
77
|
-
if (platform.credentialsHash) {
|
|
78
|
-
if (platform.credentialsHash !== (0, object_hash_1.default)(credentials.object)) {
|
|
79
|
-
return cb('provided credentials do not match existing platform instance for actor '
|
|
80
|
-
+ platform.actor.id);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
platform.credentialsHash = (0, object_hash_1.default)(credentials.object);
|
|
85
|
-
}
|
|
86
|
-
cb(undefined, credentials);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
80
|
/**
|
|
90
81
|
* Returns a function used to handle completed jobs from the platform code (the `done` callback).
|
|
91
|
-
* @param secret the secret used to decrypt credentials
|
|
92
82
|
*/
|
|
93
|
-
function getJobHandler(
|
|
83
|
+
function getJobHandler() {
|
|
94
84
|
return (job, done) => {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if (
|
|
102
|
-
return
|
|
85
|
+
const jobLog = (0, debug_1.default)(`${loggerPrefix}:${job.sessionId}`);
|
|
86
|
+
jobLog(`received ${job.title} ${job.msg.type}`);
|
|
87
|
+
const credentialStore = new data_layer_1.CredentialsStore(parentId, job.sessionId, parentSecret1 + job.msg.sessionSecret, redisConfig);
|
|
88
|
+
delete job.msg.sessionSecret;
|
|
89
|
+
let jobCallbackCalled = false;
|
|
90
|
+
const doneCallback = (err, result) => {
|
|
91
|
+
if (jobCallbackCalled) {
|
|
92
|
+
return;
|
|
103
93
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
let errMsg;
|
|
113
|
-
// some error objects (eg. TimeoutError) don't interoplate correctly to human-readable
|
|
114
|
-
// so we have to do this little dance
|
|
115
|
-
try {
|
|
116
|
-
errMsg = err.toString();
|
|
117
|
-
}
|
|
118
|
-
catch (e) {
|
|
119
|
-
errMsg = err;
|
|
120
|
-
}
|
|
121
|
-
done(new Error(errMsg));
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
jobLog(`completed ${jobData.title} ${jobData.msg.type}`);
|
|
125
|
-
done(null, result);
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
if ((Array.isArray(platform.config.requireCredentials)) &&
|
|
129
|
-
(platform.config.requireCredentials.includes(jobData.msg.type))) {
|
|
130
|
-
// add the credentials object if this method requires it
|
|
131
|
-
platform[jobData.msg.type](jobData.msg, credentials, doneCallback);
|
|
132
|
-
}
|
|
133
|
-
else if (platform.config.persist) {
|
|
134
|
-
if (platform.initialized) {
|
|
135
|
-
platform[jobData.msg.type](jobData.msg, doneCallback);
|
|
94
|
+
jobCallbackCalled = true;
|
|
95
|
+
if (err) {
|
|
96
|
+
jobLog(`failed ${job.title} ${job.msg.type}`);
|
|
97
|
+
let errMsg;
|
|
98
|
+
// some error objects (eg. TimeoutError) don't interpolate correctly to human-readable
|
|
99
|
+
// so we have to do this little dance
|
|
100
|
+
try {
|
|
101
|
+
errMsg = err.toString();
|
|
136
102
|
}
|
|
137
|
-
|
|
138
|
-
|
|
103
|
+
catch (e) {
|
|
104
|
+
errMsg = err;
|
|
139
105
|
}
|
|
106
|
+
done(new Error(errMsg));
|
|
140
107
|
}
|
|
141
108
|
else {
|
|
142
|
-
|
|
109
|
+
jobLog(`completed ${job.title} ${job.msg.type}`);
|
|
110
|
+
done(null, result);
|
|
143
111
|
}
|
|
144
|
-
}
|
|
112
|
+
};
|
|
113
|
+
platform.config.requireCredentials ? platform.config.requireCredentials : [];
|
|
114
|
+
if (platform.config.requireCredentials.includes(job.msg.type)) {
|
|
115
|
+
// this method requires credentials and should be called even if the platform is not
|
|
116
|
+
// yet initialized, because they need to authenticate before they are initialized.
|
|
117
|
+
credentialStore.get(job.msg.actor.id, platform.credentialsHash).then((credentials) => {
|
|
118
|
+
platform[job.msg.type](job.msg, credentials, doneCallback);
|
|
119
|
+
}).catch((err) => {
|
|
120
|
+
jobLog('error ' + err.toString());
|
|
121
|
+
return done(new Error(err.toString()));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else if ((platform.config.persist) && (!platform.initialized)) {
|
|
125
|
+
done(new Error(`${job.msg.type} called on uninitialized platform`));
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
platform[job.msg.type](job.msg, doneCallback);
|
|
129
|
+
}
|
|
145
130
|
};
|
|
146
131
|
}
|
|
147
132
|
/**
|
|
@@ -159,29 +144,33 @@ function getSendFunction(command) {
|
|
|
159
144
|
* both the queue thread (listening on the channel for jobs) and the logging object are updated.
|
|
160
145
|
* @param credentials
|
|
161
146
|
*/
|
|
162
|
-
function updateActor(credentials) {
|
|
163
|
-
identifier = (0,
|
|
147
|
+
async function updateActor(credentials) {
|
|
148
|
+
identifier = (0, crypto_1.getPlatformId)(platformName, credentials.actor.id);
|
|
164
149
|
logger(`platform actor updated to ${credentials.actor.id} identifier ${identifier}`);
|
|
165
150
|
logger = (0, debug_1.default)(`sockethub:platform:${identifier}`);
|
|
166
|
-
platform.credentialsHash =
|
|
151
|
+
platform.credentialsHash = crypto_1.default.objectHash(credentials.object);
|
|
167
152
|
platform.debug = (0, debug_1.default)(`sockethub:platform:${platformName}:${identifier}`);
|
|
168
153
|
process.send(['updateActor', undefined, identifier]);
|
|
169
|
-
startQueueListener(true);
|
|
154
|
+
await startQueueListener(true);
|
|
170
155
|
}
|
|
171
156
|
/**
|
|
172
|
-
*
|
|
157
|
+
* Starts listening on the queue for incoming jobs
|
|
173
158
|
* @param refresh boolean if the param is true, we re-init the queue.process
|
|
174
159
|
* (used when identifier changes)
|
|
175
160
|
*/
|
|
176
|
-
function startQueueListener(refresh = false) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
161
|
+
async function startQueueListener(refresh = false) {
|
|
162
|
+
if (jobQueueStarted) {
|
|
163
|
+
if (refresh) {
|
|
164
|
+
await jobQueue.shutdown();
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
logger('start queue called multiple times, skipping');
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
181
170
|
}
|
|
182
|
-
|
|
183
|
-
queueStarted = true;
|
|
171
|
+
jobQueue = new data_layer_1.JobQueue(parentId, identifier, parentSecret1 + parentSecret2, redisConfig);
|
|
184
172
|
logger('listening on the queue for incoming jobs');
|
|
185
|
-
|
|
173
|
+
jobQueue.onJob(getJobHandler());
|
|
174
|
+
jobQueueStarted = true;
|
|
186
175
|
}
|
|
187
176
|
//# sourceMappingURL=/platform.js.map
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"/","sources":["platform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"/","sources":["platform.ts"],"names":[],"mappings":"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"}
|
package/dist/process-manager.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -24,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
24
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
29
|
const init_1 = __importDefault(require("./bootstrap/init"));
|
|
26
30
|
const platform_instance_1 = __importStar(require("./platform-instance"));
|
|
27
|
-
const
|
|
31
|
+
const crypto_1 = require("@sockethub/crypto");
|
|
28
32
|
class ProcessManager {
|
|
29
33
|
constructor(parentId, parentSecret1, parentSecret2) {
|
|
30
34
|
this.parentId = parentId;
|
|
@@ -64,7 +68,7 @@ class ProcessManager {
|
|
|
64
68
|
return platformInstance;
|
|
65
69
|
}
|
|
66
70
|
ensureProcess(platform, sessionId, actor) {
|
|
67
|
-
const identifier = (0,
|
|
71
|
+
const identifier = (0, crypto_1.getPlatformId)(platform, actor);
|
|
68
72
|
const platformInstance = platform_instance_1.platformInstances.get(identifier) ||
|
|
69
73
|
this.createPlatformInstance(identifier, platform, actor);
|
|
70
74
|
if (sessionId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.js","sourceRoot":"/","sources":["process-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process-manager.js","sourceRoot":"/","sources":["process-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAoC;AACpC,yEAC4F;AAC5F,8CAAgD;AAEhD,MAAM,cAAc;IAKlB,YAAY,QAAgB,EAAE,aAAqB,EAAE,aAAqB;QACxE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,SAAkB;QACvD,MAAM,eAAe,GAAG,cAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,EAAE,CAAC;QAEP,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;YAClC,iDAAiD;YACjD,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACvD;aAAM;YACL,+CAA+C;YAC/C,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SACnC;QACD,EAAE,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,sBAAsB,CAAC,UAAkB,EAAE,QAAgB,EACpC,KAAc;QAC3C,MAAM,OAAO,GAAsB;YACjC,SAAS,EAAE;gBACT,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC;SACF,CAAC;QACF,MAAM,sBAAsB,GAA2B;YACrD,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,KAAK;SACb,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,2BAAgB,CAAC,sBAAsB,CAAC,CAAC;QACtE,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACpE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,aAAa,CAAC,QAAgB,EAAE,SAAkB,EAAE,KAAc;QACxE,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,qCAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;YAChD,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE;YACb,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,qCAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
|
package/dist/routes.d.ts
CHANGED
package/dist/routes.js
CHANGED
|
@@ -30,7 +30,7 @@ exports.examplePages = {
|
|
|
30
30
|
'/examples/xmpp': path_1.default.resolve(`${__dirname}/../views/examples/xmpp.ejs`)
|
|
31
31
|
};
|
|
32
32
|
function prepFileRoutes(pathMap) {
|
|
33
|
-
|
|
33
|
+
const _routes = [];
|
|
34
34
|
Object.keys(pathMap).forEach((key) => {
|
|
35
35
|
_routes.push({
|
|
36
36
|
meta: {
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"/","sources":["routes.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,sDAA8B;AAC9B,kDAA0B;AAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,EACrC,MAAM,GAAQ,IAAA,eAAK,EAAC,yBAAyB,CAAC,EAC9C,OAAO,GAAO,gBAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK;IACrC,gBAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG;IAC/B,gBAAM,CAAC,GAAG,CAAC,aAAa,CAAC;IACzB,gBAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAMjC,QAAA,SAAS,GAAgB;IACpC,sBAAsB,EACpB,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,6DAA6D,CAAC;IACzF,0BAA0B,EACxB,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,iEAAiE,CAAC;IAC7F,0BAA0B,EACxB,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,iEAAiE,CAAC;IAC7F,eAAe,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,qDAAqD,CAAC;CACjG,CAAC;AAEW,QAAA,YAAY,GAAgB;IACvC,YAAY,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,4CAA4C,CAAC;IACpF,iBAAiB,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,6CAA6C,CAAC;IAC1F,qBAAqB,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,8BAA8B,CAAC;CAChF,CAAC;AAEW,QAAA,YAAY,GAAgB;IACvC,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,qBAAqB,CAAC;IACpD,iBAAiB,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,8BAA8B,CAAC;IAC3E,iBAAiB,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,8BAA8B,CAAC;IAC3E,eAAe,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,4BAA4B,CAAC;IACvE,gBAAgB,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,SAAS,6BAA6B,CAAC;CAC1E,CAAC;AAGF,SAAS,cAAc,CAAC,OAAO;IAC7B,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"/","sources":["routes.ts"],"names":[],"mappings":"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"}
|
package/dist/sockethub.d.ts
CHANGED
|
@@ -1,23 +1,4 @@
|
|
|
1
|
-
import { IActivityStream } from "@sockethub/schemas";
|
|
2
1
|
import ProcessManager from "./process-manager";
|
|
3
|
-
export interface JobDataDecrypted {
|
|
4
|
-
title?: string;
|
|
5
|
-
msg: IActivityStream;
|
|
6
|
-
sessionId: string;
|
|
7
|
-
}
|
|
8
|
-
export interface JobDataEncrypted {
|
|
9
|
-
title?: string;
|
|
10
|
-
msg: string;
|
|
11
|
-
sessionId: string;
|
|
12
|
-
}
|
|
13
|
-
export interface JobDecrypted {
|
|
14
|
-
data: JobDataDecrypted;
|
|
15
|
-
remove?: Function;
|
|
16
|
-
}
|
|
17
|
-
export interface JobEncrypted {
|
|
18
|
-
data: JobDataEncrypted;
|
|
19
|
-
remove?: Function;
|
|
20
|
-
}
|
|
21
2
|
declare class Sockethub {
|
|
22
3
|
private readonly parentId;
|
|
23
4
|
private readonly parentSecret1;
|
|
@@ -25,15 +6,13 @@ declare class Sockethub {
|
|
|
25
6
|
counter: number;
|
|
26
7
|
platforms: Map<string, object>;
|
|
27
8
|
status: boolean;
|
|
28
|
-
queue: any;
|
|
29
9
|
processManager: ProcessManager;
|
|
30
10
|
constructor();
|
|
31
11
|
/**
|
|
32
12
|
* initialization of Sockethub starts here
|
|
33
13
|
*/
|
|
34
14
|
boot(): void;
|
|
35
|
-
|
|
36
|
-
private createJob;
|
|
15
|
+
shutdown(): Promise<void>;
|
|
37
16
|
private handleIncomingConnection;
|
|
38
17
|
}
|
|
39
18
|
export default Sockethub;
|
package/dist/sockethub.js
CHANGED
|
@@ -4,7 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const debug_1 = __importDefault(require("debug"));
|
|
7
|
-
const crypto_1 = __importDefault(require("
|
|
7
|
+
const crypto_1 = __importDefault(require("@sockethub/crypto"));
|
|
8
|
+
const data_layer_1 = require("@sockethub/data-layer");
|
|
8
9
|
const init_1 = __importDefault(require("./bootstrap/init"));
|
|
9
10
|
const middleware_1 = __importDefault(require("./middleware"));
|
|
10
11
|
const create_activity_object_1 = __importDefault(require("./middleware/create-activity-object"));
|
|
@@ -14,8 +15,7 @@ const validate_1 = __importDefault(require("./middleware/validate"));
|
|
|
14
15
|
const janitor_1 = __importDefault(require("./janitor"));
|
|
15
16
|
const listener_1 = __importDefault(require("./listener"));
|
|
16
17
|
const process_manager_1 = __importDefault(require("./process-manager"));
|
|
17
|
-
const
|
|
18
|
-
const store_1 = require("./store");
|
|
18
|
+
const nconf_1 = __importDefault(require("nconf"));
|
|
19
19
|
const log = (0, debug_1.default)('sockethub:server:core');
|
|
20
20
|
function attachError(err, msg) {
|
|
21
21
|
if (typeof msg !== 'object') {
|
|
@@ -27,7 +27,6 @@ function attachError(err, msg) {
|
|
|
27
27
|
}
|
|
28
28
|
class Sockethub {
|
|
29
29
|
constructor() {
|
|
30
|
-
this.counter = 0;
|
|
31
30
|
this.platforms = init_1.default.platforms;
|
|
32
31
|
this.status = false;
|
|
33
32
|
this.parentId = crypto_1.default.randToken(16);
|
|
@@ -47,31 +46,20 @@ class Sockethub {
|
|
|
47
46
|
this.status = true;
|
|
48
47
|
}
|
|
49
48
|
log('active platforms: ', [...init_1.default.platforms.keys()]);
|
|
50
|
-
janitor_1.default.clean(); // start cleanup cycle
|
|
51
49
|
listener_1.default.start(); // start external services
|
|
50
|
+
janitor_1.default.start(); // start cleanup cycle
|
|
52
51
|
log('registering handlers');
|
|
53
52
|
listener_1.default.io.on('connection', this.handleIncomingConnection.bind(this));
|
|
54
53
|
}
|
|
55
|
-
async
|
|
56
|
-
|
|
57
|
-
await platform[1].destroy();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
createJob(socketId, platformInstance, msg) {
|
|
61
|
-
const title = `${msg.context}-${(msg.id) ? msg.id : this.counter++}`;
|
|
62
|
-
const job = {
|
|
63
|
-
title: title,
|
|
64
|
-
sessionId: socketId,
|
|
65
|
-
msg: crypto_1.default.encrypt(msg, this.parentSecret1 + this.parentSecret2)
|
|
66
|
-
};
|
|
67
|
-
return job;
|
|
54
|
+
async shutdown() {
|
|
55
|
+
await janitor_1.default.stop();
|
|
68
56
|
}
|
|
69
|
-
;
|
|
70
57
|
handleIncomingConnection(socket) {
|
|
71
58
|
// session-specific debug messages
|
|
72
59
|
const sessionLog = (0, debug_1.default)('sockethub:server:core:' + socket.id), sessionSecret = crypto_1.default.randToken(16),
|
|
73
60
|
// store instance is session-specific
|
|
74
|
-
store =
|
|
61
|
+
// store = getSessionStore(this.parentId, this.parentSecret1, socket.id, sessionSecret);
|
|
62
|
+
credentialsStore = new data_layer_1.CredentialsStore(this.parentId, socket.id, this.parentSecret1 + sessionSecret, nconf_1.default.get('redis'));
|
|
75
63
|
sessionLog(`socket.io connection`);
|
|
76
64
|
socket.on('disconnect', () => {
|
|
77
65
|
sessionLog('disconnect received from client');
|
|
@@ -79,7 +67,7 @@ class Sockethub {
|
|
|
79
67
|
socket.on('credentials', (0, middleware_1.default)('credentials')
|
|
80
68
|
.use(expand_activity_stream_1.default)
|
|
81
69
|
.use((0, validate_1.default)('credentials', socket.id))
|
|
82
|
-
.use((0, store_credentials_1.default)(
|
|
70
|
+
.use((0, store_credentials_1.default)(credentialsStore))
|
|
83
71
|
.use((err, data, next) => {
|
|
84
72
|
// error handler
|
|
85
73
|
next(attachError(err, data));
|
|
@@ -105,13 +93,18 @@ class Sockethub {
|
|
|
105
93
|
next(msg);
|
|
106
94
|
}).use((err, data, next) => {
|
|
107
95
|
next(attachError(err, data));
|
|
108
|
-
}).use((msg, next) => {
|
|
96
|
+
}).use(async (msg, next) => {
|
|
109
97
|
const platformInstance = this.processManager.get(msg.context, msg.actor.id, socket.id);
|
|
110
|
-
sessionLog(`queued to channel ${platformInstance.id}`);
|
|
111
|
-
const job = this.createJob(socket.id, platformInstance, msg);
|
|
112
98
|
// job validated and queued, store socket.io callback for when job is completed
|
|
113
|
-
platformInstance.
|
|
114
|
-
|
|
99
|
+
const job = await platformInstance.jobQueue.add(socket.id, msg);
|
|
100
|
+
if (job) {
|
|
101
|
+
platformInstance.completedJobHandlers.set(job.title, next);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// failed to add job to queue, reject handler immediately
|
|
105
|
+
msg.error = 'failed to add job to queue';
|
|
106
|
+
next(msg);
|
|
107
|
+
}
|
|
115
108
|
}).done());
|
|
116
109
|
}
|
|
117
110
|
}
|
package/dist/sockethub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sockethub.js","sourceRoot":"/","sources":["sockethub.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;
|
|
1
|
+
{"version":3,"file":"sockethub.js","sourceRoot":"/","sources":["sockethub.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sockethub/server",
|
|
3
3
|
"description": "A polyglot messaging service, server libraries",
|
|
4
|
-
"version": "5.0.0-alpha.
|
|
4
|
+
"version": "5.0.0-alpha.4",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": "Nick Jennings <nick@silverbucket.net>",
|
|
7
7
|
"license": "LGPL-3.0+",
|
|
@@ -34,29 +34,26 @@
|
|
|
34
34
|
},
|
|
35
35
|
"homepage": "https://sockethub.org",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@sockethub/activity-streams": "^4.4.0-alpha.
|
|
38
|
-
"@sockethub/client": "^5.0.0-alpha.
|
|
39
|
-
"@sockethub/
|
|
37
|
+
"@sockethub/activity-streams": "^4.4.0-alpha.4",
|
|
38
|
+
"@sockethub/client": "^5.0.0-alpha.4",
|
|
39
|
+
"@sockethub/crypto": "^1.0.0-alpha.4",
|
|
40
|
+
"@sockethub/data-layer": "^1.0.0-alpha.4",
|
|
41
|
+
"@sockethub/schemas": "^3.0.0-alpha.4",
|
|
40
42
|
"body-parser": "^1.19.0",
|
|
41
|
-
"bull": "^4.0.0",
|
|
42
43
|
"debug": "^4.3.1",
|
|
43
44
|
"ejs": "^3.0.1",
|
|
44
45
|
"express": "^4.17.1",
|
|
45
|
-
"findup-sync": "^5.0.0",
|
|
46
46
|
"jquery": "^3.4.1",
|
|
47
|
-
"nconf": "^0.
|
|
48
|
-
"npm": "8.
|
|
49
|
-
"
|
|
50
|
-
"secure-store-redis": "^1.4.7",
|
|
51
|
-
"socket.io": "^4.0.1",
|
|
52
|
-
"urijs": "^1.19.2"
|
|
47
|
+
"nconf": "^0.12.0",
|
|
48
|
+
"npm": "8.19.2",
|
|
49
|
+
"socket.io": "^4.0.1"
|
|
53
50
|
},
|
|
54
51
|
"scripts": {
|
|
55
52
|
"clean": "npx rimraf dist coverage",
|
|
56
53
|
"clean:deps": "npx rimraf node_modules",
|
|
57
54
|
"compliance": "yarn run lint && yarn run test && yarn run coverage",
|
|
58
55
|
"test": "c8 -x src/bootstrap -x \"src/**/*.test.*\" mocha -r ts-node/register src/*.test.ts src/**/*.test.ts",
|
|
59
|
-
"coverage": "c8 check-coverage --statements 90 --branches 80 --functions
|
|
56
|
+
"coverage": "c8 check-coverage --statements 90 --branches 80 --functions 82 --lines 90",
|
|
60
57
|
"start": "DEBUG=sockethub* ./bin/sockethub",
|
|
61
58
|
"dev": "yarn run build && DEBUG=sockethub* ./bin/sockethub --examples",
|
|
62
59
|
"lint": "eslint \"**/*.ts\" ./bin/sockethub",
|
|
@@ -64,40 +61,37 @@
|
|
|
64
61
|
"build": "npx rimraf dist && tsc && cp ./src/defaults.json ./dist/defaults.json && cp src/bootstrap/platforms.js dist/bootstrap/"
|
|
65
62
|
},
|
|
66
63
|
"engines": {
|
|
67
|
-
"node": ">=
|
|
64
|
+
"node": ">= 14"
|
|
68
65
|
},
|
|
69
66
|
"devDependencies": {
|
|
70
67
|
"@types/body-parser": "1.19.2",
|
|
71
|
-
"@types/chai": "4.3.
|
|
68
|
+
"@types/chai": "4.3.3",
|
|
72
69
|
"@types/debug": "4.1.7",
|
|
73
|
-
"@types/
|
|
74
|
-
"@types/
|
|
75
|
-
"@types/
|
|
76
|
-
"@types/
|
|
77
|
-
"@types/
|
|
78
|
-
"@types/nconf": "0.10.1",
|
|
70
|
+
"@types/eslint": "8.4.6",
|
|
71
|
+
"@types/express": "4.17.14",
|
|
72
|
+
"@types/jquery": "3.5.14",
|
|
73
|
+
"@types/mocha": "9.1.1",
|
|
74
|
+
"@types/nconf": "0.10.3",
|
|
79
75
|
"@types/node": "17.0.13",
|
|
80
|
-
"@types/object-hash": "2.2.1",
|
|
81
76
|
"@types/proxyquire": "1.3.28",
|
|
82
|
-
"@types/sinon": "10.0.
|
|
83
|
-
"@
|
|
84
|
-
"
|
|
85
|
-
"c8": "7.11.0",
|
|
77
|
+
"@types/sinon": "10.0.13",
|
|
78
|
+
"@typescript-eslint/parser": "5.37.0",
|
|
79
|
+
"c8": "7.12.0",
|
|
86
80
|
"chai": "4.3.6",
|
|
87
|
-
"eslint": "8.
|
|
81
|
+
"eslint": "8.23.1",
|
|
88
82
|
"eslint-cli": "1.1.1",
|
|
89
83
|
"jaribu": "2.2.3",
|
|
90
|
-
"mocha": "
|
|
84
|
+
"mocha": "10.0.0",
|
|
91
85
|
"proxyquire": "2.1.3",
|
|
92
|
-
"sinon": "
|
|
93
|
-
"ts-node": "10.
|
|
94
|
-
"typescript": "4.
|
|
86
|
+
"sinon": "14.0.0",
|
|
87
|
+
"ts-node": "10.9.1",
|
|
88
|
+
"typescript": "4.8.3"
|
|
95
89
|
},
|
|
96
90
|
"optionalDependencies": {
|
|
97
|
-
"@sockethub/platform-dummy": "^3.0.0-alpha.
|
|
98
|
-
"@sockethub/platform-feeds": "^3.0.0-alpha.
|
|
99
|
-
"@sockethub/platform-irc": "^4.0.0-alpha.
|
|
100
|
-
"@sockethub/platform-xmpp": "^5.0.0-alpha.
|
|
91
|
+
"@sockethub/platform-dummy": "^3.0.0-alpha.4",
|
|
92
|
+
"@sockethub/platform-feeds": "^3.0.0-alpha.4",
|
|
93
|
+
"@sockethub/platform-irc": "^4.0.0-alpha.4",
|
|
94
|
+
"@sockethub/platform-xmpp": "^5.0.0-alpha.4"
|
|
101
95
|
},
|
|
102
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "c6d34ff44d2be479e4ea42c46da649612342a680"
|
|
103
97
|
}
|