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.
Files changed (126) hide show
  1. package/CHANGELOG.md +37 -2
  2. package/README.md +1 -1
  3. package/lib/api-request-manager.d.ts +38 -0
  4. package/lib/api-request-manager.js +48 -55
  5. package/lib/api-request-manager.js.map +1 -0
  6. package/lib/api-request.d.ts +141 -0
  7. package/lib/api-request.js +202 -281
  8. package/lib/api-request.js.map +1 -0
  9. package/lib/box-client.d.ts +269 -0
  10. package/lib/box-client.js +551 -713
  11. package/lib/box-client.js.map +1 -0
  12. package/lib/box-node-sdk.d.ts +216 -0
  13. package/lib/box-node-sdk.js +317 -352
  14. package/lib/box-node-sdk.js.map +1 -0
  15. package/lib/chunked-uploader.d.ts +129 -0
  16. package/lib/chunked-uploader.js +287 -358
  17. package/lib/chunked-uploader.js.map +1 -0
  18. package/lib/enterprise-event-stream.d.ts +82 -0
  19. package/lib/enterprise-event-stream.js +189 -203
  20. package/lib/enterprise-event-stream.js.map +1 -0
  21. package/lib/event-stream.d.ts +92 -0
  22. package/lib/event-stream.js +274 -302
  23. package/lib/event-stream.js.map +1 -0
  24. package/lib/managers/collaboration-allowlist.d.ts +137 -0
  25. package/lib/managers/collaboration-allowlist.js +200 -0
  26. package/lib/managers/collaboration-allowlist.js.map +1 -0
  27. package/lib/managers/collaboration-whitelist.d.ts +3 -0
  28. package/lib/managers/collaboration-whitelist.js +8 -222
  29. package/lib/managers/collaboration-whitelist.js.map +1 -0
  30. package/lib/managers/collaborations.d.ts +166 -0
  31. package/lib/managers/collaborations.js +225 -258
  32. package/lib/managers/collaborations.js.map +1 -0
  33. package/lib/managers/collections.d.ts +42 -0
  34. package/lib/managers/collections.js +45 -50
  35. package/lib/managers/collections.js.map +1 -0
  36. package/lib/managers/comments.d.ts +103 -0
  37. package/lib/managers/comments.js +158 -173
  38. package/lib/managers/comments.js.map +1 -0
  39. package/lib/managers/device-pins.d.ts +52 -0
  40. package/lib/managers/device-pins.js +75 -88
  41. package/lib/managers/device-pins.js.map +1 -0
  42. package/lib/managers/enterprise.d.ts +162 -0
  43. package/lib/managers/enterprise.js +168 -199
  44. package/lib/managers/enterprise.js.map +1 -0
  45. package/lib/managers/events.d.ts +177 -0
  46. package/lib/managers/events.js +230 -254
  47. package/lib/managers/events.js.map +1 -0
  48. package/lib/managers/files.d.ts +772 -0
  49. package/lib/managers/files.js +1400 -1602
  50. package/lib/managers/files.js.map +1 -0
  51. package/lib/managers/folders.d.ts +347 -0
  52. package/lib/managers/folders.js +551 -567
  53. package/lib/managers/folders.js.map +1 -0
  54. package/lib/managers/groups.d.ts +202 -0
  55. package/lib/managers/groups.js +238 -287
  56. package/lib/managers/groups.js.map +1 -0
  57. package/lib/managers/legal-hold-policies.d.ts +190 -0
  58. package/lib/managers/legal-hold-policies.js +228 -272
  59. package/lib/managers/legal-hold-policies.js.map +1 -0
  60. package/lib/managers/metadata.d.ts +228 -0
  61. package/lib/managers/metadata.js +265 -328
  62. package/lib/managers/metadata.js.map +1 -0
  63. package/lib/managers/recent-items.d.ts +38 -0
  64. package/lib/managers/recent-items.js +32 -39
  65. package/lib/managers/recent-items.js.map +1 -0
  66. package/lib/managers/retention-policies.d.ts +213 -0
  67. package/lib/managers/retention-policies.js +235 -281
  68. package/lib/managers/retention-policies.js.map +1 -0
  69. package/lib/managers/search.d.ts +82 -0
  70. package/lib/managers/search.js +68 -88
  71. package/lib/managers/search.js.map +1 -0
  72. package/lib/managers/shared-items.d.ts +33 -0
  73. package/lib/managers/shared-items.js +54 -62
  74. package/lib/managers/shared-items.js.map +1 -0
  75. package/lib/managers/storage-policies.d.ts +86 -0
  76. package/lib/managers/storage-policies.js +108 -142
  77. package/lib/managers/storage-policies.js.map +1 -0
  78. package/lib/managers/tasks.d.ts +161 -0
  79. package/lib/managers/tasks.js +219 -260
  80. package/lib/managers/tasks.js.map +1 -0
  81. package/lib/managers/terms-of-service.d.ts +161 -0
  82. package/lib/managers/terms-of-service.js +250 -273
  83. package/lib/managers/terms-of-service.js.map +1 -0
  84. package/lib/managers/trash.d.ts +30 -0
  85. package/lib/managers/trash.js +30 -41
  86. package/lib/managers/trash.js.map +1 -0
  87. package/lib/managers/users.d.ts +131 -0
  88. package/lib/managers/users.js +160 -203
  89. package/lib/managers/users.js.map +1 -0
  90. package/lib/managers/web-links.d.ts +127 -0
  91. package/lib/managers/web-links.js +183 -209
  92. package/lib/managers/web-links.js.map +1 -0
  93. package/lib/managers/webhooks.d.ts +166 -0
  94. package/lib/managers/webhooks.js +312 -305
  95. package/lib/managers/webhooks.js.map +1 -0
  96. package/lib/sessions/anonymous-session.d.ts +69 -0
  97. package/lib/sessions/anonymous-session.js +88 -102
  98. package/lib/sessions/anonymous-session.js.map +1 -0
  99. package/lib/sessions/app-auth-session.d.ts +92 -0
  100. package/lib/sessions/app-auth-session.js +140 -160
  101. package/lib/sessions/app-auth-session.js.map +1 -0
  102. package/lib/sessions/basic-session.d.ts +56 -0
  103. package/lib/sessions/basic-session.js +40 -50
  104. package/lib/sessions/basic-session.js.map +1 -0
  105. package/lib/sessions/persistent-session.d.ts +96 -0
  106. package/lib/sessions/persistent-session.js +191 -211
  107. package/lib/sessions/persistent-session.js.map +1 -0
  108. package/lib/token-manager.d.ts +191 -0
  109. package/lib/token-manager.js +390 -465
  110. package/lib/token-manager.js.map +1 -0
  111. package/lib/util/config.d.ts +86 -0
  112. package/lib/util/config.js +124 -152
  113. package/lib/util/config.js.map +1 -0
  114. package/lib/util/errors.d.ts +50 -0
  115. package/lib/util/errors.js +134 -145
  116. package/lib/util/errors.js.map +1 -0
  117. package/lib/util/exponential-backoff.d.ts +11 -0
  118. package/lib/util/exponential-backoff.js +10 -22
  119. package/lib/util/exponential-backoff.js.map +1 -0
  120. package/lib/util/paging-iterator.d.ts +53 -0
  121. package/lib/util/paging-iterator.js +202 -218
  122. package/lib/util/paging-iterator.js.map +1 -0
  123. package/lib/util/url-path.d.ts +16 -0
  124. package/lib/util/url-path.js +20 -35
  125. package/lib/util/url-path.js.map +1 -0
  126. package/package.json +24 -9
