@dereekb/zoom 12.1.4 → 12.1.6
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 +29 -0
- package/index.esm.js +27 -1
- package/nestjs/CHANGELOG.md +8 -0
- package/nestjs/package.json +1 -1
- package/nestjs/src/lib/index.d.ts +1 -0
- package/nestjs/src/lib/index.js +1 -0
- package/nestjs/src/lib/index.js.map +1 -1
- package/nestjs/src/lib/webhook/index.d.ts +11 -0
- package/nestjs/src/lib/webhook/index.js +15 -0
- package/nestjs/src/lib/webhook/index.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.config.d.ts +12 -0
- package/nestjs/src/lib/webhook/webhook.zoom.config.js +17 -0
- package/nestjs/src/lib/webhook/webhook.zoom.config.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.controller.d.ts +8 -0
- package/nestjs/src/lib/webhook/webhook.zoom.controller.js +38 -0
- package/nestjs/src/lib/webhook/webhook.zoom.controller.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.d.ts +23 -0
- package/nestjs/src/lib/webhook/webhook.zoom.js +38 -0
- package/nestjs/src/lib/webhook/webhook.zoom.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.module.d.ts +8 -0
- package/nestjs/src/lib/webhook/webhook.zoom.module.js +41 -0
- package/nestjs/src/lib/webhook/webhook.zoom.module.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.service.d.ts +24 -0
- package/nestjs/src/lib/webhook/webhook.zoom.service.js +60 -0
- package/nestjs/src/lib/webhook/webhook.zoom.service.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.common.d.ts +43 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.common.js +3 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.common.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.d.ts +2 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.js +3 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.meeting.d.ts +41 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.meeting.js +18 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.meeting.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.validate.d.ts +9 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.validate.js +5 -0
- package/nestjs/src/lib/webhook/webhook.zoom.type.validate.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.validate.d.ts +17 -0
- package/nestjs/src/lib/webhook/webhook.zoom.validate.js +25 -0
- package/nestjs/src/lib/webhook/webhook.zoom.validate.js.map +1 -0
- package/nestjs/src/lib/webhook/webhook.zoom.verify.d.ts +20 -0
- package/nestjs/src/lib/webhook/webhook.zoom.verify.js +27 -0
- package/nestjs/src/lib/webhook/webhook.zoom.verify.js.map +1 -0
- package/nestjs/src/lib/zoom/zoom.api.d.ts +3 -0
- package/nestjs/src/lib/zoom/zoom.api.js +10 -0
- package/nestjs/src/lib/zoom/zoom.api.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/zoom/zoom.api.meeting.d.ts +22 -2
- package/src/lib/zoom/zoom.api.meeting.type.d.ts +449 -63
- package/src/lib/zoom.config.d.ts +4 -0
- package/src/lib/zoom.type.d.ts +6 -0
package/index.cjs.js
CHANGED
|
@@ -1682,13 +1682,39 @@ function deleteMeeting(context) {
|
|
|
1682
1682
|
const silenceDoesNotExistError = silenceZoomErrorWithCodesFunction(DELETE_MEETING_DOES_NOT_EXIST_ERROR_CODE);
|
|
1683
1683
|
return input => context.fetchJson(`/meetings/${input.meetingId}?${fetch.makeUrlSearchParams(input, omitSilenceZoomErrorKeys())}`, 'DELETE').catch(silenceDoesNotExistError(input.silenceError));
|
|
1684
1684
|
}
|
|
1685
|
+
/**
|
|
1686
|
+
* https://developers.zoom.us/docs/api/meetings/#tag/meetings/GET/past_meetings/{meetingId}
|
|
1687
|
+
*/
|
|
1688
|
+
function getPastMeeting(context) {
|
|
1689
|
+
return input => context.fetchJson(`/past_meetings/${input.meetingId}`, 'GET');
|
|
1690
|
+
}
|
|
1691
|
+
/**
|
|
1692
|
+
* https://developers.zoom.us/docs/api/meetings/#tag/meetings/GET/past_meetings/{meetingId}/participants
|
|
1693
|
+
*/
|
|
1694
|
+
function getPastMeetingParticipants(context) {
|
|
1695
|
+
return input => context.fetchJson(`/past_meetings/${input.meetingId}/participants`, 'GET').then(mapToZoomPageResult('participants'));
|
|
1696
|
+
}
|
|
1697
|
+
function getPastMeetingParticipantsPageFactory(context) {
|
|
1698
|
+
return zoomFetchPageFactory(getPastMeetingParticipants(context));
|
|
1699
|
+
}
|
|
1685
1700
|
|
|
1701
|
+
/**
|
|
1702
|
+
* The type of meeting:
|
|
1703
|
+
* - `1` - An instant meeting.
|
|
1704
|
+
* - `2` - A scheduled meeting.
|
|
1705
|
+
* - `3` - A recurring meeting with no fixed time.
|
|
1706
|
+
* - `4` - A PMI Meeting.
|
|
1707
|
+
* - `8` - A recurring meeting with fixed time.
|
|
1708
|
+
* - `10` - A screen share only meeting.
|
|
1709
|
+
*/
|
|
1686
1710
|
exports.ZoomMeetingType = void 0;
|
|
1687
1711
|
(function (ZoomMeetingType) {
|
|
1688
1712
|
ZoomMeetingType[ZoomMeetingType["INSTANT"] = 1] = "INSTANT";
|
|
1689
1713
|
ZoomMeetingType[ZoomMeetingType["SCHEDULED"] = 2] = "SCHEDULED";
|
|
1690
1714
|
ZoomMeetingType[ZoomMeetingType["RECURRING_NO_FIXED_TIME"] = 3] = "RECURRING_NO_FIXED_TIME";
|
|
1715
|
+
ZoomMeetingType[ZoomMeetingType["PMI"] = 4] = "PMI";
|
|
1691
1716
|
ZoomMeetingType[ZoomMeetingType["RECURRING_FIXED_TIME"] = 8] = "RECURRING_FIXED_TIME";
|
|
1717
|
+
ZoomMeetingType[ZoomMeetingType["SCREEN_SHARE_ONLY"] = 10] = "SCREEN_SHARE_ONLY";
|
|
1692
1718
|
})(exports.ZoomMeetingType || (exports.ZoomMeetingType = {}));
|
|
1693
1719
|
exports.ZoomRecurrenceType = void 0;
|
|
1694
1720
|
(function (ZoomRecurrenceType) {
|
|
@@ -2206,6 +2232,9 @@ exports.ZoomTooManyRequestsError = ZoomTooManyRequestsError;
|
|
|
2206
2232
|
exports.createMeetingForUser = createMeetingForUser;
|
|
2207
2233
|
exports.deleteMeeting = deleteMeeting;
|
|
2208
2234
|
exports.getMeeting = getMeeting;
|
|
2235
|
+
exports.getPastMeeting = getPastMeeting;
|
|
2236
|
+
exports.getPastMeetingParticipants = getPastMeetingParticipants;
|
|
2237
|
+
exports.getPastMeetingParticipantsPageFactory = getPastMeetingParticipantsPageFactory;
|
|
2209
2238
|
exports.getUser = getUser;
|
|
2210
2239
|
exports.handleZoomErrorFetch = handleZoomErrorFetch;
|
|
2211
2240
|
exports.handleZoomErrorFetchFactory = handleZoomErrorFetchFactory;
|
package/index.esm.js
CHANGED
|
@@ -1680,13 +1680,39 @@ function deleteMeeting(context) {
|
|
|
1680
1680
|
const silenceDoesNotExistError = silenceZoomErrorWithCodesFunction(DELETE_MEETING_DOES_NOT_EXIST_ERROR_CODE);
|
|
1681
1681
|
return input => context.fetchJson(`/meetings/${input.meetingId}?${makeUrlSearchParams(input, omitSilenceZoomErrorKeys())}`, 'DELETE').catch(silenceDoesNotExistError(input.silenceError));
|
|
1682
1682
|
}
|
|
1683
|
+
/**
|
|
1684
|
+
* https://developers.zoom.us/docs/api/meetings/#tag/meetings/GET/past_meetings/{meetingId}
|
|
1685
|
+
*/
|
|
1686
|
+
function getPastMeeting(context) {
|
|
1687
|
+
return input => context.fetchJson(`/past_meetings/${input.meetingId}`, 'GET');
|
|
1688
|
+
}
|
|
1689
|
+
/**
|
|
1690
|
+
* https://developers.zoom.us/docs/api/meetings/#tag/meetings/GET/past_meetings/{meetingId}/participants
|
|
1691
|
+
*/
|
|
1692
|
+
function getPastMeetingParticipants(context) {
|
|
1693
|
+
return input => context.fetchJson(`/past_meetings/${input.meetingId}/participants`, 'GET').then(mapToZoomPageResult('participants'));
|
|
1694
|
+
}
|
|
1695
|
+
function getPastMeetingParticipantsPageFactory(context) {
|
|
1696
|
+
return zoomFetchPageFactory(getPastMeetingParticipants(context));
|
|
1697
|
+
}
|
|
1683
1698
|
|
|
1699
|
+
/**
|
|
1700
|
+
* The type of meeting:
|
|
1701
|
+
* - `1` - An instant meeting.
|
|
1702
|
+
* - `2` - A scheduled meeting.
|
|
1703
|
+
* - `3` - A recurring meeting with no fixed time.
|
|
1704
|
+
* - `4` - A PMI Meeting.
|
|
1705
|
+
* - `8` - A recurring meeting with fixed time.
|
|
1706
|
+
* - `10` - A screen share only meeting.
|
|
1707
|
+
*/
|
|
1684
1708
|
var ZoomMeetingType;
|
|
1685
1709
|
(function (ZoomMeetingType) {
|
|
1686
1710
|
ZoomMeetingType[ZoomMeetingType["INSTANT"] = 1] = "INSTANT";
|
|
1687
1711
|
ZoomMeetingType[ZoomMeetingType["SCHEDULED"] = 2] = "SCHEDULED";
|
|
1688
1712
|
ZoomMeetingType[ZoomMeetingType["RECURRING_NO_FIXED_TIME"] = 3] = "RECURRING_NO_FIXED_TIME";
|
|
1713
|
+
ZoomMeetingType[ZoomMeetingType["PMI"] = 4] = "PMI";
|
|
1689
1714
|
ZoomMeetingType[ZoomMeetingType["RECURRING_FIXED_TIME"] = 8] = "RECURRING_FIXED_TIME";
|
|
1715
|
+
ZoomMeetingType[ZoomMeetingType["SCREEN_SHARE_ONLY"] = 10] = "SCREEN_SHARE_ONLY";
|
|
1690
1716
|
})(ZoomMeetingType || (ZoomMeetingType = {}));
|
|
1691
1717
|
var ZoomRecurrenceType;
|
|
1692
1718
|
(function (ZoomRecurrenceType) {
|
|
@@ -2181,4 +2207,4 @@ function zoomOAuthZoomAccessTokenFactory(config) {
|
|
|
2181
2207
|
};
|
|
2182
2208
|
}
|
|
2183
2209
|
|
|
2184
|
-
export { DEFAULT_ZOOM_API_RATE_LIMIT, DEFAULT_ZOOM_API_RATE_LIMIT_RESET_PERIOD, DEFAULT_ZOOM_RATE_LIMITED_TOO_MANY_REQUETS_LOG_FUNCTION, DELETE_MEETING_DOES_NOT_EXIST_ERROR_CODE, ZOOM_ACCOUNTS_INVALID_GRANT_ERROR_CODE, ZOOM_API_URL, ZOOM_OAUTH_API_URL, ZOOM_RATE_LIMIT_CATEGORY_HEADER, ZOOM_RATE_LIMIT_LIMIT_HEADER, ZOOM_RATE_LIMIT_REMAINING_HEADER, ZOOM_RATE_LIMIT_RETRY_AFTER_HEADER, ZOOM_RATE_LIMIT_TYPE_HEADER, ZOOM_SUCCESS_CODE, ZOOM_TOO_MANY_REQUESTS_ERROR_CODE, ZOOM_TOO_MANY_REQUESTS_HTTP_STATUS_CODE, ZoomApprovalType, ZoomMeetingType, ZoomMonthlyWeek, ZoomMonthlyWeekDay, ZoomOAuthAccessTokenError, ZoomOAuthAuthFailureError, ZoomRecurrenceType, ZoomRegistrationType, ZoomServerError, ZoomServerFetchResponseError, ZoomTooManyRequestsError, ZoomUserType, createMeetingForUser, deleteMeeting, getMeeting, getUser, handleZoomErrorFetch, handleZoomErrorFetchFactory, handleZoomOAuthErrorFetch, listMeetingsForUser, listMeetingsForUserPageFactory, listUsers, listUsersPageFactory, logZoomErrorToConsole, logZoomOAuthErrorToConsole, logZoomServerErrorFunction, mapToZoomPageResult, omitSilenceZoomErrorKeys, parseZoomApiError, parseZoomApiServerErrorResponseData, parseZoomOAuthError, parseZoomOAuthServerErrorResponseData, parseZoomServerErrorData, serverAccessToken, silenceZoomErrorWithCodesFunction, userAccessToken, zoomAccessTokenStringFactory, zoomFactory, zoomFetchPageFactory, zoomOAuthApiFetchJsonInput, zoomOAuthFactory, zoomOAuthServerBasicAuthorizationHeaderValue, zoomOAuthZoomAccessTokenFactory, zoomRateLimitHeaderDetails, zoomRateLimitedFetchHandler };
|
|
2210
|
+
export { DEFAULT_ZOOM_API_RATE_LIMIT, DEFAULT_ZOOM_API_RATE_LIMIT_RESET_PERIOD, DEFAULT_ZOOM_RATE_LIMITED_TOO_MANY_REQUETS_LOG_FUNCTION, DELETE_MEETING_DOES_NOT_EXIST_ERROR_CODE, ZOOM_ACCOUNTS_INVALID_GRANT_ERROR_CODE, ZOOM_API_URL, ZOOM_OAUTH_API_URL, ZOOM_RATE_LIMIT_CATEGORY_HEADER, ZOOM_RATE_LIMIT_LIMIT_HEADER, ZOOM_RATE_LIMIT_REMAINING_HEADER, ZOOM_RATE_LIMIT_RETRY_AFTER_HEADER, ZOOM_RATE_LIMIT_TYPE_HEADER, ZOOM_SUCCESS_CODE, ZOOM_TOO_MANY_REQUESTS_ERROR_CODE, ZOOM_TOO_MANY_REQUESTS_HTTP_STATUS_CODE, ZoomApprovalType, ZoomMeetingType, ZoomMonthlyWeek, ZoomMonthlyWeekDay, ZoomOAuthAccessTokenError, ZoomOAuthAuthFailureError, ZoomRecurrenceType, ZoomRegistrationType, ZoomServerError, ZoomServerFetchResponseError, ZoomTooManyRequestsError, ZoomUserType, createMeetingForUser, deleteMeeting, getMeeting, getPastMeeting, getPastMeetingParticipants, getPastMeetingParticipantsPageFactory, getUser, handleZoomErrorFetch, handleZoomErrorFetchFactory, handleZoomOAuthErrorFetch, listMeetingsForUser, listMeetingsForUserPageFactory, listUsers, listUsersPageFactory, logZoomErrorToConsole, logZoomOAuthErrorToConsole, logZoomServerErrorFunction, mapToZoomPageResult, omitSilenceZoomErrorKeys, parseZoomApiError, parseZoomApiServerErrorResponseData, parseZoomOAuthError, parseZoomOAuthServerErrorResponseData, parseZoomServerErrorData, serverAccessToken, silenceZoomErrorWithCodesFunction, userAccessToken, zoomAccessTokenStringFactory, zoomFactory, zoomFetchPageFactory, zoomOAuthApiFetchJsonInput, zoomOAuthFactory, zoomOAuthServerBasicAuthorizationHeaderValue, zoomOAuthZoomAccessTokenFactory, zoomRateLimitHeaderDetails, zoomRateLimitedFetchHandler };
|
package/nestjs/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [12.1.6](https://github.com/dereekb/dbx-components/compare/v12.1.5-dev...v12.1.6) (2025-06-04)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [12.1.5](https://github.com/dereekb/dbx-components/compare/v12.1.4-dev...v12.1.5) (2025-05-30)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
5
13
|
## [12.1.4](https://github.com/dereekb/dbx-components/compare/v12.1.3-dev...v12.1.4) (2025-05-22)
|
|
6
14
|
|
|
7
15
|
|
package/nestjs/package.json
CHANGED
package/nestjs/src/lib/index.js
CHANGED
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./oauth"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./webhook"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./zoom"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/zoom/nestjs/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,iDAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/zoom/nestjs/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,oDAA0B;AAC1B,iDAAuB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './webhook.zoom.config';
|
|
2
|
+
export * from './webhook.zoom.controller';
|
|
3
|
+
export * from './webhook.zoom.module';
|
|
4
|
+
export * from './webhook.zoom.service';
|
|
5
|
+
export * from './webhook.zoom';
|
|
6
|
+
export * from './webhook.zoom.type';
|
|
7
|
+
export * from './webhook.zoom.type.common';
|
|
8
|
+
export * from './webhook.zoom.type.meeting';
|
|
9
|
+
export * from './webhook.zoom.type.validate';
|
|
10
|
+
export * from './webhook.zoom.verify';
|
|
11
|
+
export * from './webhook.zoom.validate';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./webhook.zoom.config"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./webhook.zoom.controller"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./webhook.zoom.module"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./webhook.zoom.service"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./webhook.zoom"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./webhook.zoom.type"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./webhook.zoom.type.common"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./webhook.zoom.type.meeting"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./webhook.zoom.type.validate"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./webhook.zoom.verify"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./webhook.zoom.validate"), exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,oEAA0C;AAC1C,gEAAsC;AACtC,iEAAuC;AACvC,yDAA+B;AAC/B,8DAAoC;AACpC,qEAA2C;AAC3C,sEAA4C;AAC5C,uEAA6C;AAC7C,gEAAsC;AACtC,kEAAwC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ZoomSecretToken } from '@dereekb/zoom';
|
|
2
|
+
export declare const ZOOM_SECRET_TOKEN_ENV_VAR = "ZOOM_SECRET_TOKEN";
|
|
3
|
+
export interface ZoomWebhookConfig {
|
|
4
|
+
readonly zoomSecretToken: ZoomSecretToken;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for ZoomService
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class ZoomWebhookServiceConfig {
|
|
10
|
+
readonly webhookConfig: ZoomWebhookConfig;
|
|
11
|
+
static assertValidConfig(config: ZoomWebhookServiceConfig): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZoomWebhookServiceConfig = exports.ZOOM_SECRET_TOKEN_ENV_VAR = void 0;
|
|
4
|
+
exports.ZOOM_SECRET_TOKEN_ENV_VAR = 'ZOOM_SECRET_TOKEN';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for ZoomService
|
|
7
|
+
*/
|
|
8
|
+
class ZoomWebhookServiceConfig {
|
|
9
|
+
webhookConfig;
|
|
10
|
+
static assertValidConfig(config) {
|
|
11
|
+
if (!config.webhookConfig.zoomSecretToken) {
|
|
12
|
+
throw new Error('No zoom secret token specified.');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ZoomWebhookServiceConfig = ZoomWebhookServiceConfig;
|
|
17
|
+
//# sourceMappingURL=webhook.zoom.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.config.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.config.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAAG,mBAAmB,CAAC;AAM7D;;GAEG;AACH,MAAsB,wBAAwB;IACnC,aAAa,CAAqB;IAE3C,MAAM,CAAC,iBAAiB,CAAC,MAAgC;QACvD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF;AARD,4DAQC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RawBodyBuffer } from '@dereekb/nestjs';
|
|
2
|
+
import { Request, Response } from 'express';
|
|
3
|
+
import { ZoomWebhookService } from './webhook.zoom.service';
|
|
4
|
+
export declare class ZoomWebhookController {
|
|
5
|
+
readonly zoomWebhookService: ZoomWebhookService;
|
|
6
|
+
constructor(zoomWebhookService: ZoomWebhookService);
|
|
7
|
+
handleZoomWebhook(res: Response, req: Request, rawBody: RawBodyBuffer): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZoomWebhookController = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const nestjs_1 = require("@dereekb/nestjs");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const webhook_zoom_service_1 = require("./webhook.zoom.service");
|
|
8
|
+
let ZoomWebhookController = class ZoomWebhookController {
|
|
9
|
+
zoomWebhookService;
|
|
10
|
+
constructor(zoomWebhookService) {
|
|
11
|
+
this.zoomWebhookService = zoomWebhookService;
|
|
12
|
+
}
|
|
13
|
+
async handleZoomWebhook(res, req, rawBody) {
|
|
14
|
+
const { validationEventResponse } = await this.zoomWebhookService.updateForWebhook(req, rawBody);
|
|
15
|
+
if (validationEventResponse) {
|
|
16
|
+
res.json(validationEventResponse);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
res.json({});
|
|
20
|
+
}
|
|
21
|
+
res.status(200);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.ZoomWebhookController = ZoomWebhookController;
|
|
25
|
+
tslib_1.__decorate([
|
|
26
|
+
(0, common_1.Post)(),
|
|
27
|
+
tslib_1.__param(0, (0, common_1.Res)()),
|
|
28
|
+
tslib_1.__param(1, (0, common_1.Req)()),
|
|
29
|
+
tslib_1.__param(2, (0, nestjs_1.RawBody)()),
|
|
30
|
+
tslib_1.__metadata("design:type", Function),
|
|
31
|
+
tslib_1.__metadata("design:paramtypes", [Object, Object, Object]),
|
|
32
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
33
|
+
], ZoomWebhookController.prototype, "handleZoomWebhook", null);
|
|
34
|
+
exports.ZoomWebhookController = ZoomWebhookController = tslib_1.__decorate([
|
|
35
|
+
(0, common_1.Controller)('/webhook/zoom'),
|
|
36
|
+
tslib_1.__metadata("design:paramtypes", [webhook_zoom_service_1.ZoomWebhookService])
|
|
37
|
+
], ZoomWebhookController);
|
|
38
|
+
//# sourceMappingURL=webhook.zoom.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.controller.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.controller.ts"],"names":[],"mappings":";;;;AAAA,4CAAyD;AACzD,2CAA4D;AAE5D,iEAA4D;AAGrD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACvB,kBAAkB,CAAqB;IAEhD,YAAY,kBAAsC;QAChD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB,CAAQ,GAAa,EAAS,GAAY,EAAa,OAAsB;QAClG,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEjG,IAAI,uBAAuB,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;CACF,CAAA;AAnBY,sDAAqB;AAQ1B;IADL,IAAA,aAAI,GAAE;IACkB,mBAAA,IAAA,YAAG,GAAE,CAAA;IAAiB,mBAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,mBAAA,IAAA,gBAAO,GAAE,CAAA;;;;8DAU5E;gCAlBU,qBAAqB;IADjC,IAAA,mBAAU,EAAC,eAAe,CAAC;6CAIM,yCAAkB;GAHvC,qBAAqB,CAmBjC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HandlerBindAccessor, HandlerMappedSetFunction, Handler } from '@dereekb/util';
|
|
2
|
+
import { ZoomWebhookEventType } from './webhook.zoom.type';
|
|
3
|
+
import { ZoomWebhookEvent, UntypedZoomWebhookEvent } from './webhook.zoom.type.common';
|
|
4
|
+
import { ZoomWebhookMeetingCreatedEventPayload, ZoomWebhookMeetingDeletedEventPayload, ZoomWebhookMeetingEndedEventPayload, ZoomWebhookMeetingPermanentlyDeletedEventPayload, ZoomWebhookMeetingStartedEventPayload, ZoomWebhookMeetingUpdatedEventPayload } from './webhook.zoom.type.meeting';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a ZoomWebhookEvent and treats the data as the input type.
|
|
7
|
+
*
|
|
8
|
+
* @param event
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function zoomWebhookEvent<T>(event: UntypedZoomWebhookEvent): ZoomWebhookEvent<T>;
|
|
12
|
+
export type ZoomEventHandler = Handler<UntypedZoomWebhookEvent, ZoomWebhookEventType>;
|
|
13
|
+
export declare const zoomEventHandlerFactory: import("@dereekb/util").HandlerFactory<UntypedZoomWebhookEvent, string>;
|
|
14
|
+
export type ZoomHandlerMappedSetFunction<T> = HandlerMappedSetFunction<ZoomWebhookEvent<T>>;
|
|
15
|
+
export interface ZoomEventHandlerConfigurer extends HandlerBindAccessor<UntypedZoomWebhookEvent, ZoomWebhookEventType> {
|
|
16
|
+
handleMeetingCreated: ZoomHandlerMappedSetFunction<ZoomWebhookMeetingCreatedEventPayload>;
|
|
17
|
+
handleMeetingUpdated: ZoomHandlerMappedSetFunction<ZoomWebhookMeetingUpdatedEventPayload>;
|
|
18
|
+
handleMeetingDeleted: ZoomHandlerMappedSetFunction<ZoomWebhookMeetingDeletedEventPayload>;
|
|
19
|
+
handleMeetingStarted: ZoomHandlerMappedSetFunction<ZoomWebhookMeetingStartedEventPayload>;
|
|
20
|
+
handleMeetingEnded: ZoomHandlerMappedSetFunction<ZoomWebhookMeetingEndedEventPayload>;
|
|
21
|
+
handleMeetingPermanentlyDeleted: ZoomHandlerMappedSetFunction<ZoomWebhookMeetingPermanentlyDeletedEventPayload>;
|
|
22
|
+
}
|
|
23
|
+
export declare const zoomEventHandlerConfigurerFactory: import("@dereekb/util").HandlerConfigurerFactory<ZoomEventHandlerConfigurer, UntypedZoomWebhookEvent, string>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zoomEventHandlerConfigurerFactory = exports.zoomEventHandlerFactory = void 0;
|
|
4
|
+
exports.zoomWebhookEvent = zoomWebhookEvent;
|
|
5
|
+
const util_1 = require("@dereekb/util");
|
|
6
|
+
const webhook_zoom_type_meeting_1 = require("./webhook.zoom.type.meeting");
|
|
7
|
+
/**
|
|
8
|
+
* Creates a ZoomWebhookEvent and treats the data as the input type.
|
|
9
|
+
*
|
|
10
|
+
* @param event
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
function zoomWebhookEvent(event) {
|
|
14
|
+
return {
|
|
15
|
+
event: event.event,
|
|
16
|
+
event_ts: event.event_ts,
|
|
17
|
+
payload: event.payload
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.zoomEventHandlerFactory = (0, util_1.handlerFactory)((x) => x.event);
|
|
21
|
+
exports.zoomEventHandlerConfigurerFactory = (0, util_1.handlerConfigurerFactory)({
|
|
22
|
+
configurerForAccessor: (accessor) => {
|
|
23
|
+
// eslint-disable-next-line
|
|
24
|
+
const fnWithKey = (0, util_1.handlerMappedSetFunctionFactory)(accessor, zoomWebhookEvent);
|
|
25
|
+
const configurer = {
|
|
26
|
+
...accessor,
|
|
27
|
+
// Meetings
|
|
28
|
+
handleMeetingCreated: fnWithKey(webhook_zoom_type_meeting_1.ZOOM_WEBHOOK_MEETING_CREATED_EVENT_TYPE),
|
|
29
|
+
handleMeetingUpdated: fnWithKey(webhook_zoom_type_meeting_1.ZOOM_WEBHOOK_MEETING_UPDATED_EVENT_TYPE),
|
|
30
|
+
handleMeetingDeleted: fnWithKey(webhook_zoom_type_meeting_1.ZOOM_WEBHOOK_MEETING_DELETED_EVENT_TYPE),
|
|
31
|
+
handleMeetingStarted: fnWithKey(webhook_zoom_type_meeting_1.ZOOM_WEBHOOK_MEETING_STARTED_EVENT_TYPE),
|
|
32
|
+
handleMeetingEnded: fnWithKey(webhook_zoom_type_meeting_1.ZOOM_WEBHOOK_MEETING_ENDED_EVENT_TYPE),
|
|
33
|
+
handleMeetingPermanentlyDeleted: fnWithKey(webhook_zoom_type_meeting_1.ZOOM_WEBHOOK_MEETING_PERMANENTLY_DELETED_EVENT_TYPE)
|
|
34
|
+
};
|
|
35
|
+
return configurer;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=webhook.zoom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.ts"],"names":[],"mappings":";;;AAwBA,4CAMC;AA9BD,wCAAkK;AAGlK,2EAaqC;AAErC;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAI,KAA8B;IAChE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAuB;KACvC,CAAC;AACJ,CAAC;AAIY,QAAA,uBAAuB,GAAG,IAAA,qBAAc,EAA0B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAclF,QAAA,iCAAiC,GAAG,IAAA,+BAAwB,EAAsD;IAC7H,qBAAqB,EAAE,CAAC,QAA4E,EAAE,EAAE;QACtG,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAA,sCAA+B,EAA6B,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAE1G,MAAM,UAAU,GAA+B;YAC7C,GAAG,QAAQ;YACX,WAAW;YACX,oBAAoB,EAAE,SAAS,CAAC,mEAAuC,CAAC;YACxE,oBAAoB,EAAE,SAAS,CAAC,mEAAuC,CAAC;YACxE,oBAAoB,EAAE,SAAS,CAAC,mEAAuC,CAAC;YACxE,oBAAoB,EAAE,SAAS,CAAC,mEAAuC,CAAC;YACxE,kBAAkB,EAAE,SAAS,CAAC,iEAAqC,CAAC;YACpE,+BAA+B,EAAE,SAAS,CAAC,+EAAmD,CAAC;SAChG,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
2
|
+
import { ZoomWebhookServiceConfig } from './webhook.zoom.config';
|
|
3
|
+
export declare function zoomWebhookServiceConfigFactory(configService: ConfigService): ZoomWebhookServiceConfig;
|
|
4
|
+
/**
|
|
5
|
+
* Configures webhooks for the service.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ZoomWebhookModule {
|
|
8
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZoomWebhookModule = void 0;
|
|
4
|
+
exports.zoomWebhookServiceConfigFactory = zoomWebhookServiceConfigFactory;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const webhook_zoom_controller_1 = require("./webhook.zoom.controller");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const webhook_zoom_service_1 = require("./webhook.zoom.service");
|
|
9
|
+
const config_1 = require("@nestjs/config");
|
|
10
|
+
const webhook_zoom_config_1 = require("./webhook.zoom.config");
|
|
11
|
+
function zoomWebhookServiceConfigFactory(configService) {
|
|
12
|
+
const config = {
|
|
13
|
+
webhookConfig: {
|
|
14
|
+
zoomSecretToken: configService.get(webhook_zoom_config_1.ZOOM_SECRET_TOKEN_ENV_VAR)
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
webhook_zoom_config_1.ZoomWebhookServiceConfig.assertValidConfig(config);
|
|
18
|
+
return config;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configures webhooks for the service.
|
|
22
|
+
*/
|
|
23
|
+
let ZoomWebhookModule = class ZoomWebhookModule {
|
|
24
|
+
};
|
|
25
|
+
exports.ZoomWebhookModule = ZoomWebhookModule;
|
|
26
|
+
exports.ZoomWebhookModule = ZoomWebhookModule = tslib_1.__decorate([
|
|
27
|
+
(0, common_1.Module)({
|
|
28
|
+
imports: [config_1.ConfigModule],
|
|
29
|
+
controllers: [webhook_zoom_controller_1.ZoomWebhookController],
|
|
30
|
+
exports: [webhook_zoom_service_1.ZoomWebhookService],
|
|
31
|
+
providers: [
|
|
32
|
+
{
|
|
33
|
+
provide: webhook_zoom_config_1.ZoomWebhookServiceConfig,
|
|
34
|
+
inject: [config_1.ConfigService],
|
|
35
|
+
useFactory: zoomWebhookServiceConfigFactory
|
|
36
|
+
},
|
|
37
|
+
webhook_zoom_service_1.ZoomWebhookService
|
|
38
|
+
]
|
|
39
|
+
})
|
|
40
|
+
], ZoomWebhookModule);
|
|
41
|
+
//# sourceMappingURL=webhook.zoom.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.module.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.module.ts"],"names":[],"mappings":";;;AAMA,0EASC;;AAfD,uEAAkE;AAClE,2CAAwC;AACxC,iEAA4D;AAC5D,2CAA6D;AAC7D,+DAA4F;AAE5F,SAAgB,+BAA+B,CAAC,aAA4B;IAC1E,MAAM,MAAM,GAA6B;QACvC,aAAa,EAAE;YACb,eAAe,EAAE,aAAa,CAAC,GAAG,CAAS,+CAAyB,CAAW;SAChF;KACF,CAAC;IAEF,8CAAwB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AAcI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAb7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,CAAC;QACvB,WAAW,EAAE,CAAC,+CAAqB,CAAC;QACpC,OAAO,EAAE,CAAC,yCAAkB,CAAC;QAC7B,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,8CAAwB;gBACjC,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,+BAA+B;aAC5C;YACD,yCAAkB;SACnB;KACF,CAAC;GACW,iBAAiB,CAAG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Request } from 'express';
|
|
2
|
+
import { Handler, Maybe } from '@dereekb/util';
|
|
3
|
+
import { ZoomWebhookServiceConfig } from './webhook.zoom.config';
|
|
4
|
+
import { UntypedZoomWebhookEvent } from './webhook.zoom.type.common';
|
|
5
|
+
import { ZoomWebhookValidationResponse } from './webhook.zoom.validate';
|
|
6
|
+
export interface UpdateForWebhookResponse {
|
|
7
|
+
readonly valid: boolean;
|
|
8
|
+
readonly handled: boolean;
|
|
9
|
+
readonly event: UntypedZoomWebhookEvent;
|
|
10
|
+
readonly validationEventResponse?: Maybe<ZoomWebhookValidationResponse>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Service that makes system changes based on Zoom webhook events.
|
|
14
|
+
*/
|
|
15
|
+
export declare class ZoomWebhookService {
|
|
16
|
+
private readonly logger;
|
|
17
|
+
private readonly _verifier;
|
|
18
|
+
private readonly _validator;
|
|
19
|
+
readonly handler: Handler<UntypedZoomWebhookEvent>;
|
|
20
|
+
readonly configure: import("@dereekb/util").HandlerConfigurer<import("./webhook.zoom").ZoomEventHandlerConfigurer, UntypedZoomWebhookEvent, string>;
|
|
21
|
+
constructor(config: ZoomWebhookServiceConfig);
|
|
22
|
+
updateForWebhook(req: Request, rawBody: Buffer): Promise<UpdateForWebhookResponse>;
|
|
23
|
+
updateForZoomEvent(event: UntypedZoomWebhookEvent): Promise<boolean>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZoomWebhookService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const webhook_zoom_1 = require("./webhook.zoom");
|
|
7
|
+
const webhook_zoom_config_1 = require("./webhook.zoom.config");
|
|
8
|
+
const webhook_zoom_verify_1 = require("./webhook.zoom.verify");
|
|
9
|
+
const webhook_zoom_type_validate_1 = require("./webhook.zoom.type.validate");
|
|
10
|
+
const webhook_zoom_validate_1 = require("./webhook.zoom.validate");
|
|
11
|
+
/**
|
|
12
|
+
* Service that makes system changes based on Zoom webhook events.
|
|
13
|
+
*/
|
|
14
|
+
let ZoomWebhookService = class ZoomWebhookService {
|
|
15
|
+
logger = new common_1.Logger('ZoomWebhookService');
|
|
16
|
+
_verifier;
|
|
17
|
+
_validator;
|
|
18
|
+
handler = (0, webhook_zoom_1.zoomEventHandlerFactory)();
|
|
19
|
+
configure = (0, webhook_zoom_1.zoomEventHandlerConfigurerFactory)(this.handler);
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this._verifier = (0, webhook_zoom_verify_1.zoomWebhookEventVerifier)(config.webhookConfig.zoomSecretToken);
|
|
22
|
+
this._validator = (0, webhook_zoom_validate_1.zoomWebhookEventValidationFunction)(config.webhookConfig.zoomSecretToken);
|
|
23
|
+
}
|
|
24
|
+
async updateForWebhook(req, rawBody) {
|
|
25
|
+
const { valid, event } = this._verifier(req, rawBody);
|
|
26
|
+
let handled = false;
|
|
27
|
+
let validationEventResponse;
|
|
28
|
+
if (!valid) {
|
|
29
|
+
this.logger.warn('Received invalid zoom event: ', event);
|
|
30
|
+
}
|
|
31
|
+
else if (event.event === webhook_zoom_type_validate_1.ZOOM_WEBHOOK_URL_VALIDATION_EVENT_TYPE) {
|
|
32
|
+
handled = true;
|
|
33
|
+
validationEventResponse = this._validator(event);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
handled = await this.updateForZoomEvent(event);
|
|
37
|
+
}
|
|
38
|
+
const result = {
|
|
39
|
+
valid,
|
|
40
|
+
handled,
|
|
41
|
+
event,
|
|
42
|
+
validationEventResponse
|
|
43
|
+
};
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
async updateForZoomEvent(event) {
|
|
47
|
+
const handled = await this.handler(event);
|
|
48
|
+
if (!handled) {
|
|
49
|
+
this.logger.warn('Received unexpected/unhandled zoom event: ', event);
|
|
50
|
+
}
|
|
51
|
+
return handled;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.ZoomWebhookService = ZoomWebhookService;
|
|
55
|
+
exports.ZoomWebhookService = ZoomWebhookService = tslib_1.__decorate([
|
|
56
|
+
(0, common_1.Injectable)(),
|
|
57
|
+
tslib_1.__param(0, (0, common_1.Inject)(webhook_zoom_config_1.ZoomWebhookServiceConfig)),
|
|
58
|
+
tslib_1.__metadata("design:paramtypes", [webhook_zoom_config_1.ZoomWebhookServiceConfig])
|
|
59
|
+
], ZoomWebhookService);
|
|
60
|
+
//# sourceMappingURL=webhook.zoom.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.service.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4D;AAE5D,iDAA4F;AAE5F,+DAAiE;AACjE,+DAA2F;AAE3F,6EAAqH;AACrH,mEAAgJ;AAShJ;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACZ,MAAM,GAAG,IAAI,eAAM,CAAC,oBAAoB,CAAC,CAAC;IAE1C,SAAS,CAA2B;IACpC,UAAU,CAAqC;IAEvD,OAAO,GAAqC,IAAA,sCAAuB,GAAE,CAAC;IACtE,SAAS,GAAG,IAAA,gDAAiC,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAErE,YAA8C,MAAgC;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAA,8CAAwB,EAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,IAAA,0DAAkC,EAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC7F,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,GAAY,EAAE,OAAe;QACzD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,IAAI,uBAAkE,CAAC;QAEvE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,mEAAsC,EAAE,CAAC;YAClE,OAAO,GAAG,IAAI,CAAC;YACf,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAsC,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,MAAM,GAA6B;YACvC,KAAK;YACL,OAAO;YACP,KAAK;YACL,uBAAuB;SACxB,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAA8B;QACrD,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AA/CY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAUE,mBAAA,IAAA,eAAM,EAAC,8CAAwB,CAAC,CAAA;6CAAS,8CAAwB;GATnE,kBAAkB,CA+C9B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { EmailAddress } from '@dereekb/util';
|
|
2
|
+
import { ZoomAccountId, ZoomUserId, ZoomWebhookEventTypeString, ZoomWebhookTimestamp } from '@dereekb/zoom';
|
|
3
|
+
/**
|
|
4
|
+
* A parsed RawZoomWebhookEvent that contains the relevant data and the original event.
|
|
5
|
+
*/
|
|
6
|
+
export interface ZoomWebhookEvent<T, ET extends ZoomWebhookEventTypeString = ZoomWebhookEventTypeString> {
|
|
7
|
+
readonly event: ET;
|
|
8
|
+
readonly event_ts: ZoomWebhookTimestamp;
|
|
9
|
+
readonly payload: T;
|
|
10
|
+
}
|
|
11
|
+
export type UntypedZoomWebhookEvent = ZoomWebhookEvent<any>;
|
|
12
|
+
export interface ZoomWebhookAccountIdAndObjectPayloadData<T = unknown> {
|
|
13
|
+
readonly account_id: ZoomAccountId;
|
|
14
|
+
readonly object: T;
|
|
15
|
+
}
|
|
16
|
+
export interface ZoomWebhookOperatorAndObjectPayloadData<T = unknown> extends ZoomWebhookAccountIdAndObjectPayloadData<T> {
|
|
17
|
+
/**
|
|
18
|
+
* User id of the person who performed the action.
|
|
19
|
+
*/
|
|
20
|
+
readonly operator_id: ZoomUserId;
|
|
21
|
+
/**
|
|
22
|
+
* Email address of the person who performed the action.
|
|
23
|
+
*/
|
|
24
|
+
readonly operator: EmailAddress;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* "The type of operation performed.
|
|
28
|
+
* all - The change was applied to all meetings.
|
|
29
|
+
* single - The change was applied only to a single meeting.
|
|
30
|
+
*/
|
|
31
|
+
export type ZoomWebhookOperationType = 'all' | 'single';
|
|
32
|
+
export interface ZoomWebhookOperationAndObjectPayloadData<T = unknown> extends ZoomWebhookOperatorAndObjectPayloadData<T> {
|
|
33
|
+
/**
|
|
34
|
+
* The type of operation performed.
|
|
35
|
+
*/
|
|
36
|
+
readonly operation: ZoomWebhookOperationType;
|
|
37
|
+
}
|
|
38
|
+
export interface ZoomWebhookTimestampRef {
|
|
39
|
+
readonly time_stamp: ZoomWebhookTimestamp;
|
|
40
|
+
}
|
|
41
|
+
export interface ZoomWebhookOldObjectRef<T = unknown> {
|
|
42
|
+
readonly old_object: T;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.type.common.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.type.common.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.type.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PastZoomMeeting, ZoomMeeting, ZoomMeetingIssue } from '@dereekb/zoom';
|
|
2
|
+
import { ZoomWebhookAccountIdAndObjectPayloadData, ZoomWebhookEvent, ZoomWebhookOldObjectRef, ZoomWebhookOperationAndObjectPayloadData, ZoomWebhookTimestampRef } from './webhook.zoom.type.common';
|
|
3
|
+
export type ZoomWebhookMeetingEventType = ZoomWebhookMeetingAlertEventType | ZoomWebhookMeetingCreatedEventType | ZoomWebhookMeetingUpdatedEventType | ZoomWebhookMeetingDeletedEventType | ZoomWebhookMeetingStartedEventType | ZoomWebhookMeetingEndedEventType | ZoomWebhookMeetingPermanentlyDeletedEventType;
|
|
4
|
+
export type BasicZoomWebhookMeetingZoomEventPayloadObject = Pick<ZoomMeeting, 'id' | 'uuid' | 'host_id' | 'topic' | 'type' | 'start_time' | 'duration' | 'timezone'>;
|
|
5
|
+
export declare const ZOOM_WEBHOOK_MEETING_ALERT_EVENT_TYPE = "meeting.alert";
|
|
6
|
+
export type ZoomWebhookMeetingAlertEventType = typeof ZOOM_WEBHOOK_MEETING_ALERT_EVENT_TYPE;
|
|
7
|
+
export type ZoomWebhookMeetingAlertEventPayloadObject = BasicZoomWebhookMeetingZoomEventPayloadObject & {
|
|
8
|
+
readonly issues: ZoomMeetingIssue[];
|
|
9
|
+
};
|
|
10
|
+
export type ZoomWebhookMeetingAlertEventPayload = ZoomWebhookAccountIdAndObjectPayloadData<ZoomWebhookMeetingAlertEventPayloadObject>;
|
|
11
|
+
export type ZoomWebhookMeetingAlertEvent = ZoomWebhookEvent<ZoomWebhookMeetingAlertEventPayload, ZoomWebhookMeetingAlertEventType>;
|
|
12
|
+
export declare const ZOOM_WEBHOOK_MEETING_CREATED_EVENT_TYPE = "meeting.created";
|
|
13
|
+
export type ZoomWebhookMeetingCreatedEventType = typeof ZOOM_WEBHOOK_MEETING_CREATED_EVENT_TYPE;
|
|
14
|
+
export type ZoomWebhookMeetingCreatedEventPayloadObject = BasicZoomWebhookMeetingZoomEventPayloadObject & Pick<ZoomMeeting, 'join_url' | 'password' | 'pmi' | 'occurrences' | 'settings' | 'recurrence' | 'tracking_fields'>;
|
|
15
|
+
export type ZoomWebhookMeetingCreatedEventPayload = ZoomWebhookOperationAndObjectPayloadData<ZoomWebhookMeetingCreatedEventPayloadObject>;
|
|
16
|
+
export type ZoomWebhookMeetingCreatedEvent = ZoomWebhookEvent<ZoomWebhookMeetingCreatedEventPayload, ZoomWebhookMeetingCreatedEventType>;
|
|
17
|
+
export declare const ZOOM_WEBHOOK_MEETING_UPDATED_EVENT_TYPE = "meeting.updated";
|
|
18
|
+
export type ZoomWebhookMeetingUpdatedEventType = typeof ZOOM_WEBHOOK_MEETING_UPDATED_EVENT_TYPE;
|
|
19
|
+
export type ZoomWebhookMeetingUpdatedEventPayloadObject = BasicZoomWebhookMeetingZoomEventPayloadObject & Pick<ZoomMeeting, 'join_url' | 'agenda' | 'registration_url' | 'occurrences' | 'settings' | 'recurrence' | 'tracking_fields'>;
|
|
20
|
+
export type ZoomWebhookMeetingUpdatedEventPayload = ZoomWebhookOperationAndObjectPayloadData<ZoomWebhookMeetingUpdatedEventPayloadObject> & ZoomWebhookTimestampRef & ZoomWebhookOldObjectRef<ZoomWebhookMeetingUpdatedEventPayloadObject>;
|
|
21
|
+
export type ZoomWebhookMeetingUpdatedEvent = ZoomWebhookEvent<ZoomWebhookMeetingUpdatedEventPayload, ZoomWebhookMeetingUpdatedEventType>;
|
|
22
|
+
export declare const ZOOM_WEBHOOK_MEETING_DELETED_EVENT_TYPE = "meeting.deleted";
|
|
23
|
+
export type ZoomWebhookMeetingDeletedEventType = typeof ZOOM_WEBHOOK_MEETING_DELETED_EVENT_TYPE;
|
|
24
|
+
export type ZoomWebhookMeetingDeletedEventPayloadObject = BasicZoomWebhookMeetingZoomEventPayloadObject & Pick<ZoomMeeting, 'occurrences'>;
|
|
25
|
+
export type ZoomWebhookMeetingDeletedEventPayload = ZoomWebhookOperationAndObjectPayloadData<ZoomWebhookMeetingDeletedEventPayloadObject>;
|
|
26
|
+
export type ZoomWebhookMeetingDeletedEvent = ZoomWebhookEvent<ZoomWebhookMeetingDeletedEventPayload, ZoomWebhookMeetingDeletedEventType>;
|
|
27
|
+
export declare const ZOOM_WEBHOOK_MEETING_STARTED_EVENT_TYPE = "meeting.started";
|
|
28
|
+
export type ZoomWebhookMeetingStartedEventType = typeof ZOOM_WEBHOOK_MEETING_STARTED_EVENT_TYPE;
|
|
29
|
+
export type ZoomWebhookMeetingStartedEventPayloadObject = Pick<ZoomMeeting, 'uuid' | 'id' | 'host_id' | 'topic' | 'type' | 'start_time' | 'timezone'>;
|
|
30
|
+
export type ZoomWebhookMeetingStartedEventPayload = ZoomWebhookAccountIdAndObjectPayloadData<ZoomWebhookMeetingStartedEventPayloadObject>;
|
|
31
|
+
export type ZoomWebhookMeetingStartedEvent = ZoomWebhookEvent<ZoomWebhookMeetingStartedEventPayload, ZoomWebhookMeetingStartedEventType>;
|
|
32
|
+
export declare const ZOOM_WEBHOOK_MEETING_ENDED_EVENT_TYPE = "meeting.ended";
|
|
33
|
+
export type ZoomWebhookMeetingEndedEventType = typeof ZOOM_WEBHOOK_MEETING_ENDED_EVENT_TYPE;
|
|
34
|
+
export type ZoomWebhookMeetingEndedEventPayloadObject = BasicZoomWebhookMeetingZoomEventPayloadObject & Pick<PastZoomMeeting, 'end_time'>;
|
|
35
|
+
export type ZoomWebhookMeetingEndedEventPayload = ZoomWebhookAccountIdAndObjectPayloadData<ZoomWebhookMeetingEndedEventPayloadObject>;
|
|
36
|
+
export type ZoomWebhookMeetingEndedEvent = ZoomWebhookEvent<ZoomWebhookMeetingEndedEventPayload, ZoomWebhookMeetingEndedEventType>;
|
|
37
|
+
export declare const ZOOM_WEBHOOK_MEETING_PERMANENTLY_DELETED_EVENT_TYPE = "meeting.permanently_deleted";
|
|
38
|
+
export type ZoomWebhookMeetingPermanentlyDeletedEventType = typeof ZOOM_WEBHOOK_MEETING_PERMANENTLY_DELETED_EVENT_TYPE;
|
|
39
|
+
export type ZoomWebhookMeetingPermanentlyDeletedEventPayloadObject = ZoomWebhookMeetingDeletedEventPayloadObject;
|
|
40
|
+
export type ZoomWebhookMeetingPermanentlyDeletedEventPayload = ZoomWebhookAccountIdAndObjectPayloadData<ZoomWebhookMeetingPermanentlyDeletedEventPayloadObject>;
|
|
41
|
+
export type ZoomWebhookMeetingPermanentlyDeletedEvent = ZoomWebhookEvent<ZoomWebhookMeetingPermanentlyDeletedEventPayload, ZoomWebhookMeetingPermanentlyDeletedEventType>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZOOM_WEBHOOK_MEETING_PERMANENTLY_DELETED_EVENT_TYPE = exports.ZOOM_WEBHOOK_MEETING_ENDED_EVENT_TYPE = exports.ZOOM_WEBHOOK_MEETING_STARTED_EVENT_TYPE = exports.ZOOM_WEBHOOK_MEETING_DELETED_EVENT_TYPE = exports.ZOOM_WEBHOOK_MEETING_UPDATED_EVENT_TYPE = exports.ZOOM_WEBHOOK_MEETING_CREATED_EVENT_TYPE = exports.ZOOM_WEBHOOK_MEETING_ALERT_EVENT_TYPE = void 0;
|
|
4
|
+
// MARK: Meeting Alert
|
|
5
|
+
exports.ZOOM_WEBHOOK_MEETING_ALERT_EVENT_TYPE = 'meeting.alert';
|
|
6
|
+
// MARK: Meeting Created
|
|
7
|
+
exports.ZOOM_WEBHOOK_MEETING_CREATED_EVENT_TYPE = 'meeting.created';
|
|
8
|
+
// MARK: Meeting Updated
|
|
9
|
+
exports.ZOOM_WEBHOOK_MEETING_UPDATED_EVENT_TYPE = 'meeting.updated';
|
|
10
|
+
// MARK: Meeting Deleted
|
|
11
|
+
exports.ZOOM_WEBHOOK_MEETING_DELETED_EVENT_TYPE = 'meeting.deleted';
|
|
12
|
+
// MARK: Meeting Started
|
|
13
|
+
exports.ZOOM_WEBHOOK_MEETING_STARTED_EVENT_TYPE = 'meeting.started';
|
|
14
|
+
// MARK: Meeting Ended
|
|
15
|
+
exports.ZOOM_WEBHOOK_MEETING_ENDED_EVENT_TYPE = 'meeting.ended';
|
|
16
|
+
// MARK: Meeting Permanently Deleted
|
|
17
|
+
exports.ZOOM_WEBHOOK_MEETING_PERMANENTLY_DELETED_EVENT_TYPE = 'meeting.permanently_deleted';
|
|
18
|
+
//# sourceMappingURL=webhook.zoom.type.meeting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zoom.type.meeting.js","sourceRoot":"","sources":["../../../../../../../packages/zoom/nestjs/src/lib/webhook/webhook.zoom.type.meeting.ts"],"names":[],"mappings":";;;AAOA,sBAAsB;AACT,QAAA,qCAAqC,GAAG,eAAe,CAAC;AAQrE,wBAAwB;AACX,QAAA,uCAAuC,GAAG,iBAAiB,CAAC;AAMzE,wBAAwB;AACX,QAAA,uCAAuC,GAAG,iBAAiB,CAAC;AAMzE,wBAAwB;AACX,QAAA,uCAAuC,GAAG,iBAAiB,CAAC;AAMzE,wBAAwB;AACX,QAAA,uCAAuC,GAAG,iBAAiB,CAAC;AAMzE,sBAAsB;AACT,QAAA,qCAAqC,GAAG,eAAe,CAAC;AAMrE,oCAAoC;AACvB,QAAA,mDAAmD,GAAG,6BAA6B,CAAC"}
|