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,74 +0,0 @@
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
- const debug_1 = __importDefault(require("debug"));
7
- const config_1 = __importDefault(require("../config"));
8
- const platforms_1 = __importDefault(require("./platforms"));
9
- const log = (0, debug_1.default)('sockethub:bootstrap:init');
10
- log('running init routines');
11
- const packageJSON = require('./../../package.json');
12
- const platforms = (0, platforms_1.default)(Object.keys(packageJSON.dependencies));
13
- log('loaded platforms');
14
- if (config_1.default.get('help')) {
15
- // eslint-disable-next-line security-node/detect-crlf
16
- console.log(packageJSON.name + ' ' + packageJSON.version);
17
- console.log('command line args: ');
18
- console.log();
19
- console.log(' --help : this help screen');
20
- console.log(' --info : displays some basic runtime info');
21
- console.log();
22
- console.log(' --examples : enables examples page and serves helper files like jquery');
23
- console.log();
24
- console.log(' --host : hostname to bind to');
25
- console.log(' --port : port to bind to');
26
- console.log();
27
- process.exit();
28
- }
29
- else if (config_1.default.get('info')) {
30
- // eslint-disable-next-line security-node/detect-crlf
31
- console.log(packageJSON.name + ' ' + packageJSON.version);
32
- console.log();
33
- // eslint-disable-next-line security-node/detect-crlf
34
- console.log('examples enabled: ' + config_1.default.get('examples:enabled'));
35
- // eslint-disable-next-line security-node/detect-crlf
36
- console.log('sockethub: ' + config_1.default.get('service:host') + ':' + config_1.default.get('service:port')
37
- + config_1.default.get('service:path'));
38
- if (config_1.default.get('redis:url')) {
39
- // eslint-disable-next-line security-node/detect-crlf
40
- console.log('redis URL: ' + config_1.default.get('redis:url'));
41
- }
42
- else {
43
- // eslint-disable-next-line security-node/detect-crlf
44
- console.log('redis: ' + config_1.default.get('redis:host') + ':' + config_1.default.get('redis:port'));
45
- }
46
- // eslint-disable-next-line security-node/detect-crlf
47
- console.log('public url: ' + config_1.default.get('public:host') + ':' + config_1.default.get('public:port')
48
- + config_1.default.get('public:path'));
49
- console.log();
50
- // eslint-disable-next-line security-node/detect-crlf
51
- console.log('platforms: ' + Array.from(platforms.keys()).join(', '));
52
- if (platforms.size > 0) {
53
- for (let platform of platforms.values()) {
54
- console.log();
55
- // eslint-disable-next-line security-node/detect-crlf
56
- console.log(' ' + platform.id + ' v' + platform.version);
57
- // eslint-disable-next-line security-node/detect-crlf
58
- console.log(' AS types: ' + platform.types.join(', '));
59
- }
60
- console.log();
61
- process.exit();
62
- }
63
- else {
64
- console.log();
65
- process.exit();
66
- }
67
- }
68
- log('finished init routines');
69
- const init = {
70
- version: packageJSON.version,
71
- platforms: platforms
72
- };
73
- exports.default = init;
74
- //# sourceMappingURL=/bootstrap/init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"/","sources":["bootstrap/init.ts"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- /**
2
- * bootstrap/platforms.js
3
- *
4
- * A Singleton responsible for finding and loading all valid sockethub
5
- * platforms, and whitelisting or blacklisting (or neither) based on the
6
- * config.
7
- */
8
- const debug = require('debug'),
9
- schemas = require('sockethub-schemas'),
10
- findup = require('findup-sync');
11
-
12
- const config = require('../config').default;
13
- const log = debug('sockethub:bootstrap:platforms');
14
-
15
- const whitelist = config.get('platforms:whitelist'),
16
- blacklist = config.get('platforms:blacklist');
17
-
18
- log('loading platforms');
19
-
20
- // checks platform against black and whitelist.
21
- function platformIsAccepted(platformName) {
22
- let willLoad = false;
23
- if (whitelist.length > 0) {
24
- if (whitelist.indexOf(platformName) >= 0) {
25
- willLoad = true;
26
- }
27
- } else if (blacklist.length > 0) {
28
- if (blacklist.indexOf(platformName) < 0) {
29
- willLoad = true;
30
- }
31
- } else {
32
- willLoad = true;
33
- }
34
- return willLoad;
35
- }
36
-
37
- // if the platform schema lists valid types it implements (essentially methods/verbs for
38
- // sockethub to call) then add it to the supported types list.
39
- function platformListsSupportedTypes(p) {
40
- return ((p.schema.messages.properties) && (p.schema.messages.properties.type) &&
41
- (p.schema.messages.properties.type.enum) &&
42
- (p.schema.messages.properties.type.enum.length > 0));
43
- }
44
-
45
- module.exports = function platformLoad(moduleList) {
46
- // load platforms from package.json
47
- const rx = new RegExp('^sockethub-platform-', 'i');
48
- const platforms = new Map();
49
- log('finding and registering platforms from package list');
50
-
51
- for (let moduleName of moduleList) {
52
- if (rx.test(moduleName)) {
53
- // found a sockethub platform
54
- const platformName = moduleName.replace(rx, '');
55
- log(`registering ${platformName} platform`);
56
-
57
- if (platformIsAccepted(platformName)) {
58
- // try to load platform
59
- const P = require(moduleName);
60
- const p = new P();
61
- let path = findup(moduleName, { cwd: __dirname + '/../../node_modules' });
62
- if (! path) {
63
- path = findup(moduleName, { cwd: 'node_modules' });
64
- }
65
- const packageJson = require(path + '/package.json');
66
- let types = [];
67
-
68
- const err = schemas.validator.validatePlatformSchema(p.schema);
69
- if (err) {
70
- throw new Error(`${platformName} ${err}`);
71
- } else if (typeof p.config !== 'object') {
72
- throw new Error(
73
- `${platformName} platform must have a config property that is an object.`);
74
- } else {
75
- if (p.schema.credentials) {
76
- // register the platforms credentials schema
77
- types.push('credentials');
78
- } else {
79
- p.config.noCredentials = true;
80
- }
81
- }
82
-
83
- if (platformListsSupportedTypes(p)) {
84
- types = [...types, ...p.schema.messages.properties.type.enum];
85
- }
86
-
87
- platforms.set(platformName, {
88
- id: platformName,
89
- moduleName: moduleName,
90
- config: p.config,
91
- schemas: {
92
- credentials: p.schema.credentials || {},
93
- messages: p.schema.messages || {}
94
- },
95
- version: packageJson.version,
96
- types: types
97
- });
98
- }
99
- }
100
- }
101
-
102
- return platforms;
103
- };
package/dist/common.js DELETED
@@ -1,20 +0,0 @@
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.decryptJobData = exports.getPlatformId = void 0;
7
- const crypto_1 = __importDefault(require("./crypto"));
8
- function getPlatformId(platform, actor) {
9
- return actor ? crypto_1.default.hash(platform + actor) : crypto_1.default.hash(platform);
10
- }
11
- exports.getPlatformId = getPlatformId;
12
- function decryptJobData(job, secret) {
13
- return {
14
- title: job.data.title,
15
- msg: crypto_1.default.decrypt(job.data.msg, secret),
16
- sessionId: job.data.sessionId
17
- };
18
- }
19
- exports.decryptJobData = decryptJobData;
20
- //# sourceMappingURL=/common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.js","sourceRoot":"/","sources":["common.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAG9B,SAAgB,aAAa,CAAC,QAAgB,EAAE,KAAc;IAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,gBAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAFD,sCAEC;AAED,SAAgB,cAAc,CAAC,GAAiB,EAAE,MAAc;IAC9D,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;QACrB,GAAG,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;QACzC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC;AAND,wCAMC"}
package/dist/config.js DELETED
@@ -1,60 +0,0 @@
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.Config = void 0;
7
- const nconf_1 = __importDefault(require("nconf"));
8
- const debug_1 = require("debug");
9
- const log = (0, debug_1.debug)('sockethub:bootstrap:config');
10
- class Config {
11
- constructor() {
12
- this.get = (key) => nconf_1.default.get(key);
13
- log('initializing config');
14
- // assign config loading priorities (command-line, environment, cfg, defaults)
15
- nconf_1.default.argv({
16
- 'port': {
17
- alias: 'service.port'
18
- },
19
- 'host': {
20
- alias: 'service.host'
21
- },
22
- 'redis_host': {
23
- alias: 'redis.host'
24
- },
25
- 'redis_port': {
26
- alias: 'redis.port'
27
- },
28
- 'redis_url': {
29
- alias: 'redis.url'
30
- }
31
- });
32
- nconf_1.default.env();
33
- // get value of flags defined by any command-line params
34
- const examples = nconf_1.default.get('examples');
35
- // Load the main config
36
- nconf_1.default.file(__dirname + '/../config.json');
37
- // only override config file if explicitly mentioned in command-line params
38
- nconf_1.default.set('examples:enabled', (examples ? true : nconf_1.default.get('examples:enabled')));
39
- // load defaults
40
- const defaults = require(__dirname + '/defaults.json');
41
- nconf_1.default.defaults(defaults);
42
- nconf_1.default.required(['platforms:whitelist', 'platforms:blacklist']);
43
- function defaultEnvParams(host, port, prop) {
44
- nconf_1.default.set(prop + ':host', host);
45
- nconf_1.default.set(prop + ':port', port);
46
- }
47
- defaultEnvParams(process.env.HOST || nconf_1.default.get('service:host'), process.env.PORT || nconf_1.default.get('service:port'), 'service');
48
- defaultEnvParams(process.env.REDIS_HOST || nconf_1.default.get('redis:host'), process.env.REDIS_PORT || nconf_1.default.get('redis:port'), 'redis');
49
- // allow a redis://user:host:port url, takes precedence
50
- if (process.env.REDIS_URL) {
51
- nconf_1.default.set('redis:url', process.env.REDIS_URL);
52
- nconf_1.default.clear('redis:host');
53
- nconf_1.default.clear('redis:port');
54
- }
55
- }
56
- }
57
- exports.Config = Config;
58
- const config = new Config();
59
- exports.default = config;
60
- //# sourceMappingURL=/config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"/","sources":["config.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,iCAA8B;AAE9B,MAAM,GAAG,GAAG,IAAA,aAAK,EAAC,4BAA4B,CAAC,CAAC;AAEhD,MAAa,MAAM;IACjB;QA6DA,QAAG,GAAG,CAAC,GAAW,EAAO,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QA5DzC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3B,8EAA8E;QAC9E,eAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE;gBACN,KAAK,EAAE,cAAc;aACtB;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,cAAc;aACtB;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,YAAY;aACpB;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,YAAY;aACpB;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,WAAW;aACnB;SACF,CAAC,CAAC;QACH,eAAK,CAAC,GAAG,EAAE,CAAC;QAEZ,wDAAwD;QACxD,MAAM,QAAQ,GAAG,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEvC,uBAAuB;QACvB,eAAK,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;QAE1C,2EAA2E;QAC3E,eAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEjF,gBAAgB;QAChB,MAAM,QAAQ,GAAW,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC;QAC/D,eAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzB,eAAK,CAAC,QAAQ,CAAC,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAE/D,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAqB,EAAE,IAAY;YACzE,eAAK,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;YAChC,eAAK,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,gBAAgB,CACd,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,eAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,eAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAC7C,SAAS,CACV,CAAC;QAEF,gBAAgB,CACd,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EACjD,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EACjD,OAAO,CACR,CAAC;QAEF,uDAAuD;QACvD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YACzB,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1B,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC3B;IACH,CAAC;CAEF;AA/DD,wBA+DC;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,kBAAe,MAAM,CAAC"}
package/dist/crypto.js DELETED
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- const ALGORITHM = 'aes-256-cbc', IV_LENGTH = 16; // For AES, this is always 16
5
- class Crypto {
6
- constructor() { }
7
- encrypt(json, secret) {
8
- const iv = (0, crypto_1.randomBytes)(IV_LENGTH);
9
- const cipher = (0, crypto_1.createCipheriv)(ALGORITHM, Buffer.from(secret), iv);
10
- let encrypted = cipher.update(JSON.stringify(json));
11
- encrypted = Buffer.concat([encrypted, cipher.final()]);
12
- return iv.toString('hex') + ':' + encrypted.toString('hex');
13
- }
14
- decrypt(text, secret) {
15
- let parts = text.split(':');
16
- const iv = Buffer.from(parts.shift(), 'hex');
17
- const encryptedText = Buffer.from(parts.join(':'), 'hex');
18
- const decipher = (0, crypto_1.createDecipheriv)(ALGORITHM, Buffer.from(secret), iv);
19
- let decrypted = decipher.update(encryptedText);
20
- decrypted = Buffer.concat([decrypted, decipher.final()]);
21
- return JSON.parse(decrypted.toString());
22
- }
23
- hash(text) {
24
- const shasum = (0, crypto_1.createHash)('sha1');
25
- shasum.update(text);
26
- return shasum.digest('hex').substring(0, 7);
27
- }
28
- randToken(len) {
29
- if (len > 32) {
30
- throw new Error(`crypto.randToken supports a length param of up to 32, ${len} given`);
31
- }
32
- const buf = (0, crypto_1.randomBytes)(len);
33
- return buf.toString('hex').substring(0, len);
34
- }
35
- }
36
- const crypto = new Crypto();
37
- exports.default = crypto;
38
- //# sourceMappingURL=/crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"/","sources":["crypto.ts"],"names":[],"mappings":";;AAAA,mCAAmF;AAGnF,MAAM,SAAS,GAAG,aAAa,EACzB,SAAS,GAAG,EAAE,CAAC,CAAC,6BAA6B;AAEnD,MAAM,MAAM;IACV,gBAAe,CAAC;IAChB,OAAO,CAAC,IAAoB,EAAE,MAAc;QAC1C,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,MAAc;QAClC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,IAAY;QACf,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,SAAS,CAAC,GAAW;QACnB,IAAI,GAAG,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,yDAAyD,GAAG,QAAQ,CAAC,CAAC;SACvF;QACD,MAAM,GAAG,GAAG,IAAA,oBAAW,EAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,kBAAe,MAAM,CAAC"}
package/dist/janitor.js DELETED
@@ -1,98 +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
- const debug_1 = __importDefault(require("debug"));
16
- const platform_instance_1 = require("./platform-instance");
17
- const serve_1 = __importDefault(require("./serve"));
18
- const rmLog = (0, debug_1.default)('sockethub:janitor');
19
- const TICK = 15000;
20
- let alreadyCalled = false;
21
- let cycleCount = 0; // a counter for each setInterval call
22
- let reportCount = 0; // number of times a report is printed
23
- /**
24
- * Every TICK the Janitor will compare existing platform instances with socket.ids (aka. sessionId)
25
- * If all of the sessionIds associated with a platformInstance have no corresponding socket.id
26
- * (from the http.io socket.io instance), then the platformInstance will first be flagged, if after
27
- * the next TICK the same state is determined, the platform will be destroyed (this allows for page
28
- * refreshes not destroying platform instances)
29
- */
30
- function janitorCycle() {
31
- if (!alreadyCalled) {
32
- alreadyCalled = true;
33
- }
34
- else {
35
- return;
36
- }
37
- rmLog('initializing resource manager');
38
- setInterval(() => __awaiter(this, void 0, void 0, function* () {
39
- cycleCount++;
40
- const sockets = yield serve_1.default.io.fetchSockets();
41
- if (!(cycleCount % 4)) {
42
- reportCount++;
43
- rmLog(`socket sessions: ${sockets.length} platform instances: ${platform_instance_1.platformInstances.size}`);
44
- }
45
- for (let platformInstance of platform_instance_1.platformInstances.values()) {
46
- removeStaleSocketSessions(platformInstance, sockets);
47
- // Static platforms are for global use, not tied to a unique to session / eg. credentials)
48
- if ((!platformInstance.global) && (platformInstance.sessions.size === 0)) {
49
- removeStalePlatformInstance(platformInstance);
50
- }
51
- else {
52
- platformInstance.flaggedForTermination = false;
53
- }
54
- }
55
- }), TICK);
56
- }
57
- function socketExists(sessionId, sockets) {
58
- for (let socket of sockets) {
59
- if (socket.id === sessionId) {
60
- return true;
61
- }
62
- }
63
- return false;
64
- }
65
- function removeSessionCallbacks(platformInstance, sessionId) {
66
- for (const key in platformInstance.sessionCallbacks) {
67
- platformInstance.sessionCallbacks[key].delete(sessionId);
68
- }
69
- }
70
- function removeStaleSocketSessions(platformInstance, sockets) {
71
- for (const sessionId of platformInstance.sessions.values()) {
72
- if (!socketExists(sessionId, sockets)) {
73
- rmLog('removing stale socket session reference ' + sessionId + ' in platform instance '
74
- + platformInstance.id);
75
- platformInstance.sessions.delete(sessionId);
76
- removeSessionCallbacks(platformInstance, sessionId);
77
- }
78
- }
79
- }
80
- function removeStalePlatformInstance(platformInstance) {
81
- if (platformInstance.flaggedForTermination) {
82
- rmLog(`terminating platform instance ${platformInstance.id}`);
83
- platformInstance.destroy(); // terminate
84
- }
85
- else {
86
- rmLog(`flagging for termination platform instance ${platformInstance.id} ` +
87
- `(no registered sessions found)`);
88
- platformInstance.flaggedForTermination = true;
89
- }
90
- }
91
- const janitor = {
92
- clean: janitorCycle,
93
- alreadyCalled: alreadyCalled,
94
- cycleCount: cycleCount,
95
- reportCount: reportCount
96
- };
97
- exports.default = janitor;
98
- //# sourceMappingURL=/janitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"janitor.js","sourceRoot":"/","sources":["janitor.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
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
- const activity_streams_1 = __importDefault(require("activity-streams"));
7
- const config_1 = __importDefault(require("../config"));
8
- const activity = (0, activity_streams_1.default)(config_1.default.get('activity-streams:opts'));
9
- /**
10
- * A simple middleware wrapper for the activity-streams Object.create method.
11
- * @param obj
12
- * @param done
13
- */
14
- function createActivityObject(obj, done) {
15
- activity.Object.create(obj);
16
- done(obj);
17
- }
18
- exports.default = createActivityObject;
19
- //# sourceMappingURL=/middleware/create-activity-object.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-activity-object.js","sourceRoot":"/","sources":["middleware/create-activity-object.ts"],"names":[],"mappings":";;;;;AAAA,wEAA+C;AAC/C,uDAA+B;AAC/B,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,gBAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAEtE;;;;GAIG;AACH,SAAwB,oBAAoB,CAAC,GAAQ,EAAE,IAAc;IACnE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,CAAC;AAHD,uCAGC"}
@@ -1,33 +0,0 @@
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
- const activity_streams_1 = __importDefault(require("activity-streams"));
7
- const config_1 = __importDefault(require("../config"));
8
- const activity = (0, activity_streams_1.default)(config_1.default.get('activity-streams:opts'));
9
- function ensureObject(msg) {
10
- return !((typeof msg !== 'object') || (Array.isArray(msg)));
11
- }
12
- function expandActivityStream(msg, done) {
13
- if (!ensureObject(msg)) {
14
- done(new Error(`message received is not an object.`));
15
- }
16
- else if (typeof msg.context !== 'string') {
17
- done(new Error('activity stream must contain a context property'));
18
- }
19
- else if (typeof msg.type !== 'string') {
20
- done(new Error('activity stream must contain a type property.'));
21
- }
22
- else {
23
- msg = activity.Stream(msg);
24
- if (!msg.actor) {
25
- done(new Error('activity stream must contain an actor property.'));
26
- }
27
- else {
28
- done(msg);
29
- }
30
- }
31
- }
32
- exports.default = expandActivityStream;
33
- //# sourceMappingURL=/middleware/expand-activity-stream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expand-activity-stream.js","sourceRoot":"/","sources":["middleware/expand-activity-stream.ts"],"names":[],"mappings":";;;;;AAAA,wEAA+C;AAE/C,uDAA+B;AAG/B,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,gBAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAEtE,SAAS,YAAY,CAAC,GAAQ;IAC5B,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAwB,oBAAoB,CAAC,GAAmB,EAAE,IAAc;IAC9E,IAAI,CAAE,YAAY,CAAC,GAAG,CAAC,EAAE;QACvB,IAAI,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;KACvD;SAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC1C,IAAI,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;KACpE;SAAO,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;QACxC,IAAI,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;KAClE;SAAM;QACL,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAE,GAAG,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;SACpE;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,CAAC;SACX;KACF;AACH,CAAC;AAfD,uCAeC"}