@@ -1,20 +1,38 @@
1
+ "use strict";
1
2
  /**
2
3
  * @fileoverview Iterator for paged responses
3
4
  */
4
-
5
- 'use strict';
6
-
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
14
+ }) : function(o, v) {
15
+ o["default"] = v;
16
+ });
17
+ var __importStar = (this && this.__importStar) || function (mod) {
18
+ if (mod && mod.__esModule) return mod;
19
+ var result = {};
20
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ __setModuleDefault(result, mod);
22
+ return result;
23
+ };
24
+ var qs = __importStar(require("querystring"));
25
+ var bluebird_1 = require("bluebird");
26
+ var PromiseQueue = require("promise-queue");
7
27
  // -----------------------------------------------------------------------------
8
28
  // Typedefs
9
29
  // -----------------------------------------------------------------------------
10
-
11
30
  /**
12
31
  * The iterator response object
13
32
  * @typedef {Object} IteratorData
14
33
  * @property {Array} [value] - The next set of values from the iterator
15
34
  * @property {boolean} done - Whether the iterator is completed
16
35
  */
17
-
18
36
  /**
19
37
  * Iterator callback
20
38
  * @callback IteratorCallback
@@ -22,230 +40,196 @@
22
40
  * @param {IteratorData} [data] - New data from the iterator
23
41
  * @returns {void}
24
42
  */
