@ghentcdh/crouton-api 0.0.1-alpha.58 → 0.0.1-alpha.59

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 CHANGED
@@ -44,6 +44,8 @@ __export(index_exports, {
44
44
  ResourceHooksSchema: () => ResourceHooksSchema,
45
45
  SecurityGuardRegistry: () => SecurityGuardRegistry,
46
46
  WriteOpSchema: () => WriteOpSchema,
47
+ applyAfterFindAll: () => applyAfterFindAll,
48
+ applyBeforeFindAll: () => applyBeforeFindAll,
47
49
  buildFilterWhere: () => buildFilterWhere,
48
50
  buildViews: () => buildViews,
49
51
  decorateRow: () => decorateRow,
@@ -5011,7 +5013,9 @@ var ReadOpSchema = import_zod39.z.enum([
5011
5013
  var ResourceHooksSchema = import_zod39.z.object({
5012
5014
  beforeWrite: import_zod39.z.custom().optional(),
5013
5015
  afterWrite: import_zod39.z.custom().optional(),
5014
- afterRead: import_zod39.z.custom().optional()
5016
+ afterRead: import_zod39.z.custom().optional(),
5017
+ beforeFindAll: import_zod39.z.custom().optional(),
5018
+ afterFindAll: import_zod39.z.custom().optional()
5015
5019
  });
5016
5020
 
5017
5021
  // src/lib/crud/hooks/hooks.loader.ts
@@ -5069,6 +5073,14 @@ var prepareWrite = /* @__PURE__ */ __name(async (data, op, target, adapter, id,
5069
5073
  const hook = target.hooks?.beforeWrite;
5070
5074
  return hook ? hook(normalized, hookCtxWrite(adapter, op, id, request, parent)) : normalized;
5071
5075
  }, "prepareWrite");
5076
+ var applyBeforeFindAll = /* @__PURE__ */ __name(async (params, target, adapter, request, parent) => {
5077
+ const hook = target.hooks?.beforeFindAll;
5078
+ return hook ? hook(params, hookCtxRead(adapter, "findAll", request, parent)) : params;
5079
+ }, "applyBeforeFindAll");
5080
+ var applyAfterFindAll = /* @__PURE__ */ __name(async (rows, target, adapter, request, parent) => {
5081
+ const hook = target.hooks?.afterFindAll;
5082
+ return hook ? hook(rows, hookCtxRead(adapter, "findAll", request, parent)) : rows;
5083
+ }, "applyAfterFindAll");
5072
5084
  var postWrite = /* @__PURE__ */ __name(async (result, op, target, adapter, id, request, parent) => {
5073
5085
  const hook = target.hooks?.afterWrite;
5074
5086
  return hook ? hook(result, hookCtxWrite(adapter, op, id, request, parent)) : result;
@@ -5367,9 +5379,11 @@ function createCrudRepository(prisma, config, dataSources, configRegistry) {
5367
5379
  hooks: config.hooks,
5368
5380
  valueLabelColumns: vlCols
5369
5381
  };
5370
- return decorateRows(rows, "findAll", target, adapter2, request);
5382
+ const decorated = await decorateRows(rows, "findAll", target, adapter2, request);
5383
+ return applyAfterFindAll(decorated, config, adapter2, request);
5371
5384
  }, "mkDecorateFindAll");
5372
5385
  const decorateFindAll2 = mkDecorateFindAll(resolvedAdapter);
5386
+ const applyBefore = /* @__PURE__ */ __name((params, request) => applyBeforeFindAll(params, config, resolvedAdapter, request), "applyBefore");
5373
5387
  const decorateFindOne2 = /* @__PURE__ */ __name((row, request) => decorateRow(row, "findOne", config, resolvedAdapter, request), "decorateFindOne");
5374
5388
  const prepareData2 = /* @__PURE__ */ __name((data, op, id, request) => prepareWrite(data, op, config, resolvedAdapter, id, request), "prepareData");
5375
5389
  const postData2 = /* @__PURE__ */ __name((result, op, id, request) => postWrite(result, op, config, resolvedAdapter, id, request), "postData");
@@ -5401,9 +5415,10 @@ function createCrudRepository(prisma, config, dataSources, configRegistry) {
5401
5415
  return {
5402
5416
  prisma,
5403
5417
  findAllWithCount: /* @__PURE__ */ __name(async (params, request) => {
5404
- const { data, count } = await resolvedAdapter.findAll(adapterModelKey, params, {
5418
+ const effectiveParams = await applyBefore(params, request);
5419
+ const { data, count } = await resolvedAdapter.findAll(adapterModelKey, effectiveParams, {
5405
5420
  ...ctx(request, "findAll"),
5406
- offset: offsetOf(params)
5421
+ offset: offsetOf(effectiveParams)
5407
5422
  });
5408
5423
  return {
5409
5424
  data: await decorateFindAll2(data, request),
@@ -5411,9 +5426,10 @@ function createCrudRepository(prisma, config, dataSources, configRegistry) {
5411
5426
  };
5412
5427
  }, "findAllWithCount"),
5413
5428
  findAll: /* @__PURE__ */ __name(async (params, request) => {
5414
- const { data } = await resolvedAdapter.findAll(adapterModelKey, params, {
5429
+ const effectiveParams = await applyBefore(params, request);
5430
+ const { data } = await resolvedAdapter.findAll(adapterModelKey, effectiveParams, {
5415
5431
  ...ctx(request, "findAll"),
5416
- offset: offsetOf(params)
5432
+ offset: offsetOf(effectiveParams)
5417
5433
  });
5418
5434
  return decorateFindAll2(data, request);
5419
5435
  }, "findAll"),
@@ -5475,7 +5491,8 @@ function createCrudRepository(prisma, config, dataSources, configRegistry) {
5475
5491
  hooks: config.hooks,
5476
5492
  valueLabelColumns: vlCols
5477
5493
  };
5478
- return decorateRows(rows, "findAll", target, adapter, request);
5494
+ const decorated = await decorateRows(rows, "findAll", target, adapter, request);
5495
+ return applyAfterFindAll(decorated, config, adapter, request);
5479
5496
  }, "decorateFindAll");
5480
5497
  const decorateFindOne = /* @__PURE__ */ __name((row, request) => decorateRow(row, "findOne", config, adapter, request), "decorateFindOne");
5481
5498
  const prepareData = /* @__PURE__ */ __name((data, op, id, request) => prepareWrite(data, op, config, adapter, id, request), "prepareData");
@@ -5483,7 +5500,10 @@ function createCrudRepository(prisma, config, dataSources, configRegistry) {
5483
5500
  const toId = /* @__PURE__ */ __name((id) => (config.idType ?? "string") === "number" ? +id : String(id), "toId");
5484
5501
  return {
5485
5502
  prisma,
5486
- findAll: /* @__PURE__ */ __name(async (params, request) => decorateFindAll(await reader.findAll(params, request), request), "findAll"),
5503
+ findAll: /* @__PURE__ */ __name(async (params, request) => {
5504
+ const effectiveParams = await applyBeforeFindAll(params, config, adapter, request);
5505
+ return decorateFindAll(await reader.findAll(effectiveParams, request), request);
5506
+ }, "findAll"),
5487
5507
  count: reader.count.bind(reader),
5488
5508
  findOne: /* @__PURE__ */ __name(async (id, request) => decorateFindOne(await reader.findOne(id, request), request), "findOne"),
5489
5509
  findAllByParent: reader.findAllByParent.bind(reader),
@@ -7920,6 +7940,44 @@ var import_node_fs7 = require("fs");
7920
7940
  var import_promises7 = require("fs/promises");
7921
7941
  var import_node_module2 = require("module");
7922
7942
  var import_node_path15 = require("path");
7943
+ var loadDotenv = /* @__PURE__ */ __name((dir) => {
7944
+ try {
7945
+ const _require2 = (0, import_node_module2.createRequire)(importMetaUrl);
7946
+ const dotenv = _require2("dotenv");
7947
+ let d = dir;
7948
+ for (let i = 0; i < 6; i++) {
7949
+ if ((0, import_node_fs7.readdirSync)(d).includes(".env")) {
7950
+ dotenv.config({
7951
+ path: (0, import_node_path15.join)(d, ".env")
7952
+ });
7953
+ return;
7954
+ }
7955
+ const parent = (0, import_node_path15.dirname)(d);
7956
+ if (parent === d) break;
7957
+ d = parent;
7958
+ }
7959
+ } catch {
7960
+ }
7961
+ }, "loadDotenv");
7962
+ var resolveBin = /* @__PURE__ */ __name((name, cwd) => {
7963
+ let d = cwd;
7964
+ for (let i = 0; i < 6; i++) {
7965
+ const bin = (0, import_node_path15.join)(d, "node_modules", ".bin", name);
7966
+ if ((0, import_node_fs7.existsSync)(bin)) return [
7967
+ bin,
7968
+ []
7969
+ ];
7970
+ const parent = (0, import_node_path15.dirname)(d);
7971
+ if (parent === d) break;
7972
+ d = parent;
7973
+ }
7974
+ return [
7975
+ "npx",
7976
+ [
7977
+ name
7978
+ ]
7979
+ ];
7980
+ }, "resolveBin");
7923
7981
  var run = /* @__PURE__ */ __name((cmd, args, cwd) => new Promise((resolve7) => {
7924
7982
  const child = (0, import_node_child_process.spawn)(cmd, args, {
7925
7983
  cwd,
@@ -7956,8 +8014,9 @@ var backupSchema = /* @__PURE__ */ __name(async (schemaPath) => {
7956
8014
  return dest;
7957
8015
  }, "backupSchema");
7958
8016
  var prismaDbPull = /* @__PURE__ */ __name(async (cwd, prismaConfig) => {
7959
- const { code, stdout, stderr } = await run("npx", [
7960
- "prisma",
8017
+ const [bin, prefix] = resolveBin("prisma", cwd);
8018
+ const { code, stdout, stderr } = await run(bin, [
8019
+ ...prefix,
7961
8020
  "db",
7962
8021
  "pull",
7963
8022
  "--config",
@@ -7999,8 +8058,9 @@ ${stderr}`.trim()
7999
8058
  };
8000
8059
  }, "prismaCaseFormat");
8001
8060
  var prismaGenerate = /* @__PURE__ */ __name(async (cwd, prismaConfig) => {
8002
- const { code, stdout, stderr } = await run("npx", [
8003
- "prisma",
8061
+ const [bin, prefix] = resolveBin("prisma", cwd);
8062
+ const { code, stdout, stderr } = await run(bin, [
8063
+ ...prefix,
8004
8064
  "generate",
8005
8065
  "--config",
8006
8066
  prismaConfig
@@ -8041,6 +8101,7 @@ ${src}`, "utf-8");
8041
8101
  }, "fixZodImports");
8042
8102
  var pullAndGenerate = /* @__PURE__ */ __name(async (input) => {
8043
8103
  const { root, prismaConfigPath, schemaPath, zodOutputDir } = input;
8104
+ loadDotenv(root);
8044
8105
  const backupPath = await backupSchema(schemaPath);
8045
8106
  const dbPull = await prismaDbPull(root, prismaConfigPath);
8046
8107
  if (!dbPull.ok) {
@@ -10012,6 +10073,8 @@ var parseSchema = /* @__PURE__ */ __name((input, appConfig, view = "schemas") =>
10012
10073
  ResourceHooksSchema,
10013
10074
  SecurityGuardRegistry,
10014
10075
  WriteOpSchema,
10076
+ applyAfterFindAll,
10077
+ applyBeforeFindAll,
10015
10078
  buildFilterWhere,
10016
10079
  buildViews,
10017
10080
  decorateRow,