@holo-js/cli 0.2.0 → 0.2.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 (36) hide show
  1. package/dist/bin/holo.mjs +31 -17
  2. package/dist/{broadcast-WI6PJS5P.mjs → broadcast-III5MB3R.mjs} +5 -5
  3. package/dist/{broadcast-YWS4N5QU.mjs → broadcast-ZIFYFOUQ.mjs} +5 -5
  4. package/dist/{cache-KWNQECAA.mjs → cache-634WUR3T.mjs} +4 -4
  5. package/dist/{cache-QARFSW4F.mjs → cache-7J7DIOP6.mjs} +4 -4
  6. package/dist/{cache-migrations-3OXR4FN5.mjs → cache-migrations-2NBEUF2T.mjs} +5 -5
  7. package/dist/{cache-migrations-MDFMDVTK.mjs → cache-migrations-S2LJMDOQ.mjs} +5 -5
  8. package/dist/{chunk-KWRIBHC3.mjs → chunk-4OHJC3GL.mjs} +51 -49
  9. package/dist/{chunk-EWYXSN2C.mjs → chunk-5TEH2QPK.mjs} +28 -4
  10. package/dist/{chunk-2DKQKZML.mjs → chunk-J76GH2DR.mjs} +41 -13
  11. package/dist/{chunk-IUDD5FYL.mjs → chunk-KS5TWO75.mjs} +5 -3
  12. package/dist/{chunk-UPZH6KCF.mjs → chunk-MCVRN7KX.mjs} +51 -49
  13. package/dist/{chunk-QA7TP5EO.mjs → chunk-SFRAGRHY.mjs} +28 -4
  14. package/dist/{chunk-2RGJTPYF.mjs → chunk-VP2E62DF.mjs} +1 -1
  15. package/dist/{chunk-ONKESAQA.mjs → chunk-YEFJBN56.mjs} +1 -1
  16. package/dist/{config-TWEO2R4N.mjs → config-MD27U4FM.mjs} +2 -2
  17. package/dist/{dev-2OULECTU.mjs → dev-M2GGURAX.mjs} +7 -5
  18. package/dist/{dev-PJMEGTAC.mjs → dev-PBNFQK6Y.mjs} +7 -5
  19. package/dist/{discovery-7FXND7Y6.mjs → discovery-GWTBF5RZ.mjs} +2 -2
  20. package/dist/{generators-Z4XLSMC7.mjs → generators-BZJ53PUU.mjs} +5 -5
  21. package/dist/{generators-4BP7B47W.mjs → generators-DEPLONDJ.mjs} +5 -5
  22. package/dist/index.mjs +31 -17
  23. package/dist/{media-migrations-BFEL7NFG.mjs → media-migrations-5EISZBSD.mjs} +6 -6
  24. package/dist/{media-migrations-VR7DLLR6.mjs → media-migrations-NMUWBEKE.mjs} +6 -6
  25. package/dist/{queue-SVOJPTRO.mjs → queue-FRAVPNFJ.mjs} +9 -9
  26. package/dist/{queue-YCBQTCYI.mjs → queue-GY7BWGTX.mjs} +9 -9
  27. package/dist/{queue-migrations-HPXOO3NA.mjs → queue-migrations-J7YPIKRB.mjs} +5 -5
  28. package/dist/{queue-migrations-X4P7FZKJ.mjs → queue-migrations-O24ERNFF.mjs} +5 -5
  29. package/dist/{runtime-CPKR663Y.mjs → runtime-2AA7ZLJ6.mjs} +5 -5
  30. package/dist/{runtime-GIE56H47.mjs → runtime-HGK2MWSC.mjs} +5 -5
  31. package/dist/runtime-worker.mjs +42 -8
  32. package/dist/{scaffold-3QPGYQEQ.mjs → scaffold-DEOTRALR.mjs} +3 -3
  33. package/dist/{scaffold-RGAAHC6I.mjs → scaffold-Y232IGYS.mjs} +3 -3
  34. package/dist/{security-7H5TNHZY.mjs → security-MZW2CJKS.mjs} +4 -4
  35. package/dist/{security-BZGD6ONY.mjs → security-XVG673UR.mjs} +4 -4
  36. package/package.json +8 -8
package/dist/bin/holo.mjs CHANGED
@@ -29,10 +29,10 @@ import {
29
29
  fileExists
30
30
  } from "../chunk-LBJAJLKU.mjs";
31
31
  import "../chunk-D7O4SU6N.mjs";
