@webex/webex-server 2.29.3 → 2.52.8
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/.eslintrc.js +6 -0
- package/babel.config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +4 -18
- package/dist/index.js.map +1 -1
- package/dist/memory-store.js +12 -33
- package/dist/memory-store.js.map +1 -1
- package/dist/session.js +5 -35
- package/dist/session.js.map +1 -1
- package/dist/webex.js +0 -22
- package/dist/webex.js.map +1 -1
- package/jest.config.js +3 -0
- package/package.json +51 -31
- package/process +1 -0
- package/src/index.js +30 -19
- package/src/memory-store.js +44 -42
- package/src/session.js +71 -79
- package/test/integration/spec/session.js +148 -147
package/.eslintrc.js
ADDED
package/babel.config.js
ADDED
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n"],"mappings":"AAAA;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n"],"mappings":"AAAA;AACA;AACA;AAFA"}
|
package/dist/index.js
CHANGED
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
6
|
-
|
|
7
4
|
var _compression = _interopRequireDefault(require("compression"));
|
|
8
|
-
|
|
9
5
|
var _cors = _interopRequireDefault(require("cors"));
|
|
10
|
-
|
|
11
6
|
var _errorhandler = _interopRequireDefault(require("errorhandler"));
|
|
12
|
-
|
|
13
7
|
var _express = _interopRequireDefault(require("express"));
|
|
14
|
-
|
|
15
8
|
var _morgan = _interopRequireDefault(require("morgan"));
|
|
16
|
-
|
|
17
9
|
var _onFinished = _interopRequireDefault(require("on-finished"));
|
|
18
|
-
|
|
19
10
|
var _express2 = _interopRequireDefault(require("request-id/express"));
|
|
20
|
-
|
|
21
11
|
var _responseTime = _interopRequireDefault(require("response-time"));
|
|
22
|
-
|
|
23
12
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
24
|
-
|
|
25
13
|
var _webex = _interopRequireDefault(require("./webex"));
|
|
26
|
-
|
|
27
14
|
var _session = _interopRequireDefault(require("./session"));
|
|
28
|
-
|
|
29
15
|
/*!
|
|
30
16
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
31
17
|
*/
|
|
32
18
|
|
|
33
19
|
/* eslint-disable no-console */
|
|
20
|
+
|
|
34
21
|
var app = (0, _express.default)();
|
|
35
22
|
app.use((0, _responseTime.default)());
|
|
36
23
|
app.use((0, _express2.default)({
|
|
@@ -56,12 +43,11 @@ app.use((0, _cors.default)({
|
|
|
56
43
|
maxAge: 24 * 60 * 60
|
|
57
44
|
}));
|
|
58
45
|
app.get('/ping', function (req, res) {
|
|
59
|
-
res.send(
|
|
46
|
+
res.send({
|
|
60
47
|
name: '@webex/webex-server',
|
|
61
|
-
version: "2.
|
|
62
|
-
}, {
|
|
48
|
+
version: "2.52.8",
|
|
63
49
|
'sdk-version': _webex.default.version
|
|
64
|
-
})
|
|
50
|
+
});
|
|
65
51
|
});
|
|
66
52
|
app.use('/api/v1', _session.default);
|
|
67
53
|
app.use((0, _errorhandler.default)());
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["app","express","use","responseTime","requestId","generator","sequence","uuid","v4","reqHeader","resHeader","morgan","req","res","next","onFinished","console","info","method","toUpperCase","path","statusCode","getHeader","compression","cors","origin","credentials","maxAge","get","send","name","version","Webex","sessionRouter","errorHandler","module","exports"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable no-console */\n\nimport compression from 'compression';\nimport cors from 'cors';\nimport errorHandler from 'errorhandler';\nimport express from 'express';\nimport morgan from 'morgan';\nimport onFinished from 'on-finished';\nimport requestId from 'request-id/express';\nimport responseTime from 'response-time';\nimport uuid from 'uuid';\n\nimport Webex from './webex';\nimport sessionRouter from './session';\n\nconst app = express();\n\napp.use(responseTime());\napp.use(requestId({\n
|
|
1
|
+
{"version":3,"names":["_compression","_interopRequireDefault","require","_cors","_errorhandler","_express","_morgan","_onFinished","_express2","_responseTime","_uuid","_webex","_session","app","express","use","responseTime","requestId","generator","sequence","concat","uuid","v4","reqHeader","resHeader","morgan","req","res","next","onFinished","console","info","method","toUpperCase","path","statusCode","getHeader","compression","cors","origin","credentials","maxAge","get","send","name","version","Webex","sessionRouter","errorHandler","module","exports"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable no-console */\n\nimport compression from 'compression';\nimport cors from 'cors';\nimport errorHandler from 'errorhandler';\nimport express from 'express';\nimport morgan from 'morgan';\nimport onFinished from 'on-finished';\nimport requestId from 'request-id/express';\nimport responseTime from 'response-time';\nimport uuid from 'uuid';\n\nimport Webex from './webex';\nimport sessionRouter from './session';\n\nconst app = express();\n\napp.use(responseTime());\napp.use(\n requestId({\n generator() {\n // TODO get sequence from session data\n const sequence = 0;\n\n return `webex-server_${uuid.v4()}_${sequence}`;\n },\n reqHeader: 'TrackingID',\n resHeader: 'TrackingID',\n })\n);\napp.use(morgan('dev'));\napp.use((req, res, next) => {\n onFinished(res, () => {\n console.info(\n req.method.toUpperCase(),\n req.path,\n res.statusCode,\n res.getHeader('X-Response-Time')\n );\n });\n next();\n});\napp.use(compression());\napp.use(\n cors({\n origin: true,\n credentials: true,\n maxAge: 24 * 60 * 60,\n })\n);\n\napp.get('/ping', (req, res) => {\n res.send({\n name: '@webex/webex-server',\n version: PACKAGE_VERSION,\n 'sdk-version': Webex.version,\n });\n});\n\napp.use('/api/v1', sessionRouter);\n\napp.use(errorHandler());\n\nmodule.exports = app;\n"],"mappings":";;;AAMA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,WAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,aAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,KAAA,GAAAT,sBAAA,CAAAC,OAAA;AAEA,IAAAS,MAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,QAAA,GAAAX,sBAAA,CAAAC,OAAA;AAjBA;AACA;AACA;;AAEA;;AAeA,IAAMW,GAAG,GAAG,IAAAC,gBAAO,GAAE;AAErBD,GAAG,CAACE,GAAG,CAAC,IAAAC,qBAAY,GAAE,CAAC;AACvBH,GAAG,CAACE,GAAG,CACL,IAAAE,iBAAS,EAAC;EACRC,SAAS,WAAAA,UAAA,EAAG;IACV;IACA,IAAMC,QAAQ,GAAG,CAAC;IAElB,uBAAAC,MAAA,CAAuBC,aAAI,CAACC,EAAE,EAAE,OAAAF,MAAA,CAAID,QAAQ;EAC9C,CAAC;EACDI,SAAS,EAAE,YAAY;EACvBC,SAAS,EAAE;AACb,CAAC,CAAC,CACH;AACDX,GAAG,CAACE,GAAG,CAAC,IAAAU,eAAM,EAAC,KAAK,CAAC,CAAC;AACtBZ,GAAG,CAACE,GAAG,CAAC,UAACW,GAAG,EAAEC,GAAG,EAAEC,IAAI,EAAK;EAC1B,IAAAC,mBAAU,EAACF,GAAG,EAAE,YAAM;IACpBG,OAAO,CAACC,IAAI,CACVL,GAAG,CAACM,MAAM,CAACC,WAAW,EAAE,EACxBP,GAAG,CAACQ,IAAI,EACRP,GAAG,CAACQ,UAAU,EACdR,GAAG,CAACS,SAAS,CAAC,iBAAiB,CAAC,CACjC;EACH,CAAC,CAAC;EACFR,IAAI,EAAE;AACR,CAAC,CAAC;AACFf,GAAG,CAACE,GAAG,CAAC,IAAAsB,oBAAW,GAAE,CAAC;AACtBxB,GAAG,CAACE,GAAG,CACL,IAAAuB,aAAI,EAAC;EACHC,MAAM,EAAE,IAAI;EACZC,WAAW,EAAE,IAAI;EACjBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;AACpB,CAAC,CAAC,CACH;AAED5B,GAAG,CAAC6B,GAAG,CAAC,OAAO,EAAE,UAAChB,GAAG,EAAEC,GAAG,EAAK;EAC7BA,GAAG,CAACgB,IAAI,CAAC;IACPC,IAAI,EAAE,qBAAqB;IAC3BC,OAAO,UAAiB;IACxB,aAAa,EAAEC,cAAK,CAACD;EACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFhC,GAAG,CAACE,GAAG,CAAC,SAAS,EAAEgC,gBAAa,CAAC;AAEjClC,GAAG,CAACE,GAAG,CAAC,IAAAiC,qBAAY,GAAE,CAAC;AAEvBC,MAAM,CAACC,OAAO,GAAGrC,GAAG"}
|
package/dist/memory-store.js
CHANGED
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _setImmediate2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/set-immediate"));
|
|
14
|
-
|
|
15
10
|
var _create = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/create"));
|
|
16
|
-
|
|
17
11
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
18
|
-
|
|
19
12
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
20
|
-
|
|
21
13
|
var _store = _interopRequireDefault(require("express-session/session/store"));
|
|
22
|
-
|
|
23
14
|
var _util = _interopRequireDefault(require("util"));
|
|
24
|
-
|
|
25
15
|
/*!
|
|
26
16
|
* Almost a direct copy of express-session/sessions/memory.js, except the JSON
|
|
27
17
|
* serialization/deserialization has been removed.
|
|
@@ -36,9 +26,9 @@ var _util = _interopRequireDefault(require("util"));
|
|
|
36
26
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
37
27
|
* MIT Licensed
|
|
38
28
|
*/
|
|
29
|
+
|
|
39
30
|
// Disable eslint since this is a very lightly modified copy of the built-in
|
|
40
31
|
// MemoryStore
|
|
41
|
-
|
|
42
32
|
/* eslint-disable */
|
|
43
33
|
|
|
44
34
|
/**
|
|
@@ -55,29 +45,27 @@ var _util = _interopRequireDefault(require("util"));
|
|
|
55
45
|
var defer = typeof _setImmediate2.default === 'function' ? _setImmediate2.default : function (fn) {
|
|
56
46
|
process.nextTick(fn.bind.apply(fn, arguments));
|
|
57
47
|
};
|
|
48
|
+
|
|
58
49
|
/**
|
|
59
50
|
* Module exports.
|
|
60
51
|
*/
|
|
61
|
-
|
|
62
52
|
var _default = MemoryStore;
|
|
63
53
|
/**
|
|
64
54
|
* A session store in memory.
|
|
65
55
|
* @public
|
|
66
56
|
*/
|
|
67
|
-
|
|
68
57
|
exports.default = _default;
|
|
69
|
-
|
|
70
58
|
function MemoryStore() {
|
|
71
59
|
_store.default.call(this);
|
|
72
|
-
|
|
73
60
|
this.sessions = (0, _create.default)(null);
|
|
74
61
|
}
|
|
62
|
+
|
|
75
63
|
/**
|
|
76
64
|
* Inherit from Store.
|
|
77
65
|
*/
|
|
78
66
|
|
|
79
|
-
|
|
80
67
|
_util.default.inherits(MemoryStore, _store.default);
|
|
68
|
+
|
|
81
69
|
/**
|
|
82
70
|
* Get all active sessions.
|
|
83
71
|
*
|
|
@@ -85,22 +73,19 @@ _util.default.inherits(MemoryStore, _store.default);
|
|
|
85
73
|
* @public
|
|
86
74
|
*/
|
|
87
75
|
|
|
88
|
-
|
|
89
76
|
MemoryStore.prototype.all = function all(callback) {
|
|
90
77
|
var sessionIds = (0, _keys.default)(this.sessions);
|
|
91
78
|
var sessions = (0, _create.default)(null);
|
|
92
|
-
|
|
93
79
|
for (var i = 0; i < sessionIds.length; i += 1) {
|
|
94
80
|
var sessionId = sessionIds[i];
|
|
95
81
|
var session = getSession.call(this, sessionId);
|
|
96
|
-
|
|
97
82
|
if (session) {
|
|
98
83
|
sessions[sessionId] = session;
|
|
99
84
|
}
|
|
100
85
|
}
|
|
101
|
-
|
|
102
86
|
callback && defer(callback, null, sessions);
|
|
103
87
|
};
|
|
88
|
+
|
|
104
89
|
/**
|
|
105
90
|
* Clear all sessions.
|
|
106
91
|
*
|
|
@@ -108,11 +93,11 @@ MemoryStore.prototype.all = function all(callback) {
|
|
|
108
93
|
* @public
|
|
109
94
|
*/
|
|
110
95
|
|
|
111
|
-
|
|
112
96
|
MemoryStore.prototype.clear = function clear(callback) {
|
|
113
97
|
this.sessions = (0, _create.default)(null);
|
|
114
98
|
callback && defer(callback);
|
|
115
99
|
};
|
|
100
|
+
|
|
116
101
|
/**
|
|
117
102
|
* Destroy the session associated with the given session ID.
|
|
118
103
|
*
|
|
@@ -120,11 +105,11 @@ MemoryStore.prototype.clear = function clear(callback) {
|
|
|
120
105
|
* @public
|
|
121
106
|
*/
|
|
122
107
|
|
|
123
|
-
|
|
124
108
|
MemoryStore.prototype.destroy = function destroy(sessionId, callback) {
|
|
125
109
|
delete this.sessions[sessionId];
|
|
126
110
|
callback && defer(callback);
|
|
127
111
|
};
|
|
112
|
+
|
|
128
113
|
/**
|
|
129
114
|
* Fetch session by the given session ID.
|
|
130
115
|
*
|
|
@@ -133,10 +118,10 @@ MemoryStore.prototype.destroy = function destroy(sessionId, callback) {
|
|
|
133
118
|
* @public
|
|
134
119
|
*/
|
|
135
120
|
|
|
136
|
-
|
|
137
121
|
MemoryStore.prototype.get = function get(sessionId, callback) {
|
|
138
122
|
defer(callback, null, getSession.call(this, sessionId));
|
|
139
123
|
};
|
|
124
|
+
|
|
140
125
|
/**
|
|
141
126
|
* Commit the given session associated with the given sessionId to the store.
|
|
142
127
|
*
|
|
@@ -153,18 +138,17 @@ MemoryStore.prototype.get = function get(sessionId, callback) {
|
|
|
153
138
|
* @public
|
|
154
139
|
*/
|
|
155
140
|
|
|
156
|
-
|
|
157
141
|
MemoryStore.prototype.length = function length(callback) {
|
|
158
142
|
this.all(function (err, sessions) {
|
|
159
143
|
if (err) return callback(err);
|
|
160
144
|
callback(null, (0, _keys.default)(sessions).length);
|
|
161
145
|
});
|
|
162
146
|
};
|
|
163
|
-
|
|
164
147
|
MemoryStore.prototype.set = function set(sessionId, session, callback) {
|
|
165
148
|
this.sessions[sessionId] = session;
|
|
166
149
|
callback && defer(callback);
|
|
167
150
|
};
|
|
151
|
+
|
|
168
152
|
/**
|
|
169
153
|
* Touch the given session object associated with the given session ID.
|
|
170
154
|
*
|
|
@@ -174,38 +158,33 @@ MemoryStore.prototype.set = function set(sessionId, session, callback) {
|
|
|
174
158
|
* @public
|
|
175
159
|
*/
|
|
176
160
|
|
|
177
|
-
|
|
178
161
|
MemoryStore.prototype.touch = function touch(sessionId, session, callback) {
|
|
179
162
|
var currentSession = getSession.call(this, sessionId);
|
|
180
|
-
|
|
181
163
|
if (currentSession) {
|
|
182
164
|
// update expiration
|
|
183
165
|
currentSession.cookie = session.cookie;
|
|
184
166
|
this.sessions[sessionId] = currentSession;
|
|
185
167
|
}
|
|
186
|
-
|
|
187
168
|
callback && defer(callback);
|
|
188
169
|
};
|
|
170
|
+
|
|
189
171
|
/**
|
|
190
172
|
* Get session from the store.
|
|
191
173
|
* @private
|
|
192
174
|
*/
|
|
193
175
|
|
|
194
|
-
|
|
195
176
|
function getSession(sessionId) {
|
|
196
177
|
var sess = this.sessions[sessionId];
|
|
197
|
-
|
|
198
178
|
if (!sess) {
|
|
199
179
|
return;
|
|
200
180
|
}
|
|
181
|
+
var expires = typeof sess.cookie.expires === 'string' ? new Date(sess.cookie.expires) : sess.cookie.expires;
|
|
201
182
|
|
|
202
|
-
|
|
203
|
-
|
|
183
|
+
// destroy expired session
|
|
204
184
|
if (expires && expires <= (0, _now.default)()) {
|
|
205
185
|
delete this.sessions[sessionId];
|
|
206
186
|
return;
|
|
207
187
|
}
|
|
208
|
-
|
|
209
188
|
return sess;
|
|
210
189
|
}
|
|
211
190
|
//# sourceMappingURL=memory-store.js.map
|
package/dist/memory-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defer","fn","process","nextTick","bind","apply","arguments","MemoryStore","Store","call","sessions","util","inherits","prototype","all","callback","sessionIds","i","length","sessionId","session","getSession","clear","destroy","get","err","set","touch","currentSession","cookie","sess","expires","Date"],"sources":["memory-store.js"],"sourcesContent":["/*!\n * Almost a direct copy of express-session/sessions/memory.js, except the JSON\n * serialization/deserialization has been removed.\n * https://raw.githubusercontent.com/expressjs/session/master/session/memory.js\n * @ignore\n */\n\n/*!\n * express-session\n * Copyright(c) 2010 Sencha Inc.\n * Copyright(c) 2011 TJ Holowaychuk\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n// Disable eslint since this is a very lightly modified copy of the built-in\n// MemoryStore\n/* eslint-disable */\n\n/**\n * Module dependencies.\n * @private\n */\n\nimport Store from 'express-session/session/store';\nimport util from 'util';\n\n/**\n * Shim setImmediate for node.js < 0.10\n * @private\n */\n\n/* istanbul ignore next */\nvar defer
|
|
1
|
+
{"version":3,"names":["_store","_interopRequireDefault","require","_util","defer","_setImmediate2","default","fn","process","nextTick","bind","apply","arguments","_default","MemoryStore","exports","Store","call","sessions","_create","util","inherits","prototype","all","callback","sessionIds","_keys","i","length","sessionId","session","getSession","clear","destroy","get","err","set","touch","currentSession","cookie","sess","expires","Date","_now"],"sources":["memory-store.js"],"sourcesContent":["/*!\n * Almost a direct copy of express-session/sessions/memory.js, except the JSON\n * serialization/deserialization has been removed.\n * https://raw.githubusercontent.com/expressjs/session/master/session/memory.js\n * @ignore\n */\n\n/*!\n * express-session\n * Copyright(c) 2010 Sencha Inc.\n * Copyright(c) 2011 TJ Holowaychuk\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n// Disable eslint since this is a very lightly modified copy of the built-in\n// MemoryStore\n/* eslint-disable */\n\n/**\n * Module dependencies.\n * @private\n */\n\nimport Store from 'express-session/session/store';\nimport util from 'util';\n\n/**\n * Shim setImmediate for node.js < 0.10\n * @private\n */\n\n/* istanbul ignore next */\nvar defer =\n typeof setImmediate === 'function'\n ? setImmediate\n : function (fn) {\n process.nextTick(fn.bind.apply(fn, arguments));\n };\n\n/**\n * Module exports.\n */\n\nexport default MemoryStore;\n\n/**\n * A session store in memory.\n * @public\n */\n\nfunction MemoryStore() {\n Store.call(this);\n this.sessions = Object.create(null);\n}\n\n/**\n * Inherit from Store.\n */\n\nutil.inherits(MemoryStore, Store);\n\n/**\n * Get all active sessions.\n *\n * @param {function} callback\n * @public\n */\n\nMemoryStore.prototype.all = function all(callback) {\n var sessionIds = Object.keys(this.sessions);\n var sessions = Object.create(null);\n\n for (var i = 0; i < sessionIds.length; i += 1) {\n var sessionId = sessionIds[i];\n var session = getSession.call(this, sessionId);\n\n if (session) {\n sessions[sessionId] = session;\n }\n }\n\n callback && defer(callback, null, sessions);\n};\n\n/**\n * Clear all sessions.\n *\n * @param {function} callback\n * @public\n */\n\nMemoryStore.prototype.clear = function clear(callback) {\n this.sessions = Object.create(null);\n callback && defer(callback);\n};\n\n/**\n * Destroy the session associated with the given session ID.\n *\n * @param {string} sessionId\n * @public\n */\n\nMemoryStore.prototype.destroy = function destroy(sessionId, callback) {\n delete this.sessions[sessionId];\n callback && defer(callback);\n};\n\n/**\n * Fetch session by the given session ID.\n *\n * @param {string} sessionId\n * @param {function} callback\n * @public\n */\n\nMemoryStore.prototype.get = function get(sessionId, callback) {\n defer(callback, null, getSession.call(this, sessionId));\n};\n\n/**\n * Commit the given session associated with the given sessionId to the store.\n *\n * @param {string} sessionId\n * @param {object} session\n * @param {function} callback\n * @public\n */\n\n/**\n * Get number of active sessions.\n *\n * @param {function} callback\n * @public\n */\n\nMemoryStore.prototype.length = function length(callback) {\n this.all(function (err, sessions) {\n if (err) return callback(err);\n callback(null, Object.keys(sessions).length);\n });\n};\n\nMemoryStore.prototype.set = function set(sessionId, session, callback) {\n this.sessions[sessionId] = session;\n callback && defer(callback);\n};\n\n/**\n * Touch the given session object associated with the given session ID.\n *\n * @param {string} sessionId\n * @param {object} session\n * @param {function} callback\n * @public\n */\n\nMemoryStore.prototype.touch = function touch(sessionId, session, callback) {\n var currentSession = getSession.call(this, sessionId);\n\n if (currentSession) {\n // update expiration\n currentSession.cookie = session.cookie;\n this.sessions[sessionId] = currentSession;\n }\n\n callback && defer(callback);\n};\n\n/**\n * Get session from the store.\n * @private\n */\n\nfunction getSession(sessionId) {\n var sess = this.sessions[sessionId];\n\n if (!sess) {\n return;\n }\n\n var expires =\n typeof sess.cookie.expires === 'string' ? new Date(sess.cookie.expires) : sess.cookie.expires;\n\n // destroy expired session\n if (expires && expires <= Date.now()) {\n delete this.sessions[sessionId];\n return;\n }\n\n return sess;\n}\n"],"mappings":"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"}
|
package/dist/session.js
CHANGED
|
@@ -1,48 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
|
|
14
|
-
|
|
15
10
|
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
16
|
-
|
|
17
11
|
var _fs = _interopRequireDefault(require("fs"));
|
|
18
|
-
|
|
19
12
|
var _util = _interopRequireDefault(require("util"));
|
|
20
|
-
|
|
21
13
|
var _bodyParser = _interopRequireDefault(require("body-parser"));
|
|
22
|
-
|
|
23
14
|
var _express = _interopRequireDefault(require("express"));
|
|
24
|
-
|
|
25
15
|
var _expressValidator = _interopRequireDefault(require("express-validator"));
|
|
26
|
-
|
|
27
16
|
var _expressSession = _interopRequireDefault(require("express-session"));
|
|
28
|
-
|
|
29
17
|
var _webex = _interopRequireDefault(require("./webex"));
|
|
30
|
-
|
|
31
18
|
var _memoryStore = _interopRequireDefault(require("./memory-store"));
|
|
32
|
-
|
|
33
19
|
/*!
|
|
34
20
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
35
21
|
*/
|
|
36
22
|
|
|
37
23
|
/* eslint-disable camelcase */
|
|
38
|
-
|
|
39
24
|
/* eslint-disable no-console */
|
|
40
25
|
// express induces more callbacks than usual
|
|
41
|
-
|
|
42
26
|
/* eslint-disable max-nested-callbacks */
|
|
27
|
+
|
|
43
28
|
// eslint-disable-next-line
|
|
44
29
|
var router = _express.default.Router();
|
|
45
|
-
|
|
46
30
|
var _default = router;
|
|
47
31
|
exports.default = _default;
|
|
48
32
|
router.use(_bodyParser.default.json());
|
|
@@ -53,28 +37,26 @@ router.use((0, _expressSession.default)({
|
|
|
53
37
|
secret: 'keyboardcat',
|
|
54
38
|
store: new _memoryStore.default()
|
|
55
39
|
}));
|
|
40
|
+
|
|
56
41
|
/**
|
|
57
42
|
* Return the details for a given session
|
|
58
43
|
* @type {Function}
|
|
59
44
|
*/
|
|
60
|
-
|
|
61
45
|
router.get('/session', function (req, res) {
|
|
62
46
|
var webex = req.session.webex;
|
|
63
|
-
|
|
64
47
|
if (!webex) {
|
|
65
48
|
res.status(404).end();
|
|
66
49
|
return;
|
|
67
50
|
}
|
|
68
|
-
|
|
69
51
|
res.status(200).send({
|
|
70
52
|
webex: webex.serialize()
|
|
71
53
|
}).end();
|
|
72
54
|
});
|
|
55
|
+
|
|
73
56
|
/**
|
|
74
57
|
* Initialize a webex instance, connect it to mercury, and set a session cookie.
|
|
75
58
|
* @type {Function}
|
|
76
59
|
*/
|
|
77
|
-
|
|
78
60
|
router.put('/session', function (req, res, next) {
|
|
79
61
|
req.checkBody('clientId').notEmpty();
|
|
80
62
|
req.checkBody('clientSecret').notEmpty();
|
|
@@ -91,7 +73,6 @@ router.put('/session', function (req, res, next) {
|
|
|
91
73
|
res.status(400).send("".concat(result.array()[0].param, " is missing"));
|
|
92
74
|
return;
|
|
93
75
|
}
|
|
94
|
-
|
|
95
76
|
var webex = new _webex.default({
|
|
96
77
|
credentials: req.body.user.token,
|
|
97
78
|
config: {
|
|
@@ -114,27 +95,24 @@ router.put('/session', function (req, res, next) {
|
|
|
114
95
|
});
|
|
115
96
|
});
|
|
116
97
|
});
|
|
98
|
+
|
|
117
99
|
/**
|
|
118
100
|
* Disconnect a webex instance and unregister its device
|
|
119
101
|
*/
|
|
120
|
-
|
|
121
102
|
router.delete('/session', function (req, res, next) {
|
|
122
103
|
var webex = req.session.webex;
|
|
123
|
-
|
|
124
104
|
if (!webex) {
|
|
125
105
|
res.status(404).send({
|
|
126
106
|
err: 'no webex instance found for session'
|
|
127
107
|
}).end();
|
|
128
108
|
return;
|
|
129
109
|
}
|
|
130
|
-
|
|
131
110
|
webex.internal.mercury.disconnect().then(function () {
|
|
132
111
|
req.session.destroy(function (err) {
|
|
133
112
|
if (err) {
|
|
134
113
|
next(err);
|
|
135
114
|
return;
|
|
136
115
|
}
|
|
137
|
-
|
|
138
116
|
res.status(204).end();
|
|
139
117
|
});
|
|
140
118
|
}).catch(function (err) {
|
|
@@ -143,7 +121,6 @@ router.delete('/session', function (req, res, next) {
|
|
|
143
121
|
next(err2);
|
|
144
122
|
return;
|
|
145
123
|
}
|
|
146
|
-
|
|
147
124
|
next(err);
|
|
148
125
|
});
|
|
149
126
|
});
|
|
@@ -151,7 +128,6 @@ router.delete('/session', function (req, res, next) {
|
|
|
151
128
|
router.post('/session/invoke/internal/conversation/share', function (req, res) {
|
|
152
129
|
console.info('invoke conversation share called');
|
|
153
130
|
var webex = req.session.webex;
|
|
154
|
-
|
|
155
131
|
if (!webex) {
|
|
156
132
|
console.info('invoke: No session found - did you forget to hit /session?');
|
|
157
133
|
res.status(404).send({
|
|
@@ -159,12 +135,10 @@ router.post('/session/invoke/internal/conversation/share', function (req, res) {
|
|
|
159
135
|
}).end();
|
|
160
136
|
return;
|
|
161
137
|
}
|
|
162
|
-
|
|
163
138
|
var share = webex.internal.conversation.makeShare(req.body[0]);
|
|
164
139
|
req.body[1].files.forEach(function (fileJson) {
|
|
165
140
|
var file = _fs.default.readFileSync(fileJson.path); // eslint-disable-line no-sync
|
|
166
141
|
|
|
167
|
-
|
|
168
142
|
file.name = fileJson.displayName;
|
|
169
143
|
share.add(file);
|
|
170
144
|
});
|
|
@@ -181,14 +155,13 @@ router.post('/session/invoke/internal/conversation/share', function (req, res) {
|
|
|
181
155
|
}).end();
|
|
182
156
|
});
|
|
183
157
|
});
|
|
158
|
+
|
|
184
159
|
/**
|
|
185
160
|
* Invoke an sdk method.
|
|
186
161
|
*/
|
|
187
|
-
|
|
188
162
|
router.post(/^\/session\/invoke\/.*/, function (req, res) {
|
|
189
163
|
console.info('invoke called');
|
|
190
164
|
var webex = req.session.webex;
|
|
191
|
-
|
|
192
165
|
if (!webex) {
|
|
193
166
|
console.info('invoke: No session found - did you forget to hit /session?');
|
|
194
167
|
res.status(404).send({
|
|
@@ -196,7 +169,6 @@ router.post(/^\/session\/invoke\/.*/, function (req, res) {
|
|
|
196
169
|
}).end();
|
|
197
170
|
return;
|
|
198
171
|
}
|
|
199
|
-
|
|
200
172
|
var invokePath = req.url.substr(req.url.indexOf('invoke') + 7);
|
|
201
173
|
var keypath = invokePath.split('/');
|
|
202
174
|
var method = (0, _get2.default)(webex, keypath.join('.'));
|
|
@@ -204,11 +176,9 @@ router.post(/^\/session\/invoke\/.*/, function (req, res) {
|
|
|
204
176
|
var methodName = keypath.pop();
|
|
205
177
|
console.info(222, methodName);
|
|
206
178
|
var context = (0, _get2.default)(webex, keypath.join('.'));
|
|
207
|
-
|
|
208
179
|
if (!context) {
|
|
209
180
|
context = webex;
|
|
210
181
|
}
|
|
211
|
-
|
|
212
182
|
console.info(333, context);
|
|
213
183
|
var label = "webex.".concat(keypath.join('.'), ".").concat(methodName, "()");
|
|
214
184
|
console.info("invoke: invoking \"".concat(label, "\" with arguments\n"), _util.default.inspect(req.body));
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["router","express","Router","use","bodyParser","json","validator","session","resave","saveUninitialized","secret","store","MemoryStore","get","req","res","webex","status","end","send","serialize","put","next","checkBody","notEmpty","getValidationResult","then","result","isEmpty","console","info","array","param","WebexCore","credentials","body","user","token","config","client_id","clientId","client_secret","clientSecret","redirect_uri","redirectUri","scope","internal","mercury","connect","catch","err","error","delete","disconnect","destroy","err2","post","message","share","conversation","makeShare","files","forEach","fileJson","file","fs","readFileSync","path","name","displayName","add","util","inspect","reason","log","toString","upstreamStatusCode","statusCode","upstreamResponse","invokePath","url","substr","indexOf","keypath","split","method","join","methodName","pop","context","label"],"sources":["session.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport fs from 'fs';\nimport util from 'util';\n\nimport bodyParser from 'body-parser';\nimport express from 'express';\nimport validator from 'express-validator';\nimport session from 'express-session';\nimport {get} from 'lodash';\n\nimport WebexCore from './webex';\nimport MemoryStore from './memory-store';\n\n\n/* eslint-disable camelcase */\n/* eslint-disable no-console */\n// express induces more callbacks than usual\n/* eslint-disable max-nested-callbacks */\n\n// eslint-disable-next-line\nconst router = express.Router();\n\nexport default router;\n\nrouter.use(bodyParser.json());\nrouter.use(validator());\nrouter.use(session({\n resave: true,\n saveUninitialized: true,\n secret: 'keyboardcat',\n store: new MemoryStore()\n}));\n\n/**\n * Return the details for a given session\n * @type {Function}\n */\nrouter.get('/session', (req, res) => {\n const {webex} = req.session;\n\n if (!webex) {\n res\n .status(404)\n .end();\n\n return;\n }\n\n res\n .status(200)\n .send({\n webex: webex.serialize()\n })\n .end();\n});\n\n/**\n * Initialize a webex instance, connect it to mercury, and set a session cookie.\n * @type {Function}\n */\nrouter.put('/session', (req, res, next) => {\n req.checkBody('clientId').notEmpty();\n req.checkBody('clientSecret').notEmpty();\n req.checkBody('redirectUri').notEmpty();\n req.checkBody('scope').notEmpty();\n req.checkBody('user').notEmpty();\n req.checkBody('user.token').notEmpty();\n req.checkBody('user.token.access_token').notEmpty();\n req.checkBody('user.token.token_type').notEmpty();\n req.checkBody('user.token.expires_in').notEmpty();\n\n req.getValidationResult()\n .then((result) => {\n if (!result.isEmpty()) {\n console.info(result.array());\n res\n .status(400)\n .send(`${result.array()[0].param} is missing`);\n\n return;\n }\n const webex = new WebexCore({\n credentials: req.body.user.token,\n config: {\n credentials: {\n client_id: req.body.clientId,\n client_secret: req.body.clientSecret,\n redirect_uri: req.body.redirectUri,\n scope: req.body.scope\n }\n }\n });\n\n req.session.webex = webex;\n\n webex.internal.mercury.connect()\n .then(() => res\n .status(200)\n .send({webex})\n .end())\n .catch((err) => {\n console.error(err);\n next(err);\n });\n });\n});\n\n/**\n * Disconnect a webex instance and unregister its device\n */\nrouter.delete('/session', (req, res, next) => {\n const {webex} = req.session;\n\n if (!webex) {\n res\n .status(404)\n .send({\n err: 'no webex instance found for session'\n })\n .end();\n\n return;\n }\n\n webex.internal.mercury.disconnect()\n .then(() => {\n req.session\n .destroy((err) => {\n if (err) {\n next(err);\n\n return;\n }\n\n res\n .status(204)\n .end();\n });\n })\n .catch((err) => {\n req.session\n .destroy((err2) => {\n if (err2) {\n next(err2);\n\n return;\n }\n next(err);\n });\n });\n});\n\nrouter.post('/session/invoke/internal/conversation/share', (req, res) => {\n console.info('invoke conversation share called');\n const {webex} = req.session;\n\n if (!webex) {\n console.info('invoke: No session found - did you forget to hit /session?');\n res\n .status(404)\n .send({\n message: 'No session found - did you forget to hit /session?'\n })\n .end();\n\n return;\n }\n\n const share = webex.internal.conversation.makeShare(req.body[0]);\n\n req.body[1].files.forEach((fileJson) => {\n const file = fs.readFileSync(fileJson.path); // eslint-disable-line no-sync\n\n file.name = fileJson.displayName;\n share.add(file);\n });\n\n console.info('invoke: invoking \"conversation.share\" with arguments\\n', util.inspect(req.body));\n webex.internal.conversation.share(req.body[0], share)\n .then((result) => {\n res.status(200).send(result).end();\n })\n .catch((reason) => {\n console.log(reason);\n res.status(400).send({\n message: 'An error occured while processing your request',\n error: reason.toString(),\n upstreamStatusCode: reason.statusCode,\n upstreamResponse: reason.body\n }).end();\n });\n});\n\n/**\n * Invoke an sdk method.\n */\nrouter.post(/^\\/session\\/invoke\\/.*/, (req, res) => {\n console.info('invoke called');\n const {webex} = req.session;\n\n if (!webex) {\n console.info('invoke: No session found - did you forget to hit /session?');\n res\n .status(404)\n .send({\n message: 'No session found - did you forget to hit /session?'\n })\n .end();\n\n return;\n }\n\n const invokePath = req.url.substr(req.url.indexOf('invoke') + 7);\n const keypath = invokePath.split('/');\n\n const method = get(webex, keypath.join('.'));\n\n console.info(111, method, keypath);\n const methodName = keypath.pop();\n\n console.info(222, methodName);\n\n let context = get(webex, keypath.join('.'));\n\n if (!context) {\n context = webex;\n }\n\n console.info(333, context);\n\n const label = `webex.${keypath.join('.')}.${methodName}()`;\n\n console.info(`invoke: invoking \"${label}\" with arguments\\n`, util.inspect(req.body));\n Reflect.apply(method, context, req.body)\n .then((result) => {\n console.info(`invoke: successfully invoked \"${label}\"`);\n res\n .status(200)\n .send(result)\n .end();\n })\n .catch((reason) => {\n console.error({req, err: reason}, `invoke: \"${label}\" failed with error`);\n res\n .status(502)\n .send({\n message: 'An error occured while processing your request',\n error: reason.toString(),\n upstreamStatusCode: reason.statusCode,\n upstreamResponse: reason.body\n })\n .end();\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_fs","_interopRequireDefault","require","_util","_bodyParser","_express","_expressValidator","_expressSession","_webex","_memoryStore","router","express","Router","_default","exports","default","use","bodyParser","json","validator","session","resave","saveUninitialized","secret","store","MemoryStore","get","req","res","webex","status","end","send","serialize","put","next","checkBody","notEmpty","getValidationResult","then","result","isEmpty","console","info","array","concat","param","WebexCore","credentials","body","user","token","config","client_id","clientId","client_secret","clientSecret","redirect_uri","redirectUri","scope","internal","mercury","connect","catch","err","error","delete","disconnect","destroy","err2","post","message","share","conversation","makeShare","files","forEach","fileJson","file","fs","readFileSync","path","name","displayName","add","util","inspect","reason","log","toString","upstreamStatusCode","statusCode","upstreamResponse","invokePath","url","substr","indexOf","keypath","split","method","_get2","join","methodName","pop","context","label","_apply"],"sources":["session.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport fs from 'fs';\nimport util from 'util';\n\nimport bodyParser from 'body-parser';\nimport express from 'express';\nimport validator from 'express-validator';\nimport session from 'express-session';\nimport {get} from 'lodash';\n\nimport WebexCore from './webex';\nimport MemoryStore from './memory-store';\n\n/* eslint-disable camelcase */\n/* eslint-disable no-console */\n// express induces more callbacks than usual\n/* eslint-disable max-nested-callbacks */\n\n// eslint-disable-next-line\nconst router = express.Router();\n\nexport default router;\n\nrouter.use(bodyParser.json());\nrouter.use(validator());\nrouter.use(\n session({\n resave: true,\n saveUninitialized: true,\n secret: 'keyboardcat',\n store: new MemoryStore(),\n })\n);\n\n/**\n * Return the details for a given session\n * @type {Function}\n */\nrouter.get('/session', (req, res) => {\n const {webex} = req.session;\n\n if (!webex) {\n res.status(404).end();\n\n return;\n }\n\n res\n .status(200)\n .send({\n webex: webex.serialize(),\n })\n .end();\n});\n\n/**\n * Initialize a webex instance, connect it to mercury, and set a session cookie.\n * @type {Function}\n */\nrouter.put('/session', (req, res, next) => {\n req.checkBody('clientId').notEmpty();\n req.checkBody('clientSecret').notEmpty();\n req.checkBody('redirectUri').notEmpty();\n req.checkBody('scope').notEmpty();\n req.checkBody('user').notEmpty();\n req.checkBody('user.token').notEmpty();\n req.checkBody('user.token.access_token').notEmpty();\n req.checkBody('user.token.token_type').notEmpty();\n req.checkBody('user.token.expires_in').notEmpty();\n\n req.getValidationResult().then((result) => {\n if (!result.isEmpty()) {\n console.info(result.array());\n res.status(400).send(`${result.array()[0].param} is missing`);\n\n return;\n }\n const webex = new WebexCore({\n credentials: req.body.user.token,\n config: {\n credentials: {\n client_id: req.body.clientId,\n client_secret: req.body.clientSecret,\n redirect_uri: req.body.redirectUri,\n scope: req.body.scope,\n },\n },\n });\n\n req.session.webex = webex;\n\n webex.internal.mercury\n .connect()\n .then(() => res.status(200).send({webex}).end())\n .catch((err) => {\n console.error(err);\n next(err);\n });\n });\n});\n\n/**\n * Disconnect a webex instance and unregister its device\n */\nrouter.delete('/session', (req, res, next) => {\n const {webex} = req.session;\n\n if (!webex) {\n res\n .status(404)\n .send({\n err: 'no webex instance found for session',\n })\n .end();\n\n return;\n }\n\n webex.internal.mercury\n .disconnect()\n .then(() => {\n req.session.destroy((err) => {\n if (err) {\n next(err);\n\n return;\n }\n\n res.status(204).end();\n });\n })\n .catch((err) => {\n req.session.destroy((err2) => {\n if (err2) {\n next(err2);\n\n return;\n }\n next(err);\n });\n });\n});\n\nrouter.post('/session/invoke/internal/conversation/share', (req, res) => {\n console.info('invoke conversation share called');\n const {webex} = req.session;\n\n if (!webex) {\n console.info('invoke: No session found - did you forget to hit /session?');\n res\n .status(404)\n .send({\n message: 'No session found - did you forget to hit /session?',\n })\n .end();\n\n return;\n }\n\n const share = webex.internal.conversation.makeShare(req.body[0]);\n\n req.body[1].files.forEach((fileJson) => {\n const file = fs.readFileSync(fileJson.path); // eslint-disable-line no-sync\n\n file.name = fileJson.displayName;\n share.add(file);\n });\n\n console.info('invoke: invoking \"conversation.share\" with arguments\\n', util.inspect(req.body));\n webex.internal.conversation\n .share(req.body[0], share)\n .then((result) => {\n res.status(200).send(result).end();\n })\n .catch((reason) => {\n console.log(reason);\n res\n .status(400)\n .send({\n message: 'An error occured while processing your request',\n error: reason.toString(),\n upstreamStatusCode: reason.statusCode,\n upstreamResponse: reason.body,\n })\n .end();\n });\n});\n\n/**\n * Invoke an sdk method.\n */\nrouter.post(/^\\/session\\/invoke\\/.*/, (req, res) => {\n console.info('invoke called');\n const {webex} = req.session;\n\n if (!webex) {\n console.info('invoke: No session found - did you forget to hit /session?');\n res\n .status(404)\n .send({\n message: 'No session found - did you forget to hit /session?',\n })\n .end();\n\n return;\n }\n\n const invokePath = req.url.substr(req.url.indexOf('invoke') + 7);\n const keypath = invokePath.split('/');\n\n const method = get(webex, keypath.join('.'));\n\n console.info(111, method, keypath);\n const methodName = keypath.pop();\n\n console.info(222, methodName);\n\n let context = get(webex, keypath.join('.'));\n\n if (!context) {\n context = webex;\n }\n\n console.info(333, context);\n\n const label = `webex.${keypath.join('.')}.${methodName}()`;\n\n console.info(`invoke: invoking \"${label}\" with arguments\\n`, util.inspect(req.body));\n Reflect.apply(method, context, req.body)\n .then((result) => {\n console.info(`invoke: successfully invoked \"${label}\"`);\n res.status(200).send(result).end();\n })\n .catch((reason) => {\n console.error({req, err: reason}, `invoke: \"${label}\" failed with error`);\n res\n .status(502)\n .send({\n message: 'An error occured while processing your request',\n error: reason.toString(),\n upstreamStatusCode: reason.statusCode,\n upstreamResponse: reason.body,\n })\n .end();\n });\n});\n"],"mappings":"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"}
|
package/dist/webex.js
CHANGED
|
@@ -1,51 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
require("@babel/polyfill");
|
|
14
|
-
|
|
15
10
|
require("@webex/plugin-authorization-node");
|
|
16
|
-
|
|
17
11
|
require("@webex/internal-plugin-avatar");
|
|
18
|
-
|
|
19
12
|
require("@webex/internal-plugin-board");
|
|
20
|
-
|
|
21
13
|
require("@webex/internal-plugin-calendar");
|
|
22
|
-
|
|
23
14
|
require("@webex/internal-plugin-conversation");
|
|
24
|
-
|
|
25
15
|
require("@webex/internal-plugin-encryption");
|
|
26
|
-
|
|
27
16
|
require("@webex/internal-plugin-feature");
|
|
28
|
-
|
|
29
17
|
require("@webex/internal-plugin-flag");
|
|
30
|
-
|
|
31
18
|
require("@webex/plugin-logger");
|
|
32
|
-
|
|
33
19
|
require("@webex/internal-plugin-mercury");
|
|
34
|
-
|
|
35
20
|
require("@webex/internal-plugin-metrics");
|
|
36
|
-
|
|
37
21
|
require("@webex/internal-plugin-search");
|
|
38
|
-
|
|
39
22
|
require("@webex/internal-plugin-support");
|
|
40
|
-
|
|
41
23
|
require("@webex/internal-plugin-team");
|
|
42
|
-
|
|
43
24
|
require("@webex/internal-plugin-user");
|
|
44
|
-
|
|
45
25
|
require("@webex/internal-plugin-device");
|
|
46
|
-
|
|
47
26
|
var _webexCore = _interopRequireDefault(require("@webex/webex-core"));
|
|
48
|
-
|
|
49
27
|
/*!
|
|
50
28
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
51
29
|
*/
|