@tekki-forge/core 0.3.2 → 0.4.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/app.d.ts CHANGED
@@ -279,6 +279,8 @@ export interface AppDefinition {
279
279
  /** Languages of the admin UI. Translations of your labels live in locales/<locale>.json. */
280
280
  i18n?: I18nConfig;
281
281
  entities: Record<string, EntityDefinition>;
282
+ /** Development sample values, keyed by entity. Relations are assigned by the demo seeder. */
283
+ demo?: Record<string, readonly Record<string, unknown>[]>;
282
284
  /**
283
285
  * A public landing page at `/` for signed-out visitors (signed-in users still get the dashboard).
284
286
  * `true` builds one from the app's name, description, tagline and entities; an object overrides any part.
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AA6DA,MAAM,UAAU,MAAM,CAAC,aAAgD,EAAE;IACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;AAC9C,CAAC;AAqED,MAAM,UAAU,MAAM,CAAC,UAA6C;IAClE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;AAC9C,CAAC;AA+QD,MAAM,UAAU,SAAS,CAAC,UAAyB;IACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AA6DA,MAAM,UAAU,MAAM,CAAC,aAAgD,EAAE;IACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;AAC9C,CAAC;AAqED,MAAM,UAAU,MAAM,CAAC,UAA6C;IAClE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;AAC9C,CAAC;AAiRD,MAAM,UAAU,SAAS,CAAC,UAAyB;IACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;AAC3C,CAAC"}
package/dist/fields.d.ts CHANGED
@@ -24,6 +24,13 @@ export interface BaseFieldOptions {
24
24
  /** Returned by the API but never writable through it. */
25
25
  readonly?: boolean;
26
26
  placeholder?: string;
27
+ /** Group related inputs in a named form section. */
28
+ section?: string;
29
+ /** Presentation only; API validation and permissions still apply. */
30
+ visibleWhen?: {
31
+ field: string;
32
+ equals: string | number | boolean | null;
33
+ };
27
34
  /** Override the UI widget, e.g. "textarea". */
28
35
  widget?: string;
29
36
  /**
@@ -73,6 +80,11 @@ export interface RelationFieldOptions extends BaseFieldOptions {
73
80
  type?: RelationType;
74
81
  /** Marks this relation as the record owner used by `"owner"` permission rules. */
75
82
  owner?: boolean;
83
+ /**
84
+ * Roles (besides admin) that may set the owner to another user, e.g. managers assigning tasks.
85
+ * Only on an owner relation; field write access alone never allows it.
86
+ */
87
+ assignableBy?: string[];
76
88
  onDelete?: "cascade" | "restrict" | "setNull";
77
89
  /** Name of the inverse (one-to-many) collection on the target entity. */
78
90
  inverse?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekki-forge/core",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "Forge schema DSL: defineApp, entity and field builders",
5
5
  "keywords": [
6
6
  "code-generator",