@dereekb/zoom 13.2.2 → 13.3.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/index.cjs.js +1586 -368
- package/index.esm.js +1589 -371
- package/nestjs/index.cjs.js +1527 -397
- package/nestjs/index.esm.js +1528 -398
- package/nestjs/package.json +7 -7
- package/package.json +6 -6
package/nestjs/index.cjs.js
CHANGED
|
@@ -9,95 +9,341 @@ var config = require('@nestjs/config');
|
|
|
9
9
|
var nestjs = require('@dereekb/nestjs');
|
|
10
10
|
var crypto = require('crypto');
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
31
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
32
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function __param(paramIndex, decorator) {
|
|
37
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
41
|
-
var e = new Error(message);
|
|
42
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
12
|
+
function _type_of(obj) {
|
|
13
|
+
"@swc/helpers - typeof";
|
|
14
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
15
|
+
}
|
|
16
|
+
function __decorate(decorators, target, key, desc) {
|
|
17
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
18
|
+
if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
19
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
20
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
21
|
+
}
|
|
22
|
+
function __param(paramIndex, decorator) {
|
|
23
|
+
return function(target, key) {
|
|
24
|
+
decorator(target, key, paramIndex);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
28
|
+
var e = new Error(message);
|
|
29
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
43
30
|
};
|
|
44
31
|
|
|
32
|
+
function _class_call_check$8(instance, Constructor) {
|
|
33
|
+
if (!(instance instanceof Constructor)) {
|
|
34
|
+
throw new TypeError("Cannot call a class as a function");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function _defineProperties$6(target, props) {
|
|
38
|
+
for(var i = 0; i < props.length; i++){
|
|
39
|
+
var descriptor = props[i];
|
|
40
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
41
|
+
descriptor.configurable = true;
|
|
42
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
43
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function _create_class$6(Constructor, protoProps, staticProps) {
|
|
47
|
+
if (staticProps) _defineProperties$6(Constructor, staticProps);
|
|
48
|
+
return Constructor;
|
|
49
|
+
}
|
|
50
|
+
function _define_property$8(obj, key, value) {
|
|
51
|
+
if (key in obj) {
|
|
52
|
+
Object.defineProperty(obj, key, {
|
|
53
|
+
value: value,
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true,
|
|
56
|
+
writable: true
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
obj[key] = value;
|
|
60
|
+
}
|
|
61
|
+
return obj;
|
|
62
|
+
}
|
|
45
63
|
/**
|
|
46
64
|
* Configuration for ZoomService
|
|
47
|
-
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
*/ var ZoomOAuthServiceConfig = /*#__PURE__*/ function() {
|
|
66
|
+
function ZoomOAuthServiceConfig() {
|
|
67
|
+
_class_call_check$8(this, ZoomOAuthServiceConfig);
|
|
68
|
+
_define_property$8(this, "zoomOAuth", void 0);
|
|
69
|
+
_define_property$8(this, "factoryConfig", void 0);
|
|
70
|
+
}
|
|
71
|
+
_create_class$6(ZoomOAuthServiceConfig, null, [
|
|
72
|
+
{
|
|
73
|
+
key: "assertValidConfig",
|
|
74
|
+
value: function assertValidConfig(config) {
|
|
75
|
+
var zoomOAuth = config.zoomOAuth;
|
|
76
|
+
if (!zoomOAuth) {
|
|
77
|
+
throw new Error('ZoomOAuthServiceConfig.zoomOAuth is required');
|
|
78
|
+
} else {
|
|
79
|
+
if (!zoomOAuth.accountId) {
|
|
80
|
+
throw new Error('ZoomOAuthServiceConfig.zoomOAuth.accountId is required');
|
|
81
|
+
} else if (!zoomOAuth.clientSecret) {
|
|
82
|
+
throw new Error('ZoomOAuthServiceConfig.zoomOAuth.clientSecret is required');
|
|
83
|
+
} else if (!zoomOAuth.clientId) {
|
|
84
|
+
throw new Error('ZoomOAuthServiceConfig.zoomOAuth.clientId is required');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
65
87
|
}
|
|
66
88
|
}
|
|
67
|
-
|
|
68
|
-
|
|
89
|
+
]);
|
|
90
|
+
return ZoomOAuthServiceConfig;
|
|
91
|
+
}();
|
|
69
92
|
function readZoomOAuthServiceConfigFromConfigService(configService, prefix) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
93
|
+
var prefixString = util.characterPrefixSuffixInstance({
|
|
94
|
+
suffix: '_',
|
|
95
|
+
suffixEmptyString: false
|
|
96
|
+
}).prefixSuffixString(prefix !== null && prefix !== void 0 ? prefix : '');
|
|
97
|
+
var accountIdKey = "".concat(prefixString, "ZOOM_ACCOUNT_ID");
|
|
98
|
+
var clientIdKey = "".concat(prefixString, "ZOOM_CLIENT_ID");
|
|
99
|
+
var clientSecretKey = "".concat(prefixString, "ZOOM_CLIENT_SECRET");
|
|
100
|
+
var accountId = configService.getOrThrow(accountIdKey);
|
|
101
|
+
var clientId = configService.getOrThrow(clientIdKey);
|
|
102
|
+
var clientSecret = configService.getOrThrow(clientSecretKey);
|
|
103
|
+
var config = {
|
|
78
104
|
zoomOAuth: {
|
|
79
105
|
authEntityType: 'account',
|
|
80
|
-
accountId,
|
|
81
|
-
clientId,
|
|
82
|
-
clientSecret
|
|
106
|
+
accountId: accountId,
|
|
107
|
+
clientId: clientId,
|
|
108
|
+
clientSecret: clientSecret
|
|
83
109
|
}
|
|
84
110
|
};
|
|
85
111
|
ZoomOAuthServiceConfig.assertValidConfig(config);
|
|
86
112
|
return config;
|
|
87
113
|
}
|
|
88
114
|
|
|
115
|
+
function _array_like_to_array$2(arr, len) {
|
|
116
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
117
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
118
|
+
return arr2;
|
|
119
|
+
}
|
|
120
|
+
function _array_with_holes(arr) {
|
|
121
|
+
if (Array.isArray(arr)) return arr;
|
|
122
|
+
}
|
|
123
|
+
function _array_without_holes$2(arr) {
|
|
124
|
+
if (Array.isArray(arr)) return _array_like_to_array$2(arr);
|
|
125
|
+
}
|
|
126
|
+
function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
|
|
127
|
+
try {
|
|
128
|
+
var info = gen[key](arg);
|
|
129
|
+
var value = info.value;
|
|
130
|
+
} catch (error) {
|
|
131
|
+
reject(error);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (info.done) {
|
|
135
|
+
resolve(value);
|
|
136
|
+
} else {
|
|
137
|
+
Promise.resolve(value).then(_next, _throw);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function _async_to_generator$2(fn) {
|
|
141
|
+
return function() {
|
|
142
|
+
var self = this, args = arguments;
|
|
143
|
+
return new Promise(function(resolve, reject) {
|
|
144
|
+
var gen = fn.apply(self, args);
|
|
145
|
+
function _next(value) {
|
|
146
|
+
asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
|
|
147
|
+
}
|
|
148
|
+
function _throw(err) {
|
|
149
|
+
asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
|
|
150
|
+
}
|
|
151
|
+
_next(undefined);
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function _class_call_check$7(instance, Constructor) {
|
|
156
|
+
if (!(instance instanceof Constructor)) {
|
|
157
|
+
throw new TypeError("Cannot call a class as a function");
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function _define_property$7(obj, key, value) {
|
|
161
|
+
if (key in obj) {
|
|
162
|
+
Object.defineProperty(obj, key, {
|
|
163
|
+
value: value,
|
|
164
|
+
enumerable: true,
|
|
165
|
+
configurable: true,
|
|
166
|
+
writable: true
|
|
167
|
+
});
|
|
168
|
+
} else {
|
|
169
|
+
obj[key] = value;
|
|
170
|
+
}
|
|
171
|
+
return obj;
|
|
172
|
+
}
|
|
173
|
+
function _iterable_to_array$2(iter) {
|
|
174
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
175
|
+
}
|
|
176
|
+
function _iterable_to_array_limit(arr, i) {
|
|
177
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
178
|
+
if (_i == null) return;
|
|
179
|
+
var _arr = [];
|
|
180
|
+
var _n = true;
|
|
181
|
+
var _d = false;
|
|
182
|
+
var _s, _e;
|
|
183
|
+
try {
|
|
184
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
185
|
+
_arr.push(_s.value);
|
|
186
|
+
if (i && _arr.length === i) break;
|
|
187
|
+
}
|
|
188
|
+
} catch (err) {
|
|
189
|
+
_d = true;
|
|
190
|
+
_e = err;
|
|
191
|
+
} finally{
|
|
192
|
+
try {
|
|
193
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
194
|
+
} finally{
|
|
195
|
+
if (_d) throw _e;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return _arr;
|
|
199
|
+
}
|
|
200
|
+
function _non_iterable_rest() {
|
|
201
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
202
|
+
}
|
|
203
|
+
function _non_iterable_spread$2() {
|
|
204
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
205
|
+
}
|
|
206
|
+
function _object_spread$3(target) {
|
|
207
|
+
for(var i = 1; i < arguments.length; i++){
|
|
208
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
209
|
+
var ownKeys = Object.keys(source);
|
|
210
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
211
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
212
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
213
|
+
}));
|
|
214
|
+
}
|
|
215
|
+
ownKeys.forEach(function(key) {
|
|
216
|
+
_define_property$7(target, key, source[key]);
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
return target;
|
|
220
|
+
}
|
|
221
|
+
function _sliced_to_array(arr, i) {
|
|
222
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array$2(arr, i) || _non_iterable_rest();
|
|
223
|
+
}
|
|
224
|
+
function _to_consumable_array$2(arr) {
|
|
225
|
+
return _array_without_holes$2(arr) || _iterable_to_array$2(arr) || _unsupported_iterable_to_array$2(arr) || _non_iterable_spread$2();
|
|
226
|
+
}
|
|
227
|
+
function _unsupported_iterable_to_array$2(o, minLen) {
|
|
228
|
+
if (!o) return;
|
|
229
|
+
if (typeof o === "string") return _array_like_to_array$2(o, minLen);
|
|
230
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
231
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
232
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
233
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
|
|
234
|
+
}
|
|
235
|
+
function _ts_generator$2(thisArg, body) {
|
|
236
|
+
var f, y, t, _ = {
|
|
237
|
+
label: 0,
|
|
238
|
+
sent: function() {
|
|
239
|
+
if (t[0] & 1) throw t[1];
|
|
240
|
+
return t[1];
|
|
241
|
+
},
|
|
242
|
+
trys: [],
|
|
243
|
+
ops: []
|
|
244
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
245
|
+
return d(g, "next", {
|
|
246
|
+
value: verb(0)
|
|
247
|
+
}), d(g, "throw", {
|
|
248
|
+
value: verb(1)
|
|
249
|
+
}), d(g, "return", {
|
|
250
|
+
value: verb(2)
|
|
251
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
252
|
+
value: function() {
|
|
253
|
+
return this;
|
|
254
|
+
}
|
|
255
|
+
}), g;
|
|
256
|
+
function verb(n) {
|
|
257
|
+
return function(v) {
|
|
258
|
+
return step([
|
|
259
|
+
n,
|
|
260
|
+
v
|
|
261
|
+
]);
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function step(op) {
|
|
265
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
266
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
267
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
268
|
+
if (y = 0, t) op = [
|
|
269
|
+
op[0] & 2,
|
|
270
|
+
t.value
|
|
271
|
+
];
|
|
272
|
+
switch(op[0]){
|
|
273
|
+
case 0:
|
|
274
|
+
case 1:
|
|
275
|
+
t = op;
|
|
276
|
+
break;
|
|
277
|
+
case 4:
|
|
278
|
+
_.label++;
|
|
279
|
+
return {
|
|
280
|
+
value: op[1],
|
|
281
|
+
done: false
|
|
282
|
+
};
|
|
283
|
+
case 5:
|
|
284
|
+
_.label++;
|
|
285
|
+
y = op[1];
|
|
286
|
+
op = [
|
|
287
|
+
0
|
|
288
|
+
];
|
|
289
|
+
continue;
|
|
290
|
+
case 7:
|
|
291
|
+
op = _.ops.pop();
|
|
292
|
+
_.trys.pop();
|
|
293
|
+
continue;
|
|
294
|
+
default:
|
|
295
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
296
|
+
_ = 0;
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
300
|
+
_.label = op[1];
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
304
|
+
_.label = t[1];
|
|
305
|
+
t = op;
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
if (t && _.label < t[2]) {
|
|
309
|
+
_.label = t[2];
|
|
310
|
+
_.ops.push(op);
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
if (t[2]) _.ops.pop();
|
|
314
|
+
_.trys.pop();
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
op = body.call(thisArg, _);
|
|
318
|
+
} catch (e) {
|
|
319
|
+
op = [
|
|
320
|
+
6,
|
|
321
|
+
e
|
|
322
|
+
];
|
|
323
|
+
y = 0;
|
|
324
|
+
} finally{
|
|
325
|
+
f = t = 0;
|
|
326
|
+
}
|
|
327
|
+
if (op[0] & 5) throw op[1];
|
|
328
|
+
return {
|
|
329
|
+
value: op[0] ? op[1] : void 0,
|
|
330
|
+
done: true
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
}
|
|
89
334
|
/**
|
|
90
335
|
* Service used for retrieving ZoomAccessTokenCache for Zoom services.
|
|
91
|
-
*/
|
|
92
|
-
|
|
336
|
+
*/ exports.ZoomOAuthAccessTokenCacheService = function ZoomOAuthAccessTokenCacheService() {
|
|
337
|
+
_class_call_check$7(this, ZoomOAuthAccessTokenCacheService);
|
|
93
338
|
};
|
|
94
339
|
exports.ZoomOAuthAccessTokenCacheService = __decorate([
|
|
95
340
|
common.Injectable()
|
|
96
341
|
], exports.ZoomOAuthAccessTokenCacheService);
|
|
97
342
|
function logMergeZoomOAuthAccessTokenCacheServiceErrorFunction(failedUpdates) {
|
|
98
|
-
console.warn(
|
|
99
|
-
failedUpdates.forEach((
|
|
100
|
-
|
|
343
|
+
console.warn("mergeZoomOAuthAccessTokenCacheServices(): failed updating ".concat(failedUpdates.length, " caches."));
|
|
344
|
+
failedUpdates.forEach(function(param, i) {
|
|
345
|
+
var _param = _sliced_to_array(param, 2); _param[0]; var e = _param[1];
|
|
346
|
+
console.warn("Cache update failure ".concat(i + 1, ": - ").concat(e));
|
|
101
347
|
});
|
|
102
348
|
}
|
|
103
349
|
/**
|
|
@@ -108,62 +354,83 @@ function logMergeZoomOAuthAccessTokenCacheServiceErrorFunction(failedUpdates) {
|
|
|
108
354
|
* When updating a cached token, it will update the token across all services.
|
|
109
355
|
*
|
|
110
356
|
* @param servicesToMerge Must include atleast one service. Empty arrays will throw an error.
|
|
111
|
-
*/
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const logErrorFunction = typeof logError === 'function' ? logError : logError !== false ? logMergeZoomOAuthAccessTokenCacheServiceErrorFunction : undefined;
|
|
357
|
+
*/ function mergeZoomOAuthAccessTokenCacheServices(inputServicesToMerge, logError) {
|
|
358
|
+
var allServices = _to_consumable_array$2(inputServicesToMerge);
|
|
359
|
+
var logErrorFunction = typeof logError === 'function' ? logError : logError !== false ? logMergeZoomOAuthAccessTokenCacheServiceErrorFunction : undefined;
|
|
115
360
|
if (allServices.length === 0) {
|
|
116
361
|
throw new Error('mergeZoomOAuthAccessTokenCacheServices() input cannot be empty.');
|
|
117
362
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
promiseFactories: accessCachesForServices.map((x)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
363
|
+
var loadZoomAccessTokenCache = function loadZoomAccessTokenCache(accessCachesForServices) {
|
|
364
|
+
var loadCachedTokenFromFirstService = util.tryWithPromiseFactoriesFunction({
|
|
365
|
+
promiseFactories: accessCachesForServices.map(function(x) {
|
|
366
|
+
return function() {
|
|
367
|
+
return x.loadCachedToken().catch(function() {
|
|
368
|
+
return null;
|
|
369
|
+
}).then(function(x) {
|
|
370
|
+
var result = undefined;
|
|
371
|
+
if (x && !util.isPast(x.expiresAt)) {
|
|
372
|
+
result = x; // only return from cache if it is not expired
|
|
373
|
+
}
|
|
374
|
+
return result;
|
|
375
|
+
});
|
|
376
|
+
};
|
|
377
|
+
}),
|
|
130
378
|
successOnMaybe: false,
|
|
131
379
|
throwErrors: false
|
|
132
380
|
});
|
|
133
|
-
|
|
134
|
-
loadCachedToken: function () {
|
|
381
|
+
var cacheForService = {
|
|
382
|
+
loadCachedToken: function loadCachedToken() {
|
|
135
383
|
return loadCachedTokenFromFirstService();
|
|
136
384
|
},
|
|
137
|
-
updateCachedToken:
|
|
138
|
-
return
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
385
|
+
updateCachedToken: function updateCachedToken(accessToken) {
|
|
386
|
+
return _async_to_generator$2(function() {
|
|
387
|
+
return _ts_generator$2(this, function(_state) {
|
|
388
|
+
return [
|
|
389
|
+
2,
|
|
390
|
+
Promise.allSettled(accessCachesForServices.map(function(x) {
|
|
391
|
+
return x.updateCachedToken(accessToken).then(function() {
|
|
392
|
+
return null;
|
|
393
|
+
}).catch(function(e) {
|
|
394
|
+
return [
|
|
395
|
+
x,
|
|
396
|
+
e
|
|
397
|
+
];
|
|
398
|
+
});
|
|
399
|
+
})).then(function(x) {
|
|
400
|
+
// only find the failures if we're logging
|
|
401
|
+
if (logErrorFunction != null) {
|
|
402
|
+
var failedUpdates = util.filterMaybeArrayValues(x.map(function(y) {
|
|
403
|
+
return y.value;
|
|
404
|
+
}));
|
|
405
|
+
if (failedUpdates.length) {
|
|
406
|
+
logErrorFunction(failedUpdates);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
})
|
|
410
|
+
];
|
|
411
|
+
});
|
|
412
|
+
})();
|
|
152
413
|
}
|
|
153
414
|
};
|
|
154
415
|
return cacheForService;
|
|
155
416
|
};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
417
|
+
var allServiceAccessTokenCaches = allServices.map(function(x) {
|
|
418
|
+
return x.loadZoomAccessTokenCache();
|
|
419
|
+
});
|
|
420
|
+
var allServicesWithCacheForRefreshToken = allServices.filter(function(x) {
|
|
421
|
+
return x.cacheForRefreshToken != null;
|
|
422
|
+
});
|
|
423
|
+
var cacheForRefreshToken = allServiceAccessTokenCaches.length > 0 ? function(refreshToken) {
|
|
424
|
+
var allCaches = allServicesWithCacheForRefreshToken.map(function(x) {
|
|
425
|
+
return x.cacheForRefreshToken(refreshToken);
|
|
426
|
+
});
|
|
427
|
+
return loadZoomAccessTokenCache(allCaches);
|
|
428
|
+
} : undefined;
|
|
429
|
+
var service = {
|
|
430
|
+
loadZoomAccessTokenCache: function loadZoomAccessTokenCache1() {
|
|
431
|
+
return loadZoomAccessTokenCache(allServiceAccessTokenCaches);
|
|
432
|
+
},
|
|
433
|
+
cacheForRefreshToken: cacheForRefreshToken
|
|
167
434
|
};
|
|
168
435
|
return service;
|
|
169
436
|
}
|
|
@@ -172,169 +439,356 @@ function mergeZoomOAuthAccessTokenCacheServices(inputServicesToMerge, logError)
|
|
|
172
439
|
* Creates a ZoomOAuthAccessTokenCacheService that uses in-memory storage.
|
|
173
440
|
*
|
|
174
441
|
* @returns
|
|
175
|
-
*/
|
|
176
|
-
|
|
177
|
-
let token = existingToken;
|
|
442
|
+
*/ function memoryZoomOAuthAccessTokenCacheService(existingToken, logAccessToConsole) {
|
|
443
|
+
var token = existingToken;
|
|
178
444
|
function loadZoomAccessTokenCache() {
|
|
179
|
-
|
|
180
|
-
loadCachedToken:
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
445
|
+
var accessTokenCache = {
|
|
446
|
+
loadCachedToken: function loadCachedToken() {
|
|
447
|
+
return _async_to_generator$2(function() {
|
|
448
|
+
return _ts_generator$2(this, function(_state) {
|
|
449
|
+
if (logAccessToConsole) {
|
|
450
|
+
console.log('retrieving access token from memory: ', {
|
|
451
|
+
token: token
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
return [
|
|
455
|
+
2,
|
|
456
|
+
token
|
|
457
|
+
];
|
|
458
|
+
});
|
|
459
|
+
})();
|
|
185
460
|
},
|
|
186
|
-
updateCachedToken:
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
461
|
+
updateCachedToken: function updateCachedToken(accessToken) {
|
|
462
|
+
return _async_to_generator$2(function() {
|
|
463
|
+
return _ts_generator$2(this, function(_state) {
|
|
464
|
+
token = accessToken;
|
|
465
|
+
if (logAccessToConsole) {
|
|
466
|
+
console.log('updating access token in memory: ', {
|
|
467
|
+
accessToken: accessToken
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
return [
|
|
471
|
+
2
|
|
472
|
+
];
|
|
473
|
+
});
|
|
474
|
+
})();
|
|
191
475
|
}
|
|
192
476
|
};
|
|
193
477
|
return accessTokenCache;
|
|
194
478
|
}
|
|
195
479
|
return {
|
|
196
|
-
loadZoomAccessTokenCache,
|
|
197
|
-
cacheForRefreshToken: ()
|
|
480
|
+
loadZoomAccessTokenCache: loadZoomAccessTokenCache,
|
|
481
|
+
cacheForRefreshToken: function cacheForRefreshToken() {
|
|
482
|
+
return loadZoomAccessTokenCache();
|
|
483
|
+
}
|
|
198
484
|
};
|
|
199
485
|
}
|
|
200
486
|
// MARK: File System Access Token Cache
|
|
201
|
-
|
|
487
|
+
var DEFAULT_FILE_ZOOM_ACCOUNTS_ACCESS_TOKEN_CACHE_SERVICE_PATH = '.tmp/zoom-access-tokens.json';
|
|
202
488
|
/**
|
|
203
489
|
* Creates a ZoomOAuthAccessTokenCacheService that reads and writes the access token to the file system.
|
|
204
490
|
*
|
|
205
491
|
* Useful for testing.
|
|
206
492
|
*
|
|
207
493
|
* @returns
|
|
208
|
-
*/
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
494
|
+
*/ function fileZoomOAuthAccessTokenCacheService() {
|
|
495
|
+
var filename = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : DEFAULT_FILE_ZOOM_ACCOUNTS_ACCESS_TOKEN_CACHE_SERVICE_PATH, useMemoryCache = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
496
|
+
var loadedToken = null;
|
|
497
|
+
function loadTokenFile() {
|
|
498
|
+
return _async_to_generator$2(function() {
|
|
499
|
+
var token, _ref;
|
|
500
|
+
return _ts_generator$2(this, function(_state) {
|
|
501
|
+
switch(_state.label){
|
|
502
|
+
case 0:
|
|
503
|
+
token = undefined;
|
|
504
|
+
if (!!loadedToken) return [
|
|
505
|
+
3,
|
|
506
|
+
2
|
|
507
|
+
];
|
|
508
|
+
return [
|
|
509
|
+
4,
|
|
510
|
+
readTokenFile()
|
|
511
|
+
];
|
|
512
|
+
case 1:
|
|
513
|
+
token = (_ref = _state.sent()) !== null && _ref !== void 0 ? _ref : {};
|
|
514
|
+
return [
|
|
515
|
+
3,
|
|
516
|
+
3
|
|
517
|
+
];
|
|
518
|
+
case 2:
|
|
519
|
+
token = loadedToken;
|
|
520
|
+
_state.label = 3;
|
|
521
|
+
case 3:
|
|
522
|
+
return [
|
|
523
|
+
2,
|
|
524
|
+
token
|
|
525
|
+
];
|
|
526
|
+
}
|
|
527
|
+
});
|
|
528
|
+
})();
|
|
220
529
|
}
|
|
221
530
|
function readTokenFile() {
|
|
222
|
-
return new Promise((resolve)
|
|
223
|
-
fs.mkdirSync(path.dirname(filename), {
|
|
224
|
-
|
|
225
|
-
|
|
531
|
+
return new Promise(function(resolve) {
|
|
532
|
+
fs.mkdirSync(path.dirname(filename), {
|
|
533
|
+
recursive: true
|
|
534
|
+
}); // make the directory first
|
|
535
|
+
fs.readFile(filename, {}, function(x, data) {
|
|
536
|
+
var result = undefined;
|
|
226
537
|
if (!x) {
|
|
227
538
|
try {
|
|
228
539
|
result = JSON.parse(data.toString());
|
|
229
|
-
if (result
|
|
540
|
+
if (result === null || result === void 0 ? void 0 : result.token) {
|
|
230
541
|
result.token.expiresAt = new Date(result.token.expiresAt);
|
|
231
542
|
}
|
|
232
|
-
}
|
|
233
|
-
catch (e) {
|
|
543
|
+
} catch (e) {
|
|
234
544
|
console.error('Failed reading token file: ', e);
|
|
235
545
|
}
|
|
236
546
|
}
|
|
237
547
|
resolve(result);
|
|
238
548
|
});
|
|
239
|
-
}).then((x)
|
|
549
|
+
}).then(function(x) {
|
|
240
550
|
// update loaded tokens
|
|
241
551
|
if (useMemoryCache) {
|
|
242
|
-
loadedToken = {
|
|
243
|
-
...loadedToken,
|
|
244
|
-
...x
|
|
245
|
-
};
|
|
552
|
+
loadedToken = _object_spread$3({}, loadedToken, x);
|
|
246
553
|
}
|
|
247
554
|
return x;
|
|
248
555
|
});
|
|
249
556
|
}
|
|
250
|
-
|
|
251
|
-
return
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
557
|
+
function writeTokenFile(tokens) {
|
|
558
|
+
return _async_to_generator$2(function() {
|
|
559
|
+
return _ts_generator$2(this, function(_state) {
|
|
560
|
+
return [
|
|
561
|
+
2,
|
|
562
|
+
new Promise(function(resolve, reject) {
|
|
563
|
+
fs.writeFile(filename, JSON.stringify(tokens), {}, function(x) {
|
|
564
|
+
if (!x) {
|
|
565
|
+
resolve();
|
|
566
|
+
} else {
|
|
567
|
+
reject(x);
|
|
568
|
+
}
|
|
569
|
+
});
|
|
570
|
+
})
|
|
571
|
+
];
|
|
259
572
|
});
|
|
260
|
-
});
|
|
573
|
+
})();
|
|
261
574
|
}
|
|
262
|
-
|
|
263
|
-
return
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
575
|
+
function deleteTokenFile() {
|
|
576
|
+
return _async_to_generator$2(function() {
|
|
577
|
+
return _ts_generator$2(this, function(_state) {
|
|
578
|
+
return [
|
|
579
|
+
2,
|
|
580
|
+
new Promise(function(resolve, reject) {
|
|
581
|
+
fs.rm(filename, function(x) {
|
|
582
|
+
if (!x) {
|
|
583
|
+
resolve();
|
|
584
|
+
} else {
|
|
585
|
+
reject(x);
|
|
586
|
+
}
|
|
587
|
+
});
|
|
588
|
+
})
|
|
589
|
+
];
|
|
271
590
|
});
|
|
272
|
-
});
|
|
591
|
+
})();
|
|
273
592
|
}
|
|
274
593
|
function loadZoomAccessTokenCache() {
|
|
275
|
-
|
|
276
|
-
loadCachedToken:
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
594
|
+
var accessTokenCache = {
|
|
595
|
+
loadCachedToken: function loadCachedToken() {
|
|
596
|
+
return _async_to_generator$2(function() {
|
|
597
|
+
var tokens, token;
|
|
598
|
+
return _ts_generator$2(this, function(_state) {
|
|
599
|
+
switch(_state.label){
|
|
600
|
+
case 0:
|
|
601
|
+
return [
|
|
602
|
+
4,
|
|
603
|
+
loadTokenFile()
|
|
604
|
+
];
|
|
605
|
+
case 1:
|
|
606
|
+
tokens = _state.sent();
|
|
607
|
+
token = tokens.token;
|
|
608
|
+
// console.log('retrieving access token from file: ', { token });
|
|
609
|
+
return [
|
|
610
|
+
2,
|
|
611
|
+
token
|
|
612
|
+
];
|
|
613
|
+
}
|
|
614
|
+
});
|
|
615
|
+
})();
|
|
281
616
|
},
|
|
282
|
-
updateCachedToken:
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
617
|
+
updateCachedToken: function updateCachedToken(accessToken) {
|
|
618
|
+
return _async_to_generator$2(function() {
|
|
619
|
+
var tokenFile, e;
|
|
620
|
+
return _ts_generator$2(this, function(_state) {
|
|
621
|
+
switch(_state.label){
|
|
622
|
+
case 0:
|
|
623
|
+
return [
|
|
624
|
+
4,
|
|
625
|
+
loadTokenFile()
|
|
626
|
+
];
|
|
627
|
+
case 1:
|
|
628
|
+
tokenFile = _state.sent();
|
|
629
|
+
if (tokenFile) {
|
|
630
|
+
tokenFile.token = accessToken;
|
|
631
|
+
}
|
|
632
|
+
_state.label = 2;
|
|
633
|
+
case 2:
|
|
634
|
+
_state.trys.push([
|
|
635
|
+
2,
|
|
636
|
+
4,
|
|
637
|
+
,
|
|
638
|
+
5
|
|
639
|
+
]);
|
|
640
|
+
return [
|
|
641
|
+
4,
|
|
642
|
+
writeTokenFile(tokenFile)
|
|
643
|
+
];
|
|
644
|
+
case 3:
|
|
645
|
+
_state.sent();
|
|
646
|
+
return [
|
|
647
|
+
3,
|
|
648
|
+
5
|
|
649
|
+
];
|
|
650
|
+
case 4:
|
|
651
|
+
e = _state.sent();
|
|
652
|
+
console.error('Failed updating access token in file: ', e);
|
|
653
|
+
return [
|
|
654
|
+
3,
|
|
655
|
+
5
|
|
656
|
+
];
|
|
657
|
+
case 5:
|
|
658
|
+
return [
|
|
659
|
+
2
|
|
660
|
+
];
|
|
661
|
+
}
|
|
662
|
+
});
|
|
663
|
+
})();
|
|
294
664
|
}
|
|
295
665
|
};
|
|
296
666
|
return accessTokenCache;
|
|
297
667
|
}
|
|
298
668
|
return {
|
|
299
|
-
loadZoomAccessTokenCache,
|
|
300
|
-
readTokenFile,
|
|
301
|
-
writeTokenFile,
|
|
302
|
-
deleteTokenFile
|
|
669
|
+
loadZoomAccessTokenCache: loadZoomAccessTokenCache,
|
|
670
|
+
readTokenFile: readTokenFile,
|
|
671
|
+
writeTokenFile: writeTokenFile,
|
|
672
|
+
deleteTokenFile: deleteTokenFile
|
|
303
673
|
};
|
|
304
674
|
}
|
|
305
675
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
676
|
+
function _class_call_check$6(instance, Constructor) {
|
|
677
|
+
if (!(instance instanceof Constructor)) {
|
|
678
|
+
throw new TypeError("Cannot call a class as a function");
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
function _defineProperties$5(target, props) {
|
|
682
|
+
for(var i = 0; i < props.length; i++){
|
|
683
|
+
var descriptor = props[i];
|
|
684
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
685
|
+
descriptor.configurable = true;
|
|
686
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
687
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
function _create_class$5(Constructor, protoProps, staticProps) {
|
|
691
|
+
if (protoProps) _defineProperties$5(Constructor.prototype, protoProps);
|
|
692
|
+
return Constructor;
|
|
693
|
+
}
|
|
694
|
+
function _define_property$6(obj, key, value) {
|
|
695
|
+
if (key in obj) {
|
|
696
|
+
Object.defineProperty(obj, key, {
|
|
697
|
+
value: value,
|
|
698
|
+
enumerable: true,
|
|
699
|
+
configurable: true,
|
|
700
|
+
writable: true
|
|
320
701
|
});
|
|
702
|
+
} else {
|
|
703
|
+
obj[key] = value;
|
|
321
704
|
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
705
|
+
return obj;
|
|
706
|
+
}
|
|
707
|
+
function _object_spread$2(target) {
|
|
708
|
+
for(var i = 1; i < arguments.length; i++){
|
|
709
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
710
|
+
var ownKeys = Object.keys(source);
|
|
711
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
712
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
713
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
714
|
+
}));
|
|
715
|
+
}
|
|
716
|
+
ownKeys.forEach(function(key) {
|
|
717
|
+
_define_property$6(target, key, source[key]);
|
|
718
|
+
});
|
|
325
719
|
}
|
|
326
|
-
|
|
327
|
-
|
|
720
|
+
return target;
|
|
721
|
+
}
|
|
722
|
+
exports.ZoomOAuthApi = /*#__PURE__*/ function() {
|
|
723
|
+
function ZoomOAuthApi(config, cacheService) {
|
|
724
|
+
_class_call_check$6(this, ZoomOAuthApi);
|
|
725
|
+
var _config_factoryConfig;
|
|
726
|
+
_define_property$6(this, "config", void 0);
|
|
727
|
+
_define_property$6(this, "cacheService", void 0);
|
|
728
|
+
_define_property$6(this, "zoomOAuth", void 0);
|
|
729
|
+
this.config = config;
|
|
730
|
+
this.cacheService = cacheService;
|
|
731
|
+
var accessTokenCache = config.zoomOAuth.accessTokenCache ? config.zoomOAuth.accessTokenCache : cacheService.loadZoomAccessTokenCache();
|
|
732
|
+
this.zoomOAuth = zoom.zoomOAuthFactory((_config_factoryConfig = config.factoryConfig) !== null && _config_factoryConfig !== void 0 ? _config_factoryConfig : {})(_object_spread$2({
|
|
733
|
+
accessTokenCache: accessTokenCache
|
|
734
|
+
}, config.zoomOAuth));
|
|
328
735
|
}
|
|
329
|
-
|
|
736
|
+
_create_class$5(ZoomOAuthApi, [
|
|
737
|
+
{
|
|
738
|
+
key: "oauthContext",
|
|
739
|
+
get: function get() {
|
|
740
|
+
return this.zoomOAuth.oauthContext;
|
|
741
|
+
}
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
key: "serverAccessToken",
|
|
745
|
+
get: // MARK: Accessors
|
|
746
|
+
function get() {
|
|
747
|
+
return zoom.serverAccessToken(this.oauthContext);
|
|
748
|
+
}
|
|
749
|
+
},
|
|
750
|
+
{
|
|
751
|
+
key: "userAccessToken",
|
|
752
|
+
get: function get() {
|
|
753
|
+
return zoom.userAccessToken(this.oauthContext);
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
]);
|
|
757
|
+
return ZoomOAuthApi;
|
|
758
|
+
}();
|
|
330
759
|
exports.ZoomOAuthApi = __decorate([
|
|
331
760
|
common.Injectable(),
|
|
332
761
|
__param(0, common.Inject(ZoomOAuthServiceConfig)),
|
|
333
762
|
__param(1, common.Inject(exports.ZoomOAuthAccessTokenCacheService))
|
|
334
763
|
], exports.ZoomOAuthApi);
|
|
335
764
|
|
|
765
|
+
function _array_like_to_array$1(arr, len) {
|
|
766
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
767
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
768
|
+
return arr2;
|
|
769
|
+
}
|
|
770
|
+
function _array_without_holes$1(arr) {
|
|
771
|
+
if (Array.isArray(arr)) return _array_like_to_array$1(arr);
|
|
772
|
+
}
|
|
773
|
+
function _iterable_to_array$1(iter) {
|
|
774
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
775
|
+
}
|
|
776
|
+
function _non_iterable_spread$1() {
|
|
777
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
778
|
+
}
|
|
779
|
+
function _to_consumable_array$1(arr) {
|
|
780
|
+
return _array_without_holes$1(arr) || _iterable_to_array$1(arr) || _unsupported_iterable_to_array$1(arr) || _non_iterable_spread$1();
|
|
781
|
+
}
|
|
782
|
+
function _unsupported_iterable_to_array$1(o, minLen) {
|
|
783
|
+
if (!o) return;
|
|
784
|
+
if (typeof o === "string") return _array_like_to_array$1(o, minLen);
|
|
785
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
786
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
787
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
788
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
|
|
789
|
+
}
|
|
336
790
|
function zoomOAuthServiceConfigFactory(configService) {
|
|
337
|
-
|
|
791
|
+
var config = readZoomOAuthServiceConfigFromConfigService(configService);
|
|
338
792
|
return config;
|
|
339
793
|
}
|
|
340
794
|
/**
|
|
@@ -343,73 +797,167 @@ function zoomOAuthServiceConfigFactory(configService) {
|
|
|
343
797
|
* @param provide
|
|
344
798
|
* @param useFactory
|
|
345
799
|
* @returns
|
|
346
|
-
*/
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
800
|
+
*/ function appZoomOAuthModuleMetadata(config$1) {
|
|
801
|
+
var _config_zoomOAuthServiceConfigFactory;
|
|
802
|
+
var dependencyModule = config$1.dependencyModule, imports = config$1.imports, exports$1 = config$1.exports, providers = config$1.providers;
|
|
803
|
+
var dependencyModuleImport = dependencyModule ? [
|
|
804
|
+
dependencyModule
|
|
805
|
+
] : [];
|
|
350
806
|
return {
|
|
351
|
-
imports: [
|
|
352
|
-
|
|
807
|
+
imports: [
|
|
808
|
+
config.ConfigModule
|
|
809
|
+
].concat(_to_consumable_array$1(dependencyModuleImport), _to_consumable_array$1(imports !== null && imports !== void 0 ? imports : [])),
|
|
810
|
+
exports: [
|
|
811
|
+
exports.ZoomOAuthApi
|
|
812
|
+
].concat(_to_consumable_array$1(exports$1 !== null && exports$1 !== void 0 ? exports$1 : [])),
|
|
353
813
|
providers: [
|
|
354
814
|
{
|
|
355
815
|
provide: ZoomOAuthServiceConfig,
|
|
356
|
-
inject: [
|
|
357
|
-
|
|
816
|
+
inject: [
|
|
817
|
+
config.ConfigService
|
|
818
|
+
],
|
|
819
|
+
useFactory: (_config_zoomOAuthServiceConfigFactory = config$1.zoomOAuthServiceConfigFactory) !== null && _config_zoomOAuthServiceConfigFactory !== void 0 ? _config_zoomOAuthServiceConfigFactory : zoomOAuthServiceConfigFactory
|
|
358
820
|
},
|
|
359
|
-
exports.ZoomOAuthApi
|
|
360
|
-
|
|
361
|
-
]
|
|
821
|
+
exports.ZoomOAuthApi
|
|
822
|
+
].concat(_to_consumable_array$1(providers !== null && providers !== void 0 ? providers : []))
|
|
362
823
|
};
|
|
363
824
|
}
|
|
364
825
|
|
|
365
|
-
|
|
826
|
+
function _class_call_check$5(instance, Constructor) {
|
|
827
|
+
if (!(instance instanceof Constructor)) {
|
|
828
|
+
throw new TypeError("Cannot call a class as a function");
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
function _defineProperties$4(target, props) {
|
|
832
|
+
for(var i = 0; i < props.length; i++){
|
|
833
|
+
var descriptor = props[i];
|
|
834
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
835
|
+
descriptor.configurable = true;
|
|
836
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
837
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
function _create_class$4(Constructor, protoProps, staticProps) {
|
|
841
|
+
if (staticProps) _defineProperties$4(Constructor, staticProps);
|
|
842
|
+
return Constructor;
|
|
843
|
+
}
|
|
844
|
+
function _define_property$5(obj, key, value) {
|
|
845
|
+
if (key in obj) {
|
|
846
|
+
Object.defineProperty(obj, key, {
|
|
847
|
+
value: value,
|
|
848
|
+
enumerable: true,
|
|
849
|
+
configurable: true,
|
|
850
|
+
writable: true
|
|
851
|
+
});
|
|
852
|
+
} else {
|
|
853
|
+
obj[key] = value;
|
|
854
|
+
}
|
|
855
|
+
return obj;
|
|
856
|
+
}
|
|
857
|
+
var ZOOM_SECRET_TOKEN_ENV_VAR = 'ZOOM_SECRET_TOKEN';
|
|
366
858
|
/**
|
|
367
859
|
* Configuration for ZoomService
|
|
368
|
-
*/
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
if (!config.webhookConfig.zoomSecretToken) {
|
|
373
|
-
throw new Error('No zoom secret token specified.');
|
|
374
|
-
}
|
|
860
|
+
*/ var ZoomWebhookServiceConfig = /*#__PURE__*/ function() {
|
|
861
|
+
function ZoomWebhookServiceConfig() {
|
|
862
|
+
_class_call_check$5(this, ZoomWebhookServiceConfig);
|
|
863
|
+
_define_property$5(this, "webhookConfig", void 0);
|
|
375
864
|
}
|
|
376
|
-
|
|
865
|
+
_create_class$4(ZoomWebhookServiceConfig, null, [
|
|
866
|
+
{
|
|
867
|
+
key: "assertValidConfig",
|
|
868
|
+
value: function assertValidConfig(config) {
|
|
869
|
+
if (!config.webhookConfig.zoomSecretToken) {
|
|
870
|
+
throw new Error('No zoom secret token specified.');
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
]);
|
|
875
|
+
return ZoomWebhookServiceConfig;
|
|
876
|
+
}
|
|
877
|
+
();
|
|
377
878
|
|
|
378
879
|
// MARK: Meeting Alert
|
|
379
|
-
|
|
880
|
+
var ZOOM_WEBHOOK_MEETING_ALERT_EVENT_TYPE = 'meeting.alert';
|
|
380
881
|
// MARK: Meeting Created
|
|
381
|
-
|
|
882
|
+
var ZOOM_WEBHOOK_MEETING_CREATED_EVENT_TYPE = 'meeting.created';
|
|
382
883
|
// MARK: Meeting Updated
|
|
383
|
-
|
|
884
|
+
var ZOOM_WEBHOOK_MEETING_UPDATED_EVENT_TYPE = 'meeting.updated';
|
|
384
885
|
// MARK: Meeting Deleted
|
|
385
|
-
|
|
886
|
+
var ZOOM_WEBHOOK_MEETING_DELETED_EVENT_TYPE = 'meeting.deleted';
|
|
386
887
|
// MARK: Meeting Started
|
|
387
|
-
|
|
888
|
+
var ZOOM_WEBHOOK_MEETING_STARTED_EVENT_TYPE = 'meeting.started';
|
|
388
889
|
// MARK: Meeting Ended
|
|
389
|
-
|
|
890
|
+
var ZOOM_WEBHOOK_MEETING_ENDED_EVENT_TYPE = 'meeting.ended';
|
|
390
891
|
// MARK: Meeting Permanently Deleted
|
|
391
|
-
|
|
892
|
+
var ZOOM_WEBHOOK_MEETING_PERMANENTLY_DELETED_EVENT_TYPE = 'meeting.permanently_deleted';
|
|
392
893
|
|
|
894
|
+
function _define_property$4(obj, key, value) {
|
|
895
|
+
if (key in obj) {
|
|
896
|
+
Object.defineProperty(obj, key, {
|
|
897
|
+
value: value,
|
|
898
|
+
enumerable: true,
|
|
899
|
+
configurable: true,
|
|
900
|
+
writable: true
|
|
901
|
+
});
|
|
902
|
+
} else {
|
|
903
|
+
obj[key] = value;
|
|
904
|
+
}
|
|
905
|
+
return obj;
|
|
906
|
+
}
|
|
907
|
+
function _object_spread$1(target) {
|
|
908
|
+
for(var i = 1; i < arguments.length; i++){
|
|
909
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
910
|
+
var ownKeys = Object.keys(source);
|
|
911
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
912
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
913
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
914
|
+
}));
|
|
915
|
+
}
|
|
916
|
+
ownKeys.forEach(function(key) {
|
|
917
|
+
_define_property$4(target, key, source[key]);
|
|
918
|
+
});
|
|
919
|
+
}
|
|
920
|
+
return target;
|
|
921
|
+
}
|
|
922
|
+
function ownKeys$1(object, enumerableOnly) {
|
|
923
|
+
var keys = Object.keys(object);
|
|
924
|
+
if (Object.getOwnPropertySymbols) {
|
|
925
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
926
|
+
keys.push.apply(keys, symbols);
|
|
927
|
+
}
|
|
928
|
+
return keys;
|
|
929
|
+
}
|
|
930
|
+
function _object_spread_props$1(target, source) {
|
|
931
|
+
source = source != null ? source : {};
|
|
932
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
933
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
934
|
+
} else {
|
|
935
|
+
ownKeys$1(Object(source)).forEach(function(key) {
|
|
936
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
937
|
+
});
|
|
938
|
+
}
|
|
939
|
+
return target;
|
|
940
|
+
}
|
|
393
941
|
/**
|
|
394
942
|
* Creates a ZoomWebhookEvent and treats the data as the input type.
|
|
395
943
|
*
|
|
396
944
|
* @param event
|
|
397
945
|
* @returns
|
|
398
|
-
*/
|
|
399
|
-
function zoomWebhookEvent(event) {
|
|
946
|
+
*/ function zoomWebhookEvent(event) {
|
|
400
947
|
return {
|
|
401
948
|
event: event.event,
|
|
402
949
|
event_ts: event.event_ts,
|
|
403
950
|
payload: event.payload
|
|
404
951
|
};
|
|
405
952
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
953
|
+
var zoomEventHandlerFactory = util.handlerFactory(function(x) {
|
|
954
|
+
return x.event;
|
|
955
|
+
});
|
|
956
|
+
var zoomEventHandlerConfigurerFactory = util.handlerConfigurerFactory({
|
|
957
|
+
configurerForAccessor: function configurerForAccessor(accessor) {
|
|
409
958
|
// eslint-disable-next-line
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
...accessor,
|
|
959
|
+
var fnWithKey = util.handlerMappedSetFunctionFactory(accessor, zoomWebhookEvent);
|
|
960
|
+
var configurer = _object_spread_props$1(_object_spread$1({}, accessor), {
|
|
413
961
|
// Meetings
|
|
414
962
|
handleMeetingCreated: fnWithKey(ZOOM_WEBHOOK_MEETING_CREATED_EVENT_TYPE),
|
|
415
963
|
handleMeetingUpdated: fnWithKey(ZOOM_WEBHOOK_MEETING_UPDATED_EVENT_TYPE),
|
|
@@ -417,7 +965,7 @@ const zoomEventHandlerConfigurerFactory = util.handlerConfigurerFactory({
|
|
|
417
965
|
handleMeetingStarted: fnWithKey(ZOOM_WEBHOOK_MEETING_STARTED_EVENT_TYPE),
|
|
418
966
|
handleMeetingEnded: fnWithKey(ZOOM_WEBHOOK_MEETING_ENDED_EVENT_TYPE),
|
|
419
967
|
handleMeetingPermanentlyDeleted: fnWithKey(ZOOM_WEBHOOK_MEETING_PERMANENTLY_DELETED_EVENT_TYPE)
|
|
420
|
-
};
|
|
968
|
+
});
|
|
421
969
|
return configurer;
|
|
422
970
|
}
|
|
423
971
|
});
|
|
@@ -429,109 +977,501 @@ const zoomEventHandlerConfigurerFactory = util.handlerConfigurerFactory({
|
|
|
429
977
|
*
|
|
430
978
|
* @param zoomSecretToken The Zoom secret token.
|
|
431
979
|
* @returns A function that verifies a Zoom webhook event.
|
|
432
|
-
*/
|
|
433
|
-
function
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
valid,
|
|
980
|
+
*/ function zoomWebhookEventVerifier(zoomSecretToken) {
|
|
981
|
+
return function(request, rawBody) {
|
|
982
|
+
var requestBodyString = String(request.body);
|
|
983
|
+
var message = "v0:".concat(request.headers['x-zm-request-timestamp'], ":").concat(requestBodyString);
|
|
984
|
+
var hashForVerify = crypto.createHmac('sha256', zoomSecretToken).update(message).digest('hex');
|
|
985
|
+
var signature = "v0=".concat(hashForVerify);
|
|
986
|
+
var valid = request.headers['x-zm-signature'] === signature;
|
|
987
|
+
var result = {
|
|
988
|
+
valid: valid,
|
|
442
989
|
event: JSON.parse(requestBodyString)
|
|
443
990
|
};
|
|
444
991
|
return result;
|
|
445
992
|
};
|
|
446
993
|
}
|
|
447
994
|
|
|
448
|
-
|
|
995
|
+
var ZOOM_WEBHOOK_URL_VALIDATION_EVENT_TYPE = 'endpoint.url_validation';
|
|
449
996
|
|
|
450
997
|
/**
|
|
451
998
|
* Creates a ZoomWebhookEventValidationFunction.
|
|
452
999
|
*
|
|
453
1000
|
* @param zoomSecretToken The secret token used to validate the event.
|
|
454
1001
|
* @returns A ZoomWebhookEventValidationFunction.
|
|
455
|
-
*/
|
|
456
|
-
function
|
|
457
|
-
|
|
458
|
-
const { plainToken } = event.payload;
|
|
1002
|
+
*/ function zoomWebhookEventValidationFunction(zoomSecretToken) {
|
|
1003
|
+
return function(event) {
|
|
1004
|
+
var plainToken = event.payload.plainToken;
|
|
459
1005
|
if (!plainToken) {
|
|
460
|
-
throw new Error(
|
|
1006
|
+
throw new Error("The expected plaintoken value was not provided by the event's payload.");
|
|
461
1007
|
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
plainToken,
|
|
465
|
-
encryptedToken
|
|
1008
|
+
var encryptedToken = crypto.createHmac('sha256', zoomSecretToken).update(plainToken).digest('hex');
|
|
1009
|
+
var result = {
|
|
1010
|
+
plainToken: plainToken,
|
|
1011
|
+
encryptedToken: encryptedToken
|
|
466
1012
|
};
|
|
467
1013
|
return result;
|
|
468
1014
|
};
|
|
469
1015
|
}
|
|
470
1016
|
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
handler = zoomEventHandlerFactory();
|
|
479
|
-
configure = zoomEventHandlerConfigurerFactory(this.handler);
|
|
480
|
-
constructor(config) {
|
|
481
|
-
this._verifier = zoomWebhookEventVerifier(config.webhookConfig.zoomSecretToken);
|
|
482
|
-
this._validator = zoomWebhookEventValidationFunction(config.webhookConfig.zoomSecretToken);
|
|
1017
|
+
function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1018
|
+
try {
|
|
1019
|
+
var info = gen[key](arg);
|
|
1020
|
+
var value = info.value;
|
|
1021
|
+
} catch (error) {
|
|
1022
|
+
reject(error);
|
|
1023
|
+
return;
|
|
483
1024
|
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
1025
|
+
if (info.done) {
|
|
1026
|
+
resolve(value);
|
|
1027
|
+
} else {
|
|
1028
|
+
Promise.resolve(value).then(_next, _throw);
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
function _async_to_generator$1(fn) {
|
|
1032
|
+
return function() {
|
|
1033
|
+
var self = this, args = arguments;
|
|
1034
|
+
return new Promise(function(resolve, reject) {
|
|
1035
|
+
var gen = fn.apply(self, args);
|
|
1036
|
+
function _next(value) {
|
|
1037
|
+
asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
|
|
1038
|
+
}
|
|
1039
|
+
function _throw(err) {
|
|
1040
|
+
asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1041
|
+
}
|
|
1042
|
+
_next(undefined);
|
|
1043
|
+
});
|
|
1044
|
+
};
|
|
1045
|
+
}
|
|
1046
|
+
function _class_call_check$4(instance, Constructor) {
|
|
1047
|
+
if (!(instance instanceof Constructor)) {
|
|
1048
|
+
throw new TypeError("Cannot call a class as a function");
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
function _defineProperties$3(target, props) {
|
|
1052
|
+
for(var i = 0; i < props.length; i++){
|
|
1053
|
+
var descriptor = props[i];
|
|
1054
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
1055
|
+
descriptor.configurable = true;
|
|
1056
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
1057
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
function _create_class$3(Constructor, protoProps, staticProps) {
|
|
1061
|
+
if (protoProps) _defineProperties$3(Constructor.prototype, protoProps);
|
|
1062
|
+
return Constructor;
|
|
1063
|
+
}
|
|
1064
|
+
function _define_property$3(obj, key, value) {
|
|
1065
|
+
if (key in obj) {
|
|
1066
|
+
Object.defineProperty(obj, key, {
|
|
1067
|
+
value: value,
|
|
1068
|
+
enumerable: true,
|
|
1069
|
+
configurable: true,
|
|
1070
|
+
writable: true
|
|
1071
|
+
});
|
|
1072
|
+
} else {
|
|
1073
|
+
obj[key] = value;
|
|
1074
|
+
}
|
|
1075
|
+
return obj;
|
|
1076
|
+
}
|
|
1077
|
+
function _ts_generator$1(thisArg, body) {
|
|
1078
|
+
var f, y, t, _ = {
|
|
1079
|
+
label: 0,
|
|
1080
|
+
sent: function() {
|
|
1081
|
+
if (t[0] & 1) throw t[1];
|
|
1082
|
+
return t[1];
|
|
1083
|
+
},
|
|
1084
|
+
trys: [],
|
|
1085
|
+
ops: []
|
|
1086
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
1087
|
+
return d(g, "next", {
|
|
1088
|
+
value: verb(0)
|
|
1089
|
+
}), d(g, "throw", {
|
|
1090
|
+
value: verb(1)
|
|
1091
|
+
}), d(g, "return", {
|
|
1092
|
+
value: verb(2)
|
|
1093
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
1094
|
+
value: function() {
|
|
1095
|
+
return this;
|
|
497
1096
|
}
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
1097
|
+
}), g;
|
|
1098
|
+
function verb(n) {
|
|
1099
|
+
return function(v) {
|
|
1100
|
+
return step([
|
|
1101
|
+
n,
|
|
1102
|
+
v
|
|
1103
|
+
]);
|
|
503
1104
|
};
|
|
504
|
-
return result;
|
|
505
1105
|
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
1106
|
+
function step(op) {
|
|
1107
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
1108
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
1109
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
1110
|
+
if (y = 0, t) op = [
|
|
1111
|
+
op[0] & 2,
|
|
1112
|
+
t.value
|
|
1113
|
+
];
|
|
1114
|
+
switch(op[0]){
|
|
1115
|
+
case 0:
|
|
1116
|
+
case 1:
|
|
1117
|
+
t = op;
|
|
1118
|
+
break;
|
|
1119
|
+
case 4:
|
|
1120
|
+
_.label++;
|
|
1121
|
+
return {
|
|
1122
|
+
value: op[1],
|
|
1123
|
+
done: false
|
|
1124
|
+
};
|
|
1125
|
+
case 5:
|
|
1126
|
+
_.label++;
|
|
1127
|
+
y = op[1];
|
|
1128
|
+
op = [
|
|
1129
|
+
0
|
|
1130
|
+
];
|
|
1131
|
+
continue;
|
|
1132
|
+
case 7:
|
|
1133
|
+
op = _.ops.pop();
|
|
1134
|
+
_.trys.pop();
|
|
1135
|
+
continue;
|
|
1136
|
+
default:
|
|
1137
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
1138
|
+
_ = 0;
|
|
1139
|
+
continue;
|
|
1140
|
+
}
|
|
1141
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
1142
|
+
_.label = op[1];
|
|
1143
|
+
break;
|
|
1144
|
+
}
|
|
1145
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
1146
|
+
_.label = t[1];
|
|
1147
|
+
t = op;
|
|
1148
|
+
break;
|
|
1149
|
+
}
|
|
1150
|
+
if (t && _.label < t[2]) {
|
|
1151
|
+
_.label = t[2];
|
|
1152
|
+
_.ops.push(op);
|
|
1153
|
+
break;
|
|
1154
|
+
}
|
|
1155
|
+
if (t[2]) _.ops.pop();
|
|
1156
|
+
_.trys.pop();
|
|
1157
|
+
continue;
|
|
1158
|
+
}
|
|
1159
|
+
op = body.call(thisArg, _);
|
|
1160
|
+
} catch (e) {
|
|
1161
|
+
op = [
|
|
1162
|
+
6,
|
|
1163
|
+
e
|
|
1164
|
+
];
|
|
1165
|
+
y = 0;
|
|
1166
|
+
} finally{
|
|
1167
|
+
f = t = 0;
|
|
510
1168
|
}
|
|
511
|
-
|
|
1169
|
+
if (op[0] & 5) throw op[1];
|
|
1170
|
+
return {
|
|
1171
|
+
value: op[0] ? op[1] : void 0,
|
|
1172
|
+
done: true
|
|
1173
|
+
};
|
|
512
1174
|
}
|
|
513
|
-
}
|
|
1175
|
+
}
|
|
1176
|
+
/**
|
|
1177
|
+
* Service that makes system changes based on Zoom webhook events.
|
|
1178
|
+
*/ exports.ZoomWebhookService = /*#__PURE__*/ function() {
|
|
1179
|
+
function ZoomWebhookService(config) {
|
|
1180
|
+
_class_call_check$4(this, ZoomWebhookService);
|
|
1181
|
+
_define_property$3(this, "logger", new common.Logger('ZoomWebhookService'));
|
|
1182
|
+
_define_property$3(this, "_verifier", void 0);
|
|
1183
|
+
_define_property$3(this, "_validator", void 0);
|
|
1184
|
+
_define_property$3(this, "handler", zoomEventHandlerFactory());
|
|
1185
|
+
_define_property$3(this, "configure", zoomEventHandlerConfigurerFactory(this.handler));
|
|
1186
|
+
this._verifier = zoomWebhookEventVerifier(config.webhookConfig.zoomSecretToken);
|
|
1187
|
+
this._validator = zoomWebhookEventValidationFunction(config.webhookConfig.zoomSecretToken);
|
|
1188
|
+
}
|
|
1189
|
+
_create_class$3(ZoomWebhookService, [
|
|
1190
|
+
{
|
|
1191
|
+
key: "updateForWebhook",
|
|
1192
|
+
value: function updateForWebhook(req, rawBody) {
|
|
1193
|
+
return _async_to_generator$1(function() {
|
|
1194
|
+
var _this__verifier, valid, event, handled, validationEventResponse, result;
|
|
1195
|
+
return _ts_generator$1(this, function(_state) {
|
|
1196
|
+
switch(_state.label){
|
|
1197
|
+
case 0:
|
|
1198
|
+
_this__verifier = this._verifier(req, rawBody), valid = _this__verifier.valid, event = _this__verifier.event;
|
|
1199
|
+
handled = false;
|
|
1200
|
+
if (!!valid) return [
|
|
1201
|
+
3,
|
|
1202
|
+
1
|
|
1203
|
+
];
|
|
1204
|
+
this.logger.warn('Received invalid zoom event: ', event);
|
|
1205
|
+
return [
|
|
1206
|
+
3,
|
|
1207
|
+
4
|
|
1208
|
+
];
|
|
1209
|
+
case 1:
|
|
1210
|
+
if (!(event.event === ZOOM_WEBHOOK_URL_VALIDATION_EVENT_TYPE)) return [
|
|
1211
|
+
3,
|
|
1212
|
+
2
|
|
1213
|
+
];
|
|
1214
|
+
validationEventResponse = this._validator(event);
|
|
1215
|
+
handled = true;
|
|
1216
|
+
return [
|
|
1217
|
+
3,
|
|
1218
|
+
4
|
|
1219
|
+
];
|
|
1220
|
+
case 2:
|
|
1221
|
+
return [
|
|
1222
|
+
4,
|
|
1223
|
+
this.updateForZoomEvent(event)
|
|
1224
|
+
];
|
|
1225
|
+
case 3:
|
|
1226
|
+
handled = _state.sent();
|
|
1227
|
+
_state.label = 4;
|
|
1228
|
+
case 4:
|
|
1229
|
+
result = {
|
|
1230
|
+
valid: valid,
|
|
1231
|
+
handled: handled,
|
|
1232
|
+
event: event,
|
|
1233
|
+
validationEventResponse: validationEventResponse
|
|
1234
|
+
};
|
|
1235
|
+
return [
|
|
1236
|
+
2,
|
|
1237
|
+
result
|
|
1238
|
+
];
|
|
1239
|
+
}
|
|
1240
|
+
});
|
|
1241
|
+
}).call(this);
|
|
1242
|
+
}
|
|
1243
|
+
},
|
|
1244
|
+
{
|
|
1245
|
+
key: "updateForZoomEvent",
|
|
1246
|
+
value: function updateForZoomEvent(event) {
|
|
1247
|
+
return _async_to_generator$1(function() {
|
|
1248
|
+
var handled;
|
|
1249
|
+
return _ts_generator$1(this, function(_state) {
|
|
1250
|
+
switch(_state.label){
|
|
1251
|
+
case 0:
|
|
1252
|
+
return [
|
|
1253
|
+
4,
|
|
1254
|
+
this.handler(event)
|
|
1255
|
+
];
|
|
1256
|
+
case 1:
|
|
1257
|
+
handled = _state.sent();
|
|
1258
|
+
if (!handled) {
|
|
1259
|
+
this.logger.warn('Received unexpected/unhandled zoom event: ', event);
|
|
1260
|
+
}
|
|
1261
|
+
return [
|
|
1262
|
+
2,
|
|
1263
|
+
handled
|
|
1264
|
+
];
|
|
1265
|
+
}
|
|
1266
|
+
});
|
|
1267
|
+
}).call(this);
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
]);
|
|
1271
|
+
return ZoomWebhookService;
|
|
1272
|
+
}();
|
|
514
1273
|
exports.ZoomWebhookService = __decorate([
|
|
515
1274
|
common.Injectable(),
|
|
516
1275
|
__param(0, common.Inject(ZoomWebhookServiceConfig))
|
|
517
1276
|
], exports.ZoomWebhookService);
|
|
518
1277
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
1278
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1279
|
+
try {
|
|
1280
|
+
var info = gen[key](arg);
|
|
1281
|
+
var value = info.value;
|
|
1282
|
+
} catch (error) {
|
|
1283
|
+
reject(error);
|
|
1284
|
+
return;
|
|
523
1285
|
}
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
1286
|
+
if (info.done) {
|
|
1287
|
+
resolve(value);
|
|
1288
|
+
} else {
|
|
1289
|
+
Promise.resolve(value).then(_next, _throw);
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1292
|
+
function _async_to_generator(fn) {
|
|
1293
|
+
return function() {
|
|
1294
|
+
var self = this, args = arguments;
|
|
1295
|
+
return new Promise(function(resolve, reject) {
|
|
1296
|
+
var gen = fn.apply(self, args);
|
|
1297
|
+
function _next(value) {
|
|
1298
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
1299
|
+
}
|
|
1300
|
+
function _throw(err) {
|
|
1301
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1302
|
+
}
|
|
1303
|
+
_next(undefined);
|
|
1304
|
+
});
|
|
1305
|
+
};
|
|
1306
|
+
}
|
|
1307
|
+
function _class_call_check$3(instance, Constructor) {
|
|
1308
|
+
if (!(instance instanceof Constructor)) {
|
|
1309
|
+
throw new TypeError("Cannot call a class as a function");
|
|
1310
|
+
}
|
|
1311
|
+
}
|
|
1312
|
+
function _defineProperties$2(target, props) {
|
|
1313
|
+
for(var i = 0; i < props.length; i++){
|
|
1314
|
+
var descriptor = props[i];
|
|
1315
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
1316
|
+
descriptor.configurable = true;
|
|
1317
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
1318
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
function _create_class$2(Constructor, protoProps, staticProps) {
|
|
1322
|
+
if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);
|
|
1323
|
+
return Constructor;
|
|
1324
|
+
}
|
|
1325
|
+
function _define_property$2(obj, key, value) {
|
|
1326
|
+
if (key in obj) {
|
|
1327
|
+
Object.defineProperty(obj, key, {
|
|
1328
|
+
value: value,
|
|
1329
|
+
enumerable: true,
|
|
1330
|
+
configurable: true,
|
|
1331
|
+
writable: true
|
|
1332
|
+
});
|
|
1333
|
+
} else {
|
|
1334
|
+
obj[key] = value;
|
|
1335
|
+
}
|
|
1336
|
+
return obj;
|
|
1337
|
+
}
|
|
1338
|
+
function _ts_generator(thisArg, body) {
|
|
1339
|
+
var f, y, t, _ = {
|
|
1340
|
+
label: 0,
|
|
1341
|
+
sent: function() {
|
|
1342
|
+
if (t[0] & 1) throw t[1];
|
|
1343
|
+
return t[1];
|
|
1344
|
+
},
|
|
1345
|
+
trys: [],
|
|
1346
|
+
ops: []
|
|
1347
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
1348
|
+
return d(g, "next", {
|
|
1349
|
+
value: verb(0)
|
|
1350
|
+
}), d(g, "throw", {
|
|
1351
|
+
value: verb(1)
|
|
1352
|
+
}), d(g, "return", {
|
|
1353
|
+
value: verb(2)
|
|
1354
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
1355
|
+
value: function() {
|
|
1356
|
+
return this;
|
|
529
1357
|
}
|
|
530
|
-
|
|
531
|
-
|
|
1358
|
+
}), g;
|
|
1359
|
+
function verb(n) {
|
|
1360
|
+
return function(v) {
|
|
1361
|
+
return step([
|
|
1362
|
+
n,
|
|
1363
|
+
v
|
|
1364
|
+
]);
|
|
1365
|
+
};
|
|
1366
|
+
}
|
|
1367
|
+
function step(op) {
|
|
1368
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
1369
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
1370
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
1371
|
+
if (y = 0, t) op = [
|
|
1372
|
+
op[0] & 2,
|
|
1373
|
+
t.value
|
|
1374
|
+
];
|
|
1375
|
+
switch(op[0]){
|
|
1376
|
+
case 0:
|
|
1377
|
+
case 1:
|
|
1378
|
+
t = op;
|
|
1379
|
+
break;
|
|
1380
|
+
case 4:
|
|
1381
|
+
_.label++;
|
|
1382
|
+
return {
|
|
1383
|
+
value: op[1],
|
|
1384
|
+
done: false
|
|
1385
|
+
};
|
|
1386
|
+
case 5:
|
|
1387
|
+
_.label++;
|
|
1388
|
+
y = op[1];
|
|
1389
|
+
op = [
|
|
1390
|
+
0
|
|
1391
|
+
];
|
|
1392
|
+
continue;
|
|
1393
|
+
case 7:
|
|
1394
|
+
op = _.ops.pop();
|
|
1395
|
+
_.trys.pop();
|
|
1396
|
+
continue;
|
|
1397
|
+
default:
|
|
1398
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
1399
|
+
_ = 0;
|
|
1400
|
+
continue;
|
|
1401
|
+
}
|
|
1402
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
1403
|
+
_.label = op[1];
|
|
1404
|
+
break;
|
|
1405
|
+
}
|
|
1406
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
1407
|
+
_.label = t[1];
|
|
1408
|
+
t = op;
|
|
1409
|
+
break;
|
|
1410
|
+
}
|
|
1411
|
+
if (t && _.label < t[2]) {
|
|
1412
|
+
_.label = t[2];
|
|
1413
|
+
_.ops.push(op);
|
|
1414
|
+
break;
|
|
1415
|
+
}
|
|
1416
|
+
if (t[2]) _.ops.pop();
|
|
1417
|
+
_.trys.pop();
|
|
1418
|
+
continue;
|
|
1419
|
+
}
|
|
1420
|
+
op = body.call(thisArg, _);
|
|
1421
|
+
} catch (e) {
|
|
1422
|
+
op = [
|
|
1423
|
+
6,
|
|
1424
|
+
e
|
|
1425
|
+
];
|
|
1426
|
+
y = 0;
|
|
1427
|
+
} finally{
|
|
1428
|
+
f = t = 0;
|
|
532
1429
|
}
|
|
1430
|
+
if (op[0] & 5) throw op[1];
|
|
1431
|
+
return {
|
|
1432
|
+
value: op[0] ? op[1] : void 0,
|
|
1433
|
+
done: true
|
|
1434
|
+
};
|
|
533
1435
|
}
|
|
534
|
-
}
|
|
1436
|
+
}
|
|
1437
|
+
exports.ZoomWebhookController = /*#__PURE__*/ function() {
|
|
1438
|
+
function ZoomWebhookController(zoomWebhookService) {
|
|
1439
|
+
_class_call_check$3(this, ZoomWebhookController);
|
|
1440
|
+
_define_property$2(this, "zoomWebhookService", void 0);
|
|
1441
|
+
this.zoomWebhookService = zoomWebhookService;
|
|
1442
|
+
}
|
|
1443
|
+
_create_class$2(ZoomWebhookController, [
|
|
1444
|
+
{
|
|
1445
|
+
key: "handleZoomWebhook",
|
|
1446
|
+
value: function handleZoomWebhook(res, req, rawBody) {
|
|
1447
|
+
return _async_to_generator(function() {
|
|
1448
|
+
var _ref, valid, validationEventResponse, response;
|
|
1449
|
+
return _ts_generator(this, function(_state) {
|
|
1450
|
+
switch(_state.label){
|
|
1451
|
+
case 0:
|
|
1452
|
+
return [
|
|
1453
|
+
4,
|
|
1454
|
+
this.zoomWebhookService.updateForWebhook(req, rawBody)
|
|
1455
|
+
];
|
|
1456
|
+
case 1:
|
|
1457
|
+
_ref = _state.sent(), valid = _ref.valid, validationEventResponse = _ref.validationEventResponse;
|
|
1458
|
+
response = res.status(200); // always return a 200 status code
|
|
1459
|
+
if (valid && validationEventResponse) {
|
|
1460
|
+
response.json(validationEventResponse);
|
|
1461
|
+
} else {
|
|
1462
|
+
response.json({});
|
|
1463
|
+
}
|
|
1464
|
+
return [
|
|
1465
|
+
2
|
|
1466
|
+
];
|
|
1467
|
+
}
|
|
1468
|
+
});
|
|
1469
|
+
}).call(this);
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1472
|
+
]);
|
|
1473
|
+
return ZoomWebhookController;
|
|
1474
|
+
}();
|
|
535
1475
|
__decorate([
|
|
536
1476
|
common.Post(),
|
|
537
1477
|
__param(0, common.Res()),
|
|
@@ -543,8 +1483,13 @@ exports.ZoomWebhookController = __decorate([
|
|
|
543
1483
|
__param(0, common.Inject(exports.ZoomWebhookService))
|
|
544
1484
|
], exports.ZoomWebhookController);
|
|
545
1485
|
|
|
1486
|
+
function _class_call_check$2(instance, Constructor) {
|
|
1487
|
+
if (!(instance instanceof Constructor)) {
|
|
1488
|
+
throw new TypeError("Cannot call a class as a function");
|
|
1489
|
+
}
|
|
1490
|
+
}
|
|
546
1491
|
function zoomWebhookServiceConfigFactory(configService) {
|
|
547
|
-
|
|
1492
|
+
var config = {
|
|
548
1493
|
webhookConfig: {
|
|
549
1494
|
zoomSecretToken: configService.get(ZOOM_SECRET_TOKEN_ENV_VAR)
|
|
550
1495
|
}
|
|
@@ -554,18 +1499,26 @@ function zoomWebhookServiceConfigFactory(configService) {
|
|
|
554
1499
|
}
|
|
555
1500
|
/**
|
|
556
1501
|
* Configures webhooks for the service.
|
|
557
|
-
*/
|
|
558
|
-
|
|
1502
|
+
*/ exports.ZoomWebhookModule = function ZoomWebhookModule() {
|
|
1503
|
+
_class_call_check$2(this, ZoomWebhookModule);
|
|
559
1504
|
};
|
|
560
1505
|
exports.ZoomWebhookModule = __decorate([
|
|
561
1506
|
common.Module({
|
|
562
|
-
imports: [
|
|
563
|
-
|
|
564
|
-
|
|
1507
|
+
imports: [
|
|
1508
|
+
config.ConfigModule
|
|
1509
|
+
],
|
|
1510
|
+
controllers: [
|
|
1511
|
+
exports.ZoomWebhookController
|
|
1512
|
+
],
|
|
1513
|
+
exports: [
|
|
1514
|
+
exports.ZoomWebhookService
|
|
1515
|
+
],
|
|
565
1516
|
providers: [
|
|
566
1517
|
{
|
|
567
1518
|
provide: ZoomWebhookServiceConfig,
|
|
568
|
-
inject: [
|
|
1519
|
+
inject: [
|
|
1520
|
+
config.ConfigService
|
|
1521
|
+
],
|
|
569
1522
|
useFactory: zoomWebhookServiceConfigFactory
|
|
570
1523
|
},
|
|
571
1524
|
exports.ZoomWebhookService
|
|
@@ -573,86 +1526,257 @@ exports.ZoomWebhookModule = __decorate([
|
|
|
573
1526
|
})
|
|
574
1527
|
], exports.ZoomWebhookModule);
|
|
575
1528
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
class ZoomServiceConfig {
|
|
580
|
-
zoom;
|
|
581
|
-
factoryConfig;
|
|
582
|
-
static assertValidConfig(config) {
|
|
583
|
-
// TODO?
|
|
1529
|
+
function _class_call_check$1(instance, Constructor) {
|
|
1530
|
+
if (!(instance instanceof Constructor)) {
|
|
1531
|
+
throw new TypeError("Cannot call a class as a function");
|
|
584
1532
|
}
|
|
585
1533
|
}
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
}
|
|
594
|
-
get zoomRateLimiter() {
|
|
595
|
-
return this.zoom.zoomServerContext.zoomRateLimiter;
|
|
1534
|
+
function _defineProperties$1(target, props) {
|
|
1535
|
+
for(var i = 0; i < props.length; i++){
|
|
1536
|
+
var descriptor = props[i];
|
|
1537
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
1538
|
+
descriptor.configurable = true;
|
|
1539
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
1540
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
596
1541
|
}
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
get listUsersPageFactory() {
|
|
613
|
-
return zoom.listUsersPageFactory(this.zoomContext);
|
|
1542
|
+
}
|
|
1543
|
+
function _create_class$1(Constructor, protoProps, staticProps) {
|
|
1544
|
+
if (staticProps) _defineProperties$1(Constructor, staticProps);
|
|
1545
|
+
return Constructor;
|
|
1546
|
+
}
|
|
1547
|
+
function _define_property$1(obj, key, value) {
|
|
1548
|
+
if (key in obj) {
|
|
1549
|
+
Object.defineProperty(obj, key, {
|
|
1550
|
+
value: value,
|
|
1551
|
+
enumerable: true,
|
|
1552
|
+
configurable: true,
|
|
1553
|
+
writable: true
|
|
1554
|
+
});
|
|
1555
|
+
} else {
|
|
1556
|
+
obj[key] = value;
|
|
614
1557
|
}
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
1558
|
+
return obj;
|
|
1559
|
+
}
|
|
1560
|
+
/**
|
|
1561
|
+
* Configuration for ZoomService
|
|
1562
|
+
*/ var ZoomServiceConfig = /*#__PURE__*/ function() {
|
|
1563
|
+
function ZoomServiceConfig() {
|
|
1564
|
+
_class_call_check$1(this, ZoomServiceConfig);
|
|
1565
|
+
_define_property$1(this, "zoom", void 0);
|
|
1566
|
+
_define_property$1(this, "factoryConfig", void 0);
|
|
618
1567
|
}
|
|
619
|
-
|
|
620
|
-
|
|
1568
|
+
_create_class$1(ZoomServiceConfig, null, [
|
|
1569
|
+
{
|
|
1570
|
+
key: "assertValidConfig",
|
|
1571
|
+
value: function assertValidConfig(config) {
|
|
1572
|
+
// TODO?
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
]);
|
|
1576
|
+
return ZoomServiceConfig;
|
|
1577
|
+
}
|
|
1578
|
+
();
|
|
1579
|
+
|
|
1580
|
+
function _class_call_check(instance, Constructor) {
|
|
1581
|
+
if (!(instance instanceof Constructor)) {
|
|
1582
|
+
throw new TypeError("Cannot call a class as a function");
|
|
621
1583
|
}
|
|
622
|
-
|
|
623
|
-
|
|
1584
|
+
}
|
|
1585
|
+
function _defineProperties(target, props) {
|
|
1586
|
+
for(var i = 0; i < props.length; i++){
|
|
1587
|
+
var descriptor = props[i];
|
|
1588
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
1589
|
+
descriptor.configurable = true;
|
|
1590
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
1591
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
624
1592
|
}
|
|
625
|
-
|
|
626
|
-
|
|
1593
|
+
}
|
|
1594
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
1595
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
1596
|
+
return Constructor;
|
|
1597
|
+
}
|
|
1598
|
+
function _define_property(obj, key, value) {
|
|
1599
|
+
if (key in obj) {
|
|
1600
|
+
Object.defineProperty(obj, key, {
|
|
1601
|
+
value: value,
|
|
1602
|
+
enumerable: true,
|
|
1603
|
+
configurable: true,
|
|
1604
|
+
writable: true
|
|
1605
|
+
});
|
|
1606
|
+
} else {
|
|
1607
|
+
obj[key] = value;
|
|
627
1608
|
}
|
|
628
|
-
|
|
629
|
-
|
|
1609
|
+
return obj;
|
|
1610
|
+
}
|
|
1611
|
+
function _object_spread(target) {
|
|
1612
|
+
for(var i = 1; i < arguments.length; i++){
|
|
1613
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
1614
|
+
var ownKeys = Object.keys(source);
|
|
1615
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
1616
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
1617
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
1618
|
+
}));
|
|
1619
|
+
}
|
|
1620
|
+
ownKeys.forEach(function(key) {
|
|
1621
|
+
_define_property(target, key, source[key]);
|
|
1622
|
+
});
|
|
630
1623
|
}
|
|
631
|
-
|
|
632
|
-
|
|
1624
|
+
return target;
|
|
1625
|
+
}
|
|
1626
|
+
function ownKeys(object, enumerableOnly) {
|
|
1627
|
+
var keys = Object.keys(object);
|
|
1628
|
+
if (Object.getOwnPropertySymbols) {
|
|
1629
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
1630
|
+
keys.push.apply(keys, symbols);
|
|
633
1631
|
}
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
1632
|
+
return keys;
|
|
1633
|
+
}
|
|
1634
|
+
function _object_spread_props(target, source) {
|
|
1635
|
+
source = source != null ? source : {};
|
|
1636
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
1637
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
1638
|
+
} else {
|
|
1639
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
1640
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
1641
|
+
});
|
|
637
1642
|
}
|
|
638
|
-
|
|
639
|
-
|
|
1643
|
+
return target;
|
|
1644
|
+
}
|
|
1645
|
+
exports.ZoomApi = /*#__PURE__*/ function() {
|
|
1646
|
+
function ZoomApi(config, zoomOAuthApi) {
|
|
1647
|
+
_class_call_check(this, ZoomApi);
|
|
1648
|
+
_define_property(this, "config", void 0);
|
|
1649
|
+
_define_property(this, "zoomOAuthApi", void 0);
|
|
1650
|
+
_define_property(this, "zoom", void 0);
|
|
1651
|
+
this.config = config;
|
|
1652
|
+
this.zoomOAuthApi = zoomOAuthApi;
|
|
1653
|
+
this.zoom = zoom.zoomFactory(_object_spread_props(_object_spread({}, config.factoryConfig), {
|
|
1654
|
+
oauthContext: zoomOAuthApi.oauthContext
|
|
1655
|
+
}))(config.zoom);
|
|
640
1656
|
}
|
|
641
|
-
|
|
1657
|
+
_create_class(ZoomApi, [
|
|
1658
|
+
{
|
|
1659
|
+
key: "zoomContext",
|
|
1660
|
+
get: function get() {
|
|
1661
|
+
return this.zoom.zoomServerContext;
|
|
1662
|
+
}
|
|
1663
|
+
},
|
|
1664
|
+
{
|
|
1665
|
+
key: "zoomRateLimiter",
|
|
1666
|
+
get: function get() {
|
|
1667
|
+
return this.zoom.zoomServerContext.zoomRateLimiter;
|
|
1668
|
+
}
|
|
1669
|
+
},
|
|
1670
|
+
{
|
|
1671
|
+
key: "getUser",
|
|
1672
|
+
get: // MARK: Users
|
|
1673
|
+
function get() {
|
|
1674
|
+
return zoom.getUser(this.zoomContext);
|
|
1675
|
+
}
|
|
1676
|
+
},
|
|
1677
|
+
{
|
|
1678
|
+
key: "listUsers",
|
|
1679
|
+
get: function get() {
|
|
1680
|
+
return zoom.listUsers(this.zoomContext);
|
|
1681
|
+
}
|
|
1682
|
+
},
|
|
1683
|
+
{
|
|
1684
|
+
key: "listUsersPageFactory",
|
|
1685
|
+
get: function get() {
|
|
1686
|
+
return zoom.listUsersPageFactory(this.zoomContext);
|
|
1687
|
+
}
|
|
1688
|
+
},
|
|
1689
|
+
{
|
|
1690
|
+
key: "listMeetingsForUser",
|
|
1691
|
+
get: // MARK: Meetings
|
|
1692
|
+
function get() {
|
|
1693
|
+
return zoom.listMeetingsForUser(this.zoomContext);
|
|
1694
|
+
}
|
|
1695
|
+
},
|
|
1696
|
+
{
|
|
1697
|
+
key: "listMeetingsForUserPageFactory",
|
|
1698
|
+
get: function get() {
|
|
1699
|
+
return zoom.listMeetingsForUserPageFactory(this.zoomContext);
|
|
1700
|
+
}
|
|
1701
|
+
},
|
|
1702
|
+
{
|
|
1703
|
+
key: "createMeetingForUser",
|
|
1704
|
+
get: function get() {
|
|
1705
|
+
return zoom.createMeetingForUser(this.zoomContext);
|
|
1706
|
+
}
|
|
1707
|
+
},
|
|
1708
|
+
{
|
|
1709
|
+
key: "getMeeting",
|
|
1710
|
+
get: function get() {
|
|
1711
|
+
return zoom.getMeeting(this.zoomContext);
|
|
1712
|
+
}
|
|
1713
|
+
},
|
|
1714
|
+
{
|
|
1715
|
+
key: "updateMeeting",
|
|
1716
|
+
get: function get() {
|
|
1717
|
+
return zoom.updateMeeting(this.zoomContext);
|
|
1718
|
+
}
|
|
1719
|
+
},
|
|
1720
|
+
{
|
|
1721
|
+
key: "deleteMeeting",
|
|
1722
|
+
get: function get() {
|
|
1723
|
+
return zoom.deleteMeeting(this.zoomContext);
|
|
1724
|
+
}
|
|
1725
|
+
},
|
|
1726
|
+
{
|
|
1727
|
+
key: "getPastMeeting",
|
|
1728
|
+
get: // MARK: Past Meetings
|
|
1729
|
+
function get() {
|
|
1730
|
+
return zoom.getPastMeeting(this.zoomContext);
|
|
1731
|
+
}
|
|
1732
|
+
},
|
|
1733
|
+
{
|
|
1734
|
+
key: "getPastMeetingParticipants",
|
|
1735
|
+
get: function get() {
|
|
1736
|
+
return zoom.getPastMeetingParticipants(this.zoomContext);
|
|
1737
|
+
}
|
|
1738
|
+
}
|
|
1739
|
+
]);
|
|
1740
|
+
return ZoomApi;
|
|
1741
|
+
}();
|
|
642
1742
|
exports.ZoomApi = __decorate([
|
|
643
1743
|
common.Injectable(),
|
|
644
1744
|
__param(0, common.Inject(ZoomServiceConfig)),
|
|
645
1745
|
__param(1, common.Inject(exports.ZoomOAuthApi))
|
|
646
1746
|
], exports.ZoomApi);
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
}
|
|
1747
|
+
var ZoomApiUserContext = function ZoomApiUserContext(refreshToken) {
|
|
1748
|
+
_class_call_check(this, ZoomApiUserContext);
|
|
1749
|
+
}
|
|
1750
|
+
;
|
|
652
1751
|
|
|
1752
|
+
function _array_like_to_array(arr, len) {
|
|
1753
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
1754
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
1755
|
+
return arr2;
|
|
1756
|
+
}
|
|
1757
|
+
function _array_without_holes(arr) {
|
|
1758
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
1759
|
+
}
|
|
1760
|
+
function _iterable_to_array(iter) {
|
|
1761
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
1762
|
+
}
|
|
1763
|
+
function _non_iterable_spread() {
|
|
1764
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
1765
|
+
}
|
|
1766
|
+
function _to_consumable_array(arr) {
|
|
1767
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
1768
|
+
}
|
|
1769
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
1770
|
+
if (!o) return;
|
|
1771
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
1772
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
1773
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
1774
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
1775
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
1776
|
+
}
|
|
653
1777
|
// MARK: Provider Factories
|
|
654
1778
|
function zoomServiceConfigFactory(configService) {
|
|
655
|
-
|
|
1779
|
+
var config = {
|
|
656
1780
|
zoom: {}
|
|
657
1781
|
};
|
|
658
1782
|
ZoomServiceConfig.assertValidConfig(config);
|
|
@@ -664,22 +1788,28 @@ function zoomServiceConfigFactory(configService) {
|
|
|
664
1788
|
* @param provide
|
|
665
1789
|
* @param useFactory
|
|
666
1790
|
* @returns
|
|
667
|
-
*/
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
1791
|
+
*/ function appZoomModuleMetadata(config$1) {
|
|
1792
|
+
var dependencyModule = config$1.dependencyModule, imports = config$1.imports, exports$1 = config$1.exports, providers = config$1.providers;
|
|
1793
|
+
var dependencyModuleImport = dependencyModule ? [
|
|
1794
|
+
dependencyModule
|
|
1795
|
+
] : [];
|
|
671
1796
|
return {
|
|
672
|
-
imports: [
|
|
673
|
-
|
|
1797
|
+
imports: [
|
|
1798
|
+
config.ConfigModule
|
|
1799
|
+
].concat(_to_consumable_array(dependencyModuleImport), _to_consumable_array(imports !== null && imports !== void 0 ? imports : [])),
|
|
1800
|
+
exports: [
|
|
1801
|
+
exports.ZoomApi
|
|
1802
|
+
].concat(_to_consumable_array(exports$1 !== null && exports$1 !== void 0 ? exports$1 : [])),
|
|
674
1803
|
providers: [
|
|
675
1804
|
{
|
|
676
1805
|
provide: ZoomServiceConfig,
|
|
677
|
-
inject: [
|
|
1806
|
+
inject: [
|
|
1807
|
+
config.ConfigService
|
|
1808
|
+
],
|
|
678
1809
|
useFactory: zoomServiceConfigFactory
|
|
679
1810
|
},
|
|
680
|
-
exports.ZoomApi
|
|
681
|
-
|
|
682
|
-
]
|
|
1811
|
+
exports.ZoomApi
|
|
1812
|
+
].concat(_to_consumable_array(providers !== null && providers !== void 0 ? providers : []))
|
|
683
1813
|
};
|
|
684
1814
|
}
|
|
685
1815
|
|