adminforth 2.25.0-test.9 → 2.26.0-next.1

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.
Files changed (52) hide show
  1. package/commands/bundle.js +2 -1
  2. package/commands/createApp/templates/Dockerfile.hbs +12 -0
  3. package/commands/createApp/templates/custom/package.json.hbs +12 -0
  4. package/commands/createApp/templates/package.json.hbs +12 -0
  5. package/commands/createApp/templates/pnpm_templates/pnpm-lock.yaml.hbs +8 -0
  6. package/commands/createApp/templates/readme.md.hbs +19 -0
  7. package/commands/createApp/utils.js +105 -24
  8. package/commands/createPlugin/utils.js +1 -1
  9. package/dist/auth.d.ts.map +1 -1
  10. package/dist/auth.js.map +1 -1
  11. package/dist/dataConnectors/baseConnector.d.ts +2 -2
  12. package/dist/dataConnectors/baseConnector.d.ts.map +1 -1
  13. package/dist/dataConnectors/baseConnector.js +1 -1
  14. package/dist/dataConnectors/baseConnector.js.map +1 -1
  15. package/dist/dataConnectors/mysql.d.ts +3 -2
  16. package/dist/dataConnectors/mysql.d.ts.map +1 -1
  17. package/dist/dataConnectors/mysql.js +26 -1
  18. package/dist/dataConnectors/mysql.js.map +1 -1
  19. package/dist/dataConnectors/postgres.d.ts +3 -2
  20. package/dist/dataConnectors/postgres.d.ts.map +1 -1
  21. package/dist/dataConnectors/postgres.js +25 -1
  22. package/dist/dataConnectors/postgres.js.map +1 -1
  23. package/dist/dataConnectors/sqlite.d.ts +3 -2
  24. package/dist/dataConnectors/sqlite.d.ts.map +1 -1
  25. package/dist/dataConnectors/sqlite.js +21 -1
  26. package/dist/dataConnectors/sqlite.js.map +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/modules/codeInjector.d.ts +10 -1
  32. package/dist/modules/codeInjector.d.ts.map +1 -1
  33. package/dist/modules/codeInjector.js +144 -24
  34. package/dist/modules/codeInjector.js.map +1 -1
  35. package/dist/modules/configValidator.d.ts.map +1 -1
  36. package/dist/modules/configValidator.js +8 -1
  37. package/dist/modules/configValidator.js.map +1 -1
  38. package/dist/modules/restApi.d.ts.map +1 -1
  39. package/dist/modules/restApi.js +5 -0
  40. package/dist/modules/restApi.js.map +1 -1
  41. package/dist/modules/utils.d.ts +7 -0
  42. package/dist/modules/utils.d.ts.map +1 -1
  43. package/dist/modules/utils.js +34 -0
  44. package/dist/modules/utils.js.map +1 -1
  45. package/dist/spa/src/afcl/Select.vue +5 -1
  46. package/dist/spa/src/types/Back.ts +2 -1
  47. package/dist/spa/vite.config.ts +14 -12
  48. package/dist/types/Back.d.ts +2 -1
  49. package/dist/types/Back.d.ts.map +1 -1
  50. package/package.json +3 -2
  51. package/scripts/postinstall.js +25 -0
  52. /package/commands/createApp/templates/{pnpm-workspace.yaml.hbs → pnpm_templates/pnpm-workspace.yaml.hbs} +0 -0
@@ -9,6 +9,7 @@ import yaml from 'yaml';
9
9
  import { ADMIN_FORTH_ABSOLUTE_PATH, getComponentNameFromPath, md5hash } from './utils.js';
10
10
  import { StylesGenerator } from './styleGenerator.js';
11
11
  import { afLogger } from '../modules/logger.js';
12
+ import { pathToFileURL } from 'url';
12
13
  let TMP_DIR;
