@kosmic/cli 0.0.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/src/build/cli.d.ts +3 -0
- package/dist/src/build/cli.d.ts.map +1 -0
- package/dist/src/build/cli.js +42 -0
- package/dist/src/build/cli.js.map +1 -0
- package/dist/src/build-vite-plugin/cli.d.ts +3 -0
- package/dist/src/build-vite-plugin/cli.d.ts.map +1 -0
- package/dist/src/build-vite-plugin/cli.js +34 -0
- package/dist/src/build-vite-plugin/cli.js.map +1 -0
- package/dist/src/check/cli.d.ts +3 -0
- package/dist/src/check/cli.d.ts.map +1 -0
- package/dist/src/check/cli.js +34 -0
- package/dist/src/check/cli.js.map +1 -0
- package/dist/src/clean/cli.d.ts +3 -0
- package/dist/src/clean/cli.d.ts.map +1 -0
- package/dist/src/clean/cli.js +34 -0
- package/dist/src/clean/cli.js.map +1 -0
- package/dist/src/compile/cli.d.ts +3 -0
- package/dist/src/compile/cli.d.ts.map +1 -0
- package/dist/src/compile/cli.js +38 -0
- package/dist/src/compile/cli.js.map +1 -0
- package/dist/src/compile-cp/cli.d.ts +3 -0
- package/dist/src/compile-cp/cli.d.ts.map +1 -0
- package/dist/src/compile-cp/cli.js +34 -0
- package/dist/src/compile-cp/cli.js.map +1 -0
- package/dist/src/compile-tsc/cli.d.ts +3 -0
- package/dist/src/compile-tsc/cli.d.ts.map +1 -0
- package/dist/src/compile-tsc/cli.js +34 -0
- package/dist/src/compile-tsc/cli.js.map +1 -0
- package/dist/src/compile-vite/cli.d.ts +3 -0
- package/dist/src/compile-vite/cli.d.ts.map +1 -0
- package/dist/src/compile-vite/cli.js +34 -0
- package/dist/src/compile-vite/cli.js.map +1 -0
- package/dist/src/create/cli.d.ts +3 -0
- package/dist/src/create/cli.d.ts.map +1 -0
- package/dist/src/create/cli.js +167 -0
- package/dist/src/create/cli.js.map +1 -0
- package/dist/src/create/scaffold.d.ts +15 -0
- package/dist/src/create/scaffold.d.ts.map +1 -0
- package/dist/src/create/scaffold.js +49 -0
- package/dist/src/create/scaffold.js.map +1 -0
- package/dist/src/create/templates/auth.d.ts +2 -0
- package/dist/src/create/templates/auth.d.ts.map +1 -0
- package/dist/src/create/templates/auth.js +355 -0
- package/dist/src/create/templates/auth.js.map +1 -0
- package/dist/src/create/templates/base.d.ts +2 -0
- package/dist/src/create/templates/base.d.ts.map +1 -0
- package/dist/src/create/templates/base.js +221 -0
- package/dist/src/create/templates/base.js.map +1 -0
- package/dist/src/dev/cli.d.ts +3 -0
- package/dist/src/dev/cli.d.ts.map +1 -0
- package/dist/src/dev/cli.js +82 -0
- package/dist/src/dev/cli.js.map +1 -0
- package/dist/src/dev/ts-watch.d.ts +3 -0
- package/dist/src/dev/ts-watch.d.ts.map +1 -0
- package/dist/src/dev/ts-watch.js +29 -0
- package/dist/src/dev/ts-watch.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +138 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lint/cli.d.ts +3 -0
- package/dist/src/lint/cli.d.ts.map +1 -0
- package/dist/src/lint/cli.js +34 -0
- package/dist/src/lint/cli.js.map +1 -0
- package/dist/src/migrate/cli.d.ts +3 -0
- package/dist/src/migrate/cli.d.ts.map +1 -0
- package/dist/src/migrate/cli.js +120 -0
- package/dist/src/migrate/cli.js.map +1 -0
- package/dist/src/migrate/helpers.d.ts +6 -0
- package/dist/src/migrate/helpers.d.ts.map +1 -0
- package/dist/src/migrate/helpers.js +23 -0
- package/dist/src/migrate/helpers.js.map +1 -0
- package/dist/src/migrate/index.d.ts +3 -0
- package/dist/src/migrate/index.d.ts.map +1 -0
- package/dist/src/migrate/index.js +3 -0
- package/dist/src/migrate/index.js.map +1 -0
- package/dist/src/migrate/migrator.d.ts +25 -0
- package/dist/src/migrate/migrator.d.ts.map +1 -0
- package/dist/src/migrate/migrator.js +73 -0
- package/dist/src/migrate/migrator.js.map +1 -0
- package/dist/src/start/cli.d.ts +3 -0
- package/dist/src/start/cli.d.ts.map +1 -0
- package/dist/src/start/cli.js +37 -0
- package/dist/src/start/cli.js.map +1 -0
- package/dist/src/test-watch/cli.d.ts +3 -0
- package/dist/src/test-watch/cli.d.ts.map +1 -0
- package/dist/src/test-watch/cli.js +44 -0
- package/dist/src/test-watch/cli.js.map +1 -0
- package/dist/src/test_/cli.d.ts +3 -0
- package/dist/src/test_/cli.d.ts.map +1 -0
- package/dist/src/test_/cli.js +40 -0
- package/dist/src/test_/cli.js.map +1 -0
- package/dist/test/index.test.d.ts +2 -0
- package/dist/test/index.test.d.ts.map +1 -0
- package/dist/test/index.test.js +3 -0
- package/dist/test/index.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/build/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import fs from 'node:fs/promises';
|
|
5
|
+
import { parseArgs } from 'node:util';
|
|
6
|
+
import { execa } from 'execa';
|
|
7
|
+
const HELP_TEXT = `
|
|
8
|
+
Build command for kosmic applications.
|
|
9
|
+
|
|
10
|
+
Usage
|
|
11
|
+
$ kosmic build
|
|
12
|
+
|
|
13
|
+
Options
|
|
14
|
+
--help, -h Show this help message
|
|
15
|
+
`.trim();
|
|
16
|
+
const cli = parseArgs({
|
|
17
|
+
allowPositionals: true,
|
|
18
|
+
options: {
|
|
19
|
+
cwd: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
},
|
|
22
|
+
help: {
|
|
23
|
+
type: 'boolean',
|
|
24
|
+
short: 'h',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
if (cli.values.help) {
|
|
29
|
+
console.log(HELP_TEXT);
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
33
|
+
const $$ = execa({ cwd, stdio: 'inherit' });
|
|
34
|
+
// clean
|
|
35
|
+
await fs.rm(path.resolve(cwd, 'dist'), { recursive: true, force: true });
|
|
36
|
+
// compile:tsc
|
|
37
|
+
await $$ `tsc --build tsconfig.json`;
|
|
38
|
+
// compile:vite
|
|
39
|
+
await $$ `vite build`;
|
|
40
|
+
// compile:cp
|
|
41
|
+
await fs.cp(path.resolve(cwd, 'src', 'public'), path.resolve(cwd, 'dist', 'src', 'public'), { recursive: true });
|
|
42
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/build/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,MAAM,SAAS,GAAG;;;;;;;;CAQjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;AAE1C,QAAQ;AACR,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;AAEvE,cAAc;AACd,MAAM,EAAE,CAAA,2BAA2B,CAAC;AAEpC,eAAe;AACf,MAAM,EAAE,CAAA,YAAY,CAAC;AAErB,aAAa;AACb,MAAM,EAAE,CAAC,EAAE,CACT,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAC1C,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/build-vite-plugin/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { parseArgs } from 'node:util';
|
|
4
|
+
import { execa } from 'execa';
|
|
5
|
+
const HELP_TEXT = `
|
|
6
|
+
Build the kosmic vite plugin.
|
|
7
|
+
|
|
8
|
+
Usage
|
|
9
|
+
$ kosmic build-vite-plugin [options]
|
|
10
|
+
|
|
11
|
+
Options
|
|
12
|
+
--cwd Working directory (default: process.cwd())
|
|
13
|
+
--help, -h Show this help message
|
|
14
|
+
`.trim();
|
|
15
|
+
const cli = parseArgs({
|
|
16
|
+
allowPositionals: true,
|
|
17
|
+
options: {
|
|
18
|
+
cwd: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
},
|
|
21
|
+
help: {
|
|
22
|
+
type: 'boolean',
|
|
23
|
+
short: 'h',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
if (cli.values.help) {
|
|
28
|
+
console.log(HELP_TEXT);
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
32
|
+
const $$ = execa({ cwd, stdio: 'inherit' });
|
|
33
|
+
await $$ `tsc -p ./scripts/tsconfig.json`;
|
|
34
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/build-vite-plugin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,MAAM,SAAS,GAAG;;;;;;;;;CASjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;AAE1C,MAAM,EAAE,CAAA,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/check/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { parseArgs } from 'node:util';
|
|
4
|
+
import { execa } from 'execa';
|
|
5
|
+
const HELP_TEXT = `
|
|
6
|
+
Type-check a kosmic application without emitting files.
|
|
7
|
+
|
|
8
|
+
Usage
|
|
9
|
+
$ kosmic check [options]
|
|
10
|
+
|
|
11
|
+
Options
|
|
12
|
+
--cwd Working directory (default: process.cwd())
|
|
13
|
+
--help, -h Show this help message
|
|
14
|
+
`.trim();
|
|
15
|
+
const cli = parseArgs({
|
|
16
|
+
allowPositionals: true,
|
|
17
|
+
options: {
|
|
18
|
+
cwd: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
},
|
|
21
|
+
help: {
|
|
22
|
+
type: 'boolean',
|
|
23
|
+
short: 'h',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
if (cli.values.help) {
|
|
28
|
+
console.log(HELP_TEXT);
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
32
|
+
const $$ = execa({ cwd, stdio: 'inherit' });
|
|
33
|
+
await $$ `tsc -p tsconfig.json --noEmit`;
|
|
34
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/check/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,MAAM,SAAS,GAAG;;;;;;;;;CASjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;AAE1C,MAAM,EAAE,CAAA,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/clean/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import process from 'node:process';
|
|
5
|
+
import { parseArgs } from 'node:util';
|
|
6
|
+
const HELP_TEXT = `
|
|
7
|
+
Remove build output for a kosmic application.
|
|
8
|
+
|
|
9
|
+
Usage
|
|
10
|
+
$ kosmic clean [options]
|
|
11
|
+
|
|
12
|
+
Options
|
|
13
|
+
--cwd Working directory (default: process.cwd())
|
|
14
|
+
--help, -h Show this help message
|
|
15
|
+
`.trim();
|
|
16
|
+
const cli = parseArgs({
|
|
17
|
+
allowPositionals: true,
|
|
18
|
+
options: {
|
|
19
|
+
cwd: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
},
|
|
22
|
+
help: {
|
|
23
|
+
type: 'boolean',
|
|
24
|
+
short: 'h',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
if (cli.values.help) {
|
|
29
|
+
console.log(HELP_TEXT);
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
33
|
+
await fs.rm(path.resolve(cwd, 'dist'), { recursive: true, force: true });
|
|
34
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/clean/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AAEpC,MAAM,SAAS,GAAG;;;;;;;;;CASjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAE5C,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/compile/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import process from 'node:process';
|
|
5
|
+
import { parseArgs } from 'node:util';
|
|
6
|
+
import { execa } from 'execa';
|
|
7
|
+
const HELP_TEXT = `
|
|
8
|
+
Run the full compile pipeline for a kosmic application.
|
|
9
|
+
|
|
10
|
+
Usage
|
|
11
|
+
$ kosmic compile [options]
|
|
12
|
+
|
|
13
|
+
Options
|
|
14
|
+
--cwd Working directory (default: process.cwd())
|
|
15
|
+
--help, -h Show this help message
|
|
16
|
+
`.trim();
|
|
17
|
+
const cli = parseArgs({
|
|
18
|
+
allowPositionals: true,
|
|
19
|
+
options: {
|
|
20
|
+
cwd: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
},
|
|
23
|
+
help: {
|
|
24
|
+
type: 'boolean',
|
|
25
|
+
short: 'h',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
if (cli.values.help) {
|
|
30
|
+
console.log(HELP_TEXT);
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
34
|
+
const $$ = execa({ cwd, stdio: 'inherit' });
|
|
35
|
+
await $$ `tsc --build tsconfig.json`;
|
|
36
|
+
await $$ `vite build`;
|
|
37
|
+
await fs.cp(path.resolve(cwd, 'src', 'public'), path.resolve(cwd, 'dist', 'src', 'public'), { recursive: true });
|
|
38
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/compile/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,MAAM,SAAS,GAAG;;;;;;;;;CASjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;AAE1C,MAAM,EAAE,CAAA,2BAA2B,CAAC;AACpC,MAAM,EAAE,CAAA,YAAY,CAAC;AACrB,MAAM,EAAE,CAAC,EAAE,CACT,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAC1C,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/compile-cp/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import process from 'node:process';
|
|
5
|
+
import { parseArgs } from 'node:util';
|
|
6
|
+
const HELP_TEXT = `
|
|
7
|
+
Copy static assets into the dist folder.
|
|
8
|
+
|
|
9
|
+
Usage
|
|
10
|
+
$ kosmic compile-cp [options]
|
|
11
|
+
|
|
12
|
+
Options
|
|
13
|
+
--cwd Working directory (default: process.cwd())
|
|
14
|
+
--help, -h Show this help message
|
|
15
|
+
`.trim();
|
|
16
|
+
const cli = parseArgs({
|
|
17
|
+
allowPositionals: true,
|
|
18
|
+
options: {
|
|
19
|
+
cwd: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
},
|
|
22
|
+
help: {
|
|
23
|
+
type: 'boolean',
|
|
24
|
+
short: 'h',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
if (cli.values.help) {
|
|
29
|
+
console.log(HELP_TEXT);
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
33
|
+
await fs.cp(path.resolve(cwd, 'src', 'public'), path.resolve(cwd, 'dist', 'src', 'public'), { recursive: true });
|
|
34
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/compile-cp/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AAEpC,MAAM,SAAS,GAAG;;;;;;;;;CASjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAE5C,MAAM,EAAE,CAAC,EAAE,CACT,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAC1C,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/compile-tsc/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { parseArgs } from 'node:util';
|
|
4
|
+
import { execa } from 'execa';
|
|
5
|
+
const HELP_TEXT = `
|
|
6
|
+
Compile TypeScript for a kosmic application.
|
|
7
|
+
|
|
8
|
+
Usage
|
|
9
|
+
$ kosmic compile-tsc [options]
|
|
10
|
+
|
|
11
|
+
Options
|
|
12
|
+
--cwd Working directory (default: process.cwd())
|
|
13
|
+
--help, -h Show this help message
|
|
14
|
+
`.trim();
|
|
15
|
+
const cli = parseArgs({
|
|
16
|
+
allowPositionals: true,
|
|
17
|
+
options: {
|
|
18
|
+
cwd: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
},
|
|
21
|
+
help: {
|
|
22
|
+
type: 'boolean',
|
|
23
|
+
short: 'h',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
if (cli.values.help) {
|
|
28
|
+
console.log(HELP_TEXT);
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
32
|
+
const $$ = execa({ cwd, stdio: 'inherit' });
|
|
33
|
+
await $$ `tsc --build tsconfig.json`;
|
|
34
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/compile-tsc/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,MAAM,SAAS,GAAG;;;;;;;;;CASjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;AAE1C,MAAM,EAAE,CAAA,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/compile-vite/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { parseArgs } from 'node:util';
|
|
4
|
+
import { execa } from 'execa';
|
|
5
|
+
const HELP_TEXT = `
|
|
6
|
+
Build client assets with Vite.
|
|
7
|
+
|
|
8
|
+
Usage
|
|
9
|
+
$ kosmic compile-vite [options]
|
|
10
|
+
|
|
11
|
+
Options
|
|
12
|
+
--cwd Working directory (default: process.cwd())
|
|
13
|
+
--help, -h Show this help message
|
|
14
|
+
`.trim();
|
|
15
|
+
const cli = parseArgs({
|
|
16
|
+
allowPositionals: true,
|
|
17
|
+
options: {
|
|
18
|
+
cwd: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
},
|
|
21
|
+
help: {
|
|
22
|
+
type: 'boolean',
|
|
23
|
+
short: 'h',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
if (cli.values.help) {
|
|
28
|
+
console.log(HELP_TEXT);
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
32
|
+
const $$ = execa({ cwd, stdio: 'inherit' });
|
|
33
|
+
await $$ `vite build`;
|
|
34
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/compile-vite/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,MAAM,SAAS,GAAG;;;;;;;;;CASjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;AAE1C,MAAM,EAAE,CAAA,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/create/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import process from 'node:process';
|
|
4
|
+
import readline from 'node:readline/promises';
|
|
5
|
+
import { parseArgs } from 'node:util';
|
|
6
|
+
import { execa } from 'execa';
|
|
7
|
+
import { directoryHasFiles, scaffoldKosmicProject } from "./scaffold.js";
|
|
8
|
+
const HELP_TEXT = `
|
|
9
|
+
Bootstrap a new Kosmic app template.
|
|
10
|
+
|
|
11
|
+
Usage
|
|
12
|
+
$ kosmic create [project-name] [options]
|
|
13
|
+
|
|
14
|
+
Options
|
|
15
|
+
--auth Include login/account routes and auth scaffolding
|
|
16
|
+
--no-auth Skip auth scaffolding
|
|
17
|
+
--force Overwrite existing target directory
|
|
18
|
+
--yes, -y Use defaults and skip prompts
|
|
19
|
+
--install Run npm install after scaffolding
|
|
20
|
+
--no-install Skip npm install after scaffolding
|
|
21
|
+
--cwd Working directory (default: process.cwd())
|
|
22
|
+
--help, -h Show this help message
|
|
23
|
+
`.trim();
|
|
24
|
+
/**
|
|
25
|
+
* Prompt for a single text value and fall back to a default when empty.
|
|
26
|
+
*/
|
|
27
|
+
async function promptText(rl, message, options = {}) {
|
|
28
|
+
const suffix = options.defaultValue ? ` (${options.defaultValue})` : '';
|
|
29
|
+
const promptResult = await rl.question(`${message}${suffix}: `);
|
|
30
|
+
const value = promptResult.trim();
|
|
31
|
+
if (value.length === 0 && options.defaultValue) {
|
|
32
|
+
return options.defaultValue;
|
|
33
|
+
}
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Prompt for a yes/no answer with a default value.
|
|
38
|
+
*/
|
|
39
|
+
async function promptYesNo(rl, message, defaultValue) {
|
|
40
|
+
const label = defaultValue ? 'Y/n' : 'y/N';
|
|
41
|
+
const promptResult = await rl.question(`${message} (${label}): `);
|
|
42
|
+
const rawValue = promptResult.trim().toLowerCase();
|
|
43
|
+
if (rawValue.length === 0) {
|
|
44
|
+
return defaultValue;
|
|
45
|
+
}
|
|
46
|
+
return rawValue === 'y' || rawValue === 'yes';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Convert a package name candidate into an npm-compatible name.
|
|
50
|
+
*/
|
|
51
|
+
function normalizeProjectName(value) {
|
|
52
|
+
return (value
|
|
53
|
+
.trim()
|
|
54
|
+
.toLowerCase()
|
|
55
|
+
.replaceAll(/[^a-z0-9_\-]+/gv, '-')
|
|
56
|
+
.replaceAll(/^-+/gv, '')
|
|
57
|
+
.replaceAll(/-+$/gv, '') || 'kosmic-app');
|
|
58
|
+
}
|
|
59
|
+
const cli = parseArgs({
|
|
60
|
+
allowPositionals: true,
|
|
61
|
+
options: {
|
|
62
|
+
auth: {
|
|
63
|
+
type: 'boolean',
|
|
64
|
+
},
|
|
65
|
+
'no-auth': {
|
|
66
|
+
type: 'boolean',
|
|
67
|
+
},
|
|
68
|
+
force: {
|
|
69
|
+
type: 'boolean',
|
|
70
|
+
},
|
|
71
|
+
yes: {
|
|
72
|
+
type: 'boolean',
|
|
73
|
+
short: 'y',
|
|
74
|
+
},
|
|
75
|
+
install: {
|
|
76
|
+
type: 'boolean',
|
|
77
|
+
},
|
|
78
|
+
'no-install': {
|
|
79
|
+
type: 'boolean',
|
|
80
|
+
},
|
|
81
|
+
cwd: {
|
|
82
|
+
type: 'string',
|
|
83
|
+
},
|
|
84
|
+
help: {
|
|
85
|
+
type: 'boolean',
|
|
86
|
+
short: 'h',
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
if (cli.values.help) {
|
|
91
|
+
console.log(HELP_TEXT);
|
|
92
|
+
process.exit(0);
|
|
93
|
+
}
|
|
94
|
+
if (cli.values.auth && cli.values['no-auth']) {
|
|
95
|
+
console.error('Choose either --auth or --no-auth, not both.');
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
if (cli.values.install && cli.values['no-install']) {
|
|
99
|
+
console.error('Choose either --install or --no-install, not both.');
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
const providedName = cli.positionals.slice(1)[0];
|
|
103
|
+
const cwd = cli.values.cwd ?? process.cwd();
|
|
104
|
+
const useDefaults = cli.values.yes === true;
|
|
105
|
+
let projectName = normalizeProjectName(providedName ?? '');
|
|
106
|
+
let withAuth = cli.values.auth === true;
|
|
107
|
+
let installDependencies = cli.values.install === true;
|
|
108
|
+
const authWasExplicit = cli.values.auth === true || cli.values['no-auth'] === true;
|
|
109
|
+
const installWasExplicit = cli.values.install === true || cli.values['no-install'] === true;
|
|
110
|
+
if (cli.values['no-auth']) {
|
|
111
|
+
withAuth = false;
|
|
112
|
+
}
|
|
113
|
+
if (cli.values['no-install']) {
|
|
114
|
+
installDependencies = false;
|
|
115
|
+
}
|
|
116
|
+
const rl = readline.createInterface({
|
|
117
|
+
input: process.stdin,
|
|
118
|
+
output: process.stdout,
|
|
119
|
+
});
|
|
120
|
+
try {
|
|
121
|
+
if (!providedName && !useDefaults) {
|
|
122
|
+
projectName = normalizeProjectName(await promptText(rl, 'Project name', { defaultValue: 'kosmic-app' }));
|
|
123
|
+
}
|
|
124
|
+
if (!authWasExplicit && !useDefaults) {
|
|
125
|
+
withAuth = await promptYesNo(rl, 'Include auth routes (login/account)?', false);
|
|
126
|
+
}
|
|
127
|
+
if (!installWasExplicit && !useDefaults) {
|
|
128
|
+
installDependencies = await promptYesNo(rl, 'Install dependencies?', true);
|
|
129
|
+
}
|
|
130
|
+
else if (!installWasExplicit && useDefaults) {
|
|
131
|
+
installDependencies = true;
|
|
132
|
+
}
|
|
133
|
+
const targetDirectory = path.resolve(cwd, projectName);
|
|
134
|
+
let forceWrite = cli.values.force === true;
|
|
135
|
+
if (!forceWrite && (await directoryHasFiles(targetDirectory))) {
|
|
136
|
+
if (useDefaults) {
|
|
137
|
+
console.error(`Target directory is not empty: ${targetDirectory}`);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
forceWrite = await promptYesNo(rl, `Directory ${projectName} is not empty. Overwrite it?`, false);
|
|
141
|
+
if (!forceWrite) {
|
|
142
|
+
console.error('Aborted.');
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
await scaffoldKosmicProject({
|
|
147
|
+
projectName,
|
|
148
|
+
targetDirectory,
|
|
149
|
+
withAuth,
|
|
150
|
+
force: forceWrite,
|
|
151
|
+
});
|
|
152
|
+
if (installDependencies) {
|
|
153
|
+
const $$ = execa({ cwd: targetDirectory, stdio: 'inherit' });
|
|
154
|
+
await $$ `npm install`;
|
|
155
|
+
}
|
|
156
|
+
console.log(`\nCreated ${projectName} at ${targetDirectory}`);
|
|
157
|
+
console.log('\nNext steps:');
|
|
158
|
+
console.log(` cd ${projectName}`);
|
|
159
|
+
if (!installDependencies) {
|
|
160
|
+
console.log(' npm install');
|
|
161
|
+
}
|
|
162
|
+
console.log(' npm run dev');
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
rl.close();
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/create/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ScaffoldOptions = {
|
|
2
|
+
readonly projectName: string;
|
|
3
|
+
readonly targetDirectory: string;
|
|
4
|
+
readonly withAuth: boolean;
|
|
5
|
+
readonly force: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Check whether a directory exists and contains at least one entry.
|
|
9
|
+
*/
|
|
10
|
+
export declare function directoryHasFiles(targetDirectory: string): Promise<boolean>;
|
|
11
|
+
/**
|
|
12
|
+
* Create project files from the base template and optional auth overlay.
|
|
13
|
+
*/
|
|
14
|
+
export declare function scaffoldKosmicProject(options: ScaffoldOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/create/scaffold.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAmCD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { authTemplateFiles } from "./templates/auth.js";
|
|
4
|
+
import { baseTemplateFiles } from "./templates/base.js";
|
|
5
|
+
/**
|
|
6
|
+
* Check whether a directory exists and contains at least one entry.
|
|
7
|
+
*/
|
|
8
|
+
export async function directoryHasFiles(targetDirectory) {
|
|
9
|
+
try {
|
|
10
|
+
const entries = await fs.readdir(targetDirectory);
|
|
11
|
+
return entries.length > 0;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Replace known placeholders in template file content.
|
|
19
|
+
*/
|
|
20
|
+
function renderTemplate(fileContents, context) {
|
|
21
|
+
return fileContents.replaceAll('{{projectName}}', context.projectName);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Write all template files to the target directory.
|
|
25
|
+
*/
|
|
26
|
+
async function writeTemplates(targetDirectory, templateFiles, context) {
|
|
27
|
+
const writes = Object.entries(templateFiles).map(async ([relativePath, templateValue]) => {
|
|
28
|
+
const outputPath = path.join(targetDirectory, relativePath);
|
|
29
|
+
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
30
|
+
await fs.writeFile(outputPath, renderTemplate(templateValue, context), 'utf8');
|
|
31
|
+
});
|
|
32
|
+
await Promise.all(writes);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create project files from the base template and optional auth overlay.
|
|
36
|
+
*/
|
|
37
|
+
export async function scaffoldKosmicProject(options) {
|
|
38
|
+
const { targetDirectory, force, projectName, withAuth } = options;
|
|
39
|
+
if (force) {
|
|
40
|
+
await fs.rm(targetDirectory, { recursive: true, force: true });
|
|
41
|
+
}
|
|
42
|
+
await fs.mkdir(targetDirectory, { recursive: true });
|
|
43
|
+
const context = { projectName };
|
|
44
|
+
await writeTemplates(targetDirectory, baseTemplateFiles, context);
|
|
45
|
+
if (withAuth) {
|
|
46
|
+
await writeTemplates(targetDirectory, authTemplateFiles, context);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=scaffold.js.map
|