@civitai/app-sdk 0.7.0 → 0.8.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/LICENSE +21 -0
- package/README.md +99 -0
- package/dist/blocks/types.d.ts +5 -3
- package/dist/blocks/types.d.ts.map +1 -1
- package/dist/scopes/index.d.ts.map +1 -1
- package/dist/scopes/index.js +5 -2
- package/dist/scopes/index.js.map +1 -1
- package/package.json +8 -8
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Civitai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -28,6 +28,105 @@ import { defineBlock, BLOCK_SCOPES } from '@civitai/app-sdk/blocks';
|
|
|
28
28
|
import manifestSchema from '@civitai/app-sdk/schemas/app-block/v1.json' with { type: 'json' };
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
## App Blocks contract (`@civitai/app-sdk/blocks`)
|
|
32
|
+
|
|
33
|
+
> Building an **App Block** (an iframe-embedded UI on a civitai.com page)? This
|
|
34
|
+
> subpath is the framework-agnostic contract — manifest types, scope strings,
|
|
35
|
+
> the `postMessage` protocol, and the `defineBlock` validator. The React hooks +
|
|
36
|
+
> transport that consume it live in
|
|
37
|
+
> [`@civitai/blocks-react`](https://www.npmjs.com/package/@civitai/blocks-react).
|
|
38
|
+
> Start from the runnable [examples](https://github.com/civitai/civitai-app-starters/tree/main/starters/examples).
|
|
39
|
+
>
|
|
40
|
+
> This is distinct from the OAuth flow above: a *block* runs inside civitai.com
|
|
41
|
+
> and gets a short-lived block-scoped JWT handed to it; an *app* (the OAuth
|
|
42
|
+
> starters) runs on your own domain and does the Authorization-Code dance.
|
|
43
|
+
|
|
44
|
+
### The transport / message contract
|
|
45
|
+
|
|
46
|
+
A block runs in a sandboxed iframe. The host (civitai.com) and the block speak
|
|
47
|
+
over `window.postMessage({ type, payload }, targetOrigin)`, discriminated by
|
|
48
|
+
`type`. The full union is exported:
|
|
49
|
+
|
|
50
|
+
- **parent → block**: `BLOCK_INIT`, `TOKEN_REFRESH`, `TOKEN_REFRESH_RESPONSE`,
|
|
51
|
+
`ESTIMATE_RESULT`, `WORKFLOW_SUBMITTED`, `WORKFLOW_STATUS`,
|
|
52
|
+
`BUZZ_PURCHASE_RESULT`, `CHECKPOINT_PICKER_RESULT`, `USER_CHECKPOINT_SET`,
|
|
53
|
+
`APP_STORAGE_*_RESULT`, `SUSPEND`, `RESUME` (`ParentToBlockMessage`).
|
|
54
|
+
- **block → parent**: `BLOCK_READY`, `BLOCK_ERROR`, `REQUEST_TOKEN`,
|
|
55
|
+
`RESIZE_IFRAME`, `SUBMIT_WORKFLOW`, `ESTIMATE_WORKFLOW`, `POLL_WORKFLOW`,
|
|
56
|
+
`OPEN_BUZZ_PURCHASE`, `OPEN_CHECKPOINT_PICKER`, `SET_USER_CHECKPOINT`,
|
|
57
|
+
`NAVIGATE`, `TRACK_EVENT`, `APP_STORAGE_*` (`BlockToParentMessage`).
|
|
58
|
+
|
|
59
|
+
`isMessage(data, 'BLOCK_INIT')` is a **discriminator-only** narrowing helper — it
|
|
60
|
+
checks `data.type`, NOT the payload shape. Anything crossing the iframe trust
|
|
61
|
+
boundary must be payload-validated at the boundary (the React transport does this
|
|
62
|
+
for you).
|
|
63
|
+
|
|
64
|
+
### `BLOCK_INIT` — the first message
|
|
65
|
+
|
|
66
|
+
The host waits for the iframe `load` event AND a minted token, then posts:
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
interface BlockInitPayload {
|
|
70
|
+
blockInstanceId: string;
|
|
71
|
+
blockId: string;
|
|
72
|
+
appId: string; // the OauthClient (app) this block belongs to
|
|
73
|
+
token: WrappedToken; // { raw, scopes[], expiresAt (ISO), buzzBudget? }
|
|
74
|
+
context: BlockContext; // { slotId, … } — narrow to ModelSlotContext
|
|
75
|
+
settings: BlockSettings; // { publisherSettings, userSettings }
|
|
76
|
+
viewer: ViewerInfo | null; // null = anonymous
|
|
77
|
+
theme: 'light' | 'dark';
|
|
78
|
+
renderMode: 'iframe' | 'inline';
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`token.buzzBudget` is only present when the manifest declares `ai:write:budgeted`.
|
|
83
|
+
`expiresAt` is an ISO string on the wire; the React transport rehydrates it to a
|
|
84
|
+
`Date`.
|
|
85
|
+
|
|
86
|
+
### Primitives
|
|
87
|
+
|
|
88
|
+
| Export | What |
|
|
89
|
+
|---|---|
|
|
90
|
+
| `defineBlock({ manifest })` | Validates a `BlockManifestV1` (subset of the server checks) and returns it. Call at module scope so authoring mistakes throw before mount. Throws `BlockManifestError` (has a `.field` dot-path). |
|
|
91
|
+
| `BLOCK_SCOPES` / `BLOCK_SCOPE_PATTERN` | The known block scope strings + the `domain:verb:target` regex. |
|
|
92
|
+
| `isMessage(data, type)` | Discriminator-only message narrowing (see above). |
|
|
93
|
+
| types | `BlockManifestV1`, `ManifestSettings` (+ field types), `BlockContext`, `ModelSlotContext`, `BlockCheckpointInfo`, `ShowcaseImage`, `BlockToken`, `WrappedToken`, `BlockSettings`, `ViewerInfo`, `Theme`, `WorkflowBody`, `BlockTextToImageParams`, `BlockWorkflowSnapshot`, `WorkflowStatus`, `BlockInitPayload`, `ParentToBlockMessage`, `BlockToParentMessage`. |
|
|
94
|
+
|
|
95
|
+
### `defineBlock` validator rules
|
|
96
|
+
|
|
97
|
+
Mirrors a strict subset of the civitai/civitai server gate. It throws on:
|
|
98
|
+
|
|
99
|
+
- A missing **required** field: `$schema`, `appId`, `blockId`, `version`, `name`,
|
|
100
|
+
`type`, `targets`, `scopes`, `iframe`, `contentRating`, `minApiVersion`.
|
|
101
|
+
- `$schema` ≠ `https://civitai.com/schemas/app-block/v1.json`.
|
|
102
|
+
- `blockId` not matching `/^[a-z0-9-]{3,64}$/`; `version` not semver; `name` > 80 chars.
|
|
103
|
+
- `type` not `block` | `embed`; `contentRating` not `g|pg|pg13|r|x`.
|
|
104
|
+
- **Empty `scopes`** (must be a non-empty array) or any scope not matching
|
|
105
|
+
`domain:verb:target` lowercase — PascalCase like `ModelsReadSelf` gets a
|
|
106
|
+
pointed error.
|
|
107
|
+
- **Empty `targets`**, or a target with a non-string `slotId` / non-integer `priority`.
|
|
108
|
+
- `iframe.src` not https (http only for `localhost`/`127.0.0.1`/`[::1]`/`*.localhost`);
|
|
109
|
+
a banned sandbox token (`allow-same-origin`, any `allow-top-navigation*`);
|
|
110
|
+
non-positive integer `minHeight`; bad `maxHeight`; non-boolean `resizable`.
|
|
111
|
+
- `settings` with a bad key (must be `snake_case`), > 32 fields, or a field
|
|
112
|
+
missing/mis-typed `scope` / `type` / `label` / `description`.
|
|
113
|
+
|
|
114
|
+
> The validator does **not** check that `iframe.src` hostname equals
|
|
115
|
+
> `<blockId>.<APPS_DOMAIN>` or that the path is root — those are enforced
|
|
116
|
+
> **server-side** at submit time (gotcha #33). Keep `iframe.src` =
|
|
117
|
+
> `https://<blockId>.civit.ai/` (root, no path prefix) and your Vite `base: '/'`.
|
|
118
|
+
|
|
119
|
+
### Version compatibility
|
|
120
|
+
|
|
121
|
+
| `@civitai/app-sdk` | adds (blocks surface) |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `0.7.0` | `CANCEL_WORKFLOW` / `WORKFLOW_CANCELED` messages (real cancel, gotcha #51) |
|
|
124
|
+
| `0.6.0` | `APP_STORAGE_*` messages, `ManifestSettings` types |
|
|
125
|
+
| `0.5.0` | settings types, earlier message set |
|
|
126
|
+
|
|
127
|
+
Pair with `@civitai/blocks-react` at the matching minor (it peer-depends on this
|
|
128
|
+
contract). See the blocks-react README's compatibility table.
|
|
129
|
+
|
|
31
130
|
## Minimal usage example
|
|
32
131
|
|
|
33
132
|
```ts
|
package/dist/blocks/types.d.ts
CHANGED
|
@@ -135,8 +135,10 @@ export interface BlockSettings {
|
|
|
135
135
|
/**
|
|
136
136
|
* The signed-in viewer. `null` in `BlockInitPayload.viewer` means anonymous.
|
|
137
137
|
*
|
|
138
|
-
* `status` is a coarse surface
|
|
139
|
-
* authoritative re-check if the block needs to gate on it.
|
|
138
|
+
* `status` is OPTIONAL and a coarse surface — `/api/v1/blocks/me` is the
|
|
139
|
+
* authoritative re-check if the block needs to gate on it. The platform omits
|
|
140
|
+
* it from BLOCK_INIT to third-party iframes for privacy (civitai #2521), so
|
|
141
|
+
* blocks must not assume it is present.
|
|
140
142
|
*
|
|
141
143
|
* Mirrors the inline viewer shape in `BlockInitPayload` on the platform
|
|
142
144
|
* side (civitai/civitai `src/components/AppBlocks/types.ts`).
|
|
@@ -144,7 +146,7 @@ export interface BlockSettings {
|
|
|
144
146
|
export interface ViewerInfo {
|
|
145
147
|
id: number;
|
|
146
148
|
username: string | null;
|
|
147
|
-
status
|
|
149
|
+
status?: 'active' | 'banned' | 'muted';
|
|
148
150
|
}
|
|
149
151
|
/**
|
|
150
152
|
* Host-page color scheme. v2 will add a sibling `themeCssVars` field on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blocks/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC7C,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blocks/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDb,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,OAAO,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BnD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDb,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,OAAO,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BnD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;CAmCpB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAEjE,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CASlE;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAI1E;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAO3E"}
|
package/dist/scopes/index.js
CHANGED
|
@@ -59,7 +59,7 @@ export const TokenScope = {
|
|
|
59
59
|
Full: (1 << 25) - 1,
|
|
60
60
|
};
|
|
61
61
|
export const tokenScopeLabels = {
|
|
62
|
-
[TokenScope.UserRead]: 'Read profile &
|
|
62
|
+
[TokenScope.UserRead]: 'Read profile, settings & email',
|
|
63
63
|
[TokenScope.UserWrite]: 'Update profile & settings',
|
|
64
64
|
[TokenScope.ModelsRead]: 'Browse & download models',
|
|
65
65
|
[TokenScope.ModelsWrite]: 'Upload & edit models',
|
|
@@ -112,7 +112,10 @@ export const TokenScopePresets = {
|
|
|
112
112
|
TokenScope.BountiesWrite |
|
|
113
113
|
TokenScope.CollectionsWrite |
|
|
114
114
|
TokenScope.SocialWrite,
|
|
115
|
-
AIServices: TokenScope.
|
|
115
|
+
AIServices: TokenScope.UserRead |
|
|
116
|
+
TokenScope.AIServicesWrite |
|
|
117
|
+
TokenScope.AIServicesRead |
|
|
118
|
+
TokenScope.BuzzRead,
|
|
116
119
|
Full: TokenScope.Full,
|
|
117
120
|
};
|
|
118
121
|
/** True if the given bitmask grants the named scope. */
|
package/dist/scopes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,gDAAgD;AAChD,mEAAmE;AACnE,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,sCAAsC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,CAAC;IAEP,oBAAoB;IACpB,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,qBAAqB;IACrB,UAAU,EAAE,CAAC,IAAI,CAAC;IAClB,WAAW,EAAE,CAAC,IAAI,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,CAAC;IAEpB,wCAAwC;IACxC,SAAS,EAAE,CAAC,IAAI,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,CAAC;IAClB,WAAW,EAAE,CAAC,IAAI,CAAC;IAEnB,WAAW;IACX,YAAY,EAAE,CAAC,IAAI,CAAC;IACpB,aAAa,EAAE,CAAC,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE;IAEvB,oEAAoE;IACpE,YAAY,EAAE,CAAC,IAAI,EAAE;IACrB,aAAa,EAAE,CAAC,IAAI,EAAE;IACtB,cAAc,EAAE,CAAC,IAAI,EAAE;IAEvB,0EAA0E;IAC1E,4DAA4D;IAC5D,cAAc,EAAE,CAAC,IAAI,EAAE;IACvB,eAAe,EAAE,CAAC,IAAI,EAAE;IAExB,kBAAkB;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE;IAEjB,6BAA6B;IAC7B,eAAe,EAAE,CAAC,IAAI,EAAE;IACxB,gBAAgB,EAAE,CAAC,IAAI,EAAE;IACzB,WAAW,EAAE,CAAC,IAAI,EAAE;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE;IAElB,gBAAgB;IAChB,iBAAiB,EAAE,CAAC,IAAI,EAAE;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE;IAE3B,QAAQ;IACR,SAAS,EAAE,CAAC,IAAI,EAAE;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE;IAEnB,aAAa;IACb,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;CACX,CAAC;AAKX,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@civitai/app-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -38,12 +38,6 @@
|
|
|
38
38
|
"schemas",
|
|
39
39
|
"README.md"
|
|
40
40
|
],
|
|
41
|
-
"scripts": {
|
|
42
|
-
"build": "tsc -p tsconfig.json",
|
|
43
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
44
|
-
"test": "vitest run",
|
|
45
|
-
"test:watch": "vitest"
|
|
46
|
-
},
|
|
47
41
|
"engines": {
|
|
48
42
|
"node": ">=20"
|
|
49
43
|
},
|
|
@@ -73,5 +67,11 @@
|
|
|
73
67
|
"type": "git",
|
|
74
68
|
"url": "git+https://github.com/civitai/civitai-app-starters.git",
|
|
75
69
|
"directory": "packages/civitai-app-sdk"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"build": "tsc -p tsconfig.json",
|
|
73
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
74
|
+
"test": "vitest run",
|
|
75
|
+
"test:watch": "vitest"
|
|
76
76
|
}
|
|
77
|
-
}
|
|
77
|
+
}
|