@cosmicdrift/kumiko-framework 0.234.0 → 0.235.1

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 (31) hide show
  1. package/package.json +3 -3
  2. package/src/__tests__/unprocessable-error-details-reason-codemod.test.ts +205 -0
  3. package/src/api/server.ts +3 -0
  4. package/src/changes.json +8 -0
  5. package/src/db/__tests__/list-row-meta-drift.test.ts +15 -0
  6. package/src/db/queries/event-consumer.ts +20 -5
  7. package/src/engine/__tests__/boot-validator.test.ts +114 -0
  8. package/src/engine/__tests__/build-app-schema.test.ts +48 -1
  9. package/src/engine/__tests__/build-config-feature-schema-secrets.test.ts +140 -0
  10. package/src/engine/boot-validator/entity-list-screens.ts +13 -1
  11. package/src/engine/boot-validator/i18n-keys.ts +13 -5
  12. package/src/engine/boot-validator/screens.ts +25 -1
  13. package/src/engine/build-app-schema.ts +14 -0
  14. package/src/engine/build-config-feature-schema.ts +216 -44
  15. package/src/engine/index.ts +2 -0
  16. package/src/engine/registry-validate.ts +16 -0
  17. package/src/engine/registry.ts +2 -0
  18. package/src/engine/types/index.ts +2 -0
  19. package/src/i18n/index.ts +1 -0
  20. package/src/i18n/required-surface-keys.ts +11 -0
  21. package/src/i18n/settings-hub-keys.ts +28 -0
  22. package/src/jobs/__tests__/jobs.integration.test.ts +127 -0
  23. package/src/jobs/job-runner.ts +37 -2
  24. package/src/pipeline/__tests__/event-dispatcher-start-from.integration.test.ts +176 -0
  25. package/src/pipeline/event-dispatcher-delivery.ts +1 -1
  26. package/src/pipeline/event-dispatcher.ts +6 -0
  27. package/src/pipeline/multi-stream-apply-context.ts +4 -4
  28. package/src/scripts/codemod/unprocessable-error-details-reason.ts +273 -0
  29. package/src/testing/e2e-generator.ts +3 -0
  30. package/src/ui-types/index.ts +4 -0
  31. package/src/ui-types/list-row-meta.ts +25 -0
@@ -112,6 +112,9 @@ export function generateE2ESpec(
112
112
  // pro Field geschrieben, ohne CRUD-Zustand zu generieren wäre der
113
113
  // Spec wertlos. Branding/SMTP/etc. sind Author-spezifisch.
114
114
  if (screen.type === "configEdit") continue;
115
+ // secretsEdit: dito — writes go through secrets:write:set with
116
+ // plaintext values the generator has no author-defined test data for.
117
+ if (screen.type === "secretsEdit") continue;
115
118
  // projectionList: query-getrieben, Author-spezifische Projection —
116
119
  // kein generischer CRUD-Spec ableitbar (wie actionForm/configEdit).
117
120
  if (screen.type === "projectionList") continue;
@@ -93,6 +93,8 @@ export type {
93
93
  ScreenFilter,
94
94
  ScreenFilterOp,
95
95
  ScreenSlots,
96
+ SecretsEditScreenDefinition,
97
+ SecretsEditSection,
96
98
  ToolbarAction,
97
99
  } from "../engine/types/screen";
98
100
  export type { TargetRef } from "../engine/types/target-ref";
@@ -105,3 +107,5 @@ export type {
105
107
  QualifiedContentCollection,
106
108
  WorkspaceSchema,
107
109
  } from "./app-schema";
110
+ export type { ListRowMetaColumnType } from "./list-row-meta";
111
+ export { LIST_ROW_META_COLUMNS } from "./list-row-meta";
@@ -0,0 +1,25 @@
1
+ // Base row-meta columns (id/tenantId/version/insertedAt/modifiedAt/
2
+ // insertedById/modifiedById) exist on every entity table without being
3
+ // declared entity fields (see rowMetaFieldNames in db/table-builder.ts).
4
+ // computeListViewModel needs a type + sortable hint per column when a screen
5
+ // picks one of these as a list column (e.g. a SystemAdmin cross-tenant view
6
+ // exposing tenantId). This stays a plain string map instead of importing
7
+ // db/table-builder directly, so headless (client bundle) doesn't pull
8
+ // drizzle in through this type-only subpath. list-row-meta-drift.test.ts
9
+ // guards the key set against drift from rowMetaFieldNames(false).
10
+ //
11
+ // Deliberately excludes the softDelete-only columns (isDeleted/deletedAt/
12
+ // deletedById) — this is also the SAME set the boot-validator's entityList
13
+ // column checks accept, so a softDelete column stays a boot-time error
14
+ // instead of a renderer-side throw (see screens.ts / entity-list-screens.ts).
15
+ export type ListRowMetaColumnType = "text" | "number" | "timestamp";
16
+
17
+ export const LIST_ROW_META_COLUMNS: Readonly<Record<string, ListRowMetaColumnType>> = {
18
+ id: "text",
19
+ tenantId: "text",
20
+ version: "number",
21
+ insertedAt: "timestamp",
22
+ modifiedAt: "timestamp",
23
+ insertedById: "text",
24
+ modifiedById: "text",
25
+ };