@scenario-labs/sdk 0.3.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +40 -8
- package/client.d.mts +36 -16
- package/client.d.mts.map +1 -1
- package/client.d.ts +36 -16
- package/client.d.ts.map +1 -1
- package/client.js +10 -0
- package/client.js.map +1 -1
- package/client.mjs +10 -0
- package/client.mjs.map +1 -1
- package/core/pagination.d.mts +153 -0
- package/core/pagination.d.mts.map +1 -0
- package/core/pagination.d.ts +153 -0
- package/core/pagination.d.ts.map +1 -0
- package/core/pagination.js +276 -0
- package/core/pagination.js.map +1 -0
- package/core/pagination.mjs +263 -0
- package/core/pagination.mjs.map +1 -0
- package/index.d.mts +5 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts +5 -1
- package/index.d.ts.map +1 -1
- package/index.js +14 -1
- package/index.js.map +1 -1
- package/index.mjs +5 -1
- package/index.mjs.map +1 -1
- package/lib/asset.d.mts +55 -0
- package/lib/asset.d.mts.map +1 -0
- package/lib/asset.d.ts +55 -0
- package/lib/asset.d.ts.map +1 -0
- package/lib/asset.js +60 -0
- package/lib/asset.js.map +1 -0
- package/lib/asset.mjs +54 -0
- package/lib/asset.mjs.map +1 -0
- package/lib/job.d.mts +13 -1
- package/lib/job.d.mts.map +1 -1
- package/lib/job.d.ts +13 -1
- package/lib/job.d.ts.map +1 -1
- package/lib/job.js +18 -1
- package/lib/job.js.map +1 -1
- package/lib/job.mjs +16 -0
- package/lib/job.mjs.map +1 -1
- package/lib/models.d.mts +34 -2
- package/lib/models.d.mts.map +1 -1
- package/lib/models.d.ts +34 -2
- package/lib/models.d.ts.map +1 -1
- package/lib/models.js +39 -2
- package/lib/models.js.map +1 -1
- package/lib/models.mjs +37 -1
- package/lib/models.mjs.map +1 -1
- package/lib/scenario.d.mts +14 -0
- package/lib/scenario.d.mts.map +1 -1
- package/lib/scenario.d.ts +14 -0
- package/lib/scenario.d.ts.map +1 -1
- package/lib/scenario.js +14 -0
- package/lib/scenario.js.map +1 -1
- package/lib/scenario.mjs +14 -0
- package/lib/scenario.mjs.map +1 -1
- package/lib/upload.d.mts +143 -0
- package/lib/upload.d.mts.map +1 -0
- package/lib/upload.d.ts +143 -0
- package/lib/upload.d.ts.map +1 -0
- package/lib/upload.js +242 -0
- package/lib/upload.js.map +1 -0
- package/lib/upload.mjs +203 -0
- package/lib/upload.mjs.map +1 -0
- package/lib/workflow.d.mts +13 -2
- package/lib/workflow.d.mts.map +1 -1
- package/lib/workflow.d.ts +13 -2
- package/lib/workflow.d.ts.map +1 -1
- package/lib/workflow.js +17 -4
- package/lib/workflow.js.map +1 -1
- package/lib/workflow.mjs +17 -4
- package/lib/workflow.mjs.map +1 -1
- package/lib/workflow_import_validator.d.mts +40 -0
- package/lib/workflow_import_validator.d.mts.map +1 -0
- package/lib/workflow_import_validator.d.ts +40 -0
- package/lib/workflow_import_validator.d.ts.map +1 -0
- package/lib/workflow_import_validator.js +69 -0
- package/lib/workflow_import_validator.js.map +1 -0
- package/lib/workflow_import_validator.mjs +64 -0
- package/lib/workflow_import_validator.mjs.map +1 -0
- package/package.json +11 -1
- package/pagination.d.mts +2 -0
- package/pagination.d.mts.map +1 -0
- package/pagination.d.ts +2 -0
- package/pagination.d.ts.map +1 -0
- package/pagination.js +6 -0
- package/pagination.js.map +1 -0
- package/pagination.mjs +2 -0
- package/pagination.mjs.map +1 -0
- package/resources/assets/assets.d.mts +646 -669
- package/resources/assets/assets.d.mts.map +1 -1
- package/resources/assets/assets.d.ts +646 -669
- package/resources/assets/assets.d.ts.map +1 -1
- package/resources/assets/assets.js +3 -2
- package/resources/assets/assets.js.map +1 -1
- package/resources/assets/assets.mjs +3 -2
- package/resources/assets/assets.mjs.map +1 -1
- package/resources/assets/index.d.mts +1 -1
- package/resources/assets/index.d.mts.map +1 -1
- package/resources/assets/index.d.ts +1 -1
- package/resources/assets/index.d.ts.map +1 -1
- package/resources/assets/index.js.map +1 -1
- package/resources/assets/index.mjs.map +1 -1
- package/resources/assets/public.d.mts +12 -12
- package/resources/assets/public.d.mts.map +1 -1
- package/resources/assets/public.d.ts +12 -12
- package/resources/assets/public.d.ts.map +1 -1
- package/resources/collections/collections.d.mts +38 -49
- package/resources/collections/collections.d.mts.map +1 -1
- package/resources/collections/collections.d.ts +38 -49
- package/resources/collections/collections.d.ts.map +1 -1
- package/resources/collections/collections.js +5 -1
- package/resources/collections/collections.js.map +1 -1
- package/resources/collections/collections.mjs +5 -1
- package/resources/collections/collections.mjs.map +1 -1
- package/resources/collections/index.d.mts +1 -1
- package/resources/collections/index.d.mts.map +1 -1
- package/resources/collections/index.d.ts +1 -1
- package/resources/collections/index.d.ts.map +1 -1
- package/resources/collections/index.js.map +1 -1
- package/resources/collections/index.mjs.map +1 -1
- package/resources/generate.d.mts +1027 -242
- package/resources/generate.d.mts.map +1 -1
- package/resources/generate.d.ts +1027 -242
- package/resources/generate.d.ts.map +1 -1
- package/resources/generate.js +7 -0
- package/resources/generate.js.map +1 -1
- package/resources/generate.mjs +7 -0
- package/resources/generate.mjs.map +1 -1
- package/resources/index.d.mts +8 -8
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +8 -8
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs.map +1 -1
- package/resources/jobs.d.mts +369 -380
- package/resources/jobs.d.mts.map +1 -1
- package/resources/jobs.d.ts +369 -380
- package/resources/jobs.d.ts.map +1 -1
- package/resources/jobs.js +2 -1
- package/resources/jobs.js.map +1 -1
- package/resources/jobs.mjs +2 -1
- package/resources/jobs.mjs.map +1 -1
- package/resources/models/description.d.mts +2 -2
- package/resources/models/description.d.mts.map +1 -1
- package/resources/models/description.d.ts +2 -2
- package/resources/models/description.d.ts.map +1 -1
- package/resources/models/examples.d.mts +4 -4
- package/resources/models/examples.d.mts.map +1 -1
- package/resources/models/examples.d.ts +4 -4
- package/resources/models/examples.d.ts.map +1 -1
- package/resources/models/index.d.mts +1 -1
- package/resources/models/index.d.mts.map +1 -1
- package/resources/models/index.d.ts +1 -1
- package/resources/models/index.d.ts.map +1 -1
- package/resources/models/index.js.map +1 -1
- package/resources/models/index.mjs.map +1 -1
- package/resources/models/models.d.mts +845 -856
- package/resources/models/models.d.mts.map +1 -1
- package/resources/models/models.d.ts +845 -856
- package/resources/models/models.d.ts.map +1 -1
- package/resources/models/models.js +2 -1
- package/resources/models/models.js.map +1 -1
- package/resources/models/models.mjs +2 -1
- package/resources/models/models.mjs.map +1 -1
- package/resources/models/train.d.mts +2 -2
- package/resources/models/train.d.mts.map +1 -1
- package/resources/models/train.d.ts +2 -2
- package/resources/models/train.d.ts.map +1 -1
- package/resources/search.d.mts +215 -295
- package/resources/search.d.mts.map +1 -1
- package/resources/search.d.ts +215 -295
- package/resources/search.d.ts.map +1 -1
- package/resources/search.js +9 -2
- package/resources/search.js.map +1 -1
- package/resources/search.mjs +9 -2
- package/resources/search.mjs.map +1 -1
- package/resources/tags.d.mts +23 -35
- package/resources/tags.d.mts.map +1 -1
- package/resources/tags.d.ts +23 -35
- package/resources/tags.d.ts.map +1 -1
- package/resources/tags.js +2 -1
- package/resources/tags.js.map +1 -1
- package/resources/tags.mjs +2 -1
- package/resources/tags.mjs.map +1 -1
- package/resources/usages.d.mts +3 -3
- package/resources/usages.d.mts.map +1 -1
- package/resources/usages.d.ts +3 -3
- package/resources/usages.d.ts.map +1 -1
- package/resources/workflows.d.mts +688 -704
- package/resources/workflows.d.mts.map +1 -1
- package/resources/workflows.d.ts +688 -704
- package/resources/workflows.d.ts.map +1 -1
- package/resources/workflows.js +5 -1
- package/resources/workflows.js.map +1 -1
- package/resources/workflows.mjs +5 -1
- package/resources/workflows.mjs.map +1 -1
- package/src/client.ts +107 -2
- package/src/core/pagination.ts +497 -0
- package/src/index.ts +11 -1
- package/src/lib/asset.ts +85 -0
- package/src/lib/job.ts +28 -1
- package/src/lib/models.ts +62 -2
- package/src/lib/scenario.ts +14 -0
- package/src/lib/upload.ts +344 -0
- package/src/lib/workflow.ts +29 -4
- package/src/lib/workflow_import_validator.ts +104 -0
- package/src/pagination.ts +2 -0
- package/src/resources/assets/assets.ts +930 -909
- package/src/resources/assets/index.ts +2 -0
- package/src/resources/assets/public.ts +17 -7
- package/src/resources/collections/collections.ts +45 -54
- package/src/resources/collections/index.ts +1 -0
- package/src/resources/generate.ts +1227 -136
- package/src/resources/index.ts +11 -1
- package/src/resources/jobs.ts +613 -622
- package/src/resources/models/description.ts +4 -0
- package/src/resources/models/examples.ts +8 -0
- package/src/resources/models/index.ts +1 -0
- package/src/resources/models/models.ts +1066 -1064
- package/src/resources/models/train.ts +4 -0
- package/src/resources/search.ts +239 -327
- package/src/resources/tags.ts +32 -39
- package/src/resources/usages.ts +5 -0
- package/src/resources/workflows.ts +850 -864
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/lib/models.mjs
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
import { Models } from "../resources/models/models.mjs";
|
|
2
2
|
import { Train } from "../resources/models/train.mjs";
|
|
3
3
|
import { enhanceJob } from "./job.mjs";
|
|
4
|
+
/**
|
|
5
|
+
* Enhanced Model entity with helper methods.
|
|
6
|
+
* Has all original model fields plus `.run()`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const { model } = await client.models.retrieve(modelId);
|
|
11
|
+
* const gen = await model.run({ body: { prompt: 'a red car' } });
|
|
12
|
+
* const completed = await gen.job.wait();
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export class ModelEntity {
|
|
16
|
+
/**
|
|
17
|
+
* Generate with this model. Shortcut for
|
|
18
|
+
* `client.generate.runModel(this.id, params)`.
|
|
19
|
+
*
|
|
20
|
+
* Returns an enhanced response where `response.job` has `.wait()`.
|
|
21
|
+
*/
|
|
22
|
+
run(params, options) {
|
|
23
|
+
return this._client.generate.runModel(this.id, params, options);
|
|
24
|
+
}
|
|
25
|
+
/** @internal Create a ModelEntity wrapping raw model data. */
|
|
26
|
+
static from(client, data) {
|
|
27
|
+
const entity = Object.assign(Object.create(ModelEntity.prototype), data);
|
|
28
|
+
Object.defineProperty(entity, '_client', { value: client, enumerable: false });
|
|
29
|
+
return entity;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
4
32
|
/**
|
|
5
33
|
* Enhanced Train resource.
|
|
6
34
|
* `trigger()` returns a response where `job` has `.wait()`.
|
|
@@ -12,12 +40,20 @@ export class EnhancedTrain extends Train {
|
|
|
12
40
|
}
|
|
13
41
|
/**
|
|
14
42
|
* Enhanced Models resource.
|
|
15
|
-
* All original methods inherited.
|
|
43
|
+
* All original methods inherited.
|
|
44
|
+
* - `train` is an {@link EnhancedTrain}
|
|
45
|
+
* - `retrieve()` returns a response where `model` has `.run()`
|
|
16
46
|
*/
|
|
17
47
|
export class EnhancedModels extends Models {
|
|
18
48
|
constructor() {
|
|
19
49
|
super(...arguments);
|
|
20
50
|
this.train = new EnhancedTrain(this._client);
|
|
21
51
|
}
|
|
52
|
+
retrieve(modelID, query = {}, options) {
|
|
53
|
+
return super.retrieve(modelID, query, options)._thenUnwrap((data) => ({
|
|
54
|
+
...data,
|
|
55
|
+
model: ModelEntity.from(this._client, data.model),
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
22
58
|
}
|
|
23
59
|
//# sourceMappingURL=models.mjs.map
|
package/lib/models.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"OAGO,EAAE,MAAM,EAAwD;OAChE,EAAE,KAAK,EAAsD;OAC7D,EAAgB,UAAU,EAAE;AAInC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IAGtB;;;;;OAKG;IACH,GAAG,CAED,MAA8B,EAC9B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,IAAI,CACT,MAAgB,EAChB,IAAiC;QAEjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAOD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,OAAO,CACd,OAAe,EACf,MAA0B,EAC1B,OAAwB;QAExB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,MAAM;IAA1C;;QACW,UAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAYlE,CAAC;IAVU,QAAQ,CACf,OAAe,EACf,QAAgD,EAAE,EAClD,OAAwB;QAExB,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,GAAG,IAAI;YACP,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAmB,EAAE,IAAI,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
|
package/lib/scenario.d.mts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Scenario as BaseScenario } from "../client.mjs";
|
|
2
|
+
import { EnhancedAssets } from "./asset.mjs";
|
|
2
3
|
import { EnhancedGenerate } from "./generate.mjs";
|
|
4
|
+
import { EnhancedJobs } from "./job.mjs";
|
|
3
5
|
import { EnhancedModels } from "./models.mjs";
|
|
6
|
+
import { EnhancedUploads } from "./upload.mjs";
|
|
4
7
|
import { EnhancedWorkflows } from "./workflow.mjs";
|
|
5
8
|
/**
|
|
6
9
|
* Enhanced Scenario client.
|
|
@@ -29,11 +32,22 @@ import { EnhancedWorkflows } from "./workflow.mjs";
|
|
|
29
32
|
* // Enhanced: generate job.wait()
|
|
30
33
|
* const gen = await client.generate.runModel(modelId, { body });
|
|
31
34
|
* const done = await gen.job.wait();
|
|
35
|
+
*
|
|
36
|
+
* // Enhanced: upload.wait()
|
|
37
|
+
* const res = await client.uploads.retrieve(uploadId);
|
|
38
|
+
* const imported = await res.upload.wait();
|
|
39
|
+
*
|
|
40
|
+
* // Enhanced: asset.download()
|
|
41
|
+
* const a = await client.assets.retrieve(assetId);
|
|
42
|
+
* const bytes = await a.asset.download();
|
|
32
43
|
* ```
|
|
33
44
|
*/
|
|
34
45
|
export declare class Scenario extends BaseScenario {
|
|
35
46
|
workflows: EnhancedWorkflows;
|
|
36
47
|
generate: EnhancedGenerate;
|
|
37
48
|
models: EnhancedModels;
|
|
49
|
+
uploads: EnhancedUploads;
|
|
50
|
+
assets: EnhancedAssets;
|
|
51
|
+
jobs: EnhancedJobs;
|
|
38
52
|
}
|
|
39
53
|
//# sourceMappingURL=scenario.d.mts.map
|
package/lib/scenario.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.d.mts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,gBAAgB,EAAE;OACpB,EAAE,cAAc,EAAE;OAClB,EAAE,iBAAiB,EAAE;AAE5B
|
|
1
|
+
{"version":3,"file":"scenario.d.mts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,cAAc,EAAE;OAClB,EAAE,gBAAgB,EAAE;OACpB,EAAE,YAAY,EAAE;OAChB,EAAE,cAAc,EAAE;OAClB,EAAE,eAAe,EAAE;OACnB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,QAAS,SAAQ,YAAY;IAC/B,SAAS,EAAE,iBAAiB,CAA+B;IAC3D,QAAQ,EAAE,gBAAgB,CAA8B;IACxD,MAAM,EAAE,cAAc,CAA4B;IAClD,OAAO,EAAE,eAAe,CAA6B;IACrD,MAAM,EAAE,cAAc,CAA4B;IAClD,IAAI,EAAE,YAAY,CAA0B;CACtD"}
|
package/lib/scenario.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Scenario as BaseScenario } from "../client.js";
|
|
2
|
+
import { EnhancedAssets } from "./asset.js";
|
|
2
3
|
import { EnhancedGenerate } from "./generate.js";
|
|
4
|
+
import { EnhancedJobs } from "./job.js";
|
|
3
5
|
import { EnhancedModels } from "./models.js";
|
|
6
|
+
import { EnhancedUploads } from "./upload.js";
|
|
4
7
|
import { EnhancedWorkflows } from "./workflow.js";
|
|
5
8
|
/**
|
|
6
9
|
* Enhanced Scenario client.
|
|
@@ -29,11 +32,22 @@ import { EnhancedWorkflows } from "./workflow.js";
|
|
|
29
32
|
* // Enhanced: generate job.wait()
|
|
30
33
|
* const gen = await client.generate.runModel(modelId, { body });
|
|
31
34
|
* const done = await gen.job.wait();
|
|
35
|
+
*
|
|
36
|
+
* // Enhanced: upload.wait()
|
|
37
|
+
* const res = await client.uploads.retrieve(uploadId);
|
|
38
|
+
* const imported = await res.upload.wait();
|
|
39
|
+
*
|
|
40
|
+
* // Enhanced: asset.download()
|
|
41
|
+
* const a = await client.assets.retrieve(assetId);
|
|
42
|
+
* const bytes = await a.asset.download();
|
|
32
43
|
* ```
|
|
33
44
|
*/
|
|
34
45
|
export declare class Scenario extends BaseScenario {
|
|
35
46
|
workflows: EnhancedWorkflows;
|
|
36
47
|
generate: EnhancedGenerate;
|
|
37
48
|
models: EnhancedModels;
|
|
49
|
+
uploads: EnhancedUploads;
|
|
50
|
+
assets: EnhancedAssets;
|
|
51
|
+
jobs: EnhancedJobs;
|
|
38
52
|
}
|
|
39
53
|
//# sourceMappingURL=scenario.d.ts.map
|
package/lib/scenario.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,gBAAgB,EAAE;OACpB,EAAE,cAAc,EAAE;OAClB,EAAE,iBAAiB,EAAE;AAE5B
|
|
1
|
+
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,cAAc,EAAE;OAClB,EAAE,gBAAgB,EAAE;OACpB,EAAE,YAAY,EAAE;OAChB,EAAE,cAAc,EAAE;OAClB,EAAE,eAAe,EAAE;OACnB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,QAAS,SAAQ,YAAY;IAC/B,SAAS,EAAE,iBAAiB,CAA+B;IAC3D,QAAQ,EAAE,gBAAgB,CAA8B;IACxD,MAAM,EAAE,cAAc,CAA4B;IAClD,OAAO,EAAE,eAAe,CAA6B;IACrD,MAAM,EAAE,cAAc,CAA4B;IAClD,IAAI,EAAE,YAAY,CAA0B;CACtD"}
|
package/lib/scenario.js
CHANGED
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Scenario = void 0;
|
|
4
4
|
const client_1 = require("../client.js");
|
|
5
|
+
const asset_1 = require("./asset.js");
|
|
5
6
|
const generate_1 = require("./generate.js");
|
|
7
|
+
const job_1 = require("./job.js");
|
|
6
8
|
const models_1 = require("./models.js");
|
|
9
|
+
const upload_1 = require("./upload.js");
|
|
7
10
|
const workflow_1 = require("./workflow.js");
|
|
8
11
|
/**
|
|
9
12
|
* Enhanced Scenario client.
|
|
@@ -32,6 +35,14 @@ const workflow_1 = require("./workflow.js");
|
|
|
32
35
|
* // Enhanced: generate job.wait()
|
|
33
36
|
* const gen = await client.generate.runModel(modelId, { body });
|
|
34
37
|
* const done = await gen.job.wait();
|
|
38
|
+
*
|
|
39
|
+
* // Enhanced: upload.wait()
|
|
40
|
+
* const res = await client.uploads.retrieve(uploadId);
|
|
41
|
+
* const imported = await res.upload.wait();
|
|
42
|
+
*
|
|
43
|
+
* // Enhanced: asset.download()
|
|
44
|
+
* const a = await client.assets.retrieve(assetId);
|
|
45
|
+
* const bytes = await a.asset.download();
|
|
35
46
|
* ```
|
|
36
47
|
*/
|
|
37
48
|
class Scenario extends client_1.Scenario {
|
|
@@ -40,6 +51,9 @@ class Scenario extends client_1.Scenario {
|
|
|
40
51
|
this.workflows = new workflow_1.EnhancedWorkflows(this);
|
|
41
52
|
this.generate = new generate_1.EnhancedGenerate(this);
|
|
42
53
|
this.models = new models_1.EnhancedModels(this);
|
|
54
|
+
this.uploads = new upload_1.EnhancedUploads(this);
|
|
55
|
+
this.assets = new asset_1.EnhancedAssets(this);
|
|
56
|
+
this.jobs = new job_1.EnhancedJobs(this);
|
|
43
57
|
}
|
|
44
58
|
}
|
|
45
59
|
exports.Scenario = Scenario;
|
package/lib/scenario.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":";;;AAAA,yCAAqD;AACrD,4CAA8C;AAC9C,wCAA0C;AAC1C,4CAA+C;AAE/C
|
|
1
|
+
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":";;;AAAA,yCAAqD;AACrD,sCAAyC;AACzC,4CAA8C;AAC9C,kCAAqC;AACrC,wCAA0C;AAC1C,wCAA2C;AAC3C,4CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAa,QAAS,SAAQ,iBAAY;IAA1C;;QACW,cAAS,GAAsB,IAAI,4BAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,aAAQ,GAAqB,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;QACxD,WAAM,GAAmB,IAAI,uBAAc,CAAC,IAAI,CAAC,CAAC;QAClD,YAAO,GAAoB,IAAI,wBAAe,CAAC,IAAI,CAAC,CAAC;QACrD,WAAM,GAAmB,IAAI,sBAAc,CAAC,IAAI,CAAC,CAAC;QAClD,SAAI,GAAiB,IAAI,kBAAY,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;CAAA;AAPD,4BAOC"}
|
package/lib/scenario.mjs
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Scenario as BaseScenario } from "../client.mjs";
|
|
2
|
+
import { EnhancedAssets } from "./asset.mjs";
|
|
2
3
|
import { EnhancedGenerate } from "./generate.mjs";
|
|
4
|
+
import { EnhancedJobs } from "./job.mjs";
|
|
3
5
|
import { EnhancedModels } from "./models.mjs";
|
|
6
|
+
import { EnhancedUploads } from "./upload.mjs";
|
|
4
7
|
import { EnhancedWorkflows } from "./workflow.mjs";
|
|
5
8
|
/**
|
|
6
9
|
* Enhanced Scenario client.
|
|
@@ -29,6 +32,14 @@ import { EnhancedWorkflows } from "./workflow.mjs";
|
|
|
29
32
|
* // Enhanced: generate job.wait()
|
|
30
33
|
* const gen = await client.generate.runModel(modelId, { body });
|
|
31
34
|
* const done = await gen.job.wait();
|
|
35
|
+
*
|
|
36
|
+
* // Enhanced: upload.wait()
|
|
37
|
+
* const res = await client.uploads.retrieve(uploadId);
|
|
38
|
+
* const imported = await res.upload.wait();
|
|
39
|
+
*
|
|
40
|
+
* // Enhanced: asset.download()
|
|
41
|
+
* const a = await client.assets.retrieve(assetId);
|
|
42
|
+
* const bytes = await a.asset.download();
|
|
32
43
|
* ```
|
|
33
44
|
*/
|
|
34
45
|
export class Scenario extends BaseScenario {
|
|
@@ -37,6 +48,9 @@ export class Scenario extends BaseScenario {
|
|
|
37
48
|
this.workflows = new EnhancedWorkflows(this);
|
|
38
49
|
this.generate = new EnhancedGenerate(this);
|
|
39
50
|
this.models = new EnhancedModels(this);
|
|
51
|
+
this.uploads = new EnhancedUploads(this);
|
|
52
|
+
this.assets = new EnhancedAssets(this);
|
|
53
|
+
this.jobs = new EnhancedJobs(this);
|
|
40
54
|
}
|
|
41
55
|
}
|
|
42
56
|
//# sourceMappingURL=scenario.mjs.map
|
package/lib/scenario.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.mjs","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,gBAAgB,EAAE;OACpB,EAAE,cAAc,EAAE;OAClB,EAAE,iBAAiB,EAAE;AAE5B
|
|
1
|
+
{"version":3,"file":"scenario.mjs","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,cAAc,EAAE;OAClB,EAAE,gBAAgB,EAAE;OACpB,EAAE,YAAY,EAAE;OAChB,EAAE,cAAc,EAAE;OAClB,EAAE,eAAe,EAAE;OACnB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;IAA1C;;QACW,cAAS,GAAsB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,aAAQ,GAAqB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxD,WAAM,GAAmB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,YAAO,GAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACrD,WAAM,GAAmB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,SAAI,GAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;CAAA"}
|
package/lib/upload.d.mts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import type { Scenario } from "../client.mjs";
|
|
2
|
+
import type { APIPromise } from "../core/api-promise.mjs";
|
|
3
|
+
import type { RequestOptions } from "../internal/request-options.mjs";
|
|
4
|
+
import { Uploads, type UploadCreateParams, type UploadCreateResponse, type UploadRetrieveResponse, type UploadTriggerActionParams, type UploadTriggerActionResponse } from "../resources/uploads.mjs";
|
|
5
|
+
import type { AssetRetrieveResponse } from "../resources/assets/assets.mjs";
|
|
6
|
+
import type { ModelRetrieveResponse } from "../resources/models/models.mjs";
|
|
7
|
+
type UploadKind = NonNullable<UploadCreateParams['kind']>;
|
|
8
|
+
/** The resolved entity returned after a successful upload, narrowed by `kind`. */
|
|
9
|
+
export type UploadResult<K extends UploadKind> = K extends 'model' ? ModelRetrieveResponse : AssetRetrieveResponse;
|
|
10
|
+
/**
|
|
11
|
+
* Accepted upload inputs.
|
|
12
|
+
* - `string` — a local file path, read from disk (Node only; throws in browsers).
|
|
13
|
+
* - `Uint8Array` — raw bytes. `Buffer` is a `Uint8Array` and works too.
|
|
14
|
+
* - `Blob` / `File` — browser-native, or Node ≥ 18 via `fs.openAsBlob()` /
|
|
15
|
+
* constructors.
|
|
16
|
+
*/
|
|
17
|
+
export type UploadFileInput = string | Uint8Array | Blob;
|
|
18
|
+
export interface UploadFileParams<K extends UploadKind> {
|
|
19
|
+
/**
|
|
20
|
+
* The file to upload. Accepts a local path (Node), a `Uint8Array` / `Buffer`,
|
|
21
|
+
* or a `Blob` / `File`.
|
|
22
|
+
*/
|
|
23
|
+
file: UploadFileInput;
|
|
24
|
+
/** Original filename (e.g. `"my-model.safetensors"`). */
|
|
25
|
+
fileName: string;
|
|
26
|
+
/** MIME type (e.g. `"application/octet-stream"`, `"image/png"`). */
|
|
27
|
+
contentType: string;
|
|
28
|
+
/** The kind of upload. Determines the returned entity type. */
|
|
29
|
+
kind: K;
|
|
30
|
+
/**
|
|
31
|
+
* Extra asset options. Ignored when `kind === 'model'` — models don't
|
|
32
|
+
* produce an asset, so these options are not applicable server-side.
|
|
33
|
+
*/
|
|
34
|
+
assetOptions?: UploadCreateParams['assetOptions'];
|
|
35
|
+
/**
|
|
36
|
+
* Maximum number of parts uploaded to S3 in parallel.
|
|
37
|
+
* @default 4
|
|
38
|
+
*/
|
|
39
|
+
partConcurrency?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Polling interval for the final "upload imported" check, in ms.
|
|
42
|
+
* @default 2000
|
|
43
|
+
*/
|
|
44
|
+
pollIntervalMs?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Maximum time to wait for the upload to reach a terminal state, in ms.
|
|
47
|
+
* Throws if exceeded.
|
|
48
|
+
* @default 300000
|
|
49
|
+
*/
|
|
50
|
+
pollTimeoutMs?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface UploadWaitOptions {
|
|
53
|
+
/** Polling interval in milliseconds. Default: 2000 */
|
|
54
|
+
intervalMs?: number;
|
|
55
|
+
/** Maximum wait time in milliseconds. Default: 300000 */
|
|
56
|
+
timeoutMs?: number;
|
|
57
|
+
}
|
|
58
|
+
/** Upload methods added on top of the original upload fields. */
|
|
59
|
+
export declare class UploadMethods {
|
|
60
|
+
/** @internal */ readonly _client: Scenario;
|
|
61
|
+
/**
|
|
62
|
+
* Poll until the upload has been processed into an entity (asset or model),
|
|
63
|
+
* or reaches a terminal state (`imported`, `complete`, `failed`). Resolves
|
|
64
|
+
* with the latest upload data so you can read `entityId`, `status`, or
|
|
65
|
+
* `errorMessage` without a follow-up retrieve.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* const res = await client.uploads.retrieve(uploadId);
|
|
70
|
+
* const done = await res.upload.wait();
|
|
71
|
+
* if (done.status === 'failed') throw new Error(done.errorMessage);
|
|
72
|
+
* console.log(done.entityId);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
wait(this: Upload, options?: UploadWaitOptions): Promise<Upload>;
|
|
76
|
+
/** @internal Create an Upload from raw upload data. */
|
|
77
|
+
static from(client: Scenario, data: UploadRetrieveResponse['upload']): Upload;
|
|
78
|
+
}
|
|
79
|
+
/** An upload with all original fields plus `.wait()`. */
|
|
80
|
+
export type Upload = UploadRetrieveResponse.Upload & UploadMethods;
|
|
81
|
+
export declare const Upload: typeof UploadMethods;
|
|
82
|
+
/**
|
|
83
|
+
* @internal Helper type: adds `.wait()` to the `upload` field of a response.
|
|
84
|
+
* Uses intersection so the original response type is preserved — a `WithUpload<T>` is still assignable to `T`.
|
|
85
|
+
*/
|
|
86
|
+
export type WithUpload<T extends {
|
|
87
|
+
upload: unknown;
|
|
88
|
+
}> = T & {
|
|
89
|
+
upload: UploadMethods;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
|
|
93
|
+
*/
|
|
94
|
+
export declare function enhanceUpload<T extends {
|
|
95
|
+
upload: {
|
|
96
|
+
id: string;
|
|
97
|
+
status: string;
|
|
98
|
+
};
|
|
99
|
+
}>(client: Scenario, promise: APIPromise<T>): APIPromise<WithUpload<T>>;
|
|
100
|
+
/**
|
|
101
|
+
* Enhanced Uploads resource.
|
|
102
|
+
* All original methods (`create`, `retrieve`, `triggerAction`) are inherited,
|
|
103
|
+
* with each response's `upload` field enriched with a `.wait()` helper.
|
|
104
|
+
* Adds `uploadFile()` — a one-call wrapper around the 4-step upload flow:
|
|
105
|
+
* init → PUT parts to S3 → trigger complete → poll until imported.
|
|
106
|
+
*/
|
|
107
|
+
export declare class EnhancedUploads extends Uploads {
|
|
108
|
+
create(body: UploadCreateParams, options?: RequestOptions): APIPromise<WithUpload<UploadCreateResponse>>;
|
|
109
|
+
retrieve(uploadID: string, options?: RequestOptions): APIPromise<WithUpload<UploadRetrieveResponse>>;
|
|
110
|
+
triggerAction(uploadID: string, body: UploadTriggerActionParams, options?: RequestOptions): APIPromise<WithUpload<UploadTriggerActionResponse>>;
|
|
111
|
+
/**
|
|
112
|
+
* Upload a file end-to-end. Computes an optimal part size (within AWS's
|
|
113
|
+
* 5 MiB / 5 GiB / 10,000-part bounds), uploads all parts in parallel,
|
|
114
|
+
* triggers completion, polls until the server has validated and imported
|
|
115
|
+
* the file, and returns the resolved entity.
|
|
116
|
+
*
|
|
117
|
+
* The returned type narrows on `kind`: `'model'` returns a Model,
|
|
118
|
+
* everything else returns an Asset.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* // From a file path (Node)
|
|
123
|
+
* const { asset } = await client.uploads.uploadFile({
|
|
124
|
+
* file: './photo.jpg',
|
|
125
|
+
* fileName: 'photo.jpg',
|
|
126
|
+
* contentType: 'image/jpeg',
|
|
127
|
+
* kind: 'image',
|
|
128
|
+
* });
|
|
129
|
+
* console.log(asset.id, asset.url);
|
|
130
|
+
*
|
|
131
|
+
* // Or from bytes / Blob — anything you already have in memory
|
|
132
|
+
* await client.uploads.uploadFile({
|
|
133
|
+
* file: new Blob([pngBytes], { type: 'image/png' }),
|
|
134
|
+
* fileName: 'generated.png',
|
|
135
|
+
* contentType: 'image/png',
|
|
136
|
+
* kind: 'image',
|
|
137
|
+
* });
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
uploadFile<K extends UploadKind>(params: UploadFileParams<K>, options?: RequestOptions): Promise<UploadResult<K>>;
|
|
141
|
+
}
|
|
142
|
+
export {};
|
|
143
|
+
//# sourceMappingURL=upload.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.mts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"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"}
|
package/lib/upload.d.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import type { Scenario } from "../client.js";
|
|
2
|
+
import type { APIPromise } from "../core/api-promise.js";
|
|
3
|
+
import type { RequestOptions } from "../internal/request-options.js";
|
|
4
|
+
import { Uploads, type UploadCreateParams, type UploadCreateResponse, type UploadRetrieveResponse, type UploadTriggerActionParams, type UploadTriggerActionResponse } from "../resources/uploads.js";
|
|
5
|
+
import type { AssetRetrieveResponse } from "../resources/assets/assets.js";
|
|
6
|
+
import type { ModelRetrieveResponse } from "../resources/models/models.js";
|
|
7
|
+
type UploadKind = NonNullable<UploadCreateParams['kind']>;
|
|
8
|
+
/** The resolved entity returned after a successful upload, narrowed by `kind`. */
|
|
9
|
+
export type UploadResult<K extends UploadKind> = K extends 'model' ? ModelRetrieveResponse : AssetRetrieveResponse;
|
|
10
|
+
/**
|
|
11
|
+
* Accepted upload inputs.
|
|
12
|
+
* - `string` — a local file path, read from disk (Node only; throws in browsers).
|
|
13
|
+
* - `Uint8Array` — raw bytes. `Buffer` is a `Uint8Array` and works too.
|
|
14
|
+
* - `Blob` / `File` — browser-native, or Node ≥ 18 via `fs.openAsBlob()` /
|
|
15
|
+
* constructors.
|
|
16
|
+
*/
|
|
17
|
+
export type UploadFileInput = string | Uint8Array | Blob;
|
|
18
|
+
export interface UploadFileParams<K extends UploadKind> {
|
|
19
|
+
/**
|
|
20
|
+
* The file to upload. Accepts a local path (Node), a `Uint8Array` / `Buffer`,
|
|
21
|
+
* or a `Blob` / `File`.
|
|
22
|
+
*/
|
|
23
|
+
file: UploadFileInput;
|
|
24
|
+
/** Original filename (e.g. `"my-model.safetensors"`). */
|
|
25
|
+
fileName: string;
|
|
26
|
+
/** MIME type (e.g. `"application/octet-stream"`, `"image/png"`). */
|
|
27
|
+
contentType: string;
|
|
28
|
+
/** The kind of upload. Determines the returned entity type. */
|
|
29
|
+
kind: K;
|
|
30
|
+
/**
|
|
31
|
+
* Extra asset options. Ignored when `kind === 'model'` — models don't
|
|
32
|
+
* produce an asset, so these options are not applicable server-side.
|
|
33
|
+
*/
|
|
34
|
+
assetOptions?: UploadCreateParams['assetOptions'];
|
|
35
|
+
/**
|
|
36
|
+
* Maximum number of parts uploaded to S3 in parallel.
|
|
37
|
+
* @default 4
|
|
38
|
+
*/
|
|
39
|
+
partConcurrency?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Polling interval for the final "upload imported" check, in ms.
|
|
42
|
+
* @default 2000
|
|
43
|
+
*/
|
|
44
|
+
pollIntervalMs?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Maximum time to wait for the upload to reach a terminal state, in ms.
|
|
47
|
+
* Throws if exceeded.
|
|
48
|
+
* @default 300000
|
|
49
|
+
*/
|
|
50
|
+
pollTimeoutMs?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface UploadWaitOptions {
|
|
53
|
+
/** Polling interval in milliseconds. Default: 2000 */
|
|
54
|
+
intervalMs?: number;
|
|
55
|
+
/** Maximum wait time in milliseconds. Default: 300000 */
|
|
56
|
+
timeoutMs?: number;
|
|
57
|
+
}
|
|
58
|
+
/** Upload methods added on top of the original upload fields. */
|
|
59
|
+
export declare class UploadMethods {
|
|
60
|
+
/** @internal */ readonly _client: Scenario;
|
|
61
|
+
/**
|
|
62
|
+
* Poll until the upload has been processed into an entity (asset or model),
|
|
63
|
+
* or reaches a terminal state (`imported`, `complete`, `failed`). Resolves
|
|
64
|
+
* with the latest upload data so you can read `entityId`, `status`, or
|
|
65
|
+
* `errorMessage` without a follow-up retrieve.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* const res = await client.uploads.retrieve(uploadId);
|
|
70
|
+
* const done = await res.upload.wait();
|
|
71
|
+
* if (done.status === 'failed') throw new Error(done.errorMessage);
|
|
72
|
+
* console.log(done.entityId);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
wait(this: Upload, options?: UploadWaitOptions): Promise<Upload>;
|
|
76
|
+
/** @internal Create an Upload from raw upload data. */
|
|
77
|
+
static from(client: Scenario, data: UploadRetrieveResponse['upload']): Upload;
|
|
78
|
+
}
|
|
79
|
+
/** An upload with all original fields plus `.wait()`. */
|
|
80
|
+
export type Upload = UploadRetrieveResponse.Upload & UploadMethods;
|
|
81
|
+
export declare const Upload: typeof UploadMethods;
|
|
82
|
+
/**
|
|
83
|
+
* @internal Helper type: adds `.wait()` to the `upload` field of a response.
|
|
84
|
+
* Uses intersection so the original response type is preserved — a `WithUpload<T>` is still assignable to `T`.
|
|
85
|
+
*/
|
|
86
|
+
export type WithUpload<T extends {
|
|
87
|
+
upload: unknown;
|
|
88
|
+
}> = T & {
|
|
89
|
+
upload: UploadMethods;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
|
|
93
|
+
*/
|
|
94
|
+
export declare function enhanceUpload<T extends {
|
|
95
|
+
upload: {
|
|
96
|
+
id: string;
|
|
97
|
+
status: string;
|
|
98
|
+
};
|
|
99
|
+
}>(client: Scenario, promise: APIPromise<T>): APIPromise<WithUpload<T>>;
|
|
100
|
+
/**
|
|
101
|
+
* Enhanced Uploads resource.
|
|
102
|
+
* All original methods (`create`, `retrieve`, `triggerAction`) are inherited,
|
|
103
|
+
* with each response's `upload` field enriched with a `.wait()` helper.
|
|
104
|
+
* Adds `uploadFile()` — a one-call wrapper around the 4-step upload flow:
|
|
105
|
+
* init → PUT parts to S3 → trigger complete → poll until imported.
|
|
106
|
+
*/
|
|
107
|
+
export declare class EnhancedUploads extends Uploads {
|
|
108
|
+
create(body: UploadCreateParams, options?: RequestOptions): APIPromise<WithUpload<UploadCreateResponse>>;
|
|
109
|
+
retrieve(uploadID: string, options?: RequestOptions): APIPromise<WithUpload<UploadRetrieveResponse>>;
|
|
110
|
+
triggerAction(uploadID: string, body: UploadTriggerActionParams, options?: RequestOptions): APIPromise<WithUpload<UploadTriggerActionResponse>>;
|
|
111
|
+
/**
|
|
112
|
+
* Upload a file end-to-end. Computes an optimal part size (within AWS's
|
|
113
|
+
* 5 MiB / 5 GiB / 10,000-part bounds), uploads all parts in parallel,
|
|
114
|
+
* triggers completion, polls until the server has validated and imported
|
|
115
|
+
* the file, and returns the resolved entity.
|
|
116
|
+
*
|
|
117
|
+
* The returned type narrows on `kind`: `'model'` returns a Model,
|
|
118
|
+
* everything else returns an Asset.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* // From a file path (Node)
|
|
123
|
+
* const { asset } = await client.uploads.uploadFile({
|
|
124
|
+
* file: './photo.jpg',
|
|
125
|
+
* fileName: 'photo.jpg',
|
|
126
|
+
* contentType: 'image/jpeg',
|
|
127
|
+
* kind: 'image',
|
|
128
|
+
* });
|
|
129
|
+
* console.log(asset.id, asset.url);
|
|
130
|
+
*
|
|
131
|
+
* // Or from bytes / Blob — anything you already have in memory
|
|
132
|
+
* await client.uploads.uploadFile({
|
|
133
|
+
* file: new Blob([pngBytes], { type: 'image/png' }),
|
|
134
|
+
* fileName: 'generated.png',
|
|
135
|
+
* contentType: 'image/png',
|
|
136
|
+
* kind: 'image',
|
|
137
|
+
* });
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
uploadFile<K extends UploadKind>(params: UploadFileParams<K>, options?: RequestOptions): Promise<UploadResult<K>>;
|
|
141
|
+
}
|
|
142
|
+
export {};
|
|
143
|
+
//# sourceMappingURL=upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"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"}
|