@unofficialbox/box-open-sdk 0.7.1 → 0.9.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/dist/cjs/buildinfo.js +2 -2
- package/dist/cjs/client.js +11 -2
- package/dist/cjs/errors.js +3 -2
- package/dist/cjs/managers/authorization.js +15 -0
- package/dist/cjs/managers/events.js +27 -1
- package/dist/cjs/managers/web_links.js +26 -2
- package/dist/cjs/models/schemas/ai.js +1 -1
- package/dist/cjs/models/schemas/ai_studio.js +1 -1
- package/dist/cjs/models/schemas/app_item_associations.js +1 -1
- package/dist/cjs/models/schemas/archives.js +1 -1
- package/dist/cjs/models/schemas/authorization.js +1 -1
- package/dist/cjs/models/schemas/automate_workflows.js +1 -1
- package/dist/cjs/models/schemas/avatars.js +1 -1
- package/dist/cjs/models/schemas/chunked_uploads.js +1 -1
- package/dist/cjs/models/schemas/classifications.js +1 -1
- package/dist/cjs/models/schemas/collaboration_allowlist_entries.js +1 -1
- package/dist/cjs/models/schemas/collaboration_allowlist_exempt_targets.js +1 -1
- package/dist/cjs/models/schemas/collections.js +1 -1
- package/dist/cjs/models/schemas/comments.js +1 -1
- package/dist/cjs/models/schemas/device_pinners.js +1 -1
- package/dist/cjs/models/schemas/docgen.js +1 -1
- package/dist/cjs/models/schemas/docgen_template.js +1 -1
- package/dist/cjs/models/schemas/document_split.js +1 -1
- package/dist/cjs/models/schemas/email_aliases.js +1 -1
- package/dist/cjs/models/schemas/enterprise_configurations.js +1 -1
- package/dist/cjs/models/schemas/events.js +1 -1
- package/dist/cjs/models/schemas/external_users.js +1 -1
- package/dist/cjs/models/schemas/file_requests.js +1 -1
- package/dist/cjs/models/schemas/file_version_legal_holds.js +1 -1
- package/dist/cjs/models/schemas/file_version_retentions.js +1 -1
- package/dist/cjs/models/schemas/file_versions.js +1 -1
- package/dist/cjs/models/schemas/files.js +1 -1
- package/dist/cjs/models/schemas/folder_locks.js +1 -1
- package/dist/cjs/models/schemas/folders.js +1 -1
- package/dist/cjs/models/schemas/groups.js +1 -1
- package/dist/cjs/models/schemas/hub_collaborations.js +1 -1
- package/dist/cjs/models/schemas/hub_document.js +1 -1
- package/dist/cjs/models/schemas/hub_items.js +1 -1
- package/dist/cjs/models/schemas/hubs.js +1 -1
- package/dist/cjs/models/schemas/integration_mappings.js +1 -1
- package/dist/cjs/models/schemas/invites.js +1 -1
- package/dist/cjs/models/schemas/legal_hold_policies.js +1 -1
- package/dist/cjs/models/schemas/legal_hold_policy_assignments.js +1 -1
- package/dist/cjs/models/schemas/list_collaborations.js +1 -1
- package/dist/cjs/models/schemas/memberships.js +1 -1
- package/dist/cjs/models/schemas/metadata_cascade_policies.js +1 -1
- package/dist/cjs/models/schemas/metadata_taxonomies.js +1 -1
- package/dist/cjs/models/schemas/metadata_templates.js +1 -1
- package/dist/cjs/models/schemas/notes.js +1 -1
- package/dist/cjs/models/schemas/query.js +1 -1
- package/dist/cjs/models/schemas/recent_items.js +1 -1
- package/dist/cjs/models/schemas/retention_policies.js +1 -1
- package/dist/cjs/models/schemas/retention_policy_assignments.js +1 -1
- package/dist/cjs/models/schemas/search.js +1 -1
- package/dist/cjs/models/schemas/session_termination.js +1 -1
- package/dist/cjs/models/schemas/shared_links_folders.js +1 -1
- package/dist/cjs/models/schemas/shield_information_barrier_reports.js +1 -1
- package/dist/cjs/models/schemas/shield_information_barrier_segment_members.js +1 -1
- package/dist/cjs/models/schemas/shield_information_barrier_segment_restrictions.js +1 -1
- package/dist/cjs/models/schemas/shield_information_barrier_segments.js +1 -1
- package/dist/cjs/models/schemas/shield_information_barriers.js +1 -1
- package/dist/cjs/models/schemas/shield_lists.js +1 -1
- package/dist/cjs/models/schemas/shuttle.js +1 -1
- package/dist/cjs/models/schemas/sign_requests.js +1 -1
- package/dist/cjs/models/schemas/sign_templates.js +1 -1
- package/dist/cjs/models/schemas/skills.js +1 -1
- package/dist/cjs/models/schemas/storage_policies.js +1 -1
- package/dist/cjs/models/schemas/storage_policy_assignments.js +1 -1
- package/dist/cjs/models/schemas/task_assignments.js +1 -1
- package/dist/cjs/models/schemas/tasks.js +1 -1
- package/dist/cjs/models/schemas/terms_of_service_user_statuses.js +1 -1
- package/dist/cjs/models/schemas/terms_of_services.js +1 -1
- package/dist/cjs/models/schemas/transfer.js +1 -1
- package/dist/cjs/models/schemas/trashed_files.js +1 -1
- package/dist/cjs/models/schemas/trashed_folders.js +1 -1
- package/dist/cjs/models/schemas/trashed_items.js +1 -1
- package/dist/cjs/models/schemas/trashed_web_links.js +1 -1
- package/dist/cjs/models/schemas/uploads.js +1 -1
- package/dist/cjs/models/schemas/user_collaborations.js +1 -1
- package/dist/cjs/models/schemas/users.js +1 -1
- package/dist/cjs/models/schemas/web_links.js +1 -1
- package/dist/cjs/models/schemas/webhooks.js +1 -1
- package/dist/cjs/models/schemas/workflows.js +1 -1
- package/dist/cjs/models/schemas/zip_downloads.js +1 -1
- package/dist/cjs/models/schemas.js +1 -1
- package/dist/cjs/runtime.js +127 -0
- package/dist/cjs/webhooks.js +113 -0
- package/dist/esm/buildinfo.js +2 -2
- package/dist/esm/client.js +11 -2
- package/dist/esm/errors.js +3 -2
- package/dist/esm/managers/authorization.js +15 -0
- package/dist/esm/managers/events.js +27 -1
- package/dist/esm/managers/web_links.js +26 -2
- package/dist/esm/models/schemas/ai.js +1 -1
- package/dist/esm/models/schemas/ai_studio.js +1 -1
- package/dist/esm/models/schemas/app_item_associations.js +1 -1
- package/dist/esm/models/schemas/archives.js +1 -1
- package/dist/esm/models/schemas/authorization.js +1 -1
- package/dist/esm/models/schemas/automate_workflows.js +1 -1
- package/dist/esm/models/schemas/avatars.js +1 -1
- package/dist/esm/models/schemas/chunked_uploads.js +1 -1
- package/dist/esm/models/schemas/classifications.js +1 -1
- package/dist/esm/models/schemas/collaboration_allowlist_entries.js +1 -1
- package/dist/esm/models/schemas/collaboration_allowlist_exempt_targets.js +1 -1
- package/dist/esm/models/schemas/collections.js +1 -1
- package/dist/esm/models/schemas/comments.js +1 -1
- package/dist/esm/models/schemas/device_pinners.js +1 -1
- package/dist/esm/models/schemas/docgen.js +1 -1
- package/dist/esm/models/schemas/docgen_template.js +1 -1
- package/dist/esm/models/schemas/document_split.js +1 -1
- package/dist/esm/models/schemas/email_aliases.js +1 -1
- package/dist/esm/models/schemas/enterprise_configurations.js +1 -1
- package/dist/esm/models/schemas/events.js +1 -1
- package/dist/esm/models/schemas/external_users.js +1 -1
- package/dist/esm/models/schemas/file_requests.js +1 -1
- package/dist/esm/models/schemas/file_version_legal_holds.js +1 -1
- package/dist/esm/models/schemas/file_version_retentions.js +1 -1
- package/dist/esm/models/schemas/file_versions.js +1 -1
- package/dist/esm/models/schemas/files.js +1 -1
- package/dist/esm/models/schemas/folder_locks.js +1 -1
- package/dist/esm/models/schemas/folders.js +1 -1
- package/dist/esm/models/schemas/groups.js +1 -1
- package/dist/esm/models/schemas/hub_collaborations.js +1 -1
- package/dist/esm/models/schemas/hub_document.js +1 -1
- package/dist/esm/models/schemas/hub_items.js +1 -1
- package/dist/esm/models/schemas/hubs.js +1 -1
- package/dist/esm/models/schemas/integration_mappings.js +1 -1
- package/dist/esm/models/schemas/invites.js +1 -1
- package/dist/esm/models/schemas/legal_hold_policies.js +1 -1
- package/dist/esm/models/schemas/legal_hold_policy_assignments.js +1 -1
- package/dist/esm/models/schemas/list_collaborations.js +1 -1
- package/dist/esm/models/schemas/memberships.js +1 -1
- package/dist/esm/models/schemas/metadata_cascade_policies.js +1 -1
- package/dist/esm/models/schemas/metadata_taxonomies.js +1 -1
- package/dist/esm/models/schemas/metadata_templates.js +1 -1
- package/dist/esm/models/schemas/notes.js +1 -1
- package/dist/esm/models/schemas/query.js +1 -1
- package/dist/esm/models/schemas/recent_items.js +1 -1
- package/dist/esm/models/schemas/retention_policies.js +1 -1
- package/dist/esm/models/schemas/retention_policy_assignments.js +1 -1
- package/dist/esm/models/schemas/search.js +1 -1
- package/dist/esm/models/schemas/session_termination.js +1 -1
- package/dist/esm/models/schemas/shared_links_folders.js +1 -1
- package/dist/esm/models/schemas/shield_information_barrier_reports.js +1 -1
- package/dist/esm/models/schemas/shield_information_barrier_segment_members.js +1 -1
- package/dist/esm/models/schemas/shield_information_barrier_segment_restrictions.js +1 -1
- package/dist/esm/models/schemas/shield_information_barrier_segments.js +1 -1
- package/dist/esm/models/schemas/shield_information_barriers.js +1 -1
- package/dist/esm/models/schemas/shield_lists.js +1 -1
- package/dist/esm/models/schemas/shuttle.js +1 -1
- package/dist/esm/models/schemas/sign_requests.js +1 -1
- package/dist/esm/models/schemas/sign_templates.js +1 -1
- package/dist/esm/models/schemas/skills.js +1 -1
- package/dist/esm/models/schemas/storage_policies.js +1 -1
- package/dist/esm/models/schemas/storage_policy_assignments.js +1 -1
- package/dist/esm/models/schemas/task_assignments.js +1 -1
- package/dist/esm/models/schemas/tasks.js +1 -1
- package/dist/esm/models/schemas/terms_of_service_user_statuses.js +1 -1
- package/dist/esm/models/schemas/terms_of_services.js +1 -1
- package/dist/esm/models/schemas/transfer.js +1 -1
- package/dist/esm/models/schemas/trashed_files.js +1 -1
- package/dist/esm/models/schemas/trashed_folders.js +1 -1
- package/dist/esm/models/schemas/trashed_items.js +1 -1
- package/dist/esm/models/schemas/trashed_web_links.js +1 -1
- package/dist/esm/models/schemas/uploads.js +1 -1
- package/dist/esm/models/schemas/user_collaborations.js +1 -1
- package/dist/esm/models/schemas/users.js +1 -1
- package/dist/esm/models/schemas/web_links.js +1 -1
- package/dist/esm/models/schemas/webhooks.js +1 -1
- package/dist/esm/models/schemas/workflows.js +1 -1
- package/dist/esm/models/schemas/zip_downloads.js +1 -1
- package/dist/esm/models/schemas.js +1 -1
- package/dist/esm/runtime.js +124 -0
- package/dist/esm/webhooks.js +109 -0
- package/dist/types/buildinfo.d.ts +1 -1
- package/dist/types/client.d.ts +9 -3
- package/dist/types/managers/authorization.d.ts +6 -0
- package/dist/types/managers/events.d.ts +4 -0
- package/dist/types/managers/web_links.d.ts +14 -2
- package/dist/types/runtime.d.ts +41 -0
- package/dist/types/webhooks.d.ts +24 -0
- package/docs/README.md +1 -0
- package/docs/auth.md +35 -8
- package/docs/errors.md +2 -2
- package/docs/managers/web_links.md +3 -0
- package/docs/pagination.md +17 -1
- package/docs/webhooks.md +34 -0
- package/package.json +1 -1
package/dist/cjs/buildinfo.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Code generated by box-gantry 0.1.0 (spec
|
|
2
|
+
// Code generated by box-gantry 0.1.0 (spec 21e020ceb5dcf964). DO NOT EDIT.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.TARGET = exports.SPEC_FINGERPRINT = exports.ENGINE = void 0;
|
|
5
5
|
/** The box-gantry engine version that generated this SDK. */
|
|
6
6
|
exports.ENGINE = "0.1.0";
|
|
7
7
|
/** Fingerprint of the input spec set. */
|
|
8
|
-
exports.SPEC_FINGERPRINT = "
|
|
8
|
+
exports.SPEC_FINGERPRINT = "21e020ceb5dcf964";
|
|
9
9
|
/** The target language key (FR-4). */
|
|
10
10
|
exports.TARGET = "typescript";
|
package/dist/cjs/client.js
CHANGED
|
@@ -181,10 +181,13 @@ class Client {
|
|
|
181
181
|
webhooks;
|
|
182
182
|
workflows;
|
|
183
183
|
zipDownloads;
|
|
184
|
+
#session;
|
|
184
185
|
/** Build a client for an authentication flow; `options` configures the
|
|
185
|
-
* runtime session (retries, `fetch`, default headers, base URLs).
|
|
186
|
+
* runtime session (retries, `fetch`, default headers, base URLs). An
|
|
187
|
+
* already configured runtime session is used as is. */
|
|
186
188
|
constructor(auth, options = {}) {
|
|
187
|
-
const session = new runtime_js_1.Client(auth, options);
|
|
189
|
+
const session = auth instanceof runtime_js_1.Client ? auth : new runtime_js_1.Client(auth, options);
|
|
190
|
+
this.#session = session;
|
|
188
191
|
this.ai = new ai_js_1.AiManager(session);
|
|
189
192
|
this.aiStudio = new ai_studio_js_1.AiStudioManager(session);
|
|
190
193
|
this.appItemAssociations = new app_item_associations_js_1.AppItemAssociationsManager(session);
|
|
@@ -274,5 +277,11 @@ class Client {
|
|
|
274
277
|
this.workflows = new workflows_js_1.WorkflowsManager(session);
|
|
275
278
|
this.zipDownloads = new zip_downloads_js_1.ZipDownloadsManager(session);
|
|
276
279
|
}
|
|
280
|
+
/** A new client whose every API call acts as the user `userId` (Box's
|
|
281
|
+
* `As-User` header). It shares this client's auth and configuration;
|
|
282
|
+
* this client is unchanged. */
|
|
283
|
+
withAsUserHeader(userId) {
|
|
284
|
+
return new Client(this.#session.withAsUserHeader(userId));
|
|
285
|
+
}
|
|
277
286
|
}
|
|
278
287
|
exports.Client = Client;
|
package/dist/cjs/errors.js
CHANGED
|
@@ -57,8 +57,9 @@ function apiErrorFromResponse(status, body) {
|
|
|
57
57
|
const value = payload[key];
|
|
58
58
|
return typeof value === 'string' ? value : undefined;
|
|
59
59
|
};
|
|
60
|
-
|
|
61
|
-
const
|
|
60
|
+
// A Box error object, or from the token endpoint an OAuth 2.0 error.
|
|
61
|
+
const code = field('code') ?? field('error');
|
|
62
|
+
const boxMessage = field('message') ?? field('error_description');
|
|
62
63
|
const requestId = field('request_id');
|
|
63
64
|
let message = `box: status ${status}`;
|
|
64
65
|
if (code !== undefined) {
|
|
@@ -145,5 +145,20 @@ class AuthorizationManager {
|
|
|
145
145
|
req = runtime.withFormBody(req, new TextEncoder().encode((0, internal_js_1.formEncode)(form)));
|
|
146
146
|
await this.session.fetch(req);
|
|
147
147
|
}
|
|
148
|
+
/** Exchange the session's current access token for one limited to `scopes`
|
|
149
|
+
* and, when given, to one item (`resource`: its API URL, e.g.
|
|
150
|
+
* `https://api.box.com/2.0/files/123`) or a shared link. The result is a plain
|
|
151
|
+
* access token with no refresh token: build a client from it with
|
|
152
|
+
* `auth.developerToken`. */
|
|
153
|
+
async downscopeToken(scopes, resource, sharedLink) {
|
|
154
|
+
return this.createOauth2Token({
|
|
155
|
+
grant_type: "urn:ietf:params:oauth:grant-type:token-exchange",
|
|
156
|
+
subject_token: await this.session.accessToken(),
|
|
157
|
+
subject_token_type: "urn:ietf:params:oauth:token-type:access_token",
|
|
158
|
+
scope: scopes.join(' '),
|
|
159
|
+
...(resource === undefined ? {} : { resource: resource }),
|
|
160
|
+
...(sharedLink === undefined ? {} : { box_shared_link: sharedLink }),
|
|
161
|
+
});
|
|
162
|
+
}
|
|
148
163
|
}
|
|
149
164
|
exports.AuthorizationManager = AuthorizationManager;
|
|
@@ -68,7 +68,7 @@ class EventsManager {
|
|
|
68
68
|
}
|
|
69
69
|
const resp = await this.session.fetch(req);
|
|
70
70
|
const data = runtime.responseBytes(resp);
|
|
71
|
-
return
|
|
71
|
+
return runtime.parseJsonExact(new TextDecoder().decode(data));
|
|
72
72
|
}
|
|
73
73
|
async options() {
|
|
74
74
|
let url = this.session.baseUrl("api");
|
|
@@ -78,5 +78,31 @@ class EventsManager {
|
|
|
78
78
|
const data = runtime.responseBytes(resp);
|
|
79
79
|
return JSON.parse(new TextDecoder().decode(data));
|
|
80
80
|
}
|
|
81
|
+
/** Box's long-poll event stream from `opts.stream_position` (`'now'` when
|
|
82
|
+
* unset): yields each event once, then waits on a real-time server for the
|
|
83
|
+
* next change. It rejects when a call fails; aborting `signal` stops it. */
|
|
84
|
+
stream(opts, signal) {
|
|
85
|
+
const options = { ...opts };
|
|
86
|
+
return runtime.eventStream(this.session, options.stream_position ?? 'now', {
|
|
87
|
+
server: async () => {
|
|
88
|
+
const listed = await this.options();
|
|
89
|
+
for (const s of listed.entries ?? []) {
|
|
90
|
+
if (s.url !== undefined) {
|
|
91
|
+
return {
|
|
92
|
+
url: s.url,
|
|
93
|
+
maxRetries: s.max_retries === undefined ? undefined : Number(s.max_retries),
|
|
94
|
+
retryTimeoutSeconds: s.retry_timeout,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
throw new runtime.BoxApiError('box: no real-time server to long-poll');
|
|
99
|
+
},
|
|
100
|
+
page: async (position) => {
|
|
101
|
+
const page = await this.list({ ...options, stream_position: position });
|
|
102
|
+
return { events: page.entries ?? [], next: runtime.streamPosition(page.next_stream_position) };
|
|
103
|
+
},
|
|
104
|
+
id: (event) => event.event_id,
|
|
105
|
+
}, signal);
|
|
106
|
+
}
|
|
81
107
|
}
|
|
82
108
|
exports.EventsManager = EventsManager;
|
|
@@ -62,26 +62,50 @@ class WebLinksManager {
|
|
|
62
62
|
if (options.boxapi !== undefined) {
|
|
63
63
|
req = runtime.withHeader(req, "boxapi", options.boxapi);
|
|
64
64
|
}
|
|
65
|
+
if (options["if-none-match"] !== undefined) {
|
|
66
|
+
req = runtime.withHeader(req, "if-none-match", options["if-none-match"]);
|
|
67
|
+
}
|
|
65
68
|
const resp = await this.session.fetch(req);
|
|
66
69
|
const data = runtime.responseBytes(resp);
|
|
67
70
|
return JSON.parse(new TextDecoder().decode(data));
|
|
68
71
|
}
|
|
69
|
-
|
|
72
|
+
/** `get` with `If-None-Match` set to `etag`: resolves `undefined` when
|
|
73
|
+
* the item is unchanged since `etag` (Box answers 304 Not Modified). */
|
|
74
|
+
async getIfModified(webLinkId, etag, opts) {
|
|
75
|
+
try {
|
|
76
|
+
return await this.get(webLinkId, { ...opts, "if-none-match": etag });
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
if (err instanceof runtime.BoxApiError && err.status === 304) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
throw err;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async update(webLinkId, body, opts) {
|
|
70
86
|
let url = this.session.baseUrl("api");
|
|
71
87
|
url += "/web_links";
|
|
72
88
|
url += '/' + (0, internal_js_1.pathEscape)(webLinkId);
|
|
73
89
|
let req = this.session.newRequest("PUT", url);
|
|
90
|
+
const options = opts ?? {};
|
|
91
|
+
if (options["if-match"] !== undefined) {
|
|
92
|
+
req = runtime.withHeader(req, "if-match", options["if-match"]);
|
|
93
|
+
}
|
|
74
94
|
const payload = new TextEncoder().encode(JSON.stringify(body));
|
|
75
95
|
req = runtime.withJsonBody(req, payload);
|
|
76
96
|
const resp = await this.session.fetch(req);
|
|
77
97
|
const data = runtime.responseBytes(resp);
|
|
78
98
|
return JSON.parse(new TextDecoder().decode(data));
|
|
79
99
|
}
|
|
80
|
-
async delete_(webLinkId) {
|
|
100
|
+
async delete_(webLinkId, opts) {
|
|
81
101
|
let url = this.session.baseUrl("api");
|
|
82
102
|
url += "/web_links";
|
|
83
103
|
url += '/' + (0, internal_js_1.pathEscape)(webLinkId);
|
|
84
104
|
let req = this.session.newRequest("DELETE", url);
|
|
105
|
+
const options = opts ?? {};
|
|
106
|
+
if (options["if-match"] !== undefined) {
|
|
107
|
+
req = runtime.withHeader(req, "if-match", options["if-match"]);
|
|
108
|
+
}
|
|
85
109
|
await this.session.fetch(req);
|
|
86
110
|
}
|
|
87
111
|
}
|