diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml
index 2322feb2..754963dc 100644
--- a/.github/workflows/build_and_test.yml
+++ b/.github/workflows/build_and_test.yml
@@ -34,6 +34,7 @@ jobs:
USER_ID: ${{ secrets.USER_ID }}
ENTERPRISE_ID: ${{ secrets.ENTERPRISE_ID }}
BOX_FILE_REQUEST_ID: ${{ secrets.BOX_FILE_REQUEST_ID }}
+ BOX_EXTERNAL_USER_EMAIL: ${{ secrets.BOX_EXTERNAL_USER_EMAIL }}
- name: Coveralls
uses: coverallsapp/github-action@master
with:
diff --git a/README.md b/README.md
index f4876ff1..f5ef5af7 100644
--- a/README.md
+++ b/README.md
@@ -58,10 +58,7 @@ Using `Client` object you can access managers, which allow you to perform some o
The example below demonstrates how to authenticate with Developer Token and print names of all items inside a root folder.
```js
-const { BoxClient } = require('box-typescript-sdk-gen/lib/client.generated.js');
-const {
- BoxDeveloperTokenAuth,
-} = require('box-typescript-sdk-gen/lib/developerTokenAuth.generated.js');
+const { BoxClient, BoxDeveloperTokenAuth } = require('box-typescript-sdk-gen');
async function main(token) {
let auth = new BoxDeveloperTokenAuth({ token });
@@ -73,6 +70,14 @@ async function main(token) {
main('INSERT YOUR DEVELOPER TOKEN HERE');
```
+In order to use in browser make sure you include the `lib/bundle.js` file and then you can access the classes like so:
+
+```js
+const { BoxClient, BoxDeveloperTokenAuth } = window['box-typescript-sdk-gen'];
+```
+
+See example.html for an example website using this SDK.
+
# Integration Tests
## Running integration tests locally
@@ -94,7 +99,7 @@ Now select `Authorization` and submit application to be reviewed by account admi
download your app configuration settings as JSON.
2. Encode configuration file to Base64, e.g. using command: `base64 -i path_to_json_file`
3. Set environment variable: `JWT_CONFIG_BASE_64` with base64 encoded jwt configuration file
-4. Set environment variable: `BOX_FILE_REQUEST_ID` with ID of file request already created in the user account.
+4. Set environment variable: `BOX_FILE_REQUEST_ID` with ID of file request already created in the user account, `BOX_EXTERNAL_USER_EMAIL` with email of free external user which not belongs to any enterprise.
# Questions, Bugs, and Feature Requests?
diff --git a/docs/fileMetadata.md b/docs/fileMetadata.md
index 2dfc12c1..e7e273ae 100644
--- a/docs/fileMetadata.md
+++ b/docs/fileMetadata.md
@@ -18,7 +18,7 @@ See the endpoint docs at
```ts
-await client.fileMetadata.getFileMetadata(fileId);
+await client.fileMetadata.getFileMetadata(file.id);
```
### Arguments
@@ -52,7 +52,11 @@ See the endpoint docs at
```ts
-await client.fileMetadata.getFileMetadataById(fileId, scope, template);
+await client.fileMetadata.getFileMetadataById(
+ file.id,
+ 'global' as GetFileMetadataByIdScopeArg,
+ 'properties'
+);
```
### Arguments
@@ -141,13 +145,18 @@ See the endpoint docs at
```ts
-await client.fileMetadata.updateFileMetadataById(fileId, scope, template, [
- {
- op: 'replace' as UpdateFileMetadataByIdRequestBodyArgOpField,
- path: '/abc',
- value: newValue,
- } satisfies UpdateFileMetadataByIdRequestBodyArg,
-]);
+await client.fileMetadata.updateFileMetadataById(
+ file.id,
+ 'global' as UpdateFileMetadataByIdScopeArg,
+ 'properties',
+ [
+ {
+ op: 'replace' as UpdateFileMetadataByIdRequestBodyArgOpField,
+ path: '/abc',
+ value: newValue,
+ } satisfies UpdateFileMetadataByIdRequestBodyArg,
+ ]
+);
```
### Arguments
@@ -184,7 +193,11 @@ See the endpoint docs at
```ts
-await client.fileMetadata.deleteFileMetadataById(fileId, scope, template);
+await client.fileMetadata.deleteFileMetadataById(
+ file.id,
+ 'enterprise' as DeleteFileMetadataByIdScopeArg,
+ templateKey
+);
```
### Arguments
diff --git a/docs/folderMetadata.md b/docs/folderMetadata.md
index 67f61289..eb87140a 100644
--- a/docs/folderMetadata.md
+++ b/docs/folderMetadata.md
@@ -53,7 +53,11 @@ See the endpoint docs at
```ts
-await client.folderMetadata.getFolderMetadataById(folder.id, scope, template);
+await client.folderMetadata.getFolderMetadataById(
+ folder.id,
+ 'global' as GetFolderMetadataByIdScopeArg,
+ 'properties'
+);
```
### Arguments
@@ -99,9 +103,9 @@ See the endpoint docs at
```ts
await client.folderMetadata.createFolderMetadataById(
folder.id,
- scope,
- template,
- data
+ 'global' as CreateFolderMetadataByIdScopeArg,
+ 'properties',
+ { ['abc']: 'xyz' }
);
```
@@ -148,8 +152,8 @@ See the endpoint docs at
```ts
await client.folderMetadata.updateFolderMetadataById(
folder.id,
- scope,
- template,
+ 'global' as UpdateFolderMetadataByIdScopeArg,
+ 'properties',
[
{
op: 'replace' as UpdateFolderMetadataByIdRequestBodyArgOpField,
@@ -196,8 +200,8 @@ See the endpoint docs at
```ts
await client.folderMetadata.deleteFolderMetadataById(
folder.id,
- scope,
- template
+ 'global' as DeleteFolderMetadataByIdScopeArg,
+ 'properties'
);
```
diff --git a/docs/invites.md b/docs/invites.md
index c20e722d..cb8fbf25 100644
--- a/docs/invites.md
+++ b/docs/invites.md
@@ -20,7 +20,18 @@ This operation is performed by calling function `createInvite`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/post-invites/).
-_Currently we don't have an example for calling `createInvite` in integration tests_
+
+
+```ts
+await client.invites.createInvite({
+ enterprise: {
+ id: currentUser.enterprise!.id!,
+ } satisfies CreateInviteRequestBodyArgEnterpriseField,
+ actionableBy: {
+ login: email,
+ } satisfies CreateInviteRequestBodyArgActionableByField,
+} satisfies CreateInviteRequestBodyArg);
+```
### Arguments
@@ -48,7 +59,11 @@ This operation is performed by calling function `getInviteById`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-invites-id/).
-_Currently we don't have an example for calling `getInviteById` in integration tests_
+
+
+```ts
+await client.invites.getInviteById(invitation.id);
+```
### Arguments
diff --git a/docs/metadataTemplates.md b/docs/metadataTemplates.md
index 38b3b7ae..ec3e0600 100644
--- a/docs/metadataTemplates.md
+++ b/docs/metadataTemplates.md
@@ -14,19 +14,25 @@
Finds a metadata template by searching for the ID of an instance of the
template.
-This operation is performed by calling function `getMetadataTemplates`.
+This operation is performed by calling function `getMetadataTemplatesByInstanceId`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-metadata-templates/).
-_Currently we don't have an example for calling `getMetadataTemplates` in integration tests_
+
+
+```ts
+await client.metadataTemplates.getMetadataTemplatesByInstanceId({
+ metadataInstanceId: createdMetadataInstance.id!,
+} satisfies GetMetadataTemplatesByInstanceIdQueryParamsArg);
+```
### Arguments
-- queryParams `GetMetadataTemplatesQueryParamsArg`
- - Query parameters of getMetadataTemplates method
-- headers `GetMetadataTemplatesHeadersArg`
- - Headers of getMetadataTemplates method
+- queryParams `GetMetadataTemplatesByInstanceIdQueryParamsArg`
+ - Query parameters of getMetadataTemplatesByInstanceId method
+- headers `GetMetadataTemplatesByInstanceIdHeadersArg`
+ - Headers of getMetadataTemplatesByInstanceId method
- cancellationToken `undefined | CancellationToken`
- Token used for request cancellation.
@@ -44,7 +50,7 @@ Retrieves a metadata template by its `scope` and `templateKey` values.
To find the `scope` and `templateKey` for a template, list all templates for
an enterprise or globally, or list all templates applied to a file or folder.
-This operation is performed by calling function `getMetadataTemplateSchema`.
+This operation is performed by calling function `getMetadataTemplate`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-metadata-templates-id-id-schema/).
@@ -52,20 +58,20 @@ See the endpoint docs at
```ts
-await client.metadataTemplates.getMetadataTemplateSchema(
- 'enterprise' as GetMetadataTemplateSchemaScopeArg,
+await client.metadataTemplates.getMetadataTemplate(
+ 'enterprise' as GetMetadataTemplateScopeArg,
template.templateKey!
);
```
### Arguments
-- scope `GetMetadataTemplateSchemaScopeArg`
+- scope `GetMetadataTemplateScopeArg`
- The scope of the metadata template Example: "global"
- templateKey `string`
- The name of the metadata template Example: "properties"
-- headers `GetMetadataTemplateSchemaHeadersArg`
- - Headers of getMetadataTemplateSchema method
+- headers `GetMetadataTemplateHeadersArg`
+ - Headers of getMetadataTemplate method
- cancellationToken `undefined | CancellationToken`
- Token used for request cancellation.
@@ -86,23 +92,37 @@ already exists.
The update is applied atomically. If any errors occur during the
application of the operations, the metadata template will not be changed.
-This operation is performed by calling function `updateMetadataTemplateSchema`.
+This operation is performed by calling function `updateMetadataTemplate`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/put-metadata-templates-id-id-schema/).
-_Currently we don't have an example for calling `updateMetadataTemplateSchema` in integration tests_
+
+
+```ts
+await client.metadataTemplates.updateMetadataTemplate(
+ 'enterprise' as UpdateMetadataTemplateScopeArg,
+ templateKey,
+ [
+ {
+ op: 'addField' as UpdateMetadataTemplateRequestBodyArgOpField,
+ fieldKey: 'newfieldname',
+ data: { ['type']: 'string', ['displayName']: 'newFieldName' },
+ } satisfies UpdateMetadataTemplateRequestBodyArg,
+ ]
+);
+```
### Arguments
-- scope `UpdateMetadataTemplateSchemaScopeArg`
+- scope `UpdateMetadataTemplateScopeArg`
- The scope of the metadata template Example: "global"
- templateKey `string`
- The name of the metadata template Example: "properties"
-- requestBody `readonly UpdateMetadataTemplateSchemaRequestBodyArg[]`
- - Request body of updateMetadataTemplateSchema method
-- headers `UpdateMetadataTemplateSchemaHeadersArg`
- - Headers of updateMetadataTemplateSchema method
+- requestBody `readonly UpdateMetadataTemplateRequestBodyArg[]`
+ - Request body of updateMetadataTemplate method
+- headers `UpdateMetadataTemplateHeadersArg`
+ - Headers of updateMetadataTemplate method
- cancellationToken `undefined | CancellationToken`
- Token used for request cancellation.
@@ -118,7 +138,7 @@ custom template data included.
Delete a metadata template and its instances.
This deletion is permanent and can not be reversed.
-This operation is performed by calling function `deleteMetadataTemplateSchema`.
+This operation is performed by calling function `deleteMetadataTemplate`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/delete-metadata-templates-id-id-schema/).
@@ -126,20 +146,20 @@ See the endpoint docs at
```ts
-await client.metadataTemplates.deleteMetadataTemplateSchema(
- 'enterprise' as DeleteMetadataTemplateSchemaScopeArg,
+await client.metadataTemplates.deleteMetadataTemplate(
+ 'enterprise' as DeleteMetadataTemplateScopeArg,
template.templateKey
);
```
### Arguments
-- scope `DeleteMetadataTemplateSchemaScopeArg`
+- scope `DeleteMetadataTemplateScopeArg`
- The scope of the metadata template Example: "global"
- templateKey `string`
- The name of the metadata template Example: "properties"
-- headers `DeleteMetadataTemplateSchemaHeadersArg`
- - Headers of deleteMetadataTemplateSchema method
+- headers `DeleteMetadataTemplateHeadersArg`
+ - Headers of deleteMetadataTemplate method
- cancellationToken `undefined | CancellationToken`
- Token used for request cancellation.
@@ -185,7 +205,7 @@ Returns the metadata template that matches the ID.
Used to retrieve all generic, global metadata templates available to all
enterprises using Box.
-This operation is performed by calling function `getMetadataTemplateGlobal`.
+This operation is performed by calling function `getGlobalMetadataTemplates`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-metadata-templates-global/).
@@ -193,15 +213,15 @@ See the endpoint docs at
```ts
-await client.metadataTemplates.getMetadataTemplateGlobal();
+await client.metadataTemplates.getGlobalMetadataTemplates();
```
### Arguments
-- queryParams `GetMetadataTemplateGlobalQueryParamsArg`
- - Query parameters of getMetadataTemplateGlobal method
-- headers `GetMetadataTemplateGlobalHeadersArg`
- - Headers of getMetadataTemplateGlobal method
+- queryParams `GetGlobalMetadataTemplatesQueryParamsArg`
+ - Query parameters of getGlobalMetadataTemplates method
+- headers `GetGlobalMetadataTemplatesHeadersArg`
+ - Headers of getGlobalMetadataTemplates method
- cancellationToken `undefined | CancellationToken`
- Token used for request cancellation.
@@ -217,7 +237,7 @@ and their corresponding schema.
Used to retrieve all metadata templates created to be used specifically within
the user's enterprise
-This operation is performed by calling function `getMetadataTemplateEnterprise`.
+This operation is performed by calling function `getEnterpriseMetadataTemplates`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-metadata-templates-enterprise/).
@@ -225,15 +245,15 @@ See the endpoint docs at
```ts
-await client.metadataTemplates.getMetadataTemplateEnterprise();
+await client.metadataTemplates.getEnterpriseMetadataTemplates();
```
### Arguments
-- queryParams `GetMetadataTemplateEnterpriseQueryParamsArg`
- - Query parameters of getMetadataTemplateEnterprise method
-- headers `GetMetadataTemplateEnterpriseHeadersArg`
- - Headers of getMetadataTemplateEnterprise method
+- queryParams `GetEnterpriseMetadataTemplatesQueryParamsArg`
+ - Query parameters of getEnterpriseMetadataTemplates method
+- headers `GetEnterpriseMetadataTemplatesHeadersArg`
+ - Headers of getEnterpriseMetadataTemplates method
- cancellationToken `undefined | CancellationToken`
- Token used for request cancellation.
@@ -249,7 +269,7 @@ and their corresponding schema.
Creates a new metadata template that can be applied to
files and folders.
-This operation is performed by calling function `createMetadataTemplateSchema`.
+This operation is performed by calling function `createMetadataTemplate`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/post-metadata-templates-schema/).
@@ -257,26 +277,26 @@ See the endpoint docs at
```ts
-await client.metadataTemplates.createMetadataTemplateSchema({
+await client.metadataTemplates.createMetadataTemplate({
scope: 'enterprise',
displayName: templateKey,
templateKey: templateKey,
fields: [
{
- type: 'string' as CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField,
+ type: 'string' as CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField,
key: 'testName',
displayName: 'testName',
- } satisfies CreateMetadataTemplateSchemaRequestBodyArgFieldsField,
+ } satisfies CreateMetadataTemplateRequestBodyArgFieldsField,
],
-} satisfies CreateMetadataTemplateSchemaRequestBodyArg);
+} satisfies CreateMetadataTemplateRequestBodyArg);
```
### Arguments
-- requestBody `CreateMetadataTemplateSchemaRequestBodyArg`
- - Request body of createMetadataTemplateSchema method
-- headers `CreateMetadataTemplateSchemaHeadersArg`
- - Headers of createMetadataTemplateSchema method
+- requestBody `CreateMetadataTemplateRequestBodyArg`
+ - Request body of createMetadataTemplate method
+- headers `CreateMetadataTemplateHeadersArg`
+ - Headers of createMetadataTemplate method
- cancellationToken `undefined | CancellationToken`
- Token used for request cancellation.
diff --git a/docs/shieldInformationBarriers.md b/docs/shieldInformationBarriers.md
index 8ca7d328..2f164447 100644
--- a/docs/shieldInformationBarriers.md
+++ b/docs/shieldInformationBarriers.md
@@ -14,7 +14,13 @@ This operation is performed by calling function `getShieldInformationBarrierById
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-shield-information-barriers-id/).
-_Currently we don't have an example for calling `getShieldInformationBarrierById` in integration tests_
+
+
+```ts
+await client.shieldInformationBarriers.getShieldInformationBarrierById(
+ barrierId
+);
+```
### Arguments
@@ -40,7 +46,17 @@ This operation is performed by calling function `createShieldInformationBarrierC
See the endpoint docs at
[API Reference](https://developer.box.com/reference/post-shield-information-barriers-change-status/).
-_Currently we don't have an example for calling `createShieldInformationBarrierChangeStatus` in integration tests_
+
+
+```ts
+await client.shieldInformationBarriers.createShieldInformationBarrierChangeStatus(
+ {
+ id: barrierId,
+ status:
+ 'disabled' as CreateShieldInformationBarrierChangeStatusRequestBodyArgStatusField,
+ } satisfies CreateShieldInformationBarrierChangeStatusRequestBodyArg
+);
+```
### Arguments
@@ -67,7 +83,11 @@ This operation is performed by calling function `getShieldInformationBarriers`.
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-shield-information-barriers/).
-_Currently we don't have an example for calling `getShieldInformationBarriers` in integration tests_
+
+
+```ts
+await client.shieldInformationBarriers.getShieldInformationBarriers();
+```
### Arguments
@@ -97,7 +117,16 @@ This operation is performed by calling function `createShieldInformationBarrier`
See the endpoint docs at
[API Reference](https://developer.box.com/reference/post-shield-information-barriers/).
-_Currently we don't have an example for calling `createShieldInformationBarrier` in integration tests_
+
+
+```ts
+await client.shieldInformationBarriers.createShieldInformationBarrier({
+ enterprise: {
+ id: enterpriseId,
+ type: 'enterprise' as EnterpriseBaseTypeField,
+ } satisfies EnterpriseBase,
+} satisfies CreateShieldInformationBarrierRequestBodyArg);
+```
### Arguments
diff --git a/example.html b/example.html
new file mode 100644
index 00000000..6d71466b
--- /dev/null
+++ b/example.html
@@ -0,0 +1,36 @@
+
+
+
+
+ Sample Website
+
+
+
+
+
+
+
+
+
+
diff --git a/package.json b/package.json
index 4482164e..1fd7e4b7 100644
--- a/package.json
+++ b/package.json
@@ -13,9 +13,10 @@
"engines": {
"node": ">=16.0.0"
},
- "main": "./lib/client.generated.js",
+ "main": "./lib/index.js",
"scripts": {
"build": "tsc",
+ "postbuild": "rollup -c",
"start": "echo \"Error: no start specified\" && exit 1",
"test": "jest"
},
@@ -26,11 +27,16 @@
},
"dependencies": {
"form-data": "^4.0.0",
- "jsonwebtoken": "^9.0.0",
"node-fetch": "^2.6.3",
+ "buffer": "^6.0.3",
+ "jsonwebtoken": "^9.0.0",
+ "tslib": "^2.6.2",
"uuid": "^9.0.0"
},
"devDependencies": {
+ "@rollup/plugin-commonjs": "^25.0.7",
+ "@rollup/plugin-node-resolve": "^15.2.3",
+ "@rollup/plugin-typescript": "^11.1.5",
"@types/jest": "^29.5.1",
"@types/jsonwebtoken": "^9.0.1",
"@types/node": "*",
@@ -38,7 +44,8 @@
"@types/uuid": "^9.0.1",
"jest": "^29.5.0",
"ts-jest": "^29.1.0",
- "typescript": "*"
+ "typescript": "*",
+ "rollup": "^4.4.0"
},
"files": [
"lib"
diff --git a/rollup.config.js b/rollup.config.js
new file mode 100644
index 00000000..6c1db3f7
--- /dev/null
+++ b/rollup.config.js
@@ -0,0 +1,20 @@
+exports.default = {
+ input: 'src/index.ts',
+ output: {
+ file: 'lib/bundle.js',
+ format: 'umd',
+ name: 'box-typescript-sdk-gen',
+ sourcemap: true,
+ exports: 'named',
+ },
+ plugins: [
+ require('@rollup/plugin-node-resolve')({
+ browser: true, // Instruct the plugin to use the "browser" field in package.json
+ preferBuiltins: false, // Do not prefer built-in modules over npm packages
+ }), // Resolves node modules
+ require('@rollup/plugin-commonjs')(), // Converts CommonJS modules to ES6, necessary for some npm packages
+ require('@rollup/plugin-typescript')({
+ tsconfig: './tsconfig.rollup.json',
+ }), // Compiles TypeScript
+ ],
+};
diff --git a/src/fetch.ts b/src/fetch.ts
index 2408fb9f..dc608e71 100644
--- a/src/fetch.ts
+++ b/src/fetch.ts
@@ -1,6 +1,5 @@
-import FormData from 'form-data';
import nodeFetch, { RequestInit } from 'node-fetch';
-import { Readable } from 'stream';
+import type { Readable } from 'stream';
import { Authentication } from './auth';
import {
jsonToSerializedData,
@@ -9,10 +8,17 @@ import {
SerializedData,
} from './json';
import { getRetryTimeout, NetworkSession } from './network';
-import { ByteStream, CancellationToken, isBrowser } from './utils';
+import {
+ ByteStream,
+ CancellationToken,
+ generateByteStreamFromBuffer,
+ isBrowser,
+} from './utils';
const sdkVersion = '0.1.0';
-export const userAgentHeader = `Box JavaScript generated SDK v${sdkVersion} (Node ${process.version})`;
+export const userAgentHeader = `Box JavaScript generated SDK v${sdkVersion} (${
+ isBrowser() ? navigator.userAgent : `Node ${process.version}`
+})`;
export const xBoxUaHeader = constructBoxUAHeader();
export interface MultipartItem {
@@ -113,6 +119,9 @@ async function createFetchOptions(options: FetchOptions): Promise {
body: Readable | string;
}> => {
if (options.multipartData) {
+ const FormData = isBrowser()
+ ? window.FormData
+ : eval('require')('form-data');
const formData = new FormData();
for (const item of options.multipartData) {
if (item.fileStream) {
@@ -248,13 +257,7 @@ export async function fetch(
return void 0;
})();
- const content = new Readable({
- read() {
- this.push(new Uint8Array(responseBytesBuffer));
- this.push(null);
- },
- });
-
+ const content = generateByteStreamFromBuffer(responseBytesBuffer);
const { status } = response;
return { status, data, content };
@@ -275,11 +278,11 @@ async function calculateMD5Hash(data: string | Buffer): Promise {
.map((b) => b.toString(16).padStart(2, '0'))
.join('');
return hashHex;
- } else {
- // Node environment
- createHash = eval('require')('crypto').createHash;
- return createHash('sha1').update(data).digest('hex');
}
+
+ // Node environment
+ createHash = eval('require')('crypto').createHash;
+ return createHash('sha1').update(data).digest('hex');
}
async function readStream(fileStream: Readable): Promise {
@@ -296,7 +299,9 @@ async function readStream(fileStream: Readable): Promise {
function constructBoxUAHeader() {
const analyticsIdentifiers = {
agent: `box-javascript-generated-sdk/${sdkVersion}`,
- env: `Node/${process.version.replace('v', '')}`,
+ env: isBrowser()
+ ? navigator.userAgent
+ : `Node/${process.version.replace('v', '')}`,
} as Record;
return Object.keys(analyticsIdentifiers)
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 00000000..72b60551
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,6 @@
+export { BoxCcgAuth, CcgConfig } from './ccgAuth';
+export { BoxClient } from './client.generated';
+export { BoxDeveloperTokenAuth } from './developerTokenAuth.generated';
+export type { FetchOptions, FetchResponse, MultipartItem } from './fetch';
+export { BoxJwtAuth, JwtConfig } from './jwtAuth';
+export { BoxOAuth } from './oauth.generated';
diff --git a/src/jwtAuth.ts b/src/jwtAuth.ts
index 0f95ef1c..086d32eb 100644
--- a/src/jwtAuth.ts
+++ b/src/jwtAuth.ts
@@ -1,17 +1,16 @@
+import type * as jwt from 'jsonwebtoken';
+import { v4 as uuidv4 } from 'uuid';
+import { Authentication } from './auth';
import {
TokenRequest,
TokenRequestBoxSubjectType,
TokenRequestGrantType,
} from './authSchemas.js';
-import { AccessToken, deserializeAccessToken } from './schemas.generated.js';
-import { readFileSync } from 'fs';
-import jwt from 'jsonwebtoken';
-import { v4 as uuid } from 'uuid';
-import { Authentication } from './auth';
+import { FetchResponse, fetch } from './fetch.js';
import { NetworkSession } from './network';
-import { fetch, FetchResponse } from './fetch.js';
+import { AccessToken, deserializeAccessToken } from './schemas.generated.js';
import { InMemoryTokenStorage, TokenStorage } from './tokenStorage.generated';
-import { jsonToSerializedData } from './json.js';
+import { isBrowser } from './utils.js';
const BOX_JWT_AUDIENCE = 'https://api.box.com/oauth2/token';
const BOX_JWT_GRANT_TYPE: TokenRequestGrantType =
@@ -134,6 +133,11 @@ export class JwtConfig {
configFilePath: string,
tokenStorage?: TokenStorage
): JwtConfig {
+ if (isBrowser()) {
+ throw new Error('JWT is unavailble in browser environment');
+ }
+
+ const { readFileSync } = eval('require')('fs');
const config = readFileSync(configFilePath, 'utf8');
return JwtConfig.fromConfigJsonString(config, tokenStorage);
}
@@ -183,6 +187,10 @@ export class BoxJwtAuth implements Authentication {
* @returns {Promise} A promise resolving to the access token.
*/
async refreshToken(networkSession?: NetworkSession): Promise {
+ if (isBrowser()) {
+ throw new Error('JWT is unavailble in browser environment');
+ }
+
const expInSec = Math.floor(Date.now() / 1000) + 30;
const claims = {
exp: expInSec,
@@ -193,7 +201,7 @@ export class BoxJwtAuth implements Authentication {
audience: BOX_JWT_AUDIENCE,
subject: this.subjectId,
issuer: this.config.clientId,
- jwtid: uuid(),
+ jwtid: uuidv4(),
keyid: this.config.jwtKeyId,
};
const keyParams = {
@@ -201,7 +209,11 @@ export class BoxJwtAuth implements Authentication {
passphrase: this.config.privateKeyPassphrase,
};
- const assertion = jwt.sign(claims, keyParams, jwtOptions);
+ const assertion = eval('require')('jsonwebtoken').sign(
+ claims,
+ keyParams,
+ jwtOptions
+ );
const requestBody: TokenRequest = {
grant_type: BOX_JWT_GRANT_TYPE,
diff --git a/src/managers/metadataTemplates.generated.ts b/src/managers/metadataTemplates.generated.ts
index 55f08288..1e27394a 100644
--- a/src/managers/metadataTemplates.generated.ts
+++ b/src/managers/metadataTemplates.generated.ts
@@ -24,36 +24,38 @@ import { sdIsNumber } from '../json.js';
import { sdIsString } from '../json.js';
import { sdIsList } from '../json.js';
import { sdIsMap } from '../json.js';
-export interface GetMetadataTemplatesQueryParamsArg {
+export interface GetMetadataTemplatesByInstanceIdQueryParamsArg {
readonly metadataInstanceId: string;
}
-export class GetMetadataTemplatesHeadersArg {
+export class GetMetadataTemplatesByInstanceIdHeadersArg {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields:
- | Omit
- | Partial>
+ | Omit
+ | Partial<
+ Pick
+ >
) {
Object.assign(this, fields);
}
}
-export type GetMetadataTemplateSchemaScopeArg = 'global' | 'enterprise';
-export class GetMetadataTemplateSchemaHeadersArg {
+export type GetMetadataTemplateScopeArg = 'global' | 'enterprise';
+export class GetMetadataTemplateHeadersArg {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields:
- | Omit
- | Partial>
+ | Omit
+ | Partial>
) {
Object.assign(this, fields);
}
}
-export type UpdateMetadataTemplateSchemaScopeArg = 'global' | 'enterprise';
-export type UpdateMetadataTemplateSchemaRequestBodyArgOpField =
+export type UpdateMetadataTemplateScopeArg = 'global' | 'enterprise';
+export type UpdateMetadataTemplateRequestBodyArgOpField =
| 'editTemplate'
| 'addField'
| 'reorderFields'
@@ -67,8 +69,8 @@ export type UpdateMetadataTemplateSchemaRequestBodyArgOpField =
| 'removeEnumOption'
| 'editMultiSelectOption'
| 'removeMultiSelectOption';
-export interface UpdateMetadataTemplateSchemaRequestBodyArg {
- readonly op: UpdateMetadataTemplateSchemaRequestBodyArgOpField;
+export interface UpdateMetadataTemplateRequestBodyArg {
+ readonly op: UpdateMetadataTemplateRequestBodyArgOpField;
readonly data?: {
readonly [key: string]: string;
};
@@ -79,27 +81,27 @@ export interface UpdateMetadataTemplateSchemaRequestBodyArg {
readonly multiSelectOptionKey?: string;
readonly multiSelectOptionKeys?: readonly string[];
}
-export class UpdateMetadataTemplateSchemaHeadersArg {
+export class UpdateMetadataTemplateHeadersArg {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields:
- | Omit
- | Partial>
+ | Omit
+ | Partial>
) {
Object.assign(this, fields);
}
}
-export type DeleteMetadataTemplateSchemaScopeArg = 'global' | 'enterprise';
-export class DeleteMetadataTemplateSchemaHeadersArg {
+export type DeleteMetadataTemplateScopeArg = 'global' | 'enterprise';
+export class DeleteMetadataTemplateHeadersArg {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields:
- | Omit
- | Partial>
+ | Omit
+ | Partial>
) {
Object.assign(this, fields);
}
@@ -116,71 +118,71 @@ export class GetMetadataTemplateByIdHeadersArg {
Object.assign(this, fields);
}
}
-export interface GetMetadataTemplateGlobalQueryParamsArg {
+export interface GetGlobalMetadataTemplatesQueryParamsArg {
readonly marker?: string;
readonly limit?: number;
}
-export class GetMetadataTemplateGlobalHeadersArg {
+export class GetGlobalMetadataTemplatesHeadersArg {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields:
- | Omit
- | Partial>
+ | Omit
+ | Partial>
) {
Object.assign(this, fields);
}
}
-export interface GetMetadataTemplateEnterpriseQueryParamsArg {
+export interface GetEnterpriseMetadataTemplatesQueryParamsArg {
readonly marker?: string;
readonly limit?: number;
}
-export class GetMetadataTemplateEnterpriseHeadersArg {
+export class GetEnterpriseMetadataTemplatesHeadersArg {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields:
- | Omit
- | Partial>
+ | Omit
+ | Partial>
) {
Object.assign(this, fields);
}
}
-export type CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField =
+export type CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField =
| 'string'
| 'float'
| 'date'
| 'enum'
| 'multiSelect';
-export interface CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField {
+export interface CreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField {
readonly key: string;
}
-export interface CreateMetadataTemplateSchemaRequestBodyArgFieldsField {
- readonly type: CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField;
+export interface CreateMetadataTemplateRequestBodyArgFieldsField {
+ readonly type: CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField;
readonly key: string;
readonly displayName: string;
readonly description?: string;
readonly hidden?: boolean;
- readonly options?: readonly CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField[];
+ readonly options?: readonly CreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField[];
}
-export interface CreateMetadataTemplateSchemaRequestBodyArg {
+export interface CreateMetadataTemplateRequestBodyArg {
readonly scope: string;
readonly templateKey?: string;
readonly displayName: string;
readonly hidden?: boolean;
- readonly fields?: readonly CreateMetadataTemplateSchemaRequestBodyArgFieldsField[];
+ readonly fields?: readonly CreateMetadataTemplateRequestBodyArgFieldsField[];
readonly copyInstanceOnItemCopy?: boolean;
}
-export class CreateMetadataTemplateSchemaHeadersArg {
+export class CreateMetadataTemplateHeadersArg {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields:
- | Omit
- | Partial>
+ | Omit
+ | Partial>
) {
Object.assign(this, fields);
}
@@ -191,21 +193,21 @@ export class MetadataTemplatesManager {
constructor(
fields: Omit<
MetadataTemplatesManager,
- | 'getMetadataTemplates'
- | 'getMetadataTemplateSchema'
- | 'updateMetadataTemplateSchema'
- | 'deleteMetadataTemplateSchema'
+ | 'getMetadataTemplatesByInstanceId'
+ | 'getMetadataTemplate'
+ | 'updateMetadataTemplate'
+ | 'deleteMetadataTemplate'
| 'getMetadataTemplateById'
- | 'getMetadataTemplateGlobal'
- | 'getMetadataTemplateEnterprise'
- | 'createMetadataTemplateSchema'
+ | 'getGlobalMetadataTemplates'
+ | 'getEnterpriseMetadataTemplates'
+ | 'createMetadataTemplate'
>
) {
Object.assign(this, fields);
}
- async getMetadataTemplates(
- queryParams: GetMetadataTemplatesQueryParamsArg,
- headers: GetMetadataTemplatesHeadersArg = new GetMetadataTemplatesHeadersArg(
+ async getMetadataTemplatesByInstanceId(
+ queryParams: GetMetadataTemplatesByInstanceIdQueryParamsArg,
+ headers: GetMetadataTemplatesByInstanceIdHeadersArg = new GetMetadataTemplatesByInstanceIdHeadersArg(
{}
),
cancellationToken?: CancellationToken
@@ -234,10 +236,10 @@ export class MetadataTemplatesManager {
)) as FetchResponse;
return deserializeMetadataTemplates(response.data);
}
- async getMetadataTemplateSchema(
- scope: GetMetadataTemplateSchemaScopeArg,
+ async getMetadataTemplate(
+ scope: GetMetadataTemplateScopeArg,
templateKey: string,
- headers: GetMetadataTemplateSchemaHeadersArg = new GetMetadataTemplateSchemaHeadersArg(
+ headers: GetMetadataTemplateHeadersArg = new GetMetadataTemplateHeadersArg(
{}
),
cancellationToken?: CancellationToken
@@ -264,11 +266,11 @@ export class MetadataTemplatesManager {
)) as FetchResponse;
return deserializeMetadataTemplate(response.data);
}
- async updateMetadataTemplateSchema(
- scope: UpdateMetadataTemplateSchemaScopeArg,
+ async updateMetadataTemplate(
+ scope: UpdateMetadataTemplateScopeArg,
templateKey: string,
- requestBody: readonly UpdateMetadataTemplateSchemaRequestBodyArg[],
- headers: UpdateMetadataTemplateSchemaHeadersArg = new UpdateMetadataTemplateSchemaHeadersArg(
+ requestBody: readonly UpdateMetadataTemplateRequestBodyArg[],
+ headers: UpdateMetadataTemplateHeadersArg = new UpdateMetadataTemplateHeadersArg(
{}
),
cancellationToken?: CancellationToken
@@ -288,7 +290,7 @@ export class MetadataTemplatesManager {
method: 'PUT',
headers: headersMap,
data: requestBody.map(
- serializeUpdateMetadataTemplateSchemaRequestBodyArg
+ serializeUpdateMetadataTemplateRequestBodyArg
) as readonly any[],
contentType: 'application/json-patch+json',
responseFormat: 'json',
@@ -299,10 +301,10 @@ export class MetadataTemplatesManager {
)) as FetchResponse;
return deserializeMetadataTemplate(response.data);
}
- async deleteMetadataTemplateSchema(
- scope: DeleteMetadataTemplateSchemaScopeArg,
+ async deleteMetadataTemplate(
+ scope: DeleteMetadataTemplateScopeArg,
templateKey: string,
- headers: DeleteMetadataTemplateSchemaHeadersArg = new DeleteMetadataTemplateSchemaHeadersArg(
+ headers: DeleteMetadataTemplateHeadersArg = new DeleteMetadataTemplateHeadersArg(
{}
),
cancellationToken?: CancellationToken
@@ -355,9 +357,9 @@ export class MetadataTemplatesManager {
)) as FetchResponse;
return deserializeMetadataTemplate(response.data);
}
- async getMetadataTemplateGlobal(
- queryParams: GetMetadataTemplateGlobalQueryParamsArg = {} satisfies GetMetadataTemplateGlobalQueryParamsArg,
- headers: GetMetadataTemplateGlobalHeadersArg = new GetMetadataTemplateGlobalHeadersArg(
+ async getGlobalMetadataTemplates(
+ queryParams: GetGlobalMetadataTemplatesQueryParamsArg = {} satisfies GetGlobalMetadataTemplatesQueryParamsArg,
+ headers: GetGlobalMetadataTemplatesHeadersArg = new GetGlobalMetadataTemplatesHeadersArg(
{}
),
cancellationToken?: CancellationToken
@@ -385,9 +387,9 @@ export class MetadataTemplatesManager {
)) as FetchResponse;
return deserializeMetadataTemplates(response.data);
}
- async getMetadataTemplateEnterprise(
- queryParams: GetMetadataTemplateEnterpriseQueryParamsArg = {} satisfies GetMetadataTemplateEnterpriseQueryParamsArg,
- headers: GetMetadataTemplateEnterpriseHeadersArg = new GetMetadataTemplateEnterpriseHeadersArg(
+ async getEnterpriseMetadataTemplates(
+ queryParams: GetEnterpriseMetadataTemplatesQueryParamsArg = {} satisfies GetEnterpriseMetadataTemplatesQueryParamsArg,
+ headers: GetEnterpriseMetadataTemplatesHeadersArg = new GetEnterpriseMetadataTemplatesHeadersArg(
{}
),
cancellationToken?: CancellationToken
@@ -417,9 +419,9 @@ export class MetadataTemplatesManager {
)) as FetchResponse;
return deserializeMetadataTemplates(response.data);
}
- async createMetadataTemplateSchema(
- requestBody: CreateMetadataTemplateSchemaRequestBodyArg,
- headers: CreateMetadataTemplateSchemaHeadersArg = new CreateMetadataTemplateSchemaHeadersArg(
+ async createMetadataTemplate(
+ requestBody: CreateMetadataTemplateRequestBodyArg,
+ headers: CreateMetadataTemplateHeadersArg = new CreateMetadataTemplateHeadersArg(
{}
),
cancellationToken?: CancellationToken
@@ -432,7 +434,7 @@ export class MetadataTemplatesManager {
{
method: 'POST',
headers: headersMap,
- data: serializeCreateMetadataTemplateSchemaRequestBodyArg(requestBody),
+ data: serializeCreateMetadataTemplateRequestBodyArg(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
@@ -443,16 +445,16 @@ export class MetadataTemplatesManager {
return deserializeMetadataTemplate(response.data);
}
}
-export function serializeGetMetadataTemplateSchemaScopeArg(
- val: GetMetadataTemplateSchemaScopeArg
+export function serializeGetMetadataTemplateScopeArg(
+ val: GetMetadataTemplateScopeArg
): SerializedData {
return val;
}
-export function deserializeGetMetadataTemplateSchemaScopeArg(
+export function deserializeGetMetadataTemplateScopeArg(
val: any
-): GetMetadataTemplateSchemaScopeArg {
+): GetMetadataTemplateScopeArg {
if (!sdIsString(val)) {
- throw 'Expecting a string for "GetMetadataTemplateSchemaScopeArg"';
+ throw 'Expecting a string for "GetMetadataTemplateScopeArg"';
}
if (val == 'global') {
return 'global';
@@ -462,16 +464,16 @@ export function deserializeGetMetadataTemplateSchemaScopeArg(
}
throw ''.concat('Invalid value: ', val) as string;
}
-export function serializeUpdateMetadataTemplateSchemaScopeArg(
- val: UpdateMetadataTemplateSchemaScopeArg
+export function serializeUpdateMetadataTemplateScopeArg(
+ val: UpdateMetadataTemplateScopeArg
): SerializedData {
return val;
}
-export function deserializeUpdateMetadataTemplateSchemaScopeArg(
+export function deserializeUpdateMetadataTemplateScopeArg(
val: any
-): UpdateMetadataTemplateSchemaScopeArg {
+): UpdateMetadataTemplateScopeArg {
if (!sdIsString(val)) {
- throw 'Expecting a string for "UpdateMetadataTemplateSchemaScopeArg"';
+ throw 'Expecting a string for "UpdateMetadataTemplateScopeArg"';
}
if (val == 'global') {
return 'global';
@@ -481,16 +483,16 @@ export function deserializeUpdateMetadataTemplateSchemaScopeArg(
}
throw ''.concat('Invalid value: ', val) as string;
}
-export function serializeUpdateMetadataTemplateSchemaRequestBodyArgOpField(
- val: UpdateMetadataTemplateSchemaRequestBodyArgOpField
+export function serializeUpdateMetadataTemplateRequestBodyArgOpField(
+ val: UpdateMetadataTemplateRequestBodyArgOpField
): SerializedData {
return val;
}
-export function deserializeUpdateMetadataTemplateSchemaRequestBodyArgOpField(
+export function deserializeUpdateMetadataTemplateRequestBodyArgOpField(
val: any
-): UpdateMetadataTemplateSchemaRequestBodyArgOpField {
+): UpdateMetadataTemplateRequestBodyArgOpField {
if (!sdIsString(val)) {
- throw 'Expecting a string for "UpdateMetadataTemplateSchemaRequestBodyArgOpField"';
+ throw 'Expecting a string for "UpdateMetadataTemplateRequestBodyArgOpField"';
}
if (val == 'editTemplate') {
return 'editTemplate';
@@ -533,11 +535,11 @@ export function deserializeUpdateMetadataTemplateSchemaRequestBodyArgOpField(
}
throw ''.concat('Invalid value: ', val) as string;
}
-export function serializeUpdateMetadataTemplateSchemaRequestBodyArg(
- val: UpdateMetadataTemplateSchemaRequestBodyArg
+export function serializeUpdateMetadataTemplateRequestBodyArg(
+ val: UpdateMetadataTemplateRequestBodyArg
): SerializedData {
return {
- ['op']: serializeUpdateMetadataTemplateSchemaRequestBodyArgOpField(val.op),
+ ['op']: serializeUpdateMetadataTemplateRequestBodyArgOpField(val.op),
['data']: val.data == void 0 ? void 0 : val.data,
['fieldKey']: val.fieldKey == void 0 ? void 0 : val.fieldKey,
['fieldKeys']:
@@ -563,11 +565,11 @@ export function serializeUpdateMetadataTemplateSchemaRequestBodyArg(
}) as readonly any[]),
};
}
-export function deserializeUpdateMetadataTemplateSchemaRequestBodyArg(
+export function deserializeUpdateMetadataTemplateRequestBodyArg(
val: any
-): UpdateMetadataTemplateSchemaRequestBodyArg {
- const op: UpdateMetadataTemplateSchemaRequestBodyArgOpField =
- deserializeUpdateMetadataTemplateSchemaRequestBodyArgOpField(val.op);
+): UpdateMetadataTemplateRequestBodyArg {
+ const op: UpdateMetadataTemplateRequestBodyArgOpField =
+ deserializeUpdateMetadataTemplateRequestBodyArgOpField(val.op);
const data:
| undefined
| {
@@ -612,18 +614,18 @@ export function deserializeUpdateMetadataTemplateSchemaRequestBodyArg(
enumOptionKeys: enumOptionKeys,
multiSelectOptionKey: multiSelectOptionKey,
multiSelectOptionKeys: multiSelectOptionKeys,
- } satisfies UpdateMetadataTemplateSchemaRequestBodyArg;
+ } satisfies UpdateMetadataTemplateRequestBodyArg;
}
-export function serializeDeleteMetadataTemplateSchemaScopeArg(
- val: DeleteMetadataTemplateSchemaScopeArg
+export function serializeDeleteMetadataTemplateScopeArg(
+ val: DeleteMetadataTemplateScopeArg
): SerializedData {
return val;
}
-export function deserializeDeleteMetadataTemplateSchemaScopeArg(
+export function deserializeDeleteMetadataTemplateScopeArg(
val: any
-): DeleteMetadataTemplateSchemaScopeArg {
+): DeleteMetadataTemplateScopeArg {
if (!sdIsString(val)) {
- throw 'Expecting a string for "DeleteMetadataTemplateSchemaScopeArg"';
+ throw 'Expecting a string for "DeleteMetadataTemplateScopeArg"';
}
if (val == 'global') {
return 'global';
@@ -633,16 +635,16 @@ export function deserializeDeleteMetadataTemplateSchemaScopeArg(
}
throw ''.concat('Invalid value: ', val) as string;
}
-export function serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField(
- val: CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField
+export function serializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField(
+ val: CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField
): SerializedData {
return val;
}
-export function deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField(
+export function deserializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField(
val: any
-): CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField {
+): CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField {
if (!sdIsString(val)) {
- throw 'Expecting a string for "CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField"';
+ throw 'Expecting a string for "CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField"';
}
if (val == 'string') {
return 'string';
@@ -661,27 +663,26 @@ export function deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField
}
throw ''.concat('Invalid value: ', val) as string;
}
-export function serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField(
- val: CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField
+export function serializeCreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField(
+ val: CreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField
): SerializedData {
return { ['key']: val.key };
}
-export function deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField(
+export function deserializeCreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField(
val: any
-): CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField {
+): CreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField {
const key: string = val.key;
return {
key: key,
- } satisfies CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField;
+ } satisfies CreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField;
}
-export function serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField(
- val: CreateMetadataTemplateSchemaRequestBodyArgFieldsField
+export function serializeCreateMetadataTemplateRequestBodyArgFieldsField(
+ val: CreateMetadataTemplateRequestBodyArgFieldsField
): SerializedData {
return {
- ['type']:
- serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField(
- val.type
- ),
+ ['type']: serializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField(
+ val.type
+ ),
['key']: val.key,
['displayName']: val.displayName,
['description']: val.description == void 0 ? void 0 : val.description,
@@ -690,19 +691,19 @@ export function serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField(
val.options == void 0
? void 0
: (val.options.map(function (
- item: CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField
+ item: CreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField
): any {
- return serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField(
+ return serializeCreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField(
item
);
}) as readonly any[]),
};
}
-export function deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField(
+export function deserializeCreateMetadataTemplateRequestBodyArgFieldsField(
val: any
-): CreateMetadataTemplateSchemaRequestBodyArgFieldsField {
- const type: CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField =
- deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField(
+): CreateMetadataTemplateRequestBodyArgFieldsField {
+ const type: CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField =
+ deserializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField(
val.type
);
const key: string = val.key;
@@ -713,12 +714,12 @@ export function deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField
val.hidden == void 0 ? void 0 : val.hidden;
const options:
| undefined
- | readonly CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField[] =
+ | readonly CreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField[] =
val.options == void 0
? void 0
: sdIsList(val.options)
? (val.options.map(function (itm: SerializedData): any {
- return deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldOptionsField(
+ return deserializeCreateMetadataTemplateRequestBodyArgFieldsFieldOptionsField(
itm
);
}) as readonly any[])
@@ -730,10 +731,10 @@ export function deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField
description: description,
hidden: hidden,
options: options,
- } satisfies CreateMetadataTemplateSchemaRequestBodyArgFieldsField;
+ } satisfies CreateMetadataTemplateRequestBodyArgFieldsField;
}
-export function serializeCreateMetadataTemplateSchemaRequestBodyArg(
- val: CreateMetadataTemplateSchemaRequestBodyArg
+export function serializeCreateMetadataTemplateRequestBodyArg(
+ val: CreateMetadataTemplateRequestBodyArg
): SerializedData {
return {
['scope']: val.scope,
@@ -744,9 +745,9 @@ export function serializeCreateMetadataTemplateSchemaRequestBodyArg(
val.fields == void 0
? void 0
: (val.fields.map(function (
- item: CreateMetadataTemplateSchemaRequestBodyArgFieldsField
+ item: CreateMetadataTemplateRequestBodyArgFieldsField
): any {
- return serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField(
+ return serializeCreateMetadataTemplateRequestBodyArgFieldsField(
item
);
}) as readonly any[]),
@@ -756,9 +757,9 @@ export function serializeCreateMetadataTemplateSchemaRequestBodyArg(
: val.copyInstanceOnItemCopy,
};
}
-export function deserializeCreateMetadataTemplateSchemaRequestBodyArg(
+export function deserializeCreateMetadataTemplateRequestBodyArg(
val: any
-): CreateMetadataTemplateSchemaRequestBodyArg {
+): CreateMetadataTemplateRequestBodyArg {
const scope: string = val.scope;
const templateKey: undefined | string =
val.templateKey == void 0 ? void 0 : val.templateKey;
@@ -767,12 +768,12 @@ export function deserializeCreateMetadataTemplateSchemaRequestBodyArg(
val.hidden == void 0 ? void 0 : val.hidden;
const fields:
| undefined
- | readonly CreateMetadataTemplateSchemaRequestBodyArgFieldsField[] =
+ | readonly CreateMetadataTemplateRequestBodyArgFieldsField[] =
val.fields == void 0
? void 0
: sdIsList(val.fields)
? (val.fields.map(function (itm: SerializedData): any {
- return deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField(
+ return deserializeCreateMetadataTemplateRequestBodyArgFieldsField(
itm
);
}) as readonly any[])
@@ -786,5 +787,5 @@ export function deserializeCreateMetadataTemplateSchemaRequestBodyArg(
hidden: hidden,
fields: fields,
copyInstanceOnItemCopy: copyInstanceOnItemCopy,
- } satisfies CreateMetadataTemplateSchemaRequestBodyArg;
+ } satisfies CreateMetadataTemplateRequestBodyArg;
}
diff --git a/src/schemas.generated.ts b/src/schemas.generated.ts
index 0d480c2e..fdda114e 100644
--- a/src/schemas.generated.ts
+++ b/src/schemas.generated.ts
@@ -410,13 +410,12 @@ export interface MetadataCascadePolicyParentField {
readonly type?: MetadataCascadePolicyParentFieldTypeField;
readonly id?: string;
}
-export type MetadataCascadePolicyScopeField = 'global' | 'enterprise_*';
export interface MetadataCascadePolicy {
- readonly id?: string;
- readonly type?: MetadataCascadePolicyTypeField;
+ readonly id: string;
+ readonly type: MetadataCascadePolicyTypeField;
readonly ownerEnterprise?: MetadataCascadePolicyOwnerEnterpriseField;
readonly parent?: MetadataCascadePolicyParentField;
- readonly scope?: MetadataCascadePolicyScopeField;
+ readonly scope?: string;
readonly templateKey?: string;
}
export interface MetadataCascadePolicies {
@@ -5479,34 +5478,12 @@ export function deserializeMetadataCascadePolicyParentField(
const id: undefined | string = val.id == void 0 ? void 0 : val.id;
return { type: type, id: id } satisfies MetadataCascadePolicyParentField;
}
-export function serializeMetadataCascadePolicyScopeField(
- val: MetadataCascadePolicyScopeField
-): SerializedData {
- return val;
-}
-export function deserializeMetadataCascadePolicyScopeField(
- val: any
-): MetadataCascadePolicyScopeField {
- if (!sdIsString(val)) {
- throw 'Expecting a string for "MetadataCascadePolicyScopeField"';
- }
- if (val == 'global') {
- return 'global';
- }
- if (val == 'enterprise_*') {
- return 'enterprise_*';
- }
- throw ''.concat('Invalid value: ', val) as string;
-}
export function serializeMetadataCascadePolicy(
val: MetadataCascadePolicy
): SerializedData {
return {
- ['id']: val.id == void 0 ? void 0 : val.id,
- ['type']:
- val.type == void 0
- ? void 0
- : serializeMetadataCascadePolicyTypeField(val.type),
+ ['id']: val.id,
+ ['type']: serializeMetadataCascadePolicyTypeField(val.type),
['owner_enterprise']:
val.ownerEnterprise == void 0
? void 0
@@ -5517,21 +5494,16 @@ export function serializeMetadataCascadePolicy(
val.parent == void 0
? void 0
: serializeMetadataCascadePolicyParentField(val.parent),
- ['scope']:
- val.scope == void 0
- ? void 0
- : serializeMetadataCascadePolicyScopeField(val.scope),
+ ['scope']: val.scope == void 0 ? void 0 : val.scope,
['templateKey']: val.templateKey == void 0 ? void 0 : val.templateKey,
};
}
export function deserializeMetadataCascadePolicy(
val: any
): MetadataCascadePolicy {
- const id: undefined | string = val.id == void 0 ? void 0 : val.id;
- const type: undefined | MetadataCascadePolicyTypeField =
- val.type == void 0
- ? void 0
- : deserializeMetadataCascadePolicyTypeField(val.type);
+ const id: string = val.id;
+ const type: MetadataCascadePolicyTypeField =
+ deserializeMetadataCascadePolicyTypeField(val.type);
const ownerEnterprise: undefined | MetadataCascadePolicyOwnerEnterpriseField =
val.owner_enterprise == void 0
? void 0
@@ -5542,10 +5514,7 @@ export function deserializeMetadataCascadePolicy(
val.parent == void 0
? void 0
: deserializeMetadataCascadePolicyParentField(val.parent);
- const scope: undefined | MetadataCascadePolicyScopeField =
- val.scope == void 0
- ? void 0
- : deserializeMetadataCascadePolicyScopeField(val.scope);
+ const scope: undefined | string = val.scope == void 0 ? void 0 : val.scope;
const templateKey: undefined | string =
val.templateKey == void 0 ? void 0 : val.templateKey;
return {
diff --git a/src/test/fileMetadata.generated.test.ts b/src/test/fileMetadata.generated.test.ts
index a153b378..0f0b615b 100644
--- a/src/test/fileMetadata.generated.test.ts
+++ b/src/test/fileMetadata.generated.test.ts
@@ -1,29 +1,37 @@
-import { serializeFiles } from '../schemas.generated.js';
-import { deserializeFiles } from '../schemas.generated.js';
-import { serializeUploadFileRequestBodyArgAttributesField } from '../managers/uploads.generated.js';
-import { deserializeUploadFileRequestBodyArgAttributesField } from '../managers/uploads.generated.js';
-import { serializeUploadFileRequestBodyArgAttributesFieldParentField } from '../managers/uploads.generated.js';
-import { deserializeUploadFileRequestBodyArgAttributesFieldParentField } from '../managers/uploads.generated.js';
+import { serializeFileFull } from '../schemas.generated.js';
+import { deserializeFileFull } from '../schemas.generated.js';
import { serializeMetadatas } from '../schemas.generated.js';
import { deserializeMetadatas } from '../schemas.generated.js';
import { serializeMetadataFull } from '../schemas.generated.js';
import { deserializeMetadataFull } from '../schemas.generated.js';
+import { serializeCreateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { deserializeCreateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { serializeGetFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { deserializeGetFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { serializeUpdateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { deserializeUpdateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
import { serializeUpdateFileMetadataByIdRequestBodyArg } from '../managers/fileMetadata.generated.js';
import { deserializeUpdateFileMetadataByIdRequestBodyArg } from '../managers/fileMetadata.generated.js';
import { serializeUpdateFileMetadataByIdRequestBodyArgOpField } from '../managers/fileMetadata.generated.js';
import { deserializeUpdateFileMetadataByIdRequestBodyArgOpField } from '../managers/fileMetadata.generated.js';
+import { serializeDeleteFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { deserializeDeleteFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
import { BoxClient } from '../client.generated.js';
-import { Files } from '../schemas.generated.js';
-import { UploadFileRequestBodyArg } from '../managers/uploads.generated.js';
-import { UploadFileRequestBodyArgAttributesField } from '../managers/uploads.generated.js';
-import { UploadFileRequestBodyArgAttributesFieldParentField } from '../managers/uploads.generated.js';
+import { FileFull } from '../schemas.generated.js';
import { Metadatas } from '../schemas.generated.js';
import { MetadataFull } from '../schemas.generated.js';
+import { CreateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { GetFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { UpdateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
import { UpdateFileMetadataByIdRequestBodyArg } from '../managers/fileMetadata.generated.js';
import { UpdateFileMetadataByIdRequestBodyArgOpField } from '../managers/fileMetadata.generated.js';
+import { DeleteFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
import { generateByteStream } from '../utils.js';
import { getUuid } from '../utils.js';
import { getDefaultClient } from './commons.generated.js';
+import { uploadNewFile } from './commons.generated.js';
+import { toString } from '../utils.js';
+import { sdToJson } from '../json.js';
import { SerializedData } from '../json.js';
import { sdIsEmpty } from '../json.js';
import { sdIsBoolean } from '../json.js';
@@ -33,51 +41,39 @@ import { sdIsList } from '../json.js';
import { sdIsMap } from '../json.js';
const client: any = getDefaultClient();
test('testFileMetadata', async function testFileMetadata(): Promise {
- const uploadedFiles: any = await client.uploads.uploadFile({
- attributes: {
- name: getUuid(),
- parent: {
- id: '0',
- } satisfies UploadFileRequestBodyArgAttributesFieldParentField,
- } satisfies UploadFileRequestBodyArgAttributesField,
- file: generateByteStream(256),
- } satisfies UploadFileRequestBodyArg);
- const fileId: any = uploadedFiles.entries![0].id;
- const fileMetadata: any = await client.fileMetadata.getFileMetadata(fileId);
+ const file: any = await uploadNewFile();
+ const fileMetadata: any = await client.fileMetadata.getFileMetadata(file.id);
if (!(fileMetadata.entries!.length == 0)) {
throw 'Assertion failed';
}
- const scope: any = 'global';
- const template: any = 'properties';
- const data: any = { ['abc']: 'xyz' };
const createdMetadata: any = await client.fileMetadata.createFileMetadataById(
- fileId,
- scope,
- template,
- data
+ file.id,
+ 'global' as CreateFileMetadataByIdScopeArg,
+ 'properties',
+ { ['abc']: 'xyz' }
);
- if (!(createdMetadata.template == template)) {
+ if (!((toString(createdMetadata.template) as string) == 'properties')) {
throw 'Assertion failed';
}
- if (!(createdMetadata.scope == scope)) {
+ if (!((toString(createdMetadata.scope) as string) == 'global')) {
throw 'Assertion failed';
}
if (!(createdMetadata.version == 0)) {
throw 'Assertion failed';
}
const receivedMetadata: any = await client.fileMetadata.getFileMetadataById(
- fileId,
- scope,
- template
+ file.id,
+ 'global' as GetFileMetadataByIdScopeArg,
+ 'properties'
);
- if (!(receivedMetadata.extraData!.abc == data.abc)) {
+ if (!(receivedMetadata.extraData!.abc == 'xyz')) {
throw 'Assertion failed';
}
const newValue: any = 'bar';
const updatedMetadata: any = await client.fileMetadata.updateFileMetadataById(
- fileId,
- scope,
- template,
+ file.id,
+ 'global' as UpdateFileMetadataByIdScopeArg,
+ 'properties',
[
{
op: 'replace' as UpdateFileMetadataByIdRequestBodyArgOpField,
@@ -87,14 +83,26 @@ test('testFileMetadata', async function testFileMetadata(): Promise {
]
);
const receivedUpdatedMetadata: any =
- await client.fileMetadata.getFileMetadataById(fileId, scope, template);
+ await client.fileMetadata.getFileMetadataById(
+ file.id,
+ 'global' as GetFileMetadataByIdScopeArg,
+ 'properties'
+ );
if (!(receivedUpdatedMetadata.extraData!.abc == newValue)) {
throw 'Assertion failed';
}
- await client.fileMetadata.deleteFileMetadataById(fileId, scope, template);
+ await client.fileMetadata.deleteFileMetadataById(
+ file.id,
+ 'global' as DeleteFileMetadataByIdScopeArg,
+ 'properties'
+ );
expect(async () => {
- await client.fileMetadata.getFileMetadataById(fileId, scope, template);
+ await client.fileMetadata.getFileMetadataById(
+ file.id,
+ 'global' as GetFileMetadataByIdScopeArg,
+ 'properties'
+ );
}).rejects.toThrow();
- await client.files.deleteFileById(fileId);
+ await client.files.deleteFileById(file.id);
});
export {};
diff --git a/src/test/folderMetadata.generated.test.ts b/src/test/folderMetadata.generated.test.ts
index 502578b5..4c909c05 100644
--- a/src/test/folderMetadata.generated.test.ts
+++ b/src/test/folderMetadata.generated.test.ts
@@ -1,27 +1,36 @@
import { serializeFolderFull } from '../schemas.generated.js';
import { deserializeFolderFull } from '../schemas.generated.js';
-import { serializeCreateFolderRequestBodyArg } from '../managers/folders.generated.js';
-import { deserializeCreateFolderRequestBodyArg } from '../managers/folders.generated.js';
-import { serializeCreateFolderRequestBodyArgParentField } from '../managers/folders.generated.js';
-import { deserializeCreateFolderRequestBodyArgParentField } from '../managers/folders.generated.js';
import { serializeMetadatas } from '../schemas.generated.js';
import { deserializeMetadatas } from '../schemas.generated.js';
import { serializeMetadataFull } from '../schemas.generated.js';
import { deserializeMetadataFull } from '../schemas.generated.js';
+import { serializeCreateFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { deserializeCreateFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { serializeGetFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { deserializeGetFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { serializeUpdateFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { deserializeUpdateFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
import { serializeUpdateFolderMetadataByIdRequestBodyArg } from '../managers/folderMetadata.generated.js';
import { deserializeUpdateFolderMetadataByIdRequestBodyArg } from '../managers/folderMetadata.generated.js';
import { serializeUpdateFolderMetadataByIdRequestBodyArgOpField } from '../managers/folderMetadata.generated.js';
import { deserializeUpdateFolderMetadataByIdRequestBodyArgOpField } from '../managers/folderMetadata.generated.js';
+import { serializeDeleteFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { deserializeDeleteFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
import { BoxClient } from '../client.generated.js';
import { FolderFull } from '../schemas.generated.js';
-import { CreateFolderRequestBodyArg } from '../managers/folders.generated.js';
-import { CreateFolderRequestBodyArgParentField } from '../managers/folders.generated.js';
import { Metadatas } from '../schemas.generated.js';
import { MetadataFull } from '../schemas.generated.js';
+import { CreateFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { GetFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
+import { UpdateFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
import { UpdateFolderMetadataByIdRequestBodyArg } from '../managers/folderMetadata.generated.js';
import { UpdateFolderMetadataByIdRequestBodyArgOpField } from '../managers/folderMetadata.generated.js';
+import { DeleteFolderMetadataByIdScopeArg } from '../managers/folderMetadata.generated.js';
import { getUuid } from '../utils.js';
import { getDefaultClient } from './commons.generated.js';
+import { createNewFolder } from './commons.generated.js';
+import { toString } from '../utils.js';
+import { sdToJson } from '../json.js';
import { SerializedData } from '../json.js';
import { sdIsEmpty } from '../json.js';
import { sdIsBoolean } from '../json.js';
@@ -31,30 +40,24 @@ import { sdIsList } from '../json.js';
import { sdIsMap } from '../json.js';
const client: any = getDefaultClient();
test('testFolderMetadata', async function testFolderMetadata(): Promise {
- const folder: any = await client.folders.createFolder({
- name: getUuid(),
- parent: { id: '0' } satisfies CreateFolderRequestBodyArgParentField,
- } satisfies CreateFolderRequestBodyArg);
+ const folder: any = await createNewFolder();
const folderMetadata: any = await client.folderMetadata.getFolderMetadata(
folder.id
);
if (!(folderMetadata.entries!.length == 0)) {
throw 'Assertion failed';
}
- const scope: any = 'global';
- const template: any = 'properties';
- const data: any = { ['abc']: 'xyz' };
const createdMetadata: any =
await client.folderMetadata.createFolderMetadataById(
folder.id,
- scope,
- template,
- data
+ 'global' as CreateFolderMetadataByIdScopeArg,
+ 'properties',
+ { ['abc']: 'xyz' }
);
- if (!(createdMetadata.template == template)) {
+ if (!((toString(createdMetadata.template) as string) == 'properties')) {
throw 'Assertion failed';
}
- if (!(createdMetadata.scope == scope)) {
+ if (!((toString(createdMetadata.scope) as string) == 'global')) {
throw 'Assertion failed';
}
if (!(createdMetadata.version == 0)) {
@@ -63,18 +66,18 @@ test('testFolderMetadata', async function testFolderMetadata(): Promise {
const receivedMetadata: any =
await client.folderMetadata.getFolderMetadataById(
folder.id,
- scope,
- template
+ 'global' as GetFolderMetadataByIdScopeArg,
+ 'properties'
);
- if (!(receivedMetadata.extraData!.abc == data.abc)) {
+ if (!(receivedMetadata.extraData!.abc == 'xyz')) {
throw 'Assertion failed';
}
const newValue: any = 'bar';
const updatedMetadata: any =
await client.folderMetadata.updateFolderMetadataById(
folder.id,
- scope,
- template,
+ 'global' as UpdateFolderMetadataByIdScopeArg,
+ 'properties',
[
{
op: 'replace' as UpdateFolderMetadataByIdRequestBodyArgOpField,
@@ -86,22 +89,22 @@ test('testFolderMetadata', async function testFolderMetadata(): Promise {
const receivedUpdatedMetadata: any =
await client.folderMetadata.getFolderMetadataById(
folder.id,
- scope,
- template
+ 'global' as GetFolderMetadataByIdScopeArg,
+ 'properties'
);
if (!(receivedUpdatedMetadata.extraData!.abc == newValue)) {
throw 'Assertion failed';
}
await client.folderMetadata.deleteFolderMetadataById(
folder.id,
- scope,
- template
+ 'global' as DeleteFolderMetadataByIdScopeArg,
+ 'properties'
);
expect(async () => {
await client.folderMetadata.getFolderMetadataById(
folder.id,
- scope,
- template
+ 'global' as GetFolderMetadataByIdScopeArg,
+ 'properties'
);
}).rejects.toThrow();
await client.folders.deleteFolderById(folder.id);
diff --git a/src/test/invites.generated.test.ts b/src/test/invites.generated.test.ts
new file mode 100644
index 00000000..e38da47c
--- /dev/null
+++ b/src/test/invites.generated.test.ts
@@ -0,0 +1,61 @@
+import { serializeUserFull } from '../schemas.generated.js';
+import { deserializeUserFull } from '../schemas.generated.js';
+import { serializeInvite } from '../schemas.generated.js';
+import { deserializeInvite } from '../schemas.generated.js';
+import { serializeCreateInviteRequestBodyArg } from '../managers/invites.generated.js';
+import { deserializeCreateInviteRequestBodyArg } from '../managers/invites.generated.js';
+import { serializeCreateInviteRequestBodyArgEnterpriseField } from '../managers/invites.generated.js';
+import { deserializeCreateInviteRequestBodyArgEnterpriseField } from '../managers/invites.generated.js';
+import { serializeCreateInviteRequestBodyArgActionableByField } from '../managers/invites.generated.js';
+import { deserializeCreateInviteRequestBodyArgActionableByField } from '../managers/invites.generated.js';
+import { BoxClient } from '../client.generated.js';
+import { UserFull } from '../schemas.generated.js';
+import { GetUserMeQueryParamsArg } from '../managers/users.generated.js';
+import { Invite } from '../schemas.generated.js';
+import { CreateInviteRequestBodyArg } from '../managers/invites.generated.js';
+import { CreateInviteRequestBodyArgEnterpriseField } from '../managers/invites.generated.js';
+import { CreateInviteRequestBodyArgActionableByField } from '../managers/invites.generated.js';
+import { getUuid } from '../utils.js';
+import { getEnvVar } from '../utils.js';
+import { getDefaultClientAsUser } from './commons.generated.js';
+import { toString } from '../utils.js';
+import { sdToJson } from '../json.js';
+import { SerializedData } from '../json.js';
+import { sdIsEmpty } from '../json.js';
+import { sdIsBoolean } from '../json.js';
+import { sdIsNumber } from '../json.js';
+import { sdIsString } from '../json.js';
+import { sdIsList } from '../json.js';
+import { sdIsMap } from '../json.js';
+test('testInvites', async function testInvites(): Promise {
+ const userId: string = getEnvVar('USER_ID');
+ const client: BoxClient = await getDefaultClientAsUser(userId);
+ const currentUser: UserFull = await client.users.getUserMe({
+ fields: ['enterprise' as ''],
+ } satisfies GetUserMeQueryParamsArg);
+ const email: string = getEnvVar('BOX_EXTERNAL_USER_EMAIL');
+ const invitation: Invite = await client.invites.createInvite({
+ enterprise: {
+ id: currentUser.enterprise!.id!,
+ } satisfies CreateInviteRequestBodyArgEnterpriseField,
+ actionableBy: {
+ login: email,
+ } satisfies CreateInviteRequestBodyArgActionableByField,
+ } satisfies CreateInviteRequestBodyArg);
+ if (!((toString(invitation.type) as string) == 'invite')) {
+ throw 'Assertion failed';
+ }
+ if (!(invitation.invitedTo!.id == currentUser.enterprise!.id)) {
+ throw 'Assertion failed';
+ }
+ if (!(invitation.actionableBy!.login == email)) {
+ throw 'Assertion failed';
+ }
+ const getInvitation: Invite = await client.invites.getInviteById(
+ invitation.id
+ );
+ if (!(getInvitation.id == invitation.id)) {
+ throw 'Assertion failed';
+ }
+});
+export {};
diff --git a/src/test/metadataTemplates.generated.test.ts b/src/test/metadataTemplates.generated.test.ts
index 6e735630..4579bba4 100644
--- a/src/test/metadataTemplates.generated.test.ts
+++ b/src/test/metadataTemplates.generated.test.ts
@@ -1,27 +1,50 @@
import { serializeMetadataTemplate } from '../schemas.generated.js';
import { deserializeMetadataTemplate } from '../schemas.generated.js';
-import { serializeCreateMetadataTemplateSchemaRequestBodyArg } from '../managers/metadataTemplates.generated.js';
-import { deserializeCreateMetadataTemplateSchemaRequestBodyArg } from '../managers/metadataTemplates.generated.js';
-import { serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
-import { deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
-import { serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
-import { deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
-import { serializeGetMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
-import { deserializeGetMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
+import { serializeCreateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { deserializeCreateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { serializeCreateMetadataTemplateRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
+import { deserializeCreateMetadataTemplateRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
+import { serializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
+import { deserializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
+import { serializeUpdateMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { deserializeUpdateMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { serializeUpdateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { deserializeUpdateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { serializeUpdateMetadataTemplateRequestBodyArgOpField } from '../managers/metadataTemplates.generated.js';
+import { deserializeUpdateMetadataTemplateRequestBodyArgOpField } from '../managers/metadataTemplates.generated.js';
+import { serializeGetMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { deserializeGetMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
import { serializeMetadataTemplates } from '../schemas.generated.js';
import { deserializeMetadataTemplates } from '../schemas.generated.js';
-import { serializeDeleteMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
-import { deserializeDeleteMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
+import { serializeDeleteMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { deserializeDeleteMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { serializeFileFull } from '../schemas.generated.js';
+import { deserializeFileFull } from '../schemas.generated.js';
+import { serializeMetadataFull } from '../schemas.generated.js';
+import { deserializeMetadataFull } from '../schemas.generated.js';
+import { serializeCreateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { deserializeCreateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { serializeDeleteFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { deserializeDeleteFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
import { BoxClient } from '../client.generated.js';
import { MetadataTemplate } from '../schemas.generated.js';
-import { CreateMetadataTemplateSchemaRequestBodyArg } from '../managers/metadataTemplates.generated.js';
-import { CreateMetadataTemplateSchemaRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
-import { CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
-import { GetMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
+import { CreateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { CreateMetadataTemplateRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
+import { CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
+import { UpdateMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { UpdateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { UpdateMetadataTemplateRequestBodyArgOpField } from '../managers/metadataTemplates.generated.js';
+import { GetMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
import { MetadataTemplates } from '../schemas.generated.js';
-import { DeleteMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
+import { DeleteMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { FileFull } from '../schemas.generated.js';
+import { MetadataFull } from '../schemas.generated.js';
+import { CreateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
+import { GetMetadataTemplatesByInstanceIdQueryParamsArg } from '../managers/metadataTemplates.generated.js';
+import { DeleteFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
import { getUuid } from '../utils.js';
import { getDefaultClient } from './commons.generated.js';
+import { uploadNewFile } from './commons.generated.js';
import { SerializedData } from '../json.js';
import { sdIsEmpty } from '../json.js';
import { sdIsBoolean } from '../json.js';
@@ -32,26 +55,25 @@ import { sdIsMap } from '../json.js';
const client: any = getDefaultClient();
test('testMetadataTemplates', async function testMetadataTemplates(): Promise {
const templateKey: any = ''.concat('key', getUuid()) as string;
- const template: any =
- await client.metadataTemplates.createMetadataTemplateSchema({
- scope: 'enterprise',
- displayName: templateKey,
- templateKey: templateKey,
- fields: [
- {
- type: 'string' as CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField,
- key: 'testName',
- displayName: 'testName',
- } satisfies CreateMetadataTemplateSchemaRequestBodyArgFieldsField,
- ],
- } satisfies CreateMetadataTemplateSchemaRequestBodyArg);
+ const template: any = await client.metadataTemplates.createMetadataTemplate({
+ scope: 'enterprise',
+ displayName: templateKey,
+ templateKey: templateKey,
+ fields: [
+ {
+ type: 'string' as CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField,
+ key: 'testName',
+ displayName: 'testName',
+ } satisfies CreateMetadataTemplateRequestBodyArgFieldsField,
+ ],
+ } satisfies CreateMetadataTemplateRequestBodyArg);
if (!(template.templateKey == templateKey)) {
throw 'Assertion failed';
}
if (!(template.displayName == templateKey)) {
throw 'Assertion failed';
}
- if (!(template.fields.length == 1)) {
+ if (!(template.fields!.length == 1)) {
throw 'Assertion failed';
}
if (!(template.fields![0].key == 'testName')) {
@@ -60,38 +82,105 @@ test('testMetadataTemplates', async function testMetadataTemplates(): Promise 0)) {
throw 'Assertion failed';
}
const globalMetadataTemplates: any =
- await client.metadataTemplates.getMetadataTemplateGlobal();
+ await client.metadataTemplates.getGlobalMetadataTemplates();
if (!(globalMetadataTemplates.entries!.length > 0)) {
throw 'Assertion failed';
}
- await client.metadataTemplates.deleteMetadataTemplateSchema(
- 'enterprise' as DeleteMetadataTemplateSchemaScopeArg,
+ await client.metadataTemplates.deleteMetadataTemplate(
+ 'enterprise' as DeleteMetadataTemplateScopeArg,
template.templateKey!
);
expect(async () => {
- await client.metadataTemplates.deleteMetadataTemplateSchema(
- 'enterprise' as DeleteMetadataTemplateSchemaScopeArg,
+ await client.metadataTemplates.deleteMetadataTemplate(
+ 'enterprise' as DeleteMetadataTemplateScopeArg,
template.templateKey!
);
}).rejects.toThrow();
});
+test('testGetMetadataTemplateByInstance', async function testGetMetadataTemplateByInstance(): Promise {
+ const file: any = await uploadNewFile();
+ const templateKey: any = ''.concat('key', getUuid()) as string;
+ const template: any = await client.metadataTemplates.createMetadataTemplate({
+ scope: 'enterprise',
+ displayName: templateKey,
+ templateKey: templateKey,
+ fields: [
+ {
+ type: 'string' as CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField,
+ key: 'testName',
+ displayName: 'testName',
+ } satisfies CreateMetadataTemplateRequestBodyArgFieldsField,
+ ],
+ } satisfies CreateMetadataTemplateRequestBodyArg);
+ const createdMetadataInstance: any =
+ await client.fileMetadata.createFileMetadataById(
+ file.id,
+ 'enterprise' as CreateFileMetadataByIdScopeArg,
+ templateKey,
+ { ['testName']: 'xyz' }
+ );
+ const metadataTemplates: any =
+ await client.metadataTemplates.getMetadataTemplatesByInstanceId({
+ metadataInstanceId: createdMetadataInstance.id!,
+ } satisfies GetMetadataTemplatesByInstanceIdQueryParamsArg);
+ if (!(metadataTemplates.entries!.length == 1)) {
+ throw 'Assertion failed';
+ }
+ if (!(metadataTemplates.entries![0].displayName == templateKey)) {
+ throw 'Assertion failed';
+ }
+ if (!(metadataTemplates.entries![0].templateKey == templateKey)) {
+ throw 'Assertion failed';
+ }
+ await client.fileMetadata.deleteFileMetadataById(
+ file.id,
+ 'enterprise' as DeleteFileMetadataByIdScopeArg,
+ templateKey
+ );
+ await client.metadataTemplates.deleteMetadataTemplate(
+ 'enterprise' as DeleteMetadataTemplateScopeArg,
+ template.templateKey!
+ );
+ await client.files.deleteFileById(file.id);
+});
export {};
diff --git a/src/test/search.generated.test.ts b/src/test/search.generated.test.ts
index 49ac96c4..9a6834ad 100644
--- a/src/test/search.generated.test.ts
+++ b/src/test/search.generated.test.ts
@@ -1,11 +1,11 @@
import { serializeMetadataTemplate } from '../schemas.generated.js';
import { deserializeMetadataTemplate } from '../schemas.generated.js';
-import { serializeCreateMetadataTemplateSchemaRequestBodyArg } from '../managers/metadataTemplates.generated.js';
-import { deserializeCreateMetadataTemplateSchemaRequestBodyArg } from '../managers/metadataTemplates.generated.js';
-import { serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
-import { deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
-import { serializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
-import { deserializeCreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
+import { serializeCreateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { deserializeCreateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { serializeCreateMetadataTemplateRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
+import { deserializeCreateMetadataTemplateRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
+import { serializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
+import { deserializeCreateMetadataTemplateRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
import { serializeFiles } from '../schemas.generated.js';
import { deserializeFiles } from '../schemas.generated.js';
import { serializeUploadFileRequestBodyArgAttributesField } from '../managers/uploads.generated.js';
@@ -22,8 +22,8 @@ import { serializeMetadataQueryResults } from '../schemas.generated.js';
import { deserializeMetadataQueryResults } from '../schemas.generated.js';
import { serializeMetadataQuery } from '../schemas.generated.js';
import { deserializeMetadataQuery } from '../schemas.generated.js';
-import { serializeDeleteMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
-import { deserializeDeleteMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
+import { serializeDeleteMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
+import { deserializeDeleteMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
import { serializeMetadataQueryIndices } from '../schemas.generated.js';
import { deserializeMetadataQueryIndices } from '../schemas.generated.js';
import { serializeGetMetadataQueryIndicesQueryParamsArgScopeField } from '../managers/search.generated.js';
@@ -34,9 +34,9 @@ import { serializeGetSearchQueryParamsArgTrashContentField } from '../managers/s
import { deserializeGetSearchQueryParamsArgTrashContentField } from '../managers/search.generated.js';
import { BoxClient } from '../client.generated.js';
import { MetadataTemplate } from '../schemas.generated.js';
-import { CreateMetadataTemplateSchemaRequestBodyArg } from '../managers/metadataTemplates.generated.js';
-import { CreateMetadataTemplateSchemaRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
-import { CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
+import { CreateMetadataTemplateRequestBodyArg } from '../managers/metadataTemplates.generated.js';
+import { CreateMetadataTemplateRequestBodyArgFieldsField } from '../managers/metadataTemplates.generated.js';
+import { CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField } from '../managers/metadataTemplates.generated.js';
import { Files } from '../schemas.generated.js';
import { UploadFileRequestBodyArg } from '../managers/uploads.generated.js';
import { UploadFileRequestBodyArgAttributesField } from '../managers/uploads.generated.js';
@@ -46,7 +46,7 @@ import { MetadataFull } from '../schemas.generated.js';
import { CreateFileMetadataByIdScopeArg } from '../managers/fileMetadata.generated.js';
import { MetadataQueryResults } from '../schemas.generated.js';
import { MetadataQuery } from '../schemas.generated.js';
-import { DeleteMetadataTemplateSchemaScopeArg } from '../managers/metadataTemplates.generated.js';
+import { DeleteMetadataTemplateScopeArg } from '../managers/metadataTemplates.generated.js';
import { MetadataQueryIndices } from '../schemas.generated.js';
import { GetMetadataQueryIndicesQueryParamsArg } from '../managers/search.generated.js';
import { GetMetadataQueryIndicesQueryParamsArgScopeField } from '../managers/search.generated.js';
@@ -68,19 +68,18 @@ import { sdIsMap } from '../json.js';
const client: any = getDefaultClient();
test('testCreateMetaDataQueryExecuteRead', async function testCreateMetaDataQueryExecuteRead(): Promise {
const templateKey: any = ''.concat('key', getUuid()) as string;
- const template: any =
- await client.metadataTemplates.createMetadataTemplateSchema({
- scope: 'enterprise',
- displayName: templateKey,
- templateKey: templateKey,
- fields: [
- {
- type: 'float' as CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField,
- key: 'testName',
- displayName: 'testName',
- } satisfies CreateMetadataTemplateSchemaRequestBodyArgFieldsField,
- ],
- } satisfies CreateMetadataTemplateSchemaRequestBodyArg);
+ const template: any = await client.metadataTemplates.createMetadataTemplate({
+ scope: 'enterprise',
+ displayName: templateKey,
+ templateKey: templateKey,
+ fields: [
+ {
+ type: 'float' as CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField,
+ key: 'testName',
+ displayName: 'testName',
+ } satisfies CreateMetadataTemplateRequestBodyArgFieldsField,
+ ],
+ } satisfies CreateMetadataTemplateRequestBodyArg);
if (!(template.templateKey == templateKey)) {
throw 'Assertion failed';
}
@@ -120,27 +119,26 @@ test('testCreateMetaDataQueryExecuteRead', async function testCreateMetaDataQuer
if (!(query.entries!.length >= 0)) {
throw 'Assertion failed';
}
- await client.metadataTemplates.deleteMetadataTemplateSchema(
- 'enterprise' as DeleteMetadataTemplateSchemaScopeArg,
+ await client.metadataTemplates.deleteMetadataTemplate(
+ 'enterprise' as DeleteMetadataTemplateScopeArg,
template.templateKey
);
await client.files.deleteFileById(file.id);
});
test('testGetMetadataQueryIndices', async function testGetMetadataQueryIndices(): Promise {
const templateKey: any = ''.concat('key', getUuid()) as string;
- const template: any =
- await client.metadataTemplates.createMetadataTemplateSchema({
- scope: 'enterprise',
- displayName: templateKey,
- templateKey: templateKey,
- fields: [
- {
- type: 'string' as CreateMetadataTemplateSchemaRequestBodyArgFieldsFieldTypeField,
- key: 'testName',
- displayName: 'testName',
- } satisfies CreateMetadataTemplateSchemaRequestBodyArgFieldsField,
- ],
- } satisfies CreateMetadataTemplateSchemaRequestBodyArg);
+ const template: any = await client.metadataTemplates.createMetadataTemplate({
+ scope: 'enterprise',
+ displayName: templateKey,
+ templateKey: templateKey,
+ fields: [
+ {
+ type: 'string' as CreateMetadataTemplateRequestBodyArgFieldsFieldTypeField,
+ key: 'testName',
+ displayName: 'testName',
+ } satisfies CreateMetadataTemplateRequestBodyArgFieldsField,
+ ],
+ } satisfies CreateMetadataTemplateRequestBodyArg);
if (!(template.templateKey == templateKey)) {
throw 'Assertion failed';
}
@@ -151,8 +149,8 @@ test('testGetMetadataQueryIndices', async function testGetMetadataQueryIndices()
if (!(indices.entries!.length >= 0)) {
throw 'Assertion failed';
}
- await client.metadataTemplates.deleteMetadataTemplateSchema(
- 'enterprise' as DeleteMetadataTemplateSchemaScopeArg,
+ await client.metadataTemplates.deleteMetadataTemplate(
+ 'enterprise' as DeleteMetadataTemplateScopeArg,
template.templateKey
);
});
diff --git a/src/test/shieldInformationBarriers.generated.test.ts b/src/test/shieldInformationBarriers.generated.test.ts
new file mode 100644
index 00000000..b1d54144
--- /dev/null
+++ b/src/test/shieldInformationBarriers.generated.test.ts
@@ -0,0 +1,93 @@
+import { serializeShieldInformationBarriers } from '../schemas.generated.js';
+import { deserializeShieldInformationBarriers } from '../schemas.generated.js';
+import { serializeCreateShieldInformationBarrierRequestBodyArg } from '../managers/shieldInformationBarriers.generated.js';
+import { deserializeCreateShieldInformationBarrierRequestBodyArg } from '../managers/shieldInformationBarriers.generated.js';
+import { serializeEnterpriseBase } from '../schemas.generated.js';
+import { deserializeEnterpriseBase } from '../schemas.generated.js';
+import { serializeEnterpriseBaseTypeField } from '../schemas.generated.js';
+import { deserializeEnterpriseBaseTypeField } from '../schemas.generated.js';
+import { serializeCreateShieldInformationBarrierChangeStatusRequestBodyArg } from '../managers/shieldInformationBarriers.generated.js';
+import { deserializeCreateShieldInformationBarrierChangeStatusRequestBodyArg } from '../managers/shieldInformationBarriers.generated.js';
+import { serializeCreateShieldInformationBarrierChangeStatusRequestBodyArgStatusField } from '../managers/shieldInformationBarriers.generated.js';
+import { deserializeCreateShieldInformationBarrierChangeStatusRequestBodyArgStatusField } from '../managers/shieldInformationBarriers.generated.js';
+import { serializeShieldInformationBarrier } from '../schemas.generated.js';
+import { deserializeShieldInformationBarrier } from '../schemas.generated.js';
+import { ShieldInformationBarriers } from '../schemas.generated.js';
+import { CreateShieldInformationBarrierRequestBodyArg } from '../managers/shieldInformationBarriers.generated.js';
+import { EnterpriseBase } from '../schemas.generated.js';
+import { EnterpriseBaseTypeField } from '../schemas.generated.js';
+import { CreateShieldInformationBarrierChangeStatusRequestBodyArg } from '../managers/shieldInformationBarriers.generated.js';
+import { CreateShieldInformationBarrierChangeStatusRequestBodyArgStatusField } from '../managers/shieldInformationBarriers.generated.js';
+import { getEnvVar } from '../utils.js';
+import { getDefaultClientAsUser } from './commons.generated.js';
+import { ShieldInformationBarrier } from '../schemas.generated.js';
+import { BoxClient } from '../client.generated.js';
+import { toString } from '../utils.js';
+import { sdToJson } from '../json.js';
+import { SerializedData } from '../json.js';
+import { sdIsEmpty } from '../json.js';
+import { sdIsBoolean } from '../json.js';
+import { sdIsNumber } from '../json.js';
+import { sdIsString } from '../json.js';
+import { sdIsList } from '../json.js';
+import { sdIsMap } from '../json.js';
+export async function getOrCreateShieldInformationBarrier(
+ client: BoxClient,
+ enterpriseId: string
+): Promise {
+ const barriers: ShieldInformationBarriers =
+ await client.shieldInformationBarriers.getShieldInformationBarriers();
+ const numberOfBarriers: number = barriers.entries!.length;
+ if (numberOfBarriers == 0) {
+ return await client.shieldInformationBarriers.createShieldInformationBarrier(
+ {
+ enterprise: {
+ id: enterpriseId,
+ type: 'enterprise' as EnterpriseBaseTypeField,
+ } satisfies EnterpriseBase,
+ } satisfies CreateShieldInformationBarrierRequestBodyArg
+ );
+ }
+ return barriers.entries![numberOfBarriers - 1];
+}
+test('testShieldInformationBarriers', async function testShieldInformationBarriers(): Promise {
+ const client: BoxClient = await getDefaultClientAsUser(getEnvVar('USER_ID'));
+ const enterpriseId: string = getEnvVar('ENTERPRISE_ID');
+ const barrier: ShieldInformationBarrier =
+ await getOrCreateShieldInformationBarrier(client, enterpriseId);
+ if (!((toString(barrier.status!) as string) == 'draft')) {
+ throw 'Assertion failed';
+ }
+ if (!((toString(barrier.type!) as string) == 'shield_information_barrier')) {
+ throw 'Assertion failed';
+ }
+ if (!(barrier.enterprise!.id == enterpriseId)) {
+ throw 'Assertion failed';
+ }
+ if (!((toString(barrier.enterprise!.type) as string) == 'enterprise')) {
+ throw 'Assertion failed';
+ }
+ const barrierId: string = barrier.id!;
+ const barrierFromApi: ShieldInformationBarrier =
+ await client.shieldInformationBarriers.getShieldInformationBarrierById(
+ barrierId
+ );
+ if (!(barrierFromApi.id! == barrierId)) {
+ throw 'Assertion failed';
+ }
+ const barriers: ShieldInformationBarriers =
+ await client.shieldInformationBarriers.getShieldInformationBarriers();
+ if (!(barriers.entries!.length == 1)) {
+ throw 'Assertion failed';
+ }
+ expect(async () => {
+ await client.shieldInformationBarriers.createShieldInformationBarrierChangeStatus(
+ {
+ id: barrierId,
+ status:
+ 'disabled' as CreateShieldInformationBarrierChangeStatusRequestBodyArgStatusField,
+ } satisfies CreateShieldInformationBarrierChangeStatusRequestBodyArg
+ );
+ }).rejects.toThrow();
+});
+export {};
diff --git a/src/utils.ts b/src/utils.ts
index 3b3c1baa..8d2dfaca 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -1,4 +1,5 @@
-import { Readable } from 'stream';
+import { Buffer } from 'buffer';
+import type { Readable } from 'stream';
import { v4 as uuidv4 } from 'uuid';
export function isBrowser() {
@@ -51,9 +52,9 @@ export class Hash {
this.#chunks = new Uint8Array();
if (isBrowser()) {
this.#hash = undefined;
- return;
+ } else {
+ this.#hash = eval('require')('crypto').createHash(algorithm);
}
- this.#hash = eval('require')('crypto').createHash(algorithm);
}
updateHash(data: Buffer) {
@@ -106,12 +107,21 @@ export function generateByteBuffer(size: number): Buffer {
return crypto.randomBytes(size);
}
-export function generateByteStreamFromBuffer(buffer: Buffer): Readable {
- return Readable.from(buffer);
+export function generateByteStreamFromBuffer(
+ buffer: Buffer | ArrayBuffer
+): Readable {
+ return isBrowser()
+ ? new ReadableStream({
+ start(controller) {
+ controller.enqueue(new Uint8Array(buffer));
+ controller.close();
+ },
+ })
+ : eval('require')('stream').Readable.from(Buffer.from(buffer));
}
export function generateByteStream(size: number): Readable {
- return Readable.from(generateByteBuffer(size));
+ return generateByteStreamFromBuffer(generateByteBuffer(size));
}
export function bufferEquals(buffer1: Buffer, buffer2: Buffer): boolean {
@@ -123,7 +133,20 @@ export function bufferLength(buffer: Buffer): number {
}
export function decodeBase64ByteStream(data: string): Readable {
- return Readable.from(Buffer.from(data, 'base64'));
+ return isBrowser()
+ ? new ReadableStream({
+ start(controller) {
+ const decodedStr = atob(data);
+ const buffer = new ArrayBuffer(decodedStr.length);
+ const array = new Uint8Array(buffer);
+ for (let i = 0; i < decodedStr.length; i++) {
+ array[i] = decodedStr.charCodeAt(i);
+ }
+ controller.enqueue(array);
+ controller.close();
+ },
+ })
+ : eval('require')('stream').Readable.from(Buffer.from(data, 'base64'));
}
export async function readByteStream(byteStream: Readable) {
@@ -155,7 +178,9 @@ export async function* iterateChunks(
let start = 0;
while (totalSize >= chunkSize) {
- yield Readable.from(buffer.subarray(start, start + chunkSize));
+ yield generateByteStreamFromBuffer(
+ buffer.subarray(start, start + chunkSize)
+ );
start += chunkSize;
totalSize -= chunkSize;
}
@@ -164,7 +189,7 @@ export async function* iterateChunks(
}
if (totalSize > 0) {
- yield Readable.from(Buffer.concat(buffers));
+ yield generateByteStreamFromBuffer(Buffer.concat(buffers));
}
}
diff --git a/tsconfig.rollup.json b/tsconfig.rollup.json
new file mode 100644
index 00000000..b9d47a11
--- /dev/null
+++ b/tsconfig.rollup.json
@@ -0,0 +1,16 @@
+{
+ "compilerOptions": {
+ "target": "es6",
+ "module": "ESNext",
+ "declaration": true,
+ "sourceMap": true,
+ "outDir": "lib",
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "strict": true,
+ "skipLibCheck": true
+ },
+ "include": ["src/**/*"],
+ "exclude": ["node_modules", "src/__tests__"]
+}