@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.
Files changed (41) hide show
  1. package/README.md +16 -10
  2. package/dist/blocks/browsingLevel.d.ts +1 -1
  3. package/dist/blocks/browsingLevel.js +1 -1
  4. package/dist/blocks/defineBlock.d.ts +22 -1
  5. package/dist/blocks/defineBlock.d.ts.map +1 -1
  6. package/dist/blocks/defineBlock.js +52 -9
  7. package/dist/blocks/defineBlock.js.map +1 -1
  8. package/dist/blocks/index.d.ts +3 -3
  9. package/dist/blocks/index.d.ts.map +1 -1
  10. package/dist/blocks/index.js +1 -1
  11. package/dist/blocks/messages.d.ts +138 -0
  12. package/dist/blocks/messages.d.ts.map +1 -1
  13. package/dist/blocks/messages.js.map +1 -1
  14. package/dist/blocks/scopes.d.ts +14 -3
  15. package/dist/blocks/scopes.d.ts.map +1 -1
  16. package/dist/blocks/scopes.js +17 -3
  17. package/dist/blocks/scopes.js.map +1 -1
  18. package/dist/blocks/types.d.ts +30 -0
  19. package/dist/blocks/types.d.ts.map +1 -1
  20. package/dist/oauth/authorize.d.ts +13 -0
  21. package/dist/oauth/authorize.d.ts.map +1 -1
  22. package/dist/oauth/authorize.js +13 -0
  23. package/dist/oauth/authorize.js.map +1 -1
  24. package/dist/oauth/pkce.d.ts +11 -1
  25. package/dist/oauth/pkce.d.ts.map +1 -1
  26. package/dist/oauth/pkce.js +11 -1
  27. package/dist/oauth/pkce.js.map +1 -1
  28. package/dist/oauth/token.d.ts +45 -4
  29. package/dist/oauth/token.d.ts.map +1 -1
  30. package/dist/oauth/token.js +45 -4
  31. package/dist/oauth/token.js.map +1 -1
  32. package/dist/orchestrator/index.d.ts +62 -4
  33. package/dist/orchestrator/index.d.ts.map +1 -1
  34. package/dist/orchestrator/index.js +62 -4
  35. package/dist/orchestrator/index.js.map +1 -1
  36. package/dist/scopes/index.d.ts +28 -4
  37. package/dist/scopes/index.d.ts.map +1 -1
  38. package/dist/scopes/index.js +28 -4
  39. package/dist/scopes/index.js.map +1 -1
  40. package/package.json +1 -1
  41. package/schemas/app-block/v1.json +145 -134
@@ -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;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAWxE"}
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"}
@@ -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;;;GAGG;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"}
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"}
@@ -3,7 +3,17 @@ export interface Pkce {
3
3
  challenge: string;
4
4
  method: 'S256';
5
5
  }
6
- /** Generate a PKCE code verifier and S256 challenge. */
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;
@@ -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,wDAAwD;AACxD,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,UAAU,SAAK,GAAG,MAAM,CAErD"}
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"}
@@ -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
- /** Generate a PKCE code verifier and S256 challenge. */
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());
@@ -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,wDAAwD;AACxD,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"}
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"}
@@ -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
- /** Exchange an authorization code for tokens (PKCE flow). */
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
- /** Refresh an access token using a refresh_token grant. */
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
- /** Revoke an access or refresh token. */
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
- /** Fetch the OAuth-authenticated user's profile via `/api/v1/me`. */
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,6DAA6D;AAC7D,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAW/E;AAED,2DAA2D;AAC3D,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAS/E;AAED,yCAAyC;AACzC,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtE;AAED,qEAAqE;AACrE,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"}
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"}
@@ -42,7 +42,21 @@ function shapeTokens(json, fallbackScope) {
42
42
  token_type: json.token_type ?? 'Bearer',
43
43
  };
44
44
  }
45
- /** Exchange an authorization code for tokens (PKCE flow). */
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
- /** Refresh an access token using a refresh_token grant. */
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
- /** Revoke an access or refresh token. */
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
- /** Fetch the OAuth-authenticated user's profile via `/api/v1/me`. */
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`, {
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/oauth/token.ts"],"names":[],"mappings":"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"}
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
- /** Submit a workflow for real execution. Debits the token-owner's Buzz. */
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
- /** Pull every available image URL out of a workflow snapshot. */
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
- /** Submit a workflow for real execution. Debits the token-owner's Buzz. */
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
- /** Pull every available image URL out of a workflow snapshot. */
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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"}