@cosmicdrift/kumiko-types 0.221.0 → 0.223.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/package.json +1 -1
- package/src/fields.ts +13 -0
- package/src/file-storage-provider-types.ts +9 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.223.0",
|
|
4
4
|
"description": "Framework-Type-Definitions für Kumiko — FeatureDefinition, BootCheck-Types und die reinen Engine-Types. Erlaubt Downstream-Konsumenten, gegen die Type-Contracts zu bauen, ohne das ganze Framework-Package zu importieren. Enthaelt keine identitaets-sensitiven Runtime-Werte mehr (Error-Klassen leben seit #1629 in kumiko-framework, Brand-Symbole nutzen Symbol.for) und ist deshalb eine plain dependency, keine peerDependency.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
package/src/fields.ts
CHANGED
|
@@ -334,6 +334,19 @@ export type MultiSelectFieldDef<TOptions extends readonly string[] = readonly st
|
|
|
334
334
|
/** Default-Auswahl. Jeder Eintrag muss in `options` sein (Boot-Validator). */
|
|
335
335
|
readonly default?: readonly TOptions[number][];
|
|
336
336
|
readonly access?: FieldAccess;
|
|
337
|
+
/** Renderer metadata: `"checkboxes"` renders every option as a visible
|
|
338
|
+
* checkbox with a select-all toggle. Default (omitted) stays the combobox
|
|
339
|
+
* dropdown. */
|
|
340
|
+
readonly display?: "checkboxes" | "dropdown";
|
|
341
|
+
/** Renderer metadata: column count for the `"checkboxes"` grid at the widest
|
|
342
|
+
* breakpoint; narrow viewports always collapse to one column. Omitted =
|
|
343
|
+
* the renderer picks a sensible count. Ignored unless
|
|
344
|
+
* `display: "checkboxes"`. */
|
|
345
|
+
readonly columns?: 1 | 2 | 3 | 4;
|
|
346
|
+
/** Renderer metadata: how many grid rows stay visible before the
|
|
347
|
+
* `"checkboxes"` grid becomes scrollable. Omitted = the grid grows with its
|
|
348
|
+
* content and never scrolls. Ignored unless `display: "checkboxes"`. */
|
|
349
|
+
readonly maxRows?: number;
|
|
337
350
|
} & ResolvedPiiFlags;
|
|
338
351
|
|
|
339
352
|
/**
|
|
@@ -26,6 +26,11 @@ export type WriteStreamOptions = {
|
|
|
26
26
|
// type here would let a provider skip them and fail silently in production
|
|
27
27
|
// the first time an export job hits it.
|
|
28
28
|
//
|
|
29
|
+
// list is required for the same reason: GDPR forget/tenant-destroy erasure
|
|
30
|
+
// needs to find derived/variant keys that were never tracked anywhere else
|
|
31
|
+
// (see derivatives-context) — an optional `list` would let a provider skip
|
|
32
|
+
// it and erasure would silently leave those binaries behind.
|
|
33
|
+
//
|
|
29
34
|
// getSignedUrl is optional — providers without native presigned-URL support
|
|
30
35
|
// (filesystem) leave it undefined; the route then returns 501 and the
|
|
31
36
|
// client falls back to streaming via GET /files/:id. Callers must
|
|
@@ -41,5 +46,9 @@ export type FileStorageProvider = {
|
|
|
41
46
|
readStream(key: string): AsyncIterable<Uint8Array>;
|
|
42
47
|
delete(key: string): Promise<void>;
|
|
43
48
|
exists(key: string): Promise<boolean>;
|
|
49
|
+
// Keys currently stored under `prefix` (prefix-match, not glob). Paginates
|
|
50
|
+
// internally — callers get the full result set for however many pages the
|
|
51
|
+
// backend needs, never a silently-truncated first page.
|
|
52
|
+
list(prefix: string): Promise<readonly string[]>;
|
|
44
53
|
getSignedUrl?(key: string, expiresInSeconds: number, options?: SignedUrlOptions): Promise<string>;
|
|
45
54
|
};
|