13
14
  try {
14
15
  TMP_DIR = os.tmpdir();
@@ -77,7 +78,7 @@ class CodeInjector {
77
78
  const uniqueIcons = Array.from(new Set(icons));
78
79
  const collections = new Set(icons.map((icon) => icon.split(':')[0]));
79
80
  const iconPackageNames = Array.from(collections).map((collection) => `@iconify-prerendered/vue-${collection}`);
80
- const iconPackages = (await Promise.allSettled(iconPackageNames.map(async (pkg) => ({ pkg: await import(this.spaTmpPath() + '/node_modules/' + pkg), name: pkg }))));
81
+ const iconPackages = (await Promise.allSettled(iconPackageNames.map(async (pkg) => ({ pkg: await import(pathToFileURL(path.join(this.spaTmpPath(), 'node_modules', pkg)).href), name: pkg }))));
81
82
  const loadedIconPackages = iconPackages.filter(isFulfilled).map((res) => res.value).reduce((acc, { pkg, name }) => {
82
83
  acc[name.slice(`@iconify-prerendered/vue-`.length)] = pkg;
83
84
  return acc;
@@ -117,25 +118,56 @@ class CodeInjector {
117
118
  process.exit();
118
119
  }));
119
120
  }
120
- async runPnpmShell({ command, cwd, envOverrides = {} }) {
121
+ async doesUserHasPnpmLockFile(dir) {
122
+ const usersPackagePath = path.join(dir, 'package.json');
123
+ let packageContent = null;
124
+ try {
125
+ packageContent = JSON.parse(await fs.promises.readFile(usersPackagePath, 'utf-8'));
126
+ }
127
+ catch (e) {
128
+ // user package.json does not exist, user does not have custom components
129
+ }
130
+ if (packageContent) {
131
+ const lockPath = path.join(dir, 'pnpm-lock.yaml');
132
+ let lock = null;
133
+ try {
134
+ lock = yaml.parse(await fs.promises.readFile(lockPath, 'utf-8'));
135
+ return true;
136
+ }
137
+ catch (e) {
138
+ return false;
139
+ }
140
+ }
141
+ return false;
142
+ }
143
+ async runPackageManagerShell({ command, cwd, envOverrides = {} }) {
121
144
  const nodeBinary = process.execPath; // Path to the Node.js binary running this script
122
- // On Windows, pnpm is pnpm.cmd, on Unix systems it's pnpm
123
- const pnpmExecutable = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm';
124
- const pnpmPath = path.join(path.dirname(nodeBinary), pnpmExecutable); // Path to the pnpm executable
145
+ const doesUserHavePnpmLock = await this.doesUserHasPnpmLockFile(this.adminforth.config.customization.customComponentsDir);
146
+ // On Windows, npm/pnpm is npm/pnpm.cmd, on Unix systems it's npm/pnpm
147
+ let packageExecutable;
148
+ if (doesUserHavePnpmLock) {
149
+ afLogger.trace(`User has pnpm-lock.yaml, using pnpm for installing custom components`);
150
+ packageExecutable = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm';
151
+ }
152
+ else {
153
+ afLogger.trace(`User does not have pnpm-lock.yaml, falling back to npm for installing custom components`);
154
+ packageExecutable = process.platform === 'win32' ? 'npm.cmd' : 'npm';
155
+ }
156
+ const packagePath = path.join(path.dirname(nodeBinary), packageExecutable); // Path to the package executable
125
157
  const env = Object.assign(Object.assign({ VITE_ADMINFORTH_PUBLIC_PATH: this.adminforth.config.baseUrl, FORCE_COLOR: '1' }, process.env), envOverrides);
126
- afLogger.trace(`⚙️ exec: pnpm ${command}`);
127
- afLogger.trace(`🪲 pnpm ${command} cwd: ${cwd}`);
158
+ afLogger.trace(`⚙️ exec: ${packageExecutable} ${command}`);
159
+ afLogger.trace(`🪲 ${packageExecutable} ${command} cwd: ${cwd}`);
128
160
  let execCommand;
129
161
  if (process.platform === 'win32') {
130
162
  // Quote path if it contains spaces
131
- const quotedPnpmPath = pnpmPath.includes(' ') ? `"${pnpmPath}"` : pnpmPath;
132
- execCommand = `${quotedPnpmPath} ${command}`;
163
+ const quotedPackagePath = packagePath.includes(' ') ? `"${packagePath}"` : packagePath;
164
+ execCommand = `${quotedPackagePath} ${command}`;
133
165
  }
134
166
  else {
135
167
  // Quote paths that contain spaces (for Unix systems)
136
168
  const quotedNodeBinary = nodeBinary.includes(' ') ? `"${nodeBinary}"` : nodeBinary;
137
- const quotedPnpmPath = pnpmPath.includes(' ') ? `"${pnpmPath}"` : pnpmPath;
138
- execCommand = `${quotedNodeBinary} ${quotedPnpmPath} ${command}`;
169
+ const quotedPackagePath = packagePath.includes(' ') ? `"${packagePath}"` : packagePath;
170
+ execCommand = `${quotedNodeBinary} ${quotedPackagePath} ${command}`;
139
171
  }
140
172
  const execOptions = {
141
173
  cwd,
@@ -145,9 +177,9 @@ class CodeInjector {
145
177
  execOptions.shell = true;
146
178
  }
147
179
  const { stderr: err } = await execAsync(execCommand, execOptions);
148
- afLogger.trace(`pnpm ${command} done in`);
180
+ afLogger.trace(`${packageExecutable} ${command} done in`);
149
181
  if (err) {
150
- afLogger.trace(`🪲pnpm ${command} errors/warnings: ${err}`);
182
+ afLogger.trace(`🪲${packageExecutable} ${command} errors/warnings: ${err}`);
151
183
  }
152
184
  }
153
185
  async rmTmpDir() {
@@ -187,7 +219,7 @@ class CodeInjector {
187
219
  npmLock = JSON.parse(await fs.promises.readFile(npmLockPath, 'utf-8'));
188
220
  }
189
221
  catch (npmLockError) {
190
- throw new Error(`Custom pnpm-lock.yaml does not exist in ${dir}, but package.json does.
222
+ throw new Error(`Custom pnpm-lock.yaml or package-lock.json does not exist in ${dir}, but package.json does.
191
223
  We can't determine version of packages without pnpm-lock.yaml or package-lock.json. Please run pnpm install or npm install in ${dir}`);
192
224
  }
193
225
  lockHash = hashify(npmLock);
@@ -583,6 +615,7 @@ class CodeInjector {
583
615
  routerVueContent = routerVueContent.replace('/* IMPORTANT:ADMINFORTH ROUTES */', routes);
584
616
  await fs.promises.writeFile(routerVuePath, routerVueContent);
585
617
  /* hash checking */
618
+ // Here we use pnpm-lock.yaml, because this file will be anywat, even if user doesn't use it
586
619
  const spaPnpmLockPath = path.join(this.spaTmpPath(), 'pnpm-lock.yaml');
587
620
  const spaPnpmLock = yaml.parse(await fs.promises.readFile(spaPnpmLockPath, 'utf-8'));
588
621
  const spaLockHash = hashify(spaPnpmLock);
@@ -625,7 +658,8 @@ class CodeInjector {
625
658
  // ignore
626
659
  afLogger.trace(`🪲Hash file does not exist, proceeding with pnpm install, ${e}`);
627
660
  }
628
- await this.runPnpmShell({ command: 'install --frozen-lockfile', cwd: this.spaTmpPath(), envOverrides: {
661
+ // install --frozen-lockfile works for npm and pnpm
662
+ await this.runPackageManagerShell({ command: 'install --frozen-lockfile', cwd: this.spaTmpPath(), envOverrides: {
629
663
  NODE_ENV: 'development' // otherwise it will not install devDependencies which we still need, e.g for extract
630
664
  } });
631
665
  const allPacks = [
@@ -642,9 +676,9 @@ class CodeInjector {
642
676
  });
643
677
  const allPacksUnique = Array.from(new Set(allPacksFiltered));
644
678
  if (allPacks.length) {
645
- const pnpmInstallCommand = `install ${allPacksUnique.join(' ')}`;
646
- await this.runPnpmShell({
647
- command: pnpmInstallCommand, cwd: this.spaTmpPath(),
679
+ const packageManagerInstallCommand = `install ${allPacksUnique.join(' ')}`;
680
+ await this.runPackageManagerShell({
681
+ command: packageManagerInstallCommand, cwd: this.spaTmpPath(),
648
682
  envOverrides: {
649
683
  NODE_ENV: 'development' // otherwise it will not install devDependencies which we still need, e.g for extract
650
684
  }
@@ -780,6 +814,45 @@ class CodeInjector {
780
814
  }));
781
815
  return md5hash(hashes.join(''));
782
816
  }
817
+ // Compute a map of file relative paths -> md5 hash of file contents and return it.
818
+ // Skips directories/files that are ignored by computeSourcesHash (node_modules, dist, i18n files).
819
+ async computeSourcesHashMap(folderPath = this.spaTmpPath(), rootFolder = this.spaTmpPath(), map = {}) {
820
+ const files = await fs.promises.readdir(folderPath, { withFileTypes: true });
821
+ await Promise.all(files.map(async (file) => {
822
+ const filePath = path.join(folderPath, file.name);
823
+ // 🚫 Skip big/dynamic folders or files
824
+ if (file.name === 'node_modules' || file.name === 'dist' ||
825
+ file.name === 'i18n-messages.json' || file.name === 'i18n-empty.json' || file.name === 'hashes.json') {
826
+ return;
827
+ }
828
+ if (file.isDirectory()) {
829
+ return await this.computeSourcesHashMap(filePath, rootFolder, map);
830
+ }
831
+ else {
832
+ try {
833
+ const content = await fs.promises.readFile(filePath, 'utf-8');
834
+ const hash = md5hash(content);
835
+ // store relative path using forward slashes for portability
836
+ const rel = path.relative(rootFolder, filePath).split(path.sep).join('/');
837
+ map[rel] = hash;
838
+ }
839
+ catch (e) {
840
+ // If a file can't be read (binary or permission), log and continue
841
+ afLogger.trace(`🪲File ${filePath} read error: ${e}`);
842
+ return;
843
+ }
844
+ }
845
+ }));
846
+ return map;
847
+ }
848
+ // Convenience helper: compute per-file hashes and save them into hashes.json in the spa tmp dir
849
+ async saveSourcesHashesToFile(outputFileName = 'hashes.json', hashMap = {}) {
850
+ const root = this.spaTmpPath();
851
+ const outPath = path.join(root, outputFileName);
852
+ await fs.promises.writeFile(outPath, JSON.stringify(hashMap, null, 2), 'utf-8');
853
+ afLogger.trace(`🪲 Saved sources hashes to ${outPath}`);
854
+ return outPath;
855
+ }
783
856
  async bundleNow({ hotReload = false }) {
784
857
  afLogger.info(`${this.adminforth.formatAdminForth()} Bundling ${hotReload ? 'and listening for changes (🔥 Hotreload)' : ' (no hot reload)'}`);
785
858
  this.adminforth.runningHotReload = hotReload;
@@ -818,7 +891,7 @@ class CodeInjector {
818
891
  await fs.promises.mkdir(serveDir, { recursive: true });
819
892
  }
820
893
  if (!skipExtract) {
821
- await this.runPnpmShell({ command: 'run i18n:extract', cwd });
894
+ await this.runPackageManagerShell({ command: 'run i18n:extract', cwd });
822
895
  // create serveDir if not exists
823
896
  await fs.promises.mkdir(serveDir, { recursive: true });
824
897
  // copy i18n messages to serve dir
@@ -831,12 +904,58 @@ class CodeInjector {
831
904
  }
832
905
  if (!hotReload) {
833
906
  if (!skipBuild) {
907
+ console.log(`🪲 Build cache miss, building SPA...`);
908
+ let oldHashForFiles = null;
909
+ try {
910
+ oldHashForFiles = await fs.promises.readFile(path.join(this.spaTmpPath(), 'hashes.json'), 'utf-8');
911
+ }
912
+ catch (e) {
913
+ // ignore if file doesn't exist, it is only for debugging
914
+ console.log(`Build cache not found, building now (downtime) please consider running npx adminforth bundle at build time to avoid downtimes at runtime`);
915
+ }
916
+ const root = this.spaTmpPath();
917
+ const hashMap = await this.computeSourcesHashMap(root, root, {});
918
+ if (oldHashForFiles) {
919
+ const parsedOldHashForFiles = JSON.parse(oldHashForFiles);
920
+ const logsToDisplay = [];
921
+ logsToDisplay.push(`Build cache exists but is outdated:`);
922
+ for (const [file, hash] of Object.entries(hashMap)) {
923
+ if (!parsedOldHashForFiles[file]) {
924
+ logsToDisplay.push(` - file ${file} - does not exist in cache but exists in runtime`);
925
+ }
926
+ else if (parsedOldHashForFiles[file] !== hash) {
927
+ logsToDisplay.push(` - file ${file} - content in cache is different then in runtime`);
928
+ }
929
+ }
930
+ /**
931
+ * Currently we can't detect, if file was removed,
932
+ * because we can only add files to the tpm folder but not remove them,
933
+ * so if file existed before and now doesn't exist, we will not detect it
934
+ */
935
+ // for(const [file, hash] of Object.entries(parsedOldHashForFiles)) {
936
+ // console.log(`checking file ${file} in old hash: ${hash}`);
937
+ // console.log(`checking file ${file} in new hash: ${hashMap[file]}`);
938
+ // if (!hashMap[file]) {
939
+ // logsToDisplay.push(` - file ${file} - exists in cache but does not exist in runtime`);
940
+ // }
941
+ // }
942
+ logsToDisplay.push(`If you are running in production now, then the cache loss is a downtime issue.`);
943
+ logsToDisplay.push(`If you have npx adminforth bundle in build time, then this issue might be caused by conditional instantiation of plugins:`);
944
+ logsToDisplay.push(`Please avoid constructions like (process.env.SOME_KEY ? new Plugin(...) ) because if you will miss SOME_KEY in build time build cache and functionality fails.`);
945
+ if (logsToDisplay.length > 4) {
946
+ for (const log of logsToDisplay) {
947
+ console.log(log);
948
+ }
949
+ }
950
+ }
834
951
  // TODO probably add option to build with tsh check (plain 'build')
835
- await this.runPnpmShell({ command: 'run build-only', cwd });
952
+ await this.runPackageManagerShell({ command: 'run build-only', cwd });
836
953
  // coy dist to serveDir
837
954
  await fsExtra.copy(path.join(cwd, 'dist'), serveDir, { recursive: true });
838
955
  // save hash
839
956
  await fs.promises.writeFile(path.join(serveDir, '.adminforth_build_hash'), sourcesHash);
957
+ // save sources hashes to file for later debugging if needed
958
+ await this.saveSourcesHashesToFile('hashes.json', hashMap);
840
959
  }
841
960
  else {
842
961
  afLogger.info(`Skipping AdminForth SPA bundling - already completed for the current sources.`);
@@ -844,19 +963,20 @@ class CodeInjector {
844
963
  }
845
964
  else {
846
965
  const command = 'run dev';
847
- afLogger.info(`⚙️ spawn: pnpm ${command}...`);
966
+ const usersPackageManager = await this.doesUserHasPnpmLockFile(this.adminforth.config.customization.customComponentsDir) ? 'pnpm' : 'npm';
967
+ afLogger.info(`⚙️ spawn: ${usersPackageManager} ${command}...`);
848
968
  if (process.env.VITE_ADMINFORTH_PUBLIC_PATH) {
849
969
  afLogger.info(`⚠️ Your VITE_ADMINFORTH_PUBLIC_PATH: ${process.env.VITE_ADMINFORTH_PUBLIC_PATH} has no effect`);
850
970
  }
851
971
  const env = Object.assign({ VITE_ADMINFORTH_PUBLIC_PATH: this.adminforth.config.baseUrl, FORCE_COLOR: '1' }, process.env);
852
972
  const nodeBinary = process.execPath;
853
- const pnpmPath = path.join(path.dirname(nodeBinary), 'pnpm');
973
+ const packageManagerPath = path.join(path.dirname(nodeBinary), usersPackageManager);
854
974
  let devServer;
855
975
  if (process.platform === 'win32') {
856
- devServer = spawn('pnpm', command.split(' '), { cwd, env, shell: true });
976
+ devServer = spawn(usersPackageManager, command.split(' '), { cwd, env, shell: true });
857
977
  }
858
978
  else {
859
- devServer = spawn(`${nodeBinary}`, [`${pnpmPath}`, ...command.split(' ')], { cwd, env });
979
+ devServer = spawn(`${nodeBinary}`, [`${packageManagerPath}`, ...command.split(' ')], { cwd, env });
860
980
  }
861
981
  devServer.stdout.on('data', (data) => {
862
982
  if (data.includes('➜')) {
@@ -1 +1 @@
1
- {"version":3,"file":"codeInjector.js","sourceRoot":"","sources":["../../modules/codeInjector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeInjector.js","sourceRoot":"","sources":["../../modules/codeInjector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../modules/configValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,WAAW,EAAE,gBAAgB,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,6BAA6B,EAE7B,cAAc,EACd,MAAM,EAIP,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAEL,KAAK,kCAAkC,EAEvC,8BAA8B,EAI/B,MAAM,oBAAoB,CAAC;AAM5B,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,gBAAgB;IAQlD,OAAO,CAAC,UAAU;IAAe,OAAO,CAAC,WAAW;IANhE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAsD;IAClG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAsE;IACnH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoK;gBAE3L,UAAU,EAAE,WAAW,EAAU,WAAW,EAAE,qBAAqB;IAKvF,2BAA2B,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,KAAA;IAe5C,8BAA8B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,kCAAkC,CAAC;IAYvI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAUtD,iBAAiB,CAAC,SAAS,EAAE,8BAA8B,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,kCAAkC;IA6BvH,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,6BAA6B;IAqGlF,kCAAkC,CAAC,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc;IAwBvG,+BAA+B,CAAC,QAAQ,EAAE,uBAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE;IAiF9I,0BAA0B,CAAC,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM;IAmClJ,mBAAmB,CAAC,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAkChH,iCAAiC,CAAC,QAAQ,EAAE,uBAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE;IA8C/H,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE;IAiiBzF,8BAA8B;IAK9B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,kBAAkB;IAQ1B,cAAc;IA6Ld,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB;CAuBtD"}
1
+ {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../modules/configValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,WAAW,EAAE,gBAAgB,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,6BAA6B,EAE7B,cAAc,EACd,MAAM,EAIP,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAEL,KAAK,kCAAkC,EAEvC,8BAA8B,EAI/B,MAAM,oBAAoB,CAAC;AAM5B,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,gBAAgB;IAQlD,OAAO,CAAC,UAAU;IAAe,OAAO,CAAC,WAAW;IANhE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAsD;IAClG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAsE;IACnH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoK;gBAE3L,UAAU,EAAE,WAAW,EAAU,WAAW,EAAE,qBAAqB;IAKvF,2BAA2B,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,KAAA;IAe5C,8BAA8B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,kCAAkC,CAAC;IAYvI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAUtD,iBAAiB,CAAC,SAAS,EAAE,8BAA8B,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,kCAAkC;IA6BvH,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,6BAA6B;IAqGlF,kCAAkC,CAAC,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc;IAwBvG,+BAA+B,CAAC,QAAQ,EAAE,uBAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE;IAkF9I,0BAA0B,CAAC,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM;IAmClJ,mBAAmB,CAAC,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAkChH,iCAAiC,CAAC,QAAQ,EAAE,uBAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE;IA8C/H,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE;IAuiBzF,8BAA8B;IAK9B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,kBAAkB;IAQ1B,cAAc;IA6Ld,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB;CAuBtD"}
@@ -3,6 +3,7 @@ import path from 'path';
3
3
  import { guessLabelFromName, md5hash, suggestIfTypo, slugifyString } from './utils.js';
4
4
  import { AdminForthSortDirections, AllowedActionsEnum, AdminForthResourcePages, AdminForthDataTypes, } from "../types/Common.js";
5
5
  import { afLogger } from "./logger.js";
6
+ import { cascadeChildrenDelete } from './utils.js';
6
7
  class ConfigValidator {
7
8
  constructor(adminforth, inputConfig) {
8
9
  this.adminforth = adminforth;
@@ -214,8 +215,8 @@ class ConfigValidator {
214
215
  if (error) {
215
216
  return;
216
217
  }
218
+ await cascadeChildrenDelete(res, recordId, { adminUser, response }, this.adminforth);
217
219
  await connector.deleteRecord({ resource: res, recordId });
218
- // call afterDelete hook
219
220
  await Promise.all((res.hooks.delete.afterSave).map(async (hook) => {
220
221
  await hook({
221
222
  resource: res,
@@ -499,6 +500,12 @@ class ConfigValidator {
499
500
  }
500
501
  }
501
502
  if (col.foreignResource) {
503
+ if (col.foreignResource.onDelete && (col.foreignResource.onDelete !== 'cascade' && col.foreignResource.onDelete !== 'setNull')) {
504
+ errors.push(`Resource "${res.resourceId}" column "${col.name}" has wrong delete strategy, you can use 'setNull' or 'cascade'`);
505
+ }
506
+ if (col.foreignResource.onDelete === 'setNull' && col.required) {
507
+ errors.push(`Resource "${res.resourceId}" column "${col.name}" cannot use onDelete 'setNull' because column is required (non-nullable).`);
508
+ }
502
509
  if (!col.foreignResource.resourceId) {
503
510
  // resourceId is absent or empty
504
511
  if (!col.foreignResource.polymorphicResources && !col.foreignResource.polymorphicOn) {