@vertexvis/api-client-node 0.14.7 → 0.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,11 @@ import { CreateFileRequest, FileMetadataData } from '../../index';
4
4
  export interface UploadFileReq extends BaseReq {
5
5
  /** A {@link CreateFileRequest}. */
6
6
  readonly createFileReq: CreateFileRequest;
7
- /** File data, use {@link Buffer} or {@link ReadStream} in Node. */
8
- readonly fileData: unknown;
7
+ /** File data.
8
+ * @deprecated Use {@link filePath} instead.
9
+ */
10
+ readonly fileData?: unknown;
11
+ readonly filePath?: string;
9
12
  }
10
13
  /**
11
14
  * Delete all files.
@@ -18,10 +21,10 @@ export declare function deleteAllFiles({ client, pageSize, exceptions, }: Delete
18
21
  *
19
22
  * @param args - The {@link UploadFileReq}.
20
23
  */
21
- export declare function uploadFileIfNotExists({ client, createFileReq, fileData, onMsg, verbose, }: UploadFileReq): Promise<FileMetadataData>;
24
+ export declare function uploadFileIfNotExists({ client, createFileReq, fileData, filePath, onMsg, verbose, }: UploadFileReq): Promise<FileMetadataData>;
22
25
  /**
23
26
  * Create a file resource and upload a file.
24
27
  *
25
28
  * @param args - The {@link UploadFileReq}.
26
29
  */
27
- export declare function uploadFile({ client, createFileReq, fileData, onMsg, verbose, }: UploadFileReq): Promise<FileMetadataData>;
30
+ export declare function uploadFile({ client, createFileReq, fileData, filePath, onMsg, verbose, }: UploadFileReq): Promise<FileMetadataData>;
@@ -7,7 +7,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import fs from 'fs';
11
+ import { promisify } from 'util';
10
12
  import { delay, encodeIfNotEncoded, getBySuppliedId, getPage, } from '../../client/index';
13
+ const readFile = promisify(fs.readFile);
14
+ const stat = promisify(fs.stat);
11
15
  /**
12
16
  * Delete all files.
13
17
  *
@@ -36,7 +40,7 @@ export function deleteAllFiles({ client, pageSize = 100, exceptions = new Set(),
36
40
  *
37
41
  * @param args - The {@link UploadFileReq}.
38
42
  */
