@unofficialbox/box-open-sdk 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/cjs/buildinfo.js +2 -2
  2. package/dist/cjs/errors.js +7 -0
  3. package/dist/cjs/managers/events.js +27 -1
  4. package/dist/cjs/managers/web_links.js +26 -2
  5. package/dist/cjs/models/schemas/ai.js +1 -1
  6. package/dist/cjs/models/schemas/ai_studio.js +1 -1
  7. package/dist/cjs/models/schemas/app_item_associations.js +1 -1
  8. package/dist/cjs/models/schemas/archives.js +1 -1
  9. package/dist/cjs/models/schemas/authorization.js +1 -1
  10. package/dist/cjs/models/schemas/automate_workflows.js +1 -1
  11. package/dist/cjs/models/schemas/avatars.js +1 -1
  12. package/dist/cjs/models/schemas/chunked_uploads.js +1 -1
  13. package/dist/cjs/models/schemas/classifications.js +1 -1
  14. package/dist/cjs/models/schemas/collaboration_allowlist_entries.js +1 -1
  15. package/dist/cjs/models/schemas/collaboration_allowlist_exempt_targets.js +1 -1
  16. package/dist/cjs/models/schemas/collections.js +1 -1
  17. package/dist/cjs/models/schemas/comments.js +1 -1
  18. package/dist/cjs/models/schemas/device_pinners.js +1 -1
  19. package/dist/cjs/models/schemas/docgen.js +1 -1
  20. package/dist/cjs/models/schemas/docgen_template.js +1 -1
  21. package/dist/cjs/models/schemas/document_split.js +1 -1
  22. package/dist/cjs/models/schemas/email_aliases.js +1 -1
  23. package/dist/cjs/models/schemas/enterprise_configurations.js +1 -1
  24. package/dist/cjs/models/schemas/events.js +1 -1
  25. package/dist/cjs/models/schemas/external_users.js +1 -1
  26. package/dist/cjs/models/schemas/file_requests.js +1 -1
  27. package/dist/cjs/models/schemas/file_version_legal_holds.js +1 -1
  28. package/dist/cjs/models/schemas/file_version_retentions.js +1 -1
  29. package/dist/cjs/models/schemas/file_versions.js +1 -1
  30. package/dist/cjs/models/schemas/files.js +1 -1
  31. package/dist/cjs/models/schemas/folder_locks.js +1 -1
  32. package/dist/cjs/models/schemas/folders.js +1 -1
  33. package/dist/cjs/models/schemas/groups.js +1 -1
  34. package/dist/cjs/models/schemas/hub_collaborations.js +1 -1
  35. package/dist/cjs/models/schemas/hub_document.js +1 -1
  36. package/dist/cjs/models/schemas/hub_items.js +1 -1
  37. package/dist/cjs/models/schemas/hubs.js +1 -1
  38. package/dist/cjs/models/schemas/integration_mappings.js +1 -1
  39. package/dist/cjs/models/schemas/invites.js +1 -1
  40. package/dist/cjs/models/schemas/legal_hold_policies.js +1 -1
  41. package/dist/cjs/models/schemas/legal_hold_policy_assignments.js +1 -1
  42. package/dist/cjs/models/schemas/list_collaborations.js +1 -1
  43. package/dist/cjs/models/schemas/memberships.js +1 -1
  44. package/dist/cjs/models/schemas/metadata_cascade_policies.js +1 -1
  45. package/dist/cjs/models/schemas/metadata_taxonomies.js +1 -1
  46. package/dist/cjs/models/schemas/metadata_templates.js +1 -1
  47. package/dist/cjs/models/schemas/notes.js +1 -1
  48. package/dist/cjs/models/schemas/query.js +1 -1
  49. package/dist/cjs/models/schemas/recent_items.js +1 -1
  50. package/dist/cjs/models/schemas/retention_policies.js +1 -1
  51. package/dist/cjs/models/schemas/retention_policy_assignments.js +1 -1
  52. package/dist/cjs/models/schemas/search.js +1 -1
  53. package/dist/cjs/models/schemas/session_termination.js +1 -1
  54. package/dist/cjs/models/schemas/shared_links_folders.js +1 -1
  55. package/dist/cjs/models/schemas/shield_information_barrier_reports.js +1 -1
  56. package/dist/cjs/models/schemas/shield_information_barrier_segment_members.js +1 -1
  57. package/dist/cjs/models/schemas/shield_information_barrier_segment_restrictions.js +1 -1
  58. package/dist/cjs/models/schemas/shield_information_barrier_segments.js +1 -1
  59. package/dist/cjs/models/schemas/shield_information_barriers.js +1 -1
  60. package/dist/cjs/models/schemas/shield_lists.js +1 -1
  61. package/dist/cjs/models/schemas/shuttle.js +1 -1
  62. package/dist/cjs/models/schemas/sign_requests.js +1 -1
  63. package/dist/cjs/models/schemas/sign_templates.js +1 -1
  64. package/dist/cjs/models/schemas/skills.js +1 -1
  65. package/dist/cjs/models/schemas/storage_policies.js +1 -1
  66. package/dist/cjs/models/schemas/storage_policy_assignments.js +1 -1
  67. package/dist/cjs/models/schemas/task_assignments.js +1 -1
  68. package/dist/cjs/models/schemas/tasks.js +1 -1
  69. package/dist/cjs/models/schemas/terms_of_service_user_statuses.js +1 -1
  70. package/dist/cjs/models/schemas/terms_of_services.js +1 -1
  71. package/dist/cjs/models/schemas/transfer.js +1 -1
  72. package/dist/cjs/models/schemas/trashed_files.js +1 -1
  73. package/dist/cjs/models/schemas/trashed_folders.js +1 -1
  74. package/dist/cjs/models/schemas/trashed_items.js +1 -1
  75. package/dist/cjs/models/schemas/trashed_web_links.js +1 -1
  76. package/dist/cjs/models/schemas/uploads.js +1 -1
  77. package/dist/cjs/models/schemas/user_collaborations.js +1 -1
  78. package/dist/cjs/models/schemas/users.js +1 -1
  79. package/dist/cjs/models/schemas/web_links.js +1 -1
  80. package/dist/cjs/models/schemas/webhooks.js +1 -1
  81. package/dist/cjs/models/schemas/workflows.js +1 -1
  82. package/dist/cjs/models/schemas/zip_downloads.js +1 -1
  83. package/dist/cjs/models/schemas.js +1 -1
  84. package/dist/cjs/runtime.js +115 -1
  85. package/dist/cjs/webhooks.js +113 -0
  86. package/dist/esm/buildinfo.js +2 -2
  87. package/dist/esm/errors.js +6 -0
  88. package/dist/esm/managers/events.js +27 -1
  89. package/dist/esm/managers/web_links.js +26 -2
  90. package/dist/esm/models/schemas/ai.js +1 -1
  91. package/dist/esm/models/schemas/ai_studio.js +1 -1
  92. package/dist/esm/models/schemas/app_item_associations.js +1 -1
  93. package/dist/esm/models/schemas/archives.js +1 -1
  94. package/dist/esm/models/schemas/authorization.js +1 -1
  95. package/dist/esm/models/schemas/automate_workflows.js +1 -1
  96. package/dist/esm/models/schemas/avatars.js +1 -1
  97. package/dist/esm/models/schemas/chunked_uploads.js +1 -1
  98. package/dist/esm/models/schemas/classifications.js +1 -1
  99. package/dist/esm/models/schemas/collaboration_allowlist_entries.js +1 -1
  100. package/dist/esm/models/schemas/collaboration_allowlist_exempt_targets.js +1 -1
  101. package/dist/esm/models/schemas/collections.js +1 -1
  102. package/dist/esm/models/schemas/comments.js +1 -1
  103. package/dist/esm/models/schemas/device_pinners.js +1 -1
  104. package/dist/esm/models/schemas/docgen.js +1 -1
  105. package/dist/esm/models/schemas/docgen_template.js +1 -1
  106. package/dist/esm/models/schemas/document_split.js +1 -1
  107. package/dist/esm/models/schemas/email_aliases.js +1 -1
  108. package/dist/esm/models/schemas/enterprise_configurations.js +1 -1
  109. package/dist/esm/models/schemas/events.js +1 -1
  110. package/dist/esm/models/schemas/external_users.js +1 -1
  111. package/dist/esm/models/schemas/file_requests.js +1 -1
  112. package/dist/esm/models/schemas/file_version_legal_holds.js +1 -1
  113. package/dist/esm/models/schemas/file_version_retentions.js +1 -1
  114. package/dist/esm/models/schemas/file_versions.js +1 -1
  115. package/dist/esm/models/schemas/files.js +1 -1
  116. package/dist/esm/models/schemas/folder_locks.js +1 -1
  117. package/dist/esm/models/schemas/folders.js +1 -1
  118. package/dist/esm/models/schemas/groups.js +1 -1
  119. package/dist/esm/models/schemas/hub_collaborations.js +1 -1
  120. package/dist/esm/models/schemas/hub_document.js +1 -1
  121. package/dist/esm/models/schemas/hub_items.js +1 -1
  122. package/dist/esm/models/schemas/hubs.js +1 -1
  123. package/dist/esm/models/schemas/integration_mappings.js +1 -1
  124. package/dist/esm/models/schemas/invites.js +1 -1
  125. package/dist/esm/models/schemas/legal_hold_policies.js +1 -1
  126. package/dist/esm/models/schemas/legal_hold_policy_assignments.js +1 -1
  127. package/dist/esm/models/schemas/list_collaborations.js +1 -1
  128. package/dist/esm/models/schemas/memberships.js +1 -1
  129. package/dist/esm/models/schemas/metadata_cascade_policies.js +1 -1
  130. package/dist/esm/models/schemas/metadata_taxonomies.js +1 -1
  131. package/dist/esm/models/schemas/metadata_templates.js +1 -1
  132. package/dist/esm/models/schemas/notes.js +1 -1
  133. package/dist/esm/models/schemas/query.js +1 -1
  134. package/dist/esm/models/schemas/recent_items.js +1 -1
  135. package/dist/esm/models/schemas/retention_policies.js +1 -1
  136. package/dist/esm/models/schemas/retention_policy_assignments.js +1 -1
  137. package/dist/esm/models/schemas/search.js +1 -1
  138. package/dist/esm/models/schemas/session_termination.js +1 -1
  139. package/dist/esm/models/schemas/shared_links_folders.js +1 -1
  140. package/dist/esm/models/schemas/shield_information_barrier_reports.js +1 -1
  141. package/dist/esm/models/schemas/shield_information_barrier_segment_members.js +1 -1
  142. package/dist/esm/models/schemas/shield_information_barrier_segment_restrictions.js +1 -1
  143. package/dist/esm/models/schemas/shield_information_barrier_segments.js +1 -1
  144. package/dist/esm/models/schemas/shield_information_barriers.js +1 -1
  145. package/dist/esm/models/schemas/shield_lists.js +1 -1
  146. package/dist/esm/models/schemas/shuttle.js +1 -1
  147. package/dist/esm/models/schemas/sign_requests.js +1 -1
  148. package/dist/esm/models/schemas/sign_templates.js +1 -1
  149. package/dist/esm/models/schemas/skills.js +1 -1
  150. package/dist/esm/models/schemas/storage_policies.js +1 -1
  151. package/dist/esm/models/schemas/storage_policy_assignments.js +1 -1
  152. package/dist/esm/models/schemas/task_assignments.js +1 -1
  153. package/dist/esm/models/schemas/tasks.js +1 -1
  154. package/dist/esm/models/schemas/terms_of_service_user_statuses.js +1 -1
  155. package/dist/esm/models/schemas/terms_of_services.js +1 -1
  156. package/dist/esm/models/schemas/transfer.js +1 -1
  157. package/dist/esm/models/schemas/trashed_files.js +1 -1
  158. package/dist/esm/models/schemas/trashed_folders.js +1 -1
  159. package/dist/esm/models/schemas/trashed_items.js +1 -1
  160. package/dist/esm/models/schemas/trashed_web_links.js +1 -1
  161. package/dist/esm/models/schemas/uploads.js +1 -1
  162. package/dist/esm/models/schemas/user_collaborations.js +1 -1
  163. package/dist/esm/models/schemas/users.js +1 -1
  164. package/dist/esm/models/schemas/web_links.js +1 -1
  165. package/dist/esm/models/schemas/webhooks.js +1 -1
  166. package/dist/esm/models/schemas/workflows.js +1 -1
  167. package/dist/esm/models/schemas/zip_downloads.js +1 -1
  168. package/dist/esm/models/schemas.js +1 -1
  169. package/dist/esm/runtime.js +111 -1
  170. package/dist/esm/webhooks.js +109 -0
  171. package/dist/types/buildinfo.d.ts +1 -1
  172. package/dist/types/errors.d.ts +4 -0
  173. package/dist/types/managers/events.d.ts +4 -0
  174. package/dist/types/managers/web_links.d.ts +14 -2
  175. package/dist/types/runtime.d.ts +36 -1
  176. package/dist/types/webhooks.d.ts +24 -0
  177. package/docs/README.md +1 -0
  178. package/docs/errors.md +14 -8
  179. package/docs/managers/web_links.md +3 -0
  180. package/docs/pagination.md +16 -0
  181. package/docs/webhooks.md +34 -0
  182. package/package.json +1 -1