32
- import "../chunk-2RGJTPYF.mjs";
33
- import "../chunk-UPZH6KCF.mjs";
34
- import "../chunk-ONKESAQA.mjs";
35
- import "../chunk-2DKQKZML.mjs";
32
+ import "../chunk-VP2E62DF.mjs";
33
+ import "../chunk-4OHJC3GL.mjs";
34
+ import "../chunk-YEFJBN56.mjs";
35
+ import "../chunk-J76GH2DR.mjs";
36
36
  import {
37
37
  SUPPORTED_AUTH_SOCIAL_PROVIDERS
38
38
  } from "../chunk-ILU426CF.mjs";
@@ -127,51 +127,51 @@ var projectDiscoveryModulePromise;
127
127
  var projectRuntimeModulePromise;
128
128
  var projectScaffoldModulePromise;
129
129
  function loadRuntimeModule() {
130
- runtimeModulePromise ??= import("../runtime-CPKR663Y.mjs");
130
+ runtimeModulePromise ??= import("../runtime-HGK2MWSC.mjs");
131
131
  return runtimeModulePromise;
132
132
  }
133
133
  function loadQueueModule() {
134
- queueModulePromise ??= import("../queue-SVOJPTRO.mjs");
134
+ queueModulePromise ??= import("../queue-GY7BWGTX.mjs");
135
135
  return queueModulePromise;
136
136
  }
137
137
  function loadCacheModule() {
138
- cacheModulePromise ??= import("../cache-QARFSW4F.mjs");
138
+ cacheModulePromise ??= import("../cache-634WUR3T.mjs");
139
139
  return cacheModulePromise;
140
140
  }
141
141
  function loadQueueMigrationsModule() {
142
- queueMigrationsModulePromise ??= import("../queue-migrations-HPXOO3NA.mjs");
142
+ queueMigrationsModulePromise ??= import("../queue-migrations-J7YPIKRB.mjs");
143
143
  return queueMigrationsModulePromise;
144
144
  }
145
145
  function loadCacheMigrationsModule() {
146
- cacheMigrationsModulePromise ??= import("../cache-migrations-3OXR4FN5.mjs");
146
+ cacheMigrationsModulePromise ??= import("../cache-migrations-2NBEUF2T.mjs");
147
147
  return cacheMigrationsModulePromise;
148
148
  }
149
149
  function loadMediaMigrationsModule() {
150
- mediaMigrationsModulePromise ??= import("../media-migrations-VR7DLLR6.mjs");
150
+ mediaMigrationsModulePromise ??= import("../media-migrations-5EISZBSD.mjs");
151
151
  return mediaMigrationsModulePromise;
152
152
  }
153
153
  function loadGeneratorsModule() {
154
- generatorsModulePromise ??= import("../generators-4BP7B47W.mjs");
154
+ generatorsModulePromise ??= import("../generators-DEPLONDJ.mjs");
155
155
  return generatorsModulePromise;
156
156
  }
157
157
  function loadBroadcastModule() {
158
- broadcastModulePromise ??= import("../broadcast-YWS4N5QU.mjs");
158
+ broadcastModulePromise ??= import("../broadcast-ZIFYFOUQ.mjs");
159
159
  return broadcastModulePromise;
160
160
  }
161
161
  function loadSecurityModule() {
162
- securityModulePromise ??= import("../security-7H5TNHZY.mjs");
162
+ securityModulePromise ??= import("../security-XVG673UR.mjs");
163
163
  return securityModulePromise;
164
164
  }
165
165
  function loadDevModule() {
166
- devModulePromise ??= import("../dev-2OULECTU.mjs");
166
+ devModulePromise ??= import("../dev-M2GGURAX.mjs");
167
167
  return devModulePromise;
168
168
  }
169
169
  function loadProjectConfigModule() {
170
- projectConfigModulePromise ??= import("../config-TWEO2R4N.mjs");
170
+ projectConfigModulePromise ??= import("../config-MD27U4FM.mjs");
171
171
  return projectConfigModulePromise;
172
172
  }
173
173
  function loadProjectDiscoveryModule() {
174
- projectDiscoveryModulePromise ??= import("../discovery-7FXND7Y6.mjs");
174
+ projectDiscoveryModulePromise ??= import("../discovery-GWTBF5RZ.mjs");
175
175
  return projectDiscoveryModulePromise;
176
176
  }