39
- export function uploadFileIfNotExists({ client, createFileReq, fileData, onMsg = console.log, verbose, }) {
43
+ export function uploadFileIfNotExists({ client, createFileReq, fileData, filePath, onMsg = console.log, verbose, }) {
40
44
  return __awaiter(this, void 0, void 0, function* () {
41
45
  const suppliedId = createFileReq.data.attributes.suppliedId;
42
46
  const existingFile = suppliedId
@@ -60,7 +64,14 @@ export function uploadFileIfNotExists({ client, createFileReq, fileData, onMsg =
60
64
  yield client.files.deleteFile({ id: fileId });
61
65
  }
62
66
  }
63
- return uploadFile({ client, createFileReq, fileData, onMsg, verbose });
67
+ return uploadFile({
68
+ client,
69
+ createFileReq,
70
+ fileData,
71
+ filePath,
72
+ onMsg,
73
+ verbose,
74
+ });
64
75
  });
65
76
  }
66
77
  /**
@@ -68,7 +79,7 @@ export function uploadFileIfNotExists({ client, createFileReq, fileData, onMsg =
68
79
  *
69
80
  * @param args - The {@link UploadFileReq}.
70
81
  */
71
- export function uploadFile({ client, createFileReq, fileData, onMsg = console.log, verbose, }) {
82
+ export function uploadFile({ client, createFileReq, fileData, filePath, onMsg = console.log, verbose, }) {
72
83
  return __awaiter(this, void 0, void 0, function* () {
73
84
  const fileName = createFileReq.data.attributes.name;
74
85
  const createRes = yield client.files.createFile({
@@ -77,10 +88,16 @@ export function uploadFile({ client, createFileReq, fileData, onMsg = console.lo
77
88
  const fileId = createRes.data.data.id;
78
89
  if (verbose)
79
90
  onMsg(`Created file '${fileName}', ${fileId}`);
80
- yield client.files.uploadFile({ id: fileId, body: fileData });
91
+ const [body, { size }] = filePath
92
+ ? yield Promise.all([readFile(filePath), stat(filePath)])
93
+ : [fileData, { size: -1 }];
94
+ yield client.files.uploadFile({ id: fileId, body }, { headers: size >= 0 ? { 'Content-Length': size } : undefined });
81
95
  if (verbose)
82
96
  onMsg(`Uploaded file ${fileId}`);
83
97
  const updated = (yield client.files.getFile({ id: fileId })).data.data;
98
+ if (size >= 0 && updated.attributes.size !== size) {
99
+ onMsg(`File ${fileId} size mismatch, expected ${size} got ${updated.attributes.size}`);
100
+ }
84
101
  const status = updated.attributes.status;
85
102
  if (status === 'error')
86
103
  throw new Error(`Uploading file ${fileId} failed with status ${status}`);
@@ -7,8 +7,11 @@ export interface CreatePartFromFileReq extends BaseReq {
7
7
  readonly createFileReq: CreateFileRequest;
8
8
  /** Function returning a {@link CreatePartRequest}. */
9
9
  readonly createPartReq: (fileId: string) => CreatePartRequest;
10
- /** File data, use {@link Buffer} in Node. */
11
- readonly fileData: unknown;
10
+ /** File data.
11
+ * @deprecated Use {@link filePath} instead.
12
+ */
13
+ readonly fileData?: unknown;
14
+ readonly filePath?: string;
12
15
  /** {@link Polling} */
13
16
  readonly polling?: Polling;
14
17
  /** Whether or not to return queued translation. */
@@ -36,7 +39,7 @@ export interface GetPartRevisionBySuppliedIdReq extends BaseReq {
36
39
  *
37
40
  * @param args - The {@link CreatePartFromFileReq}.
38
41
  */
39
- export declare function createPartFromFile({ client, createFileReq, createPartReq, fileData, onMsg, polling, returnQueued, verbose, }: CreatePartFromFileReq): Promise<CreatePartFromFileRes>;
42
+ export declare function createPartFromFile({ client, createFileReq, createPartReq, fileData, filePath, onMsg, polling, returnQueued, verbose, }: CreatePartFromFileReq): Promise<CreatePartFromFileRes>;
40
43
  /**
41
44
  * Create part and file resources if they don't already exist.
42
45
  *
@@ -14,13 +14,14 @@ import { isPollError, pollQueuedJob, throwOnError } from './queued-jobs';
14
14
  *
15
15
  * @param args - The {@link CreatePartFromFileReq}.
16
16
  */
17
- export function createPartFromFile({ client, createFileReq, createPartReq, fileData, onMsg = console.log, polling = { intervalMs: PollIntervalMs, maxAttempts: MaxAttempts }, returnQueued = false, verbose, }) {
17
+ export function createPartFromFile({ client, createFileReq, createPartReq, fileData, filePath, onMsg = console.log, polling = { intervalMs: PollIntervalMs, maxAttempts: MaxAttempts }, returnQueued = false, verbose, }) {
18
18
  var _a, _b;
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
20
  const file = yield uploadFileIfNotExists({
21
21
  client,
22
22
  verbose,
23
23
  fileData,
24
+ filePath,
24
25
  createFileReq,
25
26
  onMsg,
26
27
  });
@@ -188,7 +188,7 @@ export function createSceneAndSceneItemsEXPERIMENTAL({ client, createSceneItemRe
188
188
  export function createSceneItemsEXPERIMENTAL({ client, createSceneItemReqs, failFast, onProgress, parallelism, sceneId, }) {
189
189
  return __awaiter(this, void 0, void 0, function* () {
190
190
  const limit = pLimit(parallelism);
191
- const batchSize = 250;
191
+ const batchSize = 500;
192
192
  let complete = 0;
193
193
  const opChunks = arrayChunked(createSceneItemReqs.map((req) => ({
194
194
  data: req.data,
@@ -28,7 +28,7 @@ export interface Polling {
28
28
  readonly maxAttempts: number;
29
29
  }
30
30
  /**
31
- * Render image arguments. Render functions return Streams in Node. Here's an
31
+ * Render image arguments. Render functions return Streams. Here's an
32
32
  * example awaiting file creation,
33
33
  *
34
34
  * @example
@@ -1 +1 @@
1
- export declare const version = "0.14.7";
1
+ export declare const version = "0.15.2";
@@ -1 +1 @@
1
- export const version = '0.14.7';
1
+ export const version = '0.15.2';
@@ -1,12 +1,12 @@
1
1
  import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
- import { BatchesApi, Configuration, FilesApi, GeometrySetsApi, HitsApi, OAuth2Token, PartRevisionsApi, PartsApi, SceneAlterationsApi, SceneItemOverridesApi, SceneItemsApi, ScenesApi, SceneViewsApi, SceneViewStatesApi, StreamKeysApi, TranslationInspectionsApi, WebhookSubscriptionsApi } from '../index';
2
+ import { AccountsApi, ApplicationsApi, BatchesApi, Configuration, FilesApi, GeometrySetsApi, HitsApi, OAuth2Token, PartRevisionsApi, PartsApi, SceneAlterationsApi, SceneItemOverridesApi, SceneItemsApi, ScenesApi, SceneViewsApi, SceneViewStatesApi, StreamKeysApi, TranslationInspectionsApi, WebhookSubscriptionsApi } from '../index';
3
3
  import { BasePath } from './index';
4
4
  /**
5
5
  * Static `build` function arguments.
6
6
  */
7
7
  export interface BuildReq {
8
8
  /**
9
- * A {@link AxiosRequestConfig}. For example, to use HTTP keep-alive in Node,
9
+ * A {@link AxiosRequestConfig}. For example, to use HTTP keep-alive,
10
10
  *
11
11
  * * @example
12
12
  * ```typescript
@@ -69,6 +69,8 @@ export interface BuildReq {
69
69
  * @see {@link https://developer.vertexvis.com/docs/guides|Developer Guides} to get started.
70
70
  */
71
71
  export declare class VertexClient {
72
+ accounts: AccountsApi;
73
+ applications: ApplicationsApi;
72
74
  batches: BatchesApi;
73
75
  files: FilesApi;
74
76
  geometrySets: GeometrySetsApi;
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  var _a;
11
11
  import axios from 'axios';
12
- import { BatchesApi, Configuration, FilesApi, GeometrySetsApi, HitsApi, Oauth2Api, PartRevisionsApi, PartsApi, SceneAlterationsApi, SceneItemOverridesApi, SceneItemsApi, ScenesApi, SceneViewsApi, SceneViewStatesApi, StreamKeysApi, TranslationInspectionsApi, WebhookSubscriptionsApi, } from '../index';
12
+ import { AccountsApi, ApplicationsApi, BatchesApi, Configuration, FilesApi, GeometrySetsApi, HitsApi, Oauth2Api, PartRevisionsApi, PartsApi, SceneAlterationsApi, SceneItemOverridesApi, SceneItemsApi, ScenesApi, SceneViewsApi, SceneViewStatesApi, StreamKeysApi, TranslationInspectionsApi, WebhookSubscriptionsApi, } from '../index';
13
13
  import { createToken, isFailure, nowEpochMs, prettyJson, } from './index';
14
14
  import { version } from './version';
15
15
  const TenMinsInMs = 600000;
@@ -70,6 +70,8 @@ export class VertexClient {
70
70
  basePath,
71
71
  });
72
72
  this.axiosInstance = axiosInst;
73
+ this.accounts = new AccountsApi(this.config, undefined, axiosInst);
74
+ this.applications = new ApplicationsApi(this.config, undefined, axiosInst);
73
75
  this.batches = new BatchesApi(this.config, undefined, axiosInst);
74
76
  this.files = new FilesApi(this.config, undefined, axiosInst);
75
77
  this.geometrySets = new GeometrySetsApi(this.config, undefined, axiosInst);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertexvis/api-client-node",
3
- "version": "0.14.7",
3
+ "version": "0.15.2",
4
4
  "description": "The Vertex REST API client for Node.js.",
5
5
  "license": "MIT",
6
6
  "author": "Vertex Developers <support@vertexvis.com> (https://developer.vertexvis.com)",