@unofficialbox/box-open-sdk 0.1.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.
- package/README.md +13 -0
- package/dist/cjs/auth.js +112 -0
- package/dist/cjs/buildinfo.js +10 -0
- package/dist/cjs/client.js +268 -0
- package/dist/cjs/errors.js +20 -0
- package/dist/cjs/index.js +43 -0
- package/dist/cjs/internal.js +37 -0
- package/dist/cjs/jwt.js +122 -0
- package/dist/cjs/managers/ai.js +106 -0
- package/dist/cjs/managers/ai_studio.js +131 -0
- package/dist/cjs/managers/app_item_associations.js +119 -0
- package/dist/cjs/managers/archives.js +110 -0
- package/dist/cjs/managers/authorization.js +149 -0
- package/dist/cjs/managers/automate_workflows.js +91 -0
- package/dist/cjs/managers/avatars.js +76 -0
- package/dist/cjs/managers/chunked_uploads.js +156 -0
- package/dist/cjs/managers/classifications.js +94 -0
- package/dist/cjs/managers/collaboration_allowlist_entries.js +104 -0
- package/dist/cjs/managers/collaboration_allowlist_exempt_targets.js +104 -0
- package/dist/cjs/managers/collections.js +124 -0
- package/dist/cjs/managers/comments.js +131 -0
- package/dist/cjs/managers/device_pinners.js +99 -0
- package/dist/cjs/managers/docgen.js +133 -0
- package/dist/cjs/managers/docgen_template.js +178 -0
- package/dist/cjs/managers/downloads.js +69 -0
- package/dist/cjs/managers/email_aliases.js +78 -0
- package/dist/cjs/managers/enterprise_configurations.js +58 -0
- package/dist/cjs/managers/events.js +82 -0
- package/dist/cjs/managers/external_users.js +58 -0
- package/dist/cjs/managers/file_classifications.js +97 -0
- package/dist/cjs/managers/file_metadata.js +115 -0
- package/dist/cjs/managers/file_requests.js +90 -0
- package/dist/cjs/managers/file_version_legal_holds.js +88 -0
- package/dist/cjs/managers/file_version_retentions.js +105 -0
- package/dist/cjs/managers/file_versions.js +140 -0
- package/dist/cjs/managers/file_watermarks.js +77 -0
- package/dist/cjs/managers/files.js +138 -0
- package/dist/cjs/managers/folder_classifications.js +97 -0
- package/dist/cjs/managers/folder_locks.js +73 -0
- package/dist/cjs/managers/folder_metadata.js +111 -0
- package/dist/cjs/managers/folder_watermarks.js +77 -0
- package/dist/cjs/managers/folders.js +191 -0
- package/dist/cjs/managers/groups.js +132 -0
- package/dist/cjs/managers/hub_collaborations.js +121 -0
- package/dist/cjs/managers/hub_document.js +113 -0
- package/dist/cjs/managers/hub_items.js +96 -0
- package/dist/cjs/managers/hubs.js +186 -0
- package/dist/cjs/managers/index.js +102 -0
- package/dist/cjs/managers/integration_mappings.js +178 -0
- package/dist/cjs/managers/invites.js +74 -0
- package/dist/cjs/managers/legal_hold_policies.js +121 -0
- package/dist/cjs/managers/legal_hold_policy_assignments.js +186 -0
- package/dist/cjs/managers/list_collaborations.js +185 -0
- package/dist/cjs/managers/memberships.js +160 -0
- package/dist/cjs/managers/metadata_cascade_policies.js +118 -0
- package/dist/cjs/managers/metadata_taxonomies.js +322 -0
- package/dist/cjs/managers/metadata_templates.js +196 -0
- package/dist/cjs/managers/notes.js +58 -0
- package/dist/cjs/managers/recent_items.js +80 -0
- package/dist/cjs/managers/retention_policies.js +131 -0
- package/dist/cjs/managers/retention_policy_assignments.js +182 -0
- package/dist/cjs/managers/search.js +130 -0
- package/dist/cjs/managers/session_termination.js +68 -0
- package/dist/cjs/managers/shared_links_app_items.js +55 -0
- package/dist/cjs/managers/shared_links_files.js +109 -0
- package/dist/cjs/managers/shared_links_folders.js +109 -0
- package/dist/cjs/managers/shared_links_web_links.js +109 -0
- package/dist/cjs/managers/shield_information_barrier_reports.js +98 -0
- package/dist/cjs/managers/shield_information_barrier_segment_members.js +105 -0
- package/dist/cjs/managers/shield_information_barrier_segment_restrictions.js +105 -0
- package/dist/cjs/managers/shield_information_barrier_segments.js +116 -0
- package/dist/cjs/managers/shield_information_barriers.js +108 -0
- package/dist/cjs/managers/shield_lists.js +97 -0
- package/dist/cjs/managers/sign_requests.js +123 -0
- package/dist/cjs/managers/sign_templates.js +87 -0
- package/dist/cjs/managers/skills.js +106 -0
- package/dist/cjs/managers/storage_policies.js +90 -0
- package/dist/cjs/managers/storage_policy_assignments.js +114 -0
- package/dist/cjs/managers/task_assignments.js +94 -0
- package/dist/cjs/managers/tasks.js +94 -0
- package/dist/cjs/managers/terms_of_service_user_statuses.js +81 -0
- package/dist/cjs/managers/terms_of_services.js +89 -0
- package/dist/cjs/managers/transfer.js +67 -0
- package/dist/cjs/managers/trashed_files.js +84 -0
- package/dist/cjs/managers/trashed_folders.js +84 -0
- package/dist/cjs/managers/trashed_items.js +94 -0
- package/dist/cjs/managers/trashed_web_links.js +84 -0
- package/dist/cjs/managers/uploads.js +98 -0
- package/dist/cjs/managers/user_collaborations.js +95 -0
- package/dist/cjs/managers/users.js +165 -0
- package/dist/cjs/managers/web_links.js +88 -0
- package/dist/cjs/managers/webhooks.js +115 -0
- package/dist/cjs/managers/workflows.js +92 -0
- package/dist/cjs/managers/zip_downloads.js +76 -0
- package/dist/cjs/models/index.js +38 -0
- package/dist/cjs/models/schemas.js +3 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/runtime.js +304 -0
- package/dist/cjs/tokens.js +121 -0
- package/dist/esm/auth.js +105 -0
- package/dist/esm/buildinfo.js +7 -0
- package/dist/esm/client.js +264 -0
- package/dist/esm/errors.js +16 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/internal.js +32 -0
- package/dist/esm/jwt.js +86 -0
- package/dist/esm/managers/ai.js +69 -0
- package/dist/esm/managers/ai_studio.js +94 -0
- package/dist/esm/managers/app_item_associations.js +82 -0
- package/dist/esm/managers/archives.js +73 -0
- package/dist/esm/managers/authorization.js +112 -0
- package/dist/esm/managers/automate_workflows.js +54 -0
- package/dist/esm/managers/avatars.js +39 -0
- package/dist/esm/managers/chunked_uploads.js +119 -0
- package/dist/esm/managers/classifications.js +57 -0
- package/dist/esm/managers/collaboration_allowlist_entries.js +67 -0
- package/dist/esm/managers/collaboration_allowlist_exempt_targets.js +67 -0
- package/dist/esm/managers/collections.js +87 -0
- package/dist/esm/managers/comments.js +94 -0
- package/dist/esm/managers/device_pinners.js +62 -0
- package/dist/esm/managers/docgen.js +96 -0
- package/dist/esm/managers/docgen_template.js +141 -0
- package/dist/esm/managers/downloads.js +32 -0
- package/dist/esm/managers/email_aliases.js +41 -0
- package/dist/esm/managers/enterprise_configurations.js +21 -0
- package/dist/esm/managers/events.js +45 -0
- package/dist/esm/managers/external_users.js +21 -0
- package/dist/esm/managers/file_classifications.js +60 -0
- package/dist/esm/managers/file_metadata.js +78 -0
- package/dist/esm/managers/file_requests.js +53 -0
- package/dist/esm/managers/file_version_legal_holds.js +51 -0
- package/dist/esm/managers/file_version_retentions.js +68 -0
- package/dist/esm/managers/file_versions.js +103 -0
- package/dist/esm/managers/file_watermarks.js +40 -0
- package/dist/esm/managers/files.js +101 -0
- package/dist/esm/managers/folder_classifications.js +60 -0
- package/dist/esm/managers/folder_locks.js +36 -0
- package/dist/esm/managers/folder_metadata.js +74 -0
- package/dist/esm/managers/folder_watermarks.js +40 -0
- package/dist/esm/managers/folders.js +154 -0
- package/dist/esm/managers/groups.js +95 -0
- package/dist/esm/managers/hub_collaborations.js +84 -0
- package/dist/esm/managers/hub_document.js +76 -0
- package/dist/esm/managers/hub_items.js +59 -0
- package/dist/esm/managers/hubs.js +149 -0
- package/dist/esm/managers/index.js +86 -0
- package/dist/esm/managers/integration_mappings.js +141 -0
- package/dist/esm/managers/invites.js +37 -0
- package/dist/esm/managers/legal_hold_policies.js +84 -0
- package/dist/esm/managers/legal_hold_policy_assignments.js +149 -0
- package/dist/esm/managers/list_collaborations.js +148 -0
- package/dist/esm/managers/memberships.js +123 -0
- package/dist/esm/managers/metadata_cascade_policies.js +81 -0
- package/dist/esm/managers/metadata_taxonomies.js +285 -0
- package/dist/esm/managers/metadata_templates.js +159 -0
- package/dist/esm/managers/notes.js +21 -0
- package/dist/esm/managers/recent_items.js +43 -0
- package/dist/esm/managers/retention_policies.js +94 -0
- package/dist/esm/managers/retention_policy_assignments.js +145 -0
- package/dist/esm/managers/search.js +93 -0
- package/dist/esm/managers/session_termination.js +31 -0
- package/dist/esm/managers/shared_links_app_items.js +18 -0
- package/dist/esm/managers/shared_links_files.js +72 -0
- package/dist/esm/managers/shared_links_folders.js +72 -0
- package/dist/esm/managers/shared_links_web_links.js +72 -0
- package/dist/esm/managers/shield_information_barrier_reports.js +61 -0
- package/dist/esm/managers/shield_information_barrier_segment_members.js +68 -0
- package/dist/esm/managers/shield_information_barrier_segment_restrictions.js +68 -0
- package/dist/esm/managers/shield_information_barrier_segments.js +79 -0
- package/dist/esm/managers/shield_information_barriers.js +71 -0
- package/dist/esm/managers/shield_lists.js +60 -0
- package/dist/esm/managers/sign_requests.js +86 -0
- package/dist/esm/managers/sign_templates.js +50 -0
- package/dist/esm/managers/skills.js +69 -0
- package/dist/esm/managers/storage_policies.js +53 -0
- package/dist/esm/managers/storage_policy_assignments.js +77 -0
- package/dist/esm/managers/task_assignments.js +57 -0
- package/dist/esm/managers/tasks.js +57 -0
- package/dist/esm/managers/terms_of_service_user_statuses.js +44 -0
- package/dist/esm/managers/terms_of_services.js +52 -0
- package/dist/esm/managers/transfer.js +30 -0
- package/dist/esm/managers/trashed_files.js +47 -0
- package/dist/esm/managers/trashed_folders.js +47 -0
- package/dist/esm/managers/trashed_items.js +57 -0
- package/dist/esm/managers/trashed_web_links.js +47 -0
- package/dist/esm/managers/uploads.js +61 -0
- package/dist/esm/managers/user_collaborations.js +58 -0
- package/dist/esm/managers/users.js +128 -0
- package/dist/esm/managers/web_links.js +51 -0
- package/dist/esm/managers/webhooks.js +78 -0
- package/dist/esm/managers/workflows.js +55 -0
- package/dist/esm/managers/zip_downloads.js +39 -0
- package/dist/esm/models/index.js +2 -0
- package/dist/esm/models/schemas.js +2 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/runtime.js +272 -0
- package/dist/esm/tokens.js +116 -0
- package/dist/types/auth.d.ts +56 -0
- package/dist/types/buildinfo.d.ts +6 -0
- package/dist/types/client.d.ts +176 -0
- package/dist/types/errors.d.ts +19 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/internal.d.ts +9 -0
- package/dist/types/jwt.d.ts +23 -0
- package/dist/types/managers/ai.d.ts +17 -0
- package/dist/types/managers/ai_studio.d.ts +27 -0
- package/dist/types/managers/app_item_associations.d.ts +25 -0
- package/dist/types/managers/archives.d.ts +18 -0
- package/dist/types/managers/authorization.d.ts +17 -0
- package/dist/types/managers/automate_workflows.d.ts +16 -0
- package/dist/types/managers/avatars.d.ts +10 -0
- package/dist/types/managers/chunked_uploads.d.ts +26 -0
- package/dist/types/managers/classifications.d.ts +11 -0
- package/dist/types/managers/collaboration_allowlist_entries.d.ts +18 -0
- package/dist/types/managers/collaboration_allowlist_exempt_targets.d.ts +18 -0
- package/dist/types/managers/collections.d.ts +26 -0
- package/dist/types/managers/comments.d.ts +32 -0
- package/dist/types/managers/device_pinners.d.ts +18 -0
- package/dist/types/managers/docgen.d.ts +25 -0
- package/dist/types/managers/docgen_template.d.ts +35 -0
- package/dist/types/managers/downloads.d.ts +14 -0
- package/dist/types/managers/email_aliases.d.ts +10 -0
- package/dist/types/managers/enterprise_configurations.d.ts +8 -0
- package/dist/types/managers/events.d.ts +18 -0
- package/dist/types/managers/external_users.d.ts +8 -0
- package/dist/types/managers/file_classifications.d.ts +11 -0
- package/dist/types/managers/file_metadata.d.ts +20 -0
- package/dist/types/managers/file_requests.d.ts +15 -0
- package/dist/types/managers/file_version_legal_holds.d.ts +16 -0
- package/dist/types/managers/file_version_retentions.d.ts +22 -0
- package/dist/types/managers/file_versions.d.ts +32 -0
- package/dist/types/managers/file_watermarks.d.ts +10 -0
- package/dist/types/managers/files.d.ts +39 -0
- package/dist/types/managers/folder_classifications.d.ts +11 -0
- package/dist/types/managers/folder_locks.d.ts +10 -0
- package/dist/types/managers/folder_metadata.d.ts +16 -0
- package/dist/types/managers/folder_watermarks.d.ts +10 -0
- package/dist/types/managers/folders.d.ts +54 -0
- package/dist/types/managers/groups.d.ts +33 -0
- package/dist/types/managers/hub_collaborations.d.ts +19 -0
- package/dist/types/managers/hub_document.d.ts +23 -0
- package/dist/types/managers/hub_items.d.ts +17 -0
- package/dist/types/managers/hubs.d.ts +35 -0
- package/dist/types/managers/index.d.ts +85 -0
- package/dist/types/managers/integration_mappings.d.ts +34 -0
- package/dist/types/managers/invites.d.ts +17 -0
- package/dist/types/managers/legal_hold_policies.d.ts +21 -0
- package/dist/types/managers/legal_hold_policy_assignments.d.ts +39 -0
- package/dist/types/managers/list_collaborations.d.ts +42 -0
- package/dist/types/managers/memberships.d.ts +39 -0
- package/dist/types/managers/metadata_cascade_policies.d.ts +20 -0
- package/dist/types/managers/metadata_taxonomies.d.ts +54 -0
- package/dist/types/managers/metadata_templates.d.ts +36 -0
- package/dist/types/managers/notes.d.ts +8 -0
- package/dist/types/managers/recent_items.d.ts +16 -0
- package/dist/types/managers/retention_policies.d.ts +27 -0
- package/dist/types/managers/retention_policy_assignments.d.ts +40 -0
- package/dist/types/managers/search.d.ts +33 -0
- package/dist/types/managers/session_termination.d.ts +9 -0
- package/dist/types/managers/shared_links_app_items.d.ts +8 -0
- package/dist/types/managers/shared_links_files.d.ts +17 -0
- package/dist/types/managers/shared_links_folders.d.ts +17 -0
- package/dist/types/managers/shared_links_web_links.d.ts +17 -0
- package/dist/types/managers/shield_information_barrier_reports.d.ts +17 -0
- package/dist/types/managers/shield_information_barrier_segment_members.d.ts +18 -0
- package/dist/types/managers/shield_information_barrier_segment_restrictions.d.ts +18 -0
- package/dist/types/managers/shield_information_barrier_segments.d.ts +19 -0
- package/dist/types/managers/shield_information_barriers.d.ts +18 -0
- package/dist/types/managers/shield_lists.d.ts +12 -0
- package/dist/types/managers/sign_requests.d.ts +21 -0
- package/dist/types/managers/sign_templates.d.ts +16 -0
- package/dist/types/managers/skills.d.ts +12 -0
- package/dist/types/managers/storage_policies.d.ts +17 -0
- package/dist/types/managers/storage_policy_assignments.d.ts +18 -0
- package/dist/types/managers/task_assignments.d.ts +12 -0
- package/dist/types/managers/tasks.d.ts +12 -0
- package/dist/types/managers/terms_of_service_user_statuses.d.ts +14 -0
- package/dist/types/managers/terms_of_services.d.ts +15 -0
- package/dist/types/managers/transfer.d.ts +13 -0
- package/dist/types/managers/trashed_files.d.ts +18 -0
- package/dist/types/managers/trashed_folders.d.ts +18 -0
- package/dist/types/managers/trashed_items.d.ts +20 -0
- package/dist/types/managers/trashed_web_links.d.ts +18 -0
- package/dist/types/managers/uploads.d.ts +21 -0
- package/dist/types/managers/user_collaborations.d.ts +20 -0
- package/dist/types/managers/users.d.ts +47 -0
- package/dist/types/managers/web_links.d.ts +15 -0
- package/dist/types/managers/webhooks.d.ts +19 -0
- package/dist/types/managers/workflows.d.ts +17 -0
- package/dist/types/managers/zip_downloads.d.ts +10 -0
- package/dist/types/models/index.d.ts +1 -0
- package/dist/types/models/schemas.d.ts +4424 -0
- package/dist/types/runtime.d.ts +85 -0
- package/dist/types/tokens.d.ts +50 -0
- package/docs/README.md +101 -0
- package/docs/auth.md +60 -0
- package/docs/errors.md +20 -0
- package/docs/managers/ai.md +49 -0
- package/docs/managers/ai_studio.md +63 -0
- package/docs/managers/app_item_associations.md +35 -0
- package/docs/managers/archives.md +48 -0
- package/docs/managers/authorization.md +43 -0
- package/docs/managers/automate_workflows.md +31 -0
- package/docs/managers/avatars.md +37 -0
- package/docs/managers/chunked_uploads.md +88 -0
- package/docs/managers/classifications.md +35 -0
- package/docs/managers/collaboration_allowlist_entries.md +46 -0
- package/docs/managers/collaboration_allowlist_exempt_targets.md +46 -0
- package/docs/managers/collections.md +44 -0
- package/docs/managers/comments.md +66 -0
- package/docs/managers/device_pinners.md +40 -0
- package/docs/managers/docgen.md +50 -0
- package/docs/managers/docgen_template.md +75 -0
- package/docs/managers/downloads.md +19 -0
- package/docs/managers/email_aliases.md +38 -0
- package/docs/managers/enterprise_configurations.md +16 -0
- package/docs/managers/events.md +26 -0
- package/docs/managers/external_users.md +13 -0
- package/docs/managers/file_classifications.md +49 -0
- package/docs/managers/file_metadata.md +69 -0
- package/docs/managers/file_requests.md +50 -0
- package/docs/managers/file_version_legal_holds.md +29 -0
- package/docs/managers/file_version_retentions.md +34 -0
- package/docs/managers/file_versions.md +70 -0
- package/docs/managers/file_watermarks.md +37 -0
- package/docs/managers/files.md +72 -0
- package/docs/managers/folder_classifications.md +49 -0
- package/docs/managers/folder_locks.md +33 -0
- package/docs/managers/folder_metadata.md +68 -0
- package/docs/managers/folder_watermarks.md +37 -0
- package/docs/managers/folders.md +93 -0
- package/docs/managers/groups.md +66 -0
- package/docs/managers/hub_collaborations.md +59 -0
- package/docs/managers/hub_document.md +34 -0
- package/docs/managers/hub_items.md +32 -0
- package/docs/managers/hubs.md +90 -0
- package/docs/managers/integration_mappings.md +96 -0
- package/docs/managers/invites.md +28 -0
- package/docs/managers/legal_hold_policies.md +60 -0
- package/docs/managers/legal_hold_policy_assignments.md +80 -0
- package/docs/managers/list_collaborations.md +64 -0
- package/docs/managers/memberships.md +79 -0
- package/docs/managers/metadata_cascade_policies.md +60 -0
- package/docs/managers/metadata_taxonomies.md +206 -0
- package/docs/managers/metadata_templates.md +98 -0
- package/docs/managers/notes.md +13 -0
- package/docs/managers/recent_items.md +19 -0
- package/docs/managers/retention_policies.md +63 -0
- package/docs/managers/retention_policy_assignments.md +78 -0
- package/docs/managers/search.md +43 -0
- package/docs/managers/session_termination.md +21 -0
- package/docs/managers/shared_links_app_items.md +15 -0
- package/docs/managers/shared_links_files.md +67 -0
- package/docs/managers/shared_links_folders.md +67 -0
- package/docs/managers/shared_links_web_links.md +67 -0
- package/docs/managers/shield_information_barrier_reports.md +37 -0
- package/docs/managers/shield_information_barrier_segment_members.md +47 -0
- package/docs/managers/shield_information_barrier_segment_restrictions.md +47 -0
- package/docs/managers/shield_information_barrier_segments.md +59 -0
- package/docs/managers/shield_information_barriers.md +44 -0
- package/docs/managers/shield_lists.md +51 -0
- package/docs/managers/sign_requests.md +60 -0
- package/docs/managers/sign_templates.md +28 -0
- package/docs/managers/skills.md +61 -0
- package/docs/managers/storage_policies.md +29 -0
- package/docs/managers/storage_policy_assignments.md +59 -0
- package/docs/managers/task_assignments.md +55 -0
- package/docs/managers/tasks.md +55 -0
- package/docs/managers/terms_of_service_user_statuses.md +36 -0
- package/docs/managers/terms_of_services.md +45 -0
- package/docs/managers/transfer.md +19 -0
- package/docs/managers/trashed_files.md +39 -0
- package/docs/managers/trashed_folders.md +39 -0
- package/docs/managers/trashed_items.md +23 -0
- package/docs/managers/trashed_web_links.md +39 -0
- package/docs/managers/uploads.md +41 -0
- package/docs/managers/user_collaborations.md +51 -0
- package/docs/managers/users.md +82 -0
- package/docs/managers/web_links.md +46 -0
- package/docs/managers/webhooks.md +58 -0
- package/docs/managers/workflows.md +32 -0
- package/docs/managers/zip_downloads.md +33 -0
- package/docs/pagination.md +17 -0
- package/package.json +32 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// Code generated by box-gantry (vendored from runtimes/typescript/gantryruntime/src/tokens.ts). DO NOT EDIT.
|
|
2
|
+
// The shared token machinery behind every exchange flow: the `Auth` contract,
|
|
3
|
+
// the token-endpoint POST, and the single-flight access-token cache. Split out
|
|
4
|
+
// so both `auth.ts` (developer token, CCG, OAuth) and `jwt.ts` (JWT server auth)
|
|
5
|
+
// reuse it without either importing the other, and without leaking these
|
|
6
|
+
// internals into the package's public surface.
|
|
7
|
+
import { BoxApiError } from './errors.js';
|
|
8
|
+
/** Box's OAuth 2.0 token endpoint, shared by every exchange flow. */
|
|
9
|
+
export const DEFAULT_TOKEN_URL = 'https://api.box.com/oauth2/token';
|
|
10
|
+
/** Refresh a cached token this long before expiry, so in-flight requests never
|
|
11
|
+
* race an expiry. */
|
|
12
|
+
const REFRESH_MARGIN_MS = 60_000;
|
|
13
|
+
/** A hard deadline on a token exchange, so a stalled endpoint can't leave a
|
|
14
|
+
* single-flight refresh (and every caller awaiting it) hung forever. Matches
|
|
15
|
+
* the Go runtime's 30s token HTTP client. */
|
|
16
|
+
const TOKEN_TIMEOUT_MS = 30_000;
|
|
17
|
+
/**
|
|
18
|
+
* Caches an access token and refreshes it — via the flow-specific `refresh` —
|
|
19
|
+
* when it is missing or within the refresh margin of expiry. Concurrent callers
|
|
20
|
+
* during a refresh share one in-flight exchange (single-flight), so a token is
|
|
21
|
+
* never fetched twice at once, and the exchange is not tied to any one caller.
|
|
22
|
+
*/
|
|
23
|
+
export class CachedToken {
|
|
24
|
+
refresh;
|
|
25
|
+
token;
|
|
26
|
+
expiry;
|
|
27
|
+
inflight;
|
|
28
|
+
constructor(refresh, seed) {
|
|
29
|
+
this.refresh = refresh;
|
|
30
|
+
this.token = seed?.accessToken ?? '';
|
|
31
|
+
this.expiry = seed ? Date.now() + seed.ttlMs : 0;
|
|
32
|
+
}
|
|
33
|
+
async accessToken() {
|
|
34
|
+
if (this.token && this.expiry - Date.now() > REFRESH_MARGIN_MS) {
|
|
35
|
+
return this.token;
|
|
36
|
+
}
|
|
37
|
+
return this.refreshOnce();
|
|
38
|
+
}
|
|
39
|
+
async forceRefresh(stale) {
|
|
40
|
+
// Another caller may already have refreshed past the rejected token.
|
|
41
|
+
if (this.token && this.token !== stale) {
|
|
42
|
+
return this.token;
|
|
43
|
+
}
|
|
44
|
+
return this.refreshOnce();
|
|
45
|
+
}
|
|
46
|
+
/** Run the flow's refresh, sharing one in-flight exchange across callers. */
|
|
47
|
+
refreshOnce() {
|
|
48
|
+
if (!this.inflight) {
|
|
49
|
+
this.inflight = this.refresh()
|
|
50
|
+
.then((token) => {
|
|
51
|
+
this.token = token.accessToken;
|
|
52
|
+
this.expiry = Date.now() + token.ttlMs;
|
|
53
|
+
this.inflight = undefined;
|
|
54
|
+
return token.accessToken;
|
|
55
|
+
})
|
|
56
|
+
.catch((err) => {
|
|
57
|
+
this.inflight = undefined;
|
|
58
|
+
throw err;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return this.inflight;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* POST a form-encoded grant to the token endpoint and normalize the response.
|
|
66
|
+
* A transport failure and a non-2xx body both surface as a `BoxApiError`, so
|
|
67
|
+
* token acquisition never escapes the runtime's error contract. The optional
|
|
68
|
+
* `signal` cancels an explicit caller-initiated exchange (`exchangeCode`); the
|
|
69
|
+
* cached flows do not thread one, so a shared refresh is never bound to a single
|
|
70
|
+
* request's cancellation.
|
|
71
|
+
*/
|
|
72
|
+
export async function postTokenForm(tokenUrl, form, signal) {
|
|
73
|
+
// An internal deadline independent of the caller's signal, combined with it
|
|
74
|
+
// when present. It also covers the body read, since the signal aborts an
|
|
75
|
+
// in-progress `fetch` (including body streaming). `AbortSignal.timeout` owns
|
|
76
|
+
// its own timer, so there is nothing to clear.
|
|
77
|
+
const deadline = AbortSignal.timeout(TOKEN_TIMEOUT_MS);
|
|
78
|
+
const combined = signal ? AbortSignal.any([signal, deadline]) : deadline;
|
|
79
|
+
let response;
|
|
80
|
+
let text;
|
|
81
|
+
try {
|
|
82
|
+
response = await fetch(tokenUrl, {
|
|
83
|
+
method: 'POST',
|
|
84
|
+
headers: {
|
|
85
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
86
|
+
Accept: 'application/json',
|
|
87
|
+
},
|
|
88
|
+
body: new URLSearchParams(form).toString(),
|
|
89
|
+
signal: combined,
|
|
90
|
+
});
|
|
91
|
+
text = await response.text();
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
throw new BoxApiError('token endpoint request failed', { cause: err });
|
|
95
|
+
}
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
throw new BoxApiError(`token endpoint returned ${response.status}: ${text.trim()}`, {
|
|
98
|
+
status: response.status,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
let parsed;
|
|
102
|
+
try {
|
|
103
|
+
parsed = JSON.parse(text);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
throw new BoxApiError('token endpoint returned invalid JSON');
|
|
107
|
+
}
|
|
108
|
+
if (!parsed.access_token) {
|
|
109
|
+
throw new BoxApiError('token endpoint returned no access_token');
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
accessToken: parsed.access_token,
|
|
113
|
+
refreshToken: parsed.refresh_token ?? '',
|
|
114
|
+
ttlMs: (parsed.expires_in ?? 0) * 1000,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type Auth } from './tokens.js';
|
|
2
|
+
export type { Auth } from './tokens.js';
|
|
3
|
+
/**
|
|
4
|
+
* The simplest flow: a fixed access token from the Box developer console. A
|
|
5
|
+
* fixed token cannot be refreshed, so `forceRefresh` returns it unchanged (a
|
|
6
|
+
* subsequent 401 then surfaces to the caller).
|
|
7
|
+
*/
|
|
8
|
+
export declare function developerToken(token: string): Auth;
|
|
9
|
+
/**
|
|
10
|
+
* The Client Credentials Grant: server-to-server auth with no signing key. Set
|
|
11
|
+
* exactly one subject — `enterpriseId` for the service account, or `userId` to
|
|
12
|
+
* act as a managed user.
|
|
13
|
+
*/
|
|
14
|
+
export interface CcgConfig {
|
|
15
|
+
clientId: string;
|
|
16
|
+
clientSecret: string;
|
|
17
|
+
enterpriseId?: string;
|
|
18
|
+
userId?: string;
|
|
19
|
+
/** Optional; defaults to Box's token endpoint. */
|
|
20
|
+
tokenUrl?: string;
|
|
21
|
+
}
|
|
22
|
+
/** Build a CCG `Auth`. Requires a subject: `enterpriseId` or `userId`. */
|
|
23
|
+
export declare function clientCredentials(config: CcgConfig): Auth;
|
|
24
|
+
/**
|
|
25
|
+
* The OAuth 2.0 authorization-code flow (a user grants a Box app access). Use
|
|
26
|
+
* `authorizeUrl` to build the redirect, `exchangeCode` to turn the returned code
|
|
27
|
+
* into an `Auth`, or `oauth` to resume from a stored refresh token.
|
|
28
|
+
*/
|
|
29
|
+
export interface OAuthConfig {
|
|
30
|
+
clientId: string;
|
|
31
|
+
clientSecret: string;
|
|
32
|
+
/** Optional; defaults to Box's token endpoint. */
|
|
33
|
+
tokenUrl?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Called with each rotated refresh token (Box invalidates the previous one on
|
|
36
|
+
* every exchange). Persist it so a later `oauth` resume does not start from a
|
|
37
|
+
* stale, already-invalidated token.
|
|
38
|
+
*/
|
|
39
|
+
onRefresh?: (refreshToken: string) => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Build the URL to redirect a user to so they can grant access. `state` is
|
|
43
|
+
* echoed back to the redirect URI for CSRF protection.
|
|
44
|
+
*/
|
|
45
|
+
export declare function authorizeUrl(config: OAuthConfig, redirectUri: string, state: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Resume the authorization-code flow from a previously stored refresh token,
|
|
48
|
+
* exchanging it for access tokens as needed.
|
|
49
|
+
*/
|
|
50
|
+
export declare function oauth(config: OAuthConfig, refreshToken: string): Auth;
|
|
51
|
+
/**
|
|
52
|
+
* Exchange an authorization code for an `Auth` that refreshes itself thereafter.
|
|
53
|
+
* The initial refresh token is reported through `config.onRefresh` so it can be
|
|
54
|
+
* persisted immediately.
|
|
55
|
+
*/
|
|
56
|
+
export declare function exchangeCode(config: OAuthConfig, code: string, redirectUri: string, signal?: AbortSignal): Promise<Auth>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** The box-gantry engine version that generated this SDK. */
|
|
2
|
+
export declare const ENGINE = "0.1.0";
|
|
3
|
+
/** Fingerprint of the input spec set. */
|
|
4
|
+
export declare const SPEC_FINGERPRINT = "ee7d55aedefe2fa0";
|
|
5
|
+
/** The target language key (FR-4). */
|
|
6
|
+
export declare const TARGET = "typescript";
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Auth } from './runtime.js';
|
|
2
|
+
import { AiManager } from './managers/ai.js';
|
|
3
|
+
import { AiStudioManager } from './managers/ai_studio.js';
|
|
4
|
+
import { AppItemAssociationsManager } from './managers/app_item_associations.js';
|
|
5
|
+
import { ArchivesManager } from './managers/archives.js';
|
|
6
|
+
import { AuthorizationManager } from './managers/authorization.js';
|
|
7
|
+
import { AutomateWorkflowsManager } from './managers/automate_workflows.js';
|
|
8
|
+
import { AvatarsManager } from './managers/avatars.js';
|
|
9
|
+
import { ChunkedUploadsManager } from './managers/chunked_uploads.js';
|
|
10
|
+
import { ClassificationsManager } from './managers/classifications.js';
|
|
11
|
+
import { CollaborationAllowlistEntriesManager } from './managers/collaboration_allowlist_entries.js';
|
|
12
|
+
import { CollaborationAllowlistExemptTargetsManager } from './managers/collaboration_allowlist_exempt_targets.js';
|
|
13
|
+
import { CollectionsManager } from './managers/collections.js';
|
|
14
|
+
import { CommentsManager } from './managers/comments.js';
|
|
15
|
+
import { DevicePinnersManager } from './managers/device_pinners.js';
|
|
16
|
+
import { DocgenManager } from './managers/docgen.js';
|
|
17
|
+
import { DocgenTemplateManager } from './managers/docgen_template.js';
|
|
18
|
+
import { DownloadsManager } from './managers/downloads.js';
|
|
19
|
+
import { EmailAliasesManager } from './managers/email_aliases.js';
|
|
20
|
+
import { EnterpriseConfigurationsManager } from './managers/enterprise_configurations.js';
|
|
21
|
+
import { EventsManager } from './managers/events.js';
|
|
22
|
+
import { ExternalUsersManager } from './managers/external_users.js';
|
|
23
|
+
import { FileClassificationsManager } from './managers/file_classifications.js';
|
|
24
|
+
import { FileMetadataManager } from './managers/file_metadata.js';
|
|
25
|
+
import { FileRequestsManager } from './managers/file_requests.js';
|
|
26
|
+
import { FileVersionLegalHoldsManager } from './managers/file_version_legal_holds.js';
|
|
27
|
+
import { FileVersionRetentionsManager } from './managers/file_version_retentions.js';
|
|
28
|
+
import { FileVersionsManager } from './managers/file_versions.js';
|
|
29
|
+
import { FileWatermarksManager } from './managers/file_watermarks.js';
|
|
30
|
+
import { FilesManager } from './managers/files.js';
|
|
31
|
+
import { FolderClassificationsManager } from './managers/folder_classifications.js';
|
|
32
|
+
import { FolderLocksManager } from './managers/folder_locks.js';
|
|
33
|
+
import { FolderMetadataManager } from './managers/folder_metadata.js';
|
|
34
|
+
import { FolderWatermarksManager } from './managers/folder_watermarks.js';
|
|
35
|
+
import { FoldersManager } from './managers/folders.js';
|
|
36
|
+
import { GroupsManager } from './managers/groups.js';
|
|
37
|
+
import { HubCollaborationsManager } from './managers/hub_collaborations.js';
|
|
38
|
+
import { HubDocumentManager } from './managers/hub_document.js';
|
|
39
|
+
import { HubItemsManager } from './managers/hub_items.js';
|
|
40
|
+
import { HubsManager } from './managers/hubs.js';
|
|
41
|
+
import { IntegrationMappingsManager } from './managers/integration_mappings.js';
|
|
42
|
+
import { InvitesManager } from './managers/invites.js';
|
|
43
|
+
import { LegalHoldPoliciesManager } from './managers/legal_hold_policies.js';
|
|
44
|
+
import { LegalHoldPolicyAssignmentsManager } from './managers/legal_hold_policy_assignments.js';
|
|
45
|
+
import { ListCollaborationsManager } from './managers/list_collaborations.js';
|
|
46
|
+
import { MembershipsManager } from './managers/memberships.js';
|
|
47
|
+
import { MetadataCascadePoliciesManager } from './managers/metadata_cascade_policies.js';
|
|
48
|
+
import { MetadataTaxonomiesManager } from './managers/metadata_taxonomies.js';
|
|
49
|
+
import { MetadataTemplatesManager } from './managers/metadata_templates.js';
|
|
50
|
+
import { NotesManager } from './managers/notes.js';
|
|
51
|
+
import { RecentItemsManager } from './managers/recent_items.js';
|
|
52
|
+
import { RetentionPoliciesManager } from './managers/retention_policies.js';
|
|
53
|
+
import { RetentionPolicyAssignmentsManager } from './managers/retention_policy_assignments.js';
|
|
54
|
+
import { SearchManager } from './managers/search.js';
|
|
55
|
+
import { SessionTerminationManager } from './managers/session_termination.js';
|
|
56
|
+
import { SharedLinksAppItemsManager } from './managers/shared_links_app_items.js';
|
|
57
|
+
import { SharedLinksFilesManager } from './managers/shared_links_files.js';
|
|
58
|
+
import { SharedLinksFoldersManager } from './managers/shared_links_folders.js';
|
|
59
|
+
import { SharedLinksWebLinksManager } from './managers/shared_links_web_links.js';
|
|
60
|
+
import { ShieldInformationBarrierReportsManager } from './managers/shield_information_barrier_reports.js';
|
|
61
|
+
import { ShieldInformationBarrierSegmentMembersManager } from './managers/shield_information_barrier_segment_members.js';
|
|
62
|
+
import { ShieldInformationBarrierSegmentRestrictionsManager } from './managers/shield_information_barrier_segment_restrictions.js';
|
|
63
|
+
import { ShieldInformationBarrierSegmentsManager } from './managers/shield_information_barrier_segments.js';
|
|
64
|
+
import { ShieldInformationBarriersManager } from './managers/shield_information_barriers.js';
|
|
65
|
+
import { ShieldListsManager } from './managers/shield_lists.js';
|
|
66
|
+
import { SignRequestsManager } from './managers/sign_requests.js';
|
|
67
|
+
import { SignTemplatesManager } from './managers/sign_templates.js';
|
|
68
|
+
import { SkillsManager } from './managers/skills.js';
|
|
69
|
+
import { StoragePoliciesManager } from './managers/storage_policies.js';
|
|
70
|
+
import { StoragePolicyAssignmentsManager } from './managers/storage_policy_assignments.js';
|
|
71
|
+
import { TaskAssignmentsManager } from './managers/task_assignments.js';
|
|
72
|
+
import { TasksManager } from './managers/tasks.js';
|
|
73
|
+
import { TermsOfServiceUserStatusesManager } from './managers/terms_of_service_user_statuses.js';
|
|
74
|
+
import { TermsOfServicesManager } from './managers/terms_of_services.js';
|
|
75
|
+
import { TransferManager } from './managers/transfer.js';
|
|
76
|
+
import { TrashedFilesManager } from './managers/trashed_files.js';
|
|
77
|
+
import { TrashedFoldersManager } from './managers/trashed_folders.js';
|
|
78
|
+
import { TrashedItemsManager } from './managers/trashed_items.js';
|
|
79
|
+
import { TrashedWebLinksManager } from './managers/trashed_web_links.js';
|
|
80
|
+
import { UploadsManager } from './managers/uploads.js';
|
|
81
|
+
import { UserCollaborationsManager } from './managers/user_collaborations.js';
|
|
82
|
+
import { UsersManager } from './managers/users.js';
|
|
83
|
+
import { WebLinksManager } from './managers/web_links.js';
|
|
84
|
+
import { WebhooksManager } from './managers/webhooks.js';
|
|
85
|
+
import { WorkflowsManager } from './managers/workflows.js';
|
|
86
|
+
import { ZipDownloadsManager } from './managers/zip_downloads.js';
|
|
87
|
+
/** The Box SDK client: one manager per API area over a shared session. */
|
|
88
|
+
export declare class Client {
|
|
89
|
+
readonly ai: AiManager;
|
|
90
|
+
readonly aiStudio: AiStudioManager;
|
|
91
|
+
readonly appItemAssociations: AppItemAssociationsManager;
|
|
92
|
+
readonly archives: ArchivesManager;
|
|
93
|
+
readonly authorization: AuthorizationManager;
|
|
94
|
+
readonly automateWorkflows: AutomateWorkflowsManager;
|
|
95
|
+
readonly avatars: AvatarsManager;
|
|
96
|
+
readonly chunkedUploads: ChunkedUploadsManager;
|
|
97
|
+
readonly classifications: ClassificationsManager;
|
|
98
|
+
readonly collaborationAllowlistEntries: CollaborationAllowlistEntriesManager;
|
|
99
|
+
readonly collaborationAllowlistExemptTargets: CollaborationAllowlistExemptTargetsManager;
|
|
100
|
+
readonly collections: CollectionsManager;
|
|
101
|
+
readonly comments: CommentsManager;
|
|
102
|
+
readonly devicePinners: DevicePinnersManager;
|
|
103
|
+
readonly docgen: DocgenManager;
|
|
104
|
+
readonly docgenTemplate: DocgenTemplateManager;
|
|
105
|
+
readonly downloads: DownloadsManager;
|
|
106
|
+
readonly emailAliases: EmailAliasesManager;
|
|
107
|
+
readonly enterpriseConfigurations: EnterpriseConfigurationsManager;
|
|
108
|
+
readonly events: EventsManager;
|
|
109
|
+
readonly externalUsers: ExternalUsersManager;
|
|
110
|
+
readonly fileClassifications: FileClassificationsManager;
|
|
111
|
+
readonly fileMetadata: FileMetadataManager;
|
|
112
|
+
readonly fileRequests: FileRequestsManager;
|
|
113
|
+
readonly fileVersionLegalHolds: FileVersionLegalHoldsManager;
|
|
114
|
+
readonly fileVersionRetentions: FileVersionRetentionsManager;
|
|
115
|
+
readonly fileVersions: FileVersionsManager;
|
|
116
|
+
readonly fileWatermarks: FileWatermarksManager;
|
|
117
|
+
readonly files: FilesManager;
|
|
118
|
+
readonly folderClassifications: FolderClassificationsManager;
|
|
119
|
+
readonly folderLocks: FolderLocksManager;
|
|
120
|
+
readonly folderMetadata: FolderMetadataManager;
|
|
121
|
+
readonly folderWatermarks: FolderWatermarksManager;
|
|
122
|
+
readonly folders: FoldersManager;
|
|
123
|
+
readonly groups: GroupsManager;
|
|
124
|
+
readonly hubCollaborations: HubCollaborationsManager;
|
|
125
|
+
readonly hubDocument: HubDocumentManager;
|
|
126
|
+
readonly hubItems: HubItemsManager;
|
|
127
|
+
readonly hubs: HubsManager;
|
|
128
|
+
readonly integrationMappings: IntegrationMappingsManager;
|
|
129
|
+
readonly invites: InvitesManager;
|
|
130
|
+
readonly legalHoldPolicies: LegalHoldPoliciesManager;
|
|
131
|
+
readonly legalHoldPolicyAssignments: LegalHoldPolicyAssignmentsManager;
|
|
132
|
+
readonly listCollaborations: ListCollaborationsManager;
|
|
133
|
+
readonly memberships: MembershipsManager;
|
|
134
|
+
readonly metadataCascadePolicies: MetadataCascadePoliciesManager;
|
|
135
|
+
readonly metadataTaxonomies: MetadataTaxonomiesManager;
|
|
136
|
+
readonly metadataTemplates: MetadataTemplatesManager;
|
|
137
|
+
readonly notes: NotesManager;
|
|
138
|
+
readonly recentItems: RecentItemsManager;
|
|
139
|
+
readonly retentionPolicies: RetentionPoliciesManager;
|
|
140
|
+
readonly retentionPolicyAssignments: RetentionPolicyAssignmentsManager;
|
|
141
|
+
readonly search: SearchManager;
|
|
142
|
+
readonly sessionTermination: SessionTerminationManager;
|
|
143
|
+
readonly sharedLinksAppItems: SharedLinksAppItemsManager;
|
|
144
|
+
readonly sharedLinksFiles: SharedLinksFilesManager;
|
|
145
|
+
readonly sharedLinksFolders: SharedLinksFoldersManager;
|
|
146
|
+
readonly sharedLinksWebLinks: SharedLinksWebLinksManager;
|
|
147
|
+
readonly shieldInformationBarrierReports: ShieldInformationBarrierReportsManager;
|
|
148
|
+
readonly shieldInformationBarrierSegmentMembers: ShieldInformationBarrierSegmentMembersManager;
|
|
149
|
+
readonly shieldInformationBarrierSegmentRestrictions: ShieldInformationBarrierSegmentRestrictionsManager;
|
|
150
|
+
readonly shieldInformationBarrierSegments: ShieldInformationBarrierSegmentsManager;
|
|
151
|
+
readonly shieldInformationBarriers: ShieldInformationBarriersManager;
|
|
152
|
+
readonly shieldLists: ShieldListsManager;
|
|
153
|
+
readonly signRequests: SignRequestsManager;
|
|
154
|
+
readonly signTemplates: SignTemplatesManager;
|
|
155
|
+
readonly skills: SkillsManager;
|
|
156
|
+
readonly storagePolicies: StoragePoliciesManager;
|
|
157
|
+
readonly storagePolicyAssignments: StoragePolicyAssignmentsManager;
|
|
158
|
+
readonly taskAssignments: TaskAssignmentsManager;
|
|
159
|
+
readonly tasks: TasksManager;
|
|
160
|
+
readonly termsOfServiceUserStatuses: TermsOfServiceUserStatusesManager;
|
|
161
|
+
readonly termsOfServices: TermsOfServicesManager;
|
|
162
|
+
readonly transfer: TransferManager;
|
|
163
|
+
readonly trashedFiles: TrashedFilesManager;
|
|
164
|
+
readonly trashedFolders: TrashedFoldersManager;
|
|
165
|
+
readonly trashedItems: TrashedItemsManager;
|
|
166
|
+
readonly trashedWebLinks: TrashedWebLinksManager;
|
|
167
|
+
readonly uploads: UploadsManager;
|
|
168
|
+
readonly userCollaborations: UserCollaborationsManager;
|
|
169
|
+
readonly users: UsersManager;
|
|
170
|
+
readonly webLinks: WebLinksManager;
|
|
171
|
+
readonly webhooks: WebhooksManager;
|
|
172
|
+
readonly workflows: WorkflowsManager;
|
|
173
|
+
readonly zipDownloads: ZipDownloadsManager;
|
|
174
|
+
/** Build a client for an authentication flow. */
|
|
175
|
+
constructor(auth: Auth);
|
|
176
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Options for a `BoxApiError`. */
|
|
2
|
+
export interface BoxApiErrorOptions {
|
|
3
|
+
/** The HTTP status, when the error carries a response. */
|
|
4
|
+
status?: number;
|
|
5
|
+
/** The underlying failure (a transport error, a decode error), preserved for
|
|
6
|
+
* diagnostics. */
|
|
7
|
+
cause?: unknown;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A runtime error: a failed request, auth acquisition, or body decode. The
|
|
11
|
+
* generated SDK's exceptions model (TR-TS.3) surfaces every failure as a thrown
|
|
12
|
+
* `BoxApiError` — the TypeScript analogue of Go's `error` return and Rust's
|
|
13
|
+
* `Result::Err`.
|
|
14
|
+
*/
|
|
15
|
+
export declare class BoxApiError extends Error {
|
|
16
|
+
/** The HTTP status, when the error carries a response. */
|
|
17
|
+
readonly status?: number;
|
|
18
|
+
constructor(message: string, options?: BoxApiErrorOptions);
|
|
19
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Comma-join a list into a query value, converting each element with `f`. */
|
|
2
|
+
export declare function join<T>(items: Array<T>, f: (v: T) => string): string;
|
|
3
|
+
/** Percent-encode a value, leaving RFC 3986 unreserved characters as-is. */
|
|
4
|
+
export declare function pathEscape(value: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* An application/x-www-form-urlencoded body from key/value pairs (the OAuth2
|
|
7
|
+
* token endpoints): each key and value percent-encoded, joined by `&`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function formEncode(pairs: Array<[string, string]>): string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Auth } from './tokens.js';
|
|
2
|
+
/**
|
|
3
|
+
* JWT server auth with a signing key (Box's `box_config.json` fields).
|
|
4
|
+
* `privateKeyPem` is the RSA private key, optionally encrypted with
|
|
5
|
+
* `passphrase`. Set exactly one subject — `enterpriseId` or `userId`.
|
|
6
|
+
*/
|
|
7
|
+
export interface JwtConfig {
|
|
8
|
+
clientId: string;
|
|
9
|
+
clientSecret: string;
|
|
10
|
+
publicKeyId: string;
|
|
11
|
+
privateKeyPem: string;
|
|
12
|
+
passphrase?: string;
|
|
13
|
+
enterpriseId?: string;
|
|
14
|
+
userId?: string;
|
|
15
|
+
/** Optional; defaults to Box's token endpoint. */
|
|
16
|
+
tokenUrl?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build a JWT-assertion `Auth`, parsing (and if needed decrypting) the RSA
|
|
20
|
+
* private key up front so a bad key fails loudly here rather than on the first
|
|
21
|
+
* request. Returns a promise because it imports `node:crypto` on demand.
|
|
22
|
+
*/
|
|
23
|
+
export declare function jwtAuth(config: JwtConfig): Promise<Auth>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for AiManager.getAgentDefault. */
|
|
4
|
+
export interface AiManagerGetAgentDefaultOptions {
|
|
5
|
+
language?: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
}
|
|
8
|
+
/** Operations for the "ai" API area. */
|
|
9
|
+
export declare class AiManager {
|
|
10
|
+
private readonly session;
|
|
11
|
+
constructor(session: runtime.Client);
|
|
12
|
+
ask(body: models.schemas.AiAsk): Promise<models.schemas.AiResponseFull>;
|
|
13
|
+
createTextGen(body: models.schemas.AiTextGen): Promise<models.schemas.AiResponse>;
|
|
14
|
+
getAgentDefault(mode: models.schemas.GetAgentDefaultMode, opts?: AiManagerGetAgentDefaultOptions): Promise<models.schemas.AiAgent>;
|
|
15
|
+
extract(body: models.schemas.AiExtract): Promise<models.schemas.AiResponse>;
|
|
16
|
+
createExtractStructured(body: models.schemas.AiExtractStructured): Promise<models.schemas.AiExtractStructuredResponse>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for AiStudioManager.listAiAgents. */
|
|
4
|
+
export interface AiStudioManagerListAiAgentsOptions {
|
|
5
|
+
mode?: Array<string>;
|
|
6
|
+
fields?: Array<string>;
|
|
7
|
+
agent_state?: Array<string>;
|
|
8
|
+
include_box_default?: boolean;
|
|
9
|
+
marker?: string;
|
|
10
|
+
limit?: number;
|
|
11
|
+
}
|
|
12
|
+
/** Optional parameters for AiStudioManager.getAiAgent. */
|
|
13
|
+
export interface AiStudioManagerGetAiAgentOptions {
|
|
14
|
+
fields?: Array<string>;
|
|
15
|
+
}
|
|
16
|
+
/** Operations for the "ai_studio" API area. */
|
|
17
|
+
export declare class AiStudioManager {
|
|
18
|
+
private readonly session;
|
|
19
|
+
constructor(session: runtime.Client);
|
|
20
|
+
/** Iterate every `models.schemas.AiSingleAgentResponseFull` across pages, threading the marker cursor. */
|
|
21
|
+
listAiAgents(opts?: AiStudioManagerListAiAgentsOptions): AsyncIterableIterator<models.schemas.AiSingleAgentResponseFull>;
|
|
22
|
+
private listAiAgentsPage;
|
|
23
|
+
createAiAgents(body: models.schemas.CreateAiAgent): Promise<models.schemas.AiSingleAgentResponseFull>;
|
|
24
|
+
getAiAgent(agentId: string, opts?: AiStudioManagerGetAiAgentOptions): Promise<models.schemas.AiSingleAgentResponseFull>;
|
|
25
|
+
updateAiAgent(agentId: string, body: models.schemas.CreateAiAgent): Promise<models.schemas.AiSingleAgentResponseFull>;
|
|
26
|
+
deleteAiAgent(agentId: string): Promise<void>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for AppItemAssociationsManager.listFile. */
|
|
4
|
+
export interface AppItemAssociationsManagerListFileOptions {
|
|
5
|
+
limit?: number;
|
|
6
|
+
marker?: string;
|
|
7
|
+
application_type?: string;
|
|
8
|
+
}
|
|
9
|
+
/** Optional parameters for AppItemAssociationsManager.listFolder. */
|
|
10
|
+
export interface AppItemAssociationsManagerListFolderOptions {
|
|
11
|
+
limit?: number;
|
|
12
|
+
marker?: string;
|
|
13
|
+
application_type?: string;
|
|
14
|
+
}
|
|
15
|
+
/** Operations for the "app_item_associations" API area. */
|
|
16
|
+
export declare class AppItemAssociationsManager {
|
|
17
|
+
private readonly session;
|
|
18
|
+
constructor(session: runtime.Client);
|
|
19
|
+
/** Iterate every `models.schemas.AppItemAssociation` across pages, threading the marker cursor. */
|
|
20
|
+
listFile(fileId: string, opts?: AppItemAssociationsManagerListFileOptions): AsyncIterableIterator<models.schemas.AppItemAssociation>;
|
|
21
|
+
private listFilePage;
|
|
22
|
+
/** Iterate every `models.schemas.AppItemAssociation` across pages, threading the marker cursor. */
|
|
23
|
+
listFolder(folderId: string, opts?: AppItemAssociationsManagerListFolderOptions): AsyncIterableIterator<models.schemas.AppItemAssociation>;
|
|
24
|
+
private listFolderPage;
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for ArchivesManager.list. */
|
|
4
|
+
export interface ArchivesManagerListOptions {
|
|
5
|
+
limit?: number;
|
|
6
|
+
marker?: string;
|
|
7
|
+
}
|
|
8
|
+
/** Operations for the "archives" API area. */
|
|
9
|
+
export declare class ArchivesManager {
|
|
10
|
+
private readonly session;
|
|
11
|
+
constructor(session: runtime.Client);
|
|
12
|
+
/** Iterate every `models.schemas.Archive` across pages, threading the marker cursor. */
|
|
13
|
+
list(opts?: ArchivesManagerListOptions): AsyncIterableIterator<models.schemas.Archive>;
|
|
14
|
+
private listPage;
|
|
15
|
+
create(body: models.schemas.ArchiveCreateRequest): Promise<models.schemas.Archive>;
|
|
16
|
+
update(archiveId: string, body: models.schemas.ArchiveUpdateRequest): Promise<models.schemas.Archive>;
|
|
17
|
+
delete_(archiveId: string): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for AuthorizationManager.authorize. */
|
|
4
|
+
export interface AuthorizationManagerAuthorizeOptions {
|
|
5
|
+
redirect_uri?: string;
|
|
6
|
+
state?: string;
|
|
7
|
+
scope?: string;
|
|
8
|
+
}
|
|
9
|
+
/** Operations for the "authorization" API area. */
|
|
10
|
+
export declare class AuthorizationManager {
|
|
11
|
+
private readonly session;
|
|
12
|
+
constructor(session: runtime.Client);
|
|
13
|
+
authorize(responseType: models.schemas.GetAuthorizeResponseType, clientId: string, opts?: AuthorizationManagerAuthorizeOptions): Promise<string>;
|
|
14
|
+
createOauth2Token(body: models.schemas.PostOAuth2Token): Promise<models.schemas.AccessToken>;
|
|
15
|
+
createOauth2TokenRefresh(body: models.schemas.PostOAuth2TokenRefreshAccessToken): Promise<models.schemas.AccessToken>;
|
|
16
|
+
revokeOauth2(body: models.schemas.PostOAuth2Revoke): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for AutomateWorkflowsManager.list. */
|
|
4
|
+
export interface AutomateWorkflowsManagerListOptions {
|
|
5
|
+
limit?: number;
|
|
6
|
+
marker?: string;
|
|
7
|
+
}
|
|
8
|
+
/** Operations for the "automate_workflows" API area. */
|
|
9
|
+
export declare class AutomateWorkflowsManager {
|
|
10
|
+
private readonly session;
|
|
11
|
+
constructor(session: runtime.Client);
|
|
12
|
+
/** Iterate every `models.schemas.AutomateWorkflowAction` across pages, threading the marker cursor. */
|
|
13
|
+
list(folderId: string, opts?: AutomateWorkflowsManagerListOptions): AsyncIterableIterator<models.schemas.AutomateWorkflowAction>;
|
|
14
|
+
private listPage;
|
|
15
|
+
start(workflowId: string, body: models.schemas.AutomateWorkflowStartRequest): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Operations for the "avatars" API area. */
|
|
4
|
+
export declare class AvatarsManager {
|
|
5
|
+
private readonly session;
|
|
6
|
+
constructor(session: runtime.Client);
|
|
7
|
+
getUserAvatar(userId: string): Promise<runtime.Stream>;
|
|
8
|
+
createUserAvatar(userId: string, body: models.schemas.UserAvatarCreateRequest): Promise<models.schemas.UserAvatar>;
|
|
9
|
+
deleteUserAvatar(userId: string): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for ChunkedUploadsManager.listFileUploadSessionParts. */
|
|
4
|
+
export interface ChunkedUploadsManagerListFileUploadSessionPartsOptions {
|
|
5
|
+
offset?: number;
|
|
6
|
+
limit?: number;
|
|
7
|
+
}
|
|
8
|
+
/** Optional parameters for ChunkedUploadsManager.commitFileUploadSession. */
|
|
9
|
+
export interface ChunkedUploadsManagerCommitFileUploadSessionOptions {
|
|
10
|
+
"if-match"?: string;
|
|
11
|
+
"if-none-match"?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Operations for the "chunked_uploads" API area. */
|
|
14
|
+
export declare class ChunkedUploadsManager {
|
|
15
|
+
private readonly session;
|
|
16
|
+
constructor(session: runtime.Client);
|
|
17
|
+
createFileUploadSessions(body: models.schemas.FileUploadSessionsCreateRequest): Promise<models.schemas.UploadSession>;
|
|
18
|
+
createFileByIdUploadSessions(fileId: string, body: models.schemas.FileIdUploadSessionsCreateRequest): Promise<models.schemas.UploadSession>;
|
|
19
|
+
getFileUploadSession(uploadSessionId: string): Promise<models.schemas.UploadSession>;
|
|
20
|
+
updateFileUploadSession(uploadSessionId: string, digest: string, contentRange: string, body: Blob): Promise<models.schemas.UploadedPart>;
|
|
21
|
+
deleteFileUploadSession(uploadSessionId: string): Promise<void>;
|
|
22
|
+
/** Iterate every `models.schemas.UploadPart` across pages, threading the offset cursor. */
|
|
23
|
+
listFileUploadSessionParts(uploadSessionId: string, opts?: ChunkedUploadsManagerListFileUploadSessionPartsOptions): AsyncIterableIterator<models.schemas.UploadPart>;
|
|
24
|
+
private listFileUploadSessionPartsPage;
|
|
25
|
+
commitFileUploadSession(uploadSessionId: string, digest: string, body: models.schemas.FileUploadSessionCommitRequest, opts?: ChunkedUploadsManagerCommitFileUploadSessionOptions): Promise<models.schemas.Files>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Operations for the "classifications" API area. */
|
|
4
|
+
export declare class ClassificationsManager {
|
|
5
|
+
private readonly session;
|
|
6
|
+
constructor(session: runtime.Client);
|
|
7
|
+
get(): Promise<models.schemas.ClassificationTemplate>;
|
|
8
|
+
updateAdd(body: Array<models.schemas.ClassificationUpdateRequest>): Promise<models.schemas.ClassificationTemplate>;
|
|
9
|
+
updateUpdate(body: Array<models.schemas.ClassificationUpdateRequest2>): Promise<models.schemas.ClassificationTemplate>;
|
|
10
|
+
createMetadataTemplateSchemaClassifications(body: models.schemas.MetadataTemplateSchemaCreateRequest): Promise<models.schemas.ClassificationTemplate>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for CollaborationAllowlistEntriesManager.listCollaborationWhitelistEntries. */
|
|
4
|
+
export interface CollaborationAllowlistEntriesManagerListCollaborationWhitelistEntriesOptions {
|
|
5
|
+
marker?: string;
|
|
6
|
+
limit?: number;
|
|
7
|
+
}
|
|
8
|
+
/** Operations for the "collaboration_allowlist_entries" API area. */
|
|
9
|
+
export declare class CollaborationAllowlistEntriesManager {
|
|
10
|
+
private readonly session;
|
|
11
|
+
constructor(session: runtime.Client);
|
|
12
|
+
/** Iterate every `models.schemas.CollaborationAllowlistEntry` across pages, threading the marker cursor. */
|
|
13
|
+
listCollaborationWhitelistEntries(opts?: CollaborationAllowlistEntriesManagerListCollaborationWhitelistEntriesOptions): AsyncIterableIterator<models.schemas.CollaborationAllowlistEntry>;
|
|
14
|
+
private listCollaborationWhitelistEntriesPage;
|
|
15
|
+
createCollaborationWhitelistEntries(body: models.schemas.CollaborationWhitelistEntriesCreateRequest): Promise<models.schemas.CollaborationAllowlistEntry>;
|
|
16
|
+
getCollaborationWhitelistEntry(collaborationWhitelistEntryId: string): Promise<models.schemas.CollaborationAllowlistEntry>;
|
|
17
|
+
deleteCollaborationWhitelistEntry(collaborationWhitelistEntryId: string): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as runtime from '../runtime.js';
|
|
2
|
+
import type * as models from '../models/index.js';
|
|
3
|
+
/** Optional parameters for CollaborationAllowlistExemptTargetsManager.listCollaborationWhitelistExemptTargets. */
|
|
4
|
+
export interface CollaborationAllowlistExemptTargetsManagerListCollaborationWhitelistExemptTargetsOptions {
|
|
5
|
+
marker?: string;
|
|
6
|
+
limit?: number;
|
|
7
|
+
}
|
|
8
|
+
/** Operations for the "collaboration_allowlist_exempt_targets" API area. */
|
|
9
|
+
export declare class CollaborationAllowlistExemptTargetsManager {
|
|
10
|
+
private readonly session;
|
|
11
|
+
constructor(session: runtime.Client);
|
|
12
|
+
/** Iterate every `models.schemas.CollaborationAllowlistExemptTarget` across pages, threading the marker cursor. */
|
|
13
|
+
listCollaborationWhitelistExemptTargets(opts?: CollaborationAllowlistExemptTargetsManagerListCollaborationWhitelistExemptTargetsOptions): AsyncIterableIterator<models.schemas.CollaborationAllowlistExemptTarget>;
|
|
14
|
+
private listCollaborationWhitelistExemptTargetsPage;
|
|
15
|
+
createCollaborationWhitelistExemptTargets(body: models.schemas.CollaborationWhitelistExemptTargetsCreateRequest): Promise<models.schemas.CollaborationAllowlistExemptTarget>;
|
|
16
|
+
getCollaborationWhitelistExemptTarget(collaborationWhitelistExemptTargetId: string): Promise<models.schemas.CollaborationAllowlistExemptTarget>;
|
|
17
|
+
deleteCollaborationWhitelistExemptTarget(collaborationWhitelistExemptTargetId: string): Promise<void>;
|
|
18
|
+
}
|