cloudcms-server 3.3.1-beta.8 → 4.0.0-beta.1
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/LICENSE +1 -1
- package/README.md +1 -1
- package/broadcast/broadcast.js +6 -3
- package/broadcast/providers/redis.js +24 -49
- package/clients/nrp.js +117 -0
- package/clients/redis.js +64 -0
- package/d1/index.js +629 -0
- package/d1/index.js.works +203 -0
- package/d1/package.json +86 -0
- package/d1/package.json.works +14 -0
- package/duster/helpers/sample/nyt.js +2 -1
- package/framework/controllers.js +4 -4
- package/index.js +26 -14
- package/insight/insight.js +1 -1
- package/launchpad/index.js +203 -11
- package/launchpad/launchers/cluster.js +103 -110
- package/launchpad/launchers/redis.js +70 -0
- package/launchpad/launchers/single.js +36 -22
- package/locks/locks.js +63 -9
- package/locks/providers/cluster.js +3 -1
- package/locks/providers/memory.js +10 -7
- package/locks/providers/redis.js +62 -82
- package/middleware/admin/admin.js +3 -3
- package/middleware/authentication/adapters/session.js +11 -8
- package/middleware/authentication/authentication.js +28 -16
- package/middleware/authentication/authenticators/default.js +5 -2
- package/middleware/authentication/authenticators/session.js +5 -2
- package/middleware/authentication/providers/saml.js +1 -1
- package/middleware/authorization/authorization.js +11 -8
- package/middleware/awareness/awareness.js +55 -31
- package/middleware/awareness/plugins/editorial.js +4 -4
- package/middleware/awareness/providers/abstract-async.js +107 -84
- package/middleware/awareness/providers/abstract.js +1 -1
- package/middleware/awareness/providers/memory.js +0 -14
- package/middleware/awareness/providers/redis.js +186 -279
- package/middleware/cache/cache.js +4 -2
- package/middleware/cache/providers/redis.js +127 -89
- package/middleware/cache/providers/shared-memory.js +3 -3
- package/middleware/cloudcms/cloudcms.js +22 -16
- package/middleware/form/form.js +3 -3
- package/middleware/modules/modules.js +63 -10
- package/middleware/proxy/proxy.js +8 -21
- package/middleware/stores/stores.js +48 -5
- package/middleware/themes/themes.js +49 -0
- package/middleware/virtual-config/virtual-config.js +11 -8
- package/middleware/wcm/wcm.js +4 -4
- package/notifications/notifications.js +27 -4
- package/package.json +30 -25
- package/server/index.js +508 -412
- package/server/standalone.js +9 -0
- package/temp/clusterlock/index.js +3 -3
- package/temp/clusterlock/package.json +1 -1
- package/temp/passport-saml/LICENSE +23 -0
- package/temp/passport-saml/README.md +406 -0
- package/temp/passport-saml/lib/node-saml/algorithms.d.ts +5 -0
- package/temp/passport-saml/lib/node-saml/algorithms.js +41 -0
- package/temp/passport-saml/lib/node-saml/algorithms.js.map +1 -0
- package/temp/passport-saml/lib/node-saml/index.d.ts +3 -0
- package/temp/passport-saml/lib/node-saml/index.js +6 -0
- package/temp/passport-saml/lib/node-saml/index.js.map +1 -0
- package/temp/passport-saml/lib/node-saml/inmemory-cache-provider.d.ts +45 -0
- package/temp/passport-saml/lib/node-saml/inmemory-cache-provider.js +86 -0
- package/temp/passport-saml/lib/node-saml/inmemory-cache-provider.js.map +1 -0
- package/temp/passport-saml/lib/node-saml/saml-post-signing.d.ts +3 -0
- package/temp/passport-saml/lib/node-saml/saml-post-signing.js +15 -0
- package/temp/passport-saml/lib/node-saml/saml-post-signing.js.map +1 -0
- package/temp/passport-saml/lib/node-saml/saml.d.ts +77 -0
- package/temp/passport-saml/lib/node-saml/saml.js +1170 -0
- package/temp/passport-saml/lib/node-saml/saml.js.map +1 -0
- package/temp/passport-saml/lib/node-saml/types.d.ts +95 -0
- package/temp/passport-saml/lib/node-saml/types.js +8 -0
- package/temp/passport-saml/lib/node-saml/types.js.map +1 -0
- package/temp/passport-saml/lib/node-saml/utility.d.ts +3 -0
- package/temp/passport-saml/lib/node-saml/utility.js +19 -0
- package/temp/passport-saml/lib/node-saml/utility.js.map +1 -0
- package/temp/passport-saml/lib/node-saml/xml.d.ts +21 -0
- package/temp/passport-saml/lib/node-saml/xml.js +140 -0
- package/temp/passport-saml/lib/node-saml/xml.js.map +1 -0
- package/temp/passport-saml/lib/passport-saml/index.d.ts +6 -0
- package/temp/passport-saml/lib/passport-saml/index.js +11 -0
- package/temp/passport-saml/lib/passport-saml/index.js.map +1 -0
- package/temp/passport-saml/lib/passport-saml/multiSamlStrategy.d.ts +13 -0
- package/temp/passport-saml/lib/passport-saml/multiSamlStrategy.js +63 -0
- package/temp/passport-saml/lib/passport-saml/multiSamlStrategy.js.map +1 -0
- package/temp/passport-saml/lib/passport-saml/strategy.d.ts +20 -0
- package/temp/passport-saml/lib/passport-saml/strategy.js +167 -0
- package/temp/passport-saml/lib/passport-saml/strategy.js.map +1 -0
- package/temp/passport-saml/lib/passport-saml/types.d.ts +51 -0
- package/temp/passport-saml/lib/passport-saml/types.js +11 -0
- package/temp/passport-saml/lib/passport-saml/types.js.map +1 -0
- package/temp/passport-saml/package.json +96 -0
- package/util/auth.js +6 -6
- package/util/cloudcms.js +85 -88
- package/util/proxy-factory.js +159 -268
- package/util/redis.js +113 -0
- package/util/renditions.js +12 -6
- package/util/request.js +48 -12
- package/util/util.js +16 -2
- package/launchpad/launchers/sticky-cluster.js +0 -43
- package/temp/memored/.jshintrc +0 -4
- package/temp/memored/README.md +0 -240
- package/temp/memored/demo/demo1.js +0 -37
- package/temp/memored/demo/demo2.js +0 -32
- package/temp/memored/gulpfile.js +0 -8
- package/temp/memored/index.js +0 -343
- package/temp/memored/package.json +0 -54
- package/temp/memored/spec/memored.spec.js +0 -265
- package/web/cms/ice.js +0 -109
- package/web/cms/preview.js +0 -106
|
@@ -28,6 +28,7 @@ var log = function(text, level)
|
|
|
28
28
|
* "cache" the root of the cache
|
|
29
29
|
* "public" the web host root (this might be public_build too)
|
|
30
30
|
* "templates" the templates storage location (for client-side templates)
|
|
31
|
+
* "themes" the themes storage location (for client-side themes)
|
|
31
32
|
* "modules" the deployed modules storage location (for client-side modules)
|
|
32
33
|
* "config" the configuration storage location for static config (for client-side config)
|
|
33
34
|
*
|
|
@@ -45,7 +46,7 @@ exports = module.exports = function()
|
|
|
45
46
|
var engineId = storeConfiguration[storeType];
|
|
46
47
|
|
|
47
48
|
var engine = ENGINES[engineId];
|
|
48
|
-
|
|
49
|
+
|
|
49
50
|
var engineType = process.configuration.storeEngines[engineId].type;
|
|
50
51
|
var engineConfiguration = process.configuration.storeEngines[engineId].config;
|
|
51
52
|
|
|
@@ -175,7 +176,7 @@ exports = module.exports = function()
|
|
|
175
176
|
if (!stores) {
|
|
176
177
|
return afterCheck();
|
|
177
178
|
}
|
|
178
|
-
|
|
179
|
+
|
|
179
180
|
return process.cache.read("module-descriptors-" + host, function(err, moduleDescriptorsForHost) {
|
|
180
181
|
|
|
181
182
|
if (err) {
|
|
@@ -208,6 +209,7 @@ exports = module.exports = function()
|
|
|
208
209
|
// these will get overwritten in the binding methods below
|
|
209
210
|
stores["config"] = buildStore("config", host, "config");
|
|
210
211
|
stores["templates"] = buildStore("templates", host, "templates");
|
|
212
|
+
stores["themes"] = buildStore("themes", host, "themes");
|
|
211
213
|
|
|
212
214
|
var bindWebStore = function(done) {
|
|
213
215
|
|
|
@@ -482,7 +484,43 @@ exports = module.exports = function()
|
|
|
482
484
|
callback();
|
|
483
485
|
});
|
|
484
486
|
};
|
|
485
|
-
|
|
487
|
+
|
|
488
|
+
var bindThemeStores = function(moduleDescriptors, callback)
|
|
489
|
+
{
|
|
490
|
+
// all theme stores
|
|
491
|
+
var themeStores = [];
|
|
492
|
+
for (var i = 0; i < moduleDescriptors.length; i++)
|
|
493
|
+
{
|
|
494
|
+
var moduleStoreType = moduleDescriptors[i].store;
|
|
495
|
+
var modulePath = moduleDescriptors[i].path;
|
|
496
|
+
|
|
497
|
+
var storePath = path.join(modulePath, "themes");
|
|
498
|
+
if (moduleStoreType === "modules")
|
|
499
|
+
{
|
|
500
|
+
storePath = path.join("modules", storePath);
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
var themeStore = buildStore(moduleStoreType, host, storePath);
|
|
504
|
+
themeStores.push(themeStore);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
// trim back and only keep stores that are allocated
|
|
508
|
+
retainAllocatedStores(themeStores, function(err, allocatedStores) {
|
|
509
|
+
|
|
510
|
+
// all stores to be bound in
|
|
511
|
+
var bindingStores = [];
|
|
512
|
+
for (var i = 0; i < allocatedStores.length; i++) {
|
|
513
|
+
bindingStores.push(allocatedStores[i]);
|
|
514
|
+
}
|
|
515
|
+
bindingStores.push(stores.themes);
|
|
516
|
+
|
|
517
|
+
// bind into a multi-store
|
|
518
|
+
stores["themes"] = require("./multistore")(bindingStores);
|
|
519
|
+
|
|
520
|
+
callback();
|
|
521
|
+
});
|
|
522
|
+
};
|
|
523
|
+
|
|
486
524
|
process.cache.read("module-descriptors-" + host, function(err, moduleDescriptors) {
|
|
487
525
|
|
|
488
526
|
moduleDescriptors = null;
|
|
@@ -495,7 +533,9 @@ exports = module.exports = function()
|
|
|
495
533
|
|
|
496
534
|
bindConfigStores(moduleDescriptors, function () {
|
|
497
535
|
bindTemplateStores(moduleDescriptors, function() {
|
|
498
|
-
|
|
536
|
+
bindThemeStores(moduleDescriptors, function() {
|
|
537
|
+
done();
|
|
538
|
+
});
|
|
499
539
|
});
|
|
500
540
|
});
|
|
501
541
|
|
|
@@ -505,7 +545,9 @@ exports = module.exports = function()
|
|
|
505
545
|
{
|
|
506
546
|
bindConfigStores(moduleDescriptors, function() {
|
|
507
547
|
bindTemplateStores(moduleDescriptors, function() {
|
|
508
|
-
|
|
548
|
+
bindThemeStores(moduleDescriptors, function() {
|
|
549
|
+
done();
|
|
550
|
+
});
|
|
509
551
|
});
|
|
510
552
|
});
|
|
511
553
|
}
|
|
@@ -566,6 +608,7 @@ exports = module.exports = function()
|
|
|
566
608
|
req.contentStore = stores["content"];
|
|
567
609
|
req.webStore = stores["web"];
|
|
568
610
|
req.templatesStore = stores["templates"];
|
|
611
|
+
req.themesStore = stores["themes"];
|
|
569
612
|
req.modulesStore = stores["modules"];
|
|
570
613
|
|
|
571
614
|
// sort the module descriptors by id
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var path = require('path');
|
|
2
|
+
var util = require("../../util/util");
|
|
3
|
+
|
|
4
|
+
exports = module.exports = function()
|
|
5
|
+
{
|
|
6
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
7
|
+
//
|
|
8
|
+
// RESULTING OBJECT
|
|
9
|
+
//
|
|
10
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
11
|
+
|
|
12
|
+
var r = {};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves themes for the application.
|
|
16
|
+
*
|
|
17
|
+
* @return {Function}
|
|
18
|
+
*/
|
|
19
|
+
r.handler = function()
|
|
20
|
+
{
|
|
21
|
+
return util.createHandler("themes", function(req, res, next, stores, cache, configuration) {
|
|
22
|
+
|
|
23
|
+
var themeStore = stores.themes;
|
|
24
|
+
|
|
25
|
+
var handled = false;
|
|
26
|
+
|
|
27
|
+
if (req.method.toLowerCase() === "get") {
|
|
28
|
+
|
|
29
|
+
if (req.url.indexOf("/_themes") === 0)
|
|
30
|
+
{
|
|
31
|
+
var filePath = req.path.substring(8);
|
|
32
|
+
|
|
33
|
+
themeStore.sendFile(res, filePath, null, function(err) {
|
|
34
|
+
next(err);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
handled = true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (!handled)
|
|
42
|
+
{
|
|
43
|
+
next();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return r;
|
|
49
|
+
}();
|
|
@@ -33,9 +33,12 @@ exports = module.exports = function()
|
|
|
33
33
|
// force key to "virtualdriver"
|
|
34
34
|
configuration.virtualDriver.key = VIRTUAL_DRIVER_CACHE_KEY;
|
|
35
35
|
|
|
36
|
+
console.log("a1: " + JSON.stringify(configuration.virtualDriver, null, 2));
|
|
37
|
+
|
|
36
38
|
// either connect anew or re-use an existing connection to Cloud CMS for this application
|
|
37
39
|
Gitana.connect(configuration.virtualDriver, function(err) {
|
|
38
|
-
|
|
40
|
+
|
|
41
|
+
console.log("a2:" + err);
|
|
39
42
|
if (err)
|
|
40
43
|
{
|
|
41
44
|
return callback(err);
|
|
@@ -83,7 +86,7 @@ exports = module.exports = function()
|
|
|
83
86
|
|
|
84
87
|
var URL = configuration.virtualDriver.baseURL;
|
|
85
88
|
if (!URL) {
|
|
86
|
-
URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT);
|
|
89
|
+
URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH);
|
|
87
90
|
}
|
|
88
91
|
URL += "/virtual/driver/config";
|
|
89
92
|
var requestConfig = {
|
|
@@ -143,10 +146,10 @@ exports = module.exports = function()
|
|
|
143
146
|
}
|
|
144
147
|
};
|
|
145
148
|
|
|
146
|
-
var _LOCK = function(lockKey, workFunction)
|
|
147
|
-
{
|
|
148
|
-
|
|
149
|
-
};
|
|
149
|
+
// var _LOCK = function(lockKey, workFunction)
|
|
150
|
+
// {
|
|
151
|
+
// process.locks.lock(lockKey, workFunction);
|
|
152
|
+
// };
|
|
150
153
|
|
|
151
154
|
var r = {};
|
|
152
155
|
|
|
@@ -213,7 +216,7 @@ exports = module.exports = function()
|
|
|
213
216
|
}
|
|
214
217
|
if (!gitanaJson.baseURL)
|
|
215
218
|
{
|
|
216
|
-
gitanaJson.baseURL = util.cleanupURL(util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT));
|
|
219
|
+
gitanaJson.baseURL = util.cleanupURL(util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH));
|
|
217
220
|
}
|
|
218
221
|
|
|
219
222
|
// mark as retrieved from virtual driver
|
|
@@ -336,7 +339,7 @@ exports = module.exports = function()
|
|
|
336
339
|
// defaults
|
|
337
340
|
if (!configuration.baseURL)
|
|
338
341
|
{
|
|
339
|
-
configuration.baseURL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT);
|
|
342
|
+
configuration.baseURL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH);
|
|
340
343
|
}
|
|
341
344
|
if (!configuration.key) {
|
|
342
345
|
configuration.key = "virtual";
|
package/middleware/wcm/wcm.js
CHANGED
|
@@ -309,7 +309,7 @@ exports = module.exports = function()
|
|
|
309
309
|
req.application(function (err, application) {
|
|
310
310
|
|
|
311
311
|
var loadingPagesCacheKey = application._doc + "-wcm-loading-pages";
|
|
312
|
-
_LOCK(null, loadingPagesCacheKey, function (releaseLockFn) {
|
|
312
|
+
_LOCK(null, loadingPagesCacheKey, function (err, releaseLockFn) {
|
|
313
313
|
|
|
314
314
|
// check again inside lock in case another request preloaded this before we arrived
|
|
315
315
|
req.cache.read(WCM_PAGES, function (err, cachedPages) {
|
|
@@ -716,7 +716,7 @@ exports = module.exports = function()
|
|
|
716
716
|
var cacheFilePath = cloudcms.toCacheFilePath(pageFilePath);
|
|
717
717
|
|
|
718
718
|
// take out a lock so that only one "request" can write to cache at a time for this path
|
|
719
|
-
_LOCK(contentStore, _lock_identifier(pageBasePath), function(releaseLockFn) {
|
|
719
|
+
_LOCK(contentStore, _lock_identifier(pageBasePath), function(err, releaseLockFn) {
|
|
720
720
|
|
|
721
721
|
// write page file
|
|
722
722
|
contentStore.writeFile(pageFilePath, text, function (err) {
|
|
@@ -773,7 +773,7 @@ exports = module.exports = function()
|
|
|
773
773
|
var cacheFilePath = cloudcms.toCacheFilePath(pageFilePath);
|
|
774
774
|
|
|
775
775
|
// take out a lock so that only one "request" can read from cache at a time for this path
|
|
776
|
-
_LOCK(contentStore, _lock_identifier(pageBasePath), function(releaseLockFn) {
|
|
776
|
+
_LOCK(contentStore, _lock_identifier(pageBasePath), function(err, releaseLockFn) {
|
|
777
777
|
|
|
778
778
|
contentStore.readFile(cacheFilePath, function(err, cacheInfoString) {
|
|
779
779
|
|
|
@@ -858,7 +858,7 @@ exports = module.exports = function()
|
|
|
858
858
|
|
|
859
859
|
var _handleCachePageInvalidate = function(contentStore, pageBasePath, callback)
|
|
860
860
|
{
|
|
861
|
-
_LOCK(contentStore, _lock_identifier(pageBasePath), function(releaseLockFn) {
|
|
861
|
+
_LOCK(contentStore, _lock_identifier(pageBasePath), function(err, releaseLockFn) {
|
|
862
862
|
|
|
863
863
|
contentStore.existsDirectory(pageBasePath, function (exists) {
|
|
864
864
|
|
|
@@ -76,6 +76,7 @@ var handleNotificationMessages = function(items, callback) {
|
|
|
76
76
|
return function(done) {
|
|
77
77
|
|
|
78
78
|
//logFn("WORKING ON ITEM: " + i + ", item: " + JSON.stringify(item, null, " "));
|
|
79
|
+
console.log("WORKING ON ITEM: " + i + ", item: " + JSON.stringify(item, null, " "));
|
|
79
80
|
|
|
80
81
|
var operation = item.operation;
|
|
81
82
|
|
|
@@ -183,7 +184,7 @@ var handleNotificationMessages = function(items, callback) {
|
|
|
183
184
|
var platformId = obj.platformId;
|
|
184
185
|
var applicationId = obj.applicationId;
|
|
185
186
|
var themeId = obj.themeId;
|
|
186
|
-
var
|
|
187
|
+
var themeKey = obj.themeKey;
|
|
187
188
|
|
|
188
189
|
// broadcast the "invalidate_theme" event
|
|
189
190
|
process.broadcast.publish("invalidate_theme", {
|
|
@@ -191,7 +192,29 @@ var handleNotificationMessages = function(items, callback) {
|
|
|
191
192
|
"platformId": platformId,
|
|
192
193
|
"applicationId": applicationId,
|
|
193
194
|
"themeId": themeId,
|
|
194
|
-
"
|
|
195
|
+
"themeKey": themeKey
|
|
196
|
+
}, z_done);
|
|
197
|
+
}
|
|
198
|
+
else if (type === "themeAssignment")
|
|
199
|
+
{
|
|
200
|
+
var platformId = obj.platformId;
|
|
201
|
+
var applicationId = obj.applicationId;
|
|
202
|
+
var projectId = obj.projectId;
|
|
203
|
+
var domainId = obj.domainId;
|
|
204
|
+
var principalId = obj.principalId;
|
|
205
|
+
var themeId = obj.themeId;
|
|
206
|
+
var operation = obj.operation;
|
|
207
|
+
|
|
208
|
+
// broadcast the "invalidate_theme_assignment" event
|
|
209
|
+
process.broadcast.publish("invalidate_theme_assignment", {
|
|
210
|
+
"host": host,
|
|
211
|
+
"platformId": platformId,
|
|
212
|
+
"applicationId": applicationId,
|
|
213
|
+
"projectId": projectId,
|
|
214
|
+
"domainId": domainId,
|
|
215
|
+
"principalId": principalId,
|
|
216
|
+
"themeId": themeId,
|
|
217
|
+
"operation": operation
|
|
195
218
|
}, z_done);
|
|
196
219
|
}
|
|
197
220
|
else if (type === "tenant")
|
|
@@ -636,7 +659,7 @@ module.exports = function()
|
|
|
636
659
|
var r = {};
|
|
637
660
|
|
|
638
661
|
r.start = function(callback) {
|
|
639
|
-
|
|
662
|
+
|
|
640
663
|
var config = process.configuration;
|
|
641
664
|
if (!config["notifications"])
|
|
642
665
|
{
|
|
@@ -663,7 +686,7 @@ module.exports = function()
|
|
|
663
686
|
notifications.enabled = true;
|
|
664
687
|
}
|
|
665
688
|
}
|
|
666
|
-
|
|
689
|
+
|
|
667
690
|
if (notifications.enabled)
|
|
668
691
|
{
|
|
669
692
|
if (process.env.CLOUDCMS_NOTIFICATIONS_TYPE)
|
package/package.json
CHANGED
|
@@ -6,51 +6,60 @@
|
|
|
6
6
|
},
|
|
7
7
|
"name": "cloudcms-server",
|
|
8
8
|
"description": "Cloud CMS Application Server Module",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "4.0.0-beta.1",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
12
|
"url": "git://github.com/gitana/cloudcms-server.git"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"
|
|
16
|
-
"
|
|
15
|
+
"@socket.io/cluster-adapter": "^0.2.0",
|
|
16
|
+
"@socket.io/redis-adapter": "^7.2.0",
|
|
17
|
+
"@socket.io/sticky": "^1.0.1",
|
|
18
|
+
"accepts": "^1.3.8",
|
|
19
|
+
"agentkeepalive": "^4.2.1",
|
|
17
20
|
"alpaca": "^1.5.27",
|
|
18
21
|
"archiver": "^5.1.0",
|
|
19
|
-
"async": "^3.2.
|
|
20
|
-
"
|
|
22
|
+
"async": "^3.2.3",
|
|
23
|
+
"async-lock": "^1.3.2",
|
|
24
|
+
"aws-sdk": "^2.1208.0",
|
|
21
25
|
"axios": "^0.21.0",
|
|
22
26
|
"basic-auth": "^2.0.1",
|
|
23
|
-
"body-parser": "^1.
|
|
27
|
+
"body-parser": "^1.20.0",
|
|
24
28
|
"bytes": "^3.1.0",
|
|
25
29
|
"canoe": "^0.3.3",
|
|
26
30
|
"clone": "^2.1.2",
|
|
27
31
|
"connect-flash": "^0.1.1",
|
|
28
32
|
"connect-multiparty": "^2.2.0",
|
|
29
|
-
"connect-redis": "^
|
|
33
|
+
"connect-redis": "^6.1.3",
|
|
30
34
|
"consolidate": "^0.16.0",
|
|
31
35
|
"cookie-parser": "^1.4.5",
|
|
32
36
|
"debug": "^4.3.1",
|
|
33
37
|
"dustjs-helpers": "^1.7.4",
|
|
34
|
-
"dustjs-linkedin": "^
|
|
38
|
+
"dustjs-linkedin": "^3.0.1",
|
|
35
39
|
"errorhandler": "^1.5.1",
|
|
36
|
-
"express": "^4.
|
|
37
|
-
"express-session": "^1.17.
|
|
40
|
+
"express": "^4.18.1",
|
|
41
|
+
"express-session": "^1.17.3",
|
|
38
42
|
"express-useragent": "^1.0.15",
|
|
39
43
|
"extend-with-super": "^2.0.0",
|
|
40
|
-
"
|
|
44
|
+
"finalhandler": "^1.2.0",
|
|
45
|
+
"form-data": "^2.3.3",
|
|
46
|
+
"gitana": "^1.0.322",
|
|
41
47
|
"handlebars": "^4.7.6",
|
|
42
48
|
"hbs": "^4.1.1",
|
|
43
|
-
"
|
|
49
|
+
"helmet": "^4.6.0",
|
|
50
|
+
"http2-proxy": "^5.0.53",
|
|
51
|
+
"ioredis": "4.28.5",
|
|
44
52
|
"json5": "^2.1.3",
|
|
45
53
|
"jsonwebtoken": "^8.5.1",
|
|
46
54
|
"klaw": "^3.0.0",
|
|
47
55
|
"lru-cache": "^6.0.0",
|
|
48
|
-
"marked": "^
|
|
56
|
+
"marked": "^4.0.14",
|
|
57
|
+
"memored": "^1.1.1",
|
|
49
58
|
"memorystore": "^1.6.4",
|
|
50
59
|
"mime": "^2.4.6",
|
|
60
|
+
"mkdirp": "^0.5.1",
|
|
51
61
|
"moment": "^2.29.1",
|
|
52
62
|
"morgan": "^1.10.0",
|
|
53
|
-
"node-redis-pubsub": "^4.0.0",
|
|
54
63
|
"object-hash": "^2.0.3",
|
|
55
64
|
"object-merge": "^2.5.1",
|
|
56
65
|
"on-headers": "^1.0.2",
|
|
@@ -62,31 +71,27 @@
|
|
|
62
71
|
"passport-linkedin": "^1.0.0",
|
|
63
72
|
"passport-local": "^1.0.0",
|
|
64
73
|
"passport-oauth": "^1.0.0",
|
|
65
|
-
"passport-saml": "^2.0
|
|
66
|
-
"passport-twitter": "^1.
|
|
74
|
+
"passport-saml": "^2.2.0",
|
|
75
|
+
"passport-twitter": "^0.1.5",
|
|
67
76
|
"pkginfo": "^0.4.1",
|
|
68
|
-
"q": "^1.5.1",
|
|
69
77
|
"random-js": "^2.1.0",
|
|
70
78
|
"recursive-readdir": "^2.2.2",
|
|
71
|
-
"redis": "^
|
|
72
|
-
"
|
|
79
|
+
"redis": "^4.2.0",
|
|
80
|
+
"redlock": "4.2.0",
|
|
73
81
|
"request-param": "^1.0.1",
|
|
74
82
|
"response-time": "^2.3.2",
|
|
75
|
-
"
|
|
76
|
-
"semver": "^7.3.4",
|
|
83
|
+
"semver": "^7.3.7",
|
|
77
84
|
"serve-favicon": "^2.5.0",
|
|
78
85
|
"session-file-store": "^1.5.0",
|
|
79
86
|
"sha1": "^1.1.1",
|
|
80
|
-
"socket.io": "4.1
|
|
87
|
+
"socket.io": "^4.5.1",
|
|
81
88
|
"ssl-root-cas": "^1.3.1",
|
|
82
|
-
"sticky-session": "^1.1.2",
|
|
83
89
|
"stomp-client": "^0.9.0",
|
|
84
90
|
"targz": "^1.0.1",
|
|
85
91
|
"temp": "^0.9.4",
|
|
86
|
-
"toobusy-js": "^0.5.1",
|
|
87
92
|
"uuid": "^8.3.2",
|
|
88
93
|
"vm2": "^3.9.2",
|
|
89
|
-
"watch": "^
|
|
94
|
+
"watch": "^0.13.0",
|
|
90
95
|
"winston": "^3.3.3"
|
|
91
96
|
},
|
|
92
97
|
"contributors": [
|