@ghentcdh/create-crouton 0.0.1-alpha.51 → 0.0.1-alpha.52

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.js CHANGED
@@ -18820,83 +18820,42 @@ var ResponseSchema = external_exports.object({
18820
18820
  request: ResponseRequestSchema
18821
18821
  });
18822
18822
 
18823
- // ../crouton-core/src/lib/data-source/DataSourceSchema.ts
18824
- var DataSourceShape = zod_default.object({
18825
- /** Datasource name (folder + `name` in data-source.json). */
18826
- name: zod_default.string(),
18827
- /**
18828
- * Env var holding the connection URL. Required for Prisma adapters; optional
18829
- * for custom adapters whose connection config may differ (secrets file, SDK
18830
- * key, etc.).
18831
- */
18832
- urlEnv: zod_default.string().optional(),
18833
- /** Import path for this datasource's generated Zod types (for resource `schema.ts`). */
18834
- generatedTypesImport: zod_default.string().optional(),
18835
- /** Datasource type tag. Default `postgres`. */
18836
- type: zod_default.string().default("postgres"),
18837
- /** Mark this as the default datasource. Default `false`. */
18838
- default: zod_default.boolean().default(false),
18839
- /**
18840
- * Adapter kind. `"prisma"` (default) expects `index.ts` to default-export a
18841
- * `PrismaClient`; `"custom"` expects it to default-export a `DataSourceAdapter`.
18842
- */
18843
- adapter: zod_default.enum(["prisma", "custom"]).default("prisma"),
18844
- /** Prisma schema path, relative to project root. Default `prisma/<name>/schema.prisma`. */
18845
- prismaSchema: zod_default.string().optional(),
18846
- /** Prisma config path, relative to project root. Default `prisma/<name>/prisma.config.ts`. */
18847
- prismaConfig: zod_default.string().optional(),
18848
- /** zod-prisma-types output dir, relative to project root. Default `generated/<name>/src`. */
18849
- zodOutput: zod_default.string().optional(),
18850
- /** Prisma client output dir, relative to project root. Default `generated/<name>/client`. */
18851
- clientOutput: zod_default.string().optional()
18823
+ // ../crouton-core/src/lib/compile/action.types.ts
18824
+ var ActionMetadataSchema = external_exports.object({
18825
+ id: external_exports.string(),
18826
+ label: external_exports.string().optional(),
18827
+ icon: external_exports.string().optional(),
18828
+ tooltip: external_exports.string().optional(),
18829
+ condition: external_exports.custom().optional()
18852
18830
  });
18853
- var transformDataSource = (data) => {
18854
- const name = data.name ?? "name";
18855
- return {
18856
- ...data,
18857
- generatedTypesImport: data.generatedTypesImport ?? `@your-scope/generated/${name}`,
18858
- prismaSchema: data.prismaSchema ?? `prisma/${name}/schema.prisma`,
18859
- prismaConfig: data.prismaConfig ?? `prisma/${name}/prisma.config.ts`,
18860
- zodOutput: data.zodOutput ?? `generated/${name}/src`,
18861
- clientOutput: data.clientOutput ?? `generated/${name}/client`
18862
- };
18863
- };
18864
- var DataSourceSchema = DataSourceShape.transform(transformDataSource);
18865
-
18866
- // ../crouton-core/src/lib/data-source/Security.schema.ts
18867
- var SecuritySchema = external_exports.union([
18868
- external_exports.object({ public: external_exports.literal(true) }),
18869
- external_exports.object({ guard: external_exports.union([external_exports.string(), external_exports.array(external_exports.string()).min(1)]) })
18870
- ]);
18871
-
18872
- // ../crouton-core/src/lib/data-source/Operations.schema.ts
18873
- var OpEntry = external_exports.union([
18874
- external_exports.boolean(),
18875
- external_exports.object({ security: SecuritySchema.optional() })
18831
+ var ResourceLinkActionSchema = ActionMetadataSchema.extend({
18832
+ type: external_exports.literal("link"),
18833
+ href: external_exports.string()
18834
+ });
18835
+ var ResourceRowProcedureActionSchema = ActionMetadataSchema.extend({
18836
+ type: external_exports.literal("procedure").optional(),
18837
+ method: external_exports.string().optional(),
18838
+ data: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
18839
+ procedure: external_exports.custom(
18840
+ (v2) => typeof v2 === "function"
18841
+ )
18842
+ });
18843
+ var ResourceTableProcedureActionSchema = ActionMetadataSchema.extend({
18844
+ type: external_exports.literal("procedure").optional(),
18845
+ method: external_exports.string().optional(),
18846
+ data: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
18847
+ procedure: external_exports.custom(
18848
+ (v2) => typeof v2 === "function"
18849
+ )
18850
+ });
18851
+ var ResourceRowActionSchema = external_exports.union([
18852
+ ResourceRowProcedureActionSchema,
18853
+ ResourceLinkActionSchema
18876
18854
  ]);
18877
- var BoolOrUpsertSchema = external_exports.union([
18878
- external_exports.boolean(),
18879
- external_exports.object({
18880
- upsertOn: external_exports.union([external_exports.string(), external_exports.array(external_exports.string())]),
18881
- security: SecuritySchema.optional()
18882
- })
18855
+ var ResourceTableActionSchema = external_exports.union([
18856
+ ResourceTableProcedureActionSchema,
18857
+ ResourceLinkActionSchema
18883
18858
  ]);
18884
- var JsonOperationsSchema = external_exports.object({
18885
- findAll: OpEntry.default(true),
18886
- // default: true — only explicit `false` disables it
18887
- findOne: OpEntry.default(true),
18888
- // default: true
18889
- create: OpEntry.default(true),
18890
- // default: true
18891
- update: OpEntry.default(true),
18892
- // default: true
18893
- patch: OpEntry.default(true),
18894
- // default: true
18895
- upsert: BoolOrUpsertSchema.default(false),
18896
- // default: disabled; `true` throws at load time — must be `{ upsertOn }`
18897
- delete: OpEntry.default(true)
18898
- // default: true
18899
- });
18900
18859
 
18901
18860
  // ../crouton-core/src/lib/resource/FieldInput.schema.ts
18902
18861
  var RelationType = external_exports.enum([
@@ -19328,6 +19287,41 @@ var JsonIncludeEntrySchema = external_exports.lazy(
19328
19287
  var BASELINE_RESOURCE_VERSION = 1;
19329
19288
  var CURRENT_RESOURCE_VERSION = 1;
19330
19289
 
19290
+ // ../crouton-core/src/lib/data-source/Security.schema.ts
19291
+ var SecuritySchema = external_exports.union([
19292
+ external_exports.object({ public: external_exports.literal(true) }),
19293
+ external_exports.object({ guard: external_exports.union([external_exports.string(), external_exports.array(external_exports.string()).min(1)]) })
19294
+ ]);
19295
+
19296
+ // ../crouton-core/src/lib/data-source/Operations.schema.ts
19297
+ var OpEntry = external_exports.union([
19298
+ external_exports.boolean(),
19299
+ external_exports.object({ security: SecuritySchema.optional() })
19300
+ ]);
19301
+ var BoolOrUpsertSchema = external_exports.union([
19302
+ external_exports.boolean(),
19303
+ external_exports.object({
19304
+ upsertOn: external_exports.union([external_exports.string(), external_exports.array(external_exports.string())]),
19305
+ security: SecuritySchema.optional()
19306
+ })
19307
+ ]);
19308
+ var JsonOperationsSchema = external_exports.object({
19309
+ findAll: OpEntry.default(true),
19310
+ // default: true — only explicit `false` disables it
19311
+ findOne: OpEntry.default(true),
19312
+ // default: true
19313
+ create: OpEntry.default(true),
19314
+ // default: true
19315
+ update: OpEntry.default(true),
19316
+ // default: true
19317
+ patch: OpEntry.default(true),
19318
+ // default: true
19319
+ upsert: BoolOrUpsertSchema.default(false),
19320
+ // default: disabled; `true` throws at load time — must be `{ upsertOn }`
19321
+ delete: OpEntry.default(true)
19322
+ // default: true
19323
+ });
19324
+
19331
19325
  // ../crouton-core/src/lib/resource/ResourceJson.schema.ts
19332
19326
  var JsonColumnsMapSchema = external_exports.record(
19333
19327
  external_exports.string(),
@@ -19422,12 +19416,7 @@ var ResourceJsonShape = external_exports.object({
19422
19416
  * `{ "relation": "text_author", "include": ["author"] }` →
19423
19417
  * `include: { text_author: { include: { author: true } } }`
19424
19418
  */
19425
- include: external_exports.array(JsonIncludeEntrySchema).default([]),
19426
- /**
19427
- * Normalized extension blocks lifted from registered top-level keys.
19428
- * Authors never write this key directly — the transform fills it.
19429
- */
19430
- extensions: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
19419
+ include: external_exports.array(JsonIncludeEntrySchema).default([])
19431
19420
  });
19432
19421
  var refineByKind = (obj, ctx) => {
19433
19422
  if (obj.kind === "custom") {
@@ -19501,28 +19490,189 @@ var buildResourceJsonSchema = () => {
19501
19490
  const title = obj.title ?? labelFromId(obj.name);
19502
19491
  const schemaVersion = obj.schemaVersion ?? BASELINE_RESOURCE_VERSION;
19503
19492
  const defaultOps = obj.kind === "custom" ? JsonOperationsSchema.parse({ findAll: false, findOne: false, create: false, update: false, patch: false, delete: false }) : JsonOperationsSchema.parse({});
19504
- const raw = obj;
19505
- const extensions = {};
19506
- for (const name of ext.keys()) {
19507
- if (raw[name] !== void 0) {
19508
- extensions[name] = raw[name];
19509
- delete raw[name];
19510
- }
19511
- }
19512
19493
  return {
19513
19494
  title,
19514
19495
  ...obj,
19496
+ id: obj.id ?? obj.name,
19515
19497
  route: obj.route ?? obj.id ?? obj.name ?? "",
19516
19498
  schemaVersion,
19517
19499
  columns: normalizeColumns(obj.columns),
19518
- operations: obj.operations ?? defaultOps,
19519
- ...Object.keys(extensions).length && { extensions }
19500
+ operations: obj.operations ?? defaultOps
19520
19501
  };
19521
19502
  })
19522
19503
  );
19523
19504
  };
19524
19505
  var ResourceJsonSchema = buildResourceJsonSchema();
19525
19506
 
19507
+ // ../crouton-core/src/lib/view/view.schema.ts
19508
+ var ViewColumnConfigSchema = external_exports.object({
19509
+ id: external_exports.string(),
19510
+ label: external_exports.string().optional(),
19511
+ sortable: external_exports.boolean().optional(),
19512
+ searchable: external_exports.boolean().optional(),
19513
+ fieldInput: FieldInputSchema.optional()
19514
+ });
19515
+ var ViewConfigSchema = external_exports.object({
19516
+ // TODO why we have both?
19517
+ json_schema: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19518
+ ui_schema: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19519
+ // TODO why we have both?
19520
+ ui: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19521
+ data: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19522
+ columns: external_exports.array(ViewColumnConfigSchema),
19523
+ defaultSort: external_exports.string().optional()
19524
+ });
19525
+ var viewDefList = ["table", "view", "form"];
19526
+ var ViewDefEnum = external_exports.enum(viewDefList);
19527
+
19528
+ // ../crouton-core/src/lib/compile/enum-registry.ts
19529
+ var EnumEntrySchema = external_exports.object({
19530
+ value: external_exports.unknown(),
19531
+ label: external_exports.string()
19532
+ });
19533
+ var EnumRegistrySchema = external_exports.record(external_exports.string(), external_exports.array(EnumEntrySchema)).default({});
19534
+
19535
+ // ../crouton-core/src/lib/data-source/DataSourceSchema.ts
19536
+ var DataSourceShape = zod_default.object({
19537
+ /** Datasource name (folder + `name` in data-source.json). */
19538
+ name: zod_default.string(),
19539
+ /**
19540
+ * Env var holding the connection URL. Required for Prisma adapters; optional
19541
+ * for custom adapters whose connection config may differ (secrets file, SDK
19542
+ * key, etc.).
19543
+ */
19544
+ urlEnv: zod_default.string().optional(),
19545
+ /** Import path for this datasource's generated Zod types (for resource `schema.ts`). */
19546
+ generatedTypesImport: zod_default.string().optional(),
19547
+ /** Datasource type tag. Default `postgres`. */
19548
+ type: zod_default.string().default("postgres"),
19549
+ /** Mark this as the default datasource. Default `false`. */
19550
+ default: zod_default.boolean().default(false),
19551
+ /**
19552
+ * Adapter kind. `"prisma"` (default) expects `index.ts` to default-export a
19553
+ * `PrismaClient`; `"custom"` expects it to default-export a `DataSourceAdapter`.
19554
+ */
19555
+ adapter: zod_default.enum(["prisma", "custom"]).default("prisma"),
19556
+ /** Prisma schema path, relative to project root. Default `prisma/<name>/schema.prisma`. */
19557
+ prismaSchema: zod_default.string().optional(),
19558
+ /** Prisma config path, relative to project root. Default `prisma/<name>/prisma.config.ts`. */
19559
+ prismaConfig: zod_default.string().optional(),
19560
+ /** zod-prisma-types output dir, relative to project root. Default `generated/<name>/src`. */
19561
+ zodOutput: zod_default.string().optional(),
19562
+ /** Prisma client output dir, relative to project root. Default `generated/<name>/client`. */
19563
+ clientOutput: zod_default.string().optional()
19564
+ });
19565
+ var transformDataSource = (data) => {
19566
+ const name = data.name ?? "name";
19567
+ return {
19568
+ ...data,
19569
+ generatedTypesImport: data.generatedTypesImport ?? `@your-scope/generated/${name}`,
19570
+ prismaSchema: data.prismaSchema ?? `prisma/${name}/schema.prisma`,
19571
+ prismaConfig: data.prismaConfig ?? `prisma/${name}/prisma.config.ts`,
19572
+ zodOutput: data.zodOutput ?? `generated/${name}/src`,
19573
+ clientOutput: data.clientOutput ?? `generated/${name}/client`
19574
+ };
19575
+ };
19576
+ var DataSourceSchema = DataSourceShape.transform(transformDataSource);
19577
+
19578
+ // ../crouton-core/src/lib/compile/value-label-column.ts
19579
+ var ValueSchema = external_exports.object({
19580
+ value: external_exports.unknown(),
19581
+ label: external_exports.string()
19582
+ });
19583
+ var ValueLabelColumnSchema = external_exports.object({
19584
+ field: external_exports.string(),
19585
+ values: external_exports.array(ValueSchema).default([]),
19586
+ enumName: external_exports.string().optional()
19587
+ });
19588
+
19589
+ // ../crouton-core/src/lib/compile/compiled-sub-resource.schema.ts
19590
+ var CompiledSubResourceConfigSchema = external_exports.object({
19591
+ column: external_exports.string(),
19592
+ relation: external_exports.string(),
19593
+ childRoute: external_exports.string(),
19594
+ childKind: external_exports.enum(["prisma", "custom"]).default("prisma"),
19595
+ childDir: external_exports.string().optional(),
19596
+ childModel: external_exports.string(),
19597
+ foreignKey: external_exports.string(),
19598
+ name: external_exports.string().optional(),
19599
+ title: external_exports.string().optional(),
19600
+ idField: external_exports.string().optional(),
19601
+ idType: external_exports.enum(["string", "number"]).optional(),
19602
+ views: external_exports.record(external_exports.string(), ViewConfigSchema).optional(),
19603
+ operations: JsonOperationsSchema,
19604
+ actions: external_exports.array(JsonActionSchema).optional(),
19605
+ modalSize: external_exports.enum(["xs", "sm", "lg", "xl"]).optional(),
19606
+ include: external_exports.array(JsonIncludeEntrySchema).optional(),
19607
+ calculatedColumns: external_exports.array(CalculatedColumnSchema).optional(),
19608
+ includeInFindOne: external_exports.boolean().optional(),
19609
+ hiddenInTable: external_exports.boolean().optional(),
19610
+ findOneOrderBy: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19611
+ valueLabelColumns: external_exports.array(ValueLabelColumnSchema).optional(),
19612
+ relationType: external_exports.enum(["oneToMany", "manyToOne"]).optional()
19613
+ });
19614
+
19615
+ // ../crouton-core/src/lib/compile/schema-input.ts
19616
+ var JsonSchemaInputSchema = external_exports.object({
19617
+ type: external_exports.literal("object"),
19618
+ properties: external_exports.record(external_exports.string(), external_exports.unknown()),
19619
+ required: external_exports.array(external_exports.string()).optional(),
19620
+ additionalProperties: external_exports.boolean().optional()
19621
+ });
19622
+ var SchemaInputSchema = external_exports.union([
19623
+ external_exports.custom((val) => val instanceof ZodObject),
19624
+ JsonSchemaInputSchema
19625
+ ]);
19626
+
19627
+ // ../crouton-core/src/lib/compile/definition.schema.ts
19628
+ var OperationDefSchema = external_exports.union([
19629
+ external_exports.literal(true),
19630
+ external_exports.object({
19631
+ schema: SchemaInputSchema.optional(),
19632
+ security: SecuritySchema.optional()
19633
+ })
19634
+ ]);
19635
+ var UpsertOperationDefSchema = external_exports.object({
19636
+ schema: SchemaInputSchema.optional(),
19637
+ upsertOn: external_exports.union([external_exports.string(), external_exports.array(external_exports.string())]),
19638
+ security: SecuritySchema.optional()
19639
+ });
19640
+ var ResourceDefinitionSchema = external_exports.object({
19641
+ findAll: OperationDefSchema.optional(),
19642
+ findOne: OperationDefSchema.optional(),
19643
+ create: OperationDefSchema.optional(),
19644
+ update: OperationDefSchema.optional(),
19645
+ patch: OperationDefSchema.optional(),
19646
+ upsert: UpsertOperationDefSchema.optional(),
19647
+ delete: OperationDefSchema.optional()
19648
+ });
19649
+ var DefinitionCallbackSchema = external_exports.function({
19650
+ input: [],
19651
+ output: ResourceDefinitionSchema
19652
+ });
19653
+ var DefinitionSchema = external_exports.union([
19654
+ ResourceDefinitionSchema,
19655
+ DefinitionCallbackSchema
19656
+ ]);
19657
+
19658
+ // ../crouton-core/src/lib/compile/lookup.schema.ts
19659
+ var LookupSchema = external_exports.object({
19660
+ key: external_exports.string(),
19661
+ label: external_exports.string().optional()
19662
+ });
19663
+
19664
+ // ../crouton-core/src/lib/compile/compiled-resource.schema.ts
19665
+ var CompiledResourceSchema = ResourceJsonShape.extend({
19666
+ route: external_exports.string(),
19667
+ valueLabelColumns: external_exports.array(ValueLabelColumnSchema).default([]),
19668
+ subResources: external_exports.lazy(() => external_exports.array(CompiledSubResourceConfigSchema)).default([]),
19669
+ lookup: LookupSchema.optional(),
19670
+ views: external_exports.record(external_exports.string(), ViewConfigSchema),
19671
+ definition: DefinitionSchema,
19672
+ idField: external_exports.string(),
19673
+ idType: external_exports.enum(["string", "number"]).default("string")
19674
+ });
19675
+
19526
19676
  // ../crouton-core/src/lib/config/CroutonConfig.schema.ts
19527
19677
  var RulesetSchema = external_exports.object({
19528
19678
  hideIdInTable: external_exports.boolean().default(true),
@@ -19581,27 +19731,6 @@ var CroutonConfigSchema = external_exports.object({
19581
19731
  i18n: I18nConfigSchema.optional()
19582
19732
  });
19583
19733
 
19584
- // ../crouton-core/src/lib/view/view.schema.ts
19585
- var ViewColumnConfigSchema = external_exports.object({
19586
- id: external_exports.string(),
19587
- label: external_exports.string().optional(),
19588
- sortable: external_exports.boolean().optional(),
19589
- searchable: external_exports.boolean().optional(),
19590
- fieldInput: FieldInputSchema.optional()
19591
- });
19592
- var ViewConfigSchema = external_exports.object({
19593
- // TODO why we have both?
19594
- json_schema: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19595
- ui_schema: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19596
- // TODO why we have both?
19597
- ui: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19598
- data: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
19599
- columns: external_exports.array(ViewColumnConfigSchema),
19600
- defaultSort: external_exports.string().optional()
19601
- });
19602
- var viewDefList = ["table", "view", "form"];
19603
- var ViewDefEnum = external_exports.enum(viewDefList);
19604
-
19605
19734
  // ../crouton-core/src/lib/i18n/Translations.schema.ts
19606
19735
  var NestedStringRecord = external_exports.lazy(
19607
19736
  () => external_exports.record(external_exports.string(), external_exports.union([external_exports.string(), NestedStringRecord]))
@@ -38802,7 +38931,7 @@ var runCreate = async (name, opts) => {
38802
38931
  const tokens = {
38803
38932
  name,
38804
38933
  Name: toTitle(name),
38805
- version: true ? "0.0.1-alpha.51" : "latest",
38934
+ version: true ? "0.0.1-alpha.52" : "latest",
38806
38935
  year: String((/* @__PURE__ */ new Date()).getFullYear()),
38807
38936
  pmRun: pm === "npm" ? "npm run" : pm,
38808
38937
  urlEnv: "DATABASE_URL",