@holo-js/cli 0.1.7 → 0.1.9

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadGeneratedProjectRegistry
3
- } from "./chunk-GEMG3HIO.mjs";
3
+ } from "./chunk-IMOGEKB4.mjs";
4
4
  import {
5
5
  APP_CONFIG_FILE_NAMES,
6
6
  DATABASE_CONFIG_FILE_NAMES,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  loadProjectConfig,
3
3
  resolveGeneratedSchemaPath
4
- } from "./chunk-PWTS5LZZ.mjs";
4
+ } from "./chunk-SRPGIWCF.mjs";
5
5
  import {
6
6
  loadGeneratedProjectRegistry,
7
7
  relativeImportPath,
@@ -15,7 +15,7 @@ import {
15
15
  renderNextHoloHelper,
16
16
  renderNextManagedHostedAuthRouteFiles,
17
17
  renderSvelteHoloHelper
18
- } from "./chunk-GEMG3HIO.mjs";
18
+ } from "./chunk-IMOGEKB4.mjs";
19
19
  import {
20
20
  AUTH_CONFIG_FILE_NAMES,
21
21
  AUTH_SOCIAL_PROVIDER_PACKAGE_NAMES,
@@ -59,7 +59,7 @@ import { loadConfigDirectory } from "@holo-js/config";
59
59
  // package.json
60
60
  var package_default = {
61
61
  name: "@holo-js/cli",
62
- version: "0.1.7",
62
+ version: "0.1.9",
63
63
  description: "Holo-JS Framework - project creation, discovery, and operational CLI",
64
64
  type: "module",
65
65
  license: "MIT",
@@ -110,48 +110,48 @@ var package_default = {
110
110
  var WORKSPACE_CATALOG = Object.freeze({
111
111
  "@clerk/backend": "^3.4.7",
112
112
  "@eslint/js": "^9.17.0",
113
- "@holo-js/adapter-next": "^0.1.7",
114
- "@holo-js/adapter-nuxt": "^0.1.7",
115
- "@holo-js/adapter-sveltekit": "^0.1.7",
116
- "@holo-js/auth": "^0.1.7",
117
- "@holo-js/auth-clerk": "^0.1.7",
118
- "@holo-js/auth-social": "^0.1.7",
119
- "@holo-js/auth-social-apple": "^0.1.7",
120
- "@holo-js/auth-social-discord": "^0.1.7",
121
- "@holo-js/auth-social-facebook": "^0.1.7",
122
- "@holo-js/auth-social-github": "^0.1.7",
123
- "@holo-js/auth-social-google": "^0.1.7",
124
- "@holo-js/auth-social-linkedin": "^0.1.7",
125
- "@holo-js/auth-workos": "^0.1.7",
126
- "@holo-js/authorization": "^0.1.7",
127
- "@holo-js/broadcast": "^0.1.7",
128
- "@holo-js/cache": "^0.1.7",
129
- "@holo-js/cache-db": "^0.1.7",
130
- "@holo-js/cache-redis": "^0.1.7",
131
- "@holo-js/cli": "^0.1.7",
132
- "@holo-js/config": "^0.1.7",
133
- "@holo-js/core": "^0.1.7",
134
- "@holo-js/db": "^0.1.7",
135
- "@holo-js/db-mysql": "^0.1.7",
136
- "@holo-js/db-postgres": "^0.1.7",
137
- "@holo-js/db-sqlite": "^0.1.7",
138
- "@holo-js/events": "^0.1.7",
139
- "@holo-js/flux": "^0.1.7",
140
- "@holo-js/flux-react": "^0.1.7",
141
- "@holo-js/flux-svelte": "^0.1.7",
142
- "@holo-js/flux-vue": "^0.1.7",
143
- "@holo-js/forms": "^0.1.7",
144
- "@holo-js/mail": "^0.1.7",
145
- "@holo-js/media": "^0.1.7",
146
- "@holo-js/notifications": "^0.1.7",
147
- "@holo-js/queue": "^0.1.7",
148
- "@holo-js/queue-db": "^0.1.7",
149
- "@holo-js/queue-redis": "^0.1.7",
150
- "@holo-js/security": "^0.1.7",
151
- "@holo-js/session": "^0.1.7",
152
- "@holo-js/storage": "^0.1.7",
153
- "@holo-js/storage-s3": "^0.1.7",
154
- "@holo-js/validation": "^0.1.7",
113
+ "@holo-js/adapter-next": "^0.1.9",
114
+ "@holo-js/adapter-nuxt": "^0.1.9",
115
+ "@holo-js/adapter-sveltekit": "^0.1.9",
116
+ "@holo-js/auth": "^0.1.9",
117
+ "@holo-js/auth-clerk": "^0.1.9",
118
+ "@holo-js/auth-social": "^0.1.9",
119
+ "@holo-js/auth-social-apple": "^0.1.9",
120
+ "@holo-js/auth-social-discord": "^0.1.9",
121
+ "@holo-js/auth-social-facebook": "^0.1.9",
122
+ "@holo-js/auth-social-github": "^0.1.9",
123
+ "@holo-js/auth-social-google": "^0.1.9",
124
+ "@holo-js/auth-social-linkedin": "^0.1.9",
125
+ "@holo-js/auth-workos": "^0.1.9",
126
+ "@holo-js/authorization": "^0.1.9",
127
+ "@holo-js/broadcast": "^0.1.9",
128
+ "@holo-js/cache": "^0.1.9",
129
+ "@holo-js/cache-db": "^0.1.9",
130
+ "@holo-js/cache-redis": "^0.1.9",
131
+ "@holo-js/cli": "^0.1.9",
132
+ "@holo-js/config": "^0.1.9",
133
+ "@holo-js/core": "^0.1.9",
134
+ "@holo-js/db": "^0.1.9",
135
+ "@holo-js/db-mysql": "^0.1.9",
136
+ "@holo-js/db-postgres": "^0.1.9",
137
+ "@holo-js/db-sqlite": "^0.1.9",
138
+ "@holo-js/events": "^0.1.9",
139
+ "@holo-js/flux": "^0.1.9",
140
+ "@holo-js/flux-react": "^0.1.9",
141
+ "@holo-js/flux-svelte": "^0.1.9",
142
+ "@holo-js/flux-vue": "^0.1.9",
143
+ "@holo-js/forms": "^0.1.9",
144
+ "@holo-js/mail": "^0.1.9",
145
+ "@holo-js/media": "^0.1.9",
146
+ "@holo-js/notifications": "^0.1.9",
147
+ "@holo-js/queue": "^0.1.9",
148
+ "@holo-js/queue-db": "^0.1.9",
149
+ "@holo-js/queue-redis": "^0.1.9",
150
+ "@holo-js/security": "^0.1.9",
151
+ "@holo-js/session": "^0.1.9",
152
+ "@holo-js/storage": "^0.1.9",
153
+ "@holo-js/storage-s3": "^0.1.9",
154
+ "@holo-js/validation": "^0.1.9",
155
155
  "@nuxt/kit": "^4.4.4",
156
156
  "@nuxt/module-builder": "^1.0.2",
157
157
  "@sveltejs/adapter-node": "^5.5.4",
@@ -168,7 +168,7 @@ var WORKSPACE_CATALOG = Object.freeze({
168
168
  "@vitest/coverage-v8": "^4.1.5",
169
169
  "better-sqlite3": "^11.7.0",
170
170
  "bullmq": "^5.71.0",
171
- "create-holo-js": "^0.1.7",
171
+ "create-holo-js": "^0.1.9",
172
172
  "esbuild": "^0.27.4",
173
173
  "eslint": "^9.17.0",
174
174
  "fast-check": "^4.5.3",
@@ -1330,28 +1330,6 @@ function renderNuxtBroadcastAuthRoute() {
1330
1330
  ""
1331
1331
  ].join("\n");
1332
1332
  }
1333
- function renderSvelteBroadcastAuthRoute() {
1334
- return [
1335
- "import { renderBroadcastAuthResponse } from '@holo-js/broadcast/auth'",
1336
- "import { holo } from '$lib/server/holo'",
1337
- "",
1338
- "export async function POST({ request }: { request: Request }) {",
1339
- " const app = await holo.getApp()",
1340
- " const auth = await holo.getAuth()",
1341
- "",
1342
- " return await renderBroadcastAuthResponse(request, {",
1343
- " resolveUser: async () => await auth?.user(),",
1344
- " channelAuth: {",
1345
- " registry: {",
1346
- " projectRoot: app.projectRoot,",
1347
- " channels: app.registry?.channels ?? [],",
1348
- " },",
1349
- " },",
1350
- " })",
1351
- "}",
1352
- ""
1353
- ].join("\n");
1354
- }
1355
1333
  async function syncBroadcastAuthSupportAfterAuthInstall(projectRoot) {
1356
1334
  const { dependencies, devDependencies } = await readPackageJsonDependencyState(projectRoot);
1357
1335
  const framework = detectProjectFrameworkFromPackageJson(dependencies, devDependencies);
@@ -1385,11 +1363,13 @@ async function syncBroadcastAuthSupportAfterAuthInstall(projectRoot) {
1385
1363
  }
1386
1364
  if (framework === "next") {
1387
1365
  const authRoutePath = resolve2(projectRoot, "app/broadcasting/auth/route.ts");
1366
+ const holoHelperPath = resolve2(projectRoot, ".holo-js/generated/next/holo.ts");
1388
1367
  const generatedRoutePath = resolve2(projectRoot, ".holo-js/generated/next/broadcast-auth-route.ts");
1389
1368
  if (!await pathExists(authRoutePath)) {
1390
1369
  await writeTextFile(authRoutePath, renderNextBroadcastAuthRoute());
1391
1370
  createdBroadcastAuthRoute = true;
1392
1371
  }
1372
+ await writeTextFile(holoHelperPath, renderNextHoloHelper());
1393
1373
  await writeTextFile(generatedRoutePath, renderNextGeneratedBroadcastAuthRoute());
1394
1374
  return {
1395
1375
  updatedBroadcastConfig,
@@ -1408,11 +1388,8 @@ async function syncBroadcastAuthSupportAfterAuthInstall(projectRoot) {
1408
1388
  };
1409
1389
  }
1410
1390
  if (framework === "sveltekit") {
1411
- const authRoutePath = resolve2(projectRoot, "src/routes/broadcasting/auth/+server.ts");
1412
- if (!await pathExists(authRoutePath)) {
1413
- await writeTextFile(authRoutePath, renderSvelteBroadcastAuthRoute());
1414
- createdBroadcastAuthRoute = true;
1415
- }
1391
+ const holoHelperPath = resolve2(projectRoot, ".holo-js/generated/sveltekit/holo.ts");
1392
+ await writeTextFile(holoHelperPath, renderSvelteHoloHelper());
1416
1393
  }
1417
1394
  return {
1418
1395
  updatedBroadcastConfig,
@@ -2053,6 +2030,7 @@ function resolveDefaultDatabaseUrl(driver) {
2053
2030
  function renderScaffoldEnvFiles(options) {
2054
2031
  const defaultDatabaseConnection = "main";
2055
2032
  const defaultUrl = resolveFrameworkDefaultUrl(options.framework);
2033
+ const optionalPackageNames = normalizeScaffoldOptionalPackages(options.optionalPackages);
2056
2034
  const baseLines = [
2057
2035
  "APP_NAME=",
2058
2036
  "APP_KEY=",
@@ -2071,22 +2049,47 @@ function renderScaffoldEnvFiles(options) {
2071
2049
  `DB_DATABASE=${sanitizePackageName(options.projectName) || "holo_app"}`,
2072
2050
  ...options.databaseDriver === "postgres" ? ["DB_SCHEMA=public"] : []
2073
2051
  ];
2074
- const storageLines = normalizeScaffoldOptionalPackages(options.optionalPackages).includes("storage") ? [
2052
+ const storageLines = optionalPackageNames.includes("storage") ? [
2075
2053
  `STORAGE_DEFAULT_DISK=${options.storageDefaultDisk}`,
2076
2054
  "STORAGE_ROUTE_PREFIX=/storage"
2077
2055
  ] : [];
2078
- const authLines = normalizeScaffoldOptionalPackages(options.optionalPackages).includes("auth") ? [...renderAuthEnvFiles({}, defaultDatabaseConnection).env] : [];
2079
- const cacheLines = normalizeScaffoldOptionalPackages(options.optionalPackages).includes("cache") ? [...renderCacheEnvFiles("file").env] : [];
2080
- const mailLines = renderMailEnvFiles().env;
2081
- const env = [...baseLines, ...driverLines, ...storageLines, ...authLines, ...cacheLines, ...mailLines, ""].join("\n");
2056
+ const authLines = optionalPackageNames.includes("auth") ? [...renderAuthEnvFiles({}, defaultDatabaseConnection).env] : [];
2057
+ const cacheLines = optionalPackageNames.includes("cache") ? [...renderCacheEnvFiles("file").env] : [];
2058
+ const mailLines = optionalPackageNames.includes("mail") ? [...renderMailEnvFiles().env] : [];
2059
+ const mailExampleLines = optionalPackageNames.includes("mail") ? [...renderMailEnvFiles().example] : [];
2060
+ const envGroups = [
2061
+ baseLines,
2062
+ driverLines,
2063
+ storageLines,
2064
+ authLines,
2065
+ cacheLines,
2066
+ mailLines
2067
+ ];
2068
+ const exampleGroups = [
2069
+ baseLines.map(renderEnvExampleLine),
2070
+ driverLines.map(renderEnvExampleLine),
2071
+ storageLines.map(renderEnvExampleLine),
2072
+ authLines.map(renderEnvExampleLine),
2073
+ cacheLines.map(renderEnvExampleLine),
2074
+ mailExampleLines.map(renderEnvExampleLine)
2075
+ ];
2076
+ const env = renderEnvGroups(envGroups);
2082
2077
  const example = [
2083
2078
  "# Copy this file to .env and fill in your local values.",
2084
2079
  "# Supported layered env files: .env.local, .env.development, .env.production, .env.prod, .env.test",
2085
- ...[...baseLines, ...driverLines, ...storageLines, ...authLines, ...cacheLines, ...renderMailEnvFiles().example].map((line) => `${line.split("=")[0]}=`),
2080
+ renderEnvGroups(exampleGroups).trimEnd(),
2086
2081
  ""
2087
2082
  ].join("\n");
2088
2083
  return { env, example };
2089
2084
  }
2085
+ function renderEnvGroups(groups) {
2086
+ return `${groups.filter((group) => group.length > 0).map((group) => group.join("\n")).join("\n\n")}
2087
+ `;
2088
+ }
2089
+ function renderEnvExampleLine(line) {
2090
+ const [key] = line.split("=");
2091
+ return `${key ?? line}=`;
2092
+ }
2090
2093
  function renderMailEnvFiles() {
2091
2094
  return {
2092
2095
  env: [
@@ -2458,6 +2461,21 @@ function renderScaffoldPackageJson(options) {
2458
2461
  }, null, 2)}
2459
2462
  `;
2460
2463
  }
2464
+ function appendScaffoldEnvGroup(contents, group) {
2465
+ const normalizedGroup = group?.map((line) => line.trim()).filter((line) => line.length > 0) ?? [];
2466
+ if (normalizedGroup.length === 0) {
2467
+ return contents;
2468
+ }
2469
+ const normalizedContents = contents.trimEnd();
2470
+ if (normalizedContents.length === 0) {
2471
+ return `${normalizedGroup.join("\n")}
2472
+ `;
2473
+ }
2474
+ return `${normalizedContents}
2475
+
2476
+ ${normalizedGroup.join("\n")}
2477
+ `;
2478
+ }
2461
2479
  async function scaffoldProject(projectRoot, options) {
2462
2480
  const existingEntries = await readdir(projectRoot).catch(() => []);
2463
2481
  if (existingEntries.length > 0) {
@@ -2478,12 +2496,8 @@ async function scaffoldProject(projectRoot, options) {
2478
2496
  const securityEnabled = optionalPackages.includes("security");
2479
2497
  const cacheEnabled = optionalPackages.includes("cache");
2480
2498
  const broadcastEnvFiles = broadcastEnabled ? renderBroadcastEnvFiles() : void 0;
2481
- const baseEnv = normalizeScaffoldEnvSegments(env);
2482
- const baseExample = normalizeScaffoldEnvSegments(example);
2483
- const scaffoldEnvSegments = broadcastEnvFiles ? [...baseEnv, ...broadcastEnvFiles.env] : baseEnv;
2484
- const scaffoldEnvExampleSegments = broadcastEnvFiles ? [...baseExample, ...broadcastEnvFiles.example] : baseExample;
2485
- const scaffoldEnv = renderEnvFileContents(scaffoldEnvSegments);
2486
- const scaffoldEnvExample = renderEnvFileContents(scaffoldEnvExampleSegments);
2499
+ const scaffoldEnv = appendScaffoldEnvGroup(env, broadcastEnvFiles?.env);
2500
+ const scaffoldEnvExample = appendScaffoldEnvGroup(example, broadcastEnvFiles?.example);
2487
2501
  await mkdir2(projectRoot, { recursive: true });
2488
2502
  await mkdir2(resolve3(projectRoot, "config"), { recursive: true });
2489
2503
  await mkdir2(resolve3(projectRoot, ".holo-js", "framework"), { recursive: true });
@@ -2999,7 +3013,7 @@ async function installMediaIntoProject(projectRoot) {
2999
3013
  if (!mediaConfigPath) {
3000
3014
  await writeTextFile(resolve4(projectRoot, "config/media.ts"), renderMediaConfig());
3001
3015
  }
3002
- const { createMediaTableMigration } = await import("./media-migrations-RBF4QZZ5.mjs");
3016
+ const { createMediaTableMigration } = await import("./media-migrations-JQSDCC7S.mjs");
3003
3017
  const migrationFilePath = await createMediaTableMigration(projectRoot, {
3004
3018
  skipIfExists: true
3005
3019
  });
@@ -3114,13 +3128,13 @@ async function installBroadcastIntoProject(projectRoot) {
3114
3128
  const dependencyResult = await upsertBroadcastPackageDependencies(projectRoot);
3115
3129
  let createdFrameworkSetup = false;
3116
3130
  if (framework === "next") {
3117
- const holoHelperPath = resolve4(projectRoot, "server/holo.ts");
3131
+ const holoHelperPath = resolve4(projectRoot, ".holo-js/generated/next/holo.ts");
3118
3132
  if (!await pathExists(holoHelperPath)) {
3119
3133
  await writeTextFile(holoHelperPath, renderNextHoloHelper());
3120
3134
  createdFrameworkSetup = true;
3121
3135
  }
3122
3136
  } else if (framework === "sveltekit") {
3123
- const holoHelperPath = resolve4(projectRoot, "src/lib/server/holo.ts");
3137
+ const holoHelperPath = resolve4(projectRoot, ".holo-js/generated/sveltekit/holo.ts");
3124
3138
  if (!await pathExists(holoHelperPath)) {
3125
3139
  await writeTextFile(holoHelperPath, renderSvelteHoloHelper());
3126
3140
  createdFrameworkSetup = true;
@@ -7,8 +7,8 @@ import {
7
7
  serializeDatabaseConfig,
8
8
  serializeProjectConfig,
9
9
  writeProjectConfig
10
- } from "./chunk-PWTS5LZZ.mjs";
11
- import "./chunk-GEMG3HIO.mjs";
10
+ } from "./chunk-SRPGIWCF.mjs";
11
+ import "./chunk-IMOGEKB4.mjs";
12
12
  import {
13
13
  readTextFile
14
14
  } from "./chunk-R6BWRY3E.mjs";
@@ -13,15 +13,15 @@ import {
13
13
  runProjectLifecycleScript,
14
14
  runProjectPrepare,
15
15
  toPosixSlashes
16
- } from "./chunk-42ASVV4I.mjs";
16
+ } from "./chunk-ASTSSSL2.mjs";
17
17
  import {
18
18
  hasProjectDependency
19
19
  } from "./chunk-F4MT6GBK.mjs";
20
20
  import "./chunk-D7O4SU6N.mjs";
21
- import "./chunk-2SE5STJ2.mjs";
22
- import "./chunk-GWW5VBKY.mjs";
23
- import "./chunk-PWTS5LZZ.mjs";
24
- import "./chunk-GEMG3HIO.mjs";
21
+ import "./chunk-7JR73TOH.mjs";
22
+ import "./chunk-WRZFATUT.mjs";
23
+ import "./chunk-SRPGIWCF.mjs";
24
+ import "./chunk-IMOGEKB4.mjs";
25
25
  import "./chunk-R6BWRY3E.mjs";
26
26
  export {
27
27
  collectDirectoryTree,
@@ -10,8 +10,8 @@ import {
10
10
  resolveListenerEventNamesFromSource,
11
11
  resolveNamedExport,
12
12
  resolveNamedExportEntry
13
- } from "./chunk-2SE5STJ2.mjs";
14
- import "./chunk-GEMG3HIO.mjs";
13
+ } from "./chunk-7JR73TOH.mjs";
14
+ import "./chunk-IMOGEKB4.mjs";
15
15
  import "./chunk-R6BWRY3E.mjs";
16
16
  export {
17
17
  collectImportedBindingsBySource,
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5EU32E7X.mjs";
4
4
  import {
5
5
  runProjectPrepare
6
- } from "./chunk-42ASVV4I.mjs";
6
+ } from "./chunk-ASTSSSL2.mjs";
7
7
  import "./chunk-F4MT6GBK.mjs";
8
8
  import {
9
9
  hasRegisteredCreateTableMigration,
@@ -21,12 +21,12 @@ import "./chunk-D7O4SU6N.mjs";
21
21
  import {
22
22
  collectFiles,
23
23
  prepareProjectDiscovery
24
- } from "./chunk-2SE5STJ2.mjs";
25
- import "./chunk-GWW5VBKY.mjs";
24
+ } from "./chunk-7JR73TOH.mjs";
25
+ import "./chunk-WRZFATUT.mjs";
26
26
  import {
27
27
  ensureGeneratedSchemaPlaceholder,
28
28
  ensureProjectConfig
29
- } from "./chunk-PWTS5LZZ.mjs";
29
+ } from "./chunk-SRPGIWCF.mjs";
30
30
  import {
31
31
  ensureSuffix,
32
32
  loadGeneratedProjectRegistry,
@@ -48,7 +48,7 @@ import {
48
48
  toKebabCase,
49
49
  toPascalCase,
50
50
  toSnakeCase
51
- } from "./chunk-GEMG3HIO.mjs";
51
+ } from "./chunk-IMOGEKB4.mjs";
52
52
  import {
53
53
  makeProjectRelativePath,
54
54
  resolveDefaultArtifactPath,
package/dist/index.mjs CHANGED
@@ -25,10 +25,10 @@ import {
25
25
  fileExists
26
26
  } from "./chunk-57SJ566R.mjs";
27
27
  import "./chunk-D7O4SU6N.mjs";
28
- import "./chunk-2SE5STJ2.mjs";
29
- import "./chunk-GWW5VBKY.mjs";
30
- import "./chunk-PWTS5LZZ.mjs";
31
- import "./chunk-GEMG3HIO.mjs";
28
+ import "./chunk-7JR73TOH.mjs";
29
+ import "./chunk-WRZFATUT.mjs";
30
+ import "./chunk-SRPGIWCF.mjs";
31
+ import "./chunk-IMOGEKB4.mjs";
32
32
  import {
33
33
  SUPPORTED_AUTH_SOCIAL_PROVIDERS
34
34
  } from "./chunk-R6BWRY3E.mjs";
@@ -124,51 +124,51 @@ var projectDiscoveryModulePromise;
124
124
  var projectRuntimeModulePromise;
125
125
  var projectScaffoldModulePromise;
126
126
  function loadRuntimeModule() {
127
- runtimeModulePromise ??= import("./runtime-PGE4HSSF.mjs");
127
+ runtimeModulePromise ??= import("./runtime-BI343WHS.mjs");
128
128
  return runtimeModulePromise;
129
129
  }
130
130
  function loadQueueModule() {
131
- queueModulePromise ??= import("./queue-PSPL63KS.mjs");
131
+ queueModulePromise ??= import("./queue-BY3PLH4I.mjs");
132
132
  return queueModulePromise;
133
133
  }
134
134
  function loadCacheModule() {
135
- cacheModulePromise ??= import("./cache-FEKU2TK4.mjs");
135
+ cacheModulePromise ??= import("./cache-ETOIQ5IG.mjs");
136
136
  return cacheModulePromise;
137
137
  }
138
138
  function loadQueueMigrationsModule() {
139
- queueMigrationsModulePromise ??= import("./queue-migrations-3PI7RAB3.mjs");
139
+ queueMigrationsModulePromise ??= import("./queue-migrations-YZUKEZK7.mjs");
140
140
  return queueMigrationsModulePromise;
141
141
  }
142
142
  function loadCacheMigrationsModule() {
143
- cacheMigrationsModulePromise ??= import("./cache-migrations-7RLM2QIS.mjs");
143
+ cacheMigrationsModulePromise ??= import("./cache-migrations-2GGI4TJK.mjs");
144
144
  return cacheMigrationsModulePromise;
145
145
  }
146
146
  function loadMediaMigrationsModule() {
147
- mediaMigrationsModulePromise ??= import("./media-migrations-RBF4QZZ5.mjs");
147
+ mediaMigrationsModulePromise ??= import("./media-migrations-JQSDCC7S.mjs");
148
148
  return mediaMigrationsModulePromise;
149
149
  }
150
150
  function loadGeneratorsModule() {
151
- generatorsModulePromise ??= import("./generators-K7A7MNY6.mjs");
151
+ generatorsModulePromise ??= import("./generators-UI2LJK3O.mjs");
152
152
  return generatorsModulePromise;
153
153
  }
154
154
  function loadBroadcastModule() {
155
- broadcastModulePromise ??= import("./broadcast-2SYWLGDX.mjs");
155
+ broadcastModulePromise ??= import("./broadcast-VR46UZEL.mjs");
156
156
  return broadcastModulePromise;
157
157
  }
158
158
  function loadSecurityModule() {
159
- securityModulePromise ??= import("./security-JEV55QRY.mjs");
159
+ securityModulePromise ??= import("./security-TYPVOYGF.mjs");
160
160
  return securityModulePromise;
161
161
  }
162
162
  function loadDevModule() {
163
- devModulePromise ??= import("./dev-KBHPQSHI.mjs");
163
+ devModulePromise ??= import("./dev-6RG5SSZ7.mjs");
164
164
  return devModulePromise;
165
165
  }
166
166
  function loadProjectConfigModule() {
167
- projectConfigModulePromise ??= import("./config-IZR77Y5M.mjs");
167
+ projectConfigModulePromise ??= import("./config-ARLE6PKR.mjs");
168
168
  return projectConfigModulePromise;
169
169
  }
170
170
  function loadProjectDiscoveryModule() {
171
- projectDiscoveryModulePromise ??= import("./discovery-BKA2Z6PR.mjs");
171
+ projectDiscoveryModulePromise ??= import("./discovery-FCVGQQVD.mjs");
172
172
  return projectDiscoveryModulePromise;
173
173
  }
174
174
  function loadProjectRuntimeModule() {
@@ -176,7 +176,7 @@ function loadProjectRuntimeModule() {
176
176
  return projectRuntimeModulePromise;
177
177
  }
178
178
  function loadProjectScaffoldModule() {
179
- projectScaffoldModulePromise ??= import("./scaffold-AR5QZYMK.mjs");
179
+ projectScaffoldModulePromise ??= import("./scaffold-UBOS2NZR.mjs");
180
180
  return projectScaffoldModulePromise;
181
181
  }
182
182
  async function resolveRuntimeExecutor(runtimeExecutor) {
@@ -296,6 +296,8 @@ async function runProjectDependencyInstallAfterPackageJsonUpdate(context, projec
296
296
  return;
297
297
  }
298
298
  await runProjectDependencyInstallForProject(context, projectExecutors, context.projectRoot);
299
+ const runProjectPrepare = await resolveProjectExecutor(projectExecutors, "runProjectPrepare");
300
+ await runProjectPrepare(context.projectRoot, context);
299
301
  }
300
302
  async function runProjectDependencyInstallForProject(context, projectExecutors, projectRoot) {
301
303
  const runProjectDependencyInstall = await resolveProjectExecutor(projectExecutors, "runProjectDependencyInstall");
@@ -11,14 +11,14 @@ import "./chunk-57SJ566R.mjs";
11
11
  import "./chunk-D7O4SU6N.mjs";
12
12
  import {
13
13
  prepareProjectDiscovery
14
- } from "./chunk-2SE5STJ2.mjs";
15
- import "./chunk-GWW5VBKY.mjs";
14
+ } from "./chunk-7JR73TOH.mjs";
15
+ import "./chunk-WRZFATUT.mjs";
16
16
  import {
17
17
  ensureProjectConfig
18
- } from "./chunk-PWTS5LZZ.mjs";
18
+ } from "./chunk-SRPGIWCF.mjs";
19
19
  import {
20
20
  loadGeneratedProjectRegistry
21
- } from "./chunk-GEMG3HIO.mjs";
21
+ } from "./chunk-IMOGEKB4.mjs";
22
22
  import {
23
23
  makeProjectRelativePath,
24
24
  resolveDefaultArtifactPath,
@@ -94,7 +94,7 @@ async function createMediaTableMigration(projectRoot, options = {}) {
94
94
  }
95
95
  async function runMediaTableCommand(io, projectRoot) {
96
96
  const migrationFilePath = await createMediaTableMigration(projectRoot);
97
- const { runProjectPrepare } = await import("./dev-KBHPQSHI.mjs");
97
+ const { runProjectPrepare } = await import("./dev-6RG5SSZ7.mjs");
98
98
  if (!migrationFilePath) {
99
99
  throw new Error(`A migration for table "${DEFAULT_MEDIA_TABLE}" already exists.`);
100
100
  }
@@ -4,27 +4,27 @@ import {
4
4
  normalizeWatchedFilePath,
5
5
  runProjectPrepare,
6
6
  toPosixSlashes
7
- } from "./chunk-42ASVV4I.mjs";
7
+ } from "./chunk-ASTSSSL2.mjs";
8
8
  import "./chunk-F4MT6GBK.mjs";
9
9
  import {
10
10
  writeLine
11
11
  } from "./chunk-ZXDU7RHU.mjs";
12
12
  import {
13
13
  initializeProjectRuntime
14
- } from "./chunk-3KLRV6JF.mjs";
14
+ } from "./chunk-HB4Q7VYK.mjs";
15
15
  import "./chunk-57SJ566R.mjs";
16
16
  import "./chunk-D7O4SU6N.mjs";
17
17
  import {
18
18
  prepareProjectDiscovery
19
- } from "./chunk-2SE5STJ2.mjs";
20
- import "./chunk-GWW5VBKY.mjs";
19
+ } from "./chunk-7JR73TOH.mjs";
20
+ import "./chunk-WRZFATUT.mjs";
21
21
  import {
22
22
  ensureProjectConfig,
23
23
  loadProjectConfig
24
- } from "./chunk-PWTS5LZZ.mjs";
24
+ } from "./chunk-SRPGIWCF.mjs";
25
25
  import {
26
26
  loadGeneratedProjectRegistry
27
- } from "./chunk-GEMG3HIO.mjs";
27
+ } from "./chunk-IMOGEKB4.mjs";
28
28
  import {
29
29
  HOLO_RUNTIME_ROOT,
30
30
  bundleProjectModule,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runProjectPrepare
3
- } from "./chunk-42ASVV4I.mjs";
3
+ } from "./chunk-ASTSSSL2.mjs";
4
4
  import "./chunk-F4MT6GBK.mjs";
5
5
  import {
6
6
  getRegistryMigrationSlug,
@@ -15,14 +15,14 @@ import "./chunk-57SJ566R.mjs";
15
15
  import "./chunk-D7O4SU6N.mjs";
16
16
  import {
17
17
  prepareProjectDiscovery
18
- } from "./chunk-2SE5STJ2.mjs";
19
- import "./chunk-GWW5VBKY.mjs";
18
+ } from "./chunk-7JR73TOH.mjs";
19
+ import "./chunk-WRZFATUT.mjs";
20
20
  import {
21
21
  ensureProjectConfig
22
- } from "./chunk-PWTS5LZZ.mjs";
22
+ } from "./chunk-SRPGIWCF.mjs";
23
23
  import {
24
24
  loadGeneratedProjectRegistry
25
- } from "./chunk-GEMG3HIO.mjs";
25
+ } from "./chunk-IMOGEKB4.mjs";
26
26
  import {
27
27
  makeProjectRelativePath,
28
28
  resolveDefaultArtifactPath,
@@ -22,13 +22,13 @@ import {
22
22
  resolvePackageRootFromSpecifier,
23
23
  runRuntimeInvocation,
24
24
  withRuntimeEnvironment
25
- } from "./chunk-3KLRV6JF.mjs";
25
+ } from "./chunk-HB4Q7VYK.mjs";
26
26
  import "./chunk-57SJ566R.mjs";
27
27
  import "./chunk-D7O4SU6N.mjs";
28
- import "./chunk-2SE5STJ2.mjs";
29
- import "./chunk-GWW5VBKY.mjs";
30
- import "./chunk-PWTS5LZZ.mjs";
31
- import "./chunk-GEMG3HIO.mjs";
28
+ import "./chunk-7JR73TOH.mjs";
29
+ import "./chunk-WRZFATUT.mjs";
30
+ import "./chunk-SRPGIWCF.mjs";
31
+ import "./chunk-IMOGEKB4.mjs";
32
32
  import "./chunk-R6BWRY3E.mjs";
33
33
  export {
34
34
  RUNTIME_MIGRATION_NAME_PATTERN,
@@ -55,13 +55,13 @@ import {
55
55
  upsertMediaPackageDependency,
56
56
  upsertNotificationsPackageDependency,
57
57
  upsertSecurityPackageDependency
58
- } from "./chunk-GWW5VBKY.mjs";
59
- import "./chunk-PWTS5LZZ.mjs";
58
+ } from "./chunk-WRZFATUT.mjs";
59
+ import "./chunk-SRPGIWCF.mjs";
60
60
  import {
61
61
  renderAuthProviderRouteFiles,
62
62
  renderFrameworkFiles,
63
63
  renderFrameworkRunner
64
- } from "./chunk-GEMG3HIO.mjs";
64
+ } from "./chunk-IMOGEKB4.mjs";
65
65
  import {
66
66
  isSupportedCacheInstallerDriver,
67
67
  isSupportedQueueInstallerDriver,
@@ -2,10 +2,10 @@ import {
2
2
  writeLine
3
3
  } from "./chunk-ZXDU7RHU.mjs";
4
4
  import "./chunk-D7O4SU6N.mjs";
5
- import "./chunk-2SE5STJ2.mjs";
6
- import "./chunk-GWW5VBKY.mjs";
7
- import "./chunk-PWTS5LZZ.mjs";
8
- import "./chunk-GEMG3HIO.mjs";
5
+ import "./chunk-7JR73TOH.mjs";
6
+ import "./chunk-WRZFATUT.mjs";
7
+ import "./chunk-SRPGIWCF.mjs";
8
+ import "./chunk-IMOGEKB4.mjs";
9
9
  import {
10
10
  resolveProjectPackageImportSpecifier
11
11
  } from "./chunk-R6BWRY3E.mjs";