@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.
- package/dist/cli/evosynth.js +18 -1
- package/package.json +1 -1
- package/src/cli/evosynth.ts +18 -0
package/dist/cli/evosynth.js
CHANGED
|
@@ -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,
|
|
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
package/src/cli/evosynth.ts
CHANGED
|
@@ -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
|