177
177
  function loadProjectRuntimeModule() {
@@ -179,7 +179,7 @@ function loadProjectRuntimeModule() {
179
179
  return projectRuntimeModulePromise;
180
180
  }
181
181
  function loadProjectScaffoldModule() {
182
- projectScaffoldModulePromise ??= import("../scaffold-3QPGYQEQ.mjs");
182
+ projectScaffoldModulePromise ??= import("../scaffold-Y232IGYS.mjs");
183
183
  return projectScaffoldModulePromise;
184
184
  }
185
185
  async function resolveRuntimeExecutor(runtimeExecutor) {
@@ -189,6 +189,7 @@ var projectExecutorLoaders = {
189
189
  runProjectPrepare: async () => (await loadDevModule()).runProjectPrepare,
190
190
  runProjectDevServer: async () => (await loadDevModule()).runProjectDevServer,
191
191
  runProjectLifecycleScript: async () => (await loadDevModule()).runProjectLifecycleScript,
192
+ runProjectStartServer: async () => (await loadDevModule()).runProjectStartServer,
192
193
  runProjectDependencyInstall: async () => (await loadDevModule()).runProjectDependencyInstall
193
194
  };
194
195
  async function resolveExecutor(executors, loaders, key) {
@@ -745,6 +746,19 @@ function createInternalCommands(context, runtimeExecutor, queueExecutors = {}, p
745
746
  await runProjectLifecycleScript(context, context.projectRoot, "holo:build");
746
747
  }
747
748
  },
749
+ {
750
+ name: "start",
751
+ description: "Run the production framework server with Holo runtime preloads.",
752
+ usage: "holo start",
753
+ source: "internal",
754
+ async prepare() {
755
+ return { args: [], flags: {} };
756
+ },
757
+ async run() {
758
+ const runProjectStartServer = await resolveProjectExecutor(projectExecutors, "runProjectStartServer");
759
+ await runProjectStartServer(context, context.projectRoot);
760
+ }
761
+ },
748
762
  {
749
763
  name: "broadcast:work",
750
764
  description: "Run the self-hosted broadcast worker.",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  initializeProjectRuntime
3
- } from "./chunk-IUDD5FYL.mjs";
3
+ } from "./chunk-KS5TWO75.mjs";
4
4
  import "./chunk-LBJAJLKU.mjs";
5
5
  import {
6
6
  writeLine
@@ -8,14 +8,14 @@ import {
8
8
  import "./chunk-D7O4SU6N.mjs";
9
9
  import {
10
10
  prepareProjectDiscovery
11
- } from "./chunk-2RGJTPYF.mjs";
12
- import "./chunk-KWRIBHC3.mjs";
11
+ } from "./chunk-VP2E62DF.mjs";
12
+ import "./chunk-MCVRN7KX.mjs";
13
13
  import {
14
14
  loadProjectConfig
15
- } from "./chunk-ONKESAQA.mjs";
15
+ } from "./chunk-YEFJBN56.mjs";
16
16
  import {
17
17
  loadGeneratedProjectRegistry
18
- } from "./chunk-2DKQKZML.mjs";
18
+ } from "./chunk-J76GH2DR.mjs";
19
19
  import {
20
20
  importProjectModule,
21
21
  resolveProjectPackageImportSpecifier
@@ -3,19 +3,19 @@ import {
3
3
  } from "./chunk-I7QBCEV7.mjs";
4
4
  import {
5
5
  initializeProjectRuntime
6
- } from "./chunk-IUDD5FYL.mjs";
6
+ } from "./chunk-KS5TWO75.mjs";
7
7
  import "./chunk-LBJAJLKU.mjs";
8
8
  import "./chunk-D7O4SU6N.mjs";
