@ghentcdh/crouton-api 0.0.1-alpha.75 → 0.0.1-alpha.77
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/index.cjs +688 -404
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +78 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.js +678 -394
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -70,7 +70,7 @@ __export(index_exports, {
|
|
|
70
70
|
});
|
|
71
71
|
module.exports = __toCommonJS(index_exports);
|
|
72
72
|
|
|
73
|
-
// ../../node_modules/.pnpm/tsup@8.5.1_@
|
|
73
|
+
// ../../node_modules/.pnpm/tsup@8.5.1_@swc+core@1.16.13_@swc+helpers@0.5.23__jiti@2.7.0_postcss@8.5.28_tsx@4.23.15_typescript@6.0.3_yaml@2.9.0/node_modules/tsup/assets/cjs_shims.js
|
|
74
74
|
var getImportMetaUrl = /* @__PURE__ */ __name(() => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href, "getImportMetaUrl");
|
|
75
75
|
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
76
76
|
|
|
@@ -702,64 +702,307 @@ var LayoutSchema = import_zod8.z.object({
|
|
|
702
702
|
});
|
|
703
703
|
|
|
704
704
|
// ../crouton-core/src/lib/resource/ResourceJson.schema.ts
|
|
705
|
-
var
|
|
705
|
+
var import_zod30 = require("zod");
|
|
706
706
|
|
|
707
707
|
// ../crouton-core/src/lib/resource/CalculatedColumn.schema.ts
|
|
708
|
-
var
|
|
708
|
+
var import_zod20 = require("zod");
|
|
709
709
|
|
|
710
710
|
// ../crouton-core/src/lib/resource/FieldInput.schema.ts
|
|
711
|
+
var import_zod19 = require("zod");
|
|
712
|
+
|
|
713
|
+
// ../crouton-core/src/lib/resource/field-input/types/array.options.ts
|
|
714
|
+
var import_zod10 = require("zod");
|
|
715
|
+
|
|
716
|
+
// ../crouton-core/src/lib/resource/field-input/base.options.ts
|
|
711
717
|
var import_zod9 = require("zod");
|
|
712
|
-
var
|
|
718
|
+
var BaseOptionsSchema = import_zod9.z.object({
|
|
719
|
+
label: import_zod9.z.string().optional().describe("Override the field label"),
|
|
720
|
+
hideLabel: import_zod9.z.boolean().optional().describe("Hide the label"),
|
|
721
|
+
placeholder: import_zod9.z.string().optional(),
|
|
722
|
+
readonly: import_zod9.z.boolean().optional(),
|
|
723
|
+
colspan: import_zod9.z.number().optional(),
|
|
724
|
+
width: import_zod9.z.string().optional(),
|
|
725
|
+
styles: import_zod9.z.record(import_zod9.z.string(), import_zod9.z.unknown()).optional(),
|
|
726
|
+
customRender: import_zod9.z.string().optional()
|
|
727
|
+
}).catchall(import_zod9.z.unknown());
|
|
728
|
+
|
|
729
|
+
// ../crouton-core/src/lib/resource/field-input/types/array.options.ts
|
|
730
|
+
var ArrayOptionsSchema = BaseOptionsSchema.extend({
|
|
731
|
+
layout: import_zod10.z.enum([
|
|
732
|
+
"row",
|
|
733
|
+
"column"
|
|
734
|
+
]).optional(),
|
|
735
|
+
elementLabelProp: import_zod10.z.string().optional(),
|
|
736
|
+
hideActions: import_zod10.z.boolean().optional()
|
|
737
|
+
});
|
|
738
|
+
|
|
739
|
+
// ../crouton-core/src/lib/resource/field-input/types/autocomplete.options.ts
|
|
740
|
+
var import_zod11 = require("zod");
|
|
741
|
+
var AutocompleteBaseSchema = BaseOptionsSchema.extend({
|
|
742
|
+
labelKey: import_zod11.z.string().optional(),
|
|
743
|
+
valueKey: import_zod11.z.string().optional(),
|
|
744
|
+
freeText: import_zod11.z.boolean().optional(),
|
|
745
|
+
enableCreate: import_zod11.z.boolean().optional(),
|
|
746
|
+
storeValue: import_zod11.z.boolean().optional()
|
|
747
|
+
});
|
|
748
|
+
var AutocompleteInlineOptionsSchema = AutocompleteBaseSchema.extend({
|
|
749
|
+
options: import_zod11.z.array(import_zod11.z.unknown()),
|
|
750
|
+
values: import_zod11.z.array(import_zod11.z.unknown()).optional()
|
|
751
|
+
});
|
|
752
|
+
var AutocompleteRemoteOptionsSchema = AutocompleteBaseSchema.extend({
|
|
753
|
+
uri: import_zod11.z.string().describe("Remote endpoint URL"),
|
|
754
|
+
dataField: import_zod11.z.string().optional().describe("Field in response containing the data array"),
|
|
755
|
+
skipAuth: import_zod11.z.boolean().optional()
|
|
756
|
+
});
|
|
757
|
+
var AutocompleteResourceOptionsSchema = AutocompleteBaseSchema.extend({
|
|
758
|
+
resource: import_zod11.z.string().describe("Relative path to a resource.json"),
|
|
759
|
+
skipAuth: import_zod11.z.boolean().optional(),
|
|
760
|
+
dataField: import_zod11.z.string().optional()
|
|
761
|
+
});
|
|
762
|
+
var AutocompleteOptionsSchema = import_zod11.z.union([
|
|
763
|
+
AutocompleteInlineOptionsSchema,
|
|
764
|
+
AutocompleteRemoteOptionsSchema,
|
|
765
|
+
AutocompleteResourceOptionsSchema,
|
|
766
|
+
AutocompleteBaseSchema
|
|
767
|
+
]).describe("Autocomplete options: inline array, remote URI, or resource reference");
|
|
768
|
+
|
|
769
|
+
// ../crouton-core/src/lib/resource/field-input/types/boolean.options.ts
|
|
770
|
+
var BooleanOptionsSchema = BaseOptionsSchema.extend({});
|
|
771
|
+
|
|
772
|
+
// ../crouton-core/src/lib/resource/field-input/types/custom.options.ts
|
|
773
|
+
var import_zod12 = require("zod");
|
|
774
|
+
var CustomOptionsSchema = BaseOptionsSchema.extend({
|
|
775
|
+
customRender: import_zod12.z.string().optional()
|
|
776
|
+
}).catchall(import_zod12.z.unknown());
|
|
777
|
+
|
|
778
|
+
// ../crouton-core/src/lib/resource/field-input/types/date-range.options.ts
|
|
779
|
+
var import_zod13 = require("zod");
|
|
780
|
+
var DateRangeOptionsSchema = BaseOptionsSchema.extend({
|
|
781
|
+
fromLabel: import_zod13.z.string().optional().describe('Label above the start date input. Defaults to "From"'),
|
|
782
|
+
toLabel: import_zod13.z.string().optional().describe('Label above the end date input. Defaults to "To"'),
|
|
783
|
+
fromField: import_zod13.z.string().optional().describe('JSON object key for the start date. Defaults to "from"'),
|
|
784
|
+
toField: import_zod13.z.string().optional().describe('JSON object key for the end date. Defaults to "to"')
|
|
785
|
+
});
|
|
786
|
+
|
|
787
|
+
// ../crouton-core/src/lib/resource/field-input/types/date.options.ts
|
|
788
|
+
var import_zod14 = require("zod");
|
|
789
|
+
var DateOptionsSchema = BaseOptionsSchema.extend({
|
|
790
|
+
withTime: import_zod14.z.boolean().optional().describe("Force time input on/off, overrides format"),
|
|
791
|
+
min: import_zod14.z.string().optional().describe("Earliest selectable date, ISO or yyyy-MM-dd"),
|
|
792
|
+
max: import_zod14.z.string().optional().describe("Latest selectable date, ISO or yyyy-MM-dd"),
|
|
793
|
+
locale: import_zod14.z.string().optional().describe("BCP-47 locale for month heading and weekday labels").default("en-GB"),
|
|
794
|
+
firstDayOfWeek: import_zod14.z.number().optional().describe("0 = Sunday, 1 = Monday").default(1)
|
|
795
|
+
});
|
|
796
|
+
|
|
797
|
+
// ../crouton-core/src/lib/resource/field-input/types/markdown.options.ts
|
|
798
|
+
var import_zod15 = require("zod");
|
|
799
|
+
var MarkdownOptionsSchema = BaseOptionsSchema.extend({
|
|
800
|
+
minHeight: import_zod15.z.string().optional().describe('Minimum editor height, e.g. "200px"')
|
|
801
|
+
});
|
|
802
|
+
|
|
803
|
+
// ../crouton-core/src/lib/resource/field-input/types/number.options.ts
|
|
804
|
+
var NumberOptionsSchema = BaseOptionsSchema.extend({});
|
|
805
|
+
|
|
806
|
+
// ../crouton-core/src/lib/resource/field-input/types/relation.options.ts
|
|
807
|
+
var import_zod16 = require("zod");
|
|
808
|
+
var RelationOptionsSchema = BaseOptionsSchema.extend({
|
|
809
|
+
colspan: import_zod16.z.number().optional().default(12),
|
|
810
|
+
sort: import_zod16.z.string().optional().describe("Field to sort related records by"),
|
|
811
|
+
sortDir: import_zod16.z.enum([
|
|
812
|
+
"asc",
|
|
813
|
+
"desc"
|
|
814
|
+
]).optional().describe("Sort direction, defaults to asc"),
|
|
815
|
+
direction: import_zod16.z.string().optional().describe("CSS flex direction for the button layout"),
|
|
816
|
+
displayKey: import_zod16.z.string().optional().describe("Key used as display label"),
|
|
817
|
+
resource: import_zod16.z.string().optional().describe("Path to the related resource")
|
|
818
|
+
}).catchall(import_zod16.z.unknown());
|
|
819
|
+
|
|
820
|
+
// ../crouton-core/src/lib/resource/field-input/types/select.options.ts
|
|
821
|
+
var import_zod17 = require("zod");
|
|
822
|
+
var SelectOptionsSchema = BaseOptionsSchema.extend({
|
|
823
|
+
options: import_zod17.z.array(import_zod17.z.unknown()).optional(),
|
|
824
|
+
values: import_zod17.z.array(import_zod17.z.unknown()).optional(),
|
|
825
|
+
resource: import_zod17.z.string().optional(),
|
|
826
|
+
labelKey: import_zod17.z.string().optional(),
|
|
827
|
+
valueKey: import_zod17.z.string().optional(),
|
|
828
|
+
uri: import_zod17.z.string().optional().describe("Remote endpoint URL for fetching options"),
|
|
829
|
+
dataField: import_zod17.z.string().optional().describe("Field in response containing the data array"),
|
|
830
|
+
clearable: import_zod17.z.boolean().optional().describe("Allow clearing the selected value"),
|
|
831
|
+
storeValue: import_zod17.z.boolean().optional().describe("Store option[valueKey] instead of the whole object")
|
|
832
|
+
});
|
|
833
|
+
|
|
834
|
+
// ../crouton-core/src/lib/resource/field-input/types/string.options.ts
|
|
835
|
+
var StringOptionsSchema = BaseOptionsSchema.extend({});
|
|
836
|
+
|
|
837
|
+
// ../crouton-core/src/lib/resource/field-input/types/textarea.options.ts
|
|
838
|
+
var TextareaOptionsSchema = BaseOptionsSchema.extend({});
|
|
839
|
+
|
|
840
|
+
// ../crouton-core/src/lib/resource/field-input/types/toggle.options.ts
|
|
841
|
+
var import_zod18 = require("zod");
|
|
842
|
+
var ToggleOptionsSchema = BaseOptionsSchema.extend({
|
|
843
|
+
options: import_zod18.z.array(import_zod18.z.unknown()).optional(),
|
|
844
|
+
values: import_zod18.z.array(import_zod18.z.unknown()).optional(),
|
|
845
|
+
labelKey: import_zod18.z.string().optional(),
|
|
846
|
+
valueKey: import_zod18.z.string().optional(),
|
|
847
|
+
storeValue: import_zod18.z.boolean().optional().describe("Store option[valueKey] instead of the whole object"),
|
|
848
|
+
clearable: import_zod18.z.boolean().optional().describe("Clicking active button clears the value").default(true),
|
|
849
|
+
color: import_zod18.z.string().optional().describe("Btn color for the active button").default("primary"),
|
|
850
|
+
size: import_zod18.z.string().optional().describe("Btn size").default("sm")
|
|
851
|
+
});
|
|
852
|
+
|
|
853
|
+
// ../crouton-core/src/lib/resource/field-input/registry.ts
|
|
854
|
+
var fieldInputRegistry = /* @__PURE__ */ new Map([
|
|
855
|
+
[
|
|
856
|
+
"string",
|
|
857
|
+
{
|
|
858
|
+
options: StringOptionsSchema,
|
|
859
|
+
schemaFile: "string"
|
|
860
|
+
}
|
|
861
|
+
],
|
|
862
|
+
[
|
|
863
|
+
"number",
|
|
864
|
+
{
|
|
865
|
+
options: NumberOptionsSchema,
|
|
866
|
+
schemaFile: "number"
|
|
867
|
+
}
|
|
868
|
+
],
|
|
869
|
+
[
|
|
870
|
+
"Integer",
|
|
871
|
+
{
|
|
872
|
+
options: NumberOptionsSchema,
|
|
873
|
+
schemaFile: "number"
|
|
874
|
+
}
|
|
875
|
+
],
|
|
876
|
+
[
|
|
877
|
+
"textarea",
|
|
878
|
+
{
|
|
879
|
+
options: TextareaOptionsSchema,
|
|
880
|
+
schemaFile: "textarea"
|
|
881
|
+
}
|
|
882
|
+
],
|
|
883
|
+
[
|
|
884
|
+
"markdown",
|
|
885
|
+
{
|
|
886
|
+
options: MarkdownOptionsSchema,
|
|
887
|
+
schemaFile: "markdown"
|
|
888
|
+
}
|
|
889
|
+
],
|
|
890
|
+
[
|
|
891
|
+
"boolean",
|
|
892
|
+
{
|
|
893
|
+
options: BooleanOptionsSchema,
|
|
894
|
+
schemaFile: "boolean"
|
|
895
|
+
}
|
|
896
|
+
],
|
|
897
|
+
[
|
|
898
|
+
"toggle",
|
|
899
|
+
{
|
|
900
|
+
options: ToggleOptionsSchema,
|
|
901
|
+
schemaFile: "toggle"
|
|
902
|
+
}
|
|
903
|
+
],
|
|
904
|
+
[
|
|
905
|
+
"select",
|
|
906
|
+
{
|
|
907
|
+
options: SelectOptionsSchema,
|
|
908
|
+
schemaFile: "select"
|
|
909
|
+
}
|
|
910
|
+
],
|
|
911
|
+
[
|
|
912
|
+
"mutliSelect",
|
|
913
|
+
{
|
|
914
|
+
options: SelectOptionsSchema,
|
|
915
|
+
schemaFile: "select"
|
|
916
|
+
}
|
|
917
|
+
],
|
|
918
|
+
[
|
|
919
|
+
"autocomplete",
|
|
920
|
+
{
|
|
921
|
+
options: AutocompleteOptionsSchema,
|
|
922
|
+
schemaFile: "autocomplete"
|
|
923
|
+
}
|
|
924
|
+
],
|
|
925
|
+
[
|
|
926
|
+
"date",
|
|
927
|
+
{
|
|
928
|
+
options: DateOptionsSchema,
|
|
929
|
+
schemaFile: "date"
|
|
930
|
+
}
|
|
931
|
+
],
|
|
932
|
+
[
|
|
933
|
+
"dateTime",
|
|
934
|
+
{
|
|
935
|
+
options: DateOptionsSchema,
|
|
936
|
+
schemaFile: "date"
|
|
937
|
+
}
|
|
938
|
+
],
|
|
939
|
+
[
|
|
940
|
+
"date-range",
|
|
941
|
+
{
|
|
942
|
+
options: DateRangeOptionsSchema,
|
|
943
|
+
schemaFile: "date-range"
|
|
944
|
+
}
|
|
945
|
+
],
|
|
946
|
+
[
|
|
947
|
+
"relation",
|
|
948
|
+
{
|
|
949
|
+
options: RelationOptionsSchema,
|
|
950
|
+
schemaFile: "relation"
|
|
951
|
+
}
|
|
952
|
+
],
|
|
953
|
+
[
|
|
954
|
+
"array",
|
|
955
|
+
{
|
|
956
|
+
options: ArrayOptionsSchema,
|
|
957
|
+
schemaFile: "array"
|
|
958
|
+
}
|
|
959
|
+
],
|
|
960
|
+
[
|
|
961
|
+
"custom",
|
|
962
|
+
{
|
|
963
|
+
options: CustomOptionsSchema,
|
|
964
|
+
schemaFile: "custom"
|
|
965
|
+
}
|
|
966
|
+
]
|
|
967
|
+
]);
|
|
968
|
+
|
|
969
|
+
// ../crouton-core/src/lib/resource/FieldInput.schema.ts
|
|
970
|
+
var RelationType = import_zod19.z.enum([
|
|
713
971
|
"oneToOne",
|
|
714
972
|
"manyToOne",
|
|
715
973
|
"oneToMany",
|
|
716
974
|
"manyToMany"
|
|
717
975
|
]);
|
|
718
|
-
var DetailControlSchema =
|
|
719
|
-
property:
|
|
720
|
-
type:
|
|
721
|
-
options:
|
|
722
|
-
hideLabel:
|
|
723
|
-
width:
|
|
976
|
+
var DetailControlSchema = import_zod19.z.object({
|
|
977
|
+
property: import_zod19.z.string(),
|
|
978
|
+
type: import_zod19.z.string().optional(),
|
|
979
|
+
options: import_zod19.z.record(import_zod19.z.string(), import_zod19.z.unknown()).optional(),
|
|
980
|
+
hideLabel: import_zod19.z.boolean().optional(),
|
|
981
|
+
width: import_zod19.z.string().optional()
|
|
724
982
|
});
|
|
725
|
-
var DetailConfigSchema =
|
|
726
|
-
layout:
|
|
983
|
+
var DetailConfigSchema = import_zod19.z.object({
|
|
984
|
+
layout: import_zod19.z.enum([
|
|
727
985
|
"collapse",
|
|
728
986
|
"row"
|
|
729
987
|
]),
|
|
730
|
-
titleKey:
|
|
731
|
-
controls:
|
|
988
|
+
titleKey: import_zod19.z.string().optional(),
|
|
989
|
+
controls: import_zod19.z.array(DetailControlSchema)
|
|
732
990
|
});
|
|
733
|
-
var
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
/** Sort direction. Defaults to `"asc"` when omitted. */
|
|
738
|
-
sortDir: import_zod9.z.enum([
|
|
739
|
-
"asc",
|
|
740
|
-
"desc"
|
|
741
|
-
]).optional(),
|
|
742
|
-
/** CSS flex direction for the relation control button layout. */
|
|
743
|
-
direction: import_zod9.z.string().optional(),
|
|
744
|
-
/** Key used as the display label in the relation control. */
|
|
745
|
-
displayKey: import_zod9.z.string().optional(),
|
|
746
|
-
/** Path to the related resource (resolved to a URI at load time). */
|
|
747
|
-
resource: import_zod9.z.string().optional()
|
|
748
|
-
}).catchall(import_zod9.z.unknown());
|
|
749
|
-
var FieldInputSchema = import_zod9.z.object({
|
|
750
|
-
type: import_zod9.z.string().optional(),
|
|
751
|
-
customRender: import_zod9.z.string().optional(),
|
|
991
|
+
var FieldInputSchema = import_zod19.z.object({
|
|
992
|
+
$schema: import_zod19.z.string().optional(),
|
|
993
|
+
type: import_zod19.z.string().optional(),
|
|
994
|
+
customRender: import_zod19.z.string().optional(),
|
|
752
995
|
/**
|
|
753
996
|
* Render format hint for the frontend (e.g. `"relation"` for sub-resource
|
|
754
997
|
* relations). When `format` is `"relation"`, `resource` must also be set.
|
|
755
998
|
*/
|
|
756
|
-
format:
|
|
999
|
+
format: import_zod19.z.string().optional(),
|
|
757
1000
|
/**
|
|
758
1001
|
* Relative path to the child resource definition, e.g. `"./author.resource"`.
|
|
759
1002
|
* Only used when `format` is `"relation"`. Resolved at load time to inject
|
|
760
1003
|
* sub-resource URIs into `options`.
|
|
761
1004
|
*/
|
|
762
|
-
resource:
|
|
1005
|
+
resource: import_zod19.z.string().optional(),
|
|
763
1006
|
/**
|
|
764
1007
|
* Cardinality of the relation. Used by the frontend to determine the correct
|
|
765
1008
|
* renderer and behaviour (e.g. single-select vs multi-select).
|
|
@@ -768,11 +1011,11 @@ var FieldInputSchema = import_zod9.z.object({
|
|
|
768
1011
|
*/
|
|
769
1012
|
relationType: RelationType.optional(),
|
|
770
1013
|
/** FK field on the child model pointing back to the parent, e.g. `"workId"`. Defaults to `${parentModel}Id`. */
|
|
771
|
-
foreignKey:
|
|
1014
|
+
foreignKey: import_zod19.z.string().optional(),
|
|
772
1015
|
/** Override the Prisma relation field name when it differs from the column id. */
|
|
773
|
-
relation:
|
|
1016
|
+
relation: import_zod19.z.string().optional(),
|
|
774
1017
|
/** Override the display order in form views. Lower values come first. */
|
|
775
|
-
position:
|
|
1018
|
+
position: import_zod19.z.number().optional(),
|
|
776
1019
|
/**
|
|
777
1020
|
* Value to pre-fill this field with on the create form. Injected into the
|
|
778
1021
|
* generated form view's JSON Schema as `properties[id].default`, which
|
|
@@ -785,14 +1028,24 @@ var FieldInputSchema = import_zod9.z.object({
|
|
|
785
1028
|
* - `"$today"` — current date ISO string (date only, e.g. `"2025-03-14"`)
|
|
786
1029
|
* - `"$user"` — current user object (requires `defaults: { '$user': ... }` on `CroutonPlugin` config, or `useCrouton().setDefault('$user', ...)`)
|
|
787
1030
|
*/
|
|
788
|
-
defaultValue:
|
|
789
|
-
options:
|
|
790
|
-
|
|
791
|
-
|
|
1031
|
+
defaultValue: import_zod19.z.unknown().optional(),
|
|
1032
|
+
options: import_zod19.z.union([
|
|
1033
|
+
RelationOptionsSchema,
|
|
1034
|
+
import_zod19.z.unknown()
|
|
792
1035
|
]).optional(),
|
|
793
1036
|
/** Nested array detail layout (renders via `detailFixed`). */
|
|
794
1037
|
detail: DetailConfigSchema.optional()
|
|
795
1038
|
});
|
|
1039
|
+
var parseFieldInputOptions = /* @__PURE__ */ __name((fi) => {
|
|
1040
|
+
if (!fi.type || fi.options == null) return fi;
|
|
1041
|
+
const def2 = fieldInputRegistry.get(fi.type);
|
|
1042
|
+
if (!def2) return fi;
|
|
1043
|
+
const result = def2.options.safeParse(fi.options);
|
|
1044
|
+
return result.success ? {
|
|
1045
|
+
...fi,
|
|
1046
|
+
options: result.data
|
|
1047
|
+
} : fi;
|
|
1048
|
+
}, "parseFieldInputOptions");
|
|
796
1049
|
var FieldVariantSchema = FieldInputSchema;
|
|
797
1050
|
var stripNull = /* @__PURE__ */ __name((obj) => {
|
|
798
1051
|
const out = {};
|
|
@@ -829,16 +1082,16 @@ var normalizeLabel = /* @__PURE__ */ __name((obj) => {
|
|
|
829
1082
|
}, "normalizeLabel");
|
|
830
1083
|
|
|
831
1084
|
// ../crouton-core/src/lib/resource/CalculatedColumn.schema.ts
|
|
832
|
-
var CalculatedColumnSchema =
|
|
1085
|
+
var CalculatedColumnSchema = import_zod20.z.object({
|
|
833
1086
|
/** Column identifier used in the response payload and UI schema. */
|
|
834
|
-
id:
|
|
1087
|
+
id: import_zod20.z.string(),
|
|
835
1088
|
/** SQL alias — must match `id`. */
|
|
836
|
-
alias:
|
|
1089
|
+
alias: import_zod20.z.string(),
|
|
837
1090
|
/** Human-readable label shown in the table header. */
|
|
838
|
-
label:
|
|
839
|
-
sqlExpression:
|
|
1091
|
+
label: import_zod20.z.string().optional(),
|
|
1092
|
+
sqlExpression: import_zod20.z.string(),
|
|
840
1093
|
/** JSON schema / cast type for the computed value. Defaults to `"number"`. `"string"` skips CAST. */
|
|
841
|
-
type:
|
|
1094
|
+
type: import_zod20.z.enum([
|
|
842
1095
|
"number",
|
|
843
1096
|
"boolean",
|
|
844
1097
|
"string"
|
|
@@ -849,9 +1102,9 @@ var CalculatedColumnSchema = import_zod10.z.object({
|
|
|
849
1102
|
* `position: N` places this column before the element currently at index N.
|
|
850
1103
|
* Can also be set via `fieldInput.position` (takes precedence).
|
|
851
1104
|
*/
|
|
852
|
-
position:
|
|
853
|
-
hiddenInTable:
|
|
854
|
-
hiddenInView:
|
|
1105
|
+
position: import_zod20.z.number().optional(),
|
|
1106
|
+
hiddenInTable: import_zod20.z.boolean().optional(),
|
|
1107
|
+
hiddenInView: import_zod20.z.boolean().optional(),
|
|
855
1108
|
/**
|
|
856
1109
|
* Field input options for rendering in form / view schemas.
|
|
857
1110
|
* Supports `colspan`, `format`, and any other options passed to the Control renderer.
|
|
@@ -861,11 +1114,11 @@ var CalculatedColumnSchema = import_zod10.z.object({
|
|
|
861
1114
|
}).transform(normalizeLabel);
|
|
862
1115
|
|
|
863
1116
|
// ../crouton-core/src/lib/resource/Column.ts
|
|
864
|
-
var
|
|
1117
|
+
var import_zod22 = require("zod");
|
|
865
1118
|
|
|
866
1119
|
// ../crouton-core/src/lib/resource/ColumnType.schema.ts
|
|
867
|
-
var
|
|
868
|
-
var ColumnTypeShorthandSchema =
|
|
1120
|
+
var import_zod21 = require("zod");
|
|
1121
|
+
var ColumnTypeShorthandSchema = import_zod21.z.enum([
|
|
869
1122
|
"string",
|
|
870
1123
|
"number",
|
|
871
1124
|
"integer",
|
|
@@ -875,36 +1128,36 @@ var ColumnTypeShorthandSchema = import_zod11.z.enum([
|
|
|
875
1128
|
"object",
|
|
876
1129
|
"array"
|
|
877
1130
|
]);
|
|
878
|
-
var JsonSchemaFragmentSchema =
|
|
879
|
-
type:
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
1131
|
+
var JsonSchemaFragmentSchema = import_zod21.z.lazy(() => import_zod21.z.object({
|
|
1132
|
+
type: import_zod21.z.union([
|
|
1133
|
+
import_zod21.z.string(),
|
|
1134
|
+
import_zod21.z.array(import_zod21.z.string()),
|
|
1135
|
+
import_zod21.z.lazy(() => JsonSchemaFragmentSchema)
|
|
883
1136
|
]).optional(),
|
|
884
|
-
format:
|
|
885
|
-
enum:
|
|
886
|
-
const:
|
|
887
|
-
nullable:
|
|
888
|
-
properties:
|
|
889
|
-
required:
|
|
890
|
-
|
|
891
|
-
|
|
1137
|
+
format: import_zod21.z.string().optional(),
|
|
1138
|
+
enum: import_zod21.z.array(import_zod21.z.unknown()).optional(),
|
|
1139
|
+
const: import_zod21.z.unknown().optional(),
|
|
1140
|
+
nullable: import_zod21.z.boolean().optional(),
|
|
1141
|
+
properties: import_zod21.z.record(import_zod21.z.string(), JsonSchemaFragmentSchema).optional(),
|
|
1142
|
+
required: import_zod21.z.union([
|
|
1143
|
+
import_zod21.z.array(import_zod21.z.string()),
|
|
1144
|
+
import_zod21.z.boolean()
|
|
892
1145
|
]).optional(),
|
|
893
1146
|
items: JsonSchemaFragmentSchema.optional(),
|
|
894
|
-
additionalProperties:
|
|
895
|
-
|
|
1147
|
+
additionalProperties: import_zod21.z.union([
|
|
1148
|
+
import_zod21.z.boolean(),
|
|
896
1149
|
JsonSchemaFragmentSchema
|
|
897
1150
|
]).optional(),
|
|
898
|
-
title:
|
|
899
|
-
description:
|
|
900
|
-
default:
|
|
901
|
-
minimum:
|
|
902
|
-
maximum:
|
|
903
|
-
minLength:
|
|
904
|
-
maxLength:
|
|
905
|
-
pattern:
|
|
906
|
-
}).catchall(
|
|
907
|
-
var ColumnTypeSchema =
|
|
1151
|
+
title: import_zod21.z.string().optional(),
|
|
1152
|
+
description: import_zod21.z.string().optional(),
|
|
1153
|
+
default: import_zod21.z.unknown().optional(),
|
|
1154
|
+
minimum: import_zod21.z.number().optional(),
|
|
1155
|
+
maximum: import_zod21.z.number().optional(),
|
|
1156
|
+
minLength: import_zod21.z.number().optional(),
|
|
1157
|
+
maxLength: import_zod21.z.number().optional(),
|
|
1158
|
+
pattern: import_zod21.z.string().optional()
|
|
1159
|
+
}).catchall(import_zod21.z.unknown()));
|
|
1160
|
+
var ColumnTypeSchema = import_zod21.z.union([
|
|
908
1161
|
ColumnTypeShorthandSchema,
|
|
909
1162
|
JsonSchemaFragmentSchema
|
|
910
1163
|
]);
|
|
@@ -1008,40 +1261,40 @@ var isObjectColumnType = /* @__PURE__ */ __name((type) => columnTypeName(type) =
|
|
|
1008
1261
|
var isArrayColumnType = /* @__PURE__ */ __name((type) => columnTypeName(type) === "array", "isArrayColumnType");
|
|
1009
1262
|
|
|
1010
1263
|
// ../crouton-core/src/lib/resource/Column.ts
|
|
1011
|
-
var WhenConditionSchema =
|
|
1012
|
-
field:
|
|
1013
|
-
eq:
|
|
1014
|
-
neq:
|
|
1015
|
-
exists:
|
|
1016
|
-
notExists:
|
|
1264
|
+
var WhenConditionSchema = import_zod22.z.object({
|
|
1265
|
+
field: import_zod22.z.string(),
|
|
1266
|
+
eq: import_zod22.z.unknown().optional(),
|
|
1267
|
+
neq: import_zod22.z.unknown().optional(),
|
|
1268
|
+
exists: import_zod22.z.boolean().optional(),
|
|
1269
|
+
notExists: import_zod22.z.boolean().optional()
|
|
1017
1270
|
});
|
|
1018
|
-
var JsonColumnSchema =
|
|
1019
|
-
id:
|
|
1020
|
-
column:
|
|
1021
|
-
label:
|
|
1022
|
-
hiddenInTable:
|
|
1023
|
-
hiddenInForm:
|
|
1024
|
-
hiddenInView:
|
|
1025
|
-
sortable:
|
|
1026
|
-
defaultSort:
|
|
1027
|
-
searchable:
|
|
1028
|
-
filterable:
|
|
1029
|
-
createable:
|
|
1030
|
-
updateable:
|
|
1031
|
-
hideLabel:
|
|
1271
|
+
var JsonColumnSchema = import_zod22.z.object({
|
|
1272
|
+
id: import_zod22.z.string(),
|
|
1273
|
+
column: import_zod22.z.string().optional(),
|
|
1274
|
+
label: import_zod22.z.string().optional(),
|
|
1275
|
+
hiddenInTable: import_zod22.z.boolean().default(false),
|
|
1276
|
+
hiddenInForm: import_zod22.z.boolean().default(false),
|
|
1277
|
+
hiddenInView: import_zod22.z.boolean().default(false),
|
|
1278
|
+
sortable: import_zod22.z.boolean().default(false),
|
|
1279
|
+
defaultSort: import_zod22.z.boolean().default(false),
|
|
1280
|
+
searchable: import_zod22.z.boolean().default(false),
|
|
1281
|
+
filterable: import_zod22.z.boolean().default(false),
|
|
1282
|
+
createable: import_zod22.z.boolean().default(true),
|
|
1283
|
+
updateable: import_zod22.z.boolean().default(true),
|
|
1284
|
+
hideLabel: import_zod22.z.boolean().default(false),
|
|
1032
1285
|
showWhen: WhenConditionSchema.optional(),
|
|
1033
1286
|
hideWhen: WhenConditionSchema.optional(),
|
|
1034
1287
|
disabledWhen: WhenConditionSchema.optional(),
|
|
1035
|
-
displayKey:
|
|
1036
|
-
sortId:
|
|
1288
|
+
displayKey: import_zod22.z.string().optional(),
|
|
1289
|
+
sortId: import_zod22.z.string().optional(),
|
|
1037
1290
|
/**
|
|
1038
1291
|
* Name of a shared enum in the project enum registry (`crouton.enums.json`).
|
|
1039
1292
|
* At load time the loader injects that enum's `{ value, label }[]` into
|
|
1040
1293
|
* `fieldInput.options.values`, so columns don't duplicate the option list.
|
|
1041
1294
|
*/
|
|
1042
|
-
enum:
|
|
1043
|
-
idField:
|
|
1044
|
-
showInLookup:
|
|
1295
|
+
enum: import_zod22.z.string().optional(),
|
|
1296
|
+
idField: import_zod22.z.boolean().default(false),
|
|
1297
|
+
showInLookup: import_zod22.z.boolean().default(false),
|
|
1045
1298
|
/**
|
|
1046
1299
|
* Data type of the column, as a shorthand name (`"string"`, `"integer"`, …)
|
|
1047
1300
|
* or a full JSON Schema fragment:
|
|
@@ -1072,12 +1325,12 @@ var JsonColumnSchema = import_zod12.z.object({
|
|
|
1072
1325
|
* Ignored on the id column and on columns that are neither createable nor
|
|
1073
1326
|
* updateable, since the form cannot supply a value for those.
|
|
1074
1327
|
*/
|
|
1075
|
-
required:
|
|
1328
|
+
required: import_zod22.z.boolean().optional(),
|
|
1076
1329
|
/**
|
|
1077
1330
|
* @deprecated Use `type` instead. Retained because it is still consumed by
|
|
1078
1331
|
* the boolean predicate and the schema-less sub-resource view builder.
|
|
1079
1332
|
*/
|
|
1080
|
-
columnType:
|
|
1333
|
+
columnType: import_zod22.z.string().default("string"),
|
|
1081
1334
|
fieldInput: FieldInputSchema.optional(),
|
|
1082
1335
|
/**
|
|
1083
1336
|
* Optional per-context override for the read-only VIEW ui. Same shape as
|
|
@@ -1101,27 +1354,27 @@ var JsonColumnSchema = import_zod12.z.object({
|
|
|
1101
1354
|
* Visibility (`hiddenInTable/Form/View`) on this column is inherited by all sub-columns as a
|
|
1102
1355
|
* default; the referenced resource's own column visibility further restricts it.
|
|
1103
1356
|
*/
|
|
1104
|
-
extend:
|
|
1357
|
+
extend: import_zod22.z.string().optional(),
|
|
1105
1358
|
/**
|
|
1106
1359
|
* Per-sub-column overrides when using `extend`.
|
|
1107
1360
|
* Key: the virtual column id (`"{extendId}_{refColId}"`) or just the referenced column id.
|
|
1108
1361
|
* Value: any `JsonColumn` fields to merge over the generated virtual column.
|
|
1109
1362
|
*/
|
|
1110
|
-
columns:
|
|
1363
|
+
columns: import_zod22.z.record(import_zod22.z.string(), import_zod22.z.record(import_zod22.z.string(), import_zod22.z.unknown())).optional()
|
|
1111
1364
|
});
|
|
1112
1365
|
|
|
1113
1366
|
// ../crouton-core/src/lib/resource/ParentRef.schema.ts
|
|
1114
|
-
var
|
|
1115
|
-
var ParentRefSchema =
|
|
1367
|
+
var import_zod23 = require("zod");
|
|
1368
|
+
var ParentRefSchema = import_zod23.z.object({
|
|
1116
1369
|
/** Route segment of the parent, e.g. `"group"`. */
|
|
1117
|
-
route:
|
|
1370
|
+
route: import_zod23.z.string(),
|
|
1118
1371
|
/**
|
|
1119
1372
|
* Name of the path parameter carrying the parent id, e.g. `"groupId"`.
|
|
1120
1373
|
* Avoid `"id"` — that is the child's own id in `/:id` routes.
|
|
1121
1374
|
*/
|
|
1122
|
-
param:
|
|
1375
|
+
param: import_zod23.z.string().default("parentId"),
|
|
1123
1376
|
/** Type of the parent id, used to coerce the path param. Defaults to `'string'`. */
|
|
1124
|
-
idType:
|
|
1377
|
+
idType: import_zod23.z.enum([
|
|
1125
1378
|
"string",
|
|
1126
1379
|
"number"
|
|
1127
1380
|
]).optional()
|
|
@@ -1129,37 +1382,37 @@ var ParentRefSchema = import_zod13.z.object({
|
|
|
1129
1382
|
var resourceControllerPath = /* @__PURE__ */ __name((route, parent) => parent ? `${parent.route}/:${parent.param}/${route}` : route, "resourceControllerPath");
|
|
1130
1383
|
|
|
1131
1384
|
// ../crouton-core/src/lib/resource/ResourceKind.ts
|
|
1132
|
-
var
|
|
1133
|
-
var ResourceKindSchema =
|
|
1385
|
+
var import_zod24 = require("zod");
|
|
1386
|
+
var ResourceKindSchema = import_zod24.z.enum([
|
|
1134
1387
|
"prisma",
|
|
1135
1388
|
"custom"
|
|
1136
1389
|
]).default("prisma");
|
|
1137
1390
|
|
|
1138
1391
|
// ../crouton-core/src/lib/resource/Sidebar.schema.ts
|
|
1139
|
-
var
|
|
1140
|
-
var SidebarGroupSchema =
|
|
1392
|
+
var import_zod25 = __toESM(require("zod"), 1);
|
|
1393
|
+
var SidebarGroupSchema = import_zod25.default.object({
|
|
1141
1394
|
/** Human-readable heading shown in the sidebar. Defaults to a title-cased version of the slug. */
|
|
1142
|
-
label:
|
|
1395
|
+
label: import_zod25.default.string().optional(),
|
|
1143
1396
|
/** Controls the order of this group among top-level sidebar items. */
|
|
1144
|
-
position:
|
|
1397
|
+
position: import_zod25.default.number().optional()
|
|
1145
1398
|
});
|
|
1146
|
-
var SidebarSchema =
|
|
1147
|
-
hide:
|
|
1148
|
-
position:
|
|
1149
|
-
label:
|
|
1399
|
+
var SidebarSchema = import_zod25.default.object({
|
|
1400
|
+
hide: import_zod25.default.boolean().default(false),
|
|
1401
|
+
position: import_zod25.default.number().optional(),
|
|
1402
|
+
label: import_zod25.default.string().optional(),
|
|
1150
1403
|
/**
|
|
1151
1404
|
* Slug of the group this resource belongs to.
|
|
1152
1405
|
* Must match a key in `sidebarGroups` in `crouton.json`.
|
|
1153
1406
|
* Resources with the same `group` are nested under a shared collapsible section.
|
|
1154
1407
|
*/
|
|
1155
|
-
group:
|
|
1408
|
+
group: import_zod25.default.string().optional()
|
|
1156
1409
|
});
|
|
1157
1410
|
|
|
1158
1411
|
// ../crouton-core/src/lib/resource/TableAction.schema.ts
|
|
1159
|
-
var
|
|
1160
|
-
var ActionConditionSchema =
|
|
1412
|
+
var import_zod26 = require("zod");
|
|
1413
|
+
var ActionConditionSchema = import_zod26.z.object({
|
|
1161
1414
|
/** Row field to evaluate. */
|
|
1162
|
-
field:
|
|
1415
|
+
field: import_zod26.z.string(),
|
|
1163
1416
|
/**
|
|
1164
1417
|
* Comparison operator. Defaults to `"eq"`.
|
|
1165
1418
|
* - `eq` / `neq` — strict equality
|
|
@@ -1167,7 +1420,7 @@ var ActionConditionSchema = import_zod16.z.object({
|
|
|
1167
1420
|
* - `exists` — field is not null / undefined / empty string
|
|
1168
1421
|
* - `notExists` — field is null / undefined / empty string
|
|
1169
1422
|
*/
|
|
1170
|
-
op:
|
|
1423
|
+
op: import_zod26.z.enum([
|
|
1171
1424
|
"eq",
|
|
1172
1425
|
"neq",
|
|
1173
1426
|
"gt",
|
|
@@ -1178,38 +1431,38 @@ var ActionConditionSchema = import_zod16.z.object({
|
|
|
1178
1431
|
"notExists"
|
|
1179
1432
|
]).default("eq"),
|
|
1180
1433
|
/** Comparison value. Not required for `exists` / `notExists`. */
|
|
1181
|
-
value:
|
|
1434
|
+
value: import_zod26.z.unknown().optional()
|
|
1182
1435
|
});
|
|
1183
|
-
var ActionSchema =
|
|
1184
|
-
type:
|
|
1436
|
+
var ActionSchema = import_zod26.z.object({
|
|
1437
|
+
type: import_zod26.z.string(),
|
|
1185
1438
|
/** Unique identifier for the action. */
|
|
1186
|
-
id:
|
|
1439
|
+
id: import_zod26.z.string(),
|
|
1187
1440
|
/** Human-readable button label. */
|
|
1188
|
-
label:
|
|
1441
|
+
label: import_zod26.z.string(),
|
|
1189
1442
|
/** MDI icon name, e.g. `"mdi:open-in-new"`. */
|
|
1190
|
-
icon:
|
|
1443
|
+
icon: import_zod26.z.string().optional(),
|
|
1191
1444
|
/** Tooltip text. Falls back to `label` when omitted. */
|
|
1192
|
-
tooltip:
|
|
1445
|
+
tooltip: import_zod26.z.string().optional(),
|
|
1193
1446
|
condition: ActionConditionSchema.optional()
|
|
1194
1447
|
});
|
|
1195
1448
|
var JsonProcedureActionSchema = ActionSchema.extend({
|
|
1196
|
-
type:
|
|
1449
|
+
type: import_zod26.z.literal("procedure").default("procedure"),
|
|
1197
1450
|
/**
|
|
1198
1451
|
* Filename (without extension) inside the resource's `actions/` directory
|
|
1199
1452
|
* that exports the table-action procedure, e.g. `"syncZotero"`.
|
|
1200
1453
|
*/
|
|
1201
|
-
procedure:
|
|
1454
|
+
procedure: import_zod26.z.string(),
|
|
1202
1455
|
/** HTTP method for the frontend. Defaults to `"post"`. */
|
|
1203
|
-
method:
|
|
1456
|
+
method: import_zod26.z.string().optional().default("post"),
|
|
1204
1457
|
/** Static query / body params passed to the endpoint. */
|
|
1205
|
-
data:
|
|
1458
|
+
data: import_zod26.z.record(import_zod26.z.string(), import_zod26.z.unknown()).optional()
|
|
1206
1459
|
});
|
|
1207
1460
|
var JsonLinkActionSchema = ActionSchema.extend({
|
|
1208
1461
|
/** Optional condition evaluated per row. Button is hidden when the condition is false. */
|
|
1209
|
-
type:
|
|
1462
|
+
type: import_zod26.z.literal("link").default("link"),
|
|
1210
1463
|
/** URL to open. May contain `{env.VAR}` placeholders. */
|
|
1211
|
-
href:
|
|
1212
|
-
blank:
|
|
1464
|
+
href: import_zod26.z.string(),
|
|
1465
|
+
blank: import_zod26.z.boolean().optional().default(true)
|
|
1213
1466
|
});
|
|
1214
1467
|
var transformAction = /* @__PURE__ */ __name((action) => {
|
|
1215
1468
|
const label = action.label;
|
|
@@ -1218,7 +1471,7 @@ var transformAction = /* @__PURE__ */ __name((action) => {
|
|
|
1218
1471
|
...action
|
|
1219
1472
|
};
|
|
1220
1473
|
}, "transformAction");
|
|
1221
|
-
var JsonActionSchema =
|
|
1474
|
+
var JsonActionSchema = import_zod26.z.union([
|
|
1222
1475
|
JsonProcedureActionSchema,
|
|
1223
1476
|
JsonLinkActionSchema
|
|
1224
1477
|
]).transform(transformAction);
|
|
@@ -1260,14 +1513,14 @@ var registerResourceExtensions = /* @__PURE__ */ __name((map = {}) => Object.ent
|
|
|
1260
1513
|
var getResourceExtensions = /* @__PURE__ */ __name(() => registry, "getResourceExtensions");
|
|
1261
1514
|
|
|
1262
1515
|
// ../crouton-core/src/lib/resource/include.schema.ts
|
|
1263
|
-
var
|
|
1264
|
-
var JsonIncludeEntrySchema =
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
relation:
|
|
1268
|
-
include:
|
|
1516
|
+
var import_zod27 = require("zod");
|
|
1517
|
+
var JsonIncludeEntrySchema = import_zod27.z.lazy(() => import_zod27.z.union([
|
|
1518
|
+
import_zod27.z.string(),
|
|
1519
|
+
import_zod27.z.object({
|
|
1520
|
+
relation: import_zod27.z.string(),
|
|
1521
|
+
include: import_zod27.z.array(JsonIncludeEntrySchema).optional(),
|
|
1269
1522
|
/** Prisma-format orderBy clause applied to the included records. */
|
|
1270
|
-
orderBy:
|
|
1523
|
+
orderBy: import_zod27.z.record(import_zod27.z.string(), import_zod27.z.unknown()).optional()
|
|
1271
1524
|
})
|
|
1272
1525
|
]));
|
|
1273
1526
|
|
|
@@ -1276,36 +1529,36 @@ var BASELINE_RESOURCE_VERSION = 1;
|
|
|
1276
1529
|
var CURRENT_RESOURCE_VERSION = 1;
|
|
1277
1530
|
|
|
1278
1531
|
// ../crouton-core/src/lib/data-source/Operations.schema.ts
|
|
1279
|
-
var
|
|
1532
|
+
var import_zod29 = require("zod");
|
|
1280
1533
|
|
|
1281
1534
|
// ../crouton-core/src/lib/data-source/Security.schema.ts
|
|
1282
|
-
var
|
|
1283
|
-
var SecuritySchema =
|
|
1284
|
-
|
|
1285
|
-
public:
|
|
1535
|
+
var import_zod28 = require("zod");
|
|
1536
|
+
var SecuritySchema = import_zod28.z.union([
|
|
1537
|
+
import_zod28.z.object({
|
|
1538
|
+
public: import_zod28.z.literal(true)
|
|
1286
1539
|
}),
|
|
1287
|
-
|
|
1288
|
-
guard:
|
|
1289
|
-
|
|
1290
|
-
|
|
1540
|
+
import_zod28.z.object({
|
|
1541
|
+
guard: import_zod28.z.union([
|
|
1542
|
+
import_zod28.z.string(),
|
|
1543
|
+
import_zod28.z.array(import_zod28.z.string()).min(1)
|
|
1291
1544
|
])
|
|
1292
1545
|
})
|
|
1293
1546
|
]);
|
|
1294
1547
|
|
|
1295
1548
|
// ../crouton-core/src/lib/data-source/Operations.schema.ts
|
|
1296
|
-
var ExternalOpEntry =
|
|
1297
|
-
uri:
|
|
1298
|
-
method:
|
|
1549
|
+
var ExternalOpEntry = import_zod29.z.object({
|
|
1550
|
+
uri: import_zod29.z.string(),
|
|
1551
|
+
method: import_zod29.z.string().optional(),
|
|
1299
1552
|
security: SecuritySchema.optional()
|
|
1300
1553
|
});
|
|
1301
|
-
var OpEntry =
|
|
1302
|
-
|
|
1554
|
+
var OpEntry = import_zod29.z.union([
|
|
1555
|
+
import_zod29.z.boolean(),
|
|
1303
1556
|
ExternalOpEntry,
|
|
1304
|
-
|
|
1557
|
+
import_zod29.z.object({
|
|
1305
1558
|
security: SecuritySchema.optional()
|
|
1306
1559
|
})
|
|
1307
1560
|
]);
|
|
1308
|
-
var JsonOperationsSchema =
|
|
1561
|
+
var JsonOperationsSchema = import_zod29.z.object({
|
|
1309
1562
|
findAll: OpEntry.default(true),
|
|
1310
1563
|
findOne: OpEntry.default(true),
|
|
1311
1564
|
create: OpEntry.default(true),
|
|
@@ -1357,16 +1610,16 @@ var buildSubResourceOperations = /* @__PURE__ */ __name((ops, baseUri, idField =
|
|
|
1357
1610
|
}, "buildSubResourceOperations");
|
|
1358
1611
|
|
|
1359
1612
|
// ../crouton-core/src/lib/resource/ResourceJson.schema.ts
|
|
1360
|
-
var JsonColumnsMapSchema =
|
|
1613
|
+
var JsonColumnsMapSchema = import_zod30.z.record(import_zod30.z.string(), JsonColumnSchema.omit({
|
|
1361
1614
|
id: true
|
|
1362
|
-
}).catchall(
|
|
1615
|
+
}).catchall(import_zod30.z.unknown()));
|
|
1363
1616
|
var ColumnsSchema = JsonColumnsMapSchema;
|
|
1364
|
-
var JsonDisplaySchema =
|
|
1365
|
-
mode:
|
|
1617
|
+
var JsonDisplaySchema = import_zod30.z.object({
|
|
1618
|
+
mode: import_zod30.z.enum([
|
|
1366
1619
|
"page",
|
|
1367
1620
|
"modal"
|
|
1368
1621
|
]).default("modal"),
|
|
1369
|
-
customComponent:
|
|
1622
|
+
customComponent: import_zod30.z.string().nullable().optional().default(null)
|
|
1370
1623
|
});
|
|
1371
1624
|
var normalizeColumns = /* @__PURE__ */ __name((columns) => {
|
|
1372
1625
|
if (!columns) return void 0;
|
|
@@ -1379,47 +1632,47 @@ var normalizeColumns = /* @__PURE__ */ __name((columns) => {
|
|
|
1379
1632
|
label: col.label ?? labelFromId(col.id)
|
|
1380
1633
|
}));
|
|
1381
1634
|
}, "normalizeColumns");
|
|
1382
|
-
var ResourceJsonShape =
|
|
1635
|
+
var ResourceJsonShape = import_zod30.z.object({
|
|
1383
1636
|
/**
|
|
1384
1637
|
* URL of the generated JSON Schema, for editor autocomplete/validation. Declared so the
|
|
1385
1638
|
* key is *allowed* (not stripped, and not flagged by the very schema it points at).
|
|
1386
1639
|
* Ignored at runtime.
|
|
1387
1640
|
*/
|
|
1388
|
-
$schema:
|
|
1641
|
+
$schema: import_zod30.z.string().optional(),
|
|
1389
1642
|
/**
|
|
1390
1643
|
* resource.json shape version. Missing ⇒ baseline (see `./version`). Auto-migrated
|
|
1391
1644
|
* toward `CURRENT_RESOURCE_VERSION` on load in the dev environment.
|
|
1392
1645
|
*/
|
|
1393
|
-
schemaVersion:
|
|
1646
|
+
schemaVersion: import_zod30.z.number().int().positive().optional(),
|
|
1394
1647
|
/** When `true`, the resource lives in the repo but is NOT loaded/served (work in progress). */
|
|
1395
|
-
draft:
|
|
1648
|
+
draft: import_zod30.z.boolean().optional().default(false),
|
|
1396
1649
|
/**
|
|
1397
1650
|
* Where the data comes from. `prisma` (the default) is backed by a Prisma
|
|
1398
1651
|
* model plus a `schema.ts`; `custom` is configuration only and the developer
|
|
1399
1652
|
* supplies a `repository.ts`. See `./ResourceKind`.
|
|
1400
1653
|
*/
|
|
1401
1654
|
kind: ResourceKindSchema,
|
|
1402
|
-
name:
|
|
1403
|
-
route:
|
|
1404
|
-
id:
|
|
1655
|
+
name: import_zod30.z.string(),
|
|
1656
|
+
route: import_zod30.z.string().optional(),
|
|
1657
|
+
id: import_zod30.z.string().optional(),
|
|
1405
1658
|
/**
|
|
1406
1659
|
* Prisma model name. Required when `kind` is `prisma` (enforced by the
|
|
1407
1660
|
* refinement on `ResourceJsonSchema`), and must be absent when `kind` is
|
|
1408
1661
|
* `custom` — there is no Prisma delegate to address.
|
|
1409
1662
|
*/
|
|
1410
|
-
model:
|
|
1411
|
-
tag:
|
|
1412
|
-
title:
|
|
1413
|
-
table:
|
|
1663
|
+
model: import_zod30.z.string().optional(),
|
|
1664
|
+
tag: import_zod30.z.string().optional().default("Crouton"),
|
|
1665
|
+
title: import_zod30.z.string().optional(),
|
|
1666
|
+
table: import_zod30.z.string().optional(),
|
|
1414
1667
|
/**
|
|
1415
1668
|
* Type of the resource's primary key, used to coerce `:id` route params.
|
|
1416
1669
|
* Written by codegen from the Prisma model; defaults to `'string'`.
|
|
1417
1670
|
*/
|
|
1418
|
-
idType:
|
|
1671
|
+
idType: import_zod30.z.enum([
|
|
1419
1672
|
"string",
|
|
1420
1673
|
"number"
|
|
1421
1674
|
]).optional(),
|
|
1422
|
-
database:
|
|
1675
|
+
database: import_zod30.z.string().optional(),
|
|
1423
1676
|
/**
|
|
1424
1677
|
* Mount this resource under a parent route instead of at the top level —
|
|
1425
1678
|
* see `./ParentRef.schema`. Only valid on a `kind: "custom"` resource.
|
|
@@ -1431,12 +1684,12 @@ var ResourceJsonShape = import_zod20.z.object({
|
|
|
1431
1684
|
security: SecuritySchema.optional(),
|
|
1432
1685
|
operations: JsonOperationsSchema.optional(),
|
|
1433
1686
|
columns: ColumnsSchema.optional().default(ColumnsSchema.parse({})),
|
|
1434
|
-
calculatedColumns:
|
|
1435
|
-
actions:
|
|
1687
|
+
calculatedColumns: import_zod30.z.array(CalculatedColumnSchema).default([]),
|
|
1688
|
+
actions: import_zod30.z.array(JsonActionSchema).default([]),
|
|
1436
1689
|
/** Global table-level actions (no record id). Shown as toolbar buttons. */
|
|
1437
|
-
tableActions:
|
|
1690
|
+
tableActions: import_zod30.z.array(JsonActionSchema).default([]),
|
|
1438
1691
|
/** Modal width when opening a form for this resource. */
|
|
1439
|
-
modalSize:
|
|
1692
|
+
modalSize: import_zod30.z.enum([
|
|
1440
1693
|
"xs",
|
|
1441
1694
|
"sm",
|
|
1442
1695
|
"lg",
|
|
@@ -1449,7 +1702,7 @@ var ResourceJsonShape = import_zod20.z.object({
|
|
|
1449
1702
|
* `{ "relation": "text_author", "include": ["author"] }` →
|
|
1450
1703
|
* `include: { text_author: { include: { author: true } } }`
|
|
1451
1704
|
*/
|
|
1452
|
-
include:
|
|
1705
|
+
include: import_zod30.z.array(JsonIncludeEntrySchema).default([]),
|
|
1453
1706
|
/** Explicit layout for generated views (`form`, `view`, `table`). When absent, source-order grid is used. */
|
|
1454
1707
|
layout: LayoutSchema.optional()
|
|
1455
1708
|
});
|
|
@@ -1518,7 +1771,7 @@ var buildResourceJsonSchema = /* @__PURE__ */ __name(() => {
|
|
|
1518
1771
|
schema.optional()
|
|
1519
1772
|
]));
|
|
1520
1773
|
const shape = ext.size ? ResourceJsonShape.extend(extShape) : ResourceJsonShape;
|
|
1521
|
-
return
|
|
1774
|
+
return import_zod30.z.preprocess((raw) => {
|
|
1522
1775
|
if (raw && typeof raw === "object" && !Array.isArray(raw)) {
|
|
1523
1776
|
const obj = raw;
|
|
1524
1777
|
if (obj["kind"] === void 0 && obj["model"] !== void 0) {
|
|
@@ -1546,7 +1799,15 @@ var buildResourceJsonSchema = /* @__PURE__ */ __name(() => {
|
|
|
1546
1799
|
id: obj.id ?? obj.name,
|
|
1547
1800
|
route: obj.route ?? obj.id ?? obj.name ?? "",
|
|
1548
1801
|
schemaVersion,
|
|
1549
|
-
columns: normalizeColumns(obj.columns)
|
|
1802
|
+
columns: normalizeColumns(obj.columns)?.map((col) => {
|
|
1803
|
+
const out = {
|
|
1804
|
+
...col
|
|
1805
|
+
};
|
|
1806
|
+
if (out.fieldInput) out.fieldInput = parseFieldInputOptions(out.fieldInput);
|
|
1807
|
+
if (out.fieldView) out.fieldView = parseFieldInputOptions(out.fieldView);
|
|
1808
|
+
if (out.fieldTable) out.fieldTable = parseFieldInputOptions(out.fieldTable);
|
|
1809
|
+
return out;
|
|
1810
|
+
}),
|
|
1550
1811
|
operations: obj.operations ?? defaultOps
|
|
1551
1812
|
};
|
|
1552
1813
|
}));
|
|
@@ -1997,7 +2258,7 @@ var injectCalculatedColumns = /* @__PURE__ */ __name((tableView, calculated) =>
|
|
|
1997
2258
|
var injectCalculatedColumnsToView = /* @__PURE__ */ __name((viewConfig, calculated) => injectCalculatedColumnsIntoView(viewConfig, calculated, "view"), "injectCalculatedColumnsToView");
|
|
1998
2259
|
|
|
1999
2260
|
// ../crouton-core/src/lib/view/view.builder.ts
|
|
2000
|
-
var
|
|
2261
|
+
var import_zod32 = require("zod");
|
|
2001
2262
|
|
|
2002
2263
|
// ../crouton-core/src/lib/view/column-type-schema.source.ts
|
|
2003
2264
|
var optionValues = /* @__PURE__ */ __name((col) => {
|
|
@@ -2033,20 +2294,20 @@ var columnTypeSchemaSource = /* @__PURE__ */ __name((schemaCols) => {
|
|
|
2033
2294
|
}, "columnTypeSchemaSource");
|
|
2034
2295
|
|
|
2035
2296
|
// ../crouton-core/src/lib/view/json-schema.opts.ts
|
|
2036
|
-
var
|
|
2297
|
+
var import_zod31 = require("zod");
|
|
2037
2298
|
var isInstanceOf = /* @__PURE__ */ __name((zodSchema, className) => {
|
|
2038
|
-
if (!(zodSchema instanceof
|
|
2299
|
+
if (!(zodSchema instanceof import_zod31.z.ZodCustom)) return false;
|
|
2039
2300
|
const result = zodSchema.safeParse(null);
|
|
2040
2301
|
if (result.success) return false;
|
|
2041
2302
|
const issue = result.error.issues[0];
|
|
2042
2303
|
return issue?.expected === className || (issue?.message?.includes(className) ?? false);
|
|
2043
2304
|
}, "isInstanceOf");
|
|
2044
2305
|
var jsonSchemaOverride = /* @__PURE__ */ __name(({ zodSchema, jsonSchema }) => {
|
|
2045
|
-
if (zodSchema instanceof
|
|
2306
|
+
if (zodSchema instanceof import_zod31.z.ZodDate) {
|
|
2046
2307
|
jsonSchema.type = "string";
|
|
2047
2308
|
jsonSchema.format = "date-time";
|
|
2048
2309
|
}
|
|
2049
|
-
if (zodSchema instanceof
|
|
2310
|
+
if (zodSchema instanceof import_zod31.z.ZodBigInt) {
|
|
2050
2311
|
jsonSchema.type = "integer";
|
|
2051
2312
|
}
|
|
2052
2313
|
if (isInstanceOf(zodSchema, "Decimal") || isInstanceOf(zodSchema, "Decimal2")) {
|
|
@@ -2289,7 +2550,7 @@ var zodSchemaSource = /* @__PURE__ */ __name((schema) => (schemaCols) => {
|
|
|
2289
2550
|
]));
|
|
2290
2551
|
const picked = schema.pick(mask);
|
|
2291
2552
|
try {
|
|
2292
|
-
return (0,
|
|
2553
|
+
return (0, import_zod32.toJSONSchema)(picked, {
|
|
2293
2554
|
target: "draft-07",
|
|
2294
2555
|
...jsonSchemaOpts
|
|
2295
2556
|
});
|
|
@@ -2383,7 +2644,7 @@ var buildViewsWithSource = /* @__PURE__ */ __name((source, columns, layout) => {
|
|
|
2383
2644
|
views.table = emptyTableView();
|
|
2384
2645
|
}
|
|
2385
2646
|
const formUiBuilder = layout?.form ? (cols) => buildFormUiSchemaFromLayout(layout.form, cols) : buildFormUiSchema;
|
|
2386
|
-
const form = buildView(source, columns, (c) => !c.hiddenInForm, formUiBuilder, true, (c) => !c.idField && (c.createable === true || c.updateable === true));
|
|
2647
|
+
const form = buildView(source, columns, (c) => !c.hiddenInForm, formUiBuilder, true, (c) => !c.idField && !c.hiddenInForm && (c.createable === true || c.updateable === true));
|
|
2387
2648
|
if (form) {
|
|
2388
2649
|
applyRequiredColumns(form.json_schema, columns);
|
|
2389
2650
|
views.form = form;
|
|
@@ -2503,81 +2764,81 @@ var buildViewsFromColumns = /* @__PURE__ */ __name((columns) => {
|
|
|
2503
2764
|
}, "buildViewsFromColumns");
|
|
2504
2765
|
|
|
2505
2766
|
// ../crouton-core/src/lib/view/view.schema.ts
|
|
2506
|
-
var
|
|
2507
|
-
var ViewColumnConfigSchema =
|
|
2508
|
-
id:
|
|
2509
|
-
label:
|
|
2510
|
-
sortable:
|
|
2511
|
-
searchable:
|
|
2767
|
+
var import_zod33 = require("zod");
|
|
2768
|
+
var ViewColumnConfigSchema = import_zod33.z.object({
|
|
2769
|
+
id: import_zod33.z.string(),
|
|
2770
|
+
label: import_zod33.z.string().optional(),
|
|
2771
|
+
sortable: import_zod33.z.boolean().optional(),
|
|
2772
|
+
searchable: import_zod33.z.boolean().optional(),
|
|
2512
2773
|
fieldInput: FieldInputSchema.optional()
|
|
2513
2774
|
});
|
|
2514
|
-
var ViewConfigSchema =
|
|
2775
|
+
var ViewConfigSchema = import_zod33.z.object({
|
|
2515
2776
|
// TODO why we have both?
|
|
2516
|
-
json_schema:
|
|
2517
|
-
ui_schema:
|
|
2777
|
+
json_schema: import_zod33.z.record(import_zod33.z.string(), import_zod33.z.unknown()).optional(),
|
|
2778
|
+
ui_schema: import_zod33.z.record(import_zod33.z.string(), import_zod33.z.unknown()).optional(),
|
|
2518
2779
|
// TODO why we have both?
|
|
2519
|
-
ui:
|
|
2520
|
-
data:
|
|
2521
|
-
columns:
|
|
2522
|
-
defaultSort:
|
|
2780
|
+
ui: import_zod33.z.record(import_zod33.z.string(), import_zod33.z.unknown()).optional(),
|
|
2781
|
+
data: import_zod33.z.record(import_zod33.z.string(), import_zod33.z.unknown()).optional(),
|
|
2782
|
+
columns: import_zod33.z.array(ViewColumnConfigSchema),
|
|
2783
|
+
defaultSort: import_zod33.z.string().optional()
|
|
2523
2784
|
});
|
|
2524
2785
|
var viewDefList = [
|
|
2525
2786
|
"table",
|
|
2526
2787
|
"view",
|
|
2527
2788
|
"form"
|
|
2528
2789
|
];
|
|
2529
|
-
var ViewDefEnum =
|
|
2790
|
+
var ViewDefEnum = import_zod33.z.enum(viewDefList);
|
|
2530
2791
|
|
|
2531
2792
|
// ../crouton-core/src/lib/compile/enum-registry.ts
|
|
2532
|
-
var
|
|
2533
|
-
var EnumEntrySchema =
|
|
2534
|
-
value:
|
|
2535
|
-
label:
|
|
2793
|
+
var import_zod34 = require("zod");
|
|
2794
|
+
var EnumEntrySchema = import_zod34.z.object({
|
|
2795
|
+
value: import_zod34.z.unknown(),
|
|
2796
|
+
label: import_zod34.z.string()
|
|
2536
2797
|
});
|
|
2537
|
-
var EnumRegistrySchema =
|
|
2798
|
+
var EnumRegistrySchema = import_zod34.z.record(import_zod34.z.string(), import_zod34.z.array(EnumEntrySchema)).default({});
|
|
2538
2799
|
|
|
2539
2800
|
// ../crouton-core/src/lib/compile/relation-type.ts
|
|
2540
|
-
var
|
|
2801
|
+
var import_zod35 = require("zod");
|
|
2541
2802
|
|
|
2542
2803
|
// ../crouton-core/src/lib/compile/compiled-resource.schema.ts
|
|
2543
|
-
var
|
|
2804
|
+
var import_zod42 = require("zod");
|
|
2544
2805
|
|
|
2545
2806
|
// ../crouton-core/src/lib/compile/compiled-sub-resource.schema.ts
|
|
2546
|
-
var
|
|
2807
|
+
var import_zod38 = require("zod");
|
|
2547
2808
|
|
|
2548
2809
|
// ../crouton-core/src/lib/data-source/DataSourceSchema.ts
|
|
2549
|
-
var
|
|
2550
|
-
var DataSourceShape =
|
|
2810
|
+
var import_zod36 = __toESM(require("zod"), 1);
|
|
2811
|
+
var DataSourceShape = import_zod36.default.object({
|
|
2551
2812
|
/** Datasource name (folder + `name` in data-source.json). */
|
|
2552
|
-
name:
|
|
2813
|
+
name: import_zod36.default.string(),
|
|
2553
2814
|
/**
|
|
2554
2815
|
* Env var holding the connection URL. Required for Prisma adapters; optional
|
|
2555
2816
|
* for custom adapters whose connection config may differ (secrets file, SDK
|
|
2556
2817
|
* key, etc.).
|
|
2557
2818
|
*/
|
|
2558
|
-
urlEnv:
|
|
2819
|
+
urlEnv: import_zod36.default.string().optional(),
|
|
2559
2820
|
/** Import path for this datasource's generated Zod types (for resource `schema.ts`). */
|
|
2560
|
-
generatedTypesImport:
|
|
2821
|
+
generatedTypesImport: import_zod36.default.string().optional(),
|
|
2561
2822
|
/** Datasource type tag. Default `postgres`. */
|
|
2562
|
-
type:
|
|
2823
|
+
type: import_zod36.default.string().default("postgres"),
|
|
2563
2824
|
/** Mark this as the default datasource. Default `false`. */
|
|
2564
|
-
default:
|
|
2825
|
+
default: import_zod36.default.boolean().default(false),
|
|
2565
2826
|
/**
|
|
2566
2827
|
* Adapter kind. `"prisma"` (default) expects `index.ts` to default-export a
|
|
2567
2828
|
* `PrismaClient`; `"custom"` expects it to default-export a `DataSourceAdapter`.
|
|
2568
2829
|
*/
|
|
2569
|
-
adapter:
|
|
2830
|
+
adapter: import_zod36.default.enum([
|
|
2570
2831
|
"prisma",
|
|
2571
2832
|
"custom"
|
|
2572
2833
|
]).default("prisma"),
|
|
2573
2834
|
/** Prisma schema path, relative to project root. Default `prisma/<name>/schema.prisma`. */
|
|
2574
|
-
prismaSchema:
|
|
2835
|
+
prismaSchema: import_zod36.default.string().optional(),
|
|
2575
2836
|
/** Prisma config path, relative to project root. Default `prisma/<name>/prisma.config.ts`. */
|
|
2576
|
-
prismaConfig:
|
|
2837
|
+
prismaConfig: import_zod36.default.string().optional(),
|
|
2577
2838
|
/** zod-prisma-types output dir, relative to project root. Default `generated/<name>/src`. */
|
|
2578
|
-
zodOutput:
|
|
2839
|
+
zodOutput: import_zod36.default.string().optional(),
|
|
2579
2840
|
/** Prisma client output dir, relative to project root. Default `generated/<name>/client`. */
|
|
2580
|
-
clientOutput:
|
|
2841
|
+
clientOutput: import_zod36.default.string().optional()
|
|
2581
2842
|
});
|
|
2582
2843
|
var transformDataSource = /* @__PURE__ */ __name((data) => {
|
|
2583
2844
|
const name = data.name ?? "name";
|
|
@@ -2593,88 +2854,88 @@ var transformDataSource = /* @__PURE__ */ __name((data) => {
|
|
|
2593
2854
|
var DataSourceSchema = DataSourceShape.transform(transformDataSource);
|
|
2594
2855
|
|
|
2595
2856
|
// ../crouton-core/src/lib/compile/value-label-column.ts
|
|
2596
|
-
var
|
|
2597
|
-
var ValueSchema =
|
|
2598
|
-
value:
|
|
2599
|
-
label:
|
|
2857
|
+
var import_zod37 = require("zod");
|
|
2858
|
+
var ValueSchema = import_zod37.z.object({
|
|
2859
|
+
value: import_zod37.z.unknown(),
|
|
2860
|
+
label: import_zod37.z.string()
|
|
2600
2861
|
});
|
|
2601
|
-
var ValueLabelColumnSchema =
|
|
2602
|
-
field:
|
|
2603
|
-
values:
|
|
2604
|
-
enumName:
|
|
2862
|
+
var ValueLabelColumnSchema = import_zod37.z.object({
|
|
2863
|
+
field: import_zod37.z.string(),
|
|
2864
|
+
values: import_zod37.z.array(ValueSchema).default([]),
|
|
2865
|
+
enumName: import_zod37.z.string().optional()
|
|
2605
2866
|
});
|
|
2606
2867
|
|
|
2607
2868
|
// ../crouton-core/src/lib/compile/compiled-sub-resource.schema.ts
|
|
2608
|
-
var CompiledSubResourceConfigSchema =
|
|
2609
|
-
column:
|
|
2610
|
-
relation:
|
|
2611
|
-
childRoute:
|
|
2612
|
-
childKind:
|
|
2869
|
+
var CompiledSubResourceConfigSchema = import_zod38.z.object({
|
|
2870
|
+
column: import_zod38.z.string(),
|
|
2871
|
+
relation: import_zod38.z.string(),
|
|
2872
|
+
childRoute: import_zod38.z.string(),
|
|
2873
|
+
childKind: import_zod38.z.enum([
|
|
2613
2874
|
"prisma",
|
|
2614
2875
|
"custom"
|
|
2615
2876
|
]).default("prisma"),
|
|
2616
|
-
childDir:
|
|
2617
|
-
childModel:
|
|
2618
|
-
foreignKey:
|
|
2619
|
-
name:
|
|
2620
|
-
title:
|
|
2621
|
-
idField:
|
|
2622
|
-
idType:
|
|
2877
|
+
childDir: import_zod38.z.string().optional(),
|
|
2878
|
+
childModel: import_zod38.z.string(),
|
|
2879
|
+
foreignKey: import_zod38.z.string(),
|
|
2880
|
+
name: import_zod38.z.string().optional(),
|
|
2881
|
+
title: import_zod38.z.string().optional(),
|
|
2882
|
+
idField: import_zod38.z.string().optional(),
|
|
2883
|
+
idType: import_zod38.z.enum([
|
|
2623
2884
|
"string",
|
|
2624
2885
|
"number"
|
|
2625
2886
|
]).optional(),
|
|
2626
|
-
views:
|
|
2887
|
+
views: import_zod38.z.record(import_zod38.z.string(), ViewConfigSchema).optional(),
|
|
2627
2888
|
operations: JsonOperationsSchema,
|
|
2628
|
-
actions:
|
|
2629
|
-
modalSize:
|
|
2889
|
+
actions: import_zod38.z.array(JsonActionSchema).optional(),
|
|
2890
|
+
modalSize: import_zod38.z.enum([
|
|
2630
2891
|
"xs",
|
|
2631
2892
|
"sm",
|
|
2632
2893
|
"lg",
|
|
2633
2894
|
"xl"
|
|
2634
2895
|
]).optional(),
|
|
2635
2896
|
display: JsonDisplaySchema.optional(),
|
|
2636
|
-
include:
|
|
2637
|
-
calculatedColumns:
|
|
2638
|
-
includeInFindOne:
|
|
2639
|
-
hiddenInTable:
|
|
2640
|
-
findOneOrderBy:
|
|
2641
|
-
valueLabelColumns:
|
|
2642
|
-
relationType:
|
|
2897
|
+
include: import_zod38.z.array(JsonIncludeEntrySchema).optional(),
|
|
2898
|
+
calculatedColumns: import_zod38.z.array(CalculatedColumnSchema).optional(),
|
|
2899
|
+
includeInFindOne: import_zod38.z.boolean().optional(),
|
|
2900
|
+
hiddenInTable: import_zod38.z.boolean().optional(),
|
|
2901
|
+
findOneOrderBy: import_zod38.z.record(import_zod38.z.string(), import_zod38.z.unknown()).optional(),
|
|
2902
|
+
valueLabelColumns: import_zod38.z.array(ValueLabelColumnSchema).optional(),
|
|
2903
|
+
relationType: import_zod38.z.enum([
|
|
2643
2904
|
"oneToMany",
|
|
2644
2905
|
"manyToOne"
|
|
2645
2906
|
]).optional()
|
|
2646
2907
|
});
|
|
2647
2908
|
|
|
2648
2909
|
// ../crouton-core/src/lib/compile/definition.schema.ts
|
|
2649
|
-
var
|
|
2910
|
+
var import_zod40 = require("zod");
|
|
2650
2911
|
|
|
2651
2912
|
// ../crouton-core/src/lib/compile/schema-input.ts
|
|
2652
|
-
var
|
|
2653
|
-
var JsonSchemaInputSchema =
|
|
2654
|
-
type:
|
|
2655
|
-
properties:
|
|
2656
|
-
required:
|
|
2657
|
-
additionalProperties:
|
|
2913
|
+
var import_zod39 = require("zod");
|
|
2914
|
+
var JsonSchemaInputSchema = import_zod39.z.object({
|
|
2915
|
+
type: import_zod39.z.literal("object"),
|
|
2916
|
+
properties: import_zod39.z.record(import_zod39.z.string(), import_zod39.z.unknown()),
|
|
2917
|
+
required: import_zod39.z.array(import_zod39.z.string()).optional(),
|
|
2918
|
+
additionalProperties: import_zod39.z.boolean().optional()
|
|
2658
2919
|
});
|
|
2659
|
-
var SchemaInputSchema =
|
|
2660
|
-
|
|
2920
|
+
var SchemaInputSchema = import_zod39.z.union([
|
|
2921
|
+
import_zod39.z.custom((val) => val instanceof import_zod39.ZodObject),
|
|
2661
2922
|
JsonSchemaInputSchema
|
|
2662
2923
|
]);
|
|
2663
2924
|
|
|
2664
2925
|
// ../crouton-core/src/lib/compile/definition.schema.ts
|
|
2665
|
-
var ExternalOperationDefSchema =
|
|
2666
|
-
uri:
|
|
2667
|
-
method:
|
|
2926
|
+
var ExternalOperationDefSchema = import_zod40.z.object({
|
|
2927
|
+
uri: import_zod40.z.string(),
|
|
2928
|
+
method: import_zod40.z.string().optional()
|
|
2668
2929
|
});
|
|
2669
|
-
var OperationDefSchema =
|
|
2670
|
-
|
|
2930
|
+
var OperationDefSchema = import_zod40.z.union([
|
|
2931
|
+
import_zod40.z.literal(true),
|
|
2671
2932
|
ExternalOperationDefSchema,
|
|
2672
|
-
|
|
2933
|
+
import_zod40.z.object({
|
|
2673
2934
|
schema: SchemaInputSchema.optional(),
|
|
2674
2935
|
security: SecuritySchema.optional()
|
|
2675
2936
|
})
|
|
2676
2937
|
]);
|
|
2677
|
-
var ResourceDefinitionSchema =
|
|
2938
|
+
var ResourceDefinitionSchema = import_zod40.z.object({
|
|
2678
2939
|
findAll: OperationDefSchema.optional(),
|
|
2679
2940
|
findOne: OperationDefSchema.optional(),
|
|
2680
2941
|
create: OperationDefSchema.optional(),
|
|
@@ -2682,93 +2943,93 @@ var ResourceDefinitionSchema = import_zod30.z.object({
|
|
|
2682
2943
|
patch: OperationDefSchema.optional(),
|
|
2683
2944
|
delete: OperationDefSchema.optional()
|
|
2684
2945
|
});
|
|
2685
|
-
var DefinitionCallbackSchema =
|
|
2946
|
+
var DefinitionCallbackSchema = import_zod40.z.function({
|
|
2686
2947
|
input: [],
|
|
2687
2948
|
output: ResourceDefinitionSchema
|
|
2688
2949
|
});
|
|
2689
|
-
var DefinitionSchema =
|
|
2950
|
+
var DefinitionSchema = import_zod40.z.union([
|
|
2690
2951
|
ResourceDefinitionSchema,
|
|
2691
2952
|
DefinitionCallbackSchema
|
|
2692
2953
|
]);
|
|
2693
2954
|
|
|
2694
2955
|
// ../crouton-core/src/lib/compile/lookup.schema.ts
|
|
2695
|
-
var
|
|
2696
|
-
var LookupSchema =
|
|
2697
|
-
key:
|
|
2698
|
-
label:
|
|
2956
|
+
var import_zod41 = require("zod");
|
|
2957
|
+
var LookupSchema = import_zod41.z.object({
|
|
2958
|
+
key: import_zod41.z.string(),
|
|
2959
|
+
label: import_zod41.z.string().optional()
|
|
2699
2960
|
});
|
|
2700
2961
|
|
|
2701
2962
|
// ../crouton-core/src/lib/compile/compiled-resource.schema.ts
|
|
2702
2963
|
var CompiledResourceSchema = ResourceJsonShape.extend({
|
|
2703
|
-
route:
|
|
2704
|
-
valueLabelColumns:
|
|
2705
|
-
subResources:
|
|
2964
|
+
route: import_zod42.z.string(),
|
|
2965
|
+
valueLabelColumns: import_zod42.z.array(ValueLabelColumnSchema).default([]),
|
|
2966
|
+
subResources: import_zod42.z.lazy(() => import_zod42.z.array(CompiledSubResourceConfigSchema)).default([]),
|
|
2706
2967
|
lookup: LookupSchema.optional(),
|
|
2707
|
-
views:
|
|
2968
|
+
views: import_zod42.z.record(import_zod42.z.string(), ViewConfigSchema),
|
|
2708
2969
|
definition: DefinitionSchema,
|
|
2709
|
-
idField:
|
|
2710
|
-
idType:
|
|
2970
|
+
idField: import_zod42.z.string(),
|
|
2971
|
+
idType: import_zod42.z.enum([
|
|
2711
2972
|
"string",
|
|
2712
2973
|
"number"
|
|
2713
2974
|
]).default("string")
|
|
2714
2975
|
});
|
|
2715
2976
|
|
|
2716
2977
|
// ../crouton-core/src/lib/compile/to-json-schema.ts
|
|
2717
|
-
var
|
|
2978
|
+
var import_zod43 = require("zod");
|
|
2718
2979
|
|
|
2719
2980
|
// ../crouton-core/src/lib/config/CroutonConfig.schema.ts
|
|
2720
|
-
var
|
|
2721
|
-
var RulesetSchema =
|
|
2722
|
-
hideIdInTable:
|
|
2723
|
-
hideIdInForm:
|
|
2724
|
-
hideIdInView:
|
|
2725
|
-
hideTimestamps:
|
|
2726
|
-
hideForeignKeys:
|
|
2727
|
-
includeRelations:
|
|
2728
|
-
hideRelationsInTable:
|
|
2729
|
-
showRelationsInForm:
|
|
2730
|
-
enumValueLabel:
|
|
2731
|
-
sharedEnums:
|
|
2981
|
+
var import_zod44 = require("zod");
|
|
2982
|
+
var RulesetSchema = import_zod44.z.object({
|
|
2983
|
+
hideIdInTable: import_zod44.z.boolean().default(true),
|
|
2984
|
+
hideIdInForm: import_zod44.z.boolean().default(true),
|
|
2985
|
+
hideIdInView: import_zod44.z.boolean().default(true),
|
|
2986
|
+
hideTimestamps: import_zod44.z.boolean().default(true),
|
|
2987
|
+
hideForeignKeys: import_zod44.z.boolean().default(true),
|
|
2988
|
+
includeRelations: import_zod44.z.boolean().default(true),
|
|
2989
|
+
hideRelationsInTable: import_zod44.z.boolean().default(true),
|
|
2990
|
+
showRelationsInForm: import_zod44.z.boolean().default(true),
|
|
2991
|
+
enumValueLabel: import_zod44.z.boolean().default(true),
|
|
2992
|
+
sharedEnums: import_zod44.z.boolean().default(true),
|
|
2732
2993
|
defaultOperations: JsonOperationsSchema.default(JsonOperationsSchema.parse({}))
|
|
2733
2994
|
});
|
|
2734
|
-
var I18nConfigSchema =
|
|
2995
|
+
var I18nConfigSchema = import_zod44.z.object({
|
|
2735
2996
|
/** Default / fallback language. */
|
|
2736
|
-
defaultLanguage:
|
|
2997
|
+
defaultLanguage: import_zod44.z.string().default("en"),
|
|
2737
2998
|
/** All supported language codes. */
|
|
2738
|
-
languages:
|
|
2999
|
+
languages: import_zod44.z.array(import_zod44.z.string()).min(1),
|
|
2739
3000
|
/** Directory containing `<lang>.json` bundles, relative to project root. */
|
|
2740
|
-
translationsDir:
|
|
3001
|
+
translationsDir: import_zod44.z.string().default("translations")
|
|
2741
3002
|
});
|
|
2742
|
-
var CroutonConfigSchema =
|
|
3003
|
+
var CroutonConfigSchema = import_zod44.z.object({
|
|
2743
3004
|
/**
|
|
2744
3005
|
* Application title served to the frontend via `GET /_app/layout`.
|
|
2745
3006
|
* Displayed in the admin sidebar header.
|
|
2746
3007
|
*/
|
|
2747
|
-
title:
|
|
3008
|
+
title: import_zod44.z.string(),
|
|
2748
3009
|
/** Where resource directories live, relative to the project root. */
|
|
2749
|
-
resourcesDir:
|
|
3010
|
+
resourcesDir: import_zod44.z.string(),
|
|
2750
3011
|
/** Where datasource folders live (each with a `data-source.json`). */
|
|
2751
|
-
dataSourcesDir:
|
|
3012
|
+
dataSourcesDir: import_zod44.z.string(),
|
|
2752
3013
|
/**
|
|
2753
3014
|
* Template for a model's Zod export name. `{Model}` → Prisma model name.
|
|
2754
3015
|
* Defaults to `{Model}WithRelationsSchema` (the relations-aware schema
|
|
2755
3016
|
* emitted by zod-prisma-types when `createRelationValuesTypes` is on).
|
|
2756
3017
|
*/
|
|
2757
|
-
schemaExportName:
|
|
3018
|
+
schemaExportName: import_zod44.z.string().default("{Model}WithRelationsSchema"),
|
|
2758
3019
|
/** Path to the shared enum registry, relative to project root. Default `crouton.enums.json`. */
|
|
2759
|
-
enumsFile:
|
|
3020
|
+
enumsFile: import_zod44.z.string().default("crouton.enums.json"),
|
|
2760
3021
|
/** Optional overrides of the default visibility ruleset. */
|
|
2761
3022
|
rules: RulesetSchema.default(RulesetSchema.parse({})),
|
|
2762
3023
|
/**
|
|
2763
3024
|
* Sidebar group definitions, keyed by group slug (e.g. `"metadata"`).
|
|
2764
3025
|
* Resources reference a group via `sidebar.group` in their `resource.json`.
|
|
2765
3026
|
*/
|
|
2766
|
-
sidebarGroups:
|
|
3027
|
+
sidebarGroups: import_zod44.z.record(import_zod44.z.string(), SidebarGroupSchema).default({}),
|
|
2767
3028
|
/**
|
|
2768
3029
|
* Whether form fields are saved automatically as the user edits them.
|
|
2769
3030
|
* @default true
|
|
2770
3031
|
*/
|
|
2771
|
-
autoSave:
|
|
3032
|
+
autoSave: import_zod44.z.boolean().default(true),
|
|
2772
3033
|
/** Optional i18n / translation configuration. */
|
|
2773
3034
|
i18n: I18nConfigSchema.optional()
|
|
2774
3035
|
});
|
|
@@ -2781,29 +3042,29 @@ var CONFIG_FILES = [
|
|
|
2781
3042
|
];
|
|
2782
3043
|
|
|
2783
3044
|
// ../crouton-core/src/lib/i18n/Translations.schema.ts
|
|
2784
|
-
var
|
|
2785
|
-
var NestedStringRecord =
|
|
2786
|
-
|
|
3045
|
+
var import_zod45 = require("zod");
|
|
3046
|
+
var NestedStringRecord = import_zod45.z.lazy(() => import_zod45.z.record(import_zod45.z.string(), import_zod45.z.union([
|
|
3047
|
+
import_zod45.z.string(),
|
|
2787
3048
|
NestedStringRecord
|
|
2788
3049
|
])));
|
|
2789
|
-
var TranslationBundleSchema =
|
|
2790
|
-
app:
|
|
2791
|
-
title:
|
|
3050
|
+
var TranslationBundleSchema = import_zod45.z.object({
|
|
3051
|
+
app: import_zod45.z.object({
|
|
3052
|
+
title: import_zod45.z.string().optional()
|
|
2792
3053
|
}).optional(),
|
|
2793
|
-
sidebarGroups:
|
|
2794
|
-
resources:
|
|
2795
|
-
title:
|
|
2796
|
-
sidebar:
|
|
2797
|
-
columns:
|
|
2798
|
-
actions:
|
|
2799
|
-
subResources:
|
|
2800
|
-
title:
|
|
2801
|
-
columns:
|
|
3054
|
+
sidebarGroups: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.string()).optional(),
|
|
3055
|
+
resources: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.object({
|
|
3056
|
+
title: import_zod45.z.string().optional(),
|
|
3057
|
+
sidebar: import_zod45.z.string().optional(),
|
|
3058
|
+
columns: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.string()).optional(),
|
|
3059
|
+
actions: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.string()).optional(),
|
|
3060
|
+
subResources: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.object({
|
|
3061
|
+
title: import_zod45.z.string().optional(),
|
|
3062
|
+
columns: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.string()).optional()
|
|
2802
3063
|
}).optional()).optional()
|
|
2803
3064
|
}).optional()).optional(),
|
|
2804
|
-
enums:
|
|
3065
|
+
enums: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.record(import_zod45.z.string(), import_zod45.z.string())).optional(),
|
|
2805
3066
|
ui: NestedStringRecord.optional(),
|
|
2806
|
-
validation:
|
|
3067
|
+
validation: import_zod45.z.record(import_zod45.z.string(), import_zod45.z.string()).optional()
|
|
2807
3068
|
}).passthrough();
|
|
2808
3069
|
|
|
2809
3070
|
// ../crouton-core/src/lib/i18n/translation-keys.ts
|
|
@@ -2887,21 +3148,21 @@ var import_common27 = require("@nestjs/common");
|
|
|
2887
3148
|
var import_core2 = require("@nestjs/core");
|
|
2888
3149
|
|
|
2889
3150
|
// src/lib/crud/app-layout/app-layout.types.ts
|
|
2890
|
-
var
|
|
2891
|
-
var SidebarLeafSchema =
|
|
2892
|
-
kind:
|
|
2893
|
-
id:
|
|
2894
|
-
label:
|
|
2895
|
-
position:
|
|
3151
|
+
var import_zod46 = require("zod");
|
|
3152
|
+
var SidebarLeafSchema = import_zod46.z.object({
|
|
3153
|
+
kind: import_zod46.z.literal("item").default("item"),
|
|
3154
|
+
id: import_zod46.z.string(),
|
|
3155
|
+
label: import_zod46.z.string(),
|
|
3156
|
+
position: import_zod46.z.number().optional()
|
|
2896
3157
|
});
|
|
2897
|
-
var SidebarGroupSchema2 =
|
|
2898
|
-
kind:
|
|
2899
|
-
id:
|
|
2900
|
-
label:
|
|
2901
|
-
position:
|
|
2902
|
-
children:
|
|
3158
|
+
var SidebarGroupSchema2 = import_zod46.z.object({
|
|
3159
|
+
kind: import_zod46.z.literal("group").default("group"),
|
|
3160
|
+
id: import_zod46.z.string(),
|
|
3161
|
+
label: import_zod46.z.string(),
|
|
3162
|
+
position: import_zod46.z.number().optional(),
|
|
3163
|
+
children: import_zod46.z.array(SidebarLeafSchema).default([])
|
|
2903
3164
|
});
|
|
2904
|
-
var SidebarNodeSchema =
|
|
3165
|
+
var SidebarNodeSchema = import_zod46.z.discriminatedUnion("kind", [
|
|
2905
3166
|
SidebarLeafSchema,
|
|
2906
3167
|
SidebarGroupSchema2
|
|
2907
3168
|
]);
|
|
@@ -3740,47 +4001,47 @@ var import_swagger11 = require("@nestjs/swagger");
|
|
|
3740
4001
|
var import_common10 = require("@nestjs/common");
|
|
3741
4002
|
|
|
3742
4003
|
// src/lib/crud/action/action.types.ts
|
|
3743
|
-
var
|
|
3744
|
-
var ActionMetadataSchema2 =
|
|
4004
|
+
var import_zod47 = require("zod");
|
|
4005
|
+
var ActionMetadataSchema2 = import_zod47.z.object({
|
|
3745
4006
|
/** URL segment used in the endpoint. */
|
|
3746
|
-
id:
|
|
4007
|
+
id: import_zod47.z.string(),
|
|
3747
4008
|
/** Human-readable label shown as a button. */
|
|
3748
|
-
label:
|
|
4009
|
+
label: import_zod47.z.string().optional(),
|
|
3749
4010
|
/** MDI icon name, e.g. `"mdi:open-in-new"`. */
|
|
3750
|
-
icon:
|
|
4011
|
+
icon: import_zod47.z.string().optional(),
|
|
3751
4012
|
/** Tooltip text. Falls back to `label` when omitted. */
|
|
3752
|
-
tooltip:
|
|
4013
|
+
tooltip: import_zod47.z.string().optional(),
|
|
3753
4014
|
/** Per-row condition — button is hidden when false. */
|
|
3754
|
-
condition:
|
|
4015
|
+
condition: import_zod47.z.custom().optional()
|
|
3755
4016
|
});
|
|
3756
4017
|
var ResourceLinkActionSchema2 = ActionMetadataSchema2.extend({
|
|
3757
|
-
type:
|
|
4018
|
+
type: import_zod47.z.literal("link"),
|
|
3758
4019
|
/** URL to open. May contain `{id}` or `{env.VAR}` placeholders. */
|
|
3759
|
-
href:
|
|
4020
|
+
href: import_zod47.z.string()
|
|
3760
4021
|
});
|
|
3761
4022
|
var ResourceRowProcedureActionSchema2 = ActionMetadataSchema2.extend({
|
|
3762
|
-
type:
|
|
4023
|
+
type: import_zod47.z.literal("procedure").optional(),
|
|
3763
4024
|
/** HTTP method for the endpoint. Defaults to `"post"`. */
|
|
3764
|
-
method:
|
|
4025
|
+
method: import_zod47.z.string().optional(),
|
|
3765
4026
|
/** Static data payload merged into the request body by the frontend. */
|
|
3766
|
-
data:
|
|
4027
|
+
data: import_zod47.z.record(import_zod47.z.string(), import_zod47.z.unknown()).optional(),
|
|
3767
4028
|
/** Procedure called with `(prisma, recordId)`. */
|
|
3768
|
-
procedure:
|
|
4029
|
+
procedure: import_zod47.z.custom((v) => typeof v === "function")
|
|
3769
4030
|
});
|
|
3770
4031
|
var ResourceTableProcedureActionSchema2 = ActionMetadataSchema2.extend({
|
|
3771
|
-
type:
|
|
4032
|
+
type: import_zod47.z.literal("procedure").optional(),
|
|
3772
4033
|
/** HTTP method for the endpoint. Defaults to `"post"`. */
|
|
3773
|
-
method:
|
|
4034
|
+
method: import_zod47.z.string().optional(),
|
|
3774
4035
|
/** Static data payload merged into the request body by the frontend. */
|
|
3775
|
-
data:
|
|
4036
|
+
data: import_zod47.z.record(import_zod47.z.string(), import_zod47.z.unknown()).optional(),
|
|
3776
4037
|
/** Procedure called with `(prisma)` — no record id. */
|
|
3777
|
-
procedure:
|
|
4038
|
+
procedure: import_zod47.z.custom((v) => typeof v === "function")
|
|
3778
4039
|
});
|
|
3779
|
-
var ResourceRowActionSchema2 =
|
|
4040
|
+
var ResourceRowActionSchema2 = import_zod47.z.union([
|
|
3780
4041
|
ResourceRowProcedureActionSchema2,
|
|
3781
4042
|
ResourceLinkActionSchema2
|
|
3782
4043
|
]);
|
|
3783
|
-
var ResourceTableActionSchema2 =
|
|
4044
|
+
var ResourceTableActionSchema2 = import_zod47.z.union([
|
|
3784
4045
|
ResourceTableProcedureActionSchema2,
|
|
3785
4046
|
ResourceLinkActionSchema2
|
|
3786
4047
|
]);
|
|
@@ -3887,7 +4148,7 @@ var securityForSub = /* @__PURE__ */ __name((config, sub, op, moduleDefault) =>
|
|
|
3887
4148
|
}, "securityForSub");
|
|
3888
4149
|
|
|
3889
4150
|
// src/lib/crud/custom-repository/custom-repository.types.ts
|
|
3890
|
-
var
|
|
4151
|
+
var import_zod48 = require("zod");
|
|
3891
4152
|
var CUSTOM_OPS = [
|
|
3892
4153
|
"findAll",
|
|
3893
4154
|
"findOne",
|
|
@@ -3904,7 +4165,7 @@ var PARENT_METHOD = {
|
|
|
3904
4165
|
patch: "patchByParent",
|
|
3905
4166
|
delete: "deleteByParent"
|
|
3906
4167
|
};
|
|
3907
|
-
var CustomRepositorySchema =
|
|
4168
|
+
var CustomRepositorySchema = import_zod48.z.custom((value) => typeof value === "object" && value !== null);
|
|
3908
4169
|
|
|
3909
4170
|
// src/lib/crud/resource/resource-load-errors.registry.ts
|
|
3910
4171
|
var ResourceLoadErrorsRegistry = class ResourceLoadErrorsRegistry2 {
|
|
@@ -5097,23 +5358,23 @@ var PrismaDataSourceAdapter = class {
|
|
|
5097
5358
|
};
|
|
5098
5359
|
|
|
5099
5360
|
// src/lib/crud/hooks/hooks.types.ts
|
|
5100
|
-
var
|
|
5101
|
-
var WriteOpSchema =
|
|
5361
|
+
var import_zod49 = require("zod");
|
|
5362
|
+
var WriteOpSchema = import_zod49.z.enum([
|
|
5102
5363
|
"create",
|
|
5103
5364
|
"update",
|
|
5104
5365
|
"patch",
|
|
5105
5366
|
"delete"
|
|
5106
5367
|
]);
|
|
5107
|
-
var ReadOpSchema =
|
|
5368
|
+
var ReadOpSchema = import_zod49.z.enum([
|
|
5108
5369
|
"findAll",
|
|
5109
5370
|
"findOne"
|
|
5110
5371
|
]);
|
|
5111
|
-
var ResourceHooksSchema =
|
|
5112
|
-
beforeWrite:
|
|
5113
|
-
afterWrite:
|
|
5114
|
-
afterRead:
|
|
5115
|
-
beforeFindAll:
|
|
5116
|
-
afterFindAll:
|
|
5372
|
+
var ResourceHooksSchema = import_zod49.z.object({
|
|
5373
|
+
beforeWrite: import_zod49.z.custom().optional(),
|
|
5374
|
+
afterWrite: import_zod49.z.custom().optional(),
|
|
5375
|
+
afterRead: import_zod49.z.custom().optional(),
|
|
5376
|
+
beforeFindAll: import_zod49.z.custom().optional(),
|
|
5377
|
+
afterFindAll: import_zod49.z.custom().optional()
|
|
5117
5378
|
});
|
|
5118
5379
|
|
|
5119
5380
|
// src/lib/crud/hooks/hooks.loader.ts
|
|
@@ -5363,9 +5624,9 @@ var validateCustomRepository = /* @__PURE__ */ __name((config, repository, adapt
|
|
|
5363
5624
|
}, "validateCustomRepository");
|
|
5364
5625
|
|
|
5365
5626
|
// src/lib/crud/schema.utils.ts
|
|
5366
|
-
var
|
|
5627
|
+
var import_zod50 = require("zod");
|
|
5367
5628
|
function isZodSchema(schema) {
|
|
5368
|
-
return schema instanceof
|
|
5629
|
+
return schema instanceof import_zod50.ZodObject;
|
|
5369
5630
|
}
|
|
5370
5631
|
__name(isZodSchema, "isZodSchema");
|
|
5371
5632
|
var dropNullableFromRequired2 = /* @__PURE__ */ __name((jsonSchema) => {
|
|
@@ -5377,7 +5638,7 @@ function toJsonSchema2(schema) {
|
|
|
5377
5638
|
if (isZodSchema(schema)) {
|
|
5378
5639
|
let jsonSchema;
|
|
5379
5640
|
try {
|
|
5380
|
-
jsonSchema = (0,
|
|
5641
|
+
jsonSchema = (0, import_zod50.toJSONSchema)(schema, {
|
|
5381
5642
|
target: "openApi3",
|
|
5382
5643
|
...jsonSchemaOpts
|
|
5383
5644
|
});
|
|
@@ -6506,26 +6767,26 @@ var import_common20 = require("@nestjs/common");
|
|
|
6506
6767
|
var import_swagger8 = require("@nestjs/swagger");
|
|
6507
6768
|
|
|
6508
6769
|
// src/lib/crud/resource/PatchResourceJson.schema.ts
|
|
6509
|
-
var
|
|
6510
|
-
var FieldVariantPatchSchema =
|
|
6511
|
-
type:
|
|
6512
|
-
format:
|
|
6513
|
-
resource:
|
|
6514
|
-
position:
|
|
6515
|
-
options:
|
|
6770
|
+
var import_zod51 = require("zod");
|
|
6771
|
+
var FieldVariantPatchSchema = import_zod51.z.object({
|
|
6772
|
+
type: import_zod51.z.string().nullable().optional(),
|
|
6773
|
+
format: import_zod51.z.string().nullable().optional(),
|
|
6774
|
+
resource: import_zod51.z.string().nullable().optional(),
|
|
6775
|
+
position: import_zod51.z.number().nullable().optional(),
|
|
6776
|
+
options: import_zod51.z.record(import_zod51.z.string(), import_zod51.z.unknown().nullable()).optional()
|
|
6516
6777
|
}).partial();
|
|
6517
|
-
var PatchColumnSchema =
|
|
6518
|
-
label:
|
|
6519
|
-
column:
|
|
6520
|
-
hiddenInTable:
|
|
6521
|
-
hiddenInForm:
|
|
6522
|
-
hiddenInView:
|
|
6778
|
+
var PatchColumnSchema = import_zod51.z.object({
|
|
6779
|
+
label: import_zod51.z.string().optional(),
|
|
6780
|
+
column: import_zod51.z.string().optional(),
|
|
6781
|
+
hiddenInTable: import_zod51.z.boolean().optional(),
|
|
6782
|
+
hiddenInForm: import_zod51.z.boolean().optional(),
|
|
6783
|
+
hiddenInView: import_zod51.z.boolean().optional(),
|
|
6523
6784
|
fieldInput: FieldVariantPatchSchema.optional(),
|
|
6524
6785
|
fieldView: FieldVariantPatchSchema.optional(),
|
|
6525
6786
|
fieldTable: FieldVariantPatchSchema.optional()
|
|
6526
6787
|
}).partial();
|
|
6527
|
-
var PatchResourceJsonSchema =
|
|
6528
|
-
columns:
|
|
6788
|
+
var PatchResourceJsonSchema = import_zod51.z.object({
|
|
6789
|
+
columns: import_zod51.z.record(import_zod51.z.string(), PatchColumnSchema)
|
|
6529
6790
|
});
|
|
6530
6791
|
|
|
6531
6792
|
// src/lib/crud/resource/WriteResourceJson.ts
|
|
@@ -7720,9 +7981,32 @@ var resolve4 = /* @__PURE__ */ __name(async (diff2, resolver = recommendedResolv
|
|
|
7720
7981
|
|
|
7721
7982
|
// ../crouton-codegen/src/serialize.ts
|
|
7722
7983
|
var RESOURCE_SCHEMA_URL = `https://ghentcdh.github.io/crouton/schema/v${CURRENT_RESOURCE_VERSION}/resource.schema.json`;
|
|
7984
|
+
var FIELD_INPUT_SCHEMA_BASE = `https://ghentcdh.github.io/crouton/schema/v${CURRENT_RESOURCE_VERSION}`;
|
|
7985
|
+
var stampFieldInputSchema = /* @__PURE__ */ __name((fi) => {
|
|
7986
|
+
const type = fi.type;
|
|
7987
|
+
if (!type) return fi;
|
|
7988
|
+
const def2 = fieldInputRegistry.get(type);
|
|
7989
|
+
if (!def2) return fi;
|
|
7990
|
+
const { $schema: _old, ...rest } = fi;
|
|
7991
|
+
return {
|
|
7992
|
+
$schema: `${FIELD_INPUT_SCHEMA_BASE}/${def2.schemaFile}.field-input.schema.json`,
|
|
7993
|
+
...rest
|
|
7994
|
+
};
|
|
7995
|
+
}, "stampFieldInputSchema");
|
|
7723
7996
|
var withResourceHeader = /* @__PURE__ */ __name((config, opts = {}) => {
|
|
7724
7997
|
const { $schema: _schema, schemaVersion: _version, draft: existingDraft, kind: existingKind, ...rest } = config;
|
|
7725
7998
|
const draft = opts.draft !== void 0 ? opts.draft : existingDraft;
|
|
7999
|
+
if (Array.isArray(rest.columns)) {
|
|
8000
|
+
rest.columns = rest.columns.map((col) => {
|
|
8001
|
+
const out = {
|
|
8002
|
+
...col
|
|
8003
|
+
};
|
|
8004
|
+
if (out["fieldInput"] && typeof out["fieldInput"] === "object") out["fieldInput"] = stampFieldInputSchema(out["fieldInput"]);
|
|
8005
|
+
if (out["fieldView"] && typeof out["fieldView"] === "object") out["fieldView"] = stampFieldInputSchema(out["fieldView"]);
|
|
8006
|
+
if (out["fieldTable"] && typeof out["fieldTable"] === "object") out["fieldTable"] = stampFieldInputSchema(out["fieldTable"]);
|
|
8007
|
+
return out;
|
|
8008
|
+
});
|
|
8009
|
+
}
|
|
7726
8010
|
return {
|
|
7727
8011
|
$schema: RESOURCE_SCHEMA_URL,
|
|
7728
8012
|
schemaVersion: CURRENT_RESOURCE_VERSION,
|
|
@@ -7952,12 +8236,12 @@ var makeSchemaExportName = /* @__PURE__ */ __name((config) => {
|
|
|
7952
8236
|
var resolveFromRoot = /* @__PURE__ */ __name((root, p) => (0, import_node_path11.isAbsolute)(p) ? p : (0, import_node_path11.join)(root, p), "resolveFromRoot");
|
|
7953
8237
|
|
|
7954
8238
|
// ../crouton-codegen/src/scaffold.ts
|
|
7955
|
-
var
|
|
8239
|
+
var import_zod52 = require("zod");
|
|
7956
8240
|
var import_promises5 = require("fs/promises");
|
|
7957
8241
|
var import_node_path12 = require("path");
|
|
7958
8242
|
var ScallfoldDatasourceSchema = DataSourceShape.extend({
|
|
7959
8243
|
/** Folder name under `dataSourcesDir`. */
|
|
7960
|
-
folder:
|
|
8244
|
+
folder: import_zod52.z.string().default("default")
|
|
7961
8245
|
}).transform(transformDataSource);
|
|
7962
8246
|
|
|
7963
8247
|
// ../crouton-codegen/src/datasource-scaffold.ts
|
|
@@ -8170,7 +8454,7 @@ ${stderr}`.trim()
|
|
|
8170
8454
|
}, "prismaGenerate");
|
|
8171
8455
|
var pullAndGenerate = /* @__PURE__ */ __name(async (input) => {
|
|
8172
8456
|
const { root, prismaConfigPath, schemaPath } = input;
|
|
8173
|
-
loadDotenv(
|
|
8457
|
+
loadDotenv((0, import_node_path15.dirname)(schemaPath));
|
|
8174
8458
|
const backupPath = await backupSchema(schemaPath);
|
|
8175
8459
|
const dbPull = await prismaDbPull(root, prismaConfigPath);
|
|
8176
8460
|
if (!dbPull.ok) return {
|
|
@@ -8845,12 +9129,12 @@ DevResourcesController = _ts_decorate8([
|
|
|
8845
9129
|
], DevResourcesController);
|
|
8846
9130
|
|
|
8847
9131
|
// src/lib/crud/enum-registry/enum-registry.types.ts
|
|
8848
|
-
var
|
|
8849
|
-
var EnumEntrySchema2 =
|
|
8850
|
-
value:
|
|
8851
|
-
label:
|
|
9132
|
+
var import_zod53 = require("zod");
|
|
9133
|
+
var EnumEntrySchema2 = import_zod53.z.object({
|
|
9134
|
+
value: import_zod53.z.unknown(),
|
|
9135
|
+
label: import_zod53.z.string()
|
|
8852
9136
|
});
|
|
8853
|
-
var EnumRegistrySchema2 =
|
|
9137
|
+
var EnumRegistrySchema2 = import_zod53.z.record(import_zod53.z.string(), import_zod53.z.array(EnumEntrySchema2)).default({});
|
|
8854
9138
|
|
|
8855
9139
|
// src/lib/crud/enum-registry/enum-registry.loader.ts
|
|
8856
9140
|
var import_node_fs8 = require("fs");
|
|
@@ -8985,9 +9269,9 @@ var buildResourceDefinitions2 = /* @__PURE__ */ __name((schema, operations, enri
|
|
|
8985
9269
|
}, "buildResourceDefinitions");
|
|
8986
9270
|
|
|
8987
9271
|
// src/lib/crud/adapter/relation-type.ts
|
|
8988
|
-
var
|
|
9272
|
+
var import_zod54 = require("zod");
|
|
8989
9273
|
var unwrapZodType = /* @__PURE__ */ __name((type) => {
|
|
8990
|
-
if (type instanceof
|
|
9274
|
+
if (type instanceof import_zod54.ZodOptional || type instanceof import_zod54.ZodNullable) {
|
|
8991
9275
|
return unwrapZodType(type.unwrap());
|
|
8992
9276
|
}
|
|
8993
9277
|
return type;
|
|
@@ -8997,7 +9281,7 @@ var deriveRelationType = /* @__PURE__ */ __name((schema, columnId) => {
|
|
|
8997
9281
|
const field = schema.shape[columnId];
|
|
8998
9282
|
if (!field) return void 0;
|
|
8999
9283
|
const inner = unwrapZodType(field);
|
|
9000
|
-
return inner instanceof
|
|
9284
|
+
return inner instanceof import_zod54.ZodArray ? "oneToMany" : "manyToOne";
|
|
9001
9285
|
}, "deriveRelationType");
|
|
9002
9286
|
var deriveRelationTypeFromColumns = /* @__PURE__ */ __name((col, cols) => {
|
|
9003
9287
|
const base = col.column ?? col.id;
|