box-node-sdk 3.8.1 → 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 (358) hide show
  1. package/lib-esm/api-request-manager.d.ts +36 -0
  2. package/lib-esm/api-request-manager.js +78 -0
  3. package/lib-esm/api-request-manager.js.map +1 -0
  4. package/lib-esm/api-request.d.ts +135 -0
  5. package/lib-esm/api-request.js +282 -0
  6. package/lib-esm/api-request.js.map +1 -0
  7. package/lib-esm/box-client.d.ts +274 -0
  8. package/lib-esm/box-client.js +594 -0
  9. package/lib-esm/box-client.js.map +1 -0
  10. package/lib-esm/box-node-sdk.d.ts +227 -0
  11. package/lib-esm/box-node-sdk.js +373 -0
  12. package/lib-esm/box-node-sdk.js.map +1 -0
  13. package/lib-esm/chunked-uploader.d.ts +128 -0
  14. package/lib-esm/chunked-uploader.js +276 -0
  15. package/lib-esm/chunked-uploader.js.map +1 -0
  16. package/lib-esm/enterprise-event-stream.d.ts +82 -0
  17. package/lib-esm/enterprise-event-stream.js +205 -0
  18. package/lib-esm/enterprise-event-stream.js.map +1 -0
  19. package/lib-esm/event-stream.d.ts +91 -0
  20. package/lib-esm/event-stream.js +277 -0
  21. package/lib-esm/event-stream.js.map +1 -0
  22. package/lib-esm/managers/ai.generated.d.ts +58 -0
  23. package/lib-esm/managers/ai.generated.js +66 -0
  24. package/lib-esm/managers/ai.generated.js.map +1 -0
  25. package/lib-esm/managers/collaboration-allowlist.d.ts +133 -0
  26. package/lib-esm/managers/collaboration-allowlist.js +194 -0
  27. package/lib-esm/managers/collaboration-allowlist.js.map +1 -0
  28. package/lib-esm/managers/collaborations.d.ts +173 -0
  29. package/lib-esm/managers/collaborations.js +252 -0
  30. package/lib-esm/managers/collaborations.js.map +1 -0
  31. package/lib-esm/managers/collections.d.ts +42 -0
  32. package/lib-esm/managers/collections.js +62 -0
  33. package/lib-esm/managers/collections.js.map +1 -0
  34. package/lib-esm/managers/comments.d.ts +103 -0
  35. package/lib-esm/managers/comments.js +175 -0
  36. package/lib-esm/managers/comments.js.map +1 -0
  37. package/lib-esm/managers/device-pins.d.ts +52 -0
  38. package/lib-esm/managers/device-pins.js +91 -0
  39. package/lib-esm/managers/device-pins.js.map +1 -0
  40. package/lib-esm/managers/enterprise.d.ts +164 -0
  41. package/lib-esm/managers/enterprise.js +193 -0
  42. package/lib-esm/managers/enterprise.js.map +1 -0
  43. package/lib-esm/managers/events.d.ts +222 -0
  44. package/lib-esm/managers/events.js +295 -0
  45. package/lib-esm/managers/events.js.map +1 -0
  46. package/lib-esm/managers/file-requests-manager.d.ts +56 -0
  47. package/lib-esm/managers/file-requests-manager.js +81 -0
  48. package/lib-esm/managers/file-requests-manager.js.map +1 -0
  49. package/lib-esm/managers/files.d.ts +817 -0
  50. package/lib-esm/managers/files.js +1408 -0
  51. package/lib-esm/managers/files.js.map +1 -0
  52. package/lib-esm/managers/folders.d.ts +396 -0
  53. package/lib-esm/managers/folders.js +570 -0
  54. package/lib-esm/managers/folders.js.map +1 -0
  55. package/lib-esm/managers/groups.d.ts +213 -0
  56. package/lib-esm/managers/groups.js +289 -0
  57. package/lib-esm/managers/groups.js.map +1 -0
  58. package/lib-esm/managers/integration-mappings.d.ts +116 -0
  59. package/lib-esm/managers/integration-mappings.js +101 -0
  60. package/lib-esm/managers/integration-mappings.js.map +1 -0
  61. package/lib-esm/managers/legal-hold-policies.d.ts +190 -0
  62. package/lib-esm/managers/legal-hold-policies.js +254 -0
  63. package/lib-esm/managers/legal-hold-policies.js.map +1 -0
  64. package/lib-esm/managers/metadata.d.ts +232 -0
  65. package/lib-esm/managers/metadata.js +288 -0
  66. package/lib-esm/managers/metadata.js.map +1 -0
  67. package/lib-esm/managers/recent-items.d.ts +38 -0
  68. package/lib-esm/managers/recent-items.js +49 -0
  69. package/lib-esm/managers/recent-items.js.map +1 -0
  70. package/lib-esm/managers/retention-policies.d.ts +308 -0
  71. package/lib-esm/managers/retention-policies.js +374 -0
  72. package/lib-esm/managers/retention-policies.js.map +1 -0
  73. package/lib-esm/managers/search.d.ts +82 -0
  74. package/lib-esm/managers/search.js +90 -0
  75. package/lib-esm/managers/search.js.map +1 -0
  76. package/lib-esm/managers/shared-items.d.ts +33 -0
  77. package/lib-esm/managers/shared-items.js +74 -0
  78. package/lib-esm/managers/shared-items.js.map +1 -0
  79. package/lib-esm/managers/shield-information-barrier-reports.generated.d.ts +65 -0
  80. package/lib-esm/managers/shield-information-barrier-reports.generated.js +65 -0
  81. package/lib-esm/managers/shield-information-barrier-reports.generated.js.map +1 -0
  82. package/lib-esm/managers/shield-information-barrier-segment-members.generated.d.ts +83 -0
  83. package/lib-esm/managers/shield-information-barrier-segment-members.generated.js +83 -0
  84. package/lib-esm/managers/shield-information-barrier-segment-members.generated.js.map +1 -0
  85. package/lib-esm/managers/shield-information-barrier-segment-restrictions.generated.d.ts +84 -0
  86. package/lib-esm/managers/shield-information-barrier-segment-restrictions.generated.js +84 -0
  87. package/lib-esm/managers/shield-information-barrier-segment-restrictions.generated.js.map +1 -0
  88. package/lib-esm/managers/shield-information-barrier-segments.generated.d.ts +98 -0
  89. package/lib-esm/managers/shield-information-barrier-segments.generated.js +99 -0
  90. package/lib-esm/managers/shield-information-barrier-segments.generated.js.map +1 -0
  91. package/lib-esm/managers/shield-information-barriers.generated.d.ts +79 -0
  92. package/lib-esm/managers/shield-information-barriers.generated.js +83 -0
  93. package/lib-esm/managers/shield-information-barriers.generated.js.map +1 -0
  94. package/lib-esm/managers/sign-requests.generated.d.ts +93 -0
  95. package/lib-esm/managers/sign-requests.generated.js +97 -0
  96. package/lib-esm/managers/sign-requests.generated.js.map +1 -0
  97. package/lib-esm/managers/sign-templates.generated.d.ts +51 -0
  98. package/lib-esm/managers/sign-templates.generated.js +49 -0
  99. package/lib-esm/managers/sign-templates.generated.js.map +1 -0
  100. package/lib-esm/managers/storage-policies.d.ts +86 -0
  101. package/lib-esm/managers/storage-policies.js +174 -0
  102. package/lib-esm/managers/storage-policies.js.map +1 -0
  103. package/lib-esm/managers/tasks.d.ts +161 -0
  104. package/lib-esm/managers/tasks.js +243 -0
  105. package/lib-esm/managers/tasks.js.map +1 -0
  106. package/lib-esm/managers/terms-of-service.d.ts +161 -0
  107. package/lib-esm/managers/terms-of-service.js +283 -0
  108. package/lib-esm/managers/terms-of-service.js.map +1 -0
  109. package/lib-esm/managers/trash.d.ts +30 -0
  110. package/lib-esm/managers/trash.js +47 -0
  111. package/lib-esm/managers/trash.js.map +1 -0
  112. package/lib-esm/managers/users.d.ts +171 -0
  113. package/lib-esm/managers/users.js +230 -0
  114. package/lib-esm/managers/users.js.map +1 -0
  115. package/lib-esm/managers/web-links.d.ts +127 -0
  116. package/lib-esm/managers/web-links.js +200 -0
  117. package/lib-esm/managers/web-links.js.map +1 -0
  118. package/lib-esm/managers/webhooks.d.ts +169 -0
  119. package/lib-esm/managers/webhooks.js +398 -0
  120. package/lib-esm/managers/webhooks.js.map +1 -0
  121. package/lib-esm/schemas/ai-agent-ask.generated.d.ts +17 -0
  122. package/lib-esm/schemas/ai-agent-ask.generated.js +3 -0
  123. package/lib-esm/schemas/ai-agent-ask.generated.js.map +1 -0
  124. package/lib-esm/schemas/ai-agent-basic-gen-tool.generated.d.ts +14 -0
  125. package/lib-esm/schemas/ai-agent-basic-gen-tool.generated.js +3 -0
  126. package/lib-esm/schemas/ai-agent-basic-gen-tool.generated.js.map +1 -0
  127. package/lib-esm/schemas/ai-agent-basic-text-tool-ask.generated.d.ts +34 -0
  128. package/lib-esm/schemas/ai-agent-basic-text-tool-ask.generated.js +3 -0
  129. package/lib-esm/schemas/ai-agent-basic-text-tool-ask.generated.js.map +1 -0
  130. package/lib-esm/schemas/ai-agent-basic-text-tool-text-gen.generated.d.ts +36 -0
  131. package/lib-esm/schemas/ai-agent-basic-text-tool-text-gen.generated.js +3 -0
  132. package/lib-esm/schemas/ai-agent-basic-text-tool-text-gen.generated.js.map +1 -0
  133. package/lib-esm/schemas/ai-agent-long-text-tool.generated.d.ts +9 -0
  134. package/lib-esm/schemas/ai-agent-long-text-tool.generated.js +3 -0
  135. package/lib-esm/schemas/ai-agent-long-text-tool.generated.js.map +1 -0
  136. package/lib-esm/schemas/ai-agent-text-gen.generated.d.ts +14 -0
  137. package/lib-esm/schemas/ai-agent-text-gen.generated.js +3 -0
  138. package/lib-esm/schemas/ai-agent-text-gen.generated.js.map +1 -0
  139. package/lib-esm/schemas/ai-ask.generated.d.ts +40 -0
  140. package/lib-esm/schemas/ai-ask.generated.js +3 -0
  141. package/lib-esm/schemas/ai-ask.generated.js.map +1 -0
  142. package/lib-esm/schemas/ai-citation.generated.d.ts +27 -0
  143. package/lib-esm/schemas/ai-citation.generated.js +3 -0
  144. package/lib-esm/schemas/ai-citation.generated.js.map +1 -0
  145. package/lib-esm/schemas/ai-dialogue-history.generated.d.ts +22 -0
  146. package/lib-esm/schemas/ai-dialogue-history.generated.js +3 -0
  147. package/lib-esm/schemas/ai-dialogue-history.generated.js.map +1 -0
  148. package/lib-esm/schemas/ai-llm-endpoint-params-google.generated.d.ts +31 -0
  149. package/lib-esm/schemas/ai-llm-endpoint-params-google.generated.js +3 -0
  150. package/lib-esm/schemas/ai-llm-endpoint-params-google.generated.js.map +1 -0
  151. package/lib-esm/schemas/ai-llm-endpoint-params-open-ai.generated.d.ts +43 -0
  152. package/lib-esm/schemas/ai-llm-endpoint-params-open-ai.generated.js +3 -0
  153. package/lib-esm/schemas/ai-llm-endpoint-params-open-ai.generated.js.map +1 -0
  154. package/lib-esm/schemas/ai-response-full.generated.d.ts +12 -0
  155. package/lib-esm/schemas/ai-response-full.generated.js +3 -0
  156. package/lib-esm/schemas/ai-response-full.generated.js.map +1 -0
  157. package/lib-esm/schemas/ai-response.generated.d.ts +22 -0
  158. package/lib-esm/schemas/ai-response.generated.js +3 -0
  159. package/lib-esm/schemas/ai-response.generated.js.map +1 -0
  160. package/lib-esm/schemas/ai-text-gen.generated.d.ts +30 -0
  161. package/lib-esm/schemas/ai-text-gen.generated.js +3 -0
  162. package/lib-esm/schemas/ai-text-gen.generated.js.map +1 -0
  163. package/lib-esm/schemas/collaboration-create.d.ts +5 -0
  164. package/lib-esm/schemas/collaboration-create.js +3 -0
  165. package/lib-esm/schemas/collaboration-create.js.map +1 -0
  166. package/lib-esm/schemas/collaboration-update.d.ts +7 -0
  167. package/lib-esm/schemas/collaboration-update.js +3 -0
  168. package/lib-esm/schemas/collaboration-update.js.map +1 -0
  169. package/lib-esm/schemas/collaboration.d.ts +108 -0
  170. package/lib-esm/schemas/collaboration.js +3 -0
  171. package/lib-esm/schemas/collaboration.js.map +1 -0
  172. package/lib-esm/schemas/collaborations.d.ts +13 -0
  173. package/lib-esm/schemas/collaborations.js +3 -0
  174. package/lib-esm/schemas/collaborations.js.map +1 -0
  175. package/lib-esm/schemas/enterprise-base.generated.d.ts +18 -0
  176. package/lib-esm/schemas/enterprise-base.generated.js +3 -0
  177. package/lib-esm/schemas/enterprise-base.generated.js.map +1 -0
  178. package/lib-esm/schemas/file-base.generated.d.ts +32 -0
  179. package/lib-esm/schemas/file-base.generated.js +3 -0
  180. package/lib-esm/schemas/file-base.generated.js.map +1 -0
  181. package/lib-esm/schemas/file-mini.generated.d.ts +41 -0
  182. package/lib-esm/schemas/file-mini.generated.js +3 -0
  183. package/lib-esm/schemas/file-mini.generated.js.map +1 -0
  184. package/lib-esm/schemas/file-request.d.ts +41 -0
  185. package/lib-esm/schemas/file-request.js +3 -0
  186. package/lib-esm/schemas/file-request.js.map +1 -0
  187. package/lib-esm/schemas/file-version-base.generated.d.ts +19 -0
  188. package/lib-esm/schemas/file-version-base.generated.js +3 -0
  189. package/lib-esm/schemas/file-version-base.generated.js.map +1 -0
  190. package/lib-esm/schemas/file-version-mini.generated.d.ts +14 -0
  191. package/lib-esm/schemas/file-version-mini.generated.js +3 -0
  192. package/lib-esm/schemas/file-version-mini.generated.js.map +1 -0
  193. package/lib-esm/schemas/folder-base.generated.d.ts +32 -0
  194. package/lib-esm/schemas/folder-base.generated.js +3 -0
  195. package/lib-esm/schemas/folder-base.generated.js.map +1 -0
  196. package/lib-esm/schemas/folder-mini.generated.d.ts +31 -0
  197. package/lib-esm/schemas/folder-mini.generated.js +3 -0
  198. package/lib-esm/schemas/folder-mini.generated.js.map +1 -0
  199. package/lib-esm/schemas/index.d.ts +15 -0
  200. package/lib-esm/schemas/index.generated.d.ts +52 -0
  201. package/lib-esm/schemas/index.generated.js +69 -0
  202. package/lib-esm/schemas/index.generated.js.map +1 -0
  203. package/lib-esm/schemas/index.js +32 -0
  204. package/lib-esm/schemas/index.js.map +1 -0
  205. package/lib-esm/schemas/integration-mapping-base.d.ts +23 -0
  206. package/lib-esm/schemas/integration-mapping-base.js +3 -0
  207. package/lib-esm/schemas/integration-mapping-base.js.map +1 -0
  208. package/lib-esm/schemas/integration-mapping-box-item-slack.d.ts +17 -0
  209. package/lib-esm/schemas/integration-mapping-box-item-slack.js +3 -0
  210. package/lib-esm/schemas/integration-mapping-box-item-slack.js.map +1 -0
  211. package/lib-esm/schemas/integration-mapping-partner-item-slack.d.ts +27 -0
  212. package/lib-esm/schemas/integration-mapping-partner-item-slack.js +3 -0
  213. package/lib-esm/schemas/integration-mapping-partner-item-slack.js.map +1 -0
  214. package/lib-esm/schemas/integration-mapping-slack-create-request.d.ts +12 -0
  215. package/lib-esm/schemas/integration-mapping-slack-create-request.js +3 -0
  216. package/lib-esm/schemas/integration-mapping-slack-create-request.js.map +1 -0
  217. package/lib-esm/schemas/integration-mapping-slack-options.d.ts +16 -0
  218. package/lib-esm/schemas/integration-mapping-slack-options.js +3 -0
  219. package/lib-esm/schemas/integration-mapping-slack-options.js.map +1 -0
  220. package/lib-esm/schemas/integration-mapping.d.ts +55 -0
  221. package/lib-esm/schemas/integration-mapping.js +3 -0
  222. package/lib-esm/schemas/integration-mapping.js.map +1 -0
  223. package/lib-esm/schemas/integration-mappings.d.ts +27 -0
  224. package/lib-esm/schemas/integration-mappings.js +3 -0
  225. package/lib-esm/schemas/integration-mappings.js.map +1 -0
  226. package/lib-esm/schemas/shield-information-barrier-base.generated.d.ts +18 -0
  227. package/lib-esm/schemas/shield-information-barrier-base.generated.js +3 -0
  228. package/lib-esm/schemas/shield-information-barrier-base.generated.js.map +1 -0
  229. package/lib-esm/schemas/shield-information-barrier-reference.generated.d.ts +9 -0
  230. package/lib-esm/schemas/shield-information-barrier-reference.generated.js +3 -0
  231. package/lib-esm/schemas/shield-information-barrier-reference.generated.js.map +1 -0
  232. package/lib-esm/schemas/shield-information-barrier-report-base.generated.d.ts +18 -0
  233. package/lib-esm/schemas/shield-information-barrier-report-base.generated.js +3 -0
  234. package/lib-esm/schemas/shield-information-barrier-report-base.generated.js.map +1 -0
  235. package/lib-esm/schemas/shield-information-barrier-report-details.generated.d.ts +9 -0
  236. package/lib-esm/schemas/shield-information-barrier-report-details.generated.js +3 -0
  237. package/lib-esm/schemas/shield-information-barrier-report-details.generated.js.map +1 -0
  238. package/lib-esm/schemas/shield-information-barrier-report.generated.d.ts +32 -0
  239. package/lib-esm/schemas/shield-information-barrier-report.generated.js +3 -0
  240. package/lib-esm/schemas/shield-information-barrier-report.generated.js.map +1 -0
  241. package/lib-esm/schemas/shield-information-barrier-reports.generated.d.ts +26 -0
  242. package/lib-esm/schemas/shield-information-barrier-reports.generated.js +3 -0
  243. package/lib-esm/schemas/shield-information-barrier-reports.generated.js.map +1 -0
  244. package/lib-esm/schemas/shield-information-barrier-segment-member-base.generated.d.ts +19 -0
  245. package/lib-esm/schemas/shield-information-barrier-segment-member-base.generated.js +3 -0
  246. package/lib-esm/schemas/shield-information-barrier-segment-member-base.generated.js.map +1 -0
  247. package/lib-esm/schemas/shield-information-barrier-segment-member-mini.generated.d.ts +13 -0
  248. package/lib-esm/schemas/shield-information-barrier-segment-member-mini.generated.js +3 -0
  249. package/lib-esm/schemas/shield-information-barrier-segment-member-mini.generated.js.map +1 -0
  250. package/lib-esm/schemas/shield-information-barrier-segment-member.generated.d.ts +39 -0
  251. package/lib-esm/schemas/shield-information-barrier-segment-member.generated.js +3 -0
  252. package/lib-esm/schemas/shield-information-barrier-segment-member.generated.js.map +1 -0
  253. package/lib-esm/schemas/shield-information-barrier-segment-members.generated.d.ts +26 -0
  254. package/lib-esm/schemas/shield-information-barrier-segment-members.generated.js +3 -0
  255. package/lib-esm/schemas/shield-information-barrier-segment-members.generated.js.map +1 -0
  256. package/lib-esm/schemas/shield-information-barrier-segment-restriction-base.generated.d.ts +20 -0
  257. package/lib-esm/schemas/shield-information-barrier-segment-restriction-base.generated.js +3 -0
  258. package/lib-esm/schemas/shield-information-barrier-segment-restriction-base.generated.js.map +1 -0
  259. package/lib-esm/schemas/shield-information-barrier-segment-restriction-mini.generated.d.ts +20 -0
  260. package/lib-esm/schemas/shield-information-barrier-segment-restriction-mini.generated.js +3 -0
  261. package/lib-esm/schemas/shield-information-barrier-segment-restriction-mini.generated.js.map +1 -0
  262. package/lib-esm/schemas/shield-information-barrier-segment-restriction.generated.d.ts +33 -0
  263. package/lib-esm/schemas/shield-information-barrier-segment-restriction.generated.js +3 -0
  264. package/lib-esm/schemas/shield-information-barrier-segment-restriction.generated.js.map +1 -0
  265. package/lib-esm/schemas/shield-information-barrier-segment-restrictions.generated.d.ts +26 -0
  266. package/lib-esm/schemas/shield-information-barrier-segment-restrictions.generated.js +3 -0
  267. package/lib-esm/schemas/shield-information-barrier-segment-restrictions.generated.js.map +1 -0
  268. package/lib-esm/schemas/shield-information-barrier-segment.generated.d.ts +50 -0
  269. package/lib-esm/schemas/shield-information-barrier-segment.generated.js +3 -0
  270. package/lib-esm/schemas/shield-information-barrier-segment.generated.js.map +1 -0
  271. package/lib-esm/schemas/shield-information-barrier-segments.generated.d.ts +26 -0
  272. package/lib-esm/schemas/shield-information-barrier-segments.generated.js +3 -0
  273. package/lib-esm/schemas/shield-information-barrier-segments.generated.js.map +1 -0
  274. package/lib-esm/schemas/shield-information-barrier.generated.d.ts +56 -0
  275. package/lib-esm/schemas/shield-information-barrier.generated.js +3 -0
  276. package/lib-esm/schemas/shield-information-barrier.generated.js.map +1 -0
  277. package/lib-esm/schemas/shield-information-barriers.generated.d.ts +25 -0
  278. package/lib-esm/schemas/shield-information-barriers.generated.js +3 -0
  279. package/lib-esm/schemas/shield-information-barriers.generated.js.map +1 -0
  280. package/lib-esm/schemas/sign-request-base.generated.d.ts +78 -0
  281. package/lib-esm/schemas/sign-request-base.generated.js +3 -0
  282. package/lib-esm/schemas/sign-request-base.generated.js.map +1 -0
  283. package/lib-esm/schemas/sign-request-create-request.generated.d.ts +39 -0
  284. package/lib-esm/schemas/sign-request-create-request.generated.js +3 -0
  285. package/lib-esm/schemas/sign-request-create-request.generated.js.map +1 -0
  286. package/lib-esm/schemas/sign-request-create-signer.generated.d.ts +95 -0
  287. package/lib-esm/schemas/sign-request-create-signer.generated.js +3 -0
  288. package/lib-esm/schemas/sign-request-create-signer.generated.js.map +1 -0
  289. package/lib-esm/schemas/sign-request-prefill-tag.generated.d.ts +28 -0
  290. package/lib-esm/schemas/sign-request-prefill-tag.generated.js +3 -0
  291. package/lib-esm/schemas/sign-request-prefill-tag.generated.js.map +1 -0
  292. package/lib-esm/schemas/sign-request-signer-input.generated.d.ts +28 -0
  293. package/lib-esm/schemas/sign-request-signer-input.generated.js +3 -0
  294. package/lib-esm/schemas/sign-request-signer-input.generated.js.map +1 -0
  295. package/lib-esm/schemas/sign-request-signer.generated.d.ts +34 -0
  296. package/lib-esm/schemas/sign-request-signer.generated.js +3 -0
  297. package/lib-esm/schemas/sign-request-signer.generated.js.map +1 -0
  298. package/lib-esm/schemas/sign-request.generated.d.ts +72 -0
  299. package/lib-esm/schemas/sign-request.generated.js +3 -0
  300. package/lib-esm/schemas/sign-request.generated.js.map +1 -0
  301. package/lib-esm/schemas/sign-requests.generated.d.ts +25 -0
  302. package/lib-esm/schemas/sign-requests.generated.js +3 -0
  303. package/lib-esm/schemas/sign-requests.generated.js.map +1 -0
  304. package/lib-esm/schemas/sign-template.generated.d.ts +94 -0
  305. package/lib-esm/schemas/sign-template.generated.js +3 -0
  306. package/lib-esm/schemas/sign-template.generated.js.map +1 -0
  307. package/lib-esm/schemas/sign-templates.generated.d.ts +30 -0
  308. package/lib-esm/schemas/sign-templates.generated.js +3 -0
  309. package/lib-esm/schemas/sign-templates.generated.js.map +1 -0
  310. package/lib-esm/schemas/template-signer-input.generated.d.ts +61 -0
  311. package/lib-esm/schemas/template-signer-input.generated.js +3 -0
  312. package/lib-esm/schemas/template-signer-input.generated.js.map +1 -0
  313. package/lib-esm/schemas/template-signer.generated.d.ts +43 -0
  314. package/lib-esm/schemas/template-signer.generated.js +3 -0
  315. package/lib-esm/schemas/template-signer.generated.js.map +1 -0
  316. package/lib-esm/schemas/user-base.generated.d.ts +18 -0
  317. package/lib-esm/schemas/user-base.generated.js +3 -0
  318. package/lib-esm/schemas/user-base.generated.js.map +1 -0
  319. package/lib-esm/schemas/user-integration-mappings.d.ts +19 -0
  320. package/lib-esm/schemas/user-integration-mappings.js +3 -0
  321. package/lib-esm/schemas/user-integration-mappings.js.map +1 -0
  322. package/lib-esm/schemas/user-mini.d.ts +6 -0
  323. package/lib-esm/schemas/user-mini.js +3 -0
  324. package/lib-esm/schemas/user-mini.js.map +1 -0
  325. package/lib-esm/sessions/app-auth-session.d.ts +92 -0
  326. package/lib-esm/sessions/app-auth-session.js +176 -0
  327. package/lib-esm/sessions/app-auth-session.js.map +1 -0
  328. package/lib-esm/sessions/basic-session.d.ts +55 -0
  329. package/lib-esm/sessions/basic-session.js +62 -0
  330. package/lib-esm/sessions/basic-session.js.map +1 -0
  331. package/lib-esm/sessions/ccg-session.d.ts +72 -0
  332. package/lib-esm/sessions/ccg-session.js +111 -0
  333. package/lib-esm/sessions/ccg-session.js.map +1 -0
  334. package/lib-esm/sessions/persistent-session.d.ts +96 -0
  335. package/lib-esm/sessions/persistent-session.js +234 -0
  336. package/lib-esm/sessions/persistent-session.js.map +1 -0
  337. package/lib-esm/token-manager.d.ts +191 -0
  338. package/lib-esm/token-manager.js +453 -0
  339. package/lib-esm/token-manager.js.map +1 -0
  340. package/lib-esm/util/config.d.ts +85 -0
  341. package/lib-esm/util/config.js +212 -0
  342. package/lib-esm/util/config.js.map +1 -0
  343. package/lib-esm/util/errors.d.ts +50 -0
  344. package/lib-esm/util/errors.js +176 -0
  345. package/lib-esm/util/errors.js.map +1 -0
  346. package/lib-esm/util/exponential-backoff.d.ts +11 -0
  347. package/lib-esm/util/exponential-backoff.js +17 -0
  348. package/lib-esm/util/exponential-backoff.js.map +1 -0
  349. package/lib-esm/util/paging-iterator.d.ts +53 -0
  350. package/lib-esm/util/paging-iterator.js +247 -0
  351. package/lib-esm/util/paging-iterator.js.map +1 -0
  352. package/lib-esm/util/serializable.d.ts +10 -0
  353. package/lib-esm/util/serializable.js +17 -0
  354. package/lib-esm/util/serializable.js.map +1 -0
  355. package/lib-esm/util/url-path.d.ts +16 -0
  356. package/lib-esm/util/url-path.js +36 -0
  357. package/lib-esm/util/url-path.js.map +1 -0
  358. package/package.json +18 -4
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Enterprise event stream backed by the enterprise events API
4
+ */
5
+ // ------------------------------------------------------------------------------
6
+ // Requirements
7
+ // ------------------------------------------------------------------------------
8
+ const stream_1 = require("stream");
9
+ // ------------------------------------------------------------------------------
10
+ // Private
11
+ // ------------------------------------------------------------------------------
12
+ const DEFAULT_OPTIONS = Object.freeze({
13
+ pollingInterval: 60, // seconds
14
+ chunkSize: 500,
15
+ streamType: 'admin_logs',
16
+ });
17
+ // ------------------------------------------------------------------------------
18
+ // Public
19
+ // ------------------------------------------------------------------------------
20
+ /**
21
+ * Stream of Box enterprise events.
22
+ *
23
+ * By default, the stream starts from the current time.
24
+ * Pass 'startDate' to start from a specific time.
25
+ * Pass 'streamPosition' to start from a previous stream position, or '0' for all available past events (~1 year).
26
+ * Once the stream catches up to the current time, it will begin polling every 'pollingInterval' seconds.
27
+ * If 'pollingInterval' = 0, then the stream will end when it catches up to the current time (no polling).
28
+ *
29
+ * @param {BoxClient} client - The client to use to get events
30
+ * @param {Object} [options] - Options
31
+ * @param {string} [options.streamPosition] - The stream position to start from (pass '0' for all past events)
32
+ * @param {string} [options.startDate] - The date to start from
33
+ * @param {string} [options.endDate] - The date to end at
34
+ * @param {EventType[]} [options.eventTypeFilter] - Array of event types to return
35
+ * @param {int} [options.pollingInterval=60] - Polling interval (in seconds). Pass 0 for no polling.
36
+ * @param {int} [options.chunkSize=500] - Number of events to fetch per call (max = 500)
37
+ * @constructor
38
+ * @extends Readable
39
+ */
40
+ class EnterpriseEventStream extends stream_1.Readable {
41
+ constructor(client, options) {
42
+ super({
43
+ objectMode: true,
44
+ });
45
+ /**
46
+ * @var {BoxClient} - The client for making API calls
47
+ * @private
48
+ */
49
+ this._client = client;
50
+ /**
51
+ * @var {Object} - Options
52
+ * @private
53
+ */
54
+ this._options = Object.assign({}, DEFAULT_OPTIONS, options);
55
+ // Handle the case where the caller passes streamPosition = 0 instead of streamPosition = '0'.
56
+ if (this._options.streamType === 'admin_logs' &&
57
+ !this._options.startDate &&
58
+ !this._options.streamPosition &&
59
+ this._options.streamPosition !== 0) {
60
+ // If neither startDate nor streamPosition is specified, start from the current time.
61
+ this._options.startDate = new Date()
62
+ .toISOString()
63
+ .replace(/\.000Z$/, '-00:00');
64
+ }
65
+ /**
66
+ * @var {?string} - The current stream position
67
+ * @private
68
+ */
69
+ this._streamPosition = this._options.streamPosition;
70
+ }
71
+ /**
72
+ * @returns {?number} - Returns null if no events have been fetched from Box yet.
73
+ */
74
+ getStreamPosition() {
75
+ return this._streamPosition;
76
+ }
77
+ /**
78
+ * Get the stream state.
79
+ *
80
+ * @returns {Object} - The stream state
81
+ */
82
+ getStreamState() {
83
+ // We need to return both streamPosition and startDate, since streamPosition will be null until
84
+ // the first set of events is returned from Box.
85
+ return {
86
+ streamPosition: this._streamPosition,
87
+ startDate: this._options.startDate,
88
+ endDate: this._options.endDate,
89
+ eventTypeFilter: this._options.eventTypeFilter,
90
+ };
91
+ }
92
+ /**
93
+ * Set the stream state.
94
+ *
95
+ * @param {Object} state - The stream state
96
+ * @returns {void}
97
+ */
98
+ setStreamState(state) {
99
+ // We need to set both streamPosition and startDate, since streamPosition will be null until
100
+ // the first set of events is returned from Box.
101
+ this._streamPosition = state.streamPosition;
102
+ this._options.startDate = state.startDate;
103
+ this._options.endDate = state.endDate;
104
+ this._options.eventTypeFilter = state.eventTypeFilter;
105
+ }
106
+ /**
107
+ * Fetch the next chunk of events
108
+ *
109
+ * If there are no events, poll until events are available.
110
+ * If an error occurs, emit the error but continuing polling as usual.
111
+ * @param {Function} callback - Passed the array of events
112
+ * @returns {void}
113
+ * @private
114
+ */
115
+ fetchEvents(callback) {
116
+ const self = this, params = {
117
+ stream_type: this._options.streamType,
118
+ };
119
+ // Use the current stream position.
120
+ // Handle the case where the caller passes streamPosition === 0 instead of streamPosition === '0'.
121
+ if (this._streamPosition || this._streamPosition === 0) {
122
+ params.stream_position = this._streamPosition;
123
+ }
124
+ if (this._options.streamType === 'admin_logs' && this._options.startDate) {
125
+ params.created_after = this._options.startDate;
126
+ }
127
+ if (this._options.streamType === 'admin_logs' && this._options.endDate) {
128
+ params.created_before = this._options.endDate;
129
+ }
130
+ if (this._options.eventTypeFilter) {
131
+ params.event_type = this._options.eventTypeFilter.join(',');
132
+ }
133
+ if (this._options.chunkSize) {
134
+ params.limit = this._options.chunkSize;
135
+ }
136
+ this._client.events.get(params, (err /* FIXME */, result /* FIXME */) => {
137
+ if (err) {
138
+ self.emit('error', err);
139
+ // If there was a "permanent" error, we would call the callback with it here.
140
+ // But it's not clear which errors are truly permanent?
141
+ // If Box is down or returning errors for an extended period, we still want to resume when it recovers.
142
+ // So, continue polling at the regular frequency.
143
+ // Don't use a shorter retry interval (to avoid DDOSing Box).
144
+ }
145
+ if (err || !result || !result.entries || result.entries.length === 0) {
146
+ if (!self._options.pollingInterval) {
147
+ // If polling is disabled, end the stream.
148
+ callback();
149
+ return;
150
+ }
151
+ // There were no events returned (or an error occurred), so schedule another poll.
152
+ const delay = self._options.pollingInterval * 1000;
153
+ // Stream readers can use this to flush buffered events to a downstream system.
154
+ self.emit('wait', delay);
155
+ setTimeout(() => {
156
+ self.fetchEvents(callback);
157
+ }, delay);
158
+ return;
159
+ }
160
+ // Only update the stream position if there were events returned.
161
+ // The API currently returns next_stream_position = 0 if there are no events (may be a bug?).
162
+ // But we don't want to start over at the beginning in that case, so ignore it.
163
+ self._streamPosition = result.next_stream_position;
164
+ // Notify the reader of the new stream position.
165
+ // Stream readers can respond to the 'newStreamState' event to persist the stream state.
166
+ self.emit('newStreamState', self.getStreamState());
167
+ callback(null, result.entries);
168
+ });
169
+ }
170
+ /**
171
+ * Implementation of the stream-internal read function. This is called
172
+ * by the stream whenever it needs more data, and will not be called again
173
+ * until data is pushed into the stream.
174
+ * @returns {void}
175
+ * @private
176
+ */
177
+ _read() {
178
+ // Fetch the next chunk of events.
179
+ const self = this;
180
+ // This will poll forever until events are available.
181
+ this.fetchEvents((err /* FIXME */, events /* FIXME */) => {
182
+ if (err || !events || events.length === 0) {
183
+ // Close the stream if there was a "permanent" failure or we reached the end of the events.
184
+ self.push(null);
185
+ return;
186
+ }
187
+ // Pause the stream to avoid race conditions while pushing in the new events.
188
+ // Without this, _read() would be called again from inside each push(),
189
+ // resulting in multiple parallel calls to fetchEvents().
190
+ // See https://github.com/nodejs/node/issues/3203
191
+ const wasPaused = self.isPaused();
192
+ self.pause();
193
+ // Push all of the events into the stream.
194
+ events.forEach((event /* FIXME */) => {
195
+ self.push(event);
196
+ });
197
+ if (!wasPaused) {
198
+ // This will deliver the events and trigger the next call to _read() once they have been consumed.
199
+ self.resume();
200
+ }
201
+ });
202
+ }
203
+ }
204
+ module.exports = EnterpriseEventStream;
205
+ //# sourceMappingURL=enterprise-event-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-event-stream.js","sourceRoot":"","sources":["../src/enterprise-event-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @fileoverview Event stream backed by the events API
3
+ */
4
+ import { Readable } from 'stream';
5
+ import BoxClient from './box-client';
6
+ type Options = {
7
+ retryDelay: number;
8
+ deduplicationFilterSize: number;
9
+ fetchInterval: number;
10
+ };
11
+ type LongPollInfo = {
12
+ max_retries: number;
13
+ retry_timeout: number;
14
+ url: string;
15
+ };
16
+ /**
17
+ * Stream of Box events from a given client and point in time.
18
+ * @param {BoxClient} client The client to use to get events
19
+ * @param {string} streamPosition The point in time to start at
20
+ * @param {Object} [options] Optional parameters
21
+ * @param {int} [options.retryDelay=1000] Number of ms to wait before retrying after an error
22
+ * @param {int} [options.deduplicationFilterSize=5000] Number of IDs to track for deduplication
23
+ * @param {int} [options.fetchInterval=1000] Minimunm number of ms between calls for more events
24
+ * @constructor
25
+ * @extends Readable
26
+ */
27
+ declare class EventStream extends Readable {
28
+ _client: BoxClient;
29
+ _streamPosition: string;
30
+ _longPollInfo?: LongPollInfo;
31
+ _longPollRetries: number;
32
+ _dedupHash: Record<string, boolean>;
33
+ _rateLimiter: Promise<any>;
34
+ _options: Options;
35
+ _retryTimer?: NodeJS.Timeout | number;
36
+ constructor(client: BoxClient, streamPosition: string, options?: Partial<Options>);
37
+ /**
38
+ * Retrieve the url and params for long polling for new updates
39
+ * @returns {Promise} Promise for testing purposes
40
+ * @private
41
+ */
42
+ getLongPollInfo(): any;
43
+ /**
44
+ * Long poll for notification of new events. We do this rather than
45
+ * polling for the events directly in order to minimize the number of API
46
+ * calls necessary.
47
+ * @returns {Promise} Promise for testing pruposes
48
+ * @private
49
+ */
50
+ doLongPoll(): any;
51
+ /**
52
+ * Retries long-polling after a delay.
53
+ * Does not attempt if stream is already destroyed.
54
+ * @returns {void}
55
+ * @private
56
+ */
57
+ retryPollInfo(): void;
58
+ /**
59
+ * Fetch the latest group of events and push them into the stream
60
+ * @returns {Promise} Promise for testing purposes
61
+ * @private
62
+ */
63
+ fetchEvents(): Promise<any>;
64
+ /**
65
+ * Clean up the deduplication filter, to prevent it from growing
66
+ * too big and eating up memory. We look at the latest set of events
67
+ * returned and assume that any IDs not in that set don't need to be
68
+ * tracked for deduplication any more.
69
+ * @param {Object[]} latestEvents The latest events from the API
70
+ * @returns {void}
71
+ * @private
72
+ */
73
+ cleanupDedupFilter(latestEvents: any): void;
74
+ /**
75
+ * Implementation of the stream-internal read function. This is called
76
+ * by the stream whenever it needs more data, and will not be called again
77
+ * until data is pushed into the stream.
78
+ * @returns {void}
79
+ * @private
80
+ */
81
+ _read(): void;
82
+ /**
83
+ * Implementation of stream-internal `_destroy` function (v8.0.0 and later).
84
+ * Called by stream consumers to effectively stop polling via the public
85
+ * `destroy()`.
86
+ * @returns {void}
87
+ * @private
88
+ */
89
+ _destroy(): void;
90
+ }
91
+ export = EventStream;
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Event stream backed by the events API
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ // ------------------------------------------------------------------------------
9
+ // Requirements
10
+ // ------------------------------------------------------------------------------
11
+ const bluebird_1 = require("bluebird");
12
+ const querystring_1 = __importDefault(require("querystring"));
13
+ const stream_1 = require("stream");
14
+ // ------------------------------------------------------------------------------
15
+ // Private
16
+ // ------------------------------------------------------------------------------
17
+ const DEFAULT_OPTIONS = Object.freeze({
18
+ deduplicationFilterSize: 5000,
19
+ retryDelay: 1000,
20
+ fetchInterval: 1000,
21
+ });
22
+ // ------------------------------------------------------------------------------
23
+ // Public
24
+ // ------------------------------------------------------------------------------
25
+ /**
26
+ * Stream of Box events from a given client and point in time.
27
+ * @param {BoxClient} client The client to use to get events
28
+ * @param {string} streamPosition The point in time to start at
29
+ * @param {Object} [options] Optional parameters
30
+ * @param {int} [options.retryDelay=1000] Number of ms to wait before retrying after an error
31
+ * @param {int} [options.deduplicationFilterSize=5000] Number of IDs to track for deduplication
32
+ * @param {int} [options.fetchInterval=1000] Minimunm number of ms between calls for more events
33
+ * @constructor
34
+ * @extends Readable
35
+ */
36
+ class EventStream extends stream_1.Readable {
37
+ constructor(client, streamPosition, options) {
38
+ super({
39
+ objectMode: true,
40
+ });
41
+ /**
42
+ * @var {BoxClient} The client for making API calls
43
+ * @private
44
+ */
45
+ this._client = client;
46
+ /**
47
+ * @var {string} The latest stream position
48
+ * @private
49
+ */
50
+ this._streamPosition = streamPosition;
51
+ /**
52
+ * @var {?Object} The information for how to long poll
53
+ * @private
54
+ */
55
+ this._longPollInfo = undefined;
56
+ /**
57
+ * @var {int} The number of long poll requests we've made against one URL so far
58
+ * @private
59
+ */
60
+ this._longPollRetries = 0;
61
+ /**
62
+ * @var {Object.<string, boolean>} Hash of event IDs we've already pushed
63
+ * @private
64
+ */
65
+ this._dedupHash = {};
66
+ /**
67
+ * Rate limiting promise to ensure that events are not fetched too often,
68
+ * initially resolved to allow an immediate API call.
69
+ * @var {Promise}
70
+ * @private
71
+ */
72
+ this._rateLimiter = bluebird_1.Promise.resolve();
73
+ this._options = Object.assign({}, DEFAULT_OPTIONS, options);
74
+ }
75
+ /**
76
+ * Retrieve the url and params for long polling for new updates
77
+ * @returns {Promise} Promise for testing purposes
78
+ * @private
79
+ */
80
+ getLongPollInfo() {
81
+ if (this.destroyed) {
82
+ return bluebird_1.Promise.resolve(false);
83
+ }
84
+ return this._client.events
85
+ .getLongPollInfo()
86
+ .then((longPollInfo) => {
87
+ // On getting new long poll info, reset everything
88
+ this._longPollInfo = longPollInfo;
89
+ this._longPollRetries = 0;
90
+ return this.doLongPoll();
91
+ })
92
+ .catch((err /* FIXME */) => {
93
+ this.emit('error', err);
94
+ // Only retry on resolvable errors
95
+ if (!err.authExpired) {
96
+ this.retryPollInfo();
97
+ }
98
+ });
99
+ }
100
+ /**
101
+ * Long poll for notification of new events. We do this rather than
102
+ * polling for the events directly in order to minimize the number of API
103
+ * calls necessary.
104
+ * @returns {Promise} Promise for testing pruposes
105
+ * @private
106
+ */
107
+ doLongPoll() {
108
+ if (this.destroyed) {
109
+ return bluebird_1.Promise.resolve(false);
110
+ }
111
+ // If we're over the max number of retries, reset
112
+ if (this._longPollRetries > this._longPollInfo.max_retries) {
113
+ return this.getLongPollInfo();
114
+ }
115
+ var url = this._longPollInfo.url, qsDelim = url.indexOf('?'), query = {};
116
+ // Break out the query params, otherwise the request URL gets messed up
117
+ if (qsDelim > 0) {
118
+ query = querystring_1.default.parse(url.substr(qsDelim + 1));
119
+ url = url.substr(0, qsDelim);
120
+ }
121
+ query.stream_position = this._streamPosition;
122
+ var options = {
123
+ qs: query,
124
+ timeout: this._longPollInfo.retry_timeout * 1000,
125
+ };
126
+ this._longPollRetries += 1;
127
+ return this._client
128
+ .wrapWithDefaultHandler(this._client.get)(url, options)
129
+ .then((data /* FIXME */) => {
130
+ if (this.destroyed) {
131
+ return false;
132
+ }
133
+ if (data.message === 'reconnect') {
134
+ return this.getLongPollInfo();
135
+ }
136
+ // We don't expect any messages other than reconnect and new_change, so if
137
+ // we get one just retry the long poll
138
+ if (data.message !== 'new_change') {
139
+ return this.doLongPoll();
140
+ }
141
+ return this.fetchEvents();
142
+ })
143
+ .catch(() => {
144
+ this.retryPollInfo();
145
+ });
146
+ }
147
+ /**
148
+ * Retries long-polling after a delay.
149
+ * Does not attempt if stream is already destroyed.
150
+ * @returns {void}
151
+ * @private
152
+ */
153
+ retryPollInfo() {
154
+ if (!this.destroyed) {
155
+ this._retryTimer = setTimeout(() => this.getLongPollInfo(), this._options.retryDelay);
156
+ }
157
+ }
158
+ /**
159
+ * Fetch the latest group of events and push them into the stream
160
+ * @returns {Promise} Promise for testing purposes
161
+ * @private
162
+ */
163
+ fetchEvents() {
164
+ if (this.destroyed) {
165
+ return bluebird_1.Promise.resolve(false);
166
+ }
167
+ var eventParams = {
168
+ stream_position: this._streamPosition,
169
+ limit: 500,
170
+ };
171
+ // Get new events after the rate limiter expires
172
+ return this._rateLimiter.then(() => this._client.events
173
+ .get(eventParams)
174
+ .then((events /* FIXME */) => {
175
+ // Reset the rate limiter
176
+ this._rateLimiter = bluebird_1.Promise.delay(this._options.fetchInterval);
177
+ // If the response wasn't what we expected, re-poll
178
+ if (!events.entries || !events.next_stream_position) {
179
+ return this.doLongPoll();
180
+ }
181
+ this._streamPosition = events.next_stream_position;
182
+ // De-duplicate the fetched events, since the API often returns
183
+ // the same events at multiple subsequent stream positions
184
+ var newEvents = events.entries.filter((event /* FIXME */) => !this._dedupHash[event.event_id]);
185
+ // If there aren't any non-duplicate events, go back to polling
186
+ if (newEvents.length === 0) {
187
+ return this.doLongPoll();
188
+ }
189
+ // Pause the stream to avoid race conditions while pushing in the new events.
190
+ // Without this, _read() would be called again from inside each push(),
191
+ // resulting in multiple parallel calls to fetchEvents().
192
+ // See https://github.com/nodejs/node/issues/3203
193
+ var wasPaused = this.isPaused();
194
+ this.pause();
195
+ // Push new events into the stream
196
+ newEvents.forEach((event /* FIXME */) => {
197
+ this._dedupHash[event.event_id] = true;
198
+ this.push(event);
199
+ });
200
+ if (!wasPaused) {
201
+ // This will deliver the events and trigger the next call to _read() once they have been consumed.
202
+ this.resume();
203
+ }
204
+ // Once the deduplication filter gets too big, clean it up
205
+ if (Object.keys(this._dedupHash).length >=
206
+ this._options.deduplicationFilterSize) {
207
+ this.cleanupDedupFilter(events.entries);
208
+ }
209
+ return true;
210
+ })
211
+ .catch((err /* FIXME */) => {
212
+ this.emit('error', err);
213
+ this.retryPollInfo();
214
+ }));
215
+ }
216
+ /**
217
+ * Clean up the deduplication filter, to prevent it from growing
218
+ * too big and eating up memory. We look at the latest set of events
219
+ * returned and assume that any IDs not in that set don't need to be
220
+ * tracked for deduplication any more.
221
+ * @param {Object[]} latestEvents The latest events from the API
222
+ * @returns {void}
223
+ * @private
224
+ */
225
+ cleanupDedupFilter(latestEvents /* FIXME */) {
226
+ var dedupIDs = Object.keys(this._dedupHash);
227
+ dedupIDs.forEach((eventID) => {
228
+ var isEventCleared = !latestEvents.find((e /* FIXME */) => e.event_id === eventID);
229
+ if (isEventCleared) {
230
+ delete this._dedupHash[eventID];
231
+ }
232
+ });
233
+ }
234
+ /**
235
+ * Implementation of the stream-internal read function. This is called
236
+ * by the stream whenever it needs more data, and will not be called again
237
+ * until data is pushed into the stream.
238
+ * @returns {void}
239
+ * @private
240
+ */
241
+ _read() {
242
+ // Start the process of getting new events
243
+ this.getLongPollInfo();
244
+ }
245
+ /**
246
+ * Implementation of stream-internal `_destroy` function (v8.0.0 and later).
247
+ * Called by stream consumers to effectively stop polling via the public
248
+ * `destroy()`.
249
+ * @returns {void}
250
+ * @private
251
+ */
252
+ _destroy() {
253
+ clearTimeout(this._retryTimer);
254
+ delete this._retryTimer;
255
+ }
256
+ }
257
+ // backwards-compat for Node.js pre-v8.0.0
258
+ /* istanbul ignore if */
259
+ if (typeof stream_1.Readable.prototype.destroy !== 'function') {
260
+ /**
261
+ * Destroys the stream. Rough polyfill for `Readable#destroy`.
262
+ * @returns {void}
263
+ * @public
264
+ */
265
+ EventStream.prototype.destroy = function (error) {
266
+ if (!this.destroyed) {
267
+ process.nextTick(() => {
268
+ this.emit('close');
269
+ });
270
+ this.destroyed = true;
271
+ this._destroy();
272
+ }
273
+ return this;
274
+ };
275
+ }
276
+ module.exports = EventStream;
277
+ //# sourceMappingURL=event-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-stream.js","sourceRoot":"","sources":["../src/event-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import BoxClient from '../box-client';
2
+ import * as schemas from '../schemas';
3
+ /**
4
+ */
5
+ declare class AIManager {
6
+ client: BoxClient;
7
+ /**
8
+ * @param {BoxClient} client The Box API Client that is responsible for making calls to the API
9
+ */
10
+ constructor(client: BoxClient);
11
+ /**
12
+ * Send AI question request
13
+ *
14
+ * Sends an AI request to supported LLMs and returns an answer specifically focused on the user's question given the provided context.
15
+ * @param {schemas.AiAsk} body
16
+ * @param {object} [options] Options for the request
17
+ * @param {Function} [callback] Passed the result if successful, error otherwise
18
+ * @returns {Promise<schemas.AiResponseFull>} A promise resolving to the result or rejecting with an error
19
+ */
20
+ ask(body: schemas.AiAsk, options?: {}, callback?: Function): Promise<schemas.AiResponseFull>;
21
+ /**
22
+ * Send AI request to generate text
23
+ *
24
+ * Sends an AI request to supported LLMs and returns an answer specifically focused on the creation of new text.
25
+ * @param {schemas.AiTextGen} body
26
+ * @param {object} [options] Options for the request
27
+ * @param {Function} [callback] Passed the result if successful, error otherwise
28
+ * @returns {Promise<schemas.AiResponse>} A promise resolving to the result or rejecting with an error
29
+ */
30
+ textGen(body: schemas.AiTextGen, options?: {}, callback?: Function): Promise<schemas.AiResponse>;
31
+ /**
32
+ * Get AI agent default configuration
33
+ *
34
+ * Get the AI agent default config
35
+ * @param {object} options Options for the request
36
+ * @param {"ask" | "text_gen"} options.mode The mode to filter the agent config to return.
37
+ * @param {string} [options.language] The ISO language code to return the agent config for. If the language is not supported the default agent config is returned.
38
+ * @param {string} [options.model] The model to return the default agent config for.
39
+ * @param {Function} [callback] Passed the result if successful, error otherwise
40
+ * @returns {Promise<schemas.AiAgentAsk | schemas.AiAgentTextGen>} A promise resolving to the result or rejecting with an error
41
+ */
42
+ getAiAgentDefaultConfig(options: {
43
+ /**
44
+ * The mode to filter the agent config to return.
45
+ */
46
+ readonly mode: 'ask' | 'text_gen';
47
+ /**
48
+ * The ISO language code to return the agent config for.
49
+ * If the language is not supported the default agent config is returned.
50
+ */
51
+ readonly language?: string;
52
+ /**
53
+ * The model to return the default agent config for.
54
+ */
55
+ readonly model?: string;
56
+ }, callback?: Function): Promise<schemas.AiAgentAsk | schemas.AiAgentTextGen>;
57
+ }
58
+ export = AIManager;