@cosmicdrift/kumiko-types 0.326.1 → 0.328.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.
Files changed (173) hide show
  1. package/dist/action-icon.d.ts +3 -0
  2. package/dist/action-icon.js +51 -0
  3. package/{src/agent-exposure.ts → dist/agent-exposure.d.ts} +8 -15
  4. package/dist/agent-exposure.js +16 -0
  5. package/dist/concurrency-mode.d.ts +1 -0
  6. package/dist/config-scope.d.ts +1 -0
  7. package/dist/config-scope.js +1 -0
  8. package/dist/config.d.ts +234 -0
  9. package/dist/config.js +1 -0
  10. package/dist/cursor-types.d.ts +16 -0
  11. package/dist/cursor-types.js +1 -0
  12. package/dist/db-connection.d.ts +14 -0
  13. package/dist/db-connection.js +1 -0
  14. package/dist/define-handler.d.ts +58 -0
  15. package/dist/define-handler.js +1 -0
  16. package/dist/derivatives-types.d.ts +53 -0
  17. package/dist/derivatives-types.js +3 -0
  18. package/dist/entity-cache.d.ts +16 -0
  19. package/dist/entity-cache.js +1 -0
  20. package/dist/entity-handlers.d.ts +54 -0
  21. package/dist/entity-handlers.js +1 -0
  22. package/dist/entity-table-meta-types.d.ts +44 -0
  23. package/dist/entity-table-meta-types.js +6 -0
  24. package/dist/envelope-cipher-types.d.ts +5 -0
  25. package/dist/envelope-cipher-types.js +1 -0
  26. package/dist/event-store-executor-types.d.ts +86 -0
  27. package/dist/event-store-executor-types.js +1 -0
  28. package/dist/event-store-types.d.ts +37 -0
  29. package/dist/event-store-types.js +7 -0
  30. package/dist/event-type-map.d.ts +8 -0
  31. package/{src/event-type-map.ts → dist/event-type-map.js} +1 -16
  32. package/dist/executor-brand.d.ts +8 -0
  33. package/dist/executor-brand.js +1 -0
  34. package/dist/extension-options-map.d.ts +9 -0
  35. package/dist/extension-options-map.js +4 -0
  36. package/dist/feature.d.ts +518 -0
  37. package/dist/feature.js +1 -0
  38. package/dist/field-icon.d.ts +1 -0
  39. package/dist/field-icon.js +1 -0
  40. package/dist/fields.d.ts +729 -0
  41. package/dist/fields.js +50 -0
  42. package/dist/file-handle-types.d.ts +12 -0
  43. package/dist/file-handle-types.js +1 -0
  44. package/dist/file-provider-resolver-types.d.ts +3 -0
  45. package/dist/file-provider-resolver-types.js +1 -0
  46. package/dist/file-storage-provider-types.d.ts +17 -0
  47. package/dist/file-storage-provider-types.js +1 -0
  48. package/dist/geo-tz.d.ts +17 -0
  49. package/{src/geo-tz.ts → dist/geo-tz.js} +1 -20
  50. package/dist/handlers.d.ts +493 -0
  51. package/dist/handlers.js +49 -0
  52. package/dist/hook-phase.d.ts +1 -0
  53. package/dist/hook-phase.js +1 -0
  54. package/dist/hooks.d.ts +75 -0
  55. package/dist/hooks.js +1 -0
  56. package/dist/http-route.d.ts +52 -0
  57. package/dist/http-route.js +13 -0
  58. package/dist/identifiers.d.ts +8 -0
  59. package/{src/identifiers.ts → dist/identifiers.js} +7 -24
  60. package/dist/index.d.ts +1 -0
  61. package/dist/index.js +1 -0
  62. package/dist/kms-adapter-types.d.ts +68 -0
  63. package/dist/kms-adapter-types.js +49 -0
  64. package/dist/logger.d.ts +7 -0
  65. package/dist/logger.js +1 -0
  66. package/dist/multi-stream-apply-context-types.d.ts +18 -0
  67. package/dist/multi-stream-apply-context-types.js +1 -0
  68. package/dist/nav-icon.d.ts +3 -0
  69. package/dist/nav-icon.js +100 -0
  70. package/dist/nav.d.ts +39 -0
  71. package/dist/nav.js +1 -0
  72. package/dist/observability/index.d.ts +3 -0
  73. package/dist/observability/index.js +2 -0
  74. package/dist/observability/metric.d.ts +34 -0
  75. package/dist/observability/metric.js +3 -0
  76. package/dist/observability/provider.d.ts +24 -0
  77. package/dist/observability/provider.js +4 -0
  78. package/dist/observability/span.d.ts +32 -0
  79. package/dist/observability/span.js +4 -0
  80. package/dist/ownership.d.ts +33 -0
  81. package/dist/ownership.js +5 -0
  82. package/dist/projection.d.ts +38 -0
  83. package/dist/projection.js +1 -0
  84. package/dist/rate-limit-types.d.ts +19 -0
  85. package/dist/rate-limit-types.js +1 -0
  86. package/dist/relations.d.ts +25 -0
  87. package/dist/relations.js +1 -0
  88. package/dist/schema-table-types.d.ts +15 -0
  89. package/{src/schema-table-types.ts → dist/schema-table-types.js} +0 -20
  90. package/dist/screen.d.ts +1265 -0
  91. package/dist/screen.js +3 -0
  92. package/dist/search-adapter.d.ts +32 -0
  93. package/dist/search-adapter.js +1 -0
  94. package/dist/secrets-types.d.ts +52 -0
  95. package/dist/secrets-types.js +30 -0
  96. package/dist/snapshot-types.d.ts +13 -0
  97. package/dist/snapshot-types.js +1 -0
  98. package/dist/step.d.ts +304 -0
  99. package/dist/step.js +11 -0
  100. package/dist/target-ref.d.ts +5 -0
  101. package/{src/target-ref.ts → dist/target-ref.js} +1 -6
  102. package/dist/tenancy-brand.d.ts +6 -0
  103. package/dist/tenancy-brand.js +1 -0
  104. package/dist/tenant-db-types.d.ts +67 -0
  105. package/dist/tenant-db-types.js +5 -0
  106. package/dist/tree-node.d.ts +26 -0
  107. package/dist/tree-node.js +22 -0
  108. package/dist/tz-context.d.ts +48 -0
  109. package/dist/tz-context.js +6 -0
  110. package/dist/websocket-route.d.ts +46 -0
  111. package/dist/websocket-route.js +10 -0
  112. package/dist/where-clause-types.d.ts +20 -0
  113. package/dist/where-clause-types.js +1 -0
  114. package/dist/workspace.d.ts +10 -0
  115. package/dist/workspace.js +1 -0
  116. package/dist/write-error-info-types.d.ts +12 -0
  117. package/dist/write-error-info-types.js +1 -0
  118. package/package.json +362 -119
  119. package/src/changes.json +12 -0
  120. package/src/__tests__/handlers.test.ts +0 -40
  121. package/src/__tests__/plural-forms.test.ts +0 -18
  122. package/src/action-icon.ts +0 -57
  123. package/src/concurrency-mode.ts +0 -5
  124. package/src/config-scope.ts +0 -5
  125. package/src/config.ts +0 -563
  126. package/src/cursor-types.ts +0 -18
  127. package/src/db-connection.ts +0 -25
  128. package/src/define-handler.ts +0 -138
  129. package/src/derivatives-types.ts +0 -106
  130. package/src/entity-cache.ts +0 -35
  131. package/src/entity-handlers.ts +0 -68
  132. package/src/entity-table-meta-types.ts +0 -101
  133. package/src/envelope-cipher-types.ts +0 -6
  134. package/src/event-store-executor-types.ts +0 -163
  135. package/src/event-store-types.ts +0 -85
  136. package/src/executor-brand.ts +0 -19
  137. package/src/extension-options-map.ts +0 -21
  138. package/src/feature.ts +0 -1132
  139. package/src/field-icon.ts +0 -23
  140. package/src/fields.ts +0 -1114
  141. package/src/file-handle-types.ts +0 -20
  142. package/src/file-provider-resolver-types.ts +0 -7
  143. package/src/file-storage-provider-types.ts +0 -54
  144. package/src/handlers.ts +0 -1246
  145. package/src/hook-phase.ts +0 -2
  146. package/src/hooks.ts +0 -170
  147. package/src/http-route.ts +0 -78
  148. package/src/kms-adapter-types.ts +0 -128
  149. package/src/logger.ts +0 -7
  150. package/src/multi-stream-apply-context-types.ts +0 -52
  151. package/src/nav-icon.ts +0 -105
  152. package/src/nav.ts +0 -139
  153. package/src/observability/index.ts +0 -28
  154. package/src/observability/metric.ts +0 -56
  155. package/src/observability/provider.ts +0 -32
  156. package/src/observability/span.ts +0 -58
  157. package/src/ownership.ts +0 -83
  158. package/src/projection.ts +0 -170
  159. package/src/rate-limit-types.ts +0 -32
  160. package/src/relations.ts +0 -52
  161. package/src/screen.ts +0 -1593
  162. package/src/search-adapter.ts +0 -45
  163. package/src/secrets-types.ts +0 -182
  164. package/src/snapshot-types.ts +0 -36
  165. package/src/step.ts +0 -390
  166. package/src/tenancy-brand.ts +0 -9
  167. package/src/tenant-db-types.ts +0 -116
  168. package/src/tree-node.ts +0 -134
  169. package/src/tz-context.ts +0 -63
  170. package/src/where-clause-types.ts +0 -31
  171. package/src/workspace.ts +0 -42
  172. package/src/write-error-info-types.ts +0 -20
  173. /package/{src/index.ts → dist/concurrency-mode.js} +0 -0
