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