zaccl 3.0.18 → 4.1.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.
Files changed (68) hide show
  1. package/docs/ECatCloudRecording.js.html +69 -26
  2. package/docs/ECatGroup.js.html +213 -0
  3. package/docs/ECatMeeting.js.html +79 -11
  4. package/docs/ECatUser.js.html +7 -10
  5. package/docs/ECatWebinar.js.html +6 -5
  6. package/docs/api.cloudRecording.html +368 -28
  7. package/docs/api.group.html +396 -0
  8. package/docs/api.meeting.html +466 -15
  9. package/docs/api.user.html +10 -10
  10. package/docs/api.webinar.html +5 -5
  11. package/docs/index.html +1 -1
  12. package/lib/endpoints/ECatCloudRecording.d.ts +34 -8
  13. package/lib/endpoints/ECatCloudRecording.js +68 -25
  14. package/lib/endpoints/ECatCloudRecording.js.map +1 -1
  15. package/lib/endpoints/ECatGroup.d.ts +45 -0
  16. package/lib/endpoints/ECatGroup.js +148 -0
  17. package/lib/endpoints/ECatGroup.js.map +1 -0
  18. package/lib/endpoints/ECatMeeting.d.ts +43 -10
  19. package/lib/endpoints/ECatMeeting.js +78 -10
  20. package/lib/endpoints/ECatMeeting.js.map +1 -1
  21. package/lib/endpoints/ECatUser.d.ts +5 -5
  22. package/lib/endpoints/ECatUser.js +6 -9
  23. package/lib/endpoints/ECatUser.js.map +1 -1
  24. package/lib/endpoints/ECatWebinar.d.ts +4 -4
  25. package/lib/endpoints/ECatWebinar.js +5 -4
  26. package/lib/endpoints/ECatWebinar.js.map +1 -1
  27. package/lib/index.d.ts +22 -0
  28. package/lib/index.js +19 -0
  29. package/lib/index.js.map +1 -1
  30. package/lib/shared/helpers/genVisitEndpoint.js +154 -81
  31. package/lib/shared/helpers/genVisitEndpoint.js.map +1 -1
  32. package/lib/shared/types/VisitEndpointFunc.d.ts +3 -1
  33. package/lib/types/ZoomAPI.d.ts +2 -0
  34. package/lib/types/ZoomAPI.js.map +1 -1
  35. package/lib/types/ZoomGroup.d.ts +10 -0
  36. package/lib/types/ZoomGroup.js +3 -0
  37. package/lib/types/ZoomGroup.js.map +1 -0
  38. package/lib/types/ZoomGroupMember.d.ts +12 -0
  39. package/lib/types/ZoomGroupMember.js +3 -0
  40. package/lib/types/ZoomGroupMember.js.map +1 -0
  41. package/lib/types/ZoomMeetingTranscript.d.ts +17 -0
  42. package/lib/types/ZoomMeetingTranscript.js +3 -0
  43. package/lib/types/ZoomMeetingTranscript.js.map +1 -0
  44. package/lib/types/ZoomPastMeetingDetails.d.ts +22 -0
  45. package/lib/types/ZoomPastMeetingDetails.js +3 -0
  46. package/lib/types/ZoomPastMeetingDetails.js.map +1 -0
  47. package/lib/types/ZoomPastMeetingParticipant.d.ts +18 -0
  48. package/lib/types/ZoomPastMeetingParticipant.js +3 -0
  49. package/lib/types/ZoomPastMeetingParticipant.js.map +1 -0
  50. package/lib/types/ZoomRecordingInAccount.d.ts +22 -0
  51. package/lib/types/ZoomRecordingInAccount.js +3 -0
  52. package/lib/types/ZoomRecordingInAccount.js.map +1 -0
  53. package/package.json +2 -2
  54. package/src/endpoints/ECatCloudRecording.ts +83 -29
  55. package/src/endpoints/ECatGroup.ts +97 -0
  56. package/src/endpoints/ECatMeeting.ts +85 -10
  57. package/src/endpoints/ECatUser.ts +6 -9
  58. package/src/endpoints/ECatWebinar.ts +5 -4
  59. package/src/index.ts +53 -0
  60. package/src/shared/helpers/genVisitEndpoint.ts +143 -77
  61. package/src/shared/types/VisitEndpointFunc.ts +6 -2
  62. package/src/types/ZoomAPI.ts +2 -0
  63. package/src/types/ZoomGroup.ts +14 -0
  64. package/src/types/ZoomGroupMember.ts +20 -0
  65. package/src/types/ZoomMeetingTranscript.ts +28 -0
  66. package/src/types/ZoomPastMeetingDetails.ts +38 -0
  67. package/src/types/ZoomPastMeetingParticipant.ts +30 -0
  68. package/src/types/ZoomRecordingInAccount.ts +38 -0
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -63,94 +74,156 @@ var genVisitEndpoint = function (zoomAPIConfig) {
63
74
  * @param [opts.postProcessor] function that processes the response before
64
75
  * returning
65
76
  * @param [opts.params] Parameters/args/body to send with request
77
+ * @param [opts.onNewPage] callback function that is called when a
78
+ * new page of results is received
79
+ * @param [opts.itemKey] the key in the response body where the list of items can be found
80
+ * @param [opts.minMsBetweenPageRequests] minimum time (in ms) to wait between
81
+ * paginated requests, for custom throttle control
66
82
  * @returns response body
67
83
  */
68
84
  return function (opts) { return __awaiter(void 0, void 0, void 0, function () {
69
- var path, params, action, errorMap, postProcessor, method, _a, status, headers, body, rateLimitTypeHeader, rateLimitType, zoomErrorMessage, errorMessage, errorCode;
70
- var _b;
71
- return __generator(this, function (_c) {
72
- switch (_c.label) {
85
+ var path, params, action, errorMap, itemKey, onNewPage, minMsBetweenPageRequests, method, nextPageToken, isFirstPage, isPaginated, allItems, lastPageRequestTimestamp, _loop_1, state_1;
86
+ var _a;
87
+ return __generator(this, function (_b) {
88
+ switch (_b.label) {
73
89
  case 0:
74
- path = opts.path, params = opts.params, action = opts.action, errorMap = opts.errorMap, postProcessor = opts.postProcessor;
75
- method = ((_b = opts.method) !== null && _b !== void 0 ? _b : 'GET');
76
- return [4 /*yield*/, (0, sendZoomRequest_1.default)({
77
- path: path,
78
- method: method,
79
- params: params,
80
- zoomAPIConfig: zoomAPIConfig,
81
- })];
82
- case 1:
83
- _a = _c.sent(), status = _a.status, headers = _a.headers, body = _a.body;
84
- /* ----------- Rate Error ----------- */
85
- if (status === 429) {
86
- rateLimitTypeHeader = Object.keys(headers).filter(function (header) {
87
- return (header.toLowerCase() === 'x-ratelimit-type');
88
- })[0];
89
- rateLimitType = (headers[rateLimitTypeHeader]
90
- && headers[rateLimitTypeHeader].toLowerCase());
91
- if (rateLimitType === ThrottleHeader_1.default.DailyLimitHeader) {
92
- // Daily limit
93
- throw new ZACCLError_1.default({
94
- message: 'Zoom is very busy today. Please try this operation again tomorrow.',
95
- code: ErrorCode_1.default.DailyLimitError,
96
- });
97
- }
98
- else if (rateLimitType === ThrottleHeader_1.default.RateLimitHeader) {
99
- // Rate limit
100
- throw new ZACCLError_1.default({
101
- message: 'Zoom is very busy right now. Please try this operation again later.',
102
- code: ErrorCode_1.default.RateLimitError,
103
- });
104
- }
105
- else {
106
- // Unknown rate limit
107
- throw new ZACCLError_1.default({
108
- message: 'Zoom is very busy right now. Please try this operation again.',
109
- code: ErrorCode_1.default.UnknownLimitError,
110
- });
111
- }
112
- }
113
- /* -------- Custom Error Code ------- */
114
- if (status < 200 || status >= 300) {
115
- zoomErrorMessage = 'An unknown Zoom error occurred.';
116
- if (errorMap[status]) {
117
- if (typeof errorMap[status] === 'string') {
118
- // Found the error message
119
- zoomErrorMessage = errorMap[status];
120
- }
121
- else if (body.code) {
122
- // Check for nested error message
123
- if (typeof errorMap[status][body.code] === 'string') {
124
- // Found nested error message
125
- zoomErrorMessage = errorMap[status][body.code];
126
- }
127
- else if (body.message) {
128
- // errorMap[status][code] did not return err message
129
- // so we check body
130
- if (typeof body.message === 'string') {
131
- zoomErrorMessage = body.message;
90
+ path = opts.path, params = opts.params, action = opts.action, errorMap = opts.errorMap, itemKey = opts.itemKey, onNewPage = opts.onNewPage, minMsBetweenPageRequests = opts.minMsBetweenPageRequests;
91
+ method = ((_a = opts.method) !== null && _a !== void 0 ? _a : 'GET');
92
+ nextPageToken = undefined;
93
+ isFirstPage = true;
94
+ isPaginated = false;
95
+ allItems = [];
96
+ lastPageRequestTimestamp = 0;
97
+ _loop_1 = function () {
98
+ var now, timeSinceLastRequest_1, _c, status_1, headers, body, rateLimitTypeHeader, rateLimitType, zoomErrorMessage, errorMessage, errorCode, results;
99
+ return __generator(this, function (_d) {
100
+ switch (_d.label) {
101
+ case 0:
102
+ // Don't fetch another page unless we get a token
103
+ isFirstPage = false;
104
+ if (!minMsBetweenPageRequests) return [3 /*break*/, 3];
105
+ now = Date.now();
106
+ timeSinceLastRequest_1 = now - lastPageRequestTimestamp;
107
+ if (!(timeSinceLastRequest_1 < minMsBetweenPageRequests)) return [3 /*break*/, 2];
108
+ return [4 /*yield*/, new Promise(function (resolve) {
109
+ setTimeout(resolve, minMsBetweenPageRequests - timeSinceLastRequest_1);
110
+ })];
111
+ case 1:
112
+ _d.sent();
113
+ _d.label = 2;
114
+ case 2:
115
+ // Update timestamp of last page request
116
+ lastPageRequestTimestamp = Date.now();
117
+ _d.label = 3;
118
+ case 3: return [4 /*yield*/, (0, sendZoomRequest_1.default)({
119
+ path: path,
120
+ method: method,
121
+ params: __assign(__assign({}, params), { next_page_token: nextPageToken }),
122
+ zoomAPIConfig: zoomAPIConfig,
123
+ })];
124
+ case 4:
125
+ _c = _d.sent(), status_1 = _c.status, headers = _c.headers, body = _c.body;
126
+ /* ----------- Rate Error ----------- */
127
+ if (status_1 === 429) {
128
+ rateLimitTypeHeader = Object.keys(headers).filter(function (header) {
129
+ return (header.toLowerCase() === 'x-ratelimit-type');
130
+ })[0];
131
+ rateLimitType = (headers[rateLimitTypeHeader]
132
+ && headers[rateLimitTypeHeader].toLowerCase());
133
+ if (rateLimitType === ThrottleHeader_1.default.DailyLimitHeader) {
134
+ // Daily limit
135
+ throw new ZACCLError_1.default({
136
+ message: 'Zoom is very busy today. Please try this operation again tomorrow.',
137
+ code: ErrorCode_1.default.DailyLimitError,
138
+ });
139
+ }
140
+ else if (rateLimitType === ThrottleHeader_1.default.RateLimitHeader) {
141
+ // Rate limit
142
+ throw new ZACCLError_1.default({
143
+ message: 'Zoom is very busy right now. Please try this operation again later.',
144
+ code: ErrorCode_1.default.RateLimitError,
145
+ });
146
+ }
147
+ else {
148
+ // Unknown rate limit
149
+ throw new ZACCLError_1.default({
150
+ message: 'Zoom is very busy right now. Please try this operation again.',
151
+ code: ErrorCode_1.default.UnknownLimitError,
152
+ });
153
+ }
132
154
  }
133
- }
134
- }
135
- }
136
- else if (body.message) {
137
- // Error message not in the error map so check body
138
- if (typeof body.message === 'string') {
139
- zoomErrorMessage = body.message;
155
+ /* -------- Custom Error Code ------- */
156
+ if (status_1 < 200 || status_1 >= 300) {
157
+ zoomErrorMessage = 'An unknown Zoom error occurred.';
158
+ if (errorMap[status_1]) {
159
+ if (typeof errorMap[status_1] === 'string') {
160
+ // Found the error message
161
+ zoomErrorMessage = errorMap[status_1];
162
+ }
163
+ else if (body.code) {
164
+ // Check for nested error message
165
+ if (typeof errorMap[status_1][body.code] === 'string') {
166
+ // Found nested error message
167
+ zoomErrorMessage = errorMap[status_1][body.code];
168
+ }
169
+ else if (body.message) {
170
+ // errorMap[status][code] did not return err message
171
+ // so we check body
172
+ if (typeof body.message === 'string') {
173
+ zoomErrorMessage = body.message;
174
+ }
175
+ }
176
+ }
177
+ }
178
+ else if (body.message) {
179
+ // Error message not in the error map so check body
180
+ if (typeof body.message === 'string') {
181
+ zoomErrorMessage = body.message;
182
+ }
183
+ }
184
+ errorMessage = "We couldn't ".concat(action, " because an error occurred: ").concat(zoomErrorMessage);
185
+ errorCode = "ZOOM".concat(status_1).concat(body.code ? "-".concat(body.code) : '');
186
+ throw new ZACCLError_1.default({
187
+ message: errorMessage,
188
+ code: errorCode,
189
+ });
190
+ }
191
+ results = itemKey ? body[itemKey] : body;
192
+ // Update next page token
193
+ nextPageToken = body.next_page_token;
194
+ if (nextPageToken) {
195
+ isPaginated = true;
196
+ }
197
+ // End if not paginated
198
+ if (!isPaginated) {
199
+ return [2 /*return*/, { value: results }];
200
+ }
201
+ /* --------- Paging Handling -------- */
202
+ // Add items to allItems if paginated
203
+ if (Array.isArray(results)) {
204
+ allItems.push.apply(allItems, results);
205
+ }
206
+ // Call onNewPage callback if it exists
207
+ if (onNewPage) {
208
+ onNewPage(results);
209
+ }
210
+ return [2 /*return*/];
140
211
  }
141
- }
142
- errorMessage = "We couldn't ".concat(action, " because an error occurred: ").concat(zoomErrorMessage);
143
- errorCode = "ZOOM".concat(status).concat(body.code ? "-".concat(body.code) : '');
144
- throw new ZACCLError_1.default({
145
- message: errorMessage,
146
- code: errorCode,
147
212
  });
148
- }
149
- /* ----- Post-process and Return ---- */
150
- if (postProcessor) {
151
- return [2 /*return*/, postProcessor(body)];
152
- }
153
- return [2 /*return*/, body];
213
+ };
214
+ _b.label = 1;
215
+ case 1:
216
+ if (!(nextPageToken || isFirstPage)) return [3 /*break*/, 3];
217
+ return [5 /*yield**/, _loop_1()];
218
+ case 2:
219
+ state_1 = _b.sent();
220
+ if (typeof state_1 === "object")
221
+ return [2 /*return*/, state_1.value];
222
+ return [3 /*break*/, 1];
223
+ case 3:
224
+ ;
225
+ // Return all items (if we got here, response is paginated)
226
+ return [2 /*return*/, allItems];
154
227
  }
155
228
  });
156
229
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"genVisitEndpoint.js","sourceRoot":"","sources":["../../../src/shared/helpers/genVisitEndpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genVisitEndpoint.js","sourceRoot":"","sources":["../../../src/shared/helpers/genVisitEndpoint.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ type VisitEndpointFunc = ((opts: {
14
14
  params?: {
15
15
  [k: string]: any;
16
16
  };
17
- postProcessor?: (response: any) => any;
17
+ itemKey?: string;
18
+ onNewPage?: (items: any[]) => void;
19
+ minMsBetweenPageRequests?: number;
18
20
  }) => Promise<any>);
19
21
  export default VisitEndpointFunc;
@@ -1,4 +1,5 @@
1
1
  import ECatCloudRecording from '../endpoints/ECatCloudRecording';
2
+ import ECatGroup from '../endpoints/ECatGroup';
2
3
  import ECatMeeting from '../endpoints/ECatMeeting';
3
4
  import ECatUser from '../endpoints/ECatUser';
4
5
  import ECatWebinar from '../endpoints/ECatWebinar';
@@ -11,5 +12,6 @@ interface ZoomAPI {
11
12
  meeting: ECatMeeting;
12
13
  user: ECatUser;
13
14
  webinar: ECatWebinar;
15
+ group: ECatGroup;
14
16
  }
15
17
  export default ZoomAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"ZoomAPI.js","sourceRoot":"","sources":["../../src/types/ZoomAPI.ts"],"names":[],"mappings":";;AAcC,CAAC"}
1
+ {"version":3,"file":"ZoomAPI.js","sourceRoot":"","sources":["../../src/types/ZoomAPI.ts"],"names":[],"mappings":";;AAgBC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Zoom user group
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomGroup = {
6
+ id: string;
7
+ name: string;
8
+ total_members: number;
9
+ };
10
+ export default ZoomGroup;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomGroup.js","sourceRoot":"","sources":["../../src/types/ZoomGroup.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A single group member within a Zoom group
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomGroupMember = {
6
+ email: string;
7
+ first_name: string;
8
+ id: string;
9
+ last_name: string;
10
+ type: (1 | 2);
11
+ };
12
+ export default ZoomGroupMember;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomGroupMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomGroupMember.js","sourceRoot":"","sources":["../../src/types/ZoomGroupMember.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Transcript for a specific zoom meeting instance
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomMeetingTranscript = {
6
+ meeting_id: string;
7
+ account_id: string;
8
+ meeting_topic: string;
9
+ host_id: string;
10
+ transcript_created_time: string;
11
+ can_download: boolean;
12
+ auto_delete: boolean;
13
+ auto_delete_date: string;
14
+ download_url: string | null;
15
+ download_restriction_reason: 'DELETED_OR_TRASHED' | 'UNSUPPORTED' | 'NO_TRANSCRIPT_DATA' | 'NOT_READY' | null;
16
+ };
17
+ export default ZoomMeetingTranscript;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomMeetingTranscript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomMeetingTranscript.js","sourceRoot":"","sources":["../../src/types/ZoomMeetingTranscript.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Details about a past meeting
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomPastMeetingDetails = {
6
+ id: number;
7
+ uuid: string;
8
+ duration: number;
9
+ start_time: string;
10
+ end_time: string;
11
+ host_id: string;
12
+ dept: string;
13
+ participants_count: number;
14
+ source: string;
15
+ topic: string;
16
+ total_minutes: number;
17
+ type: 0 | 1 | 2 | 3 | 4 | 7 | 8;
18
+ user_email: string;
19
+ user_name: string;
20
+ has_meeting_summary: boolean;
21
+ };
22
+ export default ZoomPastMeetingDetails;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomPastMeetingDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomPastMeetingDetails.js","sourceRoot":"","sources":["../../src/types/ZoomPastMeetingDetails.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Represents a participant in a Zoom past meeting.
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomPastMeetingParticipant = {
6
+ id?: string;
7
+ name?: string;
8
+ user_id?: string;
9
+ registrant_id?: string;
10
+ user_email?: string;
11
+ join_time?: string;
12
+ leave_time?: string;
13
+ duration?: number;
14
+ failover?: boolean;
15
+ status?: 'in_meeting' | 'in_waiting_room';
16
+ internal_user?: boolean;
17
+ };
18
+ export default ZoomPastMeetingParticipant;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomPastMeetingParticipant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomPastMeetingParticipant.js","sourceRoot":"","sources":["../../src/types/ZoomPastMeetingParticipant.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import ZoomRecordingFile from './ZoomRecordingFile';
2
+ /**
3
+ * A single recording in an account
4
+ * @author Gabe Abrams
5
+ */
6
+ type ZoomRecordingInAccount = {
7
+ duration: number;
8
+ host_id: string;
9
+ id: number;
10
+ recording_count: number;
11
+ recording_files: ZoomRecordingFile[];
12
+ start_time: string;
13
+ topic: string;
14
+ total_size: number;
15
+ type: number;
16
+ uuid: string;
17
+ rc_zone?: string;
18
+ instance_id?: string;
19
+ service_name?: string;
20
+ external_storage_addr?: string;
21
+ };
22
+ export default ZoomRecordingInAccount;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomRecordingInAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomRecordingInAccount.js","sourceRoot":"","sources":["../../src/types/ZoomRecordingInAccount.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "zaccl",
3
- "version": "3.0.18",
3
+ "version": "4.1.0",
4
4
  "description": "The Zoom App Complete Connection Library, a project that handles everything required to build a zoom-integrated app.",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc --project ./tsconfig.json && rm -rf ./docBuilder/template;cp -r ./node_modules/docdash ./docBuilder/template; node ./docBuilder/updateBuilder.js;rm -rf ./docs;./node_modules/.bin/jsdoc -c ./docBuilder/jsdocConfig.json",
9
- "sandbox": "npm run build && npx ts-node sandbox.ts"
9
+ "dev:sandbox": "npm run build && npx ts-node sandbox.ts"
10
10
  },
11
11
  "repository": {
12
12
  "type": "git",