@inizioevoke/evosynth 2.3.0 → 2.3.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.
@@ -7,11 +7,28 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
7
7
  return path;
8
8
  };
9
9
  import { readdir } from 'node:fs/promises';
10
+ import { createInterface } from 'node:readline';
10
11
  import { join, extname } from 'node:path';
11
12
  import { pathToFileURL } from 'node:url';
12
13
  import { register } from 'tsx/esm/api';
13
14
  import { runWebStaticServerlessApp } from './web-static-serverless.js';
15
+ function confirm(question) {
16
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
17
+ return new Promise((resolve) => {
18
+ rl.question(question, (answer) => {
19
+ rl.close();
20
+ resolve(answer.trim().toLowerCase() === 'y' || answer.trim().toLowerCase() === 'yes');
21
+ });
22
+ });
23
+ }
14
24
  export async function evosynth(cmd, env, props) {
25
+ if (cmd === 'destroy') {
26
+ const confirmed = await confirm(`Are you sure you want to destroy the "${env}" environment? (y/N) `);
27
+ if (!confirmed) {
28
+ console.log('Destroy cancelled.');
29
+ process.exit(0);
30
+ }
31
+ }
15
32
  const files = await readdir(process.cwd(), { withFileTypes: true });
16
33
  const configFiles = files
17
34
  .filter((dirent) => {
@@ -78,4 +95,4 @@ export async function evosynth(cmd, env, props) {
78
95
  console.error('evosynth config not found!');
79
96
  }
80
97
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvc3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2V2b3N5bnRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxPQUFPLEVBQUUseUJBQXlCLEVBQWdDLE1BQU0sNEJBQTRCLENBQUM7QUFtQnJHLE1BQU0sQ0FBQyxLQUFLLFVBQVUsUUFBUSxDQUFDLEdBQWUsRUFBRSxHQUFXLEVBQUUsS0FBb0I7SUFDL0UsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFcEUsTUFBTSxXQUFXLEdBQUcsS0FBSztTQUN0QixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNqQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sdUNBQXVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUMsQ0FBQztTQUNELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ2QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE9BQU87WUFDTCxJ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QU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRkaXIgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGpvaW4sIGV4dG5hbWUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IHJlZ2lzdGVyIH0gZnJvbSAndHN4L2VzbS9hcGknO1xuaW1wb3J0IHR5cGUgeyBFdm9zeW50aFRhZ0tleSB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IHJ1bldlYlN0YXRpY1NlcnZlcmxlc3NBcHAsIFdlYlN0YXRpY1NlcnZlcmxlc3NBcHBDb25maWcgfSBmcm9tICcuL3dlYi1zdGF0aWMtc2VydmVybGVzcy5qcyc7XG5cbmV4cG9ydCB7IFdlYlN0YXRpY1NlcnZlcmxlc3NBcHBDb25maWcgfTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnRUeXBlID0gJ2RldicgfCAndGVzdCcgfCAnc3RhZ2UnIHwgJ3VhdCcgfCAncHJlcHJvZCcgIHwgJ3Byb2QnIHwgKHN0cmluZyAmIHt9KTtcbmV4cG9ydCB0eXBlIENka0NvbW1hbmQgPSAnZGVwbG95JyB8ICdkZXN0cm95JyB8ICdkaWZmJyB8ICdkcmlmdCcgfCAncm9sbGJhY2snIHwgJ3N5bnRoJzsgLy8gJ2Jvb3RzdHJhcCcgfCBcbmV4cG9ydCB0eXBlIEV2b3N5bnRoQXBwVHlwZSA9ICdzdHI4ci1jbG0nIHwgJ3dlYi1zdGF0aWMtc2VydmVybGVzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZvc3ludGhBcHBDb25maWcge1xuICB0eXBlOiBFdm9zeW50aEFwcFR5cGU7XG4gIGVudlR5cGU/OiBFbnZpcm9ubWVudFR5cGU7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVnaW9uOiAndXMtZWFzdC0xJyB8ICd1cy1lYXN0LTInIHwgJ3VzLXdlc3QtMScgfCAndXMtd2VzdC0yJyB8IChzdHJpbmcgJiB7fSk7XG4gIHRhZ3M/OiBSZWNvcmQ8RXZvc3ludGhUYWdLZXksIHN0cmluZz4sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZvc3ludGhQcm9wcyB7XG4gIHByb2ZpbGU/OiBzdHJpbmc7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXZvc3ludGgoY21kOiBDZGtDb21tYW5kLCBlbnY6IHN0cmluZywgcHJvcHM6IEV2b3N5bnRoUHJvcHMpIHtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKHByb2Nlc3MuY3dkKCksIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcblxuICBjb25zdCBjb25maWdGaWxlcyA9IGZpbGVzXG4gICAgLmZpbHRlcigoZGlyZW50KSA9PiB7XG4gICAgICBpZiAoZGlyZW50LmlzRmlsZSgpKSB7XG4gICAgICAgIHJldHVybiAvXlxcLmV2b3N5bnRoKC4qPylcXC4oPzpqc3xtanN8dHN8bXRzKSQvaS50ZXN0KGRpcmVudC5uYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC5tYXAoKGRpcmVudCkgPT4ge1xuICAgICAgY29uc3QgcGFydHMgPSBkaXJlbnQubmFtZS5zcGxpdCgnLicpLmZpbHRlcihwID0+IHAgIT09ICcnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGRpcmVudC5uYW1lLFxuICAgICAgICBlbnY6IHBhcnRzLmxlbmd0aCA+IDIgPyBwYXJ0c1sxXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZGlyOiBkaXJlbnQucGFyZW50UGF0aFxuICAgICAgfVxuICAgIH0pO1xuICBcbiAgbGV0IGNvbmZpZ0luZGV4ID0gY29uZmlnRmlsZXMuZmluZEluZGV4KGMgPT4gYy5lbnYgJiYgZW52ICYmIGMuZW52LnRvTG93ZXJDYXNlKCkgPT09IGVudi50b0xvd2VyQ2FzZSgpKTtcbiAgaWYgKGNvbmZpZ0luZGV4ID09PSAtMSkge1xuICAgIGNvbmZpZ0luZGV4ID0gY29uZmlnRmlsZXMuZmluZEluZGV4KGMgPT4gYy5lbnYgPT09IHVuZGVmaW5lZCk7XG4gIH1cbiAgaWYgKGNvbmZpZ0luZGV4ICE9IC0xKSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGNvbmZpZ0ZpbGVzW2NvbmZpZ0luZGV4XTtcbiAgICBjb25zdCB0c3hVbnJlZ2lzdGVyID0gL15cXC5tP3RzJC8udGVzdChleHRuYW1lKGNvbmZpZ0ZpbGUubmFtZSkpID8gcmVnaXN0ZXIoKSA6IHVuZGVmaW5lZDtcbiAgICBsZXQgbW9kdWxlOiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIG1vZHVsZSA9IGF3YWl0IGltcG9ydChwYXRoVG9GaWxlVVJMKGpvaW4oY29uZmlnRmlsZS5kaXIsIGNvbmZpZ0ZpbGUubmFtZSkpLnRvU3RyaW5nKCkpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgY29uZmlnIFwiJHtjb25maWdGaWxlLm5hbWV9XCI6YCwgKGVyciBhcyBFcnJvcikubWVzc2FnZSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRzeFVucmVnaXN0ZXI/LigpO1xuICAgIH1cbiAgICBsZXQgY29uZmlnOiBFdm9zeW50aEFwcENvbmZpZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoY29uZmlnRmlsZS5lbnYpIHtcbiAgICAgIGNvbmZpZyA9IGF3YWl0IG1vZHVsZS5kZWZhdWx0Py4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gYXdhaXQgbW9kdWxlW2Vudi50b0xvd2VyQ2FzZSgpXT8uKCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKHByb3BzLnByb2ZpbGUpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgPSBwcm9wcy5wcm9maWxlO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChjb25maWcudHlwZSkge1xuICAgICAgICBjYXNlICd3ZWItc3RhdGljLXNlcnZlcmxlc3MnOlxuICAgICAgICAgIGF3YWl0IHJ1bldlYlN0YXRpY1NlcnZlcmxlc3NBcHAoY21kLCBjb25maWcgYXMgV2ViU3RhdGljU2VydmVybGVzc0FwcENvbmZpZyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgVW5zdXBwb3J0ZWQgZXZvc3ludGggYXBwIHR5cGU6IFwiJHtjb25maWcudHlwZX1cImApO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgQ29uZmlnIGVudmlyb25tZW50IFwiJHtlbnZ9XCIgbm90IGZvdW5kYCk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICAgIFxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2V2b3N5bnRoIGNvbmZpZyBub3QgZm91bmQhJyk7XG4gIH1cbn0iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvc3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2V2b3N5bnRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBZ0MsTUFBTSw0QkFBNEIsQ0FBQztBQW1CckcsU0FBUyxPQUFPLENBQUMsUUFBZ0I7SUFDL0IsTUFBTSxFQUFFLEdBQUcsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM3QixFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQy9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsUUFBUSxDQUFDLEdBQWUsRUFBRSxHQUFXLEVBQUUsS0FBb0I7SUFDL0UsSUFBSSxHQUFHLEtB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U0FBUyxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQzFDLENBQUM7WUFDRCxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyx1QkFBdUI7b0JBQzFCLE1BQU0seUJBQXlCLENBQUMsR0FBRyxFQUFFLE1BQXNDLENBQUMsQ0FBQztvQkFDN0UsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztvQkFDakUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEIsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEdBQUcsYUFBYSxDQUFDLENBQUM7WUFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO0lBRUgsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDOUMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkZGlyIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBjcmVhdGVJbnRlcmZhY2UgfSBmcm9tICdub2RlOnJlYWRsaW5lJztcbmltcG9ydCB7IGpvaW4sIGV4dG5hbWUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IHJlZ2lzdGVyIH0gZnJvbSAndHN4L2VzbS9hcGknO1xuaW1wb3J0IHR5cGUgeyBFdm9zeW50aFRhZ0tleSB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IHJ1bldlYlN0YXRpY1NlcnZlcmxlc3NBcHAsIFdlYlN0YXRpY1NlcnZlcmxlc3NBcHBDb25maWcgfSBmcm9tICcuL3dlYi1zdGF0aWMtc2VydmVybGVzcy5qcyc7XG5cbmV4cG9ydCB7IFdlYlN0YXRpY1NlcnZlcmxlc3NBcHBDb25maWcgfTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnRUeXBlID0gJ2RldicgfCAndGVzdCcgfCAnc3RhZ2UnIHwgJ3VhdCcgfCAncHJlcHJvZCcgIHwgJ3Byb2QnIHwgKHN0cmluZyAmIHt9KTtcbmV4cG9ydCB0eXBlIENka0NvbW1hbmQgPSAnZGVwbG95JyB8ICdkZXN0cm95JyB8ICdkaWZmJyB8ICdkcmlmdCcgfCAncm9sbGJhY2snIHwgJ3N5bnRoJzsgLy8gJ2Jvb3RzdHJhcCcgfCBcbmV4cG9ydCB0eXBlIEV2b3N5bnRoQXBwVHlwZSA9ICdzdHI4ci1jbG0nIHwgJ3dlYi1zdGF0aWMtc2VydmVybGVzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZvc3ludGhBcHBDb25maWcge1xuICB0eXBlOiBFdm9zeW50aEFwcFR5cGU7XG4gIGVudlR5cGU/OiBFbnZpcm9ubWVudFR5cGU7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVnaW9uOiAndXMtZWFzdC0xJyB8ICd1cy1lYXN0LTInIHwgJ3VzLXdlc3QtMScgfCAndXMtd2VzdC0yJyB8IChzdHJpbmcgJiB7fSk7XG4gIHRhZ3M/OiBSZWNvcmQ8RXZvc3ludGhUYWdLZXksIHN0cmluZz4sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZvc3ludGhQcm9wcyB7XG4gIHByb2ZpbGU/OiBzdHJpbmc7XG59XG5mdW5jdGlvbiBjb25maXJtKHF1ZXN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgcmwgPSBjcmVhdGVJbnRlcmZhY2UoeyBpbnB1dDogcHJvY2Vzcy5zdGRpbiwgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCB9KTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgcmwucXVlc3Rpb24ocXVlc3Rpb24sIChhbnN3ZXIpID0+IHtcbiAgICAgIHJsLmNsb3NlKCk7XG4gICAgICByZXNvbHZlKGFuc3dlci50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3knIHx8IGFuc3dlci50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3llcycpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV2b3N5bnRoKGNtZDogQ2RrQ29tbWFuZCwgZW52OiBzdHJpbmcsIHByb3BzOiBFdm9zeW50aFByb3BzKSB7XG4gIGlmIChjbWQgPT09ICdkZXN0cm95Jykge1xuICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZXN0cm95IHRoZSBcIiR7ZW52fVwiIGVudmlyb25tZW50PyAoeS9OKSBgKTtcbiAgICBpZiAoIWNvbmZpcm1lZCkge1xuICAgICAgY29uc29sZS5sb2coJ0Rlc3Ryb3kgY2FuY2VsbGVkLicpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH1cbiAgfVxuICBjb25zdCBmaWxlcyA9IGF3YWl0IHJlYWRkaXIocHJvY2Vzcy5jd2QoKSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuXG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gZmlsZXNcbiAgICAuZmlsdGVyKChkaXJlbnQpID0+IHtcbiAgICAgIGlmIChkaXJlbnQuaXNGaWxlKCkpIHtcbiAgICAgICAgcmV0dXJuIC9eXFwuZXZvc3ludGgoLio/KVxcLig/OmpzfG1qc3x0c3xtdHMpJC9pLnRlc3QoZGlyZW50Lm5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0pXG4gICAgLm1hcCgoZGlyZW50KSA9PiB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGRpcmVudC5uYW1lLnNwbGl0KCcuJykuZmlsdGVyKHAgPT4gcCAhPT0gJycpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogZGlyZW50Lm5hbWUsXG4gICAgICAgIGVudjogcGFydHMubGVuZ3RoID4gMiA/IHBhcnRzWzFdIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXI6IGRpcmVudC5wYXJlbnRQYXRoXG4gICAgICB9XG4gICAgfSk7XG4gIFxuICBsZXQgY29uZmlnSW5kZXggPSBjb25maWdGaWxlcy5maW5kSW5kZXgoYyA9PiBjLmVudiAmJiBlbnYgJiYgYy5lbnYudG9Mb3dlckNhc2UoKSA9PT0gZW52LnRvTG93ZXJDYXNlKCkpO1xuICBpZiAoY29uZmlnSW5kZXggPT09IC0xKSB7XG4gICAgY29uZmlnSW5kZXggPSBjb25maWdGaWxlcy5maW5kSW5kZXgoYyA9PiBjLmVudiA9PT0gdW5kZWZpbmVkKTtcbiAgfVxuICBpZiAoY29uZmlnSW5kZXggIT0gLTEpIHtcbiAgICBjb25zdCBjb25maWdGaWxlID0gY29uZmlnRmlsZXNbY29uZmlnSW5kZXhdO1xuICAgIGNvbnN0IHRzeFVucmVnaXN0ZXIgPSAvXlxcLm0/dHMkLy50ZXN0KGV4dG5hbWUoY29uZmlnRmlsZS5uYW1lKSkgPyByZWdpc3RlcigpIDogdW5kZWZpbmVkO1xuICAgIGxldCBtb2R1bGU6IGFueTtcbiAgICB0cnkge1xuICAgICAgbW9kdWxlID0gYXdhaXQgaW1wb3J0KHBhdGhUb0ZpbGVVUkwoam9pbihjb25maWdGaWxlLmRpciwgY29uZmlnRmlsZS5uYW1lKSkudG9TdHJpbmcoKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBjb25maWcgXCIke2NvbmZpZ0ZpbGUubmFtZX1cIjpgLCAoZXJyIGFzIEVycm9yKS5tZXNzYWdlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdHN4VW5yZWdpc3Rlcj8uKCk7XG4gICAgfVxuICAgIGxldCBjb25maWc6IEV2b3N5bnRoQXBwQ29uZmlnIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChjb25maWdGaWxlLmVudikge1xuICAgICAgY29uZmlnID0gYXdhaXQgbW9kdWxlLmRlZmF1bHQ/LigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcgPSBhd2FpdCBtb2R1bGVbZW52LnRvTG93ZXJDYXNlKCldPy4oKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICBpZiAocHJvcHMucHJvZmlsZSkge1xuICAgICAgICBwcm9jZXNzLmVudi5BV1NfUFJPRklMRSA9IHByb3BzLnByb2ZpbGU7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGNvbmZpZy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ3dlYi1zdGF0aWMtc2VydmVybGVzcyc6XG4gICAgICAgICAgYXdhaXQgcnVuV2ViU3RhdGljU2VydmVybGVzc0FwcChjbWQsIGNvbmZpZyBhcyBXZWJTdGF0aWNTZXJ2ZXJsZXNzQXBwQ29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBVbnN1cHBvcnRlZCBldm9zeW50aCBhcHAgdHlwZTogXCIke2NvbmZpZy50eXBlfVwiYCk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBDb25maWcgZW52aXJvbm1lbnQgXCIke2Vudn1cIiBub3QgZm91bmRgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5lcnJvcignZXZvc3ludGggY29uZmlnIG5vdCBmb3VuZCEnKTtcbiAgfVxufSJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inizioevoke/evosynth",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
4
4
  "author": "",
5
5
  "license": "ISC",
6
6
  "description": "",
@@ -1,4 +1,5 @@
1
1
  import { readdir } from 'node:fs/promises';
2
+ import { createInterface } from 'node:readline';
2
3
  import { join, extname } from 'node:path';
3
4
  import { pathToFileURL } from 'node:url';
4
5
  import { register } from 'tsx/esm/api';
@@ -22,7 +23,24 @@ export interface EvosynthAppConfig {
22
23
  export interface EvosynthProps {
23
24
  profile?: string;
24
25
  }
26
+ function confirm(question: string): Promise<boolean> {
27
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
28
+ return new Promise((resolve) => {
29
+ rl.question(question, (answer) => {
30
+ rl.close();
31
+ resolve(answer.trim().toLowerCase() === 'y' || answer.trim().toLowerCase() === 'yes');
32
+ });
33
+ });
34
+ }
35
+
25
36
  export async function evosynth(cmd: CdkCommand, env: string, props: EvosynthProps) {
37
+ if (cmd === 'destroy') {
38
+ const confirmed = await confirm(`Are you sure you want to destroy the "${env}" environment? (y/N) `);
39
+ if (!confirmed) {
40
+ console.log('Destroy cancelled.');
41
+ process.exit(0);
42
+ }
43
+ }
26
44
  const files = await readdir(process.cwd(), { withFileTypes: true });
27
45
 
28
46
  const configFiles = files