box-node-sdk 3.8.0 → 3.8.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 (449) hide show
  1. package/README.md +89 -69
  2. package/config/package.schema.json +42 -42
  3. package/lib/api-request-manager.d.ts +0 -2
  4. package/lib/api-request-manager.js.map +1 -1
  5. package/lib/api-request.d.ts +0 -3
  6. package/lib/api-request.js.map +1 -1
  7. package/lib/box-client.d.ts +7 -7
  8. package/lib/box-client.js +6 -3
  9. package/lib/box-client.js.map +1 -1
  10. package/lib/box-node-sdk.d.ts +1 -3
  11. package/lib/box-node-sdk.js +26 -10
  12. package/lib/box-node-sdk.js.map +1 -1
  13. package/lib/chunked-uploader.d.ts +0 -5
  14. package/lib/chunked-uploader.js.map +1 -1
  15. package/lib/enterprise-event-stream.d.ts +0 -1
  16. package/lib/enterprise-event-stream.js +3 -3
  17. package/lib/enterprise-event-stream.js.map +1 -1
  18. package/lib/event-stream.d.ts +0 -2
  19. package/lib/event-stream.js.map +1 -1
  20. package/lib/managers/ai.generated.js.map +1 -1
  21. package/lib/managers/collaboration-allowlist.js.map +1 -1
  22. package/lib/managers/collaborations.d.ts +3 -3
  23. package/lib/managers/collaborations.js +23 -23
  24. package/lib/managers/collaborations.js.map +1 -1
  25. package/lib/managers/collections.js.map +1 -1
  26. package/lib/managers/comments.js.map +1 -1
  27. package/lib/managers/device-pins.js.map +1 -1
  28. package/lib/managers/enterprise.js.map +1 -1
  29. package/lib/managers/events.d.ts +0 -1
  30. package/lib/managers/events.js +3 -1
  31. package/lib/managers/events.js.map +1 -1
  32. package/lib/managers/file-requests-manager.d.ts +2 -2
  33. package/lib/managers/file-requests-manager.js +1 -1
  34. package/lib/managers/file-requests-manager.js.map +1 -1
  35. package/lib/managers/files.d.ts +1 -4
  36. package/lib/managers/files.js +6 -2
  37. package/lib/managers/files.js.map +1 -1
  38. package/lib/managers/folders.d.ts +1 -1
  39. package/lib/managers/folders.js +3 -1
  40. package/lib/managers/folders.js.map +1 -1
  41. package/lib/managers/groups.js +2 -2
  42. package/lib/managers/groups.js.map +1 -1
  43. package/lib/managers/integration-mappings.js.map +1 -1
  44. package/lib/managers/legal-hold-policies.js.map +1 -1
  45. package/lib/managers/metadata.js.map +1 -1
  46. package/lib/managers/recent-items.js.map +1 -1
  47. package/lib/managers/retention-policies.d.ts +1 -1
  48. package/lib/managers/retention-policies.js.map +1 -1
  49. package/lib/managers/search.d.ts +1 -1
  50. package/lib/managers/search.js.map +1 -1
  51. package/lib/managers/shared-items.js.map +1 -1
  52. package/lib/managers/shield-information-barrier-reports.generated.js.map +1 -1
  53. package/lib/managers/shield-information-barrier-segment-members.generated.js.map +1 -1
  54. package/lib/managers/shield-information-barrier-segment-restrictions.generated.js.map +1 -1
  55. package/lib/managers/shield-information-barrier-segments.generated.js.map +1 -1
  56. package/lib/managers/shield-information-barriers.generated.js.map +1 -1
  57. package/lib/managers/sign-requests.generated.js.map +1 -1
  58. package/lib/managers/sign-templates.generated.js.map +1 -1
  59. package/lib/managers/storage-policies.js.map +1 -1
  60. package/lib/managers/tasks.js.map +1 -1
  61. package/lib/managers/terms-of-service.js.map +1 -1
  62. package/lib/managers/trash.js.map +1 -1
  63. package/lib/managers/users.d.ts +0 -3
  64. package/lib/managers/users.js +1 -1
  65. package/lib/managers/users.js.map +1 -1
  66. package/lib/managers/web-links.js +3 -1
  67. package/lib/managers/web-links.js.map +1 -1
  68. package/lib/managers/webhooks.d.ts +11 -11
  69. package/lib/managers/webhooks.js +24 -14
  70. package/lib/managers/webhooks.js.map +1 -1
  71. package/lib/schemas/collaboration-update.d.ts +1 -1
  72. package/lib/schemas/collaboration.d.ts +3 -3
  73. package/lib/schemas/collaborations.d.ts +1 -1
  74. package/lib/schemas/file-request.d.ts +2 -2
  75. package/lib/sessions/app-auth-session.js.map +1 -1
  76. package/lib/sessions/basic-session.d.ts +0 -1
  77. package/lib/sessions/basic-session.js.map +1 -1
  78. package/lib/sessions/ccg-session.js.map +1 -1
  79. package/lib/sessions/persistent-session.js.map +1 -1
  80. package/lib/token-manager.js +4 -2
  81. package/lib/token-manager.js.map +1 -1
  82. package/lib/util/config.d.ts +0 -2
  83. package/lib/util/config.js +18 -8
  84. package/lib/util/config.js.map +1 -1
  85. package/lib/util/errors.js +17 -7
  86. package/lib/util/errors.js.map +1 -1
  87. package/lib/util/exponential-backoff.js.map +1 -1
  88. package/lib/util/paging-iterator.js +17 -7
  89. package/lib/util/paging-iterator.js.map +1 -1
  90. package/lib/util/serializable.js.map +1 -1
  91. package/lib/util/url-path.js.map +1 -1
  92. package/lib-esm/api-request-manager.d.ts +36 -0
  93. package/lib-esm/api-request-manager.js +78 -0
  94. package/lib-esm/api-request-manager.js.map +1 -0
  95. package/lib-esm/api-request.d.ts +135 -0
  96. package/lib-esm/api-request.js +282 -0
  97. package/lib-esm/api-request.js.map +1 -0
  98. package/lib-esm/box-client.d.ts +274 -0
  99. package/lib-esm/box-client.js +594 -0
  100. package/lib-esm/box-client.js.map +1 -0
  101. package/lib-esm/box-node-sdk.d.ts +227 -0
  102. package/lib-esm/box-node-sdk.js +373 -0
  103. package/lib-esm/box-node-sdk.js.map +1 -0
  104. package/lib-esm/chunked-uploader.d.ts +128 -0
  105. package/lib-esm/chunked-uploader.js +276 -0
  106. package/lib-esm/chunked-uploader.js.map +1 -0
  107. package/lib-esm/enterprise-event-stream.d.ts +82 -0
  108. package/lib-esm/enterprise-event-stream.js +205 -0
  109. package/lib-esm/enterprise-event-stream.js.map +1 -0
  110. package/lib-esm/event-stream.d.ts +91 -0
  111. package/lib-esm/event-stream.js +277 -0
  112. package/lib-esm/event-stream.js.map +1 -0
  113. package/lib-esm/managers/ai.generated.d.ts +58 -0
  114. package/lib-esm/managers/ai.generated.js +66 -0
  115. package/lib-esm/managers/ai.generated.js.map +1 -0
  116. package/lib-esm/managers/collaboration-allowlist.d.ts +133 -0
  117. package/lib-esm/managers/collaboration-allowlist.js +194 -0
  118. package/lib-esm/managers/collaboration-allowlist.js.map +1 -0
  119. package/lib-esm/managers/collaborations.d.ts +173 -0
  120. package/lib-esm/managers/collaborations.js +252 -0
  121. package/lib-esm/managers/collaborations.js.map +1 -0
  122. package/lib-esm/managers/collections.d.ts +42 -0
  123. package/lib-esm/managers/collections.js +62 -0
  124. package/lib-esm/managers/collections.js.map +1 -0
  125. package/lib-esm/managers/comments.d.ts +103 -0
  126. package/lib-esm/managers/comments.js +175 -0
  127. package/lib-esm/managers/comments.js.map +1 -0
  128. package/lib-esm/managers/device-pins.d.ts +52 -0
  129. package/lib-esm/managers/device-pins.js +91 -0
  130. package/lib-esm/managers/device-pins.js.map +1 -0
  131. package/lib-esm/managers/enterprise.d.ts +164 -0
  132. package/lib-esm/managers/enterprise.js +193 -0
  133. package/lib-esm/managers/enterprise.js.map +1 -0
  134. package/lib-esm/managers/events.d.ts +222 -0
  135. package/lib-esm/managers/events.js +295 -0
  136. package/lib-esm/managers/events.js.map +1 -0
  137. package/lib-esm/managers/file-requests-manager.d.ts +56 -0
  138. package/lib-esm/managers/file-requests-manager.js +81 -0
  139. package/lib-esm/managers/file-requests-manager.js.map +1 -0
  140. package/lib-esm/managers/files.d.ts +817 -0
  141. package/lib-esm/managers/files.js +1408 -0
  142. package/lib-esm/managers/files.js.map +1 -0
  143. package/lib-esm/managers/folders.d.ts +396 -0
  144. package/lib-esm/managers/folders.js +570 -0
  145. package/lib-esm/managers/folders.js.map +1 -0
  146. package/lib-esm/managers/groups.d.ts +213 -0
  147. package/lib-esm/managers/groups.js +289 -0
  148. package/lib-esm/managers/groups.js.map +1 -0
  149. package/lib-esm/managers/integration-mappings.d.ts +116 -0
  150. package/lib-esm/managers/integration-mappings.js +101 -0
  151. package/lib-esm/managers/integration-mappings.js.map +1 -0
  152. package/lib-esm/managers/legal-hold-policies.d.ts +190 -0
  153. package/lib-esm/managers/legal-hold-policies.js +254 -0
  154. package/lib-esm/managers/legal-hold-policies.js.map +1 -0
  155. package/lib-esm/managers/metadata.d.ts +232 -0
  156. package/lib-esm/managers/metadata.js +288 -0
  157. package/lib-esm/managers/metadata.js.map +1 -0
  158. package/lib-esm/managers/recent-items.d.ts +38 -0
  159. package/lib-esm/managers/recent-items.js +49 -0
  160. package/lib-esm/managers/recent-items.js.map +1 -0
  161. package/lib-esm/managers/retention-policies.d.ts +308 -0
  162. package/lib-esm/managers/retention-policies.js +374 -0
  163. package/lib-esm/managers/retention-policies.js.map +1 -0
  164. package/lib-esm/managers/search.d.ts +82 -0
  165. package/lib-esm/managers/search.js +90 -0
  166. package/lib-esm/managers/search.js.map +1 -0
  167. package/lib-esm/managers/shared-items.d.ts +33 -0
  168. package/lib-esm/managers/shared-items.js +74 -0
  169. package/lib-esm/managers/shared-items.js.map +1 -0
  170. package/lib-esm/managers/shield-information-barrier-reports.generated.d.ts +65 -0
  171. package/lib-esm/managers/shield-information-barrier-reports.generated.js +65 -0
  172. package/lib-esm/managers/shield-information-barrier-reports.generated.js.map +1 -0
  173. package/lib-esm/managers/shield-information-barrier-segment-members.generated.d.ts +83 -0
  174. package/lib-esm/managers/shield-information-barrier-segment-members.generated.js +83 -0
  175. package/lib-esm/managers/shield-information-barrier-segment-members.generated.js.map +1 -0
  176. package/lib-esm/managers/shield-information-barrier-segment-restrictions.generated.d.ts +84 -0
  177. package/lib-esm/managers/shield-information-barrier-segment-restrictions.generated.js +84 -0
  178. package/lib-esm/managers/shield-information-barrier-segment-restrictions.generated.js.map +1 -0
  179. package/lib-esm/managers/shield-information-barrier-segments.generated.d.ts +98 -0
  180. package/lib-esm/managers/shield-information-barrier-segments.generated.js +99 -0
  181. package/lib-esm/managers/shield-information-barrier-segments.generated.js.map +1 -0
  182. package/lib-esm/managers/shield-information-barriers.generated.d.ts +79 -0
  183. package/lib-esm/managers/shield-information-barriers.generated.js +83 -0
  184. package/lib-esm/managers/shield-information-barriers.generated.js.map +1 -0
  185. package/lib-esm/managers/sign-requests.generated.d.ts +93 -0
  186. package/lib-esm/managers/sign-requests.generated.js +97 -0
  187. package/lib-esm/managers/sign-requests.generated.js.map +1 -0
  188. package/lib-esm/managers/sign-templates.generated.d.ts +51 -0
  189. package/lib-esm/managers/sign-templates.generated.js +49 -0
  190. package/lib-esm/managers/sign-templates.generated.js.map +1 -0
  191. package/lib-esm/managers/storage-policies.d.ts +86 -0
  192. package/lib-esm/managers/storage-policies.js +174 -0
  193. package/lib-esm/managers/storage-policies.js.map +1 -0
  194. package/lib-esm/managers/tasks.d.ts +161 -0
  195. package/lib-esm/managers/tasks.js +243 -0
  196. package/lib-esm/managers/tasks.js.map +1 -0
  197. package/lib-esm/managers/terms-of-service.d.ts +161 -0
  198. package/lib-esm/managers/terms-of-service.js +283 -0
  199. package/lib-esm/managers/terms-of-service.js.map +1 -0
  200. package/lib-esm/managers/trash.d.ts +30 -0
  201. package/lib-esm/managers/trash.js +47 -0
  202. package/lib-esm/managers/trash.js.map +1 -0
  203. package/lib-esm/managers/users.d.ts +171 -0
  204. package/lib-esm/managers/users.js +230 -0
  205. package/lib-esm/managers/users.js.map +1 -0
  206. package/lib-esm/managers/web-links.d.ts +127 -0
  207. package/lib-esm/managers/web-links.js +200 -0
  208. package/lib-esm/managers/web-links.js.map +1 -0
  209. package/lib-esm/managers/webhooks.d.ts +169 -0
  210. package/lib-esm/managers/webhooks.js +398 -0
  211. package/lib-esm/managers/webhooks.js.map +1 -0
  212. package/lib-esm/schemas/ai-agent-ask.generated.d.ts +17 -0
  213. package/lib-esm/schemas/ai-agent-ask.generated.js +3 -0
  214. package/lib-esm/schemas/ai-agent-ask.generated.js.map +1 -0
  215. package/lib-esm/schemas/ai-agent-basic-gen-tool.generated.d.ts +14 -0
  216. package/lib-esm/schemas/ai-agent-basic-gen-tool.generated.js +3 -0
  217. package/lib-esm/schemas/ai-agent-basic-gen-tool.generated.js.map +1 -0
  218. package/lib-esm/schemas/ai-agent-basic-text-tool-ask.generated.d.ts +34 -0
  219. package/lib-esm/schemas/ai-agent-basic-text-tool-ask.generated.js +3 -0
  220. package/lib-esm/schemas/ai-agent-basic-text-tool-ask.generated.js.map +1 -0
  221. package/lib-esm/schemas/ai-agent-basic-text-tool-text-gen.generated.d.ts +36 -0
  222. package/lib-esm/schemas/ai-agent-basic-text-tool-text-gen.generated.js +3 -0
  223. package/lib-esm/schemas/ai-agent-basic-text-tool-text-gen.generated.js.map +1 -0
  224. package/lib-esm/schemas/ai-agent-long-text-tool.generated.d.ts +9 -0
  225. package/lib-esm/schemas/ai-agent-long-text-tool.generated.js +3 -0
  226. package/lib-esm/schemas/ai-agent-long-text-tool.generated.js.map +1 -0
  227. package/lib-esm/schemas/ai-agent-text-gen.generated.d.ts +14 -0
  228. package/lib-esm/schemas/ai-agent-text-gen.generated.js +3 -0
  229. package/lib-esm/schemas/ai-agent-text-gen.generated.js.map +1 -0
  230. package/lib-esm/schemas/ai-ask.generated.d.ts +40 -0
  231. package/lib-esm/schemas/ai-ask.generated.js +3 -0
  232. package/lib-esm/schemas/ai-ask.generated.js.map +1 -0
  233. package/lib-esm/schemas/ai-citation.generated.d.ts +27 -0
  234. package/lib-esm/schemas/ai-citation.generated.js +3 -0
  235. package/lib-esm/schemas/ai-citation.generated.js.map +1 -0
  236. package/lib-esm/schemas/ai-dialogue-history.generated.d.ts +22 -0
  237. package/lib-esm/schemas/ai-dialogue-history.generated.js +3 -0
  238. package/lib-esm/schemas/ai-dialogue-history.generated.js.map +1 -0
  239. package/lib-esm/schemas/ai-llm-endpoint-params-google.generated.d.ts +31 -0
  240. package/lib-esm/schemas/ai-llm-endpoint-params-google.generated.js +3 -0
  241. package/lib-esm/schemas/ai-llm-endpoint-params-google.generated.js.map +1 -0
  242. package/lib-esm/schemas/ai-llm-endpoint-params-open-ai.generated.d.ts +43 -0
  243. package/lib-esm/schemas/ai-llm-endpoint-params-open-ai.generated.js +3 -0
  244. package/lib-esm/schemas/ai-llm-endpoint-params-open-ai.generated.js.map +1 -0
  245. package/lib-esm/schemas/ai-response-full.generated.d.ts +12 -0
  246. package/lib-esm/schemas/ai-response-full.generated.js +3 -0
  247. package/lib-esm/schemas/ai-response-full.generated.js.map +1 -0
  248. package/lib-esm/schemas/ai-response.generated.d.ts +22 -0
  249. package/lib-esm/schemas/ai-response.generated.js +3 -0
  250. package/lib-esm/schemas/ai-response.generated.js.map +1 -0
  251. package/lib-esm/schemas/ai-text-gen.generated.d.ts +30 -0
  252. package/lib-esm/schemas/ai-text-gen.generated.js +3 -0
  253. package/lib-esm/schemas/ai-text-gen.generated.js.map +1 -0
  254. package/lib-esm/schemas/collaboration-create.d.ts +5 -0
  255. package/lib-esm/schemas/collaboration-create.js +3 -0
  256. package/lib-esm/schemas/collaboration-create.js.map +1 -0
  257. package/lib-esm/schemas/collaboration-update.d.ts +7 -0
  258. package/lib-esm/schemas/collaboration-update.js +3 -0
  259. package/lib-esm/schemas/collaboration-update.js.map +1 -0
  260. package/lib-esm/schemas/collaboration.d.ts +108 -0
  261. package/lib-esm/schemas/collaboration.js +3 -0
  262. package/lib-esm/schemas/collaboration.js.map +1 -0
  263. package/lib-esm/schemas/collaborations.d.ts +13 -0
  264. package/lib-esm/schemas/collaborations.js +3 -0
  265. package/lib-esm/schemas/collaborations.js.map +1 -0
  266. package/lib-esm/schemas/enterprise-base.generated.d.ts +18 -0
  267. package/lib-esm/schemas/enterprise-base.generated.js +3 -0
  268. package/lib-esm/schemas/enterprise-base.generated.js.map +1 -0
  269. package/lib-esm/schemas/file-base.generated.d.ts +32 -0
  270. package/lib-esm/schemas/file-base.generated.js +3 -0
  271. package/lib-esm/schemas/file-base.generated.js.map +1 -0
  272. package/lib-esm/schemas/file-mini.generated.d.ts +41 -0
  273. package/lib-esm/schemas/file-mini.generated.js +3 -0
  274. package/lib-esm/schemas/file-mini.generated.js.map +1 -0
  275. package/lib-esm/schemas/file-request.d.ts +41 -0
  276. package/lib-esm/schemas/file-request.js +3 -0
  277. package/lib-esm/schemas/file-request.js.map +1 -0
  278. package/lib-esm/schemas/file-version-base.generated.d.ts +19 -0
  279. package/lib-esm/schemas/file-version-base.generated.js +3 -0
  280. package/lib-esm/schemas/file-version-base.generated.js.map +1 -0
  281. package/lib-esm/schemas/file-version-mini.generated.d.ts +14 -0
  282. package/lib-esm/schemas/file-version-mini.generated.js +3 -0
  283. package/lib-esm/schemas/file-version-mini.generated.js.map +1 -0
  284. package/lib-esm/schemas/folder-base.generated.d.ts +32 -0
  285. package/lib-esm/schemas/folder-base.generated.js +3 -0
  286. package/lib-esm/schemas/folder-base.generated.js.map +1 -0
  287. package/lib-esm/schemas/folder-mini.generated.d.ts +31 -0
  288. package/lib-esm/schemas/folder-mini.generated.js +3 -0
  289. package/lib-esm/schemas/folder-mini.generated.js.map +1 -0
  290. package/lib-esm/schemas/index.d.ts +15 -0
  291. package/lib-esm/schemas/index.generated.d.ts +52 -0
  292. package/lib-esm/schemas/index.generated.js +69 -0
  293. package/lib-esm/schemas/index.generated.js.map +1 -0
  294. package/lib-esm/schemas/index.js +32 -0
  295. package/lib-esm/schemas/index.js.map +1 -0
  296. package/lib-esm/schemas/integration-mapping-base.d.ts +23 -0
  297. package/lib-esm/schemas/integration-mapping-base.js +3 -0
  298. package/lib-esm/schemas/integration-mapping-base.js.map +1 -0
  299. package/lib-esm/schemas/integration-mapping-box-item-slack.d.ts +17 -0
  300. package/lib-esm/schemas/integration-mapping-box-item-slack.js +3 -0
  301. package/lib-esm/schemas/integration-mapping-box-item-slack.js.map +1 -0
  302. package/lib-esm/schemas/integration-mapping-partner-item-slack.d.ts +27 -0
  303. package/lib-esm/schemas/integration-mapping-partner-item-slack.js +3 -0
  304. package/lib-esm/schemas/integration-mapping-partner-item-slack.js.map +1 -0
  305. package/lib-esm/schemas/integration-mapping-slack-create-request.d.ts +12 -0
  306. package/lib-esm/schemas/integration-mapping-slack-create-request.js +3 -0
  307. package/lib-esm/schemas/integration-mapping-slack-create-request.js.map +1 -0
  308. package/lib-esm/schemas/integration-mapping-slack-options.d.ts +16 -0
  309. package/lib-esm/schemas/integration-mapping-slack-options.js +3 -0
  310. package/lib-esm/schemas/integration-mapping-slack-options.js.map +1 -0
  311. package/lib-esm/schemas/integration-mapping.d.ts +55 -0
  312. package/lib-esm/schemas/integration-mapping.js +3 -0
  313. package/lib-esm/schemas/integration-mapping.js.map +1 -0
  314. package/lib-esm/schemas/integration-mappings.d.ts +27 -0
  315. package/lib-esm/schemas/integration-mappings.js +3 -0
  316. package/lib-esm/schemas/integration-mappings.js.map +1 -0
  317. package/lib-esm/schemas/shield-information-barrier-base.generated.d.ts +18 -0
  318. package/lib-esm/schemas/shield-information-barrier-base.generated.js +3 -0
  319. package/lib-esm/schemas/shield-information-barrier-base.generated.js.map +1 -0
  320. package/lib-esm/schemas/shield-information-barrier-reference.generated.d.ts +9 -0
  321. package/lib-esm/schemas/shield-information-barrier-reference.generated.js +3 -0
  322. package/lib-esm/schemas/shield-information-barrier-reference.generated.js.map +1 -0
  323. package/lib-esm/schemas/shield-information-barrier-report-base.generated.d.ts +18 -0
  324. package/lib-esm/schemas/shield-information-barrier-report-base.generated.js +3 -0
  325. package/lib-esm/schemas/shield-information-barrier-report-base.generated.js.map +1 -0
  326. package/lib-esm/schemas/shield-information-barrier-report-details.generated.d.ts +9 -0
  327. package/lib-esm/schemas/shield-information-barrier-report-details.generated.js +3 -0
  328. package/lib-esm/schemas/shield-information-barrier-report-details.generated.js.map +1 -0
  329. package/lib-esm/schemas/shield-information-barrier-report.generated.d.ts +32 -0
  330. package/lib-esm/schemas/shield-information-barrier-report.generated.js +3 -0
  331. package/lib-esm/schemas/shield-information-barrier-report.generated.js.map +1 -0
  332. package/lib-esm/schemas/shield-information-barrier-reports.generated.d.ts +26 -0
  333. package/lib-esm/schemas/shield-information-barrier-reports.generated.js +3 -0
  334. package/lib-esm/schemas/shield-information-barrier-reports.generated.js.map +1 -0
  335. package/lib-esm/schemas/shield-information-barrier-segment-member-base.generated.d.ts +19 -0
  336. package/lib-esm/schemas/shield-information-barrier-segment-member-base.generated.js +3 -0
  337. package/lib-esm/schemas/shield-information-barrier-segment-member-base.generated.js.map +1 -0
  338. package/lib-esm/schemas/shield-information-barrier-segment-member-mini.generated.d.ts +13 -0
  339. package/lib-esm/schemas/shield-information-barrier-segment-member-mini.generated.js +3 -0
  340. package/lib-esm/schemas/shield-information-barrier-segment-member-mini.generated.js.map +1 -0
  341. package/lib-esm/schemas/shield-information-barrier-segment-member.generated.d.ts +39 -0
  342. package/lib-esm/schemas/shield-information-barrier-segment-member.generated.js +3 -0
  343. package/lib-esm/schemas/shield-information-barrier-segment-member.generated.js.map +1 -0
  344. package/lib-esm/schemas/shield-information-barrier-segment-members.generated.d.ts +26 -0
  345. package/lib-esm/schemas/shield-information-barrier-segment-members.generated.js +3 -0
  346. package/lib-esm/schemas/shield-information-barrier-segment-members.generated.js.map +1 -0
  347. package/lib-esm/schemas/shield-information-barrier-segment-restriction-base.generated.d.ts +20 -0
  348. package/lib-esm/schemas/shield-information-barrier-segment-restriction-base.generated.js +3 -0
  349. package/lib-esm/schemas/shield-information-barrier-segment-restriction-base.generated.js.map +1 -0
  350. package/lib-esm/schemas/shield-information-barrier-segment-restriction-mini.generated.d.ts +20 -0
  351. package/lib-esm/schemas/shield-information-barrier-segment-restriction-mini.generated.js +3 -0
  352. package/lib-esm/schemas/shield-information-barrier-segment-restriction-mini.generated.js.map +1 -0
  353. package/lib-esm/schemas/shield-information-barrier-segment-restriction.generated.d.ts +33 -0
  354. package/lib-esm/schemas/shield-information-barrier-segment-restriction.generated.js +3 -0
  355. package/lib-esm/schemas/shield-information-barrier-segment-restriction.generated.js.map +1 -0
  356. package/lib-esm/schemas/shield-information-barrier-segment-restrictions.generated.d.ts +26 -0
  357. package/lib-esm/schemas/shield-information-barrier-segment-restrictions.generated.js +3 -0
  358. package/lib-esm/schemas/shield-information-barrier-segment-restrictions.generated.js.map +1 -0
  359. package/lib-esm/schemas/shield-information-barrier-segment.generated.d.ts +50 -0
  360. package/lib-esm/schemas/shield-information-barrier-segment.generated.js +3 -0
  361. package/lib-esm/schemas/shield-information-barrier-segment.generated.js.map +1 -0
  362. package/lib-esm/schemas/shield-information-barrier-segments.generated.d.ts +26 -0
  363. package/lib-esm/schemas/shield-information-barrier-segments.generated.js +3 -0
  364. package/lib-esm/schemas/shield-information-barrier-segments.generated.js.map +1 -0
  365. package/lib-esm/schemas/shield-information-barrier.generated.d.ts +56 -0
  366. package/lib-esm/schemas/shield-information-barrier.generated.js +3 -0
  367. package/lib-esm/schemas/shield-information-barrier.generated.js.map +1 -0
  368. package/lib-esm/schemas/shield-information-barriers.generated.d.ts +25 -0
  369. package/lib-esm/schemas/shield-information-barriers.generated.js +3 -0
  370. package/lib-esm/schemas/shield-information-barriers.generated.js.map +1 -0
  371. package/lib-esm/schemas/sign-request-base.generated.d.ts +78 -0
  372. package/lib-esm/schemas/sign-request-base.generated.js +3 -0
  373. package/lib-esm/schemas/sign-request-base.generated.js.map +1 -0
  374. package/lib-esm/schemas/sign-request-create-request.generated.d.ts +39 -0
  375. package/lib-esm/schemas/sign-request-create-request.generated.js +3 -0
  376. package/lib-esm/schemas/sign-request-create-request.generated.js.map +1 -0
  377. package/lib-esm/schemas/sign-request-create-signer.generated.d.ts +95 -0
  378. package/lib-esm/schemas/sign-request-create-signer.generated.js +3 -0
  379. package/lib-esm/schemas/sign-request-create-signer.generated.js.map +1 -0
  380. package/lib-esm/schemas/sign-request-prefill-tag.generated.d.ts +28 -0
  381. package/lib-esm/schemas/sign-request-prefill-tag.generated.js +3 -0
  382. package/lib-esm/schemas/sign-request-prefill-tag.generated.js.map +1 -0
  383. package/lib-esm/schemas/sign-request-signer-input.generated.d.ts +28 -0
  384. package/lib-esm/schemas/sign-request-signer-input.generated.js +3 -0
  385. package/lib-esm/schemas/sign-request-signer-input.generated.js.map +1 -0
  386. package/lib-esm/schemas/sign-request-signer.generated.d.ts +34 -0
  387. package/lib-esm/schemas/sign-request-signer.generated.js +3 -0
  388. package/lib-esm/schemas/sign-request-signer.generated.js.map +1 -0
  389. package/lib-esm/schemas/sign-request.generated.d.ts +72 -0
  390. package/lib-esm/schemas/sign-request.generated.js +3 -0
  391. package/lib-esm/schemas/sign-request.generated.js.map +1 -0
  392. package/lib-esm/schemas/sign-requests.generated.d.ts +25 -0
  393. package/lib-esm/schemas/sign-requests.generated.js +3 -0
  394. package/lib-esm/schemas/sign-requests.generated.js.map +1 -0
  395. package/lib-esm/schemas/sign-template.generated.d.ts +94 -0
  396. package/lib-esm/schemas/sign-template.generated.js +3 -0
  397. package/lib-esm/schemas/sign-template.generated.js.map +1 -0
  398. package/lib-esm/schemas/sign-templates.generated.d.ts +30 -0
  399. package/lib-esm/schemas/sign-templates.generated.js +3 -0
  400. package/lib-esm/schemas/sign-templates.generated.js.map +1 -0
  401. package/lib-esm/schemas/template-signer-input.generated.d.ts +61 -0
  402. package/lib-esm/schemas/template-signer-input.generated.js +3 -0
  403. package/lib-esm/schemas/template-signer-input.generated.js.map +1 -0
  404. package/lib-esm/schemas/template-signer.generated.d.ts +43 -0
  405. package/lib-esm/schemas/template-signer.generated.js +3 -0
  406. package/lib-esm/schemas/template-signer.generated.js.map +1 -0
  407. package/lib-esm/schemas/user-base.generated.d.ts +18 -0
  408. package/lib-esm/schemas/user-base.generated.js +3 -0
  409. package/lib-esm/schemas/user-base.generated.js.map +1 -0
  410. package/lib-esm/schemas/user-integration-mappings.d.ts +19 -0
  411. package/lib-esm/schemas/user-integration-mappings.js +3 -0
  412. package/lib-esm/schemas/user-integration-mappings.js.map +1 -0
  413. package/lib-esm/schemas/user-mini.d.ts +6 -0
  414. package/lib-esm/schemas/user-mini.js +3 -0
  415. package/lib-esm/schemas/user-mini.js.map +1 -0
  416. package/lib-esm/sessions/app-auth-session.d.ts +92 -0
  417. package/lib-esm/sessions/app-auth-session.js +176 -0
  418. package/lib-esm/sessions/app-auth-session.js.map +1 -0
  419. package/lib-esm/sessions/basic-session.d.ts +55 -0
  420. package/lib-esm/sessions/basic-session.js +62 -0
  421. package/lib-esm/sessions/basic-session.js.map +1 -0
  422. package/lib-esm/sessions/ccg-session.d.ts +72 -0
  423. package/lib-esm/sessions/ccg-session.js +111 -0
  424. package/lib-esm/sessions/ccg-session.js.map +1 -0
  425. package/lib-esm/sessions/persistent-session.d.ts +96 -0
  426. package/lib-esm/sessions/persistent-session.js +234 -0
  427. package/lib-esm/sessions/persistent-session.js.map +1 -0
  428. package/lib-esm/token-manager.d.ts +191 -0
  429. package/lib-esm/token-manager.js +453 -0
  430. package/lib-esm/token-manager.js.map +1 -0
  431. package/lib-esm/util/config.d.ts +85 -0
  432. package/lib-esm/util/config.js +212 -0
  433. package/lib-esm/util/config.js.map +1 -0
  434. package/lib-esm/util/errors.d.ts +50 -0
  435. package/lib-esm/util/errors.js +176 -0
  436. package/lib-esm/util/errors.js.map +1 -0
  437. package/lib-esm/util/exponential-backoff.d.ts +11 -0
  438. package/lib-esm/util/exponential-backoff.js +17 -0
  439. package/lib-esm/util/exponential-backoff.js.map +1 -0
  440. package/lib-esm/util/paging-iterator.d.ts +53 -0
  441. package/lib-esm/util/paging-iterator.js +247 -0
  442. package/lib-esm/util/paging-iterator.js.map +1 -0
  443. package/lib-esm/util/serializable.d.ts +10 -0
  444. package/lib-esm/util/serializable.js +17 -0
  445. package/lib-esm/util/serializable.js.map +1 -0
  446. package/lib-esm/util/url-path.d.ts +16 -0
  447. package/lib-esm/util/url-path.js +36 -0
  448. package/lib-esm/util/url-path.js.map +1 -0
  449. package/package.json +33 -28
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @fileoverview Configuration Object
3
+ */
4
+ /**
5
+ * Configuration for App Auth
6
+ * @typedef {Object} AppAuthConfig
7
+ * @property {string} keyID The ID of the public key used for app auth
8
+ * @property {string|Buffer} privateKey The private key used for app auth
9
+ * @property {string} passphrase The passphrase associated with the private key
10
+ * @property {string} [algorithm=RS256] The signing algorithm to use, "RS256", "RS384", or "RS512"
11
+ * @property {int} [expirationTime=30] Number of seconds the JWT should live for
12
+ * @property {boolean} [verifyTimestamp=false] Whether the timestamp when the auth token is created should be validated
13
+ */
14
+ type AppAuthConfig = {
15
+ keyID: string;
16
+ privateKey: string | Buffer;
17
+ passphrase: string;
18
+ algorithm: 'RS256' | 'RS384' | 'RS512';
19
+ expirationTime: number;
20
+ verifyTimestamp: boolean;
21
+ };
22
+ /**
23
+ * Configuration settings used to initialize and customize the SDK
24
+ *
25
+ * @typedef {Object} UserConfigurationOptions
26
+ * @property {string} clientID Client ID of your Box Application
27
+ * @property {string} clientSecret Client secret of your Box Application
28
+ * @property {string} [apiRootURL] The root URL to Box [Default: 'https://api.box.com']
29
+ * @property {string} [uploadAPIRootURL] The root URL to Box for uploads [Default: 'https://upload.box.com/api']
30
+ * @property {string} [authorizeRootURL] The root URL for the authorization screen [Default: 'https://account.box.com/api']
31
+ * @property {int} [uploadRequestTimeoutMS] Timeout after which an upload request is aborted [Default: 60000]
32
+ * @property {int} [retryIntervalMS] Time between auto-retries of the API call on a temp failure [Default: 2000]
33
+ * @property {int} [numMaxRetries] Max # of times a temporarily-failed request should be retried before propagating a permanent failure [Default: 5]
34
+ * @property {int} [expiredBufferMS] Time before expiration, in milliseconds, when we begin to treat tokens as expired [Default: 3 min.]
35
+ * @property {Object} [request] Request options
36
+ * @property {boolean} [request.strictSSL] Set to false to disable strict SSL checking, which allows using Dev APIs [Default: true]
37
+ * @property {?AppAuthConfig} appAuth Optional configuration for App Auth
38
+ */
39
+ type UserConfigurationOptions = {
40
+ clientID: string;
41
+ clientSecret: string;
42
+ apiRootURL: string;
43
+ uploadAPIRootURL: string;
44
+ authorizeRootURL: string;
45
+ uploadRequestTimeoutMS: number;
46
+ retryIntervalMS: number;
47
+ numMaxRetries: number;
48
+ expiredBufferMS: number;
49
+ request: {
50
+ agentClass: any;
51
+ agentOptions: any;
52
+ strictSSL: boolean;
53
+ };
54
+ appAuth?: AppAuthConfig;
55
+ proxy?: {
56
+ url: string;
57
+ username: string;
58
+ password: string;
59
+ };
60
+ };
61
+ /**
62
+ * A Config Object holds the configuration options of the current setup. These are all
63
+ * customizable by the user, and will default if no value is specified in the given params
64
+ * object. The object is frozen on initialization, so that no values can be changed after
65
+ * setup.
66
+ *
67
+ * @param {UserConfigurationOptions} params - The config options set by the user
68
+ * @constructor
69
+ */
70
+ declare class Config {
71
+ _params: Required<UserConfigurationOptions>;
72
+ [key: string]: any;
73
+ constructor(params: UserConfigurationOptions);
74
+ /**
75
+ * Extend the current config into a new config with new params overriding old ones
76
+ * @param {UserConfigurationOptions} params The override options
77
+ * @returns {Config} The extended configuration
78
+ */
79
+ extend(params: UserConfigurationOptions): Config;
80
+ }
81
+ /**
82
+ * @module box-node-sdk/lib/util/config
83
+ * @see {@Link Config}
84
+ */
85
+ export = Config;
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Configuration Object
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ const assert = require("assert");
39
+ const https = __importStar(require("https"));
40
+ const stream_1 = require("stream");
41
+ // ------------------------------------------------------------------------------
42
+ // Requirements
43
+ // ------------------------------------------------------------------------------
44
+ const merge = require('merge-options'), sdkVersion = require('../../package.json').version;
45
+ // ------------------------------------------------------------------------------
46
+ // Private
47
+ // ------------------------------------------------------------------------------
48
+ const nodeVersion = process.version;
49
+ var defaults = {
50
+ clientID: null,
51
+ clientSecret: null,
52
+ apiRootURL: 'https://api.box.com',
53
+ uploadAPIRootURL: 'https://upload.box.com/api',
54
+ authorizeRootURL: 'https://account.box.com/api',
55
+ apiVersion: '2.0',
56
+ uploadRequestTimeoutMS: 60000,
57
+ retryIntervalMS: 2000,
58
+ numMaxRetries: 5,
59
+ retryStrategy: null,
60
+ expiredBufferMS: 180000,
61
+ appAuth: undefined,
62
+ iterators: false,
63
+ enterpriseID: undefined,
64
+ analyticsClient: null,
65
+ disableStreamPassThrough: false,
66
+ proxy: {
67
+ url: null,
68
+ username: null,
69
+ password: null,
70
+ },
71
+ request: {
72
+ // By default, require API SSL cert to be valid
73
+ strictSSL: true,
74
+ // Use an agent with keep-alive enabled to avoid performing SSL handshake per connection
75
+ agentClass: https.Agent,
76
+ agentOptions: {
77
+ keepAlive: true,
78
+ },
79
+ // Encode requests as JSON. Encode the response as well if JSON is returned.
80
+ json: true,
81
+ // Do not encode the response as a string, since the response could be a file. return Buffers instead.
82
+ encoding: null,
83
+ // A redirect is usually information we want to handle, so don't automatically follow
84
+ followRedirect: false,
85
+ // By default, we attach a version-specific user-agent string to SDK requests
86
+ headers: {
87
+ 'User-Agent': `Box Node.js SDK v${sdkVersion} (Node ${nodeVersion})`,
88
+ },
89
+ },
90
+ };
91
+ var appAuthDefaults = {
92
+ algorithm: 'RS256',
93
+ expirationTime: 30,
94
+ verifyTimestamp: false,
95
+ };
96
+ /**
97
+ * Validate the basic Config values needed for the SDK to function
98
+ * @param {UserConfigurationOptions} params The user-supplied config values
99
+ * @returns {void}
100
+ * @throws {AssertionError}
101
+ * @private
102
+ */
103
+ function validateBasicParams(params) {
104
+ // Assert that the given params valid, and that required values are present
105
+ assert(typeof params.clientID === 'string', '"clientID" must be set via init() before using the SDK.');
106
+ assert(typeof params.clientSecret === 'string', '"clientSecret" must be set via init() before using the SDK.');
107
+ }
108
+ /**
109
+ * Validate app auth-specific Config values
110
+ * @param {Object} appAuth The user-supplied app auth values
111
+ * @returns {void}
112
+ * @throws {AssertionError}
113
+ * @private
114
+ */
115
+ function validateAppAuthParams(appAuth) {
116
+ assert(typeof appAuth.keyID === 'string', 'Key ID must be provided in app auth params');
117
+ assert(typeof appAuth.privateKey === 'string' ||
118
+ appAuth.privateKey instanceof Buffer, 'Private key must be provided in app auth params');
119
+ assert(typeof appAuth.passphrase === 'string' && appAuth.passphrase.length > 0, 'Passphrase must be provided in app auth params');
120
+ var validAlgorithms = ['RS256', 'RS384', 'RS512'];
121
+ if (typeof appAuth.algorithm !== 'undefined') {
122
+ assert(validAlgorithms.indexOf(appAuth.algorithm) > -1, `Algorithm in app auth params must be one of: ${validAlgorithms.join(', ')}`);
123
+ }
124
+ if (typeof appAuth.expirationTime !== 'undefined') {
125
+ assert(Number.isInteger(appAuth.expirationTime) &&
126
+ appAuth.expirationTime > 0 &&
127
+ appAuth.expirationTime <= 60, 'Valid token expiration time (0 - 60) must be provided in app auth params');
128
+ }
129
+ }
130
+ /**
131
+ * Update the agentClass based on the proxy config values passed in by the user
132
+ * @param {UserConfigurationOptions} params The current Config values
133
+ * @returns {void}
134
+ * @private
135
+ */
136
+ function updateRequestAgent(params) {
137
+ if (params.proxy.url) {
138
+ let proxyUrl = params.proxy.url;
139
+ if (params.proxy.username && params.proxy.password) {
140
+ proxyUrl = proxyUrl.replace('://', `://${params.proxy.username}:${params.proxy.password}@`);
141
+ }
142
+ const ProxyAgent = require('proxy-agent').ProxyAgent;
143
+ params.request.agentClass = ProxyAgent;
144
+ params.request.agentOptions = Object.assign({}, params.request.agentOptions, {
145
+ getProxyForUrl: (url) => proxyUrl,
146
+ });
147
+ }
148
+ }
149
+ /**
150
+ * Deep freeze an object and all nested objects within it. It doesn't go deep on
151
+ * Buffers and Readable streams so can be used on objects containing requests.
152
+ * @param {Object} obj The object to freeze
153
+ * @returns {Object} The frozen object
154
+ */
155
+ function deepFreezeWithRequest(obj) {
156
+ Object.freeze(obj);
157
+ Object.getOwnPropertyNames(obj).forEach(function (name) {
158
+ const prop = obj[name];
159
+ if (prop !== null &&
160
+ typeof prop === 'object' &&
161
+ obj.hasOwnProperty(name) &&
162
+ !Object.isFrozen(prop) &&
163
+ !(prop instanceof Buffer) &&
164
+ !(prop instanceof stream_1.Readable)) {
165
+ deepFreezeWithRequest(obj[name]);
166
+ }
167
+ });
168
+ return obj;
169
+ }
170
+ // ------------------------------------------------------------------------------
171
+ // Public
172
+ // ------------------------------------------------------------------------------
173
+ /**
174
+ * A Config Object holds the configuration options of the current setup. These are all
175
+ * customizable by the user, and will default if no value is specified in the given params
176
+ * object. The object is frozen on initialization, so that no values can be changed after
177
+ * setup.
178
+ *
179
+ * @param {UserConfigurationOptions} params - The config options set by the user
180
+ * @constructor
181
+ */
182
+ class Config {
183
+ constructor(params) {
184
+ validateBasicParams(params);
185
+ if (typeof params.appAuth === 'object') {
186
+ validateAppAuthParams(params.appAuth);
187
+ params.appAuth = merge({}, appAuthDefaults, params.appAuth);
188
+ }
189
+ // Ensure that we don't accidentally assign over Config methods
190
+ assert(!params.hasOwnProperty('extend'), 'Config params may not override Config methods');
191
+ assert(!params.hasOwnProperty('_params'), 'Config params may not override Config methods');
192
+ // Set the given params or default value if params property is missing
193
+ this._params = merge(defaults, params);
194
+ updateRequestAgent(this._params);
195
+ Object.assign(this, this._params);
196
+ // Freeze the object so that configuration options cannot be modified
197
+ deepFreezeWithRequest(this);
198
+ }
199
+ /**
200
+ * Extend the current config into a new config with new params overriding old ones
201
+ * @param {UserConfigurationOptions} params The override options
202
+ * @returns {Config} The extended configuration
203
+ */
204
+ extend(params) {
205
+ var newParams = merge({}, this._params, params);
206
+ delete newParams.extend;
207
+ delete newParams._params;
208
+ return new Config(newParams);
209
+ }
210
+ }
211
+ module.exports = Config;
212
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/util/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @fileoverview Errors Helper
3
+ */
4
+ /**
5
+ * A Helper for building errors across the SDK. Makes sure that easily-forgotten
6
+ * fields aren't missed, and that everything is formatted properly to return to the
7
+ * consumer.
8
+ *
9
+ * @name Errors
10
+ * @module box-node-sdk/lib/util/errors
11
+ */
12
+ declare const _default: {
13
+ /**
14
+ * Build a response error with the given message, and attaching meta data from the
15
+ * response data.
16
+ *
17
+ * @param {?APIRequest~ResponseObject} response - The response returned by an APIRequestManager request
18
+ * @param {string} message - the response error message
19
+ * @returns {Errors~ResponseError} an error describing the response error
20
+ */
21
+ buildResponseError(response: any, message?: string): any;
22
+ /**
23
+ * Build an authentication error. {@see Errors~AuthError}
24
+ *
25
+ * @param {?APIRequest~ResponseObject} response - The response returned by an APIRequestManager request
26
+ * @param {string} [message] - Optional message for the error
27
+ * @returns {Errors~AuthError} A properly formatted authentication error
28
+ */
29
+ buildAuthError(response: any, message?: string): any;
30
+ /**
31
+ * Build the error for an "Unexpected Response" from the API. This is a shortcut for
32
+ * responseError built specifically for the 401 UNEXPECTED response case. It
33
+ * should be called and the error should be propogated to the consumer
34
+ * whenever an unexpected response was recieved from the API.
35
+ *
36
+ * @param {?APIRequest~ResponseObject} response - The response returned by an APIRequestManager request
37
+ * @returns {Errors~ResponseError} an error describing the response error
38
+ */
39
+ buildUnexpectedResponseError(response: any): any;
40
+ /**
41
+ * Unwrap a Bluebird error and throw it, or just re-throw if the error
42
+ * is not a Bluebird error. This is necessary to preserve errors when
43
+ * a function is promisified.
44
+ * @param {Error} error The error to unwrap
45
+ * @returns {void}
46
+ * @throws {Error} The unwrapped error
47
+ */
48
+ unwrapAndThrow(error: any): never;
49
+ };
50
+ export = _default;
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Errors Helper
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ const qs = __importStar(require("querystring"));
39
+ // ------------------------------------------------------------------------------
40
+ // Requirements
41
+ // ------------------------------------------------------------------------------
42
+ const httpStatusCodes = require('http-status');
43
+ const TRACE_ID_HEADER_NAME = 'box-request-id';
44
+ // ------------------------------------------------------------------------------
45
+ // Typedefs and Callbacks
46
+ // ------------------------------------------------------------------------------
47
+ /**
48
+ * An generic error propagated when the response has caused an error.
49
+ * @typedef {Error} Errors~ResponseError
50
+ * @property {APIRequest~ResponseObject} response The response object that generated the error
51
+ * @property {int} statusCode A shortcut to the status code of the response
52
+ */
53
+ /**
54
+ * Error propagated whenever the SDK is unable to successfully complete an action
55
+ * due to an expired access token (and refresh token, if one was provided).
56
+ * @typedef {Errors~ResponseError} Errors~AuthError
57
+ * @property {boolean} authExpired - always true
58
+ */
59
+ /**
60
+ * Request structure for error objects
61
+ * @param {Object} req The request object
62
+ * @constructor
63
+ * @private
64
+ */
65
+ class Request {
66
+ constructor(req /* FIXME */) {
67
+ this.method = req.method;
68
+ if (req.uri) {
69
+ this.url = {
70
+ protocol: req.uri.protocol,
71
+ host: req.uri.host,
72
+ path: req.uri.pathname,
73
+ query: qs.parse(req.uri.query),
74
+ fragment: req.uri.hash,
75
+ };
76
+ }
77
+ else {
78
+ this.url = null;
79
+ }
80
+ this.httpVersion = req.response ? req.response.httpVersion : null;
81
+ this.headers = req.headers;
82
+ this.body = req.body;
83
+ }
84
+ }
85
+ module.exports = {
86
+ /**
87
+ * Build a response error with the given message, and attaching meta data from the
88
+ * response data.
89
+ *
90
+ * @param {?APIRequest~ResponseObject} response - The response returned by an APIRequestManager request
91
+ * @param {string} message - the response error message
92
+ * @returns {Errors~ResponseError} an error describing the response error
93
+ */
94
+ buildResponseError(response /* FIXME */, message) {
95
+ response = response || {};
96
+ message = message || 'API Response Error';
97
+ var statusCode = response.statusCode;
98
+ var statusMessage = httpStatusCodes[statusCode];
99
+ var debugID = ''; // Of the form <requestID>.<traceID>, both parts optional
100
+ var errorCode;
101
+ var errorDescription;
102
+ if (response.headers && response.headers[TRACE_ID_HEADER_NAME]) {
103
+ // Append trace ID with dot separator — if not present, the dot should be omitted
104
+ debugID += `.${response.headers[TRACE_ID_HEADER_NAME]}`;
105
+ }
106
+ if (response.body) {
107
+ if (response.body.request_id) {
108
+ // Prepend request ID
109
+ debugID = response.body.request_id + debugID;
110
+ }
111
+ errorCode = response.body.code || response.body.error;
112
+ errorDescription =
113
+ response.body.message || response.body.error_description;
114
+ }
115
+ var errorMessage;
116
+ if (debugID) {
117
+ errorMessage = `${message} [${statusCode} ${statusMessage} | ${debugID}]`;
118
+ }
119
+ else {
120
+ errorMessage = `${message} [${statusCode} ${statusMessage}]`;
121
+ }
122
+ if (errorCode) {
123
+ errorMessage += ` ${errorCode}`;
124
+ }
125
+ if (errorDescription) {
126
+ errorMessage += ` - ${errorDescription}`;
127
+ }
128
+ var responseError /* FIXME */ = new Error(errorMessage);
129
+ responseError.statusCode = response.statusCode;
130
+ responseError.response = response;
131
+ responseError.request = response.request
132
+ ? new Request(response.request)
133
+ : {};
134
+ return responseError;
135
+ },
136
+ /**
137
+ * Build an authentication error. {@see Errors~AuthError}
138
+ *
139
+ * @param {?APIRequest~ResponseObject} response - The response returned by an APIRequestManager request
140
+ * @param {string} [message] - Optional message for the error
141
+ * @returns {Errors~AuthError} A properly formatted authentication error
142
+ */
143
+ buildAuthError(response /* FIXME */, message) {
144
+ message = message || 'Expired Auth: Auth code or refresh token has expired';
145
+ var responseError = this.buildResponseError(response, message);
146
+ responseError.authExpired = true;
147
+ return responseError;
148
+ },
149
+ /**
150
+ * Build the error for an "Unexpected Response" from the API. This is a shortcut for
151
+ * responseError built specifically for the 401 UNEXPECTED response case. It
152
+ * should be called and the error should be propogated to the consumer
153
+ * whenever an unexpected response was recieved from the API.
154
+ *
155
+ * @param {?APIRequest~ResponseObject} response - The response returned by an APIRequestManager request
156
+ * @returns {Errors~ResponseError} an error describing the response error
157
+ */
158
+ buildUnexpectedResponseError(response /* FIXME */) {
159
+ return this.buildResponseError(response, 'Unexpected API Response');
160
+ },
161
+ /**
162
+ * Unwrap a Bluebird error and throw it, or just re-throw if the error
163
+ * is not a Bluebird error. This is necessary to preserve errors when
164
+ * a function is promisified.
165
+ * @param {Error} error The error to unwrap
166
+ * @returns {void}
167
+ * @throws {Error} The unwrapped error
168
+ */
169
+ unwrapAndThrow(error /* FIXME */) {
170
+ if (error.cause) {
171
+ throw error.cause;
172
+ }
173
+ throw error;
174
+ },
175
+ };
176
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/util/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @fileoverview Calculate exponential backoff time
3
+ */
4
+ /**
5
+ * Calculate the exponential backoff time with randomized jitter
6
+ * @param {int} numRetries Which retry number this one will be
7
+ * @param {int} baseInterval The base retry interval set in config
8
+ * @returns {int} The number of milliseconds after which to retry
9
+ */
10
+ declare const _default: (numRetries: number, baseInterval: number) => number;
11
+ export = _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Calculate exponential backoff time
4
+ */
5
+ // ------------------------------------------------------------------------------
6
+ // Private
7
+ // ------------------------------------------------------------------------------
8
+ // Retry intervals are between 50% and 150% of the exponentially increasing base amount
9
+ const RETRY_RANDOMIZATION_FACTOR = 0.5;
10
+ module.exports = function getRetryTimeout(numRetries, baseInterval) {
11
+ var minRandomization = 1 - RETRY_RANDOMIZATION_FACTOR;
12
+ var maxRandomization = 1 + RETRY_RANDOMIZATION_FACTOR;
13
+ var randomization = Math.random() * (maxRandomization - minRandomization) + minRandomization;
14
+ var exponential = Math.pow(2, numRetries - 1);
15
+ return Math.ceil(exponential * baseInterval * randomization);
16
+ };
17
+ //# sourceMappingURL=exponential-backoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exponential-backoff.js","sourceRoot":"","sources":["../../src/util/exponential-backoff.ts"],"names":[],"mappings":";AAAA;;GAEG;AAEH,iFAAiF;AACjF,UAAU;AACV,iFAAiF;AAEjF,uFAAuF;AACvF,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAQvC,iBAAS,SAAS,eAAe,CAAC,UAAkB,EAAE,YAAoB;IACxE,IAAI,gBAAgB,GAAG,CAAC,GAAG,0BAA0B,CAAC;IACtD,IAAI,gBAAgB,GAAG,CAAC,GAAG,0BAA0B,CAAC;IACtD,IAAI,aAAa,GACf,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;IAC3E,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;AAC/D,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @fileoverview Iterator for paged responses
3
+ */
4
+ /**
5
+ * Asynchronous iterator for paged collections
6
+ */
7
+ declare class PagingIterator {
8
+ /**
9
+ * Determine if a response is iterable
10
+ * @param {Object} response - The API response
11
+ * @returns {boolean} Whether the response is iterable
12
+ */
13
+ static isIterable(response: any): boolean;
14
+ nextField: any;
15
+ nextValue: any;
16
+ limit: any;
17
+ done: boolean;
18
+ options: Record<string, any>;
19
+ fetch: any;
20
+ buffer: any;
21
+ queue: any;
22
+ /**
23
+ * @constructor
24
+ * @param {Object} response - The original API response
25
+ * @param {BoxClient} client - An API client to make further requests
26
+ * @returns {void}
27
+ * @throws {Error} Will throw when collection cannot be paged
28
+ */
29
+ constructor(response: any, client: any);
30
+ /**
31
+ * Update the paging parameters for the iterator
32
+ * @private
33
+ * @param {Object} response - The latest API response
34
+ * @returns {void}
35
+ */
36
+ _updatePaging(response: any): void;
37
+ /**
38
+ * Fetch the next page of results
39
+ * @returns {Promise} Promise resolving to iterator state
40
+ */
41
+ _getData(): any;
42
+ /**
43
+ * Fetch the next page of the collection
44
+ * @returns {Promise} Promise resolving to iterator state
45
+ */
46
+ next(): any;
47
+ /**
48
+ * Fetch the next marker
49
+ * @returns {string|int} String that is the next marker or int that is the next offset
50
+ */
51
+ getNextMarker(): any;
52
+ }
53
+ export = PagingIterator;