@@ -25,6 +25,7 @@ const result = await client.webLinks.create({ /* … */ });
25
25
  |---|---|---|---|
26
26
  | `web_link_id` | path | `string` | yes |
27
27
  | `boxapi` | header | `string` | no |
28
+ | `if-none-match` | header | `string` | no |
28
29
 
29
30
  **Returns:** `WebLink`
30
31
 
@@ -41,6 +42,7 @@ const result = await client.webLinks.get("WEB_LINK_ID");
41
42
  | Parameter | In | Type | Required |
42
43
  |---|---|---|---|
43
44
  | `web_link_id` | path | `string` | yes |
45
+ | `if-match` | header | `string` | no |
44
46
 
45
47
  **Request body** (`application/json`): `UpdateWebLinkRequest`
46
48
 
@@ -59,6 +61,7 @@ const result = await client.webLinks.update("WEB_LINK_ID", { /* … */ });
59
61
  | Parameter | In | Type | Required |
60
62
  |---|---|---|---|
61
63
  | `web_link_id` | path | `string` | yes |
64
+ | `if-match` | header | `string` | no |
62
65
 
63
66
  **Returns:** `void`
64
67
 
@@ -15,3 +15,19 @@ It walks every page until the response has no next cursor (or an empty page, for
15
15
  offset pagination), and owns a private copy of the options you pass, so your
