@cosmicdrift/kumiko-types 0.310.0 → 0.312.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-types",
3
- "version": "0.310.0",
3
+ "version": "0.312.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/config.ts CHANGED
@@ -354,7 +354,12 @@ export type JobTrigger =
354
354
  // event-consumer (createJobTriggerEventConsumer, pipeline/system-
355
355
  // hooks.ts) — cursor delivery, at-least-once. Handlers triggered on an
356
356
  // r.defineEvent QN must be idempotent.
357
- | { readonly on: import("./handlers").NameOrRef | readonly import("./handlers").NameOrRef[] }
357
+ | {
358
+ readonly on: import("./handlers").NameOrRef | readonly import("./handlers").NameOrRef[];
359
+ // Equality filter on top-level payload fields, checked before enqueue —
360
+ // lets N jobs share one broad event QN, partitioned by a discriminant.
361
+ readonly where?: Readonly<Record<string, string | number | boolean>>;
362
+ }
358
363
  | { readonly cron: string }
359
364
  | { readonly manual: true };
360
365
 
@@ -1,6 +1,7 @@
1
1
  import type { DerivativesContext } from "./derivatives-types";
2
2
  import type { StoredEvent } from "./event-store-types";
3
3
  import type { KumikoEventTypeMap } from "./event-type-map";
4
+ import type { Registry } from "./feature";
4
5
  import type { FileContext } from "./file-handle-types";
5
6
  import type { AppendEventFn, UnsafeAppendEventFn } from "./handlers";
6
7
 
@@ -30,6 +31,10 @@ export type MultiStreamApplyContext<TMap extends object = KumikoEventTypeMap> =
30
31
  aggregateId: string,
31
32
  options?: { readonly asOf?: Temporal.Instant },
32
33
  ) => Promise<readonly StoredEvent[]>;
34
+ // The app registry — same instance HandlerContext/JobContext expose. Lets
35
+ // an apply resolve extension-point usages (registry.getExtensionUsages),
36
+ // e.g. a provider-routed MSP picking a handler by payload discriminant.
37
+ readonly registry: Registry;
33
38
  // Binary storage handle factory, mirrors AppContext.files. Present when
34
39
  // the app booted with `files.storageProvider`; undefined otherwise.
35
40
  // Post-processing MSPs (resize, EXIF-strip, virus-scan) read bytes via