25
-
26
43
  // -----------------------------------------------------------------------------
27
44
  // Requirements
28
45
  // -----------------------------------------------------------------------------
29
-
30
- var querystring = require('querystring'),
31
- Promise = require('bluebird'),
32
- PromiseQueue = require('promise-queue'),
33
- errors = require('./errors');
34
-
35
- PromiseQueue.configure(Promise);
36
-
46
+ var errors = require('./errors');
47
+ PromiseQueue.configure(bluebird_1.Promise);
37
48
  // -----------------------------------------------------------------------------
38
49
  // Private
39
50
  // -----------------------------------------------------------------------------
40
-
41
- const PAGING_MODES = Object.freeze({
42
- MARKER: 'marker',
43
- OFFSET: 'offset'
51
+ var PAGING_MODES = Object.freeze({
52
+ MARKER: 'marker',
53
+ OFFSET: 'offset',
44
54
  });
45
-
46
55
  // -----------------------------------------------------------------------------
47
56
  // Public
48
57
  // -----------------------------------------------------------------------------
49
-
50
58
  /**
51
59
  * Asynchronous iterator for paged collections
52
60
  */
53
- class PagingIterator {
54
-
55
- /**
56
- * Determine if a response is iterable
57
- * @param {Object} response - The API response
58
- * @returns {boolean} Whether the response is iterable
59
- */
60
- static isIterable(response) {
61
- // POST responses for uploading a file are explicitly excluded here because, while the response is iterable,
62
- // it always contains only a single entry and historically has not been handled as iterable in the SDK.
63
- // This behavior is being preserved here to avoid a breaking change.
64
- let UPLOAD_PATTERN = /.*upload\.box\.com.*\/content/;
65
- var isGetOrPostRequest = (response.request && (response.request.method === 'GET' || (response.request.method === 'POST' && !UPLOAD_PATTERN.test(response.request.uri.href)))),
66
- hasEntries = (response.body && Array.isArray(response.body.entries)),
67
- notEventStream = (response.body && !response.body.next_stream_position);
68
-
69
- return Boolean(isGetOrPostRequest && hasEntries && notEventStream);
70
- }
71
-
72
- /**
73
- * @constructor
74
- * @param {Object} response - The original API response
75
- * @param {BoxClient} client - An API client to make further requests
76
- * @returns {void}
77
- * @throws {Error} Will throw when collection cannot be paged
78
- */
79
- constructor(response, client) {
80
-
81
- if (!PagingIterator.isIterable(response)) {
82
- throw new Error('Cannot create paging iterator for non-paged response!');
83
- }
84
-
85
-
86
- var data = response.body;
87
- if (Number.isSafeInteger(data.offset)) {
88
- this.nextField = PAGING_MODES.OFFSET;
89
- this.nextValue = data.offset;
90
- } else if (typeof data.next_marker === 'undefined') {
91
- // Default to a finished marker collection when there's no field present,
92
- // since some endpoints indicate completed paging this way
93
- this.nextField = PAGING_MODES.MARKER;
94
- this.nextValue = null;
95
- } else {
96
- this.nextField = PAGING_MODES.MARKER;
97
- this.nextValue = data.next_marker;
98
- }
99
-
100
- this.limit = data.limit || data.entries.length;
101
- this.done = false;
102
-
103
- var href = response.request.href.split('?')[0];
104
- this.options = {
105
- headers: response.request.headers,
106
- qs: querystring.parse(response.request.uri.query)
107
- };
108
- if (response.request.body) {
109
- if (Object.prototype.toString.call(response.request.body) === '[object Object]') {
110
- this.options.body = response.request.body;
111
- } else {
112
- this.options.body = JSON.parse(response.request.body);
113
- }
114
- }
115
-
116
- // querystring.parse() makes everything a string, ensure numeric params are the correct type
117
- if (this.options.qs.limit) {
118
- this.options.qs.limit = parseInt(this.options.qs.limit, 10);
119
- }
120
- if (this.options.qs.offset) {
121
- this.options.qs.offset = parseInt(this.options.qs.offset, 10);
122
- }
123
-
124
- delete this.options.headers.Authorization;
125
- if (response.request.method === 'GET') {
126
- this.fetch = client.get.bind(client, href);
127
- }
128
- if (response.request.method === 'POST') {
129
- this.fetch = client.post.bind(client, href);
130
- }
131
- this.buffer = response.body.entries;
132
- this.queue = new PromiseQueue(1, Infinity);
133
- this._updatePaging(response);
134
- }
135
-
136
- /**
137
- * Update the paging parameters for the iterator
138
- * @private
139
- * @param {Object} response - The latest API response
140
- * @returns {void}
141
- */
142
- _updatePaging(response) {
143
-
144
- var data = response.body;
145
-
146
- if (this.nextField === PAGING_MODES.OFFSET) {
147
-
148
- this.nextValue += this.limit;
149
-
150
- if (Number.isSafeInteger(data.total_count)) {
151
- this.done = data.offset + this.limit >= data.total_count;
152
- } else {
153
- this.done = data.entries.length === 0;
154
- }
155
- } else if (this.nextField === PAGING_MODES.MARKER) {
156
-
157
- if (data.next_marker) {
158
- this.nextValue = data.next_marker;
159
- } else {
160
- this.nextValue = null;
161
- this.done = true;
162
- }
163
- }
164
- if (response.request.method === 'GET') {
165
- this.options.qs[this.nextField] = this.nextValue;
166
- } else if (response.request.method === 'POST') {
167
- if (!this.options.body) {
168
- this.options.body = {};
169
- }
170
- this.options.body[this.nextField] = this.nextValue;
171
- let bodyString = JSON.stringify(this.options.body);
172
- this.options.headers['content-length'] = bodyString.length;
173
- }
174
- }
175
-
176
- /**
177
- * Fetch the next page of results
178
- * @returns {Promise} Promise resolving to iterator state
179
- */
180
- _getData() {
181
-
182
- return this.fetch(this.options)
183
- .then(response => {
184
-
185
- if (response.statusCode !== 200) {
186
- throw errors.buildUnexpectedResponseError(response);
187
- }
188
-
189
- this._updatePaging(response);
190
-
191
- this.buffer = this.buffer.concat(response.body.entries);
192
-
193
- if (this.buffer.length === 0) {
194
-
195
- if (this.done) {
196
-
197
- return {
198
- value: undefined,
199
- done: true
200
- };
201
- }
202
-
203
- // If we didn't get any data in this page, but the paging
204
- // parameters indicate that there is more data, attempt
205
- // to fetch more. This occurs in multiple places in the API
206
- return this._getData();
207
- }
208
-
209
-
210
- return {
211
- value: this.buffer.shift(),
212
- done: false
213
- };
214
- });
215
- }
216
-
217
- /**
218
- * Fetch the next page of the collection
219
- * @returns {Promise} Promise resolving to iterator state
220
- */
221
- next() {
222
-
223
- if (this.buffer.length > 0) {
224
-
225
- return Promise.resolve({
226
- value: this.buffer.shift(),
227
- done: false
228
- });
229
- }
230
-
231
- if (this.done) {
232
-
233
- return Promise.resolve({
234
- value: undefined,
235
- done: true
236
- });
237
- }
238
-
239
- return this.queue.add(this._getData.bind(this));
240
- }
241
-
242
- /**
243
- * Fetch the next marker
244
- * @returns {string|int} String that is the next marker or int that is the next offset
245
- */
246
- getNextMarker() {
247
- return this.nextValue;
248
- }
249
- }
250
-
61
+ var PagingIterator = /** @class */ (function () {
62
+ /**
63
+ * @constructor
64
+ * @param {Object} response - The original API response
65
+ * @param {BoxClient} client - An API client to make further requests
66
+ * @returns {void}
67
+ * @throws {Error} Will throw when collection cannot be paged
68
+ */
69
+ function PagingIterator(response /* FIXME */, client /* FIXME */) {
70
+ if (!PagingIterator.isIterable(response)) {
71
+ throw new Error('Cannot create paging iterator for non-paged response!');
72
+ }
73
+ var data = response.body;
74
+ if (Number.isSafeInteger(data.offset)) {
75
+ this.nextField = PAGING_MODES.OFFSET;
76
+ this.nextValue = data.offset;
77
+ }
78
+ else if (typeof data.next_marker === 'undefined') {
79
+ // Default to a finished marker collection when there's no field present,
80
+ // since some endpoints indicate completed paging this way
81
+ this.nextField = PAGING_MODES.MARKER;
82
+ this.nextValue = null;
83
+ }
84
+ else {
85
+ this.nextField = PAGING_MODES.MARKER;
86
+ this.nextValue = data.next_marker;
87
+ }
88
+ this.limit = data.limit || data.entries.length;
89
+ this.done = false;
90
+ var href = response.request.href.split('?')[0];
91
+ this.options = {
92
+ headers: response.request.headers,
93
+ qs: qs.parse(response.request.uri.query),
94
+ };
95
+ if (response.request.body) {
96
+ if (Object.prototype.toString.call(response.request.body) ===
97
+ '[object Object]') {
98
+ this.options.body = response.request.body;
99
+ }
100
+ else {
101
+ this.options.body = JSON.parse(response.request.body);
102
+ }
103
+ }
104
+ // querystring.parse() makes everything a string, ensure numeric params are the correct type
105
+ if (this.options.qs.limit) {
106
+ this.options.qs.limit = parseInt(this.options.qs.limit, 10);
107
+ }
108
+ if (this.options.qs.offset) {
109
+ this.options.qs.offset = parseInt(this.options.qs.offset, 10);
110
+ }
111
+ delete this.options.headers.Authorization;
112
+ if (response.request.method === 'GET') {
113
+ this.fetch = client.get.bind(client, href);
114
+ }
115
+ if (response.request.method === 'POST') {
116
+ this.fetch = client.post.bind(client, href);
117
+ }
118
+ this.buffer = response.body.entries;
119
+ this.queue = new PromiseQueue(1, Infinity);
120
+ this._updatePaging(response);
121
+ }
122
+ /**
123
+ * Determine if a response is iterable
124
+ * @param {Object} response - The API response
125
+ * @returns {boolean} Whether the response is iterable
126
+ */
127
+ PagingIterator.isIterable = function (response /* FIXME */) {
128
+ // POST responses for uploading a file are explicitly excluded here because, while the response is iterable,
129
+ // it always contains only a single entry and historically has not been handled as iterable in the SDK.
130
+ // This behavior is being preserved here to avoid a breaking change.
131
+ var UPLOAD_PATTERN = /.*upload\.box\.com.*\/content/;
132
+ var isGetOrPostRequest = response.request &&
133
+ (response.request.method === 'GET' ||
134
+ (response.request.method === 'POST' &&
135
+ !UPLOAD_PATTERN.test(response.request.uri.href))), hasEntries = response.body && Array.isArray(response.body.entries), notEventStream = response.body && !response.body.next_stream_position;
136
+ return Boolean(isGetOrPostRequest && hasEntries && notEventStream);
137
+ };
138
+ /**
139
+ * Update the paging parameters for the iterator
140
+ * @private
141
+ * @param {Object} response - The latest API response
142
+ * @returns {void}
143
+ */
144
+ PagingIterator.prototype._updatePaging = function (response /* FIXME */) {
145
+ var data = response.body;
146
+ if (this.nextField === PAGING_MODES.OFFSET) {
147
+ this.nextValue += this.limit;
148
+ if (Number.isSafeInteger(data.total_count)) {
149
+ this.done = data.offset + this.limit >= data.total_count;
150
+ }
151
+ else {
152
+ this.done = data.entries.length === 0;
153
+ }
154
+ }
155
+ else if (this.nextField === PAGING_MODES.MARKER) {
156
+ if (data.next_marker) {
157
+ this.nextValue = data.next_marker;
158
+ }
159
+ else {
160
+ this.nextValue = null;
161
+ this.done = true;
162
+ }
163
+ }
164
+ if (response.request.method === 'GET') {
165
+ this.options.qs[this.nextField] = this.nextValue;
166
+ }
167
+ else if (response.request.method === 'POST') {
168
+ if (!this.options.body) {
169
+ this.options.body = {};
170
+ }
171
+ this.options.body[this.nextField] = this.nextValue;
172
+ var bodyString = JSON.stringify(this.options.body);
173
+ this.options.headers['content-length'] = bodyString.length;
174
+ }
175
+ };
176
+ /**
177
+ * Fetch the next page of results
178
+ * @returns {Promise} Promise resolving to iterator state
179
+ */
180
+ PagingIterator.prototype._getData = function () {
181
+ var _this = this;
182
+ return this.fetch(this.options).then(function (response /* FIXME */) {
183
+ if (response.statusCode !== 200) {
184
+ throw errors.buildUnexpectedResponseError(response);
185
+ }
186
+ _this._updatePaging(response);
187
+ _this.buffer = _this.buffer.concat(response.body.entries);
188
+ if (_this.buffer.length === 0) {
189
+ if (_this.done) {
190
+ return {
191
+ value: undefined,
192
+ done: true,
193
+ };
194
+ }
195
+ // If we didn't get any data in this page, but the paging
196
+ // parameters indicate that there is more data, attempt
197
+ // to fetch more. This occurs in multiple places in the API
198
+ return _this._getData();
199
+ }
200
+ return {
201
+ value: _this.buffer.shift(),
202
+ done: false,
203
+ };
204
+ });
205
+ };
206
+ /**
207
+ * Fetch the next page of the collection
208
+ * @returns {Promise} Promise resolving to iterator state
209
+ */
210
+ PagingIterator.prototype.next = function () {
211
+ if (this.buffer.length > 0) {
212
+ return bluebird_1.Promise.resolve({
213
+ value: this.buffer.shift(),
214
+ done: false,
215
+ });
216
+ }
217
+ if (this.done) {
218
+ return bluebird_1.Promise.resolve({
219
+ value: undefined,
220
+ done: true,
221
+ });
222
+ }
223
+ return this.queue.add(this._getData.bind(this));
224
+ };
225
+ /**
226
+ * Fetch the next marker
227
+ * @returns {string|int} String that is the next marker or int that is the next offset
228
+ */
229
+ PagingIterator.prototype.getNextMarker = function () {
230
+ return this.nextValue;
231
+ };
232
+ return PagingIterator;
233
+ }());
251
234
  module.exports = PagingIterator;
235
+ //# sourceMappingURL=paging-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paging-iterator.js","sourceRoot":"","sources":["../../src/util/paging-iterator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview URL Path Builder
3
+ */
4
+ declare const _default: (...args: any[]) => string;
5
+ /**
6
+ * URLPath will create a full URL path from the given array of segments.
7
+ *
8
+ * It also provides the following features:
9
+ * - convert all segments to strings
10
+ * - add/remove slashes between segments, where appropriate
11
+ * - encode each path segment to prevent path manipulation
12
+ *
13
+ * @name URLPath
14
+ * @returns {string} Return a valid URL path comprised of the given path segments
15
+ */
16
+ export = _default;
@@ -1,13 +1,10 @@
1
+ "use strict";
1
2
  /**
2
3
  * @fileoverview URL Path Builder
3
4
  */
4
-
5
- 'use strict';
6
-
7
5
  // ------------------------------------------------------------------------------
8
6
  // Private
9
7
  // ------------------------------------------------------------------------------
10
-
11
8
  // Pattern to check for relative paths
12
9
  var PATTERN = /\/\.+/;
13
10
  /**
@@ -20,36 +17,24 @@ var PATTERN = /\/\.+/;
20
17
  * @private
21
18
  */
22
19
  function trimSlashes(segment) {
23
- return segment.replace(/^\/|\/$/g, '');
20
+ return segment.replace(/^\/|\/$/g, '');
24
21
  }
25
-
26
-
27
- // ------------------------------------------------------------------------------
28
- // Public
29
- // ------------------------------------------------------------------------------
30
-
31
- /**
32
- * URLPath will create a full URL path from the given array of segments.
33
- *
34
- * It also provides the following features:
35
- * - convert all segments to strings
36
- * - add/remove slashes between segments, where appropriate
37
- * - encode each path segment to prevent path manipulation
38
- *
39
- * @name URLPath
40
- * @returns {string} Return a valid URL path comprised of the given path segments
41
- */
42
- module.exports = function urlPath(/* arguments*/) {
43
- var args = Array.prototype.slice.call(arguments);
44
- var path = args.map(x => String(x))
45
- .map(x => {
46
- var trimmedX = trimSlashes(x);
47
- if (PATTERN.test(trimmedX)) {
48
- throw new Error(`An invalid path parameter exists in ${trimmedX}. Relative path parameters cannot be passed.`);
49
- }
50
- return trimmedX;
51
- })
52
- .map(x => encodeURIComponent(x))
53
- .join('/');
54
- return `/${path}`;
22
+ module.exports = function urlPath() {
23
+ var args = [];
24
+ for (var _i = 0; _i < arguments.length; _i++) {
25
+ args[_i] = arguments[_i];
26
+ }
27
+ var path = args
28
+ .map(function (x) { return String(x); })
29
+ .map(function (x) {
30
+ var trimmedX = trimSlashes(x);
31
+ if (PATTERN.test(trimmedX)) {
32
+ throw new Error("An invalid path parameter exists in " + trimmedX + ". Relative path parameters cannot be passed.");
33
+ }
34
+ return trimmedX;
35
+ })
36
+ .map(function (x) { return encodeURIComponent(x); })
37
+ .join('/');
38
+ return "/" + path;
55
39
  };
40
+ //# sourceMappingURL=url-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-path.js","sourceRoot":"","sources":["../../src/util/url-path.ts"],"names":[],"mappings":";AAAA;;GAEG;AAEH,iFAAiF;AACjF,UAAU;AACV,iFAAiF;AAEjF,sCAAsC;AACtC,IAAM,OAAO,GAAG,OAAO,CAAC;AAExB;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAiBD,iBAAS,SAAS,OAAO;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACvC,IAAM,IAAI,GAAG,IAAI;SACf,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,EAAT,CAAS,CAAC;SACrB,GAAG,CAAC,UAAC,CAAC;QACN,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CACd,yCAAuC,QAAQ,iDAA8C,CAC7F,CAAC;SACF;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;SACD,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,kBAAkB,CAAC,CAAC,CAAC,EAArB,CAAqB,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,MAAI,IAAM,CAAC;AACnB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "box-node-sdk",
3
3
  "author": "Box <oss@box.com>",
4
- "version": "1.35.0",
4
+ "version": "1.37.2",
5
5
  "description": "Official SDK for Box Plaform APIs",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -23,6 +23,7 @@
23
23
  "main": "./lib/box-node-sdk.js",
24
24
  "scripts": {
25
25
  "test": "node Makefile.js",
26
+ "build": "node Makefile.js build",
26
27
  "lint": "node Makefile.js lint",
27
28
  "docs": "node Makefile.js docs",
28
29
  "docs-dev": "node Makefile.js docsDev",
@@ -32,40 +33,54 @@
32
33
  "major": "node Makefile.js major"
33
34
  },
34
35
  "dependencies": {
36
+ "@types/bluebird": "^3.5.35",
37
+ "@types/node": "^15.3.1",
35
38
  "ajv": "^6.12.3",
36
39
  "bluebird": "^3.7.1",
37
40
  "http-status": "^1.4.1",
38
41
  "jsonwebtoken": "^8.5.1",
39
42
  "merge-options": "^1.0.1",
40
43
  "promise-queue": "^2.2.3",
41
- "proxy-agent": "^3.1.1",
44
+ "proxy-agent": "^4.0.0",
42
45
  "request": "^2.88.0",
43
46
  "url-template": "^2.0.8",
44
47
  "uuid": "^3.3.3"
45
48
  },
46
49
  "devDependencies": {
50
+ "@types/jsonwebtoken": "^8.5.1",
51
+ "@types/promise-queue": "^2.2.0",
52
+ "@types/request": "^2.48.5",
53
+ "@types/url-template": "^2.0.28",
54
+ "@types/uuid": "^8.3.0",
47
55
  "chai": "^4.2.0",
48
- "coveralls": "^3.0.8",
56
+ "coveralls": "^3.1.0",
49
57
  "eslint": "^4.19.1",
50
58
  "eslint-plugin-node": "^6.0.1",
51
59
  "eslint-plugin-promise": "^3.8.0",
52
60
  "eslint-plugin-unicorn": "^4.0.3",
53
61
  "istanbul": "^0.4.3",
54
62
  "jsdoc": "^3.6.3",
63
+ "jsonlint": "^1.6.3",
55
64
  "jsonlint2": "^1.7.1",
56
65
  "leche": "^2.3.0",
57
- "mocha": "^5.2.0",
66
+ "mocha": "^6.0.0",
58
67
  "mockery": "^2.1.0",
59
68
  "nock": "^9.6.1",
60
- "np": "^5.1.3",
61
- "npm-upgrade": "^2.0.3",
62
- "nyc": "^11.9.0",
69
+ "np": "^7.2.0",
70
+ "npm-force-resolutions": "0.0.3",
71
+ "npm-upgrade": "^3.0.0",
72
+ "nyc": "^14.0.0",
63
73
  "shelljs": "^0.8.3",
64
74
  "shelljs-nodecli": "^0.1.1",
65
- "sinon": "^7.5.0"
75
+ "sinon": "^7.5.0",
76
+ "typescript": "^4.2.4"
66
77
  },
67
78
  "files": [
68
79
  "config",
69
80
  "lib"
70
- ]
81
+ ],
82
+ "resolutions": {
83
+ "handlebars": "4.5.3",
84
+ "minimist": "1.2.5"
85
+ }
71
86
  }