@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
@@ -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,
@@ -22,13 +22,13 @@ import {
22
22
  resolveRuntimeWorkerPath,
23
23
  runRuntimeInvocation,
24
24
  withRuntimeEnvironment
25
- } from "./chunk-IUDD5FYL.mjs";
25
+ } from "./chunk-KS5TWO75.mjs";
26
26
  import "./chunk-LBJAJLKU.mjs";
27
27
  import "./chunk-D7O4SU6N.mjs";
28
- import "./chunk-2RGJTPYF.mjs";
29
- import "./chunk-UPZH6KCF.mjs";
30
- import "./chunk-ONKESAQA.mjs";
31
- import "./chunk-2DKQKZML.mjs";
28
+ import "./chunk-VP2E62DF.mjs";
29
+ import "./chunk-MCVRN7KX.mjs";
30
+ import "./chunk-YEFJBN56.mjs";
31
+ import "./chunk-J76GH2DR.mjs";
32
32
  import "./chunk-ILU426CF.mjs";
33
33
  export {
34
34
  RUNTIME_MIGRATION_NAME_PATTERN,
@@ -22,13 +22,13 @@ import {
22
22
  resolveRuntimeWorkerPath,
23
23
  runRuntimeInvocation,
24
24
  withRuntimeEnvironment
25
- } from "./chunk-IUDD5FYL.mjs";
25
+ } from "./chunk-KS5TWO75.mjs";
26
26
  import "./chunk-LBJAJLKU.mjs";
27
27
  import "./chunk-D7O4SU6N.mjs";
28
- import "./chunk-2RGJTPYF.mjs";
29
- import "./chunk-KWRIBHC3.mjs";
30
- import "./chunk-ONKESAQA.mjs";
31
- import "./chunk-2DKQKZML.mjs";
28
+ import "./chunk-VP2E62DF.mjs";
29
+ import "./chunk-4OHJC3GL.mjs";
30
+ import "./chunk-YEFJBN56.mjs";
31
+ import "./chunk-J76GH2DR.mjs";
32
32
  import "./chunk-ILU426CF.mjs";
33
33
  export {
34
34
  RUNTIME_MIGRATION_NAME_PATTERN,
@@ -8,6 +8,7 @@ import {
8
8
  createSeederService,
9
9
  registerGeneratedTables,
10
10
  renderGeneratedSchemaModule,
11
+ renderGeneratedSchemaRuntimeModule,
11
12
  resetDB,
12
13
  resolveRuntimeConnectionManagerOptions
13
14
  } from "@holo-js/db";
@@ -107,19 +108,50 @@ async function preloadGeneratedSchema(manager2, entry) {
107
108
  manager2.connection().getSchemaRegistry().replace(table);
108
109
  }
109
110
  }
