@neutron-build/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 (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +27 -0
  3. package/dist/commands/build.d.ts +2 -0
  4. package/dist/commands/build.d.ts.map +1 -0
  5. package/dist/commands/build.js +1251 -0
  6. package/dist/commands/build.js.map +1 -0
  7. package/dist/commands/deploy-check.d.ts +2 -0
  8. package/dist/commands/deploy-check.d.ts.map +1 -0
  9. package/dist/commands/deploy-check.js +157 -0
  10. package/dist/commands/deploy-check.js.map +1 -0
  11. package/dist/commands/dev.d.ts +2 -0
  12. package/dist/commands/dev.d.ts.map +1 -0
  13. package/dist/commands/dev.js +111 -0
  14. package/dist/commands/dev.js.map +1 -0
  15. package/dist/commands/preview.d.ts +2 -0
  16. package/dist/commands/preview.d.ts.map +1 -0
  17. package/dist/commands/preview.js +223 -0
  18. package/dist/commands/preview.js.map +1 -0
  19. package/dist/commands/release-check.d.ts +2 -0
  20. package/dist/commands/release-check.d.ts.map +1 -0
  21. package/dist/commands/release-check.js +9 -0
  22. package/dist/commands/release-check.js.map +1 -0
  23. package/dist/commands/start.d.ts +4 -0
  24. package/dist/commands/start.d.ts.map +1 -0
  25. package/dist/commands/start.js +72 -0
  26. package/dist/commands/start.js.map +1 -0
  27. package/dist/commands/worker.d.ts +2 -0
  28. package/dist/commands/worker.d.ts.map +1 -0
  29. package/dist/commands/worker.js +178 -0
  30. package/dist/commands/worker.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +65 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/index.test.d.ts +2 -0
  36. package/dist/index.test.d.ts.map +1 -0
  37. package/dist/index.test.js +685 -0
  38. package/dist/index.test.js.map +1 -0
  39. package/package.json +57 -0
@@ -0,0 +1,72 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { createServer, startServer } from "@neutron-build/core/server";
4
+ import { prepareContentCollections, resolveRuntime } from "@neutron-build/core";
5
+ import { loadConfigFromFile, loadEnv } from "vite";
6
+ export async function start() {
7
+ const cwd = process.cwd();
8
+ applyEnv(cwd, "production");
9
+ const neutronConfig = await loadNeutronConfig(cwd);
10
+ await prepareContentCollections({
11
+ rootDir: cwd,
12
+ writeManifest: false,
13
+ writeTypes: false,
14
+ });
15
+ // Parse CLI args
16
+ const args = process.argv.slice(3);
17
+ let port = neutronConfig.server?.port || 3000;
18
+ let host = neutronConfig.server?.host || "0.0.0.0";
19
+ for (let i = 0; i < args.length; i++) {
20
+ if (args[i] === "--port" && args[i + 1]) {
21
+ port = parseInt(args[i + 1], 10);
22
+ i++;
23
+ }
24
+ else if (args[i].startsWith("--port=")) {
25
+ port = parseInt(args[i].split("=")[1], 10);
26
+ }
27
+ else if (args[i] === "--host" && args[i + 1]) {
28
+ host = args[i + 1];
29
+ i++;
30
+ }
31
+ else if (args[i].startsWith("--host=")) {
32
+ host = args[i].split("=")[1];
33
+ }
34
+ }
35
+ await startServer({
36
+ ...neutronConfig.server,
37
+ routes: neutronConfig.routes,
38
+ runtime: resolveRuntime(neutronConfig),
39
+ port,
40
+ host,
41
+ rootDir: cwd,
42
+ });
43
+ }
44
+ export { createServer };
45
+ async function loadNeutronConfig(cwd) {
46
+ const candidates = [
47
+ "neutron.config.ts",
48
+ "neutron.config.js",
49
+ "neutron.config.mjs",
50
+ "neutron.config.cjs",
51
+ ];
52
+ for (const file of candidates) {
53
+ const fullPath = path.resolve(cwd, file);
54
+ if (!fs.existsSync(fullPath)) {
55
+ continue;
56
+ }
57
+ const loaded = await loadConfigFromFile({ command: "serve", mode: "production" }, fullPath, cwd);
58
+ if (loaded?.config) {
59
+ return loaded.config;
60
+ }
61
+ }
62
+ return {};
63
+ }
64
+ function applyEnv(cwd, mode) {
65
+ const env = loadEnv(mode, cwd, "");
66
+ for (const [key, value] of Object.entries(env)) {
67
+ if (process.env[key] === undefined) {
68
+ process.env[key] = value;
69
+ }
70
+ }
71
+ }
72
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,yBAAyB,CAAC;QAC9B,OAAO,EAAE,GAAG;QACZ,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,iBAAiB;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;IAC9C,IAAI,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,WAAW,CAAC;QAChB,GAAG,aAAa,CAAC,MAAM;QACvB,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC;QACtC,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,GAAG;KACb,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,oBAAoB;QACpB,oBAAoB;KACrB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EACxC,QAAQ,EACR,GAAG,CACJ,CAAC;QACF,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,MAAuB,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAY;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function worker(): Promise<void>;
2
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"AA0CA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAsG5C"}
@@ -0,0 +1,178 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { createServer, loadConfigFromFile, loadEnv, mergeConfig, } from "vite";
4
+ import { resolveRuntime, resolveRuntimeAliases, resolveRuntimeNoExternal, } from "@neutron-build/core";
5
+ const WORKER_ENTRY_CANDIDATES = [
6
+ "src/worker.ts",
7
+ "src/worker.tsx",
8
+ "src/worker/index.ts",
9
+ "src/worker/index.tsx",
10
+ "worker.ts",
11
+ "worker.js",
12
+ ];
13
+ export async function worker() {
14
+ const cwd = process.cwd();
15
+ const args = parseWorkerArgs(process.argv.slice(3));
16
+ applyEnv(cwd, args.mode);
17
+ const neutronConfig = await loadNeutronConfig(cwd, args.mode);
18
+ const entryPath = resolveWorkerEntry(cwd, args.entry, neutronConfig.worker?.entry);
19
+ if (!entryPath) {
20
+ console.error("Worker entry not found. Provide --entry <path>, set worker.entry in neutron.config, or create src/worker.ts.");
21
+ process.exit(1);
22
+ }
23
+ const runtime = resolveRuntime(neutronConfig);
24
+ const runtimeAliases = resolveRuntimeAliases(runtime);
25
+ const runtimeNoExternal = resolveRuntimeNoExternal(runtime);
26
+ const loadedConfig = await loadConfigFromFile({ command: "serve", mode: args.mode }, undefined, cwd);
27
+ const userConfig = loadedConfig?.config || {};
28
+ const viteServer = await createServer(mergeConfig(userConfig, {
29
+ configFile: false,
30
+ root: cwd,
31
+ ...(runtimeAliases ? { resolve: { alias: runtimeAliases } } : {}),
32
+ ...(runtimeNoExternal.length > 0 ? { ssr: { noExternal: runtimeNoExternal } } : {}),
33
+ server: {
34
+ middlewareMode: true,
35
+ hmr: false,
36
+ ws: false,
37
+ },
38
+ optimizeDeps: {
39
+ disabled: true,
40
+ noDiscovery: true,
41
+ entries: [],
42
+ },
43
+ appType: "custom",
44
+ logLevel: "error",
45
+ }));
46
+ const abortController = new AbortController();
47
+ let teardown;
48
+ let shuttingDown = false;
49
+ const shutdown = async () => {
50
+ if (shuttingDown) {
51
+ return;
52
+ }
53
+ shuttingDown = true;
54
+ abortController.abort();
55
+ try {
56
+ await teardown?.();
57
+ }
58
+ finally {
59
+ await viteServer.close();
60
+ }
61
+ };
62
+ process.on("SIGTERM", () => {
63
+ void shutdown().finally(() => process.exit(0));
64
+ });
65
+ process.on("SIGINT", () => {
66
+ void shutdown().finally(() => process.exit(0));
67
+ });
68
+ try {
69
+ const module = await viteServer.ssrLoadModule(entryPath);
70
+ const run = resolveWorkerRunner(module, entryPath);
71
+ const result = await run({
72
+ mode: args.mode,
73
+ args: args.workerArgs,
74
+ signal: abortController.signal,
75
+ log: (message) => {
76
+ console.log(`[worker] ${message}`);
77
+ },
78
+ });
79
+ if (typeof result === "function") {
80
+ teardown = result;
81
+ }
82
+ if (args.once) {
83
+ await shutdown();
84
+ return;
85
+ }
86
+ console.log(`\n Neutron worker running:\n`);
87
+ console.log(` Entry: ${path.relative(cwd, entryPath)}\n`);
88
+ console.log(` Press Ctrl+C to stop\n`);
89
+ await new Promise(() => {
90
+ // Keep process alive until a shutdown signal is received.
91
+ });
92
+ }
93
+ catch (error) {
94
+ await shutdown();
95
+ throw error;
96
+ }
97
+ }
98
+ function resolveWorkerRunner(module, entryPath) {
99
+ const candidate = module.run || module.default;
100
+ if (typeof candidate !== "function") {
101
+ throw new Error(`Worker module "${entryPath}" must export "run" (or default) as a function.`);
102
+ }
103
+ return candidate;
104
+ }
105
+ function parseWorkerArgs(argv) {
106
+ let entry;
107
+ let mode = "development";
108
+ let once = false;
109
+ const passthroughIndex = argv.indexOf("--");
110
+ const workerArgs = passthroughIndex >= 0 ? argv.slice(passthroughIndex + 1) : [];
111
+ const parsedArgs = passthroughIndex >= 0 ? argv.slice(0, passthroughIndex) : argv;
112
+ for (let i = 0; i < parsedArgs.length; i++) {
113
+ const arg = parsedArgs[i];
114
+ if (arg === "--entry" && parsedArgs[i + 1]) {
115
+ entry = parsedArgs[++i];
116
+ continue;
117
+ }
118
+ if (arg.startsWith("--entry=")) {
119
+ entry = arg.split("=")[1];
120
+ continue;
121
+ }
122
+ if (arg === "--mode" && parsedArgs[i + 1]) {
123
+ mode = parsedArgs[++i];
124
+ continue;
125
+ }
126
+ if (arg.startsWith("--mode=")) {
127
+ mode = arg.split("=")[1];
128
+ continue;
129
+ }
130
+ if (arg === "--once") {
131
+ once = true;
132
+ }
133
+ }
134
+ return {
135
+ entry,
136
+ mode,
137
+ once,
138
+ workerArgs,
139
+ };
140
+ }
141
+ function resolveWorkerEntry(cwd, cliEntry, configEntry) {
142
+ const candidates = [cliEntry, configEntry, ...WORKER_ENTRY_CANDIDATES].filter((candidate) => Boolean(candidate));
143
+ for (const candidate of candidates) {
144
+ const absolutePath = path.resolve(cwd, candidate);
145
+ if (fs.existsSync(absolutePath)) {
146
+ return absolutePath;
147
+ }
148
+ }
149
+ return null;
150
+ }
151
+ async function loadNeutronConfig(cwd, mode) {
152
+ const candidates = [
153
+ "neutron.config.ts",
154
+ "neutron.config.js",
155
+ "neutron.config.mjs",
156
+ "neutron.config.cjs",
157
+ ];
158
+ for (const file of candidates) {
159
+ const fullPath = path.resolve(cwd, file);
160
+ if (!fs.existsSync(fullPath)) {
161
+ continue;
162
+ }
163
+ const loaded = await loadConfigFromFile({ command: "serve", mode }, fullPath, cwd);
164
+ if (loaded?.config) {
165
+ return loaded.config;
166
+ }
167
+ }
168
+ return {};
169
+ }
170
+ function applyEnv(cwd, mode) {
171
+ const env = loadEnv(mode, cwd, "");
172
+ for (const [key, value] of Object.entries(env)) {
173
+ if (process.env[key] === undefined) {
174
+ process.env[key] = value;
175
+ }
176
+ }
177
+ }
178
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env node
2
+ import { dev } from "./commands/dev.js";
3
+ import { build } from "./commands/build.js";
4
+ import { preview } from "./commands/preview.js";
5
+ import { start } from "./commands/start.js";
6
+ import { deployCheck } from "./commands/deploy-check.js";
7
+ import { worker } from "./commands/worker.js";
8
+ import { releaseCheck } from "./commands/release-check.js";
9
+ const args = process.argv.slice(2);
10
+ const command = args[0];
11
+ async function main() {
12
+ switch (command) {
13
+ case "dev":
14
+ await dev();
15
+ break;
16
+ case "build":
17
+ await build();
18
+ break;
19
+ case "preview":
20
+ await preview();
21
+ break;
22
+ case "start":
23
+ await start();
24
+ break;
25
+ case "deploy-check":
26
+ await deployCheck();
27
+ break;
28
+ case "release-check":
29
+ await releaseCheck();
30
+ break;
31
+ case "worker":
32
+ await worker();
33
+ break;
34
+ default:
35
+ console.log(`Neutron TypeScript CLI
36
+
37
+ Usage:
38
+ neutron-ts dev Start development server
39
+ neutron-ts build Build for production
40
+ --preset vercel|cloudflare|docker|static
41
+ --cloudflare-mode pages|workers
42
+ neutron-ts start Start production server
43
+ neutron-ts preview Preview production build
44
+ neutron-ts release-check
45
+ --preset vercel|cloudflare|docker|static
46
+ --dist dist
47
+ neutron-ts worker Run background worker module
48
+ --entry src/worker.ts
49
+ --mode development|production
50
+ --once
51
+ neutron-ts deploy-check
52
+ --preset vercel|cloudflare|docker|static
53
+ --dist dist
54
+
55
+ NOTE: The global 'neutron' command is the universal CLI.
56
+ TS-specific commands use 'neutron-ts' (or 'npx neutron-ts').
57
+ `);
58
+ process.exit(1);
59
+ }
60
+ }
61
+ main().catch((err) => {
62
+ console.error(err);
63
+ process.exit(1);
64
+ });
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,OAAO;YACV,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,OAAO,EAAE,CAAC;YAChB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,eAAe;YAClB,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,MAAM,EAAE,CAAC;YACf,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBjB,CAAC,CAAC;YACG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}