@@ -1,85 +0,0 @@
1
- import type { TenantId } from "./identifiers";
2
-
3
- // Structural shape of kumiko-framework's VersionConflictError. The class
4
- // itself cannot live here (#1629) — this package must stay free of
5
- // identity-sensitive runtime values so it can be a plain dependency.
6
- export interface VersionConflict extends Error {
7
- readonly aggregateId: string;
8
- readonly expectedVersion: number;
9
- }
10
-
11
- export type EventMetadata = {
12
- readonly userId: string;
13
- readonly requestId?: string;
14
- // End-to-end business-operation id. Root HTTP requests get it from the
15
- // x-correlation-id header (default: requestId). MSP-applies inherit it
16
- // from the triggering event. Lets you trace "which user click caused
17
- // this email 3 streams later?".
18
- readonly correlationId?: string;
19
- // Stored event id that triggered this write. Null for root commands;
20
- // set to event.id when an MSP-apply runs ctx.appendEvent. Together with
21
- // correlationId forms a causation DAG across aggregate streams.
22
- readonly causationId?: string;
23
- // Opt-in second line of defense against duplicate appends when the
24
- // Redis-backed HTTP idempotency guard (pipeline/idempotency.ts) misses a
25
- // retry window (Redis unreachable, TTL race). Callers that want a hard
26
- // per-event uniqueness guarantee set a stable key derived from the
27
- // triggering request; the event-store enforces it via a tenant-scoped
28
- // partial unique index and throws IdempotentAppendConflictError on a
29
- // repeat. Unset by default — no uniqueness constraint applies.
30
- readonly idempotencyKey?: string;
31
- // Marten-conform free key/value space for app-specific metadata that
32
- // doesn't deserve its own EventMetadata field. Examples: A/B-test bucket,
33
- // feature-flag snapshot, geo-region, client SDK version. Persisted into
34
- // events.metadata jsonb (no schema change — it's already a free-form
35
- // jsonb column), survives upcasters untouched, available on every
36
- // StoredEvent.metadata.headers. Framework does not interpret values; the
37
- // app reads them when filtering/auditing. Keep values JSON-primitive
38
- // (string|number|boolean) so JSON serialization stays bulletproof.
39
- readonly headers?: Readonly<Record<string, string | number | boolean>>;
40
- // Feature that owned the execution scope which wrote this event, and the
41
- // qualified name of the handler/consumer/job inside it. Derived in
42
- // event-store.append() from the ambient request scope, never passed in by
43
- // the writer — attribution handed over can lie, attribution derived cannot.
44
- // Optional so rows written before #3043 stay readable without a backfill;
45
- // every new row carries both, falling back to UNATTRIBUTED_ORIGIN.
46
- readonly feature?: string;
47
- readonly handler?: string;
48
- // Only set under an anonymous root without public-intake, so event-triggered
49
- // jobs keep the personal-data gate.
50
- readonly writeOrigin?: WriteOrigin;
51
- };
52
-
53
- export type WriteOrigin = {
54
- readonly rootHandler: string;
55
- readonly anonymousRoot: boolean;
56
- // Only a write-handler root can declare public-intake; a query/stream root never does.
57
- readonly publicIntake: boolean;
58
- readonly viaJob?: string;
59
- };
60
-
61
- export function isPersonalDataGated(origin: WriteOrigin): boolean {
62
- return origin.anonymousRoot && !origin.publicIntake;
63
- }
64
-
65
- // Stamped when an append runs outside any attributed scope (seed scripts,
66
- // tests, direct event-store use). A distinct value, not an omission —
67
- // omitted would be indistinguishable from a pre-#3043 row.
68
- export const UNATTRIBUTED_ORIGIN = "unknown";
69
-
70
- // Generic over the payload shape. Default = Record<string, unknown> keeps
71
- // all existing consumers backwards-compatible; annotate `StoredEvent<MyEventPayload>`
72
- // where a typed payload read is needed.
73
- export type StoredEvent<TPayload = Record<string, unknown>> = {
74
- readonly id: string;
75
- readonly aggregateId: string;
76
- readonly aggregateType: string;
77
- readonly tenantId: TenantId;
78
- readonly version: number;
79
- readonly type: string;
80
- readonly eventVersion: number;
81
- readonly payload: TPayload;
82
- readonly metadata: EventMetadata;
83
- readonly createdAt: Temporal.Instant;
84
- readonly createdBy: string;
85
- };
@@ -1,19 +0,0 @@
1
- // A managed projection is only writable through the executor (event →
2
- // rebuild-safe). To make a direct write a *compile* error rather than a
3
- // convention, EntityTable carries a phantom `unique symbol` prop; the public
4
- // write helpers reject anything that has it (see NotExecutorOnly + query.ts).
5
- // The symbol key dodges SchemaTable's `[field: string]: unknown` index
6
- // signature (string index sigs don't cover symbol keys), so the brand
7
- // survives the type-erasure that would swallow a plain marker prop — and the
8
- // executor seam (applyEntityEvent) erases `table` to TableColumns<any>, which
9
- // carries no such prop, so the one legitimate writer stays green.
10
- declare const EXECUTOR_ONLY: unique symbol;
11
- export interface ExecutorOnly {
12
- readonly [EXECUTOR_ONLY]: true;
13
- }
14
- // Negative brand for write-helper params: a branded EntityTable is NOT
15
- // assignable (its `true` clashes with `never`), while unmanaged EntityTableMeta
16
- // and erased SchemaTable pass (they lack the prop, so `?: never` is satisfied).
17
- export type NotExecutorOnly = {
18
- readonly [EXECUTOR_ONLY]?: never;
19
- };
@@ -1,21 +0,0 @@
1
- // Cross-Feature Compile-Time-Type-Map for `r.useExtension(name, entity, options)`.
2
- // Augmented per extension point via `declare module "@cosmicdrift/kumiko-framework/engine"`,
3
- // mirroring event-type-map.ts; names without augmentation stay untyped.
4
-
5
- import type { EscapeHatchDeclaration } from "./handlers";
6
-
7
- // MUST be `interface` (not `type`): only interfaces support TS declaration-
8
- // merging. See event-type-map.ts for the same constraint.
9
-
10
- // biome-ignore lint/suspicious/noEmptyInterface: declaration-merging marker — augmented per extension point
11
- export interface KumikoExtensionOptionsMap {}
12
-
13
- /** Options shape for an extension name: the augmented hook shape plus `escapeHatch`, or an untyped bag if unaugmented. */
14
- export type ExtensionOptionsFor<N extends string> = N extends keyof KumikoExtensionOptionsMap
15
- ? KumikoExtensionOptionsMap[N] & { readonly escapeHatch?: EscapeHatchDeclaration }
16
- : Record<string, unknown>;
17
-
18
- /** Rest-tuple for useExtension's positional options arg: required for an augmented name, optional otherwise. */
19
- export type ExtensionOptionsArgs<N extends string> = N extends keyof KumikoExtensionOptionsMap
20
- ? [options: ExtensionOptionsFor<N>]
21
- : [options?: Record<string, unknown>];