16
16
  value is never mutated. The wire cursor (`next_marker` / `offset`, verbatim per
17
17
  TR-TS.2) is threaded through the options for you.
18
+
19
+ ## Events
20
+
21
+ `client.events.stream` follows Box's long-poll event stream: it yields the events
22
+ after `stream_position` (`'now'` when unset), each once — Box may deliver an
23
+ event twice — then waits on a real-time server until Box reports a change. It
24
+ lists a fresh server when Box asks it to reconnect, and retries a long poll that
25
+ times out. It rejects when a call fails; `break` or an `AbortSignal` stops it.
26
+ Stream positions keep every digit, even past `Number.MAX_SAFE_INTEGER`:
27
+
28
+ ```ts
29
+ const controller = new AbortController();
30
+ for await (const event of client.events.stream({}, controller.signal)) {
31
+ // use event
32
+ }
33
+ ```
@@ -0,0 +1,34 @@
1
+ <!-- Generated by box-gantry. DO NOT EDIT. -->
2
+ # Webhooks
3
+
4
+ Once you generate signature keys for your app (Developer Console → **Webhooks**
5
+ → **Manage signature keys**), Box signs every webhook delivery. Each
6
+ `BOX-SIGNATURE-PRIMARY` / `BOX-SIGNATURE-SECONDARY` header is the base64
7
+ HMAC-SHA256, under that key, of the request body followed by the
8
+ `BOX-DELIVERY-TIMESTAMP` header (Box's
9
+ [Verify webhook signatures](https://developer.box.com/guides/webhooks/v2/signatures-v2/)
10
+ guide). `runtime.verifyWebhook` checks a delivery before you trust it:
11
+
12
+ ```ts
13
+ import { runtime } from '@unofficialbox/box-open-sdk';
14
+
15
+ // `body`: the raw request body (bytes or string); `headers`: a `Headers`
16
+ // object or a plain record.
17
+ const genuine = await runtime.verifyWebhook(body, headers, {
18
+ primaryKey,
19
+ secondaryKey,
20
+ });
21
+ if (!genuine) {
22
+ // reject: not from Box, altered, or stale
23
+ }
24
+ ```
25
+
26
+ - **Pass the body exactly as received.** Parsed and re-serialized JSON won't
27
+ verify.
28
+ - **Either key may be missing.** A delivery is genuine when the signature of
29
+ any configured key matches, so you can rotate one key while the other keeps
30
+ verifying.
31
+ - **Old or future deliveries are refused.** A delivery stamped more than ten
32
+ minutes ago (`maxAgeSeconds`) or in the future fails, which blocks replays.
33
+ - **Header names match in any case**, and the comparison takes the same time
34
+ wherever a signature differs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unofficialbox/box-open-sdk",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Box API client for TypeScript (open source, community, punk rock) — typed models, async managers, and a fetch runtime with retry, backoff, and token refresh.",
5
5
  "keywords": ["box", "box-api", "sdk", "api-client", "typescript", "unofficial"],
6
6
  "license": "MIT",