@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.
Files changed (98) hide show
  1. package/dist/src/build/cli.d.ts +3 -0
  2. package/dist/src/build/cli.d.ts.map +1 -0
  3. package/dist/src/build/cli.js +42 -0
  4. package/dist/src/build/cli.js.map +1 -0
  5. package/dist/src/build-vite-plugin/cli.d.ts +3 -0
  6. package/dist/src/build-vite-plugin/cli.d.ts.map +1 -0
  7. package/dist/src/build-vite-plugin/cli.js +34 -0
  8. package/dist/src/build-vite-plugin/cli.js.map +1 -0
  9. package/dist/src/check/cli.d.ts +3 -0
  10. package/dist/src/check/cli.d.ts.map +1 -0
  11. package/dist/src/check/cli.js +34 -0
  12. package/dist/src/check/cli.js.map +1 -0
  13. package/dist/src/clean/cli.d.ts +3 -0
  14. package/dist/src/clean/cli.d.ts.map +1 -0
  15. package/dist/src/clean/cli.js +34 -0
  16. package/dist/src/clean/cli.js.map +1 -0
  17. package/dist/src/compile/cli.d.ts +3 -0
  18. package/dist/src/compile/cli.d.ts.map +1 -0
  19. package/dist/src/compile/cli.js +38 -0
  20. package/dist/src/compile/cli.js.map +1 -0
  21. package/dist/src/compile-cp/cli.d.ts +3 -0
  22. package/dist/src/compile-cp/cli.d.ts.map +1 -0
  23. package/dist/src/compile-cp/cli.js +34 -0
  24. package/dist/src/compile-cp/cli.js.map +1 -0
  25. package/dist/src/compile-tsc/cli.d.ts +3 -0
  26. package/dist/src/compile-tsc/cli.d.ts.map +1 -0
  27. package/dist/src/compile-tsc/cli.js +34 -0
  28. package/dist/src/compile-tsc/cli.js.map +1 -0
  29. package/dist/src/compile-vite/cli.d.ts +3 -0
  30. package/dist/src/compile-vite/cli.d.ts.map +1 -0
  31. package/dist/src/compile-vite/cli.js +34 -0
  32. package/dist/src/compile-vite/cli.js.map +1 -0
  33. package/dist/src/create/cli.d.ts +3 -0
  34. package/dist/src/create/cli.d.ts.map +1 -0
  35. package/dist/src/create/cli.js +167 -0
  36. package/dist/src/create/cli.js.map +1 -0
  37. package/dist/src/create/scaffold.d.ts +15 -0
  38. package/dist/src/create/scaffold.d.ts.map +1 -0
  39. package/dist/src/create/scaffold.js +49 -0
  40. package/dist/src/create/scaffold.js.map +1 -0
  41. package/dist/src/create/templates/auth.d.ts +2 -0
  42. package/dist/src/create/templates/auth.d.ts.map +1 -0
  43. package/dist/src/create/templates/auth.js +355 -0
  44. package/dist/src/create/templates/auth.js.map +1 -0
  45. package/dist/src/create/templates/base.d.ts +2 -0
  46. package/dist/src/create/templates/base.d.ts.map +1 -0
  47. package/dist/src/create/templates/base.js +221 -0
  48. package/dist/src/create/templates/base.js.map +1 -0
  49. package/dist/src/dev/cli.d.ts +3 -0
  50. package/dist/src/dev/cli.d.ts.map +1 -0
  51. package/dist/src/dev/cli.js +82 -0
  52. package/dist/src/dev/cli.js.map +1 -0
  53. package/dist/src/dev/ts-watch.d.ts +3 -0
  54. package/dist/src/dev/ts-watch.d.ts.map +1 -0
  55. package/dist/src/dev/ts-watch.js +29 -0
  56. package/dist/src/dev/ts-watch.js.map +1 -0
  57. package/dist/src/index.d.ts +3 -0
  58. package/dist/src/index.d.ts.map +1 -0
  59. package/dist/src/index.js +138 -0
  60. package/dist/src/index.js.map +1 -0
  61. package/dist/src/lint/cli.d.ts +3 -0
  62. package/dist/src/lint/cli.d.ts.map +1 -0
  63. package/dist/src/lint/cli.js +34 -0
  64. package/dist/src/lint/cli.js.map +1 -0
  65. package/dist/src/migrate/cli.d.ts +3 -0
  66. package/dist/src/migrate/cli.d.ts.map +1 -0
  67. package/dist/src/migrate/cli.js +120 -0
  68. package/dist/src/migrate/cli.js.map +1 -0
  69. package/dist/src/migrate/helpers.d.ts +6 -0
  70. package/dist/src/migrate/helpers.d.ts.map +1 -0
  71. package/dist/src/migrate/helpers.js +23 -0
  72. package/dist/src/migrate/helpers.js.map +1 -0
  73. package/dist/src/migrate/index.d.ts +3 -0
  74. package/dist/src/migrate/index.d.ts.map +1 -0
  75. package/dist/src/migrate/index.js +3 -0
  76. package/dist/src/migrate/index.js.map +1 -0
  77. package/dist/src/migrate/migrator.d.ts +25 -0
  78. package/dist/src/migrate/migrator.d.ts.map +1 -0
  79. package/dist/src/migrate/migrator.js +73 -0
  80. package/dist/src/migrate/migrator.js.map +1 -0
  81. package/dist/src/start/cli.d.ts +3 -0
  82. package/dist/src/start/cli.d.ts.map +1 -0
  83. package/dist/src/start/cli.js +37 -0
  84. package/dist/src/start/cli.js.map +1 -0
  85. package/dist/src/test-watch/cli.d.ts +3 -0
  86. package/dist/src/test-watch/cli.d.ts.map +1 -0
  87. package/dist/src/test-watch/cli.js +44 -0
  88. package/dist/src/test-watch/cli.js.map +1 -0
  89. package/dist/src/test_/cli.d.ts +3 -0
  90. package/dist/src/test_/cli.d.ts.map +1 -0
  91. package/dist/src/test_/cli.js +40 -0
  92. package/dist/src/test_/cli.js.map +1 -0
  93. package/dist/test/index.test.d.ts +2 -0
  94. package/dist/test/index.test.d.ts.map +1 -0
  95. package/dist/test/index.test.js +3 -0
  96. package/dist/test/index.test.js.map +1 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -0
  98. package/package.json +52 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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