9
9
  import {
10
10
  prepareProjectDiscovery
11
- } from "./chunk-2RGJTPYF.mjs";
12
- import "./chunk-UPZH6KCF.mjs";
11
+ } from "./chunk-VP2E62DF.mjs";
12
+ import "./chunk-4OHJC3GL.mjs";
13
13
  import {
14
14
  loadProjectConfig
15
- } from "./chunk-ONKESAQA.mjs";
15
+ } from "./chunk-YEFJBN56.mjs";
16
16
  import {
17
17
  loadGeneratedProjectRegistry
18
- } from "./chunk-2DKQKZML.mjs";
18
+ } from "./chunk-J76GH2DR.mjs";
19
19
  import {
20
20
  importProjectModule,
21
21
  resolveProjectPackageImportSpecifier
@@ -2,10 +2,10 @@ import {
2
2
  writeLine
3
3
  } from "./chunk-I7QBCEV7.mjs";
4
4
  import "./chunk-D7O4SU6N.mjs";
5
- import "./chunk-2RGJTPYF.mjs";
6
- import "./chunk-KWRIBHC3.mjs";
7
- import "./chunk-ONKESAQA.mjs";
8
- import "./chunk-2DKQKZML.mjs";
5
+ import "./chunk-VP2E62DF.mjs";
6
+ import "./chunk-4OHJC3GL.mjs";
7
+ import "./chunk-YEFJBN56.mjs";
8
+ import "./chunk-J76GH2DR.mjs";
9
9
  import {
10
10
  resolveProjectPackageImportSpecifier
11
11
  } from "./chunk-ILU426CF.mjs";
@@ -2,10 +2,10 @@ import {
2
2
  writeLine
3
3
  } from "./chunk-I7QBCEV7.mjs";
4
4
  import "./chunk-D7O4SU6N.mjs";
5
- import "./chunk-2RGJTPYF.mjs";
6
- import "./chunk-UPZH6KCF.mjs";
7
- import "./chunk-ONKESAQA.mjs";
8
- import "./chunk-2DKQKZML.mjs";
5
+ import "./chunk-VP2E62DF.mjs";
6
+ import "./chunk-MCVRN7KX.mjs";
7
+ import "./chunk-YEFJBN56.mjs";
8
+ import "./chunk-J76GH2DR.mjs";
9
9
  import {
10
10
  resolveProjectPackageImportSpecifier
11
11
  } from "./chunk-ILU426CF.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runProjectPrepare
3
- } from "./chunk-EWYXSN2C.mjs";
3
+ } from "./chunk-5TEH2QPK.mjs";
4
4
  import "./chunk-FGQ2I2YH.mjs";
5
5
  import {
6
6
  getRegistryMigrationSlug,
@@ -15,14 +15,14 @@ import "./chunk-LBJAJLKU.mjs";
15
15
  import "./chunk-D7O4SU6N.mjs";
16
16
  import {
17
17
  prepareProjectDiscovery
18
- } from "./chunk-2RGJTPYF.mjs";
19
- import "./chunk-UPZH6KCF.mjs";
18
+ } from "./chunk-VP2E62DF.mjs";
19
+ import "./chunk-4OHJC3GL.mjs";
20
20
  import {
21
21
  ensureProjectConfig
22
- } from "./chunk-ONKESAQA.mjs";
22
+ } from "./chunk-YEFJBN56.mjs";
23
23
  import {
24
24
  loadGeneratedProjectRegistry
25
- } from "./chunk-2DKQKZML.mjs";
25
+ } from "./chunk-J76GH2DR.mjs";
26
26
  import {
27
27
  makeProjectRelativePath,
28
28
  resolveDefaultArtifactPath,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runProjectPrepare
3
- } from "./chunk-QA7TP5EO.mjs";
3
+ } from "./chunk-SFRAGRHY.mjs";
4
4
  import "./chunk-FGQ2I2YH.mjs";
