box-node-sdk 1.35.0 → 1.37.2
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/CHANGELOG.md +37 -2
- package/README.md +1 -1
- package/lib/api-request-manager.d.ts +38 -0
- package/lib/api-request-manager.js +48 -55
- package/lib/api-request-manager.js.map +1 -0
- package/lib/api-request.d.ts +141 -0
- package/lib/api-request.js +202 -281
- package/lib/api-request.js.map +1 -0
- package/lib/box-client.d.ts +269 -0
- package/lib/box-client.js +551 -713
- package/lib/box-client.js.map +1 -0
- package/lib/box-node-sdk.d.ts +216 -0
- package/lib/box-node-sdk.js +317 -352
- package/lib/box-node-sdk.js.map +1 -0
- package/lib/chunked-uploader.d.ts +129 -0
- package/lib/chunked-uploader.js +287 -358
- package/lib/chunked-uploader.js.map +1 -0
- package/lib/enterprise-event-stream.d.ts +82 -0
- package/lib/enterprise-event-stream.js +189 -203
- package/lib/enterprise-event-stream.js.map +1 -0
- package/lib/event-stream.d.ts +92 -0
- package/lib/event-stream.js +274 -302
- package/lib/event-stream.js.map +1 -0
- package/lib/managers/collaboration-allowlist.d.ts +137 -0
- package/lib/managers/collaboration-allowlist.js +200 -0
- package/lib/managers/collaboration-allowlist.js.map +1 -0
- package/lib/managers/collaboration-whitelist.d.ts +3 -0
- package/lib/managers/collaboration-whitelist.js +8 -222
- package/lib/managers/collaboration-whitelist.js.map +1 -0
- package/lib/managers/collaborations.d.ts +166 -0
- package/lib/managers/collaborations.js +225 -258
- package/lib/managers/collaborations.js.map +1 -0
- package/lib/managers/collections.d.ts +42 -0
- package/lib/managers/collections.js +45 -50
- package/lib/managers/collections.js.map +1 -0
- package/lib/managers/comments.d.ts +103 -0
- package/lib/managers/comments.js +158 -173
- package/lib/managers/comments.js.map +1 -0
- package/lib/managers/device-pins.d.ts +52 -0
- package/lib/managers/device-pins.js +75 -88
- package/lib/managers/device-pins.js.map +1 -0
- package/lib/managers/enterprise.d.ts +162 -0
- package/lib/managers/enterprise.js +168 -199
- package/lib/managers/enterprise.js.map +1 -0
- package/lib/managers/events.d.ts +177 -0
- package/lib/managers/events.js +230 -254
- package/lib/managers/events.js.map +1 -0
- package/lib/managers/files.d.ts +772 -0
- package/lib/managers/files.js +1400 -1602
- package/lib/managers/files.js.map +1 -0
- package/lib/managers/folders.d.ts +347 -0
- package/lib/managers/folders.js +551 -567
- package/lib/managers/folders.js.map +1 -0
- package/lib/managers/groups.d.ts +202 -0
- package/lib/managers/groups.js +238 -287
- package/lib/managers/groups.js.map +1 -0
- package/lib/managers/legal-hold-policies.d.ts +190 -0
- package/lib/managers/legal-hold-policies.js +228 -272
- package/lib/managers/legal-hold-policies.js.map +1 -0
- package/lib/managers/metadata.d.ts +228 -0
- package/lib/managers/metadata.js +265 -328
- package/lib/managers/metadata.js.map +1 -0
- package/lib/managers/recent-items.d.ts +38 -0
- package/lib/managers/recent-items.js +32 -39
- package/lib/managers/recent-items.js.map +1 -0
- package/lib/managers/retention-policies.d.ts +213 -0
- package/lib/managers/retention-policies.js +235 -281
- package/lib/managers/retention-policies.js.map +1 -0
- package/lib/managers/search.d.ts +82 -0
- package/lib/managers/search.js +68 -88
- package/lib/managers/search.js.map +1 -0
- package/lib/managers/shared-items.d.ts +33 -0
- package/lib/managers/shared-items.js +54 -62
- package/lib/managers/shared-items.js.map +1 -0
- package/lib/managers/storage-policies.d.ts +86 -0
- package/lib/managers/storage-policies.js +108 -142
- package/lib/managers/storage-policies.js.map +1 -0
- package/lib/managers/tasks.d.ts +161 -0
- package/lib/managers/tasks.js +219 -260
- package/lib/managers/tasks.js.map +1 -0
- package/lib/managers/terms-of-service.d.ts +161 -0
- package/lib/managers/terms-of-service.js +250 -273
- package/lib/managers/terms-of-service.js.map +1 -0
- package/lib/managers/trash.d.ts +30 -0
- package/lib/managers/trash.js +30 -41
- package/lib/managers/trash.js.map +1 -0
- package/lib/managers/users.d.ts +131 -0
- package/lib/managers/users.js +160 -203
- package/lib/managers/users.js.map +1 -0
- package/lib/managers/web-links.d.ts +127 -0
- package/lib/managers/web-links.js +183 -209
- package/lib/managers/web-links.js.map +1 -0
- package/lib/managers/webhooks.d.ts +166 -0
- package/lib/managers/webhooks.js +312 -305
- package/lib/managers/webhooks.js.map +1 -0
- package/lib/sessions/anonymous-session.d.ts +69 -0
- package/lib/sessions/anonymous-session.js +88 -102
- package/lib/sessions/anonymous-session.js.map +1 -0
- package/lib/sessions/app-auth-session.d.ts +92 -0
- package/lib/sessions/app-auth-session.js +140 -160
- package/lib/sessions/app-auth-session.js.map +1 -0
- package/lib/sessions/basic-session.d.ts +56 -0
- package/lib/sessions/basic-session.js +40 -50
- package/lib/sessions/basic-session.js.map +1 -0
- package/lib/sessions/persistent-session.d.ts +96 -0
- package/lib/sessions/persistent-session.js +191 -211
- package/lib/sessions/persistent-session.js.map +1 -0
- package/lib/token-manager.d.ts +191 -0
- package/lib/token-manager.js +390 -465
- package/lib/token-manager.js.map +1 -0
- package/lib/util/config.d.ts +86 -0
- package/lib/util/config.js +124 -152
- package/lib/util/config.js.map +1 -0
- package/lib/util/errors.d.ts +50 -0
- package/lib/util/errors.js +134 -145
- package/lib/util/errors.js.map +1 -0
- package/lib/util/exponential-backoff.d.ts +11 -0
- package/lib/util/exponential-backoff.js +10 -22
- package/lib/util/exponential-backoff.js.map +1 -0
- package/lib/util/paging-iterator.d.ts +53 -0
- package/lib/util/paging-iterator.js +202 -218
- package/lib/util/paging-iterator.js.map +1 -0
- package/lib/util/url-path.d.ts +16 -0
- package/lib/util/url-path.js +20 -35
- package/lib/util/url-path.js.map +1 -0
- package/package.json +24 -9
package/lib/managers/events.js
CHANGED
|
@@ -1,279 +1,255 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* @fileoverview Manager for the Box Events Resource
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
8
|
// ------------------------------------------------------------------------------
|
|
9
|
-
//
|
|
9
|
+
// Requirements
|
|
10
10
|
// ------------------------------------------------------------------------------
|
|
11
|
-
|
|
11
|
+
var bluebird_1 = require("bluebird");
|
|
12
|
+
var http_status_1 = __importDefault(require("http-status"));
|
|
13
|
+
var enterprise_event_stream_1 = __importDefault(require("../enterprise-event-stream"));
|
|
14
|
+
var event_stream_1 = __importDefault(require("../event-stream"));
|
|
15
|
+
var errors_1 = __importDefault(require("../util/errors"));
|
|
16
|
+
var url_path_1 = __importDefault(require("../util/url-path"));
|
|
17
|
+
// -----------------------------------------------------------------------------
|
|
18
|
+
// Typedefs
|
|
19
|
+
// -----------------------------------------------------------------------------
|
|
12
20
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
21
|
+
* Enum of enterprise event types
|
|
22
|
+
*
|
|
23
|
+
* @readonly
|
|
24
|
+
* @enum {EventType}
|
|
15
25
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
var EventType;
|
|
27
|
+
(function (EventType) {
|
|
28
|
+
EventType["ADD_DEVICE_ASSOCIATION"] = "ADD_DEVICE_ASSOCIATION";
|
|
29
|
+
EventType["ADD_LOGIN_ACTIVITY_DEVICE"] = "ADD_LOGIN_ACTIVITY_DEVICE";
|
|
30
|
+
EventType["ADMIN_LOGIN"] = "ADMIN_LOGIN";
|
|
31
|
+
EventType["APPLICATION_PUBLIC_KEY_ADDED"] = "APPLICATION_PUBLIC_KEY_ADDED";
|
|
32
|
+
EventType["APPLICATION_PUBLIC_KEY_DELETED"] = "APPLICATION_PUBLIC_KEY_DELETED";
|
|
33
|
+
EventType["CHANGE_ADMIN_ROLE"] = "CHANGE_ADMIN_ROLE";
|
|
34
|
+
EventType["COLLABORATION_ACCEPT"] = "COLLABORATION_ACCEPT";
|
|
35
|
+
EventType["COLLABORATION_EXPIRATION"] = "COLLABORATION_EXPIRATION";
|
|
36
|
+
EventType["COLLABORATION_INVITE"] = "COLLABORATION_INVITE";
|
|
37
|
+
EventType["COLLABORATION_REMOVE"] = "COLLABORATION_REMOVE";
|
|
38
|
+
EventType["COLLABORATION_ROLE_CHANGE"] = "COLLABORATION_ROLE_CHANGE";
|
|
39
|
+
EventType["COMMENT_CREATE"] = "COMMENT_CREATE";
|
|
40
|
+
EventType["COMMENT_DELETE"] = "COMMENT_DELETE";
|
|
41
|
+
EventType["COMMENT_EDIT"] = "COMMENT_EDIT";
|
|
42
|
+
EventType["CONTENT_ACCESS"] = "CONTENT_ACCESS";
|
|
43
|
+
EventType["CONTENT_WORKFLOW_AUTOMATION_ADD"] = "CONTENT_WORKFLOW_AUTOMATION_ADD";
|
|
44
|
+
EventType["CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION"] = "CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION";
|
|
45
|
+
EventType["COPY"] = "COPY";
|
|
46
|
+
EventType["DELETE"] = "DELETE";
|
|
47
|
+
EventType["DELETE_USER"] = "DELETE_USER";
|
|
48
|
+
EventType["DOWNLOAD"] = "DOWNLOAD";
|
|
49
|
+
EventType["EDIT"] = "EDIT";
|
|
50
|
+
EventType["EDIT_USER"] = "EDIT_USER";
|
|
51
|
+
EventType["EMAIL_ALIAS_CONFIRM"] = "EMAIL_ALIAS_CONFIRM";
|
|
52
|
+
EventType["ENABLE_TWO_FACTOR_AUTH"] = "ENABLE_TWO_FACTOR_AUTH";
|
|
53
|
+
EventType["ENTERPRISE_APP_AUTHORIZATION_DELETE"] = "ENTERPRISE_APP_AUTHORIZATION_DELETE";
|
|
54
|
+
EventType["FAILED_LOGIN"] = "FAILED_LOGIN";
|
|
55
|
+
EventType["FILE_MARKED_MALICIOUS"] = "FILE_MARKED_MALICIOUS";
|
|
56
|
+
EventType["FILE_WATERMARKED_DOWNLOAD"] = "FILE_WATERMARKED_DOWNLOAD";
|
|
57
|
+
EventType["GROUP_ADD_FILE"] = "GROUP_ADD_FILE";
|
|
58
|
+
EventType["GROUP_ADD_FOLDER"] = "GROUP_ADD_FOLDER";
|
|
59
|
+
EventType["GROUP_ADD_ITEM"] = "GROUP_ADD_ITEM";
|
|
60
|
+
EventType["GROUP_ADD_USER"] = "GROUP_ADD_USER";
|
|
61
|
+
EventType["GROUP_CREATION"] = "GROUP_CREATION";
|
|
62
|
+
EventType["GROUP_DELETION"] = "GROUP_DELETION";
|
|
63
|
+
EventType["GROUP_EDITED"] = "GROUP_EDITED";
|
|
64
|
+
EventType["GROUP_REMOVE_FILE"] = "GROUP_REMOVE_FILE";
|
|
65
|
+
EventType["GROUP_REMOVE_FOLDER"] = "GROUP_REMOVE_FOLDER";
|
|
66
|
+
EventType["GROUP_REMOVE_USER"] = "GROUP_REMOVE_USER";
|
|
67
|
+
EventType["ITEM_MODIFY"] = "ITEM_MODIFY";
|
|
68
|
+
EventType["ITEM_OPEN"] = "ITEM_OPEN";
|
|
69
|
+
EventType["ITEM_SHARED_UPDATE"] = "ITEM_SHARED_UPDATE";
|
|
70
|
+
EventType["ITEM_SYNC"] = "ITEM_SYNC";
|
|
71
|
+
EventType["ITEM_UNSYNC"] = "ITEM_UNSYNC";
|
|
72
|
+
EventType["LOCK"] = "LOCK";
|
|
73
|
+
EventType["LOGIN"] = "LOGIN";
|
|
74
|
+
EventType["METADATA_INSTANCE_CREATE"] = "METADATA_INSTANCE_CREATE";
|
|
75
|
+
EventType["METADATA_INSTANCE_DELETE"] = "METADATA_INSTANCE_DELETE";
|
|
76
|
+
EventType["METADATA_INSTANCE_UPDATE"] = "METADATA_INSTANCE_UPDATE";
|
|
77
|
+
EventType["METADATA_TEMPLATE_CREATE"] = "METADATA_TEMPLATE_CREATE";
|
|
78
|
+
EventType["METADATA_TEMPLATE_UPDATE"] = "METADATA_TEMPLATE_UPDATE";
|
|
79
|
+
EventType["MOVE"] = "MOVE";
|
|
80
|
+
EventType["NEW_USER"] = "NEW_USER";
|
|
81
|
+
EventType["PREVIEW"] = "PREVIEW";
|
|
82
|
+
EventType["REMOVE_DEVICE_ASSOCIATION"] = "REMOVE_DEVICE_ASSOCIATION";
|
|
83
|
+
EventType["REMOVE_LOGIN_ACTIVITY_DEVICE"] = "REMOVE_LOGIN_ACTIVITY_DEVICE";
|
|
84
|
+
EventType["RENAME"] = "RENAME";
|
|
85
|
+
EventType["SHARE"] = "SHARE";
|
|
86
|
+
EventType["SHARE_EXPIRATION"] = "SHARE_EXPIRATION";
|
|
87
|
+
EventType["STORAGE_EXPIRATION"] = "STORAGE_EXPIRATION";
|
|
88
|
+
EventType["TASK_ASSIGNMENT_CREATE"] = "TASK_ASSIGNMENT_CREATE";
|
|
89
|
+
EventType["TASK_ASSIGNMENT_UPDATE"] = "TASK_ASSIGNMENT_UPDATE";
|
|
90
|
+
EventType["TASK_CREATE"] = "TASK_CREATE";
|
|
91
|
+
EventType["TERMS_OF_SERVICE_AGREE"] = "TERMS_OF_SERVICE_AGREE";
|
|
92
|
+
EventType["TERMS_OF_SERVICE_REJECT"] = "TERMS_OF_SERVICE_REJECT";
|
|
93
|
+
EventType["UNDELETE"] = "UNDELETE";
|
|
94
|
+
EventType["UNLOCK"] = "UNLOCK";
|
|
95
|
+
EventType["UNSHARE"] = "UNSHARE";
|
|
96
|
+
EventType["UPDATE_COLLABORATION_EXPIRATION"] = "UPDATE_COLLABORATION_EXPIRATION";
|
|
97
|
+
EventType["UPDATE_SHARE_EXPIRATION"] = "UPDATE_SHARE_EXPIRATION";
|
|
98
|
+
EventType["UPLOAD"] = "UPLOAD";
|
|
99
|
+
EventType["WATERMARK_LABEL_CREATE"] = "WATERMARK_LABEL_CREATE";
|
|
100
|
+
EventType["WATERMARK_LABEL_DELETE"] = "WATERMARK_LABEL_DELETE";
|
|
101
|
+
})(EventType || (EventType = {}));
|
|
29
102
|
// ------------------------------------------------------------------------------
|
|
30
103
|
// Private
|
|
31
104
|
// ------------------------------------------------------------------------------
|
|
32
|
-
|
|
33
105
|
// Base path for all files endpoints
|
|
34
106
|
var BASE_PATH = '/events';
|
|
35
|
-
|
|
36
107
|
/** @const {string} */
|
|
37
108
|
var CURRENT_STREAM_POSITION = 'now';
|
|
38
|
-
|
|
39
109
|
// ------------------------------------------------------------------------------
|
|
40
110
|
// Public
|
|
41
111
|
// ------------------------------------------------------------------------------
|
|
42
|
-
|
|
43
112
|
/**
|
|
44
113
|
* Simple manager for interacting with all 'Events' endpoints and actions.
|
|
45
114
|
*
|
|
46
115
|
* @param {BoxClient} client The Box API Client that is responsible for making calls to the API
|
|
47
116
|
* @constructor
|
|
48
117
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
118
|
+
var Events = /** @class */ (function () {
|
|
119
|
+
function Events(client) {
|
|
120
|
+
// Attach the client, for making API calls
|
|
121
|
+
this.client = client;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get the current stream position.
|
|
125
|
+
*
|
|
126
|
+
* API Endpoint: '/events'
|
|
127
|
+
* Method: GET
|
|
128
|
+
*
|
|
129
|
+
* @param {Function} [callback] Passed the current stream position if successful
|
|
130
|
+
* @returns {Promise<string>} A promise resolving to the stream position
|
|
131
|
+
*/
|
|
132
|
+
Events.prototype.getCurrentStreamPosition = function (callback) {
|
|
133
|
+
var params = {
|
|
134
|
+
qs: {
|
|
135
|
+
stream_position: CURRENT_STREAM_POSITION,
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
var apiPath = url_path_1.default(BASE_PATH);
|
|
139
|
+
return this.client
|
|
140
|
+
.get(apiPath, params)
|
|
141
|
+
.then(function (response /* FIXME */) {
|
|
142
|
+
if (response.statusCode !== http_status_1.default.OK) {
|
|
143
|
+
throw errors_1.default.buildUnexpectedResponseError(response);
|
|
144
|
+
}
|
|
145
|
+
return response.body.next_stream_position;
|
|
146
|
+
})
|
|
147
|
+
.asCallback(callback);
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Get a chunk of events
|
|
151
|
+
*
|
|
152
|
+
* API Endpoint: '/events'
|
|
153
|
+
* Method: GET
|
|
154
|
+
*
|
|
155
|
+
* @param {Object} [options] - Additional options for the request. Can be left null in most cases.
|
|
156
|
+
* @param {Function} [callback] Passed the current stream position if successful
|
|
157
|
+
* @returns {Promise<Object>} A promise resolving to the collection of events
|
|
158
|
+
*/
|
|
159
|
+
Events.prototype.get = function (options, callback) {
|
|
160
|
+
var params = {
|
|
161
|
+
qs: options,
|
|
162
|
+
};
|
|
163
|
+
var apiPath = url_path_1.default(BASE_PATH);
|
|
164
|
+
return this.client.wrapWithDefaultHandler(this.client.get)(apiPath, params, callback);
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Get information for long-polling until new events are available
|
|
168
|
+
*
|
|
169
|
+
* API Endpoint: '/events'
|
|
170
|
+
* Method: OPTIONS
|
|
171
|
+
*
|
|
172
|
+
* @param {Function} [callback] Passed the long poll info if successful
|
|
173
|
+
* @returns {Promise<Object>} A promise resolving to the long poll info
|
|
174
|
+
*/
|
|
175
|
+
Events.prototype.getLongPollInfo = function (callback) {
|
|
176
|
+
var apiPath = url_path_1.default(BASE_PATH);
|
|
177
|
+
return this.client
|
|
178
|
+
.options(apiPath, {})
|
|
179
|
+
.then(function (response /* FIXME */) {
|
|
180
|
+
if (response.statusCode !== http_status_1.default.OK) {
|
|
181
|
+
throw errors_1.default.buildUnexpectedResponseError(response);
|
|
182
|
+
}
|
|
183
|
+
var longpollInfo = response.body.entries.find(function (entry /* FIXME */) { return entry.type === 'realtime_server'; });
|
|
184
|
+
if (!longpollInfo) {
|
|
185
|
+
throw errors_1.default.buildResponseError('No valid long poll server specified', response);
|
|
186
|
+
}
|
|
187
|
+
return longpollInfo;
|
|
188
|
+
})
|
|
189
|
+
.asCallback(callback);
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Create a stream of events, using the long-poll API to wait for new events.
|
|
193
|
+
*
|
|
194
|
+
* API Endpoint: '/events'
|
|
195
|
+
* Method: OPTIONS
|
|
196
|
+
*
|
|
197
|
+
* @param {string} [streamPosition] Starting stream position
|
|
198
|
+
* @param {Object} [options] Optional parameters for the event stream
|
|
199
|
+
* @param {int} [options.retryDelay=1000] Number of ms to wait before retrying after an error
|
|
200
|
+
* @param {int} [options.deduplicationFilterSize=5000] Number of IDs to track for deduplication
|
|
201
|
+
* @param {int} [options.fetchInterval=1000] Minimunm number of ms between calls for more events
|
|
202
|
+
* @param {Function} [callback] Passed the events stream if successful
|
|
203
|
+
* @returns {Promise<EventStream>} A promise resolving to the event stream
|
|
204
|
+
*/
|
|
205
|
+
Events.prototype.getEventStream = function (streamPosition, options, callback) {
|
|
206
|
+
var self = this;
|
|
207
|
+
if (typeof streamPosition === 'string') {
|
|
208
|
+
if (typeof options === 'function') {
|
|
209
|
+
callback = options;
|
|
210
|
+
options = {};
|
|
211
|
+
}
|
|
212
|
+
return bluebird_1.Promise.resolve(new event_stream_1.default(self.client, streamPosition, options)).asCallback(callback);
|
|
213
|
+
}
|
|
214
|
+
// Fix up optional arguments
|
|
215
|
+
callback = options /* FIXME */;
|
|
216
|
+
options = streamPosition;
|
|
217
|
+
if (typeof options === 'function') {
|
|
218
|
+
callback = options;
|
|
219
|
+
options = {};
|
|
220
|
+
}
|
|
221
|
+
return this.getCurrentStreamPosition()
|
|
222
|
+
.then(function (currentStreamPosition /* FIXME */) {
|
|
223
|
+
return new event_stream_1.default(self.client, currentStreamPosition, options);
|
|
224
|
+
})
|
|
225
|
+
.asCallback(callback);
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* Create a stream of enterprise events.
|
|
229
|
+
*
|
|
230
|
+
* By default, the stream starts from the current time.
|
|
231
|
+
* Pass 'startDate' to start from a specific time.
|
|
232
|
+
* Pass 'streamPosition' to start from a previous stream position, or '0' for all available past events (~1 year).
|
|
233
|
+
* Once the stream catches up to the current time, it will begin polling every 'pollingInterval' seconds.
|
|
234
|
+
* If 'pollingInterval' = 0, then the stream will end when it catches up to the current time (no polling).
|
|
235
|
+
*
|
|
236
|
+
* @param {Object} [options] - Options
|
|
237
|
+
* @param {string} [options.streamPosition] - The stream position to start from (pass '0' for all past events)
|
|
238
|
+
* @param {string} [options.startDate] - The date to start from
|
|
239
|
+
* @param {string} [options.endDate] - The date to end at
|
|
240
|
+
* @param {EventType[]} [options.eventTypeFilter] - Array of event types to return
|
|
241
|
+
* @param {int} [options.pollingInterval=60] - Polling interval (in seconds). Pass 0 for no polling.
|
|
242
|
+
* @param {int} [options.chunkSize=500] - Number of events to fetch per call (max = 500)
|
|
243
|
+
* @param {Function} [callback] Passed the events stream if successful
|
|
244
|
+
* @returns {Promise<EnterpriseEventStream>} A promise resolving to the enterprise event stream
|
|
245
|
+
*/
|
|
246
|
+
Events.prototype.getEnterpriseEventStream = function (options, callback) {
|
|
247
|
+
var self = this;
|
|
248
|
+
return bluebird_1.Promise.resolve(new enterprise_event_stream_1.default(self.client, options)).asCallback(callback);
|
|
249
|
+
};
|
|
250
|
+
return Events;
|
|
251
|
+
}());
|
|
54
252
|
Events.prototype.CURRENT_STREAM_POSITION = CURRENT_STREAM_POSITION;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Get the current stream position.
|
|
58
|
-
*
|
|
59
|
-
* API Endpoint: '/events'
|
|
60
|
-
* Method: GET
|
|
61
|
-
*
|
|
62
|
-
* @param {Function} [callback] Passed the current stream position if successful
|
|
63
|
-
* @returns {Promise<string>} A promise resolving to the stream position
|
|
64
|
-
*/
|
|
65
|
-
Events.prototype.getCurrentStreamPosition = function(callback) {
|
|
66
|
-
var params = {
|
|
67
|
-
qs: {
|
|
68
|
-
stream_position: CURRENT_STREAM_POSITION
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
var apiPath = urlPath(BASE_PATH);
|
|
72
|
-
return this.client.get(apiPath, params)
|
|
73
|
-
.then(response => {
|
|
74
|
-
|
|
75
|
-
if (response.statusCode !== httpStatusCodes.OK) {
|
|
76
|
-
throw errors.buildUnexpectedResponseError(response);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return response.body.next_stream_position;
|
|
80
|
-
})
|
|
81
|
-
.asCallback(callback);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Get a chunk of events
|
|
86
|
-
*
|
|
87
|
-
* API Endpoint: '/events'
|
|
88
|
-
* Method: GET
|
|
89
|
-
*
|
|
90
|
-
* @param {Object} [options] - Additional options for the request. Can be left null in most cases.
|
|
91
|
-
* @param {Function} [callback] Passed the current stream position if successful
|
|
92
|
-
* @returns {Promise<Object>} A promise resolving to the collection of events
|
|
93
|
-
*/
|
|
94
|
-
Events.prototype.get = function(options, callback) {
|
|
95
|
-
|
|
96
|
-
var params = {
|
|
97
|
-
qs: options
|
|
98
|
-
};
|
|
99
|
-
var apiPath = urlPath(BASE_PATH);
|
|
100
|
-
return this.client.wrapWithDefaultHandler(this.client.get)(apiPath, params, callback);
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Get information for long-polling until new events are available
|
|
105
|
-
*
|
|
106
|
-
* API Endpoint: '/events'
|
|
107
|
-
* Method: OPTIONS
|
|
108
|
-
*
|
|
109
|
-
* @param {Function} [callback] Passed the long poll info if successful
|
|
110
|
-
* @returns {Promise<Object>} A promise resolving to the long poll info
|
|
111
|
-
*/
|
|
112
|
-
Events.prototype.getLongPollInfo = function(callback) {
|
|
113
|
-
|
|
114
|
-
var apiPath = urlPath(BASE_PATH);
|
|
115
|
-
return this.client.options(apiPath, {})
|
|
116
|
-
.then(response => {
|
|
117
|
-
|
|
118
|
-
if (response.statusCode !== httpStatusCodes.OK) {
|
|
119
|
-
throw errors.buildUnexpectedResponseError(response);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
var longpollInfo = response.body.entries.find(entry => entry.type === 'realtime_server');
|
|
123
|
-
|
|
124
|
-
if (!longpollInfo) {
|
|
125
|
-
throw errors.buildResponseError('No valid long poll server specified', response);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return longpollInfo;
|
|
129
|
-
})
|
|
130
|
-
.asCallback(callback);
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Create a stream of events, using the long-poll API to wait for new events.
|
|
135
|
-
*
|
|
136
|
-
* API Endpoint: '/events'
|
|
137
|
-
* Method: OPTIONS
|
|
138
|
-
*
|
|
139
|
-
* @param {string} [streamPosition] Starting stream position
|
|
140
|
-
* @param {Object} [options] Optional parameters for the event stream
|
|
141
|
-
* @param {int} [options.retryDelay=1000] Number of ms to wait before retrying after an error
|
|
142
|
-
* @param {int} [options.deduplicationFilterSize=5000] Number of IDs to track for deduplication
|
|
143
|
-
* @param {int} [options.fetchInterval=1000] Minimunm number of ms between calls for more events
|
|
144
|
-
* @param {Function} [callback] Passed the events stream if successful
|
|
145
|
-
* @returns {Promise<EventStream>} A promise resolving to the event stream
|
|
146
|
-
*/
|
|
147
|
-
Events.prototype.getEventStream = function(streamPosition, options, callback) {
|
|
148
|
-
|
|
149
|
-
var self = this;
|
|
150
|
-
if (typeof streamPosition === 'string') {
|
|
151
|
-
|
|
152
|
-
if (typeof options === 'function') {
|
|
153
|
-
callback = options;
|
|
154
|
-
options = {};
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return Promise.resolve(new EventStream(self.client, streamPosition, options)).asCallback(callback);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// Fix up optional arguments
|
|
161
|
-
callback = options;
|
|
162
|
-
options = streamPosition;
|
|
163
|
-
if (typeof options === 'function') {
|
|
164
|
-
callback = options;
|
|
165
|
-
options = {};
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return this.getCurrentStreamPosition()
|
|
169
|
-
.then(currentStreamPosition => new EventStream(self.client, currentStreamPosition, options))
|
|
170
|
-
.asCallback(callback);
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Create a stream of enterprise events.
|
|
175
|
-
*
|
|
176
|
-
* By default, the stream starts from the current time.
|
|
177
|
-
* Pass 'startDate' to start from a specific time.
|
|
178
|
-
* Pass 'streamPosition' to start from a previous stream position, or '0' for all available past events (~1 year).
|
|
179
|
-
* Once the stream catches up to the current time, it will begin polling every 'pollingInterval' seconds.
|
|
180
|
-
* If 'pollingInterval' = 0, then the stream will end when it catches up to the current time (no polling).
|
|
181
|
-
*
|
|
182
|
-
* @param {Object} [options] - Options
|
|
183
|
-
* @param {string} [options.streamPosition] - The stream position to start from (pass '0' for all past events)
|
|
184
|
-
* @param {string} [options.startDate] - The date to start from
|
|
185
|
-
* @param {string} [options.endDate] - The date to end at
|
|
186
|
-
* @param {EventType[]} [options.eventTypeFilter] - Array of event types to return
|
|
187
|
-
* @param {int} [options.pollingInterval=60] - Polling interval (in seconds). Pass 0 for no polling.
|
|
188
|
-
* @param {int} [options.chunkSize=500] - Number of events to fetch per call (max = 500)
|
|
189
|
-
* @param {Function} [callback] Passed the events stream if successful
|
|
190
|
-
* @returns {Promise<EnterpriseEventStream>} A promise resolving to the enterprise event stream
|
|
191
|
-
*/
|
|
192
|
-
Events.prototype.getEnterpriseEventStream = function(options, callback) {
|
|
193
|
-
var self = this;
|
|
194
|
-
return Promise.resolve(new EnterpriseEventStream(self.client, options)).asCallback(callback);
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Enum of enterprise event types
|
|
199
|
-
*
|
|
200
|
-
* @readonly
|
|
201
|
-
* @enum {EventType}
|
|
202
|
-
*/
|
|
203
|
-
Events.prototype.enterpriseEventTypes = Object.freeze({
|
|
204
|
-
ADD_DEVICE_ASSOCIATION: 'ADD_DEVICE_ASSOCIATION',
|
|
205
|
-
ADD_LOGIN_ACTIVITY_DEVICE: 'ADD_LOGIN_ACTIVITY_DEVICE',
|
|
206
|
-
ADMIN_LOGIN: 'ADMIN_LOGIN',
|
|
207
|
-
APPLICATION_PUBLIC_KEY_ADDED: 'APPLICATION_PUBLIC_KEY_ADDED',
|
|
208
|
-
APPLICATION_PUBLIC_KEY_DELETED: 'APPLICATION_PUBLIC_KEY_DELETED',
|
|
209
|
-
CHANGE_ADMIN_ROLE: 'CHANGE_ADMIN_ROLE',
|
|
210
|
-
COLLABORATION_ACCEPT: 'COLLABORATION_ACCEPT',
|
|
211
|
-
COLLABORATION_EXPIRATION: 'COLLABORATION_EXPIRATION',
|
|
212
|
-
COLLABORATION_INVITE: 'COLLABORATION_INVITE',
|
|
213
|
-
COLLABORATION_REMOVE: 'COLLABORATION_REMOVE',
|
|
214
|
-
COLLABORATION_ROLE_CHANGE: 'COLLABORATION_ROLE_CHANGE',
|
|
215
|
-
COMMENT_CREATE: 'COMMENT_CREATE',
|
|
216
|
-
COMMENT_DELETE: 'COMMENT_DELETE',
|
|
217
|
-
COMMENT_EDIT: 'COMMENT_EDIT',
|
|
218
|
-
CONTENT_ACCESS: 'CONTENT_ACCESS',
|
|
219
|
-
CONTENT_WORKFLOW_AUTOMATION_ADD: 'CONTENT_WORKFLOW_AUTOMATION_ADD',
|
|
220
|
-
CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION: 'CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION',
|
|
221
|
-
COPY: 'COPY',
|
|
222
|
-
DELETE: 'DELETE',
|
|
223
|
-
DELETE_USER: 'DELETE_USER',
|
|
224
|
-
DOWNLOAD: 'DOWNLOAD',
|
|
225
|
-
EDIT: 'EDIT',
|
|
226
|
-
EDIT_USER: 'EDIT_USER',
|
|
227
|
-
EMAIL_ALIAS_CONFIRM: 'EMAIL_ALIAS_CONFIRM',
|
|
228
|
-
ENABLE_TWO_FACTOR_AUTH: 'ENABLE_TWO_FACTOR_AUTH',
|
|
229
|
-
ENTERPRISE_APP_AUTHORIZATION_DELETE: 'ENTERPRISE_APP_AUTHORIZATION_DELETE',
|
|
230
|
-
FAILED_LOGIN: 'FAILED_LOGIN',
|
|
231
|
-
FILE_MARKED_MALICIOUS: 'FILE_MARKED_MALICIOUS',
|
|
232
|
-
FILE_WATERMARKED_DOWNLOAD: 'FILE_WATERMARKED_DOWNLOAD',
|
|
233
|
-
GROUP_ADD_FILE: 'GROUP_ADD_FILE',
|
|
234
|
-
GROUP_ADD_FOLDER: 'GROUP_ADD_FOLDER',
|
|
235
|
-
GROUP_ADD_ITEM: 'GROUP_ADD_ITEM',
|
|
236
|
-
GROUP_ADD_USER: 'GROUP_ADD_USER',
|
|
237
|
-
GROUP_CREATION: 'GROUP_CREATION',
|
|
238
|
-
GROUP_DELETION: 'GROUP_DELETION',
|
|
239
|
-
GROUP_EDITED: 'GROUP_EDITED',
|
|
240
|
-
GROUP_REMOVE_FILE: 'GROUP_REMOVE_FILE',
|
|
241
|
-
GROUP_REMOVE_FOLDER: 'GROUP_REMOVE_FOLDER',
|
|
242
|
-
GROUP_REMOVE_USER: 'GROUP_REMOVE_USER',
|
|
243
|
-
ITEM_MODIFY: 'ITEM_MODIFY',
|
|
244
|
-
ITEM_OPEN: 'ITEM_OPEN',
|
|
245
|
-
ITEM_SHARED_UPDATE: 'ITEM_SHARED_UPDATE',
|
|
246
|
-
ITEM_SYNC: 'ITEM_SYNC',
|
|
247
|
-
ITEM_UNSYNC: 'ITEM_UNSYNC',
|
|
248
|
-
LOCK: 'LOCK',
|
|
249
|
-
LOGIN: 'LOGIN',
|
|
250
|
-
METADATA_INSTANCE_CREATE: 'METADATA_INSTANCE_CREATE',
|
|
251
|
-
METADATA_INSTANCE_DELETE: 'METADATA_INSTANCE_DELETE',
|
|
252
|
-
METADATA_INSTANCE_UPDATE: 'METADATA_INSTANCE_UPDATE',
|
|
253
|
-
METADATA_TEMPLATE_CREATE: 'METADATA_TEMPLATE_CREATE',
|
|
254
|
-
METADATA_TEMPLATE_UPDATE: 'METADATA_TEMPLATE_UPDATE',
|
|
255
|
-
MOVE: 'MOVE',
|
|
256
|
-
NEW_USER: 'NEW_USER',
|
|
257
|
-
PREVIEW: 'PREVIEW',
|
|
258
|
-
REMOVE_DEVICE_ASSOCIATION: 'REMOVE_DEVICE_ASSOCIATION',
|
|
259
|
-
REMOVE_LOGIN_ACTIVITY_DEVICE: 'REMOVE_LOGIN_ACTIVITY_DEVICE',
|
|
260
|
-
RENAME: 'RENAME',
|
|
261
|
-
SHARE: 'SHARE',
|
|
262
|
-
SHARE_EXPIRATION: 'SHARE_EXPIRATION',
|
|
263
|
-
STORAGE_EXPIRATION: 'STORAGE_EXPIRATION',
|
|
264
|
-
TASK_ASSIGNMENT_CREATE: 'TASK_ASSIGNMENT_CREATE',
|
|
265
|
-
TASK_ASSIGNMENT_UPDATE: 'TASK_ASSIGNMENT_UPDATE',
|
|
266
|
-
TASK_CREATE: 'TASK_CREATE',
|
|
267
|
-
TERMS_OF_SERVICE_AGREE: 'TERMS_OF_SERVICE_AGREE',
|
|
268
|
-
TERMS_OF_SERVICE_REJECT: 'TERMS_OF_SERVICE_REJECT',
|
|
269
|
-
UNDELETE: 'UNDELETE',
|
|
270
|
-
UNLOCK: 'UNLOCK',
|
|
271
|
-
UNSHARE: 'UNSHARE',
|
|
272
|
-
UPDATE_COLLABORATION_EXPIRATION: 'UPDATE_COLLABORATION_EXPIRATION',
|
|
273
|
-
UPDATE_SHARE_EXPIRATION: 'UPDATE_SHARE_EXPIRATION',
|
|
274
|
-
UPLOAD: 'UPLOAD',
|
|
275
|
-
WATERMARK_LABEL_CREATE: 'WATERMARK_LABEL_CREATE',
|
|
276
|
-
WATERMARK_LABEL_DELETE: 'WATERMARK_LABEL_DELETE'
|
|
277
|
-
});
|
|
278
|
-
|
|
253
|
+
Events.prototype.enterpriseEventTypes = EventType;
|
|
279
254
|
module.exports = Events;
|
|
255
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/managers/events.ts"],"names":[],"mappings":"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"}
|