110
- async function writeGeneratedSchemaArtifact(manager2, outputPath) {
111
- if (!outputPath) {
111
+ async function writeGeneratedSchemaArtifact(manager2, outputPath, runtimeOutputPath) {
112
+ if (!outputPath && !runtimeOutputPath) {
112
113
  return;
113
114
  }
114
- const source = renderGeneratedSchemaModule(manager2.connection().getSchemaRegistry().list());
115
- await mkdir(dirname(outputPath), { recursive: true });
116
- await writeFile(outputPath, source, "utf8");
115
+ const tables = manager2.connection().getSchemaRegistry().list();
116
+ if (outputPath) {
117
+ await mkdir(dirname(outputPath), { recursive: true });
118
+ await writeFile(outputPath, renderGeneratedSchemaModule(tables), "utf8");
119
+ }
120
+ if (runtimeOutputPath) {
121
+ await mkdir(dirname(runtimeOutputPath), { recursive: true });
122
+ await writeFile(runtimeOutputPath, renderGeneratedSchemaRuntimeModule(tables), "utf8");
123
+ }
117
124
  }
118
125
  function syncGeneratedSchemaFromManager(manager2) {
119
126
  registerGeneratedTables(Object.fromEntries(
120
127
  manager2.connection().getSchemaRegistry().list().map((table) => [table.tableName, table])
121
128
  ));
122
129
  }
130
+ async function hydrateGeneratedSchemaFromRanMigrations(manager2, migrations) {
131
+ const migrationService = createMigrationService(manager2.connection(), migrations);
132
+ const ranNames = new Set(
133
+ (await migrationService.status()).filter((status) => status.status === "ran").map((status) => status.name)
134
+ );
135
+ if (ranNames.size === 0) {
136
+ return;
137
+ }
138
+ const realConnection = manager2.connection();
139
+ const dryRunConnection = {
140
+ getDialect: () => realConnection.getDialect(),
141
+ getCapabilities: () => realConnection.getCapabilities(),
142
+ getSchemaName: () => realConnection.getSchemaName(),
143
+ getSchemaRegistry: () => realConnection.getSchemaRegistry(),
144
+ executeCompiled: async () => void 0,
145
+ introspectCompiled: async () => ({ rows: [], rowCount: 0 }),
146
+ transaction: async (callback) => callback(dryRunConnection)
147
+ };
148
+ const schema = createSchemaService(dryRunConnection);
149
+ for (const migration of [...migrations].sort((left, right) => left.name.localeCompare(right.name))) {
150
+ if (ranNames.has(migration.name)) {
151
+ await migration.up({ db: dryRunConnection, schema });
152
+ }
153
+ }
154
+ }
123
155
  async function loadRuntimeItems(entries, matcher, label) {
124
156
  const items = [];
125
157
  for (const entry of entries) {
@@ -168,8 +200,9 @@ try {
168
200
  if (payload.kind === "migrate") {
169
201
  await preloadGeneratedSchema(manager, payload.generatedSchema);
170
202
  const migrations = await loadMigrations(payloadEntries(payload.migrations));
203
+ await hydrateGeneratedSchemaFromRanMigrations(manager, migrations);
171
204
  const executed = await createMigrationService(manager.connection(), migrations).migrate(payload.options ?? {});
172
- await writeGeneratedSchemaArtifact(manager, payload.generatedSchemaOutputPath);
205
+ await writeGeneratedSchemaArtifact(manager, payload.generatedSchemaOutputPath, payload.generatedSchemaRuntimeOutputPath);
173
206
  printExecutedItems(executed, "No migrations were executed.", "Migrations executed:");
174
207
  } else if (payload.kind === "fresh") {
175
208
  const migrations = await loadMigrations(payloadEntries(payload.migrations));
@@ -177,7 +210,7 @@ try {
177
210
  await dropAllTablesForFresh(manager.connection(), schema);
178
211
  manager.connection().getSchemaRegistry().clear();
179
212
  const executed = await createMigrationService(manager.connection(), migrations).migrate({});
180
- await writeGeneratedSchemaArtifact(manager, payload.generatedSchemaOutputPath);
213
+ await writeGeneratedSchemaArtifact(manager, payload.generatedSchemaOutputPath, payload.generatedSchemaRuntimeOutputPath);
181
214
  syncGeneratedSchemaFromManager(manager);
182
215
  printExecutedItems(executed, "No migrations were executed.", "Migrations executed:");
183
216
  if (payload.options?.seed) {
@@ -192,8 +225,9 @@ try {
192
225
  } else if (payload.kind === "rollback") {
193
226
  await preloadGeneratedSchema(manager, payload.generatedSchema);
194
227
  const migrations = await loadMigrations(payloadEntries(payload.migrations));
228
+ await hydrateGeneratedSchemaFromRanMigrations(manager, migrations);
195
229
  const rolledBack = await createMigrationService(manager.connection(), migrations).rollback(payload.options ?? {});
196
- await writeGeneratedSchemaArtifact(manager, payload.generatedSchemaOutputPath);
230
+ await writeGeneratedSchemaArtifact(manager, payload.generatedSchemaOutputPath, payload.generatedSchemaRuntimeOutputPath);
197
231
  printExecutedItems(rolledBack, "No migrations were rolled back.", "Migrations rolled back:");
198
232
  } else if (payload.kind === "seed") {
199
233
  await preloadGeneratedSchema(manager, payload.generatedSchema);
@@ -56,14 +56,14 @@ import {
56
56
  upsertMediaPackageDependency,
57
57
  upsertNotificationsPackageDependency,
58
58
  upsertSecurityPackageDependency
59
- } from "./chunk-UPZH6KCF.mjs";
60
- import "./chunk-ONKESAQA.mjs";
59
+ } from "./chunk-MCVRN7KX.mjs";
60
+ import "./chunk-YEFJBN56.mjs";
61
61
  import {
62
62
  renderAuthProviderRouteFiles,
63
63
  renderFrameworkFiles,
64
64
  renderFrameworkRunner,
65
65
  renderNextBroadcastConfigRoute
66
- } from "./chunk-2DKQKZML.mjs";
66
+ } from "./chunk-J76GH2DR.mjs";
67
67
  import {
68
68
  isSupportedCacheInstallerDriver,
69
69
  isSupportedQueueInstallerDriver,
@@ -56,14 +56,14 @@ import {
56
56
  upsertMediaPackageDependency,
57
57
  upsertNotificationsPackageDependency,
58
58
  upsertSecurityPackageDependency
59
- } from "./chunk-KWRIBHC3.mjs";
60
- import "./chunk-ONKESAQA.mjs";
59
+ } from "./chunk-4OHJC3GL.mjs";
60
+ import "./chunk-YEFJBN56.mjs";
61
61
  import {
62
62
  renderAuthProviderRouteFiles,
63
63
  renderFrameworkFiles,
64
64
  renderFrameworkRunner,
65
65
  renderNextBroadcastConfigRoute
66
- } from "./chunk-2DKQKZML.mjs";
66
+ } from "./chunk-J76GH2DR.mjs";
67
67
  import {
68
68
  isSupportedCacheInstallerDriver,
69
69
  isSupportedQueueInstallerDriver,
@@ -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";
@@ -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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holo-js/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Holo-JS Framework - project creation, discovery, and operational CLI",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -28,17 +28,17 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@clack/prompts": "^1.5.1",
31
- "@holo-js/cache-db": "^0.2.0",
32
- "@holo-js/config": "^0.2.0",
33
- "@holo-js/core": "^0.2.0",
34
- "@holo-js/db": "^0.2.0",
31
+ "@holo-js/cache-db": "^0.2.1",
32
+ "@holo-js/config": "^0.2.1",
33
+ "@holo-js/core": "^0.2.1",
34
+ "@holo-js/db": "^0.2.1",
35
35
  "esbuild": "^0.27.4",
36
36
  "inflection": "^3.0.2"
37
37
  },
38
38
  "devDependencies": {
39
- "@holo-js/events": "^0.2.0",
40
- "@holo-js/queue": "^0.2.0",
41
- "@holo-js/queue-db": "^0.2.0",
39
+ "@holo-js/events": "^0.2.1",
40
+ "@holo-js/queue": "^0.2.1",
41
+ "@holo-js/queue-db": "^0.2.1",
42
42
  "@types/node": "^22.10.2",
43
43
  "tsup": "^8.3.5",
44
44
  "typescript": "^5.7.2",