5
5
  import {
6
6
  getRegistryMigrationSlug,
@@ -15,14 +15,14 @@ import {
15
15
  import "./chunk-D7O4SU6N.mjs";
16
16
  import {
17
17
  prepareProjectDiscovery
18
- } from "./chunk-2RGJTPYF.mjs";
19
- import "./chunk-KWRIBHC3.mjs";
18
+ } from "./chunk-VP2E62DF.mjs";
19
+ import "./chunk-MCVRN7KX.mjs";
20
20
  import {
21
21
  ensureProjectConfig
22
- } from "./chunk-ONKESAQA.mjs";
22
+ } from "./chunk-YEFJBN56.mjs";
23
23
  import {
24
24
  loadGeneratedProjectRegistry
25
- } from "./chunk-2DKQKZML.mjs";
25
+ } from "./chunk-J76GH2DR.mjs";
26
26
  import {
27
27
  makeProjectRelativePath,
28
28
  resolveDefaultArtifactPath,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  loadProjectConfig,
3
3
  resolveGeneratedSchemaPath
4
- } from "./chunk-ONKESAQA.mjs";
4
+ } from "./chunk-YEFJBN56.mjs";
5
5
  import {
6
6
  loadGeneratedProjectRegistry,
7
7
  relativeImportPath,
@@ -20,7 +20,7 @@ import {
20
20
  renderNextRuntimeBootstrap,
21
21
  renderSvelteHoloHelper,
22
22
  renderSvelteViteConfig
23
- } from "./chunk-2DKQKZML.mjs";
23
+ } from "./chunk-J76GH2DR.mjs";
24
24
  import {
25
25
  AUTH_CONFIG_FILE_NAMES,
26
26
  AUTH_SOCIAL_PROVIDER_PACKAGE_NAMES,
@@ -64,7 +64,7 @@ import { loadConfigDirectory } from "@holo-js/config";
64
64
  // package.json
65
65
  var package_default = {
66
66
  name: "@holo-js/cli",
67
- version: "0.2.0",
67
+ version: "0.2.1",
68
68
  description: "Holo-JS Framework - project creation, discovery, and operational CLI",
69
69
  type: "module",
70
70
  license: "MIT",
@@ -118,49 +118,49 @@ var WORKSPACE_CATALOG = Object.freeze({
118
118
  "@clerk/backend": "^3.4.7",
119
119
  "@clack/prompts": "^1.5.1",
120
120
  "@eslint/js": "^9.17.0",
121
- "@holo-js/adapter-next": "^0.2.0",
122
- "@holo-js/adapter-nuxt": "^0.2.0",
123
- "@holo-js/adapter-sveltekit": "^0.2.0",
124
- "@holo-js/auth": "^0.2.0",
125
- "@holo-js/auth-clerk": "^0.2.0",
126
- "@holo-js/auth-social": "^0.2.0",
127
- "@holo-js/auth-social-apple": "^0.2.0",
128
- "@holo-js/auth-social-discord": "^0.2.0",
129
- "@holo-js/auth-social-facebook": "^0.2.0",
130
- "@holo-js/auth-social-github": "^0.2.0",
131
- "@holo-js/auth-social-google": "^0.2.0",
132
- "@holo-js/auth-social-linkedin": "^0.2.0",
133
- "@holo-js/auth-workos": "^0.2.0",
134
- "@holo-js/authorization": "^0.2.0",
135
- "@holo-js/broadcast": "^0.2.0",
136
- "@holo-js/cache": "^0.2.0",
137
- "@holo-js/cache-db": "^0.2.0",
138
- "@holo-js/cache-redis": "^0.2.0",
139
- "@holo-js/cli": "^0.2.0",
140
- "@holo-js/config": "^0.2.0",
141
- "@holo-js/core": "^0.2.0",
142
- "@holo-js/db": "^0.2.0",
143
- "@holo-js/db-mysql": "^0.2.0",
144
- "@holo-js/db-postgres": "^0.2.0",
145
- "@holo-js/db-sqlite": "^0.2.0",
146
- "@holo-js/events": "^0.2.0",
147
- "@holo-js/flux": "^0.2.0",
148
- "@holo-js/flux-react": "^0.2.0",
149
- "@holo-js/flux-svelte": "^0.2.0",
150
- "@holo-js/flux-vue": "^0.2.0",
151
- "@holo-js/forms": "^0.2.0",
152
- "@holo-js/mail": "^0.2.0",
153
- "@holo-js/media": "^0.2.0",
154
- "@holo-js/notifications": "^0.2.0",
155
- "@holo-js/queue": "^0.2.0",
156
- "@holo-js/queue-db": "^0.2.0",
157
- "@holo-js/queue-redis": "^0.2.0",
158
- "@holo-js/realtime": "^0.2.0",
159
- "@holo-js/security": "^0.2.0",
160
- "@holo-js/session": "^0.2.0",
161
- "@holo-js/storage": "^0.2.0",
162
- "@holo-js/storage-s3": "^0.2.0",
163
- "@holo-js/validation": "^0.2.0",
121
+ "@holo-js/adapter-next": "^0.2.1",
122
+ "@holo-js/adapter-nuxt": "^0.2.1",
123
+ "@holo-js/adapter-sveltekit": "^0.2.1",
124
+ "@holo-js/auth": "^0.2.1",
125
+ "@holo-js/auth-clerk": "^0.2.1",
126
+ "@holo-js/auth-social": "^0.2.1",
127
+ "@holo-js/auth-social-apple": "^0.2.1",
128
+ "@holo-js/auth-social-discord": "^0.2.1",
129
+ "@holo-js/auth-social-facebook": "^0.2.1",
130
+ "@holo-js/auth-social-github": "^0.2.1",
131
+ "@holo-js/auth-social-google": "^0.2.1",
132
+ "@holo-js/auth-social-linkedin": "^0.2.1",
133
+ "@holo-js/auth-workos": "^0.2.1",
134
+ "@holo-js/authorization": "^0.2.1",
135
+ "@holo-js/broadcast": "^0.2.1",
136
+ "@holo-js/cache": "^0.2.1",
137
+ "@holo-js/cache-db": "^0.2.1",
138
+ "@holo-js/cache-redis": "^0.2.1",
139
+ "@holo-js/cli": "^0.2.1",
140
+ "@holo-js/config": "^0.2.1",
141
+ "@holo-js/core": "^0.2.1",
142
+ "@holo-js/db": "^0.2.1",
143
+ "@holo-js/db-mysql": "^0.2.1",
144
+ "@holo-js/db-postgres": "^0.2.1",
145
+ "@holo-js/db-sqlite": "^0.2.1",
146
+ "@holo-js/events": "^0.2.1",
147
+ "@holo-js/flux": "^0.2.1",
148
+ "@holo-js/flux-react": "^0.2.1",
149
+ "@holo-js/flux-svelte": "^0.2.1",
150
+ "@holo-js/flux-vue": "^0.2.1",
151
+ "@holo-js/forms": "^0.2.1",
152
+ "@holo-js/mail": "^0.2.1",
153
+ "@holo-js/media": "^0.2.1",
154
+ "@holo-js/notifications": "^0.2.1",
155
+ "@holo-js/queue": "^0.2.1",
156
+ "@holo-js/queue-db": "^0.2.1",
157
+ "@holo-js/queue-redis": "^0.2.1",
158
+ "@holo-js/realtime": "^0.2.1",
159
+ "@holo-js/security": "^0.2.1",
160
+ "@holo-js/session": "^0.2.1",
161
+ "@holo-js/storage": "^0.2.1",
162
+ "@holo-js/storage-s3": "^0.2.1",
163
+ "@holo-js/validation": "^0.2.1",
164
164
  "@nuxt/kit": "^4.4.4",
165
165
  "@nuxt/module-builder": "^1.0.2",
166
166
  "@sveltejs/adapter-node": "^5.5.4",
@@ -177,7 +177,7 @@ var WORKSPACE_CATALOG = Object.freeze({
177
177
  "@vitest/coverage-v8": "^4.1.5",
178
178
  "better-sqlite3": "^11.7.0",
179
179
  "bullmq": "^5.71.0",
180
- "create-holo-js": "^0.2.0",
180
+ "create-holo-js": "^0.2.1",
181
181
  "esbuild": "^0.27.4",
182
182
  "eslint": "^9.17.0",
183
183
  "fast-check": "^4.5.3",
@@ -2418,12 +2418,14 @@ function renderScaffoldPackageJson(options) {
2418
2418
  prepare: "holo key:generate && holo prepare",
2419
2419
  dev: "holo dev",
2420
2420
  build: "holo build",
2421
+ start: "holo start",
2421
2422
  lint: options.framework === "nuxt" ? "eslint app config server shared tests *.d.ts --fix --no-warn-ignored --no-error-on-unmatched-pattern" : options.framework === "next" ? "eslint app config server tests --fix --no-warn-ignored --no-error-on-unmatched-pattern" : "eslint src config server tests --fix --no-warn-ignored --no-error-on-unmatched-pattern",
2422
2423
  typecheck: options.framework === "nuxt" ? "nuxt typecheck" : options.framework === "next" ? "tsc -p tsconfig.json --noEmit" : "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
2423
2424
  ["config:cache"]: "holo config:cache",
2424
2425
  ["config:clear"]: "holo config:clear",
2425
2426
  ["holo:dev"]: "node ./.holo-js/framework/run.mjs dev",
2426
- ["holo:build"]: "node ./.holo-js/framework/run.mjs build"
2427
+ ["holo:build"]: "node ./.holo-js/framework/run.mjs build",
2428
+ ["holo:start"]: "node ./.holo-js/framework/run.mjs start"
2427
2429
  },
2428
2430
  dependencies,
2429
2431
  devDependencies
@@ -3092,7 +3094,7 @@ async function installMediaIntoProject(projectRoot) {
3092
3094
  if (!mediaConfigPath) {
3093
3095
  await writeTextFile(resolve4(projectRoot, "config/media.ts"), renderMediaConfig());
3094
3096
  }
3095
- const { createMediaTableMigration } = await import("./media-migrations-BFEL7NFG.mjs");
3097
+ const { createMediaTableMigration } = await import("./media-migrations-5EISZBSD.mjs");
3096
3098
  const migrationFilePath = await createMediaTableMigration(projectRoot, {
3097
3099
  skipIfExists: true
3098
3100
  });
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  prepareProjectDiscovery
3
- } from "./chunk-2RGJTPYF.mjs";
3
+ } from "./chunk-VP2E62DF.mjs";
4
4
  import {
5
5
  syncManagedDriverDependencies
6
- } from "./chunk-UPZH6KCF.mjs";
6
+ } from "./chunk-4OHJC3GL.mjs";
7
7
  import {
8
8
  ensureGeneratedSchemaPlaceholder,
9
9
  ensureProjectConfig
10
- } from "./chunk-ONKESAQA.mjs";
10
+ } from "./chunk-YEFJBN56.mjs";
11
11
  import {
12
12
  renderFrameworkRunner
13
- } from "./chunk-2DKQKZML.mjs";
13
+ } from "./chunk-J76GH2DR.mjs";
14
14
  import {
15
15
  readTextFile,
16
16
  writeTextFile
@@ -88,6 +88,29 @@ async function runProjectLifecycleScript(io, projectRoot, scriptName, spawn2 = s
88
88
  throw new Error(result.stderr?.trim() || result.stdout?.trim() || `Project script "${scriptName}" failed.`);
89
89
  }
90
90
  }
91
+ async function runProjectStartServer(io, projectRoot, spawnProcess = spawn) {
92
+ const runnerPath = join(projectRoot, ".holo-js/framework/run.mjs");
93
+ const child = spawnProcess(process.execPath, [runnerPath, "start"], {
94
+ cwd: projectRoot,
95
+ env: process.env,
96
+ stdio: ["pipe", "pipe", "pipe"]
97
+ });
98
+ child.stdout?.on("data", (chunk) => io.stdout.write(chunk));
99
+ child.stderr?.on("data", (chunk) => io.stderr.write(chunk));
100
+ if (child.stdin) {
101
+ io.stdin.pipe(child.stdin);
102
+ }
103
+ const result = await new Promise((resolvePromise) => {
104
+ child.on("error", (error) => resolvePromise({ kind: "error", error }));
105
+ child.on("close", (code) => resolvePromise({ kind: "close", code }));
106
+ });
107
+ if (result.kind === "error") {
108
+ throw result.error;
109
+ }
110
+ if (result.code !== 0) {
111
+ throw new Error(`Project production server failed with exit code ${result.code ?? "unknown"}.`);
112
+ }
113
+ }
91
114
  async function runProjectDependencyInstall(io, projectRoot, spawn2 = spawnSync) {
92
115
  const invocation = await resolvePackageManagerInstallInvocation(projectRoot);
93
116
  const result = spawn2(invocation.command, [...invocation.args], {
@@ -435,6 +458,7 @@ export {
435
458
  resolvePackageManagerCommand,
436
459
  resolvePackageManagerInstallInvocation,
437
460
  runProjectLifecycleScript,
461
+ runProjectStartServer,
438
462
  runProjectDependencyInstall,
439
463
  runProjectPrepare,
440
464
  toPosixSlashes,
@@ -1035,17 +1035,7 @@ function renderFrameworkRunner(options) {
1035
1035
  "const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'))",
1036
1036
  "const framework = String(manifest.framework ?? '')",
1037
1037
  `const commandName = ${JSON.stringify(commandName)}`,
1038
- "const commandArgs = mode === 'dev'",
1039
- " ? ['dev']",
1040
- " : mode === 'build'",
1041
- " ? framework === 'sveltekit' ? ['build', '--logLevel', 'error'] : ['build']",
1042
- " : undefined",
1043
- "",
1044
- "if (!commandArgs) {",
1045
- " console.error(`[holo] Unknown framework runner mode: ${String(mode)}`)",
1046
- " process.exit(1)",
1047
- "}",
1048
- "",
1038
+ "const passthroughArgs = process.argv.slice(3)",
1049
1039
  "const binaryPath = resolve(",
1050
1040
  " projectRoot,",
1051
1041
  " 'node_modules',",
@@ -1053,6 +1043,39 @@ function renderFrameworkRunner(options) {
1053
1043
  " process.platform === 'win32' ? `${commandName}.cmd` : commandName,",
1054
1044
  ")",
1055
1045
  "",
1046
+ "function resolveCommandInvocation() {",
1047
+ " if (mode === 'dev') {",
1048
+ " return { command: binaryPath, args: ['dev'] }",
1049
+ " }",
1050
+ "",
1051
+ " if (mode === 'build') {",
1052
+ " return { command: binaryPath, args: framework === 'sveltekit' ? ['build', '--logLevel', 'error'] : ['build'] }",
1053
+ " }",
1054
+ "",
1055
+ " if (mode === 'start') {",
1056
+ " if (framework === 'next') {",
1057
+ " return { command: binaryPath, args: ['start', ...passthroughArgs] }",
1058
+ " }",
1059
+ "",
1060
+ " if (framework === 'nuxt') {",
1061
+ " return { command: process.execPath, args: [resolve(projectRoot, '.output/server/index.mjs'), ...passthroughArgs] }",
1062
+ " }",
1063
+ "",
1064
+ " if (framework === 'sveltekit') {",
1065
+ " return { command: process.execPath, args: [resolve(projectRoot, 'build/index.js'), ...passthroughArgs] }",
1066
+ " }",
1067
+ " }",
1068
+ "",
1069
+ " return undefined",
1070
+ "}",
1071
+ "",
1072
+ "const commandInvocation = resolveCommandInvocation()",
1073
+ "",
1074
+ "if (!commandInvocation) {",
1075
+ " console.error(`[holo] Unknown framework runner mode: ${String(mode)}`)",
1076
+ " process.exit(1)",
1077
+ "}",
1078
+ "",
1056
1079
  "const suppressedOutput = framework === 'sveltekit'",
1057
1080
  " ? new Set([",
1058
1081
  ` '"try_get_request_store" is imported from external module "@sveltejs/kit/internal/server" but never used in ".svelte-kit/adapter-node/index.js".',`,
@@ -1209,11 +1232,16 @@ function renderFrameworkRunner(options) {
1209
1232
  " return waitForProcessExit(pid)",
1210
1233
  "}",
1211
1234
  "",
1212
- "if (!existsSync(binaryPath)) {",
1235
+ "if ((mode !== 'start' || framework === 'next') && !existsSync(binaryPath)) {",
1213
1236
  ' console.error(`[holo] Missing framework binary "${commandName}" for "${framework}". Run your package manager install first.`)',
1214
1237
  " process.exit(1)",
1215
1238
  "}",
1216
1239
  "",
1240
+ "if (mode === 'start' && framework !== 'next' && !existsSync(commandInvocation.args[0])) {",
1241
+ ' console.error(`[holo] Missing production server entry "${commandInvocation.args[0]}". Run "holo build" before "holo start".`)',
1242
+ " process.exit(1)",
1243
+ "}",
1244
+ "",
1217
1245
  "let child = null",
1218
1246
  "let forwardedSignal = null",
1219
1247
  "",
@@ -1267,7 +1295,7 @@ function renderFrameworkRunner(options) {
1267
1295
  " ? `${childEnv.NODE_OPTIONS} ${preload}`",
1268
1296
  " : preload",
1269
1297
  " }",
1270
- " child = spawn(binaryPath, commandArgs, {",
1298
+ " child = spawn(commandInvocation.command, commandInvocation.args, {",
1271
1299
  " cwd: projectRoot,",
1272
1300
  " env: childEnv,",
1273
1301
  " stdio: ['inherit', 'pipe', 'pipe'],",
@@ -3,16 +3,17 @@ import {
3
3
  } from "./chunk-LBJAJLKU.mjs";
4
4
  import {
5
5
  prepareProjectDiscovery
6
- } from "./chunk-2RGJTPYF.mjs";
6
+ } from "./chunk-VP2E62DF.mjs";
7
7
  import {
8
8
  loadProjectConfig,
9
9
  resolveGeneratedSchemaPath
10
- } from "./chunk-ONKESAQA.mjs";
10
+ } from "./chunk-YEFJBN56.mjs";
11
11
  import {
12
12
  loadGeneratedProjectRegistry
13
- } from "./chunk-2DKQKZML.mjs";
13
+ } from "./chunk-J76GH2DR.mjs";
14
14
  import {
15
15
  CLI_RUNTIME_ROOT,
16
+ GENERATED_SCHEMA_RUNTIME_PATH,
16
17
  bundleProjectModule
17
18
  } from "./chunk-ILU426CF.mjs";
18
19
 
@@ -377,6 +378,7 @@ async function withRuntimeEnvironment(projectRoot, kind, options, callback) {
377
378
  seeders: environment.bundledSeeders.map((entry) => pathToFileURL(entry).href),
378
379
  generatedSchema: environment.bundledGeneratedSchema ? pathToFileURL(environment.bundledGeneratedSchema).href : void 0,
379
380
  generatedSchemaOutputPath: resolveGeneratedSchemaPath(projectRoot, environment.project.config),
381
+ generatedSchemaRuntimeOutputPath: resolve(projectRoot, GENERATED_SCHEMA_RUNTIME_PATH),
380
382
  options
381
383
  });
382
384
  const runtime = createRuntimeInvocation();