@scenario-labs/sdk 2.2.1 → 2.4.0-alpha.1
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 +35 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts.map +1 -1
- package/client.js +9 -1
- package/client.js.map +1 -1
- package/client.mjs +9 -1
- package/client.mjs.map +1 -1
- package/index.d.mts +1 -0
- package/index.d.mts.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/index.mjs +1 -0
- package/index.mjs.map +1 -1
- package/lib/auth-refresh.d.mts +52 -0
- package/lib/auth-refresh.d.mts.map +1 -0
- package/lib/auth-refresh.d.ts +52 -0
- package/lib/auth-refresh.d.ts.map +1 -0
- package/lib/auth-refresh.js +81 -0
- package/lib/auth-refresh.js.map +1 -0
- package/lib/auth-refresh.mjs +78 -0
- package/lib/auth-refresh.mjs.map +1 -0
- package/lib/generate.js +7 -7
- package/lib/generate.js.map +1 -1
- package/lib/generate.mjs +7 -7
- package/lib/generate.mjs.map +1 -1
- package/lib/job.d.mts +15 -3
- package/lib/job.d.mts.map +1 -1
- package/lib/job.d.ts +15 -3
- package/lib/job.d.ts.map +1 -1
- package/lib/job.js +22 -8
- package/lib/job.js.map +1 -1
- package/lib/job.mjs +22 -8
- package/lib/job.mjs.map +1 -1
- package/lib/models.d.mts +8 -2
- package/lib/models.d.mts.map +1 -1
- package/lib/models.d.ts +8 -2
- package/lib/models.d.ts.map +1 -1
- package/lib/models.js +13 -5
- package/lib/models.js.map +1 -1
- package/lib/models.mjs +13 -5
- package/lib/models.mjs.map +1 -1
- package/lib/scenario.d.mts +28 -13
- package/lib/scenario.d.mts.map +1 -1
- package/lib/scenario.d.ts +28 -13
- package/lib/scenario.d.ts.map +1 -1
- package/lib/scenario.js +31 -12
- package/lib/scenario.js.map +1 -1
- package/lib/scenario.mjs +31 -12
- package/lib/scenario.mjs.map +1 -1
- package/lib/scope.d.mts +41 -0
- package/lib/scope.d.mts.map +1 -0
- package/lib/scope.d.ts +41 -0
- package/lib/scope.d.ts.map +1 -0
- package/lib/scope.js +55 -0
- package/lib/scope.js.map +1 -0
- package/lib/scope.mjs +49 -0
- package/lib/scope.mjs.map +1 -0
- package/lib/upload.d.mts +15 -3
- package/lib/upload.d.mts.map +1 -1
- package/lib/upload.d.ts +15 -3
- package/lib/upload.d.ts.map +1 -1
- package/lib/upload.js +29 -12
- package/lib/upload.js.map +1 -1
- package/lib/upload.mjs +29 -12
- package/lib/upload.mjs.map +1 -1
- package/lib/workflow.d.mts +8 -2
- package/lib/workflow.d.mts.map +1 -1
- package/lib/workflow.d.ts +8 -2
- package/lib/workflow.d.ts.map +1 -1
- package/lib/workflow.js +14 -6
- package/lib/workflow.js.map +1 -1
- package/lib/workflow.mjs +14 -6
- package/lib/workflow.mjs.map +1 -1
- package/lib/workflow_converter.d.mts +8 -2
- package/lib/workflow_converter.d.mts.map +1 -1
- package/lib/workflow_converter.d.ts +8 -2
- package/lib/workflow_converter.d.ts.map +1 -1
- package/lib/workflow_converter.js +83 -19
- package/lib/workflow_converter.js.map +1 -1
- package/lib/workflow_converter.mjs +83 -19
- package/lib/workflow_converter.mjs.map +1 -1
- package/lib/workflow_import_validator.d.mts +1 -1
- package/lib/workflow_import_validator.d.mts.map +1 -1
- package/lib/workflow_import_validator.d.ts +1 -1
- package/lib/workflow_import_validator.d.ts.map +1 -1
- package/lib/workflow_import_validator.js +1 -0
- package/lib/workflow_import_validator.js.map +1 -1
- package/lib/workflow_import_validator.mjs +1 -0
- package/lib/workflow_import_validator.mjs.map +1 -1
- package/package.json +9 -3
- package/resources/assets/assets.d.mts +1 -1
- package/resources/assets/assets.d.mts.map +1 -1
- package/resources/assets/assets.d.ts +1 -1
- package/resources/assets/assets.d.ts.map +1 -1
- package/resources/generate.d.mts +594 -10
- package/resources/generate.d.mts.map +1 -1
- package/resources/generate.d.ts +594 -10
- package/resources/generate.d.ts.map +1 -1
- package/resources/generate.js +2 -2
- package/resources/generate.js.map +1 -1
- package/resources/generate.mjs +2 -2
- package/resources/generate.mjs.map +1 -1
- package/resources/jobs.d.mts +3 -3
- package/resources/jobs.d.mts.map +1 -1
- package/resources/jobs.d.ts +3 -3
- package/resources/jobs.d.ts.map +1 -1
- package/resources/models/examples.d.mts +2 -2
- package/resources/models/examples.d.mts.map +1 -1
- package/resources/models/examples.d.ts +2 -2
- package/resources/models/examples.d.ts.map +1 -1
- package/resources/models/models.d.mts +126 -7
- package/resources/models/models.d.mts.map +1 -1
- package/resources/models/models.d.ts +126 -7
- package/resources/models/models.d.ts.map +1 -1
- package/resources/models/models.js.map +1 -1
- package/resources/models/models.mjs.map +1 -1
- package/resources/models/train.d.mts +106 -3
- package/resources/models/train.d.mts.map +1 -1
- package/resources/models/train.d.ts +106 -3
- package/resources/models/train.d.ts.map +1 -1
- package/resources/usages.d.mts +23 -3
- package/resources/usages.d.mts.map +1 -1
- package/resources/usages.d.ts +23 -3
- package/resources/usages.d.ts.map +1 -1
- package/resources/workflows.d.mts +22 -5
- package/resources/workflows.d.mts.map +1 -1
- package/resources/workflows.d.ts +22 -5
- package/resources/workflows.d.ts.map +1 -1
- package/resources/workflows.js +4 -1
- package/resources/workflows.js.map +1 -1
- package/resources/workflows.mjs +4 -1
- package/resources/workflows.mjs.map +1 -1
- package/src/client.ts +9 -1
- package/src/index.ts +1 -0
- package/src/lib/auth-refresh.ts +98 -0
- package/src/lib/generate.ts +7 -7
- package/src/lib/job.ts +29 -7
- package/src/lib/models.ts +14 -4
- package/src/lib/scenario.ts +51 -13
- package/src/lib/scope.ts +68 -0
- package/src/lib/upload.ts +36 -11
- package/src/lib/workflow.ts +15 -5
- package/src/lib/workflow_converter.ts +128 -19
- package/src/lib/workflow_import_validator.ts +3 -1
- package/src/resources/assets/assets.ts +1 -1
- package/src/resources/generate.ts +713 -12
- package/src/resources/jobs.ts +3 -3
- package/src/resources/models/examples.ts +2 -2
- package/src/resources/models/models.ts +189 -7
- package/src/resources/models/train.ts +138 -3
- package/src/resources/usages.ts +27 -1
- package/src/resources/workflows.ts +24 -5
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.mts.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/version.mjs +1 -1
- package/version.mjs.map +1 -1
package/lib/scope.mjs
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Extract `projectId` from a `RequestOptions.query`. Returns `undefined` if absent. */
|
|
2
|
+
export function extractScope(options) {
|
|
3
|
+
const query = options?.query;
|
|
4
|
+
if (!query)
|
|
5
|
+
return undefined;
|
|
6
|
+
const projectId = typeof query['projectId'] === 'string' ? query['projectId'] : undefined;
|
|
7
|
+
if (!projectId)
|
|
8
|
+
return undefined;
|
|
9
|
+
return { projectId };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the effective scope for an outgoing call:
|
|
13
|
+
* 1. If the per-call options carry a `projectId` query — use that (the explicit override wins).
|
|
14
|
+
* 2. Otherwise, fall back to the client's default `projectId`.
|
|
15
|
+
* 3. If neither is set (e.g. API-key auth with implicit scope), return `undefined`.
|
|
16
|
+
*
|
|
17
|
+
* Returns the snapshot we want to *capture on an enhanced entity* so that
|
|
18
|
+
* follow-up helper calls (`.wait()`, `entity.run()`, ...) reuse the same
|
|
19
|
+
* scope and stay in sync with the call that produced them.
|
|
20
|
+
*/
|
|
21
|
+
export function effectiveScope(options, fallbackProjectId) {
|
|
22
|
+
const override = extractScope(options);
|
|
23
|
+
if (override)
|
|
24
|
+
return override;
|
|
25
|
+
if (fallbackProjectId)
|
|
26
|
+
return { projectId: fallbackProjectId };
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Read the client's default `projectId` without repeating the structural
|
|
31
|
+
* cast at every call site. The base generated `Scenario` type doesn't
|
|
32
|
+
* declare `projectId` — only the enhanced one in `./scenario` does — so
|
|
33
|
+
* `lib/` modules that import `Scenario` from `'../client'` use this helper
|
|
34
|
+
* instead of duplicating the same cast inline.
|
|
35
|
+
*/
|
|
36
|
+
export function clientProjectId(client) {
|
|
37
|
+
return client.projectId;
|
|
38
|
+
}
|
|
39
|
+
/** Build a `RequestOptions` that adds the scope as a query param, merging into any existing query. */
|
|
40
|
+
export function withScope(scope, options) {
|
|
41
|
+
if (!scope?.projectId)
|
|
42
|
+
return options;
|
|
43
|
+
const existingQuery = options?.query ?? {};
|
|
44
|
+
return {
|
|
45
|
+
...options,
|
|
46
|
+
query: { ...existingQuery, projectId: scope.projectId },
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=scope.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.mjs","sourceRoot":"","sources":["../src/lib/scope.ts"],"names":[],"mappings":"AAmBA,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,OAAwB;IACnD,MAAM,KAAK,GAAG,OAAO,EAAE,KAA4C,CAAC;IACpE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAmC,EACnC,iBAA4C;IAE5C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,iBAAiB;QAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,OAAQ,MAAwC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,SAAS,CAAC,KAAwB,EAAE,OAAwB;IAC1E,IAAI,CAAC,KAAK,EAAE,SAAS;QAAE,OAAO,OAAO,CAAC;IACtC,MAAM,aAAa,GAAI,OAAO,EAAE,KAA6C,IAAI,EAAE,CAAC;IACpF,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;KACxD,CAAC;AACJ,CAAC"}
|
package/lib/upload.d.mts
CHANGED
|
@@ -4,6 +4,7 @@ import type { RequestOptions } from "../internal/request-options.mjs";
|
|
|
4
4
|
import { Uploads, type UploadCreateParams, type UploadCreateResponse, type UploadRetrieveResponse, type UploadTriggerActionParams, type UploadTriggerActionResponse } from "../resources/uploads.mjs";
|
|
5
5
|
import type { AssetRetrieveResponse } from "../resources/assets/assets.mjs";
|
|
6
6
|
import type { ModelRetrieveResponse } from "../resources/models/models.mjs";
|
|
7
|
+
import { type Scope } from "./scope.mjs";
|
|
7
8
|
type UploadKind = NonNullable<UploadCreateParams['kind']>;
|
|
8
9
|
/** The resolved entity returned after a successful upload, narrowed by `kind`. */
|
|
9
10
|
export type UploadResult<K extends UploadKind> = K extends 'model' ? ModelRetrieveResponse : AssetRetrieveResponse;
|
|
@@ -54,10 +55,18 @@ export interface UploadWaitOptions {
|
|
|
54
55
|
intervalMs?: number;
|
|
55
56
|
/** Maximum wait time in milliseconds. Default: 300000 */
|
|
56
57
|
timeoutMs?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Override the project scope used for the polling requests. Defaults to
|
|
60
|
+
* the scope captured on the upload (per-call override on the originating
|
|
61
|
+
* call, else the client's default project).
|
|
62
|
+
*/
|
|
63
|
+
projectId?: string;
|
|
57
64
|
}
|
|
58
65
|
/** Upload methods added on top of the original upload fields. */
|
|
59
66
|
export declare class UploadMethods {
|
|
60
67
|
/** @internal */ readonly _client: Scenario;
|
|
68
|
+
/** @internal scope captured from the originating call — replayed on every `.wait()` poll. */
|
|
69
|
+
readonly _scope?: Scope;
|
|
61
70
|
/**
|
|
62
71
|
* Poll until the upload has been processed into an entity (asset or model),
|
|
63
72
|
* or reaches a terminal state (`imported`, `complete`, `failed`). Resolves
|
|
@@ -73,8 +82,8 @@ export declare class UploadMethods {
|
|
|
73
82
|
* ```
|
|
74
83
|
*/
|
|
75
84
|
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;
|
|
85
|
+
/** @internal Create an Upload from raw upload data, optionally remembering the originating scope. */
|
|
86
|
+
static from(client: Scenario, data: UploadRetrieveResponse['upload'], scope?: Scope): Upload;
|
|
78
87
|
}
|
|
79
88
|
/** An upload with all original fields plus `.wait()`. */
|
|
80
89
|
export type Upload = UploadRetrieveResponse.Upload & UploadMethods;
|
|
@@ -90,13 +99,16 @@ export type WithUpload<T extends {
|
|
|
90
99
|
};
|
|
91
100
|
/**
|
|
92
101
|
* @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
|
|
102
|
+
* Captures the effective scope (per-call override or client default) so
|
|
103
|
+
* `.wait()` can replay it on every poll — keeping follow-up calls in sync
|
|
104
|
+
* with the project the upload was originally created in.
|
|
93
105
|
*/
|
|
94
106
|
export declare function enhanceUpload<T extends {
|
|
95
107
|
upload: {
|
|
96
108
|
id: string;
|
|
97
109
|
status: string;
|
|
98
110
|
};
|
|
99
|
-
}>(client: Scenario, promise: APIPromise<T
|
|
111
|
+
}>(client: Scenario, promise: APIPromise<T>, options?: RequestOptions): APIPromise<WithUpload<T>>;
|
|
100
112
|
/**
|
|
101
113
|
* Enhanced Uploads resource.
|
|
102
114
|
* All original methods (`create`, `retrieve`, `triggerAction`) are inherited,
|
package/lib/upload.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.mts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAkB;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,gCAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,wCAAoC;AAClE,OAAO,EACL,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EACjC,iCAA6B;AAC9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,uCAAmC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,uCAAmC;
|
|
1
|
+
{"version":3,"file":"upload.d.mts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"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"}
|
package/lib/upload.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { RequestOptions } from "../internal/request-options.js";
|
|
|
4
4
|
import { Uploads, type UploadCreateParams, type UploadCreateResponse, type UploadRetrieveResponse, type UploadTriggerActionParams, type UploadTriggerActionResponse } from "../resources/uploads.js";
|
|
5
5
|
import type { AssetRetrieveResponse } from "../resources/assets/assets.js";
|
|
6
6
|
import type { ModelRetrieveResponse } from "../resources/models/models.js";
|
|
7
|
+
import { type Scope } from "./scope.js";
|
|
7
8
|
type UploadKind = NonNullable<UploadCreateParams['kind']>;
|
|
8
9
|
/** The resolved entity returned after a successful upload, narrowed by `kind`. */
|
|
9
10
|
export type UploadResult<K extends UploadKind> = K extends 'model' ? ModelRetrieveResponse : AssetRetrieveResponse;
|
|
@@ -54,10 +55,18 @@ export interface UploadWaitOptions {
|
|
|
54
55
|
intervalMs?: number;
|
|
55
56
|
/** Maximum wait time in milliseconds. Default: 300000 */
|
|
56
57
|
timeoutMs?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Override the project scope used for the polling requests. Defaults to
|
|
60
|
+
* the scope captured on the upload (per-call override on the originating
|
|
61
|
+
* call, else the client's default project).
|
|
62
|
+
*/
|
|
63
|
+
projectId?: string;
|
|
57
64
|
}
|
|
58
65
|
/** Upload methods added on top of the original upload fields. */
|
|
59
66
|
export declare class UploadMethods {
|
|
60
67
|
/** @internal */ readonly _client: Scenario;
|
|
68
|
+
/** @internal scope captured from the originating call — replayed on every `.wait()` poll. */
|
|
69
|
+
readonly _scope?: Scope;
|
|
61
70
|
/**
|
|
62
71
|
* Poll until the upload has been processed into an entity (asset or model),
|
|
63
72
|
* or reaches a terminal state (`imported`, `complete`, `failed`). Resolves
|
|
@@ -73,8 +82,8 @@ export declare class UploadMethods {
|
|
|
73
82
|
* ```
|
|
74
83
|
*/
|
|
75
84
|
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;
|
|
85
|
+
/** @internal Create an Upload from raw upload data, optionally remembering the originating scope. */
|
|
86
|
+
static from(client: Scenario, data: UploadRetrieveResponse['upload'], scope?: Scope): Upload;
|
|
78
87
|
}
|
|
79
88
|
/** An upload with all original fields plus `.wait()`. */
|
|
80
89
|
export type Upload = UploadRetrieveResponse.Upload & UploadMethods;
|
|
@@ -90,13 +99,16 @@ export type WithUpload<T extends {
|
|
|
90
99
|
};
|
|
91
100
|
/**
|
|
92
101
|
* @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
|
|
102
|
+
* Captures the effective scope (per-call override or client default) so
|
|
103
|
+
* `.wait()` can replay it on every poll — keeping follow-up calls in sync
|
|
104
|
+
* with the project the upload was originally created in.
|
|
93
105
|
*/
|
|
94
106
|
export declare function enhanceUpload<T extends {
|
|
95
107
|
upload: {
|
|
96
108
|
id: string;
|
|
97
109
|
status: string;
|
|
98
110
|
};
|
|
99
|
-
}>(client: Scenario, promise: APIPromise<T
|
|
111
|
+
}>(client: Scenario, promise: APIPromise<T>, options?: RequestOptions): APIPromise<WithUpload<T>>;
|
|
100
112
|
/**
|
|
101
113
|
* Enhanced Uploads resource.
|
|
102
114
|
* All original methods (`create`, `retrieve`, `triggerAction`) are inherited,
|
package/lib/upload.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,qBAAkB;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,+BAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,uCAAoC;AAClE,OAAO,EACL,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EACjC,gCAA6B;AAC9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,sCAAmC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,sCAAmC;
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"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"}
|
package/lib/upload.js
CHANGED
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.EnhancedUploads = exports.Upload = exports.UploadMethods = void 0;
|
|
37
37
|
exports.enhanceUpload = enhanceUpload;
|
|
38
38
|
const uploads_1 = require("../resources/uploads.js");
|
|
39
|
+
const scope_1 = require("./scope.js");
|
|
39
40
|
// AWS S3 multipart upload limits.
|
|
40
41
|
const MIN_PART_SIZE = 6_000_000; // 6 MB (spec minimum is 5 MiB; a bit over to be safe)
|
|
41
42
|
const MAX_PART_SIZE = 5_368_709_120; // 5 GiB
|
|
@@ -63,13 +64,16 @@ class UploadMethods {
|
|
|
63
64
|
* ```
|
|
64
65
|
*/
|
|
65
66
|
async wait(options) {
|
|
66
|
-
const
|
|
67
|
-
|
|
67
|
+
const scope = waitOverrideScope(options) ?? this._scope;
|
|
68
|
+
const final = await pollUntilImported(() => this._client.uploads.retrieve(this.id, (0, scope_1.withScope)(scope)), options?.intervalMs ?? 2_000, options?.timeoutMs ?? 300_000);
|
|
69
|
+
return UploadMethods.from(this._client, final.upload, scope);
|
|
68
70
|
}
|
|
69
|
-
/** @internal Create an Upload from raw upload data. */
|
|
70
|
-
static from(client, data) {
|
|
71
|
+
/** @internal Create an Upload from raw upload data, optionally remembering the originating scope. */
|
|
72
|
+
static from(client, data, scope) {
|
|
71
73
|
const upload = Object.assign(Object.create(UploadMethods.prototype), data);
|
|
72
74
|
Object.defineProperty(upload, '_client', { value: client, enumerable: false });
|
|
75
|
+
if (scope)
|
|
76
|
+
Object.defineProperty(upload, '_scope', { value: scope, enumerable: false });
|
|
73
77
|
return upload;
|
|
74
78
|
}
|
|
75
79
|
}
|
|
@@ -77,11 +81,15 @@ exports.UploadMethods = UploadMethods;
|
|
|
77
81
|
exports.Upload = UploadMethods;
|
|
78
82
|
/**
|
|
79
83
|
* @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
|
|
84
|
+
* Captures the effective scope (per-call override or client default) so
|
|
85
|
+
* `.wait()` can replay it on every poll — keeping follow-up calls in sync
|
|
86
|
+
* with the project the upload was originally created in.
|
|
80
87
|
*/
|
|
81
|
-
function enhanceUpload(client, promise) {
|
|
88
|
+
function enhanceUpload(client, promise, options) {
|
|
89
|
+
const scope = (0, scope_1.effectiveScope)(options, (0, scope_1.clientProjectId)(client));
|
|
82
90
|
return promise._thenUnwrap((data) => ({
|
|
83
91
|
...data,
|
|
84
|
-
upload: exports.Upload.from(client, data.upload),
|
|
92
|
+
upload: exports.Upload.from(client, data.upload, scope),
|
|
85
93
|
}));
|
|
86
94
|
}
|
|
87
95
|
/**
|
|
@@ -93,13 +101,13 @@ function enhanceUpload(client, promise) {
|
|
|
93
101
|
*/
|
|
94
102
|
class EnhancedUploads extends uploads_1.Uploads {
|
|
95
103
|
create(body, options) {
|
|
96
|
-
return enhanceUpload(this._client, super.create(body, options));
|
|
104
|
+
return enhanceUpload(this._client, super.create(body, options), options);
|
|
97
105
|
}
|
|
98
106
|
retrieve(uploadID, options) {
|
|
99
|
-
return enhanceUpload(this._client, super.retrieve(uploadID, options));
|
|
107
|
+
return enhanceUpload(this._client, super.retrieve(uploadID, options), options);
|
|
100
108
|
}
|
|
101
109
|
triggerAction(uploadID, body, options) {
|
|
102
|
-
return enhanceUpload(this._client, super.triggerAction(uploadID, body, options));
|
|
110
|
+
return enhanceUpload(this._client, super.triggerAction(uploadID, body, options), options);
|
|
103
111
|
}
|
|
104
112
|
/**
|
|
105
113
|
* Upload a file end-to-end. Computes an optimal part size (within AWS's
|
|
@@ -177,16 +185,25 @@ class EnhancedUploads extends uploads_1.Uploads {
|
|
|
177
185
|
if (!entityId) {
|
|
178
186
|
throw new Error(`Upload ${uploadId} reached status "${final.upload.status}" but has no entityId`);
|
|
179
187
|
}
|
|
180
|
-
// Fetch and return the resolved entity (narrowed by kind).
|
|
188
|
+
// Fetch and return the resolved entity (narrowed by kind). Forward the
|
|
189
|
+
// original options so any per-call `projectId` query is passed through
|
|
190
|
+
// to the final retrieve (necessary under bearer auth with per-call
|
|
191
|
+
// scope overrides).
|
|
181
192
|
if (params.kind === 'model') {
|
|
182
|
-
const model = await this._client.models.retrieve(entityId);
|
|
193
|
+
const model = await this._client.models.retrieve(entityId, undefined, options);
|
|
183
194
|
return model;
|
|
184
195
|
}
|
|
185
|
-
const asset = await this._client.assets.retrieve(entityId);
|
|
196
|
+
const asset = await this._client.assets.retrieve(entityId, undefined, options);
|
|
186
197
|
return asset;
|
|
187
198
|
}
|
|
188
199
|
}
|
|
189
200
|
exports.EnhancedUploads = EnhancedUploads;
|
|
201
|
+
/** Resolve the scope override carried by an `UploadWaitOptions`, if any. */
|
|
202
|
+
function waitOverrideScope(options) {
|
|
203
|
+
if (!options?.projectId)
|
|
204
|
+
return undefined;
|
|
205
|
+
return { projectId: options.projectId };
|
|
206
|
+
}
|
|
190
207
|
// ─────────────────────── helpers ───────────────────────
|
|
191
208
|
async function normalizeToBytes(input) {
|
|
192
209
|
if (typeof input === 'string') {
|
package/lib/upload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"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"}
|
package/lib/upload.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Uploads, } from "../resources/uploads.mjs";
|
|
2
|
+
import { clientProjectId, effectiveScope, withScope } from "./scope.mjs";
|
|
2
3
|
// AWS S3 multipart upload limits.
|
|
3
4
|
const MIN_PART_SIZE = 6_000_000; // 6 MB (spec minimum is 5 MiB; a bit over to be safe)
|
|
4
5
|
const MAX_PART_SIZE = 5_368_709_120; // 5 GiB
|
|
@@ -26,24 +27,31 @@ export class UploadMethods {
|
|
|
26
27
|
* ```
|
|
27
28
|
*/
|
|
28
29
|
async wait(options) {
|
|
29
|
-
const
|
|
30
|
-
|
|
30
|
+
const scope = waitOverrideScope(options) ?? this._scope;
|
|
31
|
+
const final = await pollUntilImported(() => this._client.uploads.retrieve(this.id, withScope(scope)), options?.intervalMs ?? 2_000, options?.timeoutMs ?? 300_000);
|
|
32
|
+
return UploadMethods.from(this._client, final.upload, scope);
|
|
31
33
|
}
|
|
32
|
-
/** @internal Create an Upload from raw upload data. */
|
|
33
|
-
static from(client, data) {
|
|
34
|
+
/** @internal Create an Upload from raw upload data, optionally remembering the originating scope. */
|
|
35
|
+
static from(client, data, scope) {
|
|
34
36
|
const upload = Object.assign(Object.create(UploadMethods.prototype), data);
|
|
35
37
|
Object.defineProperty(upload, '_client', { value: client, enumerable: false });
|
|
38
|
+
if (scope)
|
|
39
|
+
Object.defineProperty(upload, '_scope', { value: scope, enumerable: false });
|
|
36
40
|
return upload;
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
43
|
export const Upload = UploadMethods;
|
|
40
44
|
/**
|
|
41
45
|
* @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
|
|
46
|
+
* Captures the effective scope (per-call override or client default) so
|
|
47
|
+
* `.wait()` can replay it on every poll — keeping follow-up calls in sync
|
|
48
|
+
* with the project the upload was originally created in.
|
|
42
49
|
*/
|
|
43
|
-
export function enhanceUpload(client, promise) {
|
|
50
|
+
export function enhanceUpload(client, promise, options) {
|
|
51
|
+
const scope = effectiveScope(options, clientProjectId(client));
|
|
44
52
|
return promise._thenUnwrap((data) => ({
|
|
45
53
|
...data,
|
|
46
|
-
upload: Upload.from(client, data.upload),
|
|
54
|
+
upload: Upload.from(client, data.upload, scope),
|
|
47
55
|
}));
|
|
48
56
|
}
|
|
49
57
|
/**
|
|
@@ -55,13 +63,13 @@ export function enhanceUpload(client, promise) {
|
|
|
55
63
|
*/
|
|
56
64
|
export class EnhancedUploads extends Uploads {
|
|
57
65
|
create(body, options) {
|
|
58
|
-
return enhanceUpload(this._client, super.create(body, options));
|
|
66
|
+
return enhanceUpload(this._client, super.create(body, options), options);
|
|
59
67
|
}
|
|
60
68
|
retrieve(uploadID, options) {
|
|
61
|
-
return enhanceUpload(this._client, super.retrieve(uploadID, options));
|
|
69
|
+
return enhanceUpload(this._client, super.retrieve(uploadID, options), options);
|
|
62
70
|
}
|
|
63
71
|
triggerAction(uploadID, body, options) {
|
|
64
|
-
return enhanceUpload(this._client, super.triggerAction(uploadID, body, options));
|
|
72
|
+
return enhanceUpload(this._client, super.triggerAction(uploadID, body, options), options);
|
|
65
73
|
}
|
|
66
74
|
/**
|
|
67
75
|
* Upload a file end-to-end. Computes an optimal part size (within AWS's
|
|
@@ -139,15 +147,24 @@ export class EnhancedUploads extends Uploads {
|
|
|
139
147
|
if (!entityId) {
|
|
140
148
|
throw new Error(`Upload ${uploadId} reached status "${final.upload.status}" but has no entityId`);
|
|
141
149
|
}
|
|
142
|
-
// Fetch and return the resolved entity (narrowed by kind).
|
|
150
|
+
// Fetch and return the resolved entity (narrowed by kind). Forward the
|
|
151
|
+
// original options so any per-call `projectId` query is passed through
|
|
152
|
+
// to the final retrieve (necessary under bearer auth with per-call
|
|
153
|
+
// scope overrides).
|
|
143
154
|
if (params.kind === 'model') {
|
|
144
|
-
const model = await this._client.models.retrieve(entityId);
|
|
155
|
+
const model = await this._client.models.retrieve(entityId, undefined, options);
|
|
145
156
|
return model;
|
|
146
157
|
}
|
|
147
|
-
const asset = await this._client.assets.retrieve(entityId);
|
|
158
|
+
const asset = await this._client.assets.retrieve(entityId, undefined, options);
|
|
148
159
|
return asset;
|
|
149
160
|
}
|
|
150
161
|
}
|
|
162
|
+
/** Resolve the scope override carried by an `UploadWaitOptions`, if any. */
|
|
163
|
+
function waitOverrideScope(options) {
|
|
164
|
+
if (!options?.projectId)
|
|
165
|
+
return undefined;
|
|
166
|
+
return { projectId: options.projectId };
|
|
167
|
+
}
|
|
151
168
|
// ─────────────────────── helpers ───────────────────────
|
|
152
169
|
async function normalizeToBytes(input) {
|
|
153
170
|
if (typeof input === 'string') {
|
package/lib/upload.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.mjs","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,GAMR,iCAA6B;
|
|
1
|
+
{"version":3,"file":"upload.mjs","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,GAMR,iCAA6B;AAG9B,OAAO,EAAc,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,oBAAgB;AAoDjF,kCAAkC;AAClC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,sDAAsD;AACvF,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,QAAQ;AAC7C,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,QAAQ;AAIjD,wEAAwE;AACxE,qEAAqE;AACrE,uEAAuE;AACvE,kDAAkD;AAClD,MAAM,iBAAiB,GAAsB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAezF,iEAAiE;AACjE,MAAM,OAAO,aAAa;IAKxB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,IAAI,CAAe,OAA2B;QAClD,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CACnC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAC9D,OAAO,EAAE,UAAU,IAAI,KAAK,EAC5B,OAAO,EAAE,SAAS,IAAI,OAAO,CAC9B,CAAC;QACF,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,qGAAqG;IACrG,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,IAAsC,EAAE,KAAa;QACjF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,CAAW,CAAC;QACrF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,KAAK;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAID,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC;AAQpC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAgB,EAChB,OAAsB,EACtB,OAAwB;IAExB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,GAAG,IAAI;QACP,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAA0C,EAAE,KAAK,CAAC;KACpF,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IACjC,MAAM,CACb,IAAwB,EACxB,OAAwB;QAExB,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAEQ,QAAQ,CACf,QAAgB,EAChB,OAAwB;QAExB,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAEQ,aAAa,CACpB,QAAgB,EAChB,IAA+B,EAC/B,OAAwB;QAExB,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,UAAU,CACd,MAA2B,EAC3B,OAAwB;QAExB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;QAElC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,cAAc,QAAQ,+CAA+C,aAAa,gBAAgB,CACnG,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAC3D,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,cAAc,QAAQ,mCAAmC,QAAQ,UAAU;gBACzE,0CAA0C,aAAa,gBAAgB,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;QAE/D,8DAA8D;QAC9D,MAAM,UAAU,GAAuB;YACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ;YACR,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,UAAU;YACjB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjG,CAAC;QACF,MAAM,SAAS,GAAyB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,+BAA+B,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,2EAA2E;QAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEtE,mDAAmD;QACnD,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;QAEpE,oEAAoE;QACpE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CACnC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,cAAc,IAAI,KAAK,EAC9B,MAAM,CAAC,aAAa,IAAI,OAAO,CAChC,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,YAAY,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,oBAAoB,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,oBAAoB,KAAK,CAAC,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACpG,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,mEAAmE;QACnE,oBAAoB;QACpB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/E,OAAO,KAAwB,CAAC;QAClC,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,KAAwB,CAAC;IAClC,CAAC;CACF;AAED,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,OAA2B;IACpD,IAAI,CAAC,OAAO,EAAE,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,0DAA0D;AAE1D,KAAK,UAAU,gBAAgB,CAAC,KAAsB;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,4DAA4D;QAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACzD,OAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;AACtG,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,KAAiB,EACjB,KAA8D,EAC9D,QAAgB,EAChB,WAAmB;IAEnB,wEAAwE;IACxE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3B,KAAK,UAAU,MAAM;QACnB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO;YAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CACzF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAA+C,EAC/C,UAAkB,EAClB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9B,gFAAgF;QAChF,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;AACxF,CAAC"}
|
package/lib/workflow.d.mts
CHANGED
|
@@ -2,6 +2,7 @@ import type { APIPromise } from "../core/api-promise.mjs";
|
|
|
2
2
|
import type { RequestOptions } from "../internal/request-options.mjs";
|
|
3
3
|
import { Workflows, WorkflowUserApprovalResponse, type WorkflowApproveUserParams, type WorkflowRetrieveResponse, type WorkflowRunParams, type WorkflowRunResponse } from "../resources/workflows.mjs";
|
|
4
4
|
import { type WithJob } from "./job.mjs";
|
|
5
|
+
import { type Scope } from "./scope.mjs";
|
|
5
6
|
import type { Scenario } from "./scenario.mjs";
|
|
6
7
|
type DefinitionFlow = WorkflowRetrieveResponse.Workflow.Flow;
|
|
7
8
|
type NodeType = DefinitionFlow['type'];
|
|
@@ -21,6 +22,8 @@ type NodeType = DefinitionFlow['type'];
|
|
|
21
22
|
*/
|
|
22
23
|
export declare class WorkflowEntity {
|
|
23
24
|
/** @internal */ readonly _client: Scenario;
|
|
25
|
+
/** @internal scope captured from the retrieve call — replayed when `.run()` is invoked without an explicit query override. */
|
|
26
|
+
readonly _scope?: Scope;
|
|
24
27
|
/** Find a node in the workflow definition by ID. */
|
|
25
28
|
findNode(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, nodeId: string): DefinitionFlow | undefined;
|
|
26
29
|
/** Get all nodes of a specific type from the workflow definition. */
|
|
@@ -35,10 +38,13 @@ export declare class WorkflowEntity {
|
|
|
35
38
|
* `client.workflows.run(this.id, params)`.
|
|
36
39
|
*
|
|
37
40
|
* Returns an enhanced response where `response.job` has `.wait()`.
|
|
41
|
+
* If the workflow was fetched with a `projectId` scope (per-call override
|
|
42
|
+
* or client default), that scope is reused unless overridden by
|
|
43
|
+
* `options.query`.
|
|
38
44
|
*/
|
|
39
45
|
run(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, params: WorkflowRunParams, options?: RequestOptions): APIPromise<WithJob<WorkflowRunResponse>>;
|
|
40
|
-
/** @internal Create a WorkflowEntity from raw workflow data. */
|
|
41
|
-
static from(client: Scenario, data: WorkflowRetrieveResponse.Workflow): WorkflowRetrieveResponse.Workflow & WorkflowEntity;
|
|
46
|
+
/** @internal Create a WorkflowEntity from raw workflow data, optionally remembering the originating scope. */
|
|
47
|
+
static from(client: Scenario, data: WorkflowRetrieveResponse.Workflow, scope?: Scope): WorkflowRetrieveResponse.Workflow & WorkflowEntity;
|
|
42
48
|
}
|
|
43
49
|
/** Enhanced retrieve response with workflow entity methods. */
|
|
44
50
|
export type EnhancedWorkflowRetrieveResponse = Omit<WorkflowRetrieveResponse, 'workflow'> & {
|
package/lib/workflow.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.mts","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gCAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,wCAAoC;AAClE,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,mCAA+B;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,kBAAc;
|
|
1
|
+
{"version":3,"file":"workflow.d.mts","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gCAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,wCAAoC;AAClE,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,mCAA+B;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,kBAAc;AACjD,OAAO,EAAE,KAAK,KAAK,EAA6B,oBAAgB;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAmB;AAE3C,KAAK,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7D,KAAK,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc;IACzB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IACpD,8HAA8H;IAC9H,SAAiB,MAAM,CAAC,EAAE,KAAK,CAAC;IAEhC,oDAAoD;IACpD,QAAQ,CACN,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EACxD,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAI7B,qEAAqE;IACrE,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,cAAc,EAAE;IAI1G;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,GAAG,IAAI;IAIxE;;;;;;;;OAQG;IACH,GAAG,CACD,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EACxD,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAI3C,8GAA8G;IAC9G,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,wBAAwB,CAAC,QAAQ,EACvC,KAAK,CAAC,EAAE,KAAK,GACZ,wBAAwB,CAAC,QAAQ,GAAG,cAAc;CAMtD;AAED,+DAA+D;AAC/D,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,GAAG;IAC1F,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,GAAG,cAAc,CAAC;CAC9D,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C;;;OAGG;IACM,QAAQ,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,gCAAgC,CAAC;IAS/C,8EAA8E;IACrE,GAAG,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAI3C,4FAA4F;IACnF,YAAY,CACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAGrD"}
|
package/lib/workflow.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { APIPromise } from "../core/api-promise.js";
|
|
|
2
2
|
import type { RequestOptions } from "../internal/request-options.js";
|
|
3
3
|
import { Workflows, WorkflowUserApprovalResponse, type WorkflowApproveUserParams, type WorkflowRetrieveResponse, type WorkflowRunParams, type WorkflowRunResponse } from "../resources/workflows.js";
|
|
4
4
|
import { type WithJob } from "./job.js";
|
|
5
|
+
import { type Scope } from "./scope.js";
|
|
5
6
|
import type { Scenario } from "./scenario.js";
|
|
6
7
|
type DefinitionFlow = WorkflowRetrieveResponse.Workflow.Flow;
|
|
7
8
|
type NodeType = DefinitionFlow['type'];
|
|
@@ -21,6 +22,8 @@ type NodeType = DefinitionFlow['type'];
|
|
|
21
22
|
*/
|
|
22
23
|
export declare class WorkflowEntity {
|
|
23
24
|
/** @internal */ readonly _client: Scenario;
|
|
25
|
+
/** @internal scope captured from the retrieve call — replayed when `.run()` is invoked without an explicit query override. */
|
|
26
|
+
readonly _scope?: Scope;
|
|
24
27
|
/** Find a node in the workflow definition by ID. */
|
|
25
28
|
findNode(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, nodeId: string): DefinitionFlow | undefined;
|
|
26
29
|
/** Get all nodes of a specific type from the workflow definition. */
|
|
@@ -35,10 +38,13 @@ export declare class WorkflowEntity {
|
|
|
35
38
|
* `client.workflows.run(this.id, params)`.
|
|
36
39
|
*
|
|
37
40
|
* Returns an enhanced response where `response.job` has `.wait()`.
|
|
41
|
+
* If the workflow was fetched with a `projectId` scope (per-call override
|
|
42
|
+
* or client default), that scope is reused unless overridden by
|
|
43
|
+
* `options.query`.
|
|
38
44
|
*/
|
|
39
45
|
run(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, params: WorkflowRunParams, options?: RequestOptions): APIPromise<WithJob<WorkflowRunResponse>>;
|
|
40
|
-
/** @internal Create a WorkflowEntity from raw workflow data. */
|
|
41
|
-
static from(client: Scenario, data: WorkflowRetrieveResponse.Workflow): WorkflowRetrieveResponse.Workflow & WorkflowEntity;
|
|
46
|
+
/** @internal Create a WorkflowEntity from raw workflow data, optionally remembering the originating scope. */
|
|
47
|
+
static from(client: Scenario, data: WorkflowRetrieveResponse.Workflow, scope?: Scope): WorkflowRetrieveResponse.Workflow & WorkflowEntity;
|
|
42
48
|
}
|
|
43
49
|
/** Enhanced retrieve response with workflow entity methods. */
|
|
44
50
|
export type EnhancedWorkflowRetrieveResponse = Omit<WorkflowRetrieveResponse, 'workflow'> & {
|
package/lib/workflow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,+BAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,uCAAoC;AAClE,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,kCAA+B;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,iBAAc;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,+BAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,uCAAoC;AAClE,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,kCAA+B;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,iBAAc;AACjD,OAAO,EAAE,KAAK,KAAK,EAA6B,mBAAgB;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAmB;AAE3C,KAAK,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7D,KAAK,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc;IACzB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IACpD,8HAA8H;IAC9H,SAAiB,MAAM,CAAC,EAAE,KAAK,CAAC;IAEhC,oDAAoD;IACpD,QAAQ,CACN,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EACxD,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAI7B,qEAAqE;IACrE,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,cAAc,EAAE;IAI1G;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,GAAG,IAAI;IAIxE;;;;;;;;OAQG;IACH,GAAG,CACD,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EACxD,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAI3C,8GAA8G;IAC9G,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,wBAAwB,CAAC,QAAQ,EACvC,KAAK,CAAC,EAAE,KAAK,GACZ,wBAAwB,CAAC,QAAQ,GAAG,cAAc;CAMtD;AAED,+DAA+D;AAC/D,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,GAAG;IAC1F,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,GAAG,cAAc,CAAC;CAC9D,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C;;;OAGG;IACM,QAAQ,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,gCAAgC,CAAC;IAS/C,8EAA8E;IACrE,GAAG,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAI3C,4FAA4F;IACnF,YAAY,CACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAGrD"}
|
package/lib/workflow.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EnhancedWorkflows = exports.WorkflowEntity = void 0;
|
|
4
4
|
const workflows_1 = require("../resources/workflows.js");
|
|
5
5
|
const job_1 = require("./job.js");
|
|
6
|
+
const scope_1 = require("./scope.js");
|
|
6
7
|
const workflow_validator_1 = require("./workflow_validator.js");
|
|
7
8
|
/**
|
|
8
9
|
* Enhanced workflow object with helper methods.
|
|
@@ -39,14 +40,19 @@ class WorkflowEntity {
|
|
|
39
40
|
* `client.workflows.run(this.id, params)`.
|
|
40
41
|
*
|
|
41
42
|
* Returns an enhanced response where `response.job` has `.wait()`.
|
|
43
|
+
* If the workflow was fetched with a `projectId` scope (per-call override
|
|
44
|
+
* or client default), that scope is reused unless overridden by
|
|
45
|
+
* `options.query`.
|
|
42
46
|
*/
|
|
43
47
|
run(params, options) {
|
|
44
|
-
return this._client.workflows.run(this.id, params, options);
|
|
48
|
+
return this._client.workflows.run(this.id, params, (0, scope_1.withScope)(this._scope, options));
|
|
45
49
|
}
|
|
46
|
-
/** @internal Create a WorkflowEntity from raw workflow data. */
|
|
47
|
-
static from(client, data) {
|
|
50
|
+
/** @internal Create a WorkflowEntity from raw workflow data, optionally remembering the originating scope. */
|
|
51
|
+
static from(client, data, scope) {
|
|
48
52
|
const entity = Object.assign(Object.create(WorkflowEntity.prototype), data);
|
|
49
53
|
Object.defineProperty(entity, '_client', { value: client, enumerable: false });
|
|
54
|
+
if (scope)
|
|
55
|
+
Object.defineProperty(entity, '_scope', { value: scope, enumerable: false });
|
|
50
56
|
return entity;
|
|
51
57
|
}
|
|
52
58
|
}
|
|
@@ -62,18 +68,20 @@ class EnhancedWorkflows extends workflows_1.Workflows {
|
|
|
62
68
|
* `findNode()`, `getNodesByType()`, and `validate()`.
|
|
63
69
|
*/
|
|
64
70
|
retrieve(workflowID, options) {
|
|
71
|
+
const client = this._client;
|
|
72
|
+
const scope = (0, scope_1.effectiveScope)(options, client.projectId);
|
|
65
73
|
return super.retrieve(workflowID, options)._thenUnwrap((data) => ({
|
|
66
74
|
...data,
|
|
67
|
-
workflow: WorkflowEntity.from(
|
|
75
|
+
workflow: WorkflowEntity.from(client, data.workflow, scope),
|
|
68
76
|
}));
|
|
69
77
|
}
|
|
70
78
|
/** Run a workflow. Returns an enhanced response where `job` has `.wait()`. */
|
|
71
79
|
run(workflowID, params, options) {
|
|
72
|
-
return (0, job_1.enhanceJob)(this._client, super.run(workflowID, params, options));
|
|
80
|
+
return (0, job_1.enhanceJob)(this._client, super.run(workflowID, params, options), options);
|
|
73
81
|
}
|
|
74
82
|
/** Approve a user approval node. Returns an enhanced response where `job` has `.wait()`. */
|
|
75
83
|
userApproval(workflowID, body, options) {
|
|
76
|
-
return (0, job_1.enhanceJob)(this._client, super.userApproval(workflowID, body, options));
|
|
84
|
+
return (0, job_1.enhanceJob)(this._client, super.userApproval(workflowID, body, options), options);
|
|
77
85
|
}
|
|
78
86
|
}
|
|
79
87
|
exports.EnhancedWorkflows = EnhancedWorkflows;
|
package/lib/workflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":";;;AAEA,yDAOgC;AAChC,kCAAiD;AACjD,gEAA4D;AAO5D;;;;;;;;;;;;;GAaG;AACH,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":";;;AAEA,yDAOgC;AAChC,kCAAiD;AACjD,sCAAgE;AAChE,gEAA4D;AAO5D;;;;;;;;;;;;;GAaG;AACH,MAAa,cAAc;IAKzB,oDAAoD;IACpD,QAAQ,CAEN,MAAc;QAEd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,qEAAqE;IACrE,cAAc,CAA2D,IAAc;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,IAAA,yCAAoB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CAED,MAAyB,EACzB,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,8GAA8G;IAC9G,MAAM,CAAC,IAAI,CACT,MAAgB,EAChB,IAAuC,EACvC,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,KAAK;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAtDD,wCAsDC;AAOD;;;;GAIG;AACH,MAAa,iBAAkB,SAAQ,qBAAS;IAC9C;;;OAGG;IACM,QAAQ,CACf,UAAkB,EAClB,OAAwB;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAmB,CAAC;QACxC,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChE,GAAG,IAAI;YACP,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;SAC5D,CAAC,CAAC,CAAC;IACN,CAAC;IAED,8EAA8E;IACrE,GAAG,CACV,UAAkB,EAClB,MAAyB,EACzB,OAAwB;QAExB,OAAO,IAAA,gBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,4FAA4F;IACnF,YAAY,CACnB,UAAkB,EAClB,IAA+B,EAC/B,OAAwB;QAExB,OAAO,IAAA,gBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;CACF;AAlCD,8CAkCC"}
|