@civitai/app-sdk 0.13.1 → 0.15.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/README.md +16 -10
- package/dist/blocks/browsingLevel.d.ts +1 -1
- package/dist/blocks/browsingLevel.js +1 -1
- package/dist/blocks/defineBlock.d.ts +22 -1
- package/dist/blocks/defineBlock.d.ts.map +1 -1
- package/dist/blocks/defineBlock.js +52 -9
- package/dist/blocks/defineBlock.js.map +1 -1
- package/dist/blocks/index.d.ts +3 -3
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +1 -1
- package/dist/blocks/messages.d.ts +138 -0
- package/dist/blocks/messages.d.ts.map +1 -1
- package/dist/blocks/messages.js.map +1 -1
- package/dist/blocks/scopes.d.ts +14 -3
- package/dist/blocks/scopes.d.ts.map +1 -1
- package/dist/blocks/scopes.js +17 -3
- package/dist/blocks/scopes.js.map +1 -1
- package/dist/blocks/types.d.ts +30 -0
- package/dist/blocks/types.d.ts.map +1 -1
- package/dist/oauth/authorize.d.ts +13 -0
- package/dist/oauth/authorize.d.ts.map +1 -1
- package/dist/oauth/authorize.js +13 -0
- package/dist/oauth/authorize.js.map +1 -1
- package/dist/oauth/pkce.d.ts +11 -1
- package/dist/oauth/pkce.d.ts.map +1 -1
- package/dist/oauth/pkce.js +11 -1
- package/dist/oauth/pkce.js.map +1 -1
- package/dist/oauth/token.d.ts +45 -4
- package/dist/oauth/token.d.ts.map +1 -1
- package/dist/oauth/token.js +45 -4
- package/dist/oauth/token.js.map +1 -1
- package/dist/orchestrator/index.d.ts +62 -4
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +62 -4
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/scopes/index.d.ts +28 -4
- package/dist/scopes/index.d.ts.map +1 -1
- package/dist/scopes/index.js +28 -4
- package/dist/scopes/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/app-block/v1.json +145 -134
package/dist/blocks/types.d.ts
CHANGED
|
@@ -193,6 +193,17 @@ export interface ViewerInfo {
|
|
|
193
193
|
*/
|
|
194
194
|
export type Theme = 'light' | 'dark';
|
|
195
195
|
export type WorkflowStatus = 'idle' | 'estimating' | 'confirming' | 'submitting' | 'polling' | 'done' | 'error';
|
|
196
|
+
/**
|
|
197
|
+
* The Buzz currency pools a Civitai App may spend from / read a balance for.
|
|
198
|
+
*
|
|
199
|
+
* DELIBERATELY narrow — the domain-clamped set the Civitai Apps host honors:
|
|
200
|
+
* `blue` (free/earned), `green` (creator-compensation pool), and `yellow`
|
|
201
|
+
* (purchased). It intentionally omits the platform-internal pools (`red`,
|
|
202
|
+
* `purple`, …) that appear in the broader `@civitai/app-sdk/oauth`
|
|
203
|
+
* `BuzzAccountType` — a block can neither prefer nor read those. Keep this in
|
|
204
|
+
* lockstep with civitai/civitai's block submit-body schema clamp.
|
|
205
|
+
*/
|
|
206
|
+
export type BuzzAccountType = 'blue' | 'green' | 'yellow';
|
|
196
207
|
/**
|
|
197
208
|
* Generation parameters a block can override. All optional — the host fills
|
|
198
209
|
* sensible defaults (sampler='Euler', steps=25, dimensions from the
|
|
@@ -252,6 +263,15 @@ export type WorkflowBody = {
|
|
|
252
263
|
modelVersionId: number;
|
|
253
264
|
strength?: number;
|
|
254
265
|
}>;
|
|
266
|
+
/**
|
|
267
|
+
* Optional preferred Buzz pool to fund this generation from — a *preference*,
|
|
268
|
+
* not a guarantee. The host clamps it server-side to what the viewer actually
|
|
269
|
+
* holds and to the domain-allowed pools (a `blockWorkflowBodySchema` field on
|
|
270
|
+
* civitai/civitai; preferred-first, then falls back). Omit for today's default
|
|
271
|
+
* host-chosen funding order (backward compatible). Whichever pool ended up the
|
|
272
|
+
* primary funder is echoed back on {@link BlockWorkflowSnapshot.spentAccountType}.
|
|
273
|
+
*/
|
|
274
|
+
accountType?: BuzzAccountType;
|
|
255
275
|
params: BlockTextToImageParams;
|
|
256
276
|
};
|
|
257
277
|
/**
|
|
@@ -278,6 +298,16 @@ export interface BlockWorkflowSnapshot {
|
|
|
278
298
|
};
|
|
279
299
|
imageUrls?: string[];
|
|
280
300
|
error?: string;
|
|
301
|
+
/**
|
|
302
|
+
* The Buzz pool that was the PRIMARY FUNDER of this generation — i.e. the
|
|
303
|
+
* account with the LARGEST debit, which the host stamps onto the workflow
|
|
304
|
+
* snapshot server-side. This is NOT necessarily "the paid account": a
|
|
305
|
+
* generation covered mostly by free/earned Buzz reports `spentAccountType:
|
|
306
|
+
* 'blue'`. Populated by the host from the Phase-1 backend `spentAccountType`
|
|
307
|
+
* field; absent when the host predates it or no spend occurred. Informational
|
|
308
|
+
* only — surface it (e.g. "funded from your yellow balance") but don't gate on it.
|
|
309
|
+
*/
|
|
310
|
+
spentAccountType?: BuzzAccountType;
|
|
281
311
|
/**
|
|
282
312
|
* Set when the host opportunistically claimed a Buzz reward on the user's
|
|
283
313
|
* behalf during submit. Currently the host only fires this for the daily
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blocks/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blocks/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,19 @@ export interface BuildAuthorizeUrlOptions {
|
|
|
10
10
|
/**
|
|
11
11
|
* Build the Civitai OAuth authorize URL. The returned URL is what you redirect
|
|
12
12
|
* the browser to. Token exchange happens on the redirect_uri callback.
|
|
13
|
+
*
|
|
14
|
+
* `scope` is a bitmask — compose it from named flags with
|
|
15
|
+
* {@link bitmaskFromScopes} rather than hard-coding a number.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const { challenge } = generatePkce();
|
|
19
|
+
* const url = buildAuthorizeUrl({
|
|
20
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
21
|
+
* redirectUri: 'https://your-app.com/api/auth/callback/civitai',
|
|
22
|
+
* scope: bitmaskFromScopes(['AIServicesWrite', 'BuzzRead', 'UserRead']),
|
|
23
|
+
* state: generateState(),
|
|
24
|
+
* codeChallenge: challenge,
|
|
25
|
+
* });
|
|
13
26
|
*/
|
|
14
27
|
export declare function buildAuthorizeUrl(opts: BuildAuthorizeUrlOptions): string;
|
|
15
28
|
//# sourceMappingURL=authorize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../src/oauth/authorize.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID
|
|
1
|
+
{"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../src/oauth/authorize.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAWxE"}
|
package/dist/oauth/authorize.js
CHANGED
|
@@ -2,6 +2,19 @@ const DEFAULT_CIVITAI_BASE_URL = 'https://civitai.com';
|
|
|
2
2
|
/**
|
|
3
3
|
* Build the Civitai OAuth authorize URL. The returned URL is what you redirect
|
|
4
4
|
* the browser to. Token exchange happens on the redirect_uri callback.
|
|
5
|
+
*
|
|
6
|
+
* `scope` is a bitmask — compose it from named flags with
|
|
7
|
+
* {@link bitmaskFromScopes} rather than hard-coding a number.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const { challenge } = generatePkce();
|
|
11
|
+
* const url = buildAuthorizeUrl({
|
|
12
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
13
|
+
* redirectUri: 'https://your-app.com/api/auth/callback/civitai',
|
|
14
|
+
* scope: bitmaskFromScopes(['AIServicesWrite', 'BuzzRead', 'UserRead']),
|
|
15
|
+
* state: generateState(),
|
|
16
|
+
* codeChallenge: challenge,
|
|
17
|
+
* });
|
|
5
18
|
*/
|
|
6
19
|
export function buildAuthorizeUrl(opts) {
|
|
7
20
|
const base = opts.baseUrl ?? DEFAULT_CIVITAI_BASE_URL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../src/oauth/authorize.ts"],"names":[],"mappings":"AAUA,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAEvD
|
|
1
|
+
{"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../src/oauth/authorize.ts"],"names":[],"mappings":"AAUA,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA8B;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,wBAAwB,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/oauth/pkce.d.ts
CHANGED
|
@@ -3,7 +3,17 @@ export interface Pkce {
|
|
|
3
3
|
challenge: string;
|
|
4
4
|
method: 'S256';
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Generate a PKCE code verifier and S256 challenge.
|
|
8
|
+
*
|
|
9
|
+
* Persist `verifier` against the user's session (e.g. a sealed cookie) and
|
|
10
|
+
* send `challenge` to {@link buildAuthorizeUrl}; the `verifier` is replayed to
|
|
11
|
+
* {@link exchangeCode} on the callback.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const { verifier, challenge } = generatePkce();
|
|
15
|
+
* const url = buildAuthorizeUrl({ clientId, redirectUri, scope, state, codeChallenge: challenge });
|
|
16
|
+
*/
|
|
7
17
|
export declare function generatePkce(): Pkce;
|
|
8
18
|
/** Generate a random URL-safe state value for OAuth state-parameter use. */
|
|
9
19
|
export declare function generateState(byteLength?: number): string;
|
package/dist/oauth/pkce.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../src/oauth/pkce.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../src/oauth/pkce.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,UAAU,SAAK,GAAG,MAAM,CAErD"}
|
package/dist/oauth/pkce.js
CHANGED
|
@@ -2,7 +2,17 @@ import { createHash, randomBytes } from 'node:crypto';
|
|
|
2
2
|
function base64UrlEncode(buf) {
|
|
3
3
|
return buf.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
4
4
|
}
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Generate a PKCE code verifier and S256 challenge.
|
|
7
|
+
*
|
|
8
|
+
* Persist `verifier` against the user's session (e.g. a sealed cookie) and
|
|
9
|
+
* send `challenge` to {@link buildAuthorizeUrl}; the `verifier` is replayed to
|
|
10
|
+
* {@link exchangeCode} on the callback.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const { verifier, challenge } = generatePkce();
|
|
14
|
+
* const url = buildAuthorizeUrl({ clientId, redirectUri, scope, state, codeChallenge: challenge });
|
|
15
|
+
*/
|
|
6
16
|
export function generatePkce() {
|
|
7
17
|
const verifier = base64UrlEncode(randomBytes(32));
|
|
8
18
|
const challenge = base64UrlEncode(createHash('sha256').update(verifier).digest());
|
package/dist/oauth/pkce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/oauth/pkce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3F,CAAC;AAQD
|
|
1
|
+
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/oauth/pkce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3F,CAAC;AAQD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACjD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,UAAU,GAAG,EAAE;IAC3C,OAAO,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/oauth/token.d.ts
CHANGED
|
@@ -22,13 +22,54 @@ export declare class OAuthError extends Error {
|
|
|
22
22
|
readonly name = "OAuthError";
|
|
23
23
|
constructor(message: string, status: number, body: unknown);
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Exchange an authorization code for tokens (PKCE flow). Call this in your
|
|
27
|
+
* `redirect_uri` callback handler with the `code` from the query string and the
|
|
28
|
+
* `codeVerifier` you stashed when starting the flow. Omit `clientSecret` for
|
|
29
|
+
* public clients. Throws {@link OAuthError} on a non-2xx token response.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const tokens = await exchangeCode({
|
|
33
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
34
|
+
* clientSecret: process.env.CIVITAI_CLIENT_SECRET, // omit for public clients
|
|
35
|
+
* redirectUri: 'https://your-app.com/api/auth/callback/civitai',
|
|
36
|
+
* code: codeFromQuery,
|
|
37
|
+
* codeVerifier: verifierFromSealedCookie,
|
|
38
|
+
* });
|
|
39
|
+
*/
|
|
26
40
|
export declare function exchangeCode(opts: ExchangeCodeOpts): Promise<OAuthTokens>;
|
|
27
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Refresh an access token using a refresh_token grant. Returns a fresh
|
|
43
|
+
* {@link OAuthTokens} (with a recomputed `expires_at`). Throws
|
|
44
|
+
* {@link OAuthError} on failure — treat that as "re-authenticate."
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* const tokens = await refreshToken({
|
|
48
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
49
|
+
* clientSecret: process.env.CIVITAI_CLIENT_SECRET, // omit for public clients
|
|
50
|
+
* refreshToken: stored.refresh_token,
|
|
51
|
+
* });
|
|
52
|
+
*/
|
|
28
53
|
export declare function refreshToken(opts: RefreshTokenOpts): Promise<OAuthTokens>;
|
|
29
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Revoke an access or refresh token (e.g. on logout). Omit `clientSecret` for
|
|
56
|
+
* public clients. Throws {@link OAuthError} on a non-2xx response.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* await revokeToken({
|
|
60
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
61
|
+
* token: tokens.refresh_token,
|
|
62
|
+
* });
|
|
63
|
+
*/
|
|
30
64
|
export declare function revokeToken(opts: RevokeTokenOpts): Promise<void>;
|
|
31
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Fetch the OAuth-authenticated user's profile via `/api/v1/me`. Does NOT
|
|
67
|
+
* include Buzz balance — use {@link fetchBuzzAccount} (needs `BuzzRead`) for
|
|
68
|
+
* that. Throws {@link OAuthError} on a non-2xx response.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* const me = await fetchMe({ accessToken: tokens.access_token });
|
|
72
|
+
*/
|
|
32
73
|
export declare function fetchMe(opts: {
|
|
33
74
|
baseUrl?: string;
|
|
34
75
|
accessToken: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/oauth/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,WAAW,EAAE,MAAM,aAAa,CAAC;AAInE,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,UAAW,SAAQ,KAAK;IAIjC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO;IAJxB,SAAkB,IAAI,gBAAgB;gBAEpC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO;CAIzB;AA0CD
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/oauth/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,WAAW,EAAE,MAAM,aAAa,CAAC;AAInE,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,UAAW,SAAQ,KAAK;IAIjC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO;IAJxB,SAAkB,IAAI,gBAAgB;gBAEpC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO;CAIzB;AA0CD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAW/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAS/E;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtE;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAS/F;AAED,oDAAoD;AACpD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,+CAA+C;IAC/C,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAqBzF"}
|
package/dist/oauth/token.js
CHANGED
|
@@ -42,7 +42,21 @@ function shapeTokens(json, fallbackScope) {
|
|
|
42
42
|
token_type: json.token_type ?? 'Bearer',
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Exchange an authorization code for tokens (PKCE flow). Call this in your
|
|
47
|
+
* `redirect_uri` callback handler with the `code` from the query string and the
|
|
48
|
+
* `codeVerifier` you stashed when starting the flow. Omit `clientSecret` for
|
|
49
|
+
* public clients. Throws {@link OAuthError} on a non-2xx token response.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* const tokens = await exchangeCode({
|
|
53
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
54
|
+
* clientSecret: process.env.CIVITAI_CLIENT_SECRET, // omit for public clients
|
|
55
|
+
* redirectUri: 'https://your-app.com/api/auth/callback/civitai',
|
|
56
|
+
* code: codeFromQuery,
|
|
57
|
+
* codeVerifier: verifierFromSealedCookie,
|
|
58
|
+
* });
|
|
59
|
+
*/
|
|
46
60
|
export async function exchangeCode(opts) {
|
|
47
61
|
const base = opts.baseUrl ?? DEFAULT_CIVITAI_BASE_URL;
|
|
48
62
|
const json = (await postForm(`${base}/api/auth/oauth/token`, {
|
|
@@ -55,7 +69,18 @@ export async function exchangeCode(opts) {
|
|
|
55
69
|
}));
|
|
56
70
|
return shapeTokens(json);
|
|
57
71
|
}
|
|
58
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Refresh an access token using a refresh_token grant. Returns a fresh
|
|
74
|
+
* {@link OAuthTokens} (with a recomputed `expires_at`). Throws
|
|
75
|
+
* {@link OAuthError} on failure — treat that as "re-authenticate."
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* const tokens = await refreshToken({
|
|
79
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
80
|
+
* clientSecret: process.env.CIVITAI_CLIENT_SECRET, // omit for public clients
|
|
81
|
+
* refreshToken: stored.refresh_token,
|
|
82
|
+
* });
|
|
83
|
+
*/
|
|
59
84
|
export async function refreshToken(opts) {
|
|
60
85
|
const base = opts.baseUrl ?? DEFAULT_CIVITAI_BASE_URL;
|
|
61
86
|
const json = (await postForm(`${base}/api/auth/oauth/token`, {
|
|
@@ -66,7 +91,16 @@ export async function refreshToken(opts) {
|
|
|
66
91
|
}));
|
|
67
92
|
return shapeTokens(json);
|
|
68
93
|
}
|
|
69
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* Revoke an access or refresh token (e.g. on logout). Omit `clientSecret` for
|
|
96
|
+
* public clients. Throws {@link OAuthError} on a non-2xx response.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* await revokeToken({
|
|
100
|
+
* clientId: process.env.CIVITAI_CLIENT_ID!,
|
|
101
|
+
* token: tokens.refresh_token,
|
|
102
|
+
* });
|
|
103
|
+
*/
|
|
70
104
|
export async function revokeToken(opts) {
|
|
71
105
|
const base = opts.baseUrl ?? DEFAULT_CIVITAI_BASE_URL;
|
|
72
106
|
await postForm(`${base}/api/auth/oauth/revoke`, {
|
|
@@ -75,7 +109,14 @@ export async function revokeToken(opts) {
|
|
|
75
109
|
client_secret: opts.clientSecret,
|
|
76
110
|
});
|
|
77
111
|
}
|
|
78
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* Fetch the OAuth-authenticated user's profile via `/api/v1/me`. Does NOT
|
|
114
|
+
* include Buzz balance — use {@link fetchBuzzAccount} (needs `BuzzRead`) for
|
|
115
|
+
* that. Throws {@link OAuthError} on a non-2xx response.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* const me = await fetchMe({ accessToken: tokens.access_token });
|
|
119
|
+
*/
|
|
79
120
|
export async function fetchMe(opts) {
|
|
80
121
|
const base = opts.baseUrl ?? DEFAULT_CIVITAI_BASE_URL;
|
|
81
122
|
const res = await fetch(`${base}/api/v1/me`, {
|
package/dist/oauth/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/oauth/token.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAuBvD,MAAM,OAAO,UAAW,SAAQ,KAAK;IAIxB;IACA;IAJO,IAAI,GAAG,YAAY,CAAC;IACtC,YACE,OAAe,EACN,MAAc,EACd,IAAa;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;IAGxB,CAAC;CACF;AAED,KAAK,UAAU,QAAQ,CACrB,GAAW,EACX,IAAwC;IAExC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,UAAU,CAClB,yBAAyB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,EACvD,GAAG,CAAC,MAAM,EACV,MAAM,CACP,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAwB,EAAE,aAAsB;IACnE,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI;QACzD,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,IAAI,CAAC,CAAC;QAC7F,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,QAAQ;KACxC,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/oauth/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -198,6 +198,17 @@ export interface CreateOrchestratorClientOptions {
|
|
|
198
198
|
/** Orchestrator base URL. Defaults to Civitai's prod orchestrator. */
|
|
199
199
|
baseUrl?: string;
|
|
200
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Build an {@link OrchestratorClient} from a user's access token. Pass the
|
|
203
|
+
* result to the per-call helpers ({@link estimateWorkflow},
|
|
204
|
+
* {@link submitWorkflow}, {@link pollWorkflow}, …). The orchestrator debits the
|
|
205
|
+
* TOKEN OWNER's Buzz, so this is the user's OAuth token (or personal API key).
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* const client = createOrchestratorClient({ accessToken: tokens.access_token });
|
|
209
|
+
* const body = buildTextToImageBody({ prompt: 'a fox' });
|
|
210
|
+
* const estimate = await estimateWorkflow(client, body);
|
|
211
|
+
*/
|
|
201
212
|
export declare function createOrchestratorClient(opts: CreateOrchestratorClientOptions): OrchestratorClient;
|
|
202
213
|
/**
|
|
203
214
|
* Internal raw-fetch helper. Logs the failing response to console.error and
|
|
@@ -211,7 +222,14 @@ export interface BuildTextToImageBodyOptions {
|
|
|
211
222
|
}
|
|
212
223
|
/**
|
|
213
224
|
* Build a `textToImage` workflow body from a {@link GenerateInput}. Mirrors
|
|
214
|
-
* the shape every starter's existing `buildWorkflowBody` produced.
|
|
225
|
+
* the shape every starter's existing `buildWorkflowBody` produced. For diffusion
|
|
226
|
+
* checkpoints (SDXL / Flux.1 / Pony / SD1.5) via an AIR URN `model`; for
|
|
227
|
+
* closed-source image-gen APIs use {@link buildImageGenBody} instead.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* const body = buildTextToImageBody({ prompt: 'a fox' }, { tags: ['my-app'] });
|
|
231
|
+
* const estimate = await estimateWorkflow(client, body);
|
|
232
|
+
* const submitted = await submitWorkflow(client, body);
|
|
215
233
|
*/
|
|
216
234
|
export declare function buildTextToImageBody(input: GenerateInput, opts?: BuildTextToImageBodyOptions): unknown;
|
|
217
235
|
/**
|
|
@@ -316,11 +334,32 @@ export interface BuildWorkflowBodyOptions {
|
|
|
316
334
|
export declare function buildWorkflowBody(step: BuildWorkflowBodyStep, opts?: BuildWorkflowBodyOptions): unknown;
|
|
317
335
|
/**
|
|
318
336
|
* Cost preview ("what if") — runs the workflow validation/pricing pipeline
|
|
319
|
-
* without committing any Buzz.
|
|
337
|
+
* without committing any Buzz. Read `cost.total` off the returned snapshot and
|
|
338
|
+
* show it before {@link submitWorkflow}.
|
|
339
|
+
*
|
|
340
|
+
* @example
|
|
341
|
+
* const estimate = await estimateWorkflow(client, body);
|
|
342
|
+
* console.log(`This will cost ${estimate.cost?.total ?? 0} Buzz`);
|
|
320
343
|
*/
|
|
321
344
|
export declare function estimateWorkflow(client: OrchestratorClient, body: unknown): Promise<WorkflowSnapshot>;
|
|
322
|
-
/**
|
|
345
|
+
/**
|
|
346
|
+
* Submit a workflow for real execution. Debits the token-owner's Buzz. Returns
|
|
347
|
+
* the initial snapshot — poll it to terminal with {@link pollWorkflow}.
|
|
348
|
+
*
|
|
349
|
+
* @example
|
|
350
|
+
* const submitted = await submitWorkflow(client, body);
|
|
351
|
+
* const finished = await pollWorkflow(client, submitted.id, { timeoutMs: 30_000 });
|
|
352
|
+
* const urls = extractImageUrls(finished);
|
|
353
|
+
*/
|
|
323
354
|
export declare function submitWorkflow(client: OrchestratorClient, body: unknown): Promise<WorkflowSnapshot>;
|
|
355
|
+
/**
|
|
356
|
+
* Fetch a single workflow's current snapshot by id. One-shot; for "wait until
|
|
357
|
+
* done" use {@link pollWorkflow}.
|
|
358
|
+
*
|
|
359
|
+
* @example
|
|
360
|
+
* const snap = await getWorkflow(client, workflowId);
|
|
361
|
+
* if (isTerminal(snap)) console.log(extractImageUrls(snap));
|
|
362
|
+
*/
|
|
324
363
|
export declare function getWorkflow(client: OrchestratorClient, workflowId: string): Promise<WorkflowSnapshot>;
|
|
325
364
|
export interface PollWorkflowOptions {
|
|
326
365
|
/** Polling interval in ms. Default 1000. */
|
|
@@ -335,9 +374,28 @@ export interface PollWorkflowOptions {
|
|
|
335
374
|
* until it reaches a terminal status, the timeout elapses, or the signal
|
|
336
375
|
* aborts. Returns the latest snapshot regardless of which condition tripped —
|
|
337
376
|
* callers inspect {@link isTerminal} on the result to decide what to do.
|
|
377
|
+
*
|
|
378
|
+
* @example
|
|
379
|
+
* const finished = await pollWorkflow(client, submitted.id, { timeoutMs: 30_000 });
|
|
380
|
+
* if (isTerminal(finished)) console.log(extractImageUrls(finished));
|
|
338
381
|
*/
|
|
339
382
|
export declare function pollWorkflow(client: OrchestratorClient, workflowId: string, opts?: PollWorkflowOptions): Promise<WorkflowSnapshot>;
|
|
383
|
+
/**
|
|
384
|
+
* True when a snapshot has reached a terminal status (`succeeded` | `failed` |
|
|
385
|
+
* `expired` | `canceled`) — i.e. no further polling is needed. Null/undefined
|
|
386
|
+
* or a status-less snapshot is treated as non-terminal.
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* if (isTerminal(snap)) stopPolling();
|
|
390
|
+
*/
|
|
340
391
|
export declare function isTerminal(snap: WorkflowSnapshot | null | undefined): boolean;
|
|
341
|
-
/**
|
|
392
|
+
/**
|
|
393
|
+
* Pull every available image URL out of a workflow snapshot — reads both the
|
|
394
|
+
* canonical `output.images[]` and the legacy `output.blobs[]` (image/* only).
|
|
395
|
+
*
|
|
396
|
+
* @example
|
|
397
|
+
* const urls = extractImageUrls(finished); // string[]
|
|
398
|
+
* urls.forEach((u) => render(<img src={u} />));
|
|
399
|
+
*/
|
|
342
400
|
export declare function extractImageUrls(snap: WorkflowSnapshot | null | undefined): string[];
|
|
343
401
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -151,6 +151,17 @@ export class OrchestratorError extends Error {
|
|
|
151
151
|
this.body = body;
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Build an {@link OrchestratorClient} from a user's access token. Pass the
|
|
156
|
+
* result to the per-call helpers ({@link estimateWorkflow},
|
|
157
|
+
* {@link submitWorkflow}, {@link pollWorkflow}, …). The orchestrator debits the
|
|
158
|
+
* TOKEN OWNER's Buzz, so this is the user's OAuth token (or personal API key).
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* const client = createOrchestratorClient({ accessToken: tokens.access_token });
|
|
162
|
+
* const body = buildTextToImageBody({ prompt: 'a fox' });
|
|
163
|
+
* const estimate = await estimateWorkflow(client, body);
|
|
164
|
+
*/
|
|
154
165
|
export function createOrchestratorClient(opts) {
|
|
155
166
|
return {
|
|
156
167
|
baseUrl: opts.baseUrl ?? DEFAULT_ORCHESTRATOR_BASE_URL,
|
|
@@ -190,7 +201,14 @@ export async function callOrchestrator(client, path, init = {}) {
|
|
|
190
201
|
}
|
|
191
202
|
/**
|
|
192
203
|
* Build a `textToImage` workflow body from a {@link GenerateInput}. Mirrors
|
|
193
|
-
* the shape every starter's existing `buildWorkflowBody` produced.
|
|
204
|
+
* the shape every starter's existing `buildWorkflowBody` produced. For diffusion
|
|
205
|
+
* checkpoints (SDXL / Flux.1 / Pony / SD1.5) via an AIR URN `model`; for
|
|
206
|
+
* closed-source image-gen APIs use {@link buildImageGenBody} instead.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* const body = buildTextToImageBody({ prompt: 'a fox' }, { tags: ['my-app'] });
|
|
210
|
+
* const estimate = await estimateWorkflow(client, body);
|
|
211
|
+
* const submitted = await submitWorkflow(client, body);
|
|
194
212
|
*/
|
|
195
213
|
export function buildTextToImageBody(input, opts = {}) {
|
|
196
214
|
const body = {
|
|
@@ -298,7 +316,12 @@ export function buildWorkflowBody(step, opts = {}) {
|
|
|
298
316
|
// ---------- Workflow endpoints ---------------------------------------------
|
|
299
317
|
/**
|
|
300
318
|
* Cost preview ("what if") — runs the workflow validation/pricing pipeline
|
|
301
|
-
* without committing any Buzz.
|
|
319
|
+
* without committing any Buzz. Read `cost.total` off the returned snapshot and
|
|
320
|
+
* show it before {@link submitWorkflow}.
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* const estimate = await estimateWorkflow(client, body);
|
|
324
|
+
* console.log(`This will cost ${estimate.cost?.total ?? 0} Buzz`);
|
|
302
325
|
*/
|
|
303
326
|
export function estimateWorkflow(client, body) {
|
|
304
327
|
return callOrchestrator(client, '/v2/consumer/workflows?whatif=true', {
|
|
@@ -306,13 +329,29 @@ export function estimateWorkflow(client, body) {
|
|
|
306
329
|
body: JSON.stringify(body),
|
|
307
330
|
});
|
|
308
331
|
}
|
|
309
|
-
/**
|
|
332
|
+
/**
|
|
333
|
+
* Submit a workflow for real execution. Debits the token-owner's Buzz. Returns
|
|
334
|
+
* the initial snapshot — poll it to terminal with {@link pollWorkflow}.
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* const submitted = await submitWorkflow(client, body);
|
|
338
|
+
* const finished = await pollWorkflow(client, submitted.id, { timeoutMs: 30_000 });
|
|
339
|
+
* const urls = extractImageUrls(finished);
|
|
340
|
+
*/
|
|
310
341
|
export function submitWorkflow(client, body) {
|
|
311
342
|
return callOrchestrator(client, '/v2/consumer/workflows', {
|
|
312
343
|
method: 'POST',
|
|
313
344
|
body: JSON.stringify(body),
|
|
314
345
|
});
|
|
315
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* Fetch a single workflow's current snapshot by id. One-shot; for "wait until
|
|
349
|
+
* done" use {@link pollWorkflow}.
|
|
350
|
+
*
|
|
351
|
+
* @example
|
|
352
|
+
* const snap = await getWorkflow(client, workflowId);
|
|
353
|
+
* if (isTerminal(snap)) console.log(extractImageUrls(snap));
|
|
354
|
+
*/
|
|
316
355
|
export function getWorkflow(client, workflowId) {
|
|
317
356
|
return callOrchestrator(client, `/v2/consumer/workflows/${encodeURIComponent(workflowId)}`, { method: 'GET' });
|
|
318
357
|
}
|
|
@@ -321,6 +360,10 @@ export function getWorkflow(client, workflowId) {
|
|
|
321
360
|
* until it reaches a terminal status, the timeout elapses, or the signal
|
|
322
361
|
* aborts. Returns the latest snapshot regardless of which condition tripped —
|
|
323
362
|
* callers inspect {@link isTerminal} on the result to decide what to do.
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* const finished = await pollWorkflow(client, submitted.id, { timeoutMs: 30_000 });
|
|
366
|
+
* if (isTerminal(finished)) console.log(extractImageUrls(finished));
|
|
324
367
|
*/
|
|
325
368
|
export async function pollWorkflow(client, workflowId, opts = {}) {
|
|
326
369
|
const interval = opts.intervalMs ?? 1000;
|
|
@@ -336,12 +379,27 @@ export async function pollWorkflow(client, workflowId, opts = {}) {
|
|
|
336
379
|
return snapshot;
|
|
337
380
|
}
|
|
338
381
|
// ---------- Snapshot inspection --------------------------------------------
|
|
382
|
+
/**
|
|
383
|
+
* True when a snapshot has reached a terminal status (`succeeded` | `failed` |
|
|
384
|
+
* `expired` | `canceled`) — i.e. no further polling is needed. Null/undefined
|
|
385
|
+
* or a status-less snapshot is treated as non-terminal.
|
|
386
|
+
*
|
|
387
|
+
* @example
|
|
388
|
+
* if (isTerminal(snap)) stopPolling();
|
|
389
|
+
*/
|
|
339
390
|
export function isTerminal(snap) {
|
|
340
391
|
if (!snap?.status)
|
|
341
392
|
return false;
|
|
342
393
|
return TERMINAL_STATUSES.includes(String(snap.status));
|
|
343
394
|
}
|
|
344
|
-
/**
|
|
395
|
+
/**
|
|
396
|
+
* Pull every available image URL out of a workflow snapshot — reads both the
|
|
397
|
+
* canonical `output.images[]` and the legacy `output.blobs[]` (image/* only).
|
|
398
|
+
*
|
|
399
|
+
* @example
|
|
400
|
+
* const urls = extractImageUrls(finished); // string[]
|
|
401
|
+
* urls.forEach((u) => render(<img src={u} />));
|
|
402
|
+
*/
|
|
345
403
|
export function extractImageUrls(snap) {
|
|
346
404
|
if (!snap?.steps)
|
|
347
405
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
|