@cosmicdrift/kumiko-types 0.367.0 → 0.369.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/dist/config.d.ts CHANGED
@@ -255,6 +255,7 @@ export type NotificationDefinition = {
255
255
  readonly localizedTemplate?: () => NotificationLocalizedTemplate;
256
256
  readonly systemOnly?: boolean;
257
257
  readonly unsubscribe?: boolean;
258
+ readonly tenantTransport?: boolean;
258
259
  };
259
260
  export type PluralForms = {
260
261
  readonly zero?: string;
package/dist/feature.d.ts CHANGED
@@ -328,6 +328,7 @@ export type FeatureRegistrar<TFeature extends string = string> = {
328
328
  readonly renamedFrom?: readonly string[];
329
329
  readonly systemOnly?: boolean;
330
330
  readonly unsubscribe?: boolean;
331
+ readonly tenantTransport?: boolean;
331
332
  }): void;
332
333
  notification(definition: {
333
334
  readonly name: string;
@@ -345,6 +346,7 @@ export type FeatureRegistrar<TFeature extends string = string> = {
345
346
  readonly renamedFrom?: readonly string[];
346
347
  readonly systemOnly?: boolean;
347
348
  readonly unsubscribe?: boolean;
349
+ readonly tenantTransport?: boolean;
348
350
  }): void;
349
351
  translations(def: TranslationsDef): void;
350
352
  defineEvent<const TInner extends string, TPayload>(name: TInner, schema: ZodType<TPayload>, options: {
package/dist/fields.d.ts CHANGED
@@ -29,7 +29,7 @@ export type ResolvedPiiFlags = {
29
29
  * that lives purely in an FK column. */
30
30
  readonly subjectRef?: true;
31
31
  };
32
- export type EntityPiiAbsentSubject = "tenant";
32
+ export type EntityPiiAbsentSubject = "tenant" | "self";
33
33
  export type PersonalSubject = "self" | {
34
34
  readonly of: string;
35
35
  readonly whenAbsent?: EntityPiiAbsentSubject;
@@ -270,8 +270,6 @@ export type AppContext = SharedContextFields & {
270
270
  * die einzige Möglichkeit für den Handler zu wissen WELCHER Trigger
271
271
  * gefeuert hat. Cron- und manual-Jobs lassen das Feld undefined. */
272
272
  readonly triggerName?: string;
273
- readonly _userId?: string | undefined;
274
- readonly _handlerType?: string | undefined;
275
273
  /** Optionaler Geo→Zone-Adapter. Wenn gesetzt (via buildServer-context oder
276
274
  * runProdApp/runDevApp extraContext), reicht der Dispatcher ihn an
277
275
  * ctx.tz.fromCoordinates / fromAddress weiter. Ohne Provider werfen diese. */
@@ -310,8 +308,6 @@ export type HandlerContext<TMap extends object = KumikoEventTypeMap> = SharedCon
310
308
  readonly id: string;
311
309
  readonly tenantId: TenantId;
312
310
  } | null;
313
- readonly _userId?: string | undefined;
314
- readonly _handlerType?: string | undefined;
315
311
  /** Keyed digest for handler-owned rate-limit keys, so Redis never holds a
316
312
  * plaintext or plainly hashed identifier. Scoped to the running handler:
317
313
  * the same input yields a different digest per handler and never matches a
@@ -421,7 +417,7 @@ type CharKind<C extends string> = C extends Lowercase<C> ? (C extends Uppercase<
421
417
  * shape the runtime emits via `qn(toKebab(feature), "event", toKebab(inner))`.
422
418
  */
423
419
  export type QualifiedEventName<TFeature extends string, TInner extends string> = `${CamelToKebab<TFeature>}:event:${CamelToKebab<TInner>}`;
424
- export type EventPiiAbsentSubject = "plaintext" | "tenant";
420
+ export type EventPiiAbsentSubject = "plaintext" | "tenant" | "self";
425
421
  export type EventPiiSubject = {
426
422
  readonly personal: {
427
423
  readonly of: string;
package/dist/screen.d.ts CHANGED
@@ -1669,6 +1669,10 @@ export type ConfigEditScreenDefinition = {
1669
1669
  * Validator prüft dass jeder qualifizierte Key in der Registry
1670
1670
  * bekannt ist. */
1671
1671
  readonly configKeys: Readonly<Record<string, string>>;
1672
+ /** Field name → qualified secret key (`<feature>:secret:<short>`), tenant scope only.
1673
+ * Such a field is a writeOnly text field with no `configKeys` entry; the same save
1674
+ * writes it through secrets:write:set (or secrets:write:delete on removal). */
1675
+ readonly secretKeys?: Readonly<Record<string, string>>;
1672
1676
  /** Form-Shape pro Field-Name. Selbe FieldDefinitions wie auf
1673
1677
  * Entities/ActionForm. Field-Names matchen die Keys in `configKeys`
1674
1678
  * — Boot-Validator pinnt das. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-types",
3
- "version": "0.367.0",
3
+ "version": "0.369.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>",