@stonecrop/schema 0.13.4 → 0.13.6
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/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/index--rNo7Kel.js +494 -0
- package/dist/index--rNo7Kel.js.map +1 -0
- package/dist/index-BJjSlCSo.js +496 -0
- package/dist/index-BJjSlCSo.js.map +1 -0
- package/dist/index-C08kwqyS.js +502 -0
- package/dist/index-C08kwqyS.js.map +1 -0
- package/dist/index-COp1U6eU.js +505 -0
- package/dist/index-COp1U6eU.js.map +1 -0
- package/dist/index-DEkR-1RC.js +496 -0
- package/dist/index-DEkR-1RC.js.map +1 -0
- package/dist/index-XSSAHj8g.js +495 -0
- package/dist/index-XSSAHj8g.js.map +1 -0
- package/dist/index-leHOZ3ll.js +502 -0
- package/dist/index-leHOZ3ll.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/schema.d.ts +6 -2
- package/dist/src/cli.js +2 -2
- package/dist/src/converter/heuristics.d.ts.map +1 -1
- package/dist/src/converter/heuristics.js +5 -2
- package/dist/src/converter/index.js +3 -3
- package/dist/src/converter/types.d.ts +3 -1
- package/dist/src/converter/types.d.ts.map +1 -1
- package/dist/src/doctype.d.ts +1 -0
- package/dist/src/doctype.d.ts.map +1 -1
- package/dist/src/field.d.ts +1 -0
- package/dist/src/field.d.ts.map +1 -1
- package/dist/src/field.js +3 -0
- package/dist/src/fieldtype.d.ts +1 -1
- package/dist/src/fieldtype.d.ts.map +1 -1
- package/dist/src/fieldtype.js +5 -0
- package/package.json +5 -7
package/dist/schema.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare function buildScalarMap(customScalars?: Record<string, Partial<Fi
|
|
|
38
38
|
* that Stonecrop provides default components for.
|
|
39
39
|
* @public
|
|
40
40
|
*/
|
|
41
|
-
export declare const BUILTIN_FIELD_TYPES: readonly ["Data", "Text", "Int", "Float", "Decimal", "Check", "Date", "Time", "Datetime", "Duration", "DateRange", "JSON", "Code", "Link", "Attach", "Currency", "Quantity", "Select", "PrimaryKey"];
|
|
41
|
+
export declare const BUILTIN_FIELD_TYPES: readonly ["Data", "Text", "Int", "Float", "Decimal", "Check", "Date", "Time", "Datetime", "Duration", "DateRange", "JSON", "Code", "Link", "Attach", "Currency", "Quantity", "Select", "PrimaryKey", "Fieldset", "Display"];
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Union of all builtin fieldtype string literals.
|
|
@@ -448,6 +448,7 @@ export declare const DoctypeMeta: z.ZodObject<{
|
|
|
448
448
|
validation: z.ZodOptional<z.ZodObject<{
|
|
449
449
|
errorMessage: z.ZodString;
|
|
450
450
|
}, z.core.$loose>>;
|
|
451
|
+
schema: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
451
452
|
}, z.core.$strip>>;
|
|
452
453
|
links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
453
454
|
target: z.ZodString;
|
|
@@ -565,6 +566,7 @@ export declare const FieldMeta: z.ZodObject<{
|
|
|
565
566
|
/** Error message to display when validation fails */
|
|
566
567
|
errorMessage: z.ZodString;
|
|
567
568
|
}, z.core.$loose>>;
|
|
569
|
+
schema: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
568
570
|
}, z.core.$strip>;
|
|
569
571
|
|
|
570
572
|
/**
|
|
@@ -689,7 +691,9 @@ export declare const GQL_SCALAR_MAP: Record<string, FieldTemplate>;
|
|
|
689
691
|
*
|
|
690
692
|
* @public
|
|
691
693
|
*/
|
|
692
|
-
export declare interface GraphQLConversionFieldMeta extends FieldMeta {
|
|
694
|
+
export declare interface GraphQLConversionFieldMeta extends Omit<FieldMeta, 'fieldtype'> {
|
|
695
|
+
/** Semantic field type - optional for link fields which don't have a fieldtype */
|
|
696
|
+
fieldtype?: string;
|
|
693
697
|
/** Original GraphQL type name (for debugging/reference) */
|
|
694
698
|
_graphqlType?: string;
|
|
695
699
|
/** Marks fields that couldn't be automatically mapped */
|
package/dist/src/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
/*
|
|
2
|
+
/* oxlint-disable no-console */
|
|
3
3
|
/**
|
|
4
4
|
* Stonecrop Schema CLI
|
|
5
5
|
*
|
|
@@ -39,7 +39,7 @@ async function fetchIntrospection(endpoint, headers) {
|
|
|
39
39
|
if (!response.ok) {
|
|
40
40
|
throw new Error(`Failed to fetch introspection: ${response.status} ${response.statusText}`);
|
|
41
41
|
}
|
|
42
|
-
const json =
|
|
42
|
+
const json = await response.json();
|
|
43
43
|
if (json.errors?.length) {
|
|
44
44
|
throw new Error(`GraphQL errors: ${json.errors.map(e => e.message).join(', ')}`);
|
|
45
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heuristics.d.ts","sourceRoot":"","sources":["../../../src/converter/heuristics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"heuristics.d.ts","sourceRoot":"","sources":["../../../src/converter/heuristics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAON,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAGjB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AA+BnF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CA8BtF;AAQD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EACtC,WAAW,EAAE,iBAAiB,GAC5B,OAAO,CAET;AAyED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EACrC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,OAAO,GAAE,wBAA6B,GACpC,0BAA0B,CAwG5B"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
|
-
import { isScalarType, isEnumType, isObjectType, isListType, isNonNullType, } from 'graphql';
|
|
12
|
+
import { isScalarType, isEnumType, isObjectType, isListType, isNonNullType, isNamedType, } from 'graphql';
|
|
13
13
|
import { buildScalarMap, INTERNAL_SCALARS } from './scalars';
|
|
14
14
|
import { toSlug, camelToLabel, toPascalCase } from '../naming';
|
|
15
15
|
/**
|
|
@@ -121,7 +121,10 @@ function unwrapType(type) {
|
|
|
121
121
|
current = current.ofType;
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
// At this point, current should be a named type
|
|
124
|
+
// At this point, current should be a named type (scalar, enum, or object)
|
|
125
|
+
if (!isNamedType(current)) {
|
|
126
|
+
throw new Error(`Expected a named GraphQL type, got: ${String(current)}`);
|
|
127
|
+
}
|
|
125
128
|
return { namedType: current, required, isList };
|
|
126
129
|
}
|
|
127
130
|
/**
|
|
@@ -87,9 +87,9 @@ export function convertGraphQLSchema(source, options = {}) {
|
|
|
87
87
|
continue;
|
|
88
88
|
const fields = type.getFields();
|
|
89
89
|
const typeOverrides = options.typeOverrides?.[typeName];
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
const filteredEntries = Object.entries(fields).filter(([fieldName, field]) => isEntityField(fieldName, field, type));
|
|
91
|
+
// oxlint-disable-next-line oxc/no-map-spread -- spread required: Object.assign loses _isLink/_graphqlType metadata
|
|
92
|
+
const allClassifiedFields = filteredEntries.map(([fieldName, field]) => {
|
|
93
93
|
// Check for full custom classification first
|
|
94
94
|
if (options.classifyField) {
|
|
95
95
|
const custom = options.classifyField(fieldName, field, type);
|
|
@@ -114,7 +114,9 @@ export interface GraphQLConversionOptions {
|
|
|
114
114
|
*
|
|
115
115
|
* @public
|
|
116
116
|
*/
|
|
117
|
-
export interface GraphQLConversionFieldMeta extends FieldMeta {
|
|
117
|
+
export interface GraphQLConversionFieldMeta extends Omit<FieldMeta, 'fieldtype'> {
|
|
118
|
+
/** Semantic field type - optional for link fields which don't have a fieldtype */
|
|
119
|
+
fieldtype?: string;
|
|
118
120
|
/** Original GraphQL type name (for debugging/reference) */
|
|
119
121
|
_graphqlType?: string;
|
|
120
122
|
/** Marks fields that couldn't be automatically mapped */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/converter/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,MAAM,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAElB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAElE;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IAEtD;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAA;IAErE;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAAA;IAEpH;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EACrC,UAAU,EAAE,iBAAiB,KACzB,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA2B,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/converter/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,MAAM,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAElB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAElE;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IAEtD;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAA;IAErE;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAAA;IAEpH;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EACrC,UAAU,EAAE,iBAAiB,KACzB,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;IAC/E,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC3E,kEAAkE;IAClE,MAAM,EAAE,0BAA0B,EAAE,CAAA;IACpC,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB;AAGD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/src/doctype.d.ts
CHANGED
|
@@ -184,6 +184,7 @@ export declare const DoctypeMeta: z.ZodObject<{
|
|
|
184
184
|
validation: z.ZodOptional<z.ZodObject<{
|
|
185
185
|
errorMessage: z.ZodString;
|
|
186
186
|
}, z.core.$loose>>;
|
|
187
|
+
schema: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
187
188
|
}, z.core.$strip>>;
|
|
188
189
|
links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
189
190
|
target: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctype.d.ts","sourceRoot":"","sources":["../../src/doctype.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;EAGtB,CAAA;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEvC;;;GAGG;AACH,eAAO,MAAM,SAAS;;;iBAUnB,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAEjD;;;GAGG;AACH,eAAO,MAAM,SAAS;;iBAQnB,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAEjD;;;GAGG;AACH,eAAO,MAAM,WAAW;;;iBAUrB,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;;;;;;;;6BAGxB,CAAA;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEzD;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;iBA0BzB,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;iBAuB1B,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;iBAWtB,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"doctype.d.ts","sourceRoot":"","sources":["../../src/doctype.ts"],"names":[],"mappings":"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"}
|
package/dist/src/field.d.ts
CHANGED
|
@@ -68,6 +68,7 @@ export declare const FieldMeta: z.ZodObject<{
|
|
|
68
68
|
/** Error message to display when validation fails */
|
|
69
69
|
errorMessage: z.ZodString;
|
|
70
70
|
}, z.core.$loose>>;
|
|
71
|
+
schema: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
71
72
|
}, z.core.$strip>;
|
|
72
73
|
/**
|
|
73
74
|
* Field metadata type inferred from Zod schema
|
package/dist/src/field.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,qGAStB,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,eAAe;IAE1B,qDAAqD;;iBAMpD,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAtBpB,qDAAqD
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,qGAStB,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,eAAe;IAE1B,qDAAqD;;iBAMpD,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAtBpB,qDAAqD;;;;iBAmHpD,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA"}
|
package/dist/src/field.js
CHANGED
|
@@ -103,6 +103,9 @@ export const FieldMeta = z
|
|
|
103
103
|
// === VALIDATION ===
|
|
104
104
|
/** Validation configuration */
|
|
105
105
|
validation: FieldValidation.optional(),
|
|
106
|
+
// === LAYOUT ===
|
|
107
|
+
/** Nested field definitions for Fieldset containers — UI grouping only, no DB column */
|
|
108
|
+
schema: z.array(z.record(z.string(), z.unknown())).optional(),
|
|
106
109
|
})
|
|
107
110
|
.meta({
|
|
108
111
|
title: 'FieldMeta',
|
package/dist/src/fieldtype.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { z } from 'zod';
|
|
|
5
5
|
* that Stonecrop provides default components for.
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
|
-
export declare const BUILTIN_FIELD_TYPES: readonly ["Data", "Text", "Int", "Float", "Decimal", "Check", "Date", "Time", "Datetime", "Duration", "DateRange", "JSON", "Code", "Link", "Attach", "Currency", "Quantity", "Select", "PrimaryKey"];
|
|
8
|
+
export declare const BUILTIN_FIELD_TYPES: readonly ["Data", "Text", "Int", "Float", "Decimal", "Check", "Date", "Time", "Datetime", "Duration", "DateRange", "JSON", "Code", "Link", "Attach", "Currency", "Quantity", "Select", "PrimaryKey", "Fieldset", "Display"];
|
|
9
9
|
/**
|
|
10
10
|
* Union of all builtin fieldtype string literals.
|
|
11
11
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldtype.d.ts","sourceRoot":"","sources":["../../src/fieldtype.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"fieldtype.d.ts","sourceRoot":"","sources":["../../src/fieldtype.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,6NAsBtB,CAAA;AAEV;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,aAG7B,CAAA;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,IAAI,gBAAgB,CAEnF;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,EAAE,gBAAgB,CAAA;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAyC5D,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAEvE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
package/dist/src/fieldtype.js
CHANGED
|
@@ -25,6 +25,8 @@ export const BUILTIN_FIELD_TYPES = [
|
|
|
25
25
|
'Quantity', // Quantity with unit
|
|
26
26
|
'Select', // Dropdown selection
|
|
27
27
|
'PrimaryKey', // Primary key field — used by the middleware to identify the record's PK column
|
|
28
|
+
'Fieldset', // UI grouping container — no DB column; children are flat columns
|
|
29
|
+
'Display', // Computed/read-only field — no DB column; excluded from SQL SELECT
|
|
28
30
|
];
|
|
29
31
|
/**
|
|
30
32
|
* Stonecrop field type — any non-empty string is valid; Stonecrop provides default components
|
|
@@ -77,6 +79,9 @@ export const TYPE_MAP = {
|
|
|
77
79
|
Select: { component: 'ADropdown', fieldtype: 'Select' },
|
|
78
80
|
// Identity — PK fields are typically hidden; no interactive component is needed
|
|
79
81
|
PrimaryKey: { component: 'ATextInput', fieldtype: 'PrimaryKey' },
|
|
82
|
+
// Layout — UI grouping containers and computed fields with no backing DB column
|
|
83
|
+
Fieldset: { component: 'AFieldset', fieldtype: 'Fieldset' },
|
|
84
|
+
Display: { component: 'ATextInput', fieldtype: 'Display' },
|
|
80
85
|
};
|
|
81
86
|
/**
|
|
82
87
|
* Get the default component for a builtin field type.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stonecrop/schema",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/schema.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -22,16 +22,13 @@
|
|
|
22
22
|
"zod": "^4.3.6"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@eslint/js": "^10.0.1",
|
|
26
25
|
"@microsoft/api-documenter": "^7.30.5",
|
|
27
26
|
"@rushstack/heft": "^1.2.17",
|
|
28
27
|
"@types/node": "^24.12.4",
|
|
29
28
|
"@vitest/coverage-istanbul": "^4.1.5",
|
|
30
|
-
"eslint-config-prettier": "^10.1.8",
|
|
31
|
-
"eslint": "^10.3.0",
|
|
32
|
-
"globals": "^17.6.0",
|
|
33
29
|
"jsdom": "^29.1.1",
|
|
34
|
-
"
|
|
30
|
+
"oxlint": "1.67.0",
|
|
31
|
+
"oxlint-tsgolint": "0.23.0",
|
|
35
32
|
"typescript": "^6.0.3",
|
|
36
33
|
"vite": "^7.3.2",
|
|
37
34
|
"vitest": "^4.1.5",
|
|
@@ -41,7 +38,8 @@
|
|
|
41
38
|
"_phase:build": "heft build && vite build && rushx docs",
|
|
42
39
|
"build": "heft build && vite build && rushx docs",
|
|
43
40
|
"docs": "bash ../common/scripts/run-docs.sh schema",
|
|
44
|
-
"lint": "
|
|
41
|
+
"lint": "oxlint",
|
|
42
|
+
"lint:fix": "oxlint --fix",
|
|
45
43
|
"preview": "vite preview",
|
|
46
44
|
"test": "vitest run --coverage.enabled false",
|
|
47
45
|
"test:watch": "vitest watch",
|