@kozou/core 1.0.0 → 1.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"buildSchemaContext.d.ts","sourceRoot":"","sources":["../src/buildSchemaContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,gBAAgB,EAAqB,MAAM,gBAAgB,CAAC;AACrF,OAAO,KAAK,EAA2B,OAAO,EAAa,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAKV,aAAa,EAId,MAAM,oBAAoB,CAAC;AAM5B,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,gBAAgB,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;CAKlD;AAsRD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CA6EnF"}
1
+ {"version":3,"file":"buildSchemaContext.d.ts","sourceRoot":"","sources":["../src/buildSchemaContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,gBAAgB,EAAqB,MAAM,gBAAgB,CAAC;AACrF,OAAO,KAAK,EAA2B,OAAO,EAAa,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAKV,aAAa,EAId,MAAM,oBAAoB,CAAC;AAM5B,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,gBAAgB,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;CAKlD;AA4SD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CA6EnF"}
@@ -28,7 +28,7 @@ function joinAi(ai) {
28
28
  return ai.length > 0 ? ai.join('\n') : null;
29
29
  }
30
30
  function buildColumn(input) {
31
- const { column, primaryKey, foreignKeyColumns, enumValues, hints } = input;
31
+ const { column, primaryKey, foreignKeyColumns, singleColumnForeignKeyColumns, enumValues, hints } = input;
32
32
  const parsed = parseCommentTags(column.comment);
33
33
  const isPrimaryKey = primaryKey.includes(column.name);
34
34
  const isForeignKey = foreignKeyColumns.has(column.name);
@@ -37,6 +37,9 @@ function buildColumn(input) {
37
37
  inferWidget({
38
38
  column,
39
39
  isForeignKey,
40
+ // Only a single-column FK backs a usable relation-select; composite-FK
41
+ // columns keep isForeignKey but get a type-based widget instead.
42
+ relationSelectable: singleColumnForeignKeyColumns.has(column.name),
40
43
  enumValues,
41
44
  commentBody: parsed.body,
42
45
  });
@@ -69,38 +72,51 @@ function buildRelations(table, issues) {
69
72
  }
70
73
  const relations = [];
71
74
  for (const fk of table.foreignKeys) {
72
- if (fk.columns.length === 1) {
73
- const fkKey = fk.columns.slice().sort().join(',');
74
- const cardinality = uniqueColumnSets.has(fkKey)
75
- ? 'one-to-one'
76
- : 'many-to-one';
77
- relations.push({
78
- field: fk.columns[0],
79
- references: {
80
- schema: fk.referencedSchema,
81
- table: fk.referencedTable,
82
- column: fk.referencedColumns[0] ?? 'id',
83
- },
84
- cardinality,
85
- meaning: fk.comment,
86
- });
75
+ // A zero-column foreign key cannot come from real PostgreSQL introspection;
76
+ // skip the degenerate case silently, matching the prior behaviour.
77
+ if (fk.columns.length === 0)
87
78
  continue;
79
+ // Resolve the referenced columns, enforcing positional alignment with the
80
+ // FK columns. A single-column FK with no referenced column keeps the legacy
81
+ // `['id']` fallback; any other length mismatch is malformed input — record a
82
+ // BuildIssue and skip, rather than emit a misaligned relation that would
83
+ // break composite embed JOIN construction (which indexes columns[i]).
84
+ let refColumns;
85
+ if (fk.referencedColumns.length === fk.columns.length) {
86
+ refColumns = fk.referencedColumns.slice();
87
+ }
88
+ else if (fk.columns.length === 1 && fk.referencedColumns.length === 0) {
89
+ refColumns = ['id'];
88
90
  }
89
- // Composite (multi-column) foreign keys are not yet embeddable:
90
- // RelationContext models a single-column relation (`field` /
91
- // `references.column`). Record the exclusion as a BuildIssue instead of
92
- // dropping it silently, so MCP / CLI consumers can see why the relation
93
- // is missing from `relations` and `relation-select`.
94
- if (fk.columns.length > 1) {
91
+ else {
95
92
  issues.push({
96
93
  path: `tables.${table.name}.relations.${fk.name}`,
97
- message: `Foreign key "${fk.name}" on "${table.schema}.${table.name}" spans multiple columns ` +
98
- `(${fk.columns.join(', ')}); composite foreign keys are not yet embeddable and are ` +
99
- `excluded from relations / relation-select.`,
94
+ message: `Foreign key "${fk.name}" on "${table.schema}.${table.name}" has ${fk.columns.length} ` +
95
+ `column(s) (${fk.columns.join(', ')}) but ${fk.referencedColumns.length} referenced ` +
96
+ `column(s); the relation is skipped because the columns are not positionally aligned.`,
100
97
  });
98
+ continue;
101
99
  }
102
- // A zero-column foreign key cannot come from real PostgreSQL introspection;
103
- // the degenerate case is skipped silently, matching the prior behaviour.
100
+ // Single- and composite-column foreign keys are both modelled, since v1.1:
101
+ // `fields` / `references.columns` carry the full (possibly multi-column)
102
+ // set, and the scalar `field` / `references.column` keep `[0]` for
103
+ // back-compat. The cardinality check uses the whole column set.
104
+ const fkKey = fk.columns.slice().sort().join(',');
105
+ const cardinality = uniqueColumnSets.has(fkKey)
106
+ ? 'one-to-one'
107
+ : 'many-to-one';
108
+ relations.push({
109
+ field: fk.columns[0],
110
+ fields: fk.columns.slice(),
111
+ references: {
112
+ schema: fk.referencedSchema,
113
+ table: fk.referencedTable,
114
+ column: refColumns[0],
115
+ columns: refColumns,
116
+ },
117
+ cardinality,
118
+ meaning: fk.comment,
119
+ });
104
120
  }
105
121
  return relations;
106
122
  }
@@ -109,14 +125,18 @@ function buildTableContext(input) {
109
125
  const parsed = parseCommentTags(table.comment);
110
126
  const enumMap = extractCheckEnums(table.checks);
111
127
  const fkColumns = new Set();
128
+ const singleFkColumns = new Set();
112
129
  for (const fk of table.foreignKeys) {
113
130
  for (const col of fk.columns)
114
131
  fkColumns.add(col);
132
+ if (fk.columns.length === 1)
133
+ singleFkColumns.add(fk.columns[0]);
115
134
  }
116
135
  const columns = table.columns.map((c) => buildColumn({
117
136
  column: c,
118
137
  primaryKey: table.primaryKey,
119
138
  foreignKeyColumns: fkColumns,
139
+ singleColumnForeignKeyColumns: singleFkColumns,
120
140
  enumValues: enumMap.get(c.name) ?? null,
121
141
  hints: hints?.columns?.[c.name],
122
142
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"buildSchemaContext.js","sourceRoot":"","sources":["../src/buildSchemaContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildSchemaContext.js","sourceRoot":"","sources":["../src/buildSchemaContext.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,17 @@ export type SearchRelationParams = {
46
46
  limit?: number;
47
47
  };
48
48
  export type RelationOption = {
49
- id: string | number;
49
+ /**
50
+ * Identifier of the candidate target row. A scalar when the target has a
51
+ * single-column primary key; an array — in the target's `primaryKey`
52
+ * declaration order — when the target's primary key is composite, so an
53
+ * option id is always a valid {@link ResourceId} for the target resource.
54
+ * Widening the scalar form to also allow an array is runtime-compatible —
55
+ * single-column targets keep producing scalars unchanged — though
56
+ * TypeScript consumers that read `id` as a bare scalar must widen their
57
+ * reads.
58
+ */
59
+ id: ResourceId;
50
60
  label: string;
51
61
  };
52
62
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/types/adapter.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhE,4BAA4B;IAC5B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAExE,sBAAsB;IACtB,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpC,sBAAsB;IACtB,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpC,sBAAsB;IACtB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,sFAAsF;IACtF,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/types/adapter.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhE,4BAA4B;IAC5B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAExE,sBAAsB;IACtB,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpC,sBAAsB;IACtB,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpC,sBAAsB;IACtB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,sFAAsF;IACtF,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;;;;OASG;IACH,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -60,14 +60,25 @@ export type ColumnContext = {
60
60
  /** Widget domain for Kozou v0.1 spec §6.4. */
61
61
  export type WidgetType = 'text' | 'textarea' | 'number' | 'boolean' | 'date' | 'datetime' | 'enum-select' | 'relation-select' | 'json' | 'image-url' | 'uuid' | 'currency';
62
62
  export type RelationContext = {
63
- /** Column on this side of the relation. A relation maps a single column;
64
- * composite (multi-column) foreign keys are not yet embeddable, so they
65
- * are excluded here and reported as a build issue (see buildSchemaContext). */
63
+ /** First foreign-key column on this side. Retained for back-compat; for a
64
+ * composite (multi-column) foreign key it is `fields[0]`, so prefer `fields`
65
+ * for the full set. */
66
66
  field: string;
67
+ /** All foreign-key columns on this side, in declaration order. A single-column
68
+ * FK has one entry (`[field]`); a composite FK has several. Added in v1.1,
69
+ * when composite foreign keys became embeddable. Optional for back-compat:
70
+ * `buildSchemaContext` always populates it, but a v1.0-shaped relation may
71
+ * omit it, so readers normalize with `fields ?? [field]`. */
72
+ fields?: string[];
67
73
  references: {
68
74
  schema: string;
69
75
  table: string;
76
+ /** First referenced column. Back-compat; for a composite key it is
77
+ * `columns[0]`, so prefer `columns`. */
70
78
  column: string;
79
+ /** All referenced columns, positionally aligned with `fields`. Added in v1.1.
80
+ * Optional for back-compat; normalize with `columns ?? [column]`. */
81
+ columns?: string[];
71
82
  };
72
83
  /** v0.1 supports only these two */
73
84
  cardinality: 'many-to-one' | 'one-to-one';
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"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"}
package/dist/widget.d.ts CHANGED
@@ -3,6 +3,12 @@ import type { WidgetType } from './types/context.js';
3
3
  export type InferWidgetInput = {
4
4
  column: RawColumn;
5
5
  isForeignKey: boolean;
6
+ /** Whether this column is the sole column of a single-column foreign key, so
7
+ * a relation-select picker has one value to resolve. Composite-FK columns
8
+ * are foreign keys (`isForeignKey: true`) but are not relation-selectable on
9
+ * their own, so they fall through to a type-based widget. Defaults to
10
+ * `isForeignKey` when omitted (back-compat). Added in v1.1. */
11
+ relationSelectable?: boolean;
6
12
  enumValues: string[] | null;
7
13
  /** parseCommentTags(column.comment).body */
8
14
  commentBody: string;
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AASrD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAe/D"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AASrD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB;;;;oEAIgE;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAe/D"}
package/dist/widget.js CHANGED
@@ -4,9 +4,9 @@ const JSON_UDT = new Set(['json', 'jsonb']);
4
4
  const URL_HINT_RE = /(?:^|_)url\b|image/i;
5
5
  const TEXTAREA_HINT_RE = /html|markdown|body|content/i;
6
6
  export function inferWidget(input) {
7
- const { column, isForeignKey, enumValues, commentBody } = input;
7
+ const { column, isForeignKey, relationSelectable, enumValues, commentBody } = input;
8
8
  const udt = column.udtName;
9
- if (isForeignKey)
9
+ if (relationSelectable ?? isForeignKey)
10
10
  return 'relation-select';
11
11
  if (enumValues !== null && enumValues.length > 0)
12
12
  return 'enum-select';
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5C,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAUvD,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAE3B,IAAI,YAAY;QAAE,OAAO,iBAAiB,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACvE,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IAC7C,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,GAAG,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACxE,IAAI,GAAG,KAAK,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5E,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5C,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAgBvD,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IACpF,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAE3B,IAAI,kBAAkB,IAAI,YAAY;QAAE,OAAO,iBAAiB,CAAC;IACjE,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACvE,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IAC7C,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,GAAG,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACxE,IAAI,GAAG,KAAK,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5E,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kozou/core",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Kozou core: Schema Context, type definitions, UI Hints zod schema, DataAdapter interface.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {