@civitai/app-sdk 0.26.0 → 0.28.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 +73 -0
- package/dist/blocks/defineBlock.d.ts.map +1 -1
- package/dist/blocks/defineBlock.js +15 -1
- package/dist/blocks/defineBlock.js.map +1 -1
- package/dist/blocks/index.d.ts +4 -1
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +9 -1
- package/dist/blocks/index.js.map +1 -1
- package/dist/blocks/scopes.d.ts +14 -0
- package/dist/blocks/scopes.d.ts.map +1 -1
- package/dist/blocks/scopes.js +14 -0
- package/dist/blocks/scopes.js.map +1 -1
- package/dist/blocks/types.d.ts +11 -0
- package/dist/blocks/types.d.ts.map +1 -1
- package/dist/safe-storage/index.d.ts +76 -0
- package/dist/safe-storage/index.d.ts.map +1 -0
- package/dist/safe-storage/index.js +341 -0
- package/dist/safe-storage/index.js.map +1 -0
- package/package.json +9 -1
- package/schemas/app-block/v1.json +7 -0
package/README.md
CHANGED
|
@@ -24,6 +24,8 @@ pnpm add @civitai/app-sdk
|
|
|
24
24
|
|
|
25
25
|
```ts
|
|
26
26
|
import { defineBlock, BLOCK_SCOPES } from '@civitai/app-sdk/blocks';
|
|
27
|
+
// Opaque-origin storage shim — see "Web storage in a block" below:
|
|
28
|
+
import '@civitai/app-sdk/safe-storage';
|
|
27
29
|
// JSON Schema for the manifest, e.g. for IDE validation:
|
|
28
30
|
import manifestSchema from '@civitai/app-sdk/schemas/app-block/v1.json' with { type: 'json' };
|
|
29
31
|
```
|
|
@@ -129,10 +131,81 @@ Mirrors a strict subset of the civitai/civitai server gate. It throws on:
|
|
|
129
131
|
> **server-side** at submit time (gotcha #33). Keep `iframe.src` =
|
|
130
132
|
> `https://<blockId>.civit.ai/` (root, no path prefix) and your Vite `base: '/'`.
|
|
131
133
|
|
|
134
|
+
### Web storage in a block (`@civitai/app-sdk/safe-storage`)
|
|
135
|
+
|
|
136
|
+
Block iframes are sandboxed **without `allow-same-origin`**, so the document has
|
|
137
|
+
an *opaque origin*. There is no origin to key web storage against, and the
|
|
138
|
+
platform doesn't hand back an empty store — merely **reading** the property
|
|
139
|
+
throws:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
SecurityError: Failed to read the 'localStorage' property from 'Window':
|
|
143
|
+
The document is sandboxed and lacks the 'allow-same-origin' flag.
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
> **The usual guard does not work here.** `typeof localStorage === 'undefined'`
|
|
147
|
+
> **also throws** in the sandbox — `typeof` still resolves the property and runs
|
|
148
|
+
> the throwing getter; only `typeof` of an *undeclared identifier* is safe.
|
|
149
|
+
> `'localStorage' in window` is the check that survives, and it returns `true`:
|
|
150
|
+
> the global exists, it's just unreadable.
|
|
151
|
+
|
|
152
|
+
Guarding your own call sites isn't enough anyway: **any dependency** that
|
|
153
|
+
touches storage unguarded takes the app down, and libraries routinely mislabel
|
|
154
|
+
the failure — one popular viewer catches the SecurityError and reports "your browser
|
|
155
|
+
does not support WebGL", so the app's own fallback never runs and the user
|
|
156
|
+
dead-ends on a wrong error message.
|
|
157
|
+
|
|
158
|
+
So the SDK repairs it for you. Importing `@civitai/app-sdk/blocks` (or
|
|
159
|
+
`@civitai/blocks-react`, which imports it) installs a spec-shaped in-memory
|
|
160
|
+
`Storage` over `localStorage` / `sessionStorage` — **only** when a real
|
|
161
|
+
round-trip probe shows they're unusable. Rules:
|
|
162
|
+
|
|
163
|
+
- **No-op where storage works.** A healthy `Storage` is never replaced, and its
|
|
164
|
+
contents are never read or written (beyond a probe key it removes).
|
|
165
|
+
- **No-op where storage is absent** (Node / SSR / workers). Nothing is
|
|
166
|
+
fabricated, so `typeof localStorage === 'undefined'` feature detection keeps
|
|
167
|
+
working server-side.
|
|
168
|
+
- **Idempotent**, and safe to call as often as you like.
|
|
169
|
+
- **Never loses readable data.** A store that reads fine but refuses writes (a
|
|
170
|
+
full quota, storage disabled) still gets replaced — writes have to stop
|
|
171
|
+
throwing — but the fallback **inherits its entries first**, so the shim can't
|
|
172
|
+
shadow a live session.
|
|
173
|
+
- **Never throws.** It installs at import, so an error escaping it would reject
|
|
174
|
+
`import '@civitai/app-sdk/blocks'` and take the whole block down. Even a
|
|
175
|
+
revoked `Proxy` or a throwing getter sitting on `localStorage` is classified,
|
|
176
|
+
not propagated.
|
|
177
|
+
- The fallback is **session-scoped** — nothing survives a reload. That's the
|
|
178
|
+
honest semantic at an opaque origin. Treat storage as a cache; use the
|
|
179
|
+
platform's app-storage messages (`useAppStorage` in `@civitai/blocks-react`)
|
|
180
|
+
for anything durable.
|
|
181
|
+
|
|
182
|
+
Most apps need to do nothing. Two cases where you reach for it explicitly:
|
|
183
|
+
|
|
184
|
+
```ts
|
|
185
|
+
// 1. A dependency reads storage while its module EVALUATES, and it's imported
|
|
186
|
+
// before anything from the SDK. Import statements are hoisted above every
|
|
187
|
+
// statement, so only another import can win the race — put this first in
|
|
188
|
+
// your entry file.
|
|
189
|
+
import '@civitai/app-sdk/safe-storage';
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
// 2. Right before dynamically importing such a dependency.
|
|
194
|
+
import { installSafeStorage } from '@civitai/app-sdk/blocks';
|
|
195
|
+
|
|
196
|
+
installSafeStorage(); // no-op if already healthy
|
|
197
|
+
const { Viewer } = await import(viewerModuleSpecifier);
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
`installSafeStorage(scope?)` returns `{ localStorage, sessionStorage }` — `true`
|
|
201
|
+
for each global it actually replaced. `createMemoryStorage()` is exported too,
|
|
202
|
+
if you want the standalone `Storage` work-alike.
|
|
203
|
+
|
|
132
204
|
### Version compatibility
|
|
133
205
|
|
|
134
206
|
| `@civitai/app-sdk` | adds (blocks surface) |
|
|
135
207
|
|---|---|
|
|
208
|
+
| `0.27.0` | `@civitai/app-sdk/safe-storage` — opaque-origin `localStorage`/`sessionStorage` shim, auto-installed by the `blocks` subpath |
|
|
136
209
|
| `0.24.0` | `QUERY_APP_WORKFLOWS` / `CANCEL_APP_WORKFLOW` messages + the `AppWorkflow` type (app generator subqueue, PR #3164) |
|
|
137
210
|
| `0.7.0` | `CANCEL_WORKFLOW` / `WORKFLOW_CANCELED` messages (real cancel, gotcha #51) |
|
|
138
211
|
| `0.6.0` | `APP_STORAGE_*` messages, `ManifestSettings` types |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/defineBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"defineBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/defineBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AA8D/D,0DAA0D;AAC1D,qBAAa,kBAAmB,SAAQ,KAAK;IAIzC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;IAJzB,SAAkB,IAAI,wBAAwB;gBAE5C,OAAO,EAAE,MAAM;IACf,8DAA8D;IACrD,KAAK,CAAC,EAAE,MAAM,YAAA;CAI1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;CAIzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CA6HpE"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* caller is `JSON.parse(fs.readFileSync('block.manifest.json'))`, where
|
|
11
11
|
* the TypeScript type is a lie.
|
|
12
12
|
*/
|
|
13
|
-
import { BLOCK_CATEGORIES, BLOCK_SCOPES, BLOCK_SCOPE_PATTERN } from './scopes.js';
|
|
13
|
+
import { BLOCK_CATEGORIES, BLOCK_SCOPES, BLOCK_SCOPE_PATTERN, BLOCK_TAGLINE_MAX_LENGTH, } from './scopes.js';
|
|
14
14
|
/**
|
|
15
15
|
* Canonical `blockId` rule (https://civitai.com/schemas/app-block/v1.json):
|
|
16
16
|
* lowercase, must start with a letter, end alphanumeric, hyphen-separated,
|
|
@@ -163,6 +163,20 @@ export function defineBlock(config) {
|
|
|
163
163
|
`Got: ${JSON.stringify(manifest.category)}`, 'category');
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
+
// `tagline` is OPTIONAL. When present it must be a string whose TRIMMED length
|
|
167
|
+
// is 1..BLOCK_TAGLINE_MAX_LENGTH — mirroring the server's authoritative
|
|
168
|
+
// BlockManifestValidator check (which also trims), so a padded-but-fitting
|
|
169
|
+
// value is never rejected here and then accepted at submit. Omission is fine —
|
|
170
|
+
// the store simply renders no tagline.
|
|
171
|
+
if (manifest.tagline !== undefined) {
|
|
172
|
+
const tagline = manifest.tagline;
|
|
173
|
+
if (typeof tagline !== 'string' || tagline.trim().length === 0) {
|
|
174
|
+
throw new BlockManifestError(`manifest.tagline must be a non-empty string (or omitted). Got: ${JSON.stringify(tagline)}`, 'tagline');
|
|
175
|
+
}
|
|
176
|
+
if (tagline.trim().length > BLOCK_TAGLINE_MAX_LENGTH) {
|
|
177
|
+
throw new BlockManifestError(`manifest.tagline must be at most ${BLOCK_TAGLINE_MAX_LENGTH} characters. Got: ${tagline.trim().length}`, 'tagline');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
166
180
|
requireNonEmptyString(manifest.minApiVersion, 'minApiVersion');
|
|
167
181
|
validateIframe(manifest.iframe);
|
|
168
182
|
if (manifest.assets !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineBlock.js","sourceRoot":"","sources":["../../src/blocks/defineBlock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"defineBlock.js","sourceRoot":"","sources":["../../src/blocks/defineBlock.ts"],"names":[],"mappings":"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"}
|
package/dist/blocks/index.d.ts
CHANGED
|
@@ -6,9 +6,12 @@
|
|
|
6
6
|
* a separate package (see `@civitai/blocks-react`) so this module stays usable
|
|
7
7
|
* from any runtime — Node, browsers, workers — with no React dependency.
|
|
8
8
|
*/
|
|
9
|
+
import '../safe-storage/index.js';
|
|
10
|
+
export { installSafeStorage, createMemoryStorage } from '../safe-storage/index.js';
|
|
11
|
+
export type { SafeStorageInstallResult, SafeStorageName } from '../safe-storage/index.js';
|
|
9
12
|
export { defineBlock, BlockManifestError } from './defineBlock.js';
|
|
10
13
|
export type { DefineBlockConfig } from './defineBlock.js';
|
|
11
|
-
export { BLOCK_SCOPES, BLOCK_SCOPE_PATTERN, BLOCK_CATEGORIES } from './scopes.js';
|
|
14
|
+
export { BLOCK_SCOPES, BLOCK_SCOPE_PATTERN, BLOCK_CATEGORIES, BLOCK_TAGLINE_MAX_LENGTH, } from './scopes.js';
|
|
12
15
|
export type { BlockScope, BlockScopeKey, BlockCategory } from './scopes.js';
|
|
13
16
|
export { BrowsingLevel, SFW_LEVELS, NSFW_LEVELS, isSfwCeiling, isLevelAllowed, } from './browsingLevel.js';
|
|
14
17
|
export type { BrowsingLevelKey, BrowsingLevelBit, ColorDomain } from './browsingLevel.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACnF,YAAY,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,KAAK,EACL,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,8BAA8B,EAC9B,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/blocks/index.js
CHANGED
|
@@ -6,8 +6,16 @@
|
|
|
6
6
|
* a separate package (see `@civitai/blocks-react`) so this module stays usable
|
|
7
7
|
* from any runtime — Node, browsers, workers — with no React dependency.
|
|
8
8
|
*/
|
|
9
|
+
// FIRST import, on purpose. Blocks are framed at an opaque origin (sandbox
|
|
10
|
+
// without `allow-same-origin`), where touching `localStorage`/`sessionStorage`
|
|
11
|
+
// THROWS — including from third-party dependencies nobody can guard from the
|
|
12
|
+
// outside. Importing this repairs those globals before anything else in the
|
|
13
|
+
// block's module graph can trip over them. It is inert wherever storage works
|
|
14
|
+
// or is absent (Node/SSR/workers); see `../safe-storage/index.ts`.
|
|
15
|
+
import '../safe-storage/index.js';
|
|
16
|
+
export { installSafeStorage, createMemoryStorage } from '../safe-storage/index.js';
|
|
9
17
|
export { defineBlock, BlockManifestError } from './defineBlock.js';
|
|
10
|
-
export { BLOCK_SCOPES, BLOCK_SCOPE_PATTERN, BLOCK_CATEGORIES } from './scopes.js';
|
|
18
|
+
export { BLOCK_SCOPES, BLOCK_SCOPE_PATTERN, BLOCK_CATEGORIES, BLOCK_TAGLINE_MAX_LENGTH, } from './scopes.js';
|
|
11
19
|
export { BrowsingLevel, SFW_LEVELS, NSFW_LEVELS, isSfwCeiling, isLevelAllowed, } from './browsingLevel.js';
|
|
12
20
|
export { isMessage } from './messages.js';
|
|
13
21
|
//# sourceMappingURL=index.js.map
|
package/dist/blocks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2EAA2E;AAC3E,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,mEAAmE;AACnE,OAAO,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGnF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/blocks/scopes.d.ts
CHANGED
|
@@ -59,4 +59,18 @@ export declare const BLOCK_SCOPE_PATTERN: RegExp;
|
|
|
59
59
|
*/
|
|
60
60
|
export declare const BLOCK_CATEGORIES: readonly ["generation", "games", "utility", "discovery", "moderation", "analytics", "other"];
|
|
61
61
|
export type BlockCategory = (typeof BLOCK_CATEGORIES)[number];
|
|
62
|
+
/**
|
|
63
|
+
* Max length of the optional manifest `tagline` — the one-line store pitch shown
|
|
64
|
+
* under the app's name on its `/apps` card + detail page. Mirrors
|
|
65
|
+
* `MANIFEST_TAGLINE_MAX_LENGTH` in civitai/civitai's
|
|
66
|
+
* `src/server/services/block-manifest-validator.service.ts` (the authoritative
|
|
67
|
+
* gate) and the `tagline.maxLength` in the canonical schema
|
|
68
|
+
* (https://civitai.com/schemas/app-block/v1.json). Keep all three in lockstep —
|
|
69
|
+
* the schema-parity test asserts this const equals the vendored schema's bound.
|
|
70
|
+
*
|
|
71
|
+
* NOTE: the SERVER measures the TRIMMED length; JSON Schema's `maxLength` counts
|
|
72
|
+
* the raw string. `defineBlock` mirrors the server (trimmed) so an author is
|
|
73
|
+
* never rejected locally for padding the server would ignore.
|
|
74
|
+
*/
|
|
75
|
+
export declare const BLOCK_TAGLINE_MAX_LENGTH = 140;
|
|
62
76
|
//# sourceMappingURL=scopes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/blocks/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CA2Bf,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;AAE9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAExE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,8FAQnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/blocks/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CA2Bf,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;AAE9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAExE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,8FAQnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC"}
|
package/dist/blocks/scopes.js
CHANGED
|
@@ -78,4 +78,18 @@ export const BLOCK_CATEGORIES = [
|
|
|
78
78
|
'analytics',
|
|
79
79
|
'other',
|
|
80
80
|
];
|
|
81
|
+
/**
|
|
82
|
+
* Max length of the optional manifest `tagline` — the one-line store pitch shown
|
|
83
|
+
* under the app's name on its `/apps` card + detail page. Mirrors
|
|
84
|
+
* `MANIFEST_TAGLINE_MAX_LENGTH` in civitai/civitai's
|
|
85
|
+
* `src/server/services/block-manifest-validator.service.ts` (the authoritative
|
|
86
|
+
* gate) and the `tagline.maxLength` in the canonical schema
|
|
87
|
+
* (https://civitai.com/schemas/app-block/v1.json). Keep all three in lockstep —
|
|
88
|
+
* the schema-parity test asserts this const equals the vendored schema's bound.
|
|
89
|
+
*
|
|
90
|
+
* NOTE: the SERVER measures the TRIMMED length; JSON Schema's `maxLength` counts
|
|
91
|
+
* the raw string. `defineBlock` mirrors the server (trimmed) so an author is
|
|
92
|
+
* never rejected locally for padding the server would ignore.
|
|
93
|
+
*/
|
|
94
|
+
export const BLOCK_TAGLINE_MAX_LENGTH = 140;
|
|
81
95
|
//# sourceMappingURL=scopes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/blocks/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,0EAA0E;IAC1E,8EAA8E;IAC9E,gEAAgE;IAChE,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,+EAA+E;IAC/E,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,8EAA8E;IAC9E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,kFAAkF;IAClF,yEAAyE;IACzE,qFAAqF;IACrF,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;CAC5C,CAAC;AAKX;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,oCAAoC,CAAC;AAExE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY;IACZ,OAAO;IACP,SAAS;IACT,WAAW;IACX,YAAY;IACZ,WAAW;IACX,OAAO;CACC,CAAC"}
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/blocks/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,0EAA0E;IAC1E,8EAA8E;IAC9E,gEAAgE;IAChE,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,+EAA+E;IAC/E,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,8EAA8E;IAC9E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,kFAAkF;IAClF,yEAAyE;IACzE,qFAAqF;IACrF,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;CAC5C,CAAC;AAKX;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,oCAAoC,CAAC;AAExE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY;IACZ,OAAO;IACP,SAAS;IACT,WAAW;IACX,YAAY;IACZ,WAAW;IACX,OAAO;CACC,CAAC;AAIX;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC"}
|
package/dist/blocks/types.d.ts
CHANGED
|
@@ -687,6 +687,17 @@ export interface BlockManifestV1 {
|
|
|
687
687
|
* canonical schema's `category` enum and MARKETPLACE_CATEGORIES on the server.
|
|
688
688
|
*/
|
|
689
689
|
category?: BlockCategory;
|
|
690
|
+
/**
|
|
691
|
+
* Optional one-line pitch shown under the app's name on its `/apps` store card
|
|
692
|
+
* + detail page. Manifest-governed: it flows to the store listing on
|
|
693
|
+
* moderator-approve and is re-synced from the manifest on every subsequent
|
|
694
|
+
* approved version — for an ON-SITE app the manifest is the ONLY surface that
|
|
695
|
+
* sets it. Omit it and the store simply shows no tagline. Trimmed and capped at
|
|
696
|
+
* {@link BLOCK_TAGLINE_MAX_LENGTH} (140) characters, the same bound off-site
|
|
697
|
+
* listings use, so both store kinds render the same slot. Kept in lockstep with
|
|
698
|
+
* the canonical schema's `tagline` (civitai #3441).
|
|
699
|
+
*/
|
|
700
|
+
tagline?: string;
|
|
690
701
|
preview?: ManifestPreview;
|
|
691
702
|
promotionEligible?: boolean;
|
|
692
703
|
minApiVersion: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blocks/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD;;;;;;;;;;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;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC;uDACmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;;yDAEqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB;4CACwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB;kEAC8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IASlB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,aAAa,EAAE,aAAa,CAAC;IAC7B,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,MAAM,EAAE,SAAS,CAAC;IAClB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,8BAA8B,GAAG,gBAAgB,CAAC;AAE9D;;;;;;;;;;;;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;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAMrC,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AAEZ;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,eAAe,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IACnF,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,YAAY,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;KAClD,CAAC;CACH;AAMD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,QAAQ,GACR,iBAAiB,GACjB,MAAM,GACN,UAAU,GACV,QAAQ,GACR,QAAQ,CAAC;AAEb,UAAU,wBAAwB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACnE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACnE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB;IACpE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,oBAAoB,GAC5B,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,+CAA+C,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC5D,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;CACpD;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAM5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,gHAAgH;IAChH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACnD,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,IAAI,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,gFAAgF;IAChF,QAAQ,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,kFAAkF;IAClF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,0BAA0B,GAClC,WAAW,GACX,WAAW,GACX,WAAW,GACX,cAAc,GACd,MAAM,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,sFAAsF;IACtF,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE;QACR,wEAAwE;QACxE,aAAa,EAAE,MAAM,CAAC;QACtB,wDAAwD;QACxD,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IACnF,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;IAClB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,aAAa,EAAE,aAAa,CAAC;IAC7B,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blocks/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@civitai/app-sdk/safe-storage` — survive an opaque-origin sandbox.
|
|
3
|
+
*
|
|
4
|
+
* Civitai Apps run in an iframe sandboxed as `allow-scripts allow-forms`,
|
|
5
|
+
* deliberately WITHOUT `allow-same-origin`. The document therefore has an
|
|
6
|
+
* **opaque origin**, and there is no origin to key web storage against, so the
|
|
7
|
+
* platform does not merely return an empty store — merely *reading* the
|
|
8
|
+
* property throws:
|
|
9
|
+
*
|
|
10
|
+
* SecurityError: Failed to read the 'localStorage' property from 'Window':
|
|
11
|
+
* The document is sandboxed and lacks the 'allow-same-origin' flag.
|
|
12
|
+
*
|
|
13
|
+
* Guarding your own call sites is not enough: any third-party dependency that
|
|
14
|
+
* touches storage unguarded takes the whole app down, and libraries routinely
|
|
15
|
+
* *mislabel* the failure. A real production example — Photo Sphere Viewer's
|
|
16
|
+
* `SYSTEM.load()` runs an unguarded ``TOUCH_KEY in localStorage`` touch probe,
|
|
17
|
+
* its `Viewer` constructor catches the resulting SecurityError, reports the
|
|
18
|
+
* generic "Your browser does not seem to support WebGL", and returns without
|
|
19
|
+
* rethrowing. The app's own fallback never ran and users with perfectly good
|
|
20
|
+
* GPUs saw a WebGL error. (The sandbox does not block WebGL — only storage.)
|
|
21
|
+
*
|
|
22
|
+
* So this module installs a spec-shaped in-memory `Storage` over any
|
|
23
|
+
* `localStorage`/`sessionStorage` that is present but unusable. Importing it
|
|
24
|
+
* runs the install (see the bottom of the file); it is also re-exported as a
|
|
25
|
+
* function for explicit use.
|
|
26
|
+
*
|
|
27
|
+
* The fallback is session-scoped — nothing survives a reload — which is the
|
|
28
|
+
* honest semantic at an opaque origin: there is no origin to persist against.
|
|
29
|
+
* Treat storage in a block as a cache, never a source of truth; the durable
|
|
30
|
+
* per-user store is the platform's app-storage API.
|
|
31
|
+
*/
|
|
32
|
+
/** Which globals a call to {@link installSafeStorage} actually replaced. */
|
|
33
|
+
export interface SafeStorageInstallResult {
|
|
34
|
+
/** `true` when `localStorage` was replaced by the in-memory fallback. */
|
|
35
|
+
localStorage: boolean;
|
|
36
|
+
/** `true` when `sessionStorage` was replaced by the in-memory fallback. */
|
|
37
|
+
sessionStorage: boolean;
|
|
38
|
+
}
|
|
39
|
+
declare const STORAGE_NAMES: readonly ["localStorage", "sessionStorage"];
|
|
40
|
+
/** The web-storage globals this module can repair. */
|
|
41
|
+
export type SafeStorageName = (typeof STORAGE_NAMES)[number];
|
|
42
|
+
/**
|
|
43
|
+
* A `Storage` work-alike backed by a `Map`.
|
|
44
|
+
*
|
|
45
|
+
* Implemented as a **Proxy, not a class**, because real `Storage` is an exotic
|
|
46
|
+
* object: `s.foo = 1`, `'foo' in s`, `s.foo` and `delete s.foo` are aliases for
|
|
47
|
+
* `setItem`/`getItem`/`removeItem`. Libraries use exactly that form (PSV's
|
|
48
|
+
* touch probe is literally ``KEY in localStorage`` then
|
|
49
|
+
* `localStorage[KEY] === 'true'`), so a plain class would still break them.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createMemoryStorage(): Storage;
|
|
52
|
+
/**
|
|
53
|
+
* Replace any present-but-unusable `localStorage`/`sessionStorage` on `scope`
|
|
54
|
+
* with an in-memory `Storage`, so third-party code that touches it unguarded
|
|
55
|
+
* cannot throw.
|
|
56
|
+
*
|
|
57
|
+
* - **No-op where storage works.** A healthy `Storage` is never replaced, and
|
|
58
|
+
* its contents are never touched.
|
|
59
|
+
* - **No-op where storage is absent** (Node/SSR/workers). Nothing is invented.
|
|
60
|
+
* - **Never loses readable data.** When the old store reads but refuses writes
|
|
61
|
+
* (full / disabled), its entries are copied into the fallback first, so the
|
|
62
|
+
* shim cannot shadow a live session.
|
|
63
|
+
* - **Idempotent.** Once the fallback is installed the round-trip probe
|
|
64
|
+
* succeeds, so a second call is a no-op and values already written survive.
|
|
65
|
+
* - **Never throws.** Every step is guarded; a shim that could fail at import
|
|
66
|
+
* would be a worse outage than the bug it fixes.
|
|
67
|
+
*
|
|
68
|
+
* This module installs on import, so most apps never need to call it. Call it
|
|
69
|
+
* explicitly when you want the guarantee at a specific moment — e.g. right
|
|
70
|
+
* before `await import('some-lib')` that reads storage while evaluating.
|
|
71
|
+
*
|
|
72
|
+
* @param scope Object carrying the storage globals. Defaults to `globalThis`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function installSafeStorage(scope?: object): SafeStorageInstallResult;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/safe-storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,aAAa,6CAA8C,CAAC;AAElE,sDAAsD;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAI7D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAiF7C;AAgKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,GAAE,MAAmB,GAAG,wBAAwB,CAmCvF"}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@civitai/app-sdk/safe-storage` — survive an opaque-origin sandbox.
|
|
3
|
+
*
|
|
4
|
+
* Civitai Apps run in an iframe sandboxed as `allow-scripts allow-forms`,
|
|
5
|
+
* deliberately WITHOUT `allow-same-origin`. The document therefore has an
|
|
6
|
+
* **opaque origin**, and there is no origin to key web storage against, so the
|
|
7
|
+
* platform does not merely return an empty store — merely *reading* the
|
|
8
|
+
* property throws:
|
|
9
|
+
*
|
|
10
|
+
* SecurityError: Failed to read the 'localStorage' property from 'Window':
|
|
11
|
+
* The document is sandboxed and lacks the 'allow-same-origin' flag.
|
|
12
|
+
*
|
|
13
|
+
* Guarding your own call sites is not enough: any third-party dependency that
|
|
14
|
+
* touches storage unguarded takes the whole app down, and libraries routinely
|
|
15
|
+
* *mislabel* the failure. A real production example — Photo Sphere Viewer's
|
|
16
|
+
* `SYSTEM.load()` runs an unguarded ``TOUCH_KEY in localStorage`` touch probe,
|
|
17
|
+
* its `Viewer` constructor catches the resulting SecurityError, reports the
|
|
18
|
+
* generic "Your browser does not seem to support WebGL", and returns without
|
|
19
|
+
* rethrowing. The app's own fallback never ran and users with perfectly good
|
|
20
|
+
* GPUs saw a WebGL error. (The sandbox does not block WebGL — only storage.)
|
|
21
|
+
*
|
|
22
|
+
* So this module installs a spec-shaped in-memory `Storage` over any
|
|
23
|
+
* `localStorage`/`sessionStorage` that is present but unusable. Importing it
|
|
24
|
+
* runs the install (see the bottom of the file); it is also re-exported as a
|
|
25
|
+
* function for explicit use.
|
|
26
|
+
*
|
|
27
|
+
* The fallback is session-scoped — nothing survives a reload — which is the
|
|
28
|
+
* honest semantic at an opaque origin: there is no origin to persist against.
|
|
29
|
+
* Treat storage in a block as a cache, never a source of truth; the durable
|
|
30
|
+
* per-user store is the platform's app-storage API.
|
|
31
|
+
*/
|
|
32
|
+
const STORAGE_NAMES = ['localStorage', 'sessionStorage'];
|
|
33
|
+
const PROBE_KEY = '__civitai_app_sdk_storage_probe__';
|
|
34
|
+
/**
|
|
35
|
+
* A `Storage` work-alike backed by a `Map`.
|
|
36
|
+
*
|
|
37
|
+
* Implemented as a **Proxy, not a class**, because real `Storage` is an exotic
|
|
38
|
+
* object: `s.foo = 1`, `'foo' in s`, `s.foo` and `delete s.foo` are aliases for
|
|
39
|
+
* `setItem`/`getItem`/`removeItem`. Libraries use exactly that form (PSV's
|
|
40
|
+
* touch probe is literally ``KEY in localStorage`` then
|
|
41
|
+
* `localStorage[KEY] === 'true'`), so a plain class would still break them.
|
|
42
|
+
*/
|
|
43
|
+
export function createMemoryStorage() {
|
|
44
|
+
const map = new Map();
|
|
45
|
+
const api = {
|
|
46
|
+
getItem(key) {
|
|
47
|
+
const k = String(key);
|
|
48
|
+
return map.has(k) ? map.get(k) : null;
|
|
49
|
+
},
|
|
50
|
+
setItem(key, value) {
|
|
51
|
+
map.set(String(key), String(value));
|
|
52
|
+
},
|
|
53
|
+
removeItem(key) {
|
|
54
|
+
map.delete(String(key));
|
|
55
|
+
},
|
|
56
|
+
clear() {
|
|
57
|
+
map.clear();
|
|
58
|
+
},
|
|
59
|
+
key(index) {
|
|
60
|
+
return Array.from(map.keys())[index] ?? null;
|
|
61
|
+
},
|
|
62
|
+
get length() {
|
|
63
|
+
return map.size;
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
// `Reflect.has` walks the prototype chain, so `'toString' in storage` stays
|
|
67
|
+
// true exactly as it is for a real Storage instance. Only keys that are NOT
|
|
68
|
+
// part of the Storage API fall through to the backing map.
|
|
69
|
+
const isApiKey = (prop) => typeof prop === 'symbol' || Reflect.has(api, prop);
|
|
70
|
+
return new Proxy(api, {
|
|
71
|
+
get(target, prop, receiver) {
|
|
72
|
+
if (isApiKey(prop))
|
|
73
|
+
return Reflect.get(target, prop, receiver);
|
|
74
|
+
return map.get(prop);
|
|
75
|
+
},
|
|
76
|
+
set(target, prop, value, receiver) {
|
|
77
|
+
if (isApiKey(prop))
|
|
78
|
+
return Reflect.set(target, prop, value, receiver);
|
|
79
|
+
map.set(prop, String(value));
|
|
80
|
+
return true;
|
|
81
|
+
},
|
|
82
|
+
has(_target, prop) {
|
|
83
|
+
return isApiKey(prop) || map.has(prop);
|
|
84
|
+
},
|
|
85
|
+
deleteProperty(_target, prop) {
|
|
86
|
+
// `delete storage.getItem` must NOT destroy the method, and
|
|
87
|
+
// `delete storage.length` must NOT leave `length` undefined — a
|
|
88
|
+
// `for (i < storage.length)` loop would then silently iterate zero
|
|
89
|
+
// times. Real `Storage` is unbothered: its API lives on
|
|
90
|
+
// `Storage.prototype`, so deleting it from the instance finds no own
|
|
91
|
+
// property, reports success and changes nothing. Mirror that exactly.
|
|
92
|
+
if (isApiKey(prop))
|
|
93
|
+
return true;
|
|
94
|
+
map.delete(prop);
|
|
95
|
+
return true;
|
|
96
|
+
},
|
|
97
|
+
// Enumeration sees only stored keys — matching real Storage, where
|
|
98
|
+
// `Object.keys(localStorage)` lists the entries, not the methods.
|
|
99
|
+
ownKeys() {
|
|
100
|
+
return Array.from(map.keys());
|
|
101
|
+
},
|
|
102
|
+
// A non-extensible target would make the `ownKeys` trap above violate a
|
|
103
|
+
// proxy invariant (it must then report every own key of the target), so a
|
|
104
|
+
// single `Object.freeze(localStorage)` — from a SES/`harden()` lockdown
|
|
105
|
+
// sweep, say — would make `Object.keys` / spread / `JSON.stringify` /
|
|
106
|
+
// `for...in` throw on this object FOREVER. Refusing keeps enumeration
|
|
107
|
+
// alive and matches the platform: `Storage` is a legacy platform object
|
|
108
|
+
// with a named-property handler, whose `[[PreventExtensions]]` also
|
|
109
|
+
// returns false.
|
|
110
|
+
preventExtensions: () => false,
|
|
111
|
+
getOwnPropertyDescriptor(target, prop) {
|
|
112
|
+
if (!isApiKey(prop) && map.has(prop)) {
|
|
113
|
+
return {
|
|
114
|
+
value: map.get(prop),
|
|
115
|
+
writable: true,
|
|
116
|
+
enumerable: true,
|
|
117
|
+
configurable: true,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
return Reflect.getOwnPropertyDescriptor(target, prop);
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Is `scope[name]` Node's *disabled* web-storage stub?
|
|
126
|
+
*
|
|
127
|
+
* Node >= 22 defines `globalThis.localStorage` / `sessionStorage` as lazy
|
|
128
|
+
* accessors. Without `--localstorage-file` they return `undefined` **and emit
|
|
129
|
+
* `ExperimentalWarning: localStorage is not available because
|
|
130
|
+
* --localstorage-file was not provided.` on every read** — so importing this
|
|
131
|
+
* module would print that on every server boot and in CI. `in` does not trip
|
|
132
|
+
* the warning, but it does report `true` there, so existence alone is not
|
|
133
|
+
* enough to skip the read.
|
|
134
|
+
*
|
|
135
|
+
* Both signals must agree, and anything ambiguous falls through to a real
|
|
136
|
+
* probe:
|
|
137
|
+
*
|
|
138
|
+
* 1. we are running on Node;
|
|
139
|
+
* 2. the property is an **own, non-enumerable accessor with a setter** —
|
|
140
|
+
* Node's replaceable global. The web platform can never match this:
|
|
141
|
+
* `Window.localStorage` is a WebIDL *readonly* attribute, so it is
|
|
142
|
+
* `enumerable: true` with `set: undefined`, in a sandbox exactly as much as
|
|
143
|
+
* anywhere else. That is a spec guarantee, not a guess, and it is why the
|
|
144
|
+
* check does not also test for `window` — happy-dom-style test
|
|
145
|
+
* environments expose a `window` while `globalThis.localStorage` is still
|
|
146
|
+
* Node's stub underneath.
|
|
147
|
+
*
|
|
148
|
+
* Skipping costs nothing either way. Without `--localstorage-file` the read
|
|
149
|
+
* would have returned `undefined` → `absent`, which is what we return; *with*
|
|
150
|
+
* it the storage works → `usable`, which is also a no-op.
|
|
151
|
+
*/
|
|
152
|
+
function isNodeWebStorageStub(scope, name) {
|
|
153
|
+
const runtime = globalThis;
|
|
154
|
+
if (typeof runtime.process?.versions?.node !== 'string')
|
|
155
|
+
return false;
|
|
156
|
+
const descriptor = Object.getOwnPropertyDescriptor(scope, name);
|
|
157
|
+
return (descriptor !== undefined &&
|
|
158
|
+
typeof descriptor.get === 'function' &&
|
|
159
|
+
typeof descriptor.set === 'function' &&
|
|
160
|
+
descriptor.enumerable === false);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Classify `scope[name]`.
|
|
164
|
+
*
|
|
165
|
+
* Reading the property can succeed while writing still throws (storage
|
|
166
|
+
* disabled, private-browsing quirks, quota exhausted), so probe a real
|
|
167
|
+
* round-trip rather than trusting the getter.
|
|
168
|
+
*
|
|
169
|
+
* `absent` is deliberately distinct from `broken`: a runtime with no web
|
|
170
|
+
* storage at all (Node/SSR, a worker) must be left alone. Inventing a
|
|
171
|
+
* `localStorage` there would flip isomorphic libraries onto their browser code
|
|
172
|
+
* path and cause a *different* class of bug than the one we are fixing.
|
|
173
|
+
*
|
|
174
|
+
* **Never throws.** `installSafeStorage()` runs at module scope, so an escaping
|
|
175
|
+
* error would reject `import '@civitai/app-sdk/blocks'` outright and take down
|
|
176
|
+
* every block that imports it — a worse failure than the one being fixed.
|
|
177
|
+
*/
|
|
178
|
+
function probe(scope, name) {
|
|
179
|
+
// `in` is the only safe existence check, and it has to come first.
|
|
180
|
+
//
|
|
181
|
+
// It runs [[HasProperty]], which does NOT invoke the getter — on an ordinary
|
|
182
|
+
// object (`globalThis` included) it runs no user code at all, so it cannot
|
|
183
|
+
// throw and cannot trip Node's stub (above).
|
|
184
|
+
//
|
|
185
|
+
// The conventional `typeof localStorage === 'undefined'` guard is NOT a
|
|
186
|
+
// substitute: inside a real opaque-origin sandbox `typeof localStorage`
|
|
187
|
+
// ALSO throws, because `typeof` on a member/global reference still resolves
|
|
188
|
+
// the property and runs the throwing getter — only `typeof` of an
|
|
189
|
+
// *undeclared identifier* is safe, and this identifier is declared.
|
|
190
|
+
// `'localStorage' in window` is the probe that survives there, and it
|
|
191
|
+
// correctly answers `true`: in the sandbox the global exists, it is merely
|
|
192
|
+
// unreadable. So the sandbox is classified `broken` below, never `absent`.
|
|
193
|
+
if (!(name in scope))
|
|
194
|
+
return { health: 'absent' };
|
|
195
|
+
if (isNodeWebStorageStub(scope, name))
|
|
196
|
+
return { health: 'absent' };
|
|
197
|
+
let storage;
|
|
198
|
+
try {
|
|
199
|
+
storage = scope[name];
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// The opaque-origin case: the getter itself throws.
|
|
203
|
+
return { health: 'broken' };
|
|
204
|
+
}
|
|
205
|
+
if (storage === undefined || storage === null)
|
|
206
|
+
return { health: 'absent' };
|
|
207
|
+
// Everything below TOUCHES the object we were handed, and every one of those
|
|
208
|
+
// touches can throw — a revoked `Proxy` answers even a plain property read
|
|
209
|
+
// with a TypeError, and any exotic object can have a throwing getter. So the
|
|
210
|
+
// shape check lives inside the `try` alongside the round-trip probe rather
|
|
211
|
+
// than in front of it.
|
|
212
|
+
//
|
|
213
|
+
// A property read that throws is classified `broken`, not `usable`: every
|
|
214
|
+
// consumer's `localStorage.getItem(...)` would throw exactly the same way, so
|
|
215
|
+
// the global is unusable by definition — the same conclusion the throwing
|
|
216
|
+
// *getter* above already reaches. Leaving it in place would keep a provably
|
|
217
|
+
// lethal global on the page; replacing it cannot produce a false positive,
|
|
218
|
+
// because a healthy `Storage` never throws on method access.
|
|
219
|
+
try {
|
|
220
|
+
if (typeof storage.getItem !== 'function' || typeof storage.setItem !== 'function') {
|
|
221
|
+
return { health: 'broken', storage };
|
|
222
|
+
}
|
|
223
|
+
storage.setItem(PROBE_KEY, '1');
|
|
224
|
+
storage.removeItem(PROBE_KEY);
|
|
225
|
+
return { health: 'usable', storage };
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
return { health: 'broken', storage };
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Copy whatever `existing` still holds into `into`, best-effort.
|
|
233
|
+
*
|
|
234
|
+
* The write probe fails for two very different reasons. At an opaque origin
|
|
235
|
+
* there is nothing to read and nothing to preserve. But a *full* (or
|
|
236
|
+
* write-disabled) storage on an ordinary origin — historically the
|
|
237
|
+
* Safari-private-mode shape, and the likeliest real-world trigger — reads
|
|
238
|
+
* perfectly well: swapping a bare in-memory `Storage` over it would shadow
|
|
239
|
+
* live data, turning "can't save" into "the session is gone". So the fallback
|
|
240
|
+
* inherits the current entries first.
|
|
241
|
+
*
|
|
242
|
+
* Values written *after* the swap are session-scoped and lost on reload, the
|
|
243
|
+
* same as every other install path — the fallback never claims to persist.
|
|
244
|
+
*
|
|
245
|
+
* Reading the old store is itself unguarded territory (revoked proxies,
|
|
246
|
+
* throwing getters, an object that is not `Storage`-shaped at all), so the
|
|
247
|
+
* whole copy is best-effort: an empty fallback still beats a global that
|
|
248
|
+
* throws.
|
|
249
|
+
*/
|
|
250
|
+
function seedFrom(existing, into) {
|
|
251
|
+
try {
|
|
252
|
+
const size = existing.length;
|
|
253
|
+
if (typeof size !== 'number' || typeof existing.key !== 'function')
|
|
254
|
+
return;
|
|
255
|
+
if (typeof existing.getItem !== 'function')
|
|
256
|
+
return;
|
|
257
|
+
for (let index = 0; index < size; index += 1) {
|
|
258
|
+
const key = existing.key(index);
|
|
259
|
+
if (key === null || key === undefined || key === PROBE_KEY)
|
|
260
|
+
continue;
|
|
261
|
+
const value = existing.getItem(key);
|
|
262
|
+
if (value !== null && value !== undefined)
|
|
263
|
+
into.setItem(key, value);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
// Unreadable after all. Nothing to inherit; carry on with an empty store.
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Replace any present-but-unusable `localStorage`/`sessionStorage` on `scope`
|
|
272
|
+
* with an in-memory `Storage`, so third-party code that touches it unguarded
|
|
273
|
+
* cannot throw.
|
|
274
|
+
*
|
|
275
|
+
* - **No-op where storage works.** A healthy `Storage` is never replaced, and
|
|
276
|
+
* its contents are never touched.
|
|
277
|
+
* - **No-op where storage is absent** (Node/SSR/workers). Nothing is invented.
|
|
278
|
+
* - **Never loses readable data.** When the old store reads but refuses writes
|
|
279
|
+
* (full / disabled), its entries are copied into the fallback first, so the
|
|
280
|
+
* shim cannot shadow a live session.
|
|
281
|
+
* - **Idempotent.** Once the fallback is installed the round-trip probe
|
|
282
|
+
* succeeds, so a second call is a no-op and values already written survive.
|
|
283
|
+
* - **Never throws.** Every step is guarded; a shim that could fail at import
|
|
284
|
+
* would be a worse outage than the bug it fixes.
|
|
285
|
+
*
|
|
286
|
+
* This module installs on import, so most apps never need to call it. Call it
|
|
287
|
+
* explicitly when you want the guarantee at a specific moment — e.g. right
|
|
288
|
+
* before `await import('some-lib')` that reads storage while evaluating.
|
|
289
|
+
*
|
|
290
|
+
* @param scope Object carrying the storage globals. Defaults to `globalThis`.
|
|
291
|
+
*/
|
|
292
|
+
export function installSafeStorage(scope = globalThis) {
|
|
293
|
+
const result = { localStorage: false, sessionStorage: false };
|
|
294
|
+
for (const name of STORAGE_NAMES) {
|
|
295
|
+
const { health, storage } = probe(scope, name);
|
|
296
|
+
if (health !== 'broken')
|
|
297
|
+
continue;
|
|
298
|
+
// Inherit anything the old store still holds, so a storage that reads
|
|
299
|
+
// fine but refuses writes (full / disabled) does not lose its data behind
|
|
300
|
+
// the shim. Skipped at an opaque origin, where the read itself threw and
|
|
301
|
+
// there is nothing to inherit.
|
|
302
|
+
const fallback = createMemoryStorage();
|
|
303
|
+
if (storage)
|
|
304
|
+
seedFrom(storage, fallback);
|
|
305
|
+
try {
|
|
306
|
+
Object.defineProperty(scope, name, {
|
|
307
|
+
value: fallback,
|
|
308
|
+
// `configurable: true` on purpose — a consumer (or a second call) can
|
|
309
|
+
// still swap in its own store via `Object.defineProperty`.
|
|
310
|
+
configurable: true,
|
|
311
|
+
// `writable: false` matches the browser: `window.localStorage = x` is
|
|
312
|
+
// a no-op in sloppy mode and a TypeError in strict mode on the real
|
|
313
|
+
// thing, sandboxed or not. A writable shim would quietly accept that
|
|
314
|
+
// assignment and hand blocks a *different* behaviour from production.
|
|
315
|
+
writable: false,
|
|
316
|
+
enumerable: false,
|
|
317
|
+
});
|
|
318
|
+
result[name] = true;
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
// Non-configurable in this engine — nothing more we can do. Swallowing
|
|
322
|
+
// keeps a best-effort shim from becoming its own boot failure.
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return result;
|
|
326
|
+
}
|
|
327
|
+
// Install on import.
|
|
328
|
+
//
|
|
329
|
+
// Import order is the whole game: ES module imports are hoisted, so a
|
|
330
|
+
// *statement* can never run before a sibling `import` of a dependency that
|
|
331
|
+
// reads storage while evaluating. Only an import side effect can, which is why
|
|
332
|
+
// this is not opt-in — `@civitai/app-sdk/blocks` and `@civitai/blocks-react`
|
|
333
|
+
// import this module first, and an app can put
|
|
334
|
+
// `import '@civitai/app-sdk/safe-storage';` at the very top of its entry to be
|
|
335
|
+
// ahead of everything.
|
|
336
|
+
//
|
|
337
|
+
// The blast radius is bounded by the rules above: it only ever replaces a
|
|
338
|
+
// global that is already *provably* unusable, so in every healthy runtime this
|
|
339
|
+
// is a couple of `setItem`/`removeItem` calls and nothing else.
|
|
340
|
+
installSafeStorage();
|
|
341
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/safe-storage/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@civitai/app-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
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",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
+
"sideEffects": [
|
|
10
|
+
"./dist/safe-storage/index.js",
|
|
11
|
+
"./dist/blocks/index.js"
|
|
12
|
+
],
|
|
9
13
|
"exports": {
|
|
10
14
|
".": {
|
|
11
15
|
"types": "./dist/index.d.ts",
|
|
@@ -31,6 +35,10 @@
|
|
|
31
35
|
"types": "./dist/blocks/index.d.ts",
|
|
32
36
|
"import": "./dist/blocks/index.js"
|
|
33
37
|
},
|
|
38
|
+
"./safe-storage": {
|
|
39
|
+
"types": "./dist/safe-storage/index.d.ts",
|
|
40
|
+
"import": "./dist/safe-storage/index.js"
|
|
41
|
+
},
|
|
34
42
|
"./schemas/app-block/v1.json": "./schemas/app-block/v1.json"
|
|
35
43
|
},
|
|
36
44
|
"files": [
|
|
@@ -28,6 +28,13 @@
|
|
|
28
28
|
"description": "Human-readable display name. The server only requires a non-empty string (no length cap), so the CLI does not impose one either.",
|
|
29
29
|
"minLength": 1
|
|
30
30
|
},
|
|
31
|
+
"tagline": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Optional one-line pitch shown under the app's name on its `/apps` store card + detail page. Manifest-governed: it flows to the store listing on moderator-approve and is re-synced from the manifest on every subsequent approved version. Omit it and the store simply shows no tagline. Must contain a non-whitespace character and is capped at 140 characters — the same bound off-site listings use (OFFSITE_TAGLINE_MAX), kept in lockstep with MANIFEST_TAGLINE_MAX_LENGTH in src/server/services/block-manifest-validator.service.ts (a drift-guard test enforces equality). NOTE: the server measures the TRIMMED length, while this maxLength counts the raw string — so a value padded past 140 is rejected here but accepted server-side. That asymmetry is deliberate and one-directional: this schema is never more permissive than the server, so local validation can't green-light something submit would reject.",
|
|
34
|
+
"minLength": 1,
|
|
35
|
+
"maxLength": 140,
|
|
36
|
+
"pattern": "\\S"
|
|
37
|
+
},
|
|
31
38
|
"type": {
|
|
32
39
|
"type": "string",
|
|
33
40
|
"description": "Free-form descriptor used by some examples (e.g. \"block\"). Not validated by the platform.",
|