@holo-js/cli 0.2.5 → 0.3.0
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.
- package/dist/{agent-skills-MSEMQUXT.mjs → agent-skills-CHAXS2YN.mjs} +13 -6
- package/dist/bin/holo.mjs +436 -109
- package/dist/{broadcast-5MJ3GJK7.mjs → broadcast-5VZM5SGQ.mjs} +13 -10
- package/dist/{broadcast-MRJGFCFH.mjs → broadcast-AABT52BK.mjs} +13 -10
- package/dist/cache-A42JSVYA.mjs +138 -0
- package/dist/cache-DUVBBOZU.mjs +138 -0
- package/dist/{cache-migrations-CPYQC7T6.mjs → cache-migrations-4WKSEN2Q.mjs} +12 -10
- package/dist/{cache-migrations-APDFSFEX.mjs → cache-migrations-PD2T5AV4.mjs} +14 -12
- package/dist/chunk-3RFRE7XG.mjs +491 -0
- package/dist/{chunk-PT72AMV7.mjs → chunk-6BHJLCAO.mjs} +256 -392
- package/dist/{chunk-KS5TWO75.mjs → chunk-EQUFFLRG.mjs} +7 -7
- package/dist/chunk-HX6MOYBO.mjs +2 -0
- package/dist/{chunk-YEFJBN56.mjs → chunk-JVLZ3SOW.mjs} +11 -8
- package/dist/{chunk-UPXQONEH.mjs → chunk-KRADH7PK.mjs} +55 -51
- package/dist/chunk-LALDNNPH.mjs +428 -0
- package/dist/chunk-LHK5YUR4.mjs +156 -0
- package/dist/{chunk-LBJAJLKU.mjs → chunk-M3IPUCTM.mjs} +1 -1
- package/dist/{chunk-TWITVSFZ.mjs → chunk-OI54DOHK.mjs} +256 -392
- package/dist/{chunk-LXGQCG56.mjs → chunk-OLZEMIDQ.mjs} +1 -1
- package/dist/{chunk-VP2E62DF.mjs → chunk-QSVMXMTQ.mjs} +49 -349
- package/dist/{chunk-J76GH2DR.mjs → chunk-R4ZYMEDU.mjs} +129 -86
- package/dist/{chunk-XDRCZ3Z5.mjs → chunk-TH5YCOZB.mjs} +57 -53
- package/dist/chunk-TRYHX5S4.mjs +360 -0
- package/dist/chunk-XBOVM6LO.mjs +41 -0
- package/dist/{chunk-ILU426CF.mjs → chunk-YACY2572.mjs} +482 -2
- package/dist/{config-MD27U4FM.mjs → config-BZHQK532.mjs} +3 -3
- package/dist/{dev-CT4DRTLN.mjs → dev-7KGRV56X.mjs} +10 -8
- package/dist/{dev-QDLR6C7K.mjs → dev-GQT37XJU.mjs} +10 -8
- package/dist/{discovery-GWTBF5RZ.mjs → discovery-HNH3BLDL.mjs} +8 -6
- package/dist/{generators-PUN5TFP5.mjs → generators-3FVW4AEJ.mjs} +18 -15
- package/dist/{generators-WQHI7DBW.mjs → generators-JWVNGUUE.mjs} +14 -11
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +434 -107
- package/dist/{media-migrations-D3CDNMPT.mjs → media-migrations-EG34NYAG.mjs} +13 -11
- package/dist/{media-migrations-IWCSCKSA.mjs → media-migrations-LGI7R7AR.mjs} +11 -9
- package/dist/plugins-ZGLB6JO6.mjs +24 -0
- package/dist/{queue-O3OSLGOV.mjs → queue-BEZDCZCY.mjs} +54 -16
- package/dist/{queue-GRB2IH5M.mjs → queue-R54DUUYA.mjs} +54 -16
- package/dist/{queue-migrations-7T42S4FX.mjs → queue-migrations-AM3AKT76.mjs} +16 -11
- package/dist/{queue-migrations-HFZB64OG.mjs → queue-migrations-U477YSFD.mjs} +18 -13
- package/dist/{runtime-TTRP2DGL.mjs → runtime-4TJYZLQV.mjs} +10 -8
- package/dist/{runtime-M3G5OKQV.mjs → runtime-MSRQD5W5.mjs} +10 -8
- package/dist/{runtime-GSXF4NB3.mjs → runtime-VR5BDPYQ.mjs} +1 -1
- package/dist/runtime-worker.mjs +7 -1
- package/dist/{scaffold-5BOVJYF3.mjs → scaffold-ASEX5LEX.mjs} +8 -4
- package/dist/{scaffold-NY3MWUZF.mjs → scaffold-ZAD3XUSD.mjs} +8 -4
- package/dist/{security-ST6ED7EK.mjs → security-4QLV7QCH.mjs} +8 -6
- package/dist/{security-H7AGDFBX.mjs → security-KYTLP4DF.mjs} +8 -6
- package/package.json +35 -8
- package/dist/cache-KVRYC7FB.mjs +0 -66
- package/dist/cache-WWE4Q4YE.mjs +0 -66
- package/dist/chunk-D7O4SU6N.mjs +0 -2
- package/dist/chunk-FGQ2I2YH.mjs +0 -22
|
@@ -2,27 +2,29 @@ import {
|
|
|
2
2
|
hasRegisteredCreateTableMigration,
|
|
3
3
|
hasRegisteredMigrationSlug,
|
|
4
4
|
nextMigrationTemplate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-OLZEMIDQ.mjs";
|
|
6
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
6
7
|
import {
|
|
7
8
|
writeLine
|
|
8
9
|
} from "./chunk-I7QBCEV7.mjs";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
prepareProjectDiscovery
|
|
13
|
-
} from "./chunk-VP2E62DF.mjs";
|
|
14
|
-
import "./chunk-PT72AMV7.mjs";
|
|
10
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
11
|
+
import "./chunk-6BHJLCAO.mjs";
|
|
15
12
|
import {
|
|
16
13
|
ensureProjectConfig
|
|
17
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-JVLZ3SOW.mjs";
|
|
15
|
+
import {
|
|
16
|
+
prepareProjectDiscovery
|
|
17
|
+
} from "./chunk-QSVMXMTQ.mjs";
|
|
18
18
|
import {
|
|
19
19
|
loadGeneratedProjectRegistry
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
21
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
22
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
21
23
|
import {
|
|
22
24
|
makeProjectRelativePath,
|
|
23
25
|
resolveDefaultArtifactPath,
|
|
24
26
|
writeTextFile
|
|
25
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-YACY2572.mjs";
|
|
26
28
|
|
|
27
29
|
// src/media-migrations.ts
|
|
28
30
|
import { readdir } from "fs/promises";
|
|
@@ -93,7 +95,7 @@ async function createMediaTableMigration(projectRoot, options = {}) {
|
|
|
93
95
|
}
|
|
94
96
|
async function runMediaTableCommand(io, projectRoot) {
|
|
95
97
|
const migrationFilePath = await createMediaTableMigration(projectRoot);
|
|
96
|
-
const { runProjectPrepare } = await import("./dev-
|
|
98
|
+
const { runProjectPrepare } = await import("./dev-GQT37XJU.mjs");
|
|
97
99
|
await runProjectPrepare(projectRoot);
|
|
98
100
|
writeLine(io.stdout, `Created migration: ${makeProjectRelativePath(projectRoot, migrationFilePath)}`);
|
|
99
101
|
}
|
|
@@ -2,27 +2,29 @@ import {
|
|
|
2
2
|
hasRegisteredCreateTableMigration,
|
|
3
3
|
hasRegisteredMigrationSlug,
|
|
4
4
|
nextMigrationTemplate
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-OLZEMIDQ.mjs";
|
|
6
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
7
7
|
import {
|
|
8
8
|
writeLine
|
|
9
9
|
} from "./chunk-I7QBCEV7.mjs";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
11
11
|
import {
|
|
12
12
|
prepareProjectDiscovery
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-QSVMXMTQ.mjs";
|
|
14
|
+
import "./chunk-OI54DOHK.mjs";
|
|
15
15
|
import {
|
|
16
16
|
ensureProjectConfig
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-JVLZ3SOW.mjs";
|
|
18
18
|
import {
|
|
19
19
|
loadGeneratedProjectRegistry
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
21
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
22
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
21
23
|
import {
|
|
22
24
|
makeProjectRelativePath,
|
|
23
25
|
resolveDefaultArtifactPath,
|
|
24
26
|
writeTextFile
|
|
25
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-YACY2572.mjs";
|
|
26
28
|
|
|
27
29
|
// src/media-migrations.ts
|
|
28
30
|
import { readdir } from "fs/promises";
|
|
@@ -93,7 +95,7 @@ async function createMediaTableMigration(projectRoot, options = {}) {
|
|
|
93
95
|
}
|
|
94
96
|
async function runMediaTableCommand(io, projectRoot) {
|
|
95
97
|
const migrationFilePath = await createMediaTableMigration(projectRoot);
|
|
96
|
-
const { runProjectPrepare } = await import("./dev-
|
|
98
|
+
const { runProjectPrepare } = await import("./dev-7KGRV56X.mjs");
|
|
97
99
|
await runProjectPrepare(projectRoot);
|
|
98
100
|
writeLine(io.stdout, `Created migration: ${makeProjectRelativePath(projectRoot, migrationFilePath)}`);
|
|
99
101
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
activateProjectPlugin,
|
|
3
|
+
deactivateProjectPlugin,
|
|
4
|
+
loadHoloPluginFromPackage,
|
|
5
|
+
loadProjectPluginCommands,
|
|
6
|
+
loadProjectPluginFrameworkDescriptors,
|
|
7
|
+
normalizeHoloPluginDefinition,
|
|
8
|
+
readProjectPluginNames,
|
|
9
|
+
resolveProjectPlugins,
|
|
10
|
+
writeProjectPluginNames
|
|
11
|
+
} from "./chunk-3RFRE7XG.mjs";
|
|
12
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
13
|
+
import "./chunk-YACY2572.mjs";
|
|
14
|
+
export {
|
|
15
|
+
activateProjectPlugin,
|
|
16
|
+
deactivateProjectPlugin,
|
|
17
|
+
loadHoloPluginFromPackage,
|
|
18
|
+
loadProjectPluginCommands,
|
|
19
|
+
loadProjectPluginFrameworkDescriptors,
|
|
20
|
+
normalizeHoloPluginDefinition,
|
|
21
|
+
readProjectPluginNames,
|
|
22
|
+
resolveProjectPlugins,
|
|
23
|
+
writeProjectPluginNames
|
|
24
|
+
};
|
|
@@ -1,35 +1,40 @@
|
|
|
1
1
|
import {
|
|
2
2
|
initializeProjectRuntime
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EQUFFLRG.mjs";
|
|
4
|
+
import {
|
|
5
|
+
loadProjectDatabaseDrivers
|
|
6
|
+
} from "./chunk-XBOVM6LO.mjs";
|
|
4
7
|
import {
|
|
5
8
|
isIgnorableWatchError,
|
|
6
9
|
isRecursiveWatchUnsupported,
|
|
7
10
|
normalizeWatchedFilePath,
|
|
8
11
|
runProjectPrepare,
|
|
9
12
|
toPosixSlashes
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-TH5YCOZB.mjs";
|
|
14
|
+
import "./chunk-LHK5YUR4.mjs";
|
|
15
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
13
16
|
import {
|
|
14
17
|
writeLine
|
|
15
18
|
} from "./chunk-I7QBCEV7.mjs";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import
|
|
18
|
-
prepareProjectDiscovery
|
|
19
|
-
} from "./chunk-VP2E62DF.mjs";
|
|
20
|
-
import "./chunk-TWITVSFZ.mjs";
|
|
19
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
20
|
+
import "./chunk-6BHJLCAO.mjs";
|
|
21
21
|
import {
|
|
22
22
|
ensureProjectConfig,
|
|
23
23
|
loadProjectConfig
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-JVLZ3SOW.mjs";
|
|
25
|
+
import {
|
|
26
|
+
prepareProjectDiscovery
|
|
27
|
+
} from "./chunk-QSVMXMTQ.mjs";
|
|
25
28
|
import {
|
|
26
29
|
loadGeneratedProjectRegistry
|
|
27
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
31
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
32
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
28
33
|
import {
|
|
29
34
|
HOLO_RUNTIME_ROOT,
|
|
30
35
|
bundleProjectModule,
|
|
31
36
|
resolveProjectPackageImportSpecifier
|
|
32
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-YACY2572.mjs";
|
|
33
38
|
|
|
34
39
|
// src/queue.ts
|
|
35
40
|
import { spawn } from "child_process";
|
|
@@ -67,9 +72,17 @@ var QUEUE_LISTEN_IGNORED_DIRECTORY_NAMES = /* @__PURE__ */ new Set([
|
|
|
67
72
|
var QUEUE_LISTEN_IGNORED_PATH_PREFIXES = [
|
|
68
73
|
HOLO_RUNTIME_ROOT
|
|
69
74
|
].map(toPosixSlashes);
|
|
75
|
+
var BUILT_IN_QUEUE_DRIVER_NAMES = /* @__PURE__ */ new Set(["database", "redis", "sync"]);
|
|
70
76
|
async function loadQueueCliModule(projectRoot) {
|
|
71
77
|
return await import(resolveProjectPackageImportSpecifier(projectRoot, "@holo-js/queue"));
|
|
72
78
|
}
|
|
79
|
+
async function loadQueueRedisDriverFactory(projectRoot) {
|
|
80
|
+
const queueRedis = await import(resolveProjectPackageImportSpecifier(projectRoot, "@holo-js/queue-redis"));
|
|
81
|
+
if (!queueRedis.redisQueueDriverFactory) {
|
|
82
|
+
throw new Error("Queue driver package @holo-js/queue-redis does not export redisQueueDriverFactory.");
|
|
83
|
+
}
|
|
84
|
+
return queueRedis.redisQueueDriverFactory;
|
|
85
|
+
}
|
|
73
86
|
function isIgnoredQueueListenPath(filePath) {
|
|
74
87
|
const normalized = toPosixSlashes(filePath);
|
|
75
88
|
if (QUEUE_LISTEN_IGNORED_PATH_PREFIXES.some((prefix) => normalized === prefix || normalized.startsWith(`${prefix}/`))) {
|
|
@@ -77,6 +90,18 @@ function isIgnoredQueueListenPath(filePath) {
|
|
|
77
90
|
}
|
|
78
91
|
return normalized.split("/").filter(Boolean).some((segment) => QUEUE_LISTEN_IGNORED_DIRECTORY_NAMES.has(segment));
|
|
79
92
|
}
|
|
93
|
+
function resolveQueuePluginDriverLoader(queueModule, connectionName, connection) {
|
|
94
|
+
if (!connection || BUILT_IN_QUEUE_DRIVER_NAMES.has(connection.driver)) {
|
|
95
|
+
return void 0;
|
|
96
|
+
}
|
|
97
|
+
const loadQueuePluginDrivers = queueModule.loadQueuePluginDrivers?.bind(queueModule);
|
|
98
|
+
if (loadQueuePluginDrivers) {
|
|
99
|
+
return loadQueuePluginDrivers;
|
|
100
|
+
}
|
|
101
|
+
throw new Error(
|
|
102
|
+
`[Holo CLI] Queue connection "${connectionName}" uses plugin driver "${connection.driver}", but the installed @holo-js/queue package does not support queue plugin drivers.`
|
|
103
|
+
);
|
|
104
|
+
}
|
|
80
105
|
async function collectQueueWatchTree(rootPath, directories, projectRoot, project) {
|
|
81
106
|
const relativePath = toPosixSlashes(relative(projectRoot, rootPath));
|
|
82
107
|
if (relativePath && isIgnoredQueueListenPath(relativePath)) {
|
|
@@ -309,16 +334,28 @@ async function runQueueWorkCommand(io, projectRoot, options, dependencies = {})
|
|
|
309
334
|
await environment.cleanup();
|
|
310
335
|
}
|
|
311
336
|
}
|
|
312
|
-
async function initializeQueueMaintenanceEnvironment(projectRoot, connectionName) {
|
|
313
|
-
const loadedConfig = await loadConfigDirectory(projectRoot);
|
|
314
|
-
const queueModule = await loadQueueCliModule(projectRoot);
|
|
337
|
+
async function initializeQueueMaintenanceEnvironment(projectRoot, connectionName, dependencies = {}) {
|
|
338
|
+
const loadedConfig = await (dependencies.loadConfig ?? loadConfigDirectory)(projectRoot);
|
|
339
|
+
const queueModule = await (dependencies.loadQueueModule ?? loadQueueCliModule)(projectRoot);
|
|
315
340
|
const resolvedConnectionName = connectionName?.trim() || loadedConfig.queue.default;
|
|
316
341
|
const connection = loadedConfig.queue.connections[resolvedConnectionName];
|
|
342
|
+
const loadQueuePluginDrivers = resolveQueuePluginDriverLoader(queueModule, resolvedConnectionName, connection);
|
|
317
343
|
if (!connection || connection.driver !== "database") {
|
|
344
|
+
const driverFactories = connection?.driver === "redis" ? [await loadQueueRedisDriverFactory(projectRoot)] : void 0;
|
|
318
345
|
queueModule.configureQueueRuntime({
|
|
319
346
|
config: loadedConfig.queue,
|
|
320
|
-
redisConfig: loadedConfig.redis
|
|
347
|
+
redisConfig: loadedConfig.redis,
|
|
348
|
+
...driverFactories ? { driverFactories } : {}
|
|
321
349
|
});
|
|
350
|
+
if (loadQueuePluginDrivers) {
|
|
351
|
+
try {
|
|
352
|
+
await loadQueuePluginDrivers(projectRoot, loadedConfig.app.plugins);
|
|
353
|
+
} catch (error) {
|
|
354
|
+
await queueModule.shutdownQueueRuntime().catch(() => {
|
|
355
|
+
});
|
|
356
|
+
throw error;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
322
359
|
return {
|
|
323
360
|
async cleanup() {
|
|
324
361
|
await queueModule.shutdownQueueRuntime();
|
|
@@ -331,6 +368,7 @@ async function initializeQueueMaintenanceEnvironment(projectRoot, connectionName
|
|
|
331
368
|
redisConfig: loadedConfig.redis,
|
|
332
369
|
...createQueueDbRuntimeOptions()
|
|
333
370
|
});
|
|
371
|
+
await loadProjectDatabaseDrivers(projectRoot, loadedConfig.database);
|
|
334
372
|
const manager = resolveRuntimeConnectionManagerOptions({
|
|
335
373
|
db: loadedConfig.database
|
|
336
374
|
});
|
|
@@ -1,35 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loadProjectDatabaseDrivers
|
|
3
|
+
} from "./chunk-XBOVM6LO.mjs";
|
|
4
|
+
import {
|
|
5
|
+
initializeProjectRuntime
|
|
6
|
+
} from "./chunk-LALDNNPH.mjs";
|
|
1
7
|
import {
|
|
2
8
|
isIgnorableWatchError,
|
|
3
9
|
isRecursiveWatchUnsupported,
|
|
4
10
|
normalizeWatchedFilePath,
|
|
5
11
|
runProjectPrepare,
|
|
6
12
|
toPosixSlashes
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-KRADH7PK.mjs";
|
|
14
|
+
import "./chunk-LHK5YUR4.mjs";
|
|
15
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
9
16
|
import {
|
|
10
17
|
writeLine
|
|
11
18
|
} from "./chunk-I7QBCEV7.mjs";
|
|
12
|
-
import
|
|
13
|
-
initializeProjectRuntime
|
|
14
|
-
} from "./chunk-KS5TWO75.mjs";
|
|
15
|
-
import "./chunk-LBJAJLKU.mjs";
|
|
16
|
-
import "./chunk-D7O4SU6N.mjs";
|
|
19
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
17
20
|
import {
|
|
18
21
|
prepareProjectDiscovery
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-QSVMXMTQ.mjs";
|
|
23
|
+
import "./chunk-OI54DOHK.mjs";
|
|
21
24
|
import {
|
|
22
25
|
ensureProjectConfig,
|
|
23
26
|
loadProjectConfig
|
|
24
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-JVLZ3SOW.mjs";
|
|
25
28
|
import {
|
|
26
29
|
loadGeneratedProjectRegistry
|
|
27
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
31
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
32
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
28
33
|
import {
|
|
29
34
|
HOLO_RUNTIME_ROOT,
|
|
30
35
|
bundleProjectModule,
|
|
31
36
|
resolveProjectPackageImportSpecifier
|
|
32
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-YACY2572.mjs";
|
|
33
38
|
|
|
34
39
|
// src/queue.ts
|
|
35
40
|
import { spawn } from "child_process";
|
|
@@ -67,9 +72,17 @@ var QUEUE_LISTEN_IGNORED_DIRECTORY_NAMES = /* @__PURE__ */ new Set([
|
|
|
67
72
|
var QUEUE_LISTEN_IGNORED_PATH_PREFIXES = [
|
|
68
73
|
HOLO_RUNTIME_ROOT
|
|
69
74
|
].map(toPosixSlashes);
|
|
75
|
+
var BUILT_IN_QUEUE_DRIVER_NAMES = /* @__PURE__ */ new Set(["database", "redis", "sync"]);
|
|
70
76
|
async function loadQueueCliModule(projectRoot) {
|
|
71
77
|
return await import(resolveProjectPackageImportSpecifier(projectRoot, "@holo-js/queue"));
|
|
72
78
|
}
|
|
79
|
+
async function loadQueueRedisDriverFactory(projectRoot) {
|
|
80
|
+
const queueRedis = await import(resolveProjectPackageImportSpecifier(projectRoot, "@holo-js/queue-redis"));
|
|
81
|
+
if (!queueRedis.redisQueueDriverFactory) {
|
|
82
|
+
throw new Error("Queue driver package @holo-js/queue-redis does not export redisQueueDriverFactory.");
|
|
83
|
+
}
|
|
84
|
+
return queueRedis.redisQueueDriverFactory;
|
|
85
|
+
}
|
|
73
86
|
function isIgnoredQueueListenPath(filePath) {
|
|
74
87
|
const normalized = toPosixSlashes(filePath);
|
|
75
88
|
if (QUEUE_LISTEN_IGNORED_PATH_PREFIXES.some((prefix) => normalized === prefix || normalized.startsWith(`${prefix}/`))) {
|
|
@@ -77,6 +90,18 @@ function isIgnoredQueueListenPath(filePath) {
|
|
|
77
90
|
}
|
|
78
91
|
return normalized.split("/").filter(Boolean).some((segment) => QUEUE_LISTEN_IGNORED_DIRECTORY_NAMES.has(segment));
|
|
79
92
|
}
|
|
93
|
+
function resolveQueuePluginDriverLoader(queueModule, connectionName, connection) {
|
|
94
|
+
if (!connection || BUILT_IN_QUEUE_DRIVER_NAMES.has(connection.driver)) {
|
|
95
|
+
return void 0;
|
|
96
|
+
}
|
|
97
|
+
const loadQueuePluginDrivers = queueModule.loadQueuePluginDrivers?.bind(queueModule);
|
|
98
|
+
if (loadQueuePluginDrivers) {
|
|
99
|
+
return loadQueuePluginDrivers;
|
|
100
|
+
}
|
|
101
|
+
throw new Error(
|
|
102
|
+
`[Holo CLI] Queue connection "${connectionName}" uses plugin driver "${connection.driver}", but the installed @holo-js/queue package does not support queue plugin drivers.`
|
|
103
|
+
);
|
|
104
|
+
}
|
|
80
105
|
async function collectQueueWatchTree(rootPath, directories, projectRoot, project) {
|
|
81
106
|
const relativePath = toPosixSlashes(relative(projectRoot, rootPath));
|
|
82
107
|
if (relativePath && isIgnoredQueueListenPath(relativePath)) {
|
|
@@ -309,16 +334,28 @@ async function runQueueWorkCommand(io, projectRoot, options, dependencies = {})
|
|
|
309
334
|
await environment.cleanup();
|
|
310
335
|
}
|
|
311
336
|
}
|
|
312
|
-
async function initializeQueueMaintenanceEnvironment(projectRoot, connectionName) {
|
|
313
|
-
const loadedConfig = await loadConfigDirectory(projectRoot);
|
|
314
|
-
const queueModule = await loadQueueCliModule(projectRoot);
|
|
337
|
+
async function initializeQueueMaintenanceEnvironment(projectRoot, connectionName, dependencies = {}) {
|
|
338
|
+
const loadedConfig = await (dependencies.loadConfig ?? loadConfigDirectory)(projectRoot);
|
|
339
|
+
const queueModule = await (dependencies.loadQueueModule ?? loadQueueCliModule)(projectRoot);
|
|
315
340
|
const resolvedConnectionName = connectionName?.trim() || loadedConfig.queue.default;
|
|
316
341
|
const connection = loadedConfig.queue.connections[resolvedConnectionName];
|
|
342
|
+
const loadQueuePluginDrivers = resolveQueuePluginDriverLoader(queueModule, resolvedConnectionName, connection);
|
|
317
343
|
if (!connection || connection.driver !== "database") {
|
|
344
|
+
const driverFactories = connection?.driver === "redis" ? [await loadQueueRedisDriverFactory(projectRoot)] : void 0;
|
|
318
345
|
queueModule.configureQueueRuntime({
|
|
319
346
|
config: loadedConfig.queue,
|
|
320
|
-
redisConfig: loadedConfig.redis
|
|
347
|
+
redisConfig: loadedConfig.redis,
|
|
348
|
+
...driverFactories ? { driverFactories } : {}
|
|
321
349
|
});
|
|
350
|
+
if (loadQueuePluginDrivers) {
|
|
351
|
+
try {
|
|
352
|
+
await loadQueuePluginDrivers(projectRoot, loadedConfig.app.plugins);
|
|
353
|
+
} catch (error) {
|
|
354
|
+
await queueModule.shutdownQueueRuntime().catch(() => {
|
|
355
|
+
});
|
|
356
|
+
throw error;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
322
359
|
return {
|
|
323
360
|
async cleanup() {
|
|
324
361
|
await queueModule.shutdownQueueRuntime();
|
|
@@ -331,6 +368,7 @@ async function initializeQueueMaintenanceEnvironment(projectRoot, connectionName
|
|
|
331
368
|
redisConfig: loadedConfig.redis,
|
|
332
369
|
...createQueueDbRuntimeOptions()
|
|
333
370
|
});
|
|
371
|
+
await loadProjectDatabaseDrivers(projectRoot, loadedConfig.database);
|
|
334
372
|
const manager = resolveRuntimeConnectionManagerOptions({
|
|
335
373
|
db: loadedConfig.database
|
|
336
374
|
});
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runProjectPrepare
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-KRADH7PK.mjs";
|
|
4
|
+
import "./chunk-LHK5YUR4.mjs";
|
|
5
5
|
import {
|
|
6
6
|
getRegistryMigrationSlug,
|
|
7
7
|
hasRegisteredCreateTableMigration,
|
|
8
8
|
hasRegisteredMigrationSlug,
|
|
9
9
|
nextMigrationTemplate
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-OLZEMIDQ.mjs";
|
|
11
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
12
12
|
import {
|
|
13
13
|
writeLine
|
|
14
14
|
} from "./chunk-I7QBCEV7.mjs";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
16
16
|
import {
|
|
17
17
|
prepareProjectDiscovery
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-QSVMXMTQ.mjs";
|
|
19
|
+
import "./chunk-OI54DOHK.mjs";
|
|
20
20
|
import {
|
|
21
21
|
ensureProjectConfig
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-JVLZ3SOW.mjs";
|
|
23
23
|
import {
|
|
24
24
|
loadGeneratedProjectRegistry
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
26
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
27
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
26
28
|
import {
|
|
27
29
|
makeProjectRelativePath,
|
|
28
30
|
resolveDefaultArtifactPath,
|
|
29
31
|
writeTextFile
|
|
30
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-YACY2572.mjs";
|
|
31
33
|
|
|
32
34
|
// src/queue-migrations.ts
|
|
33
35
|
import { resolve } from "path";
|
|
@@ -38,6 +40,9 @@ var DEFAULT_FAILED_JOBS_TABLE = "failed_jobs";
|
|
|
38
40
|
async function loadQueueConfig(projectRoot) {
|
|
39
41
|
return (await loadConfigDirectory(projectRoot)).queue;
|
|
40
42
|
}
|
|
43
|
+
function isDatabaseQueueConnection(connection) {
|
|
44
|
+
return connection.driver === "database";
|
|
45
|
+
}
|
|
41
46
|
function normalizeQueueMigrationName(tableName) {
|
|
42
47
|
return normalizeMigrationSlug(`create_${tableName.replaceAll(".", "_")}_table`);
|
|
43
48
|
}
|
|
@@ -103,7 +108,7 @@ function renderFailedJobsTableMigration(tableName) {
|
|
|
103
108
|
].join("\n");
|
|
104
109
|
}
|
|
105
110
|
function resolveDatabaseQueueTables(queueConfig) {
|
|
106
|
-
const configured = Object.values(queueConfig.connections).filter(
|
|
111
|
+
const configured = Object.values(queueConfig.connections).filter(isDatabaseQueueConnection).map((connection) => connection.table);
|
|
107
112
|
return Object.freeze(configured.length > 0 ? [...new Set(configured)] : [DEFAULT_DATABASE_QUEUE_TABLE]);
|
|
108
113
|
}
|
|
109
114
|
async function runQueueTableCommand(io, projectRoot) {
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runProjectPrepare
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-TH5YCOZB.mjs";
|
|
4
|
+
import "./chunk-LHK5YUR4.mjs";
|
|
5
5
|
import {
|
|
6
6
|
getRegistryMigrationSlug,
|
|
7
7
|
hasRegisteredCreateTableMigration,
|
|
8
8
|
hasRegisteredMigrationSlug,
|
|
9
9
|
nextMigrationTemplate
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-OLZEMIDQ.mjs";
|
|
11
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
11
12
|
import {
|
|
12
13
|
writeLine
|
|
13
14
|
} from "./chunk-I7QBCEV7.mjs";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
prepareProjectDiscovery
|
|
18
|
-
} from "./chunk-VP2E62DF.mjs";
|
|
19
|
-
import "./chunk-PT72AMV7.mjs";
|
|
15
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
16
|
+
import "./chunk-6BHJLCAO.mjs";
|
|
20
17
|
import {
|
|
21
18
|
ensureProjectConfig
|
|
22
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-JVLZ3SOW.mjs";
|
|
20
|
+
import {
|
|
21
|
+
prepareProjectDiscovery
|
|
22
|
+
} from "./chunk-QSVMXMTQ.mjs";
|
|
23
23
|
import {
|
|
24
24
|
loadGeneratedProjectRegistry
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
26
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
27
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
26
28
|
import {
|
|
27
29
|
makeProjectRelativePath,
|
|
28
30
|
resolveDefaultArtifactPath,
|
|
29
31
|
writeTextFile
|
|
30
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-YACY2572.mjs";
|
|
31
33
|
|
|
32
34
|
// src/queue-migrations.ts
|
|
33
35
|
import { resolve } from "path";
|
|
@@ -38,6 +40,9 @@ var DEFAULT_FAILED_JOBS_TABLE = "failed_jobs";
|
|
|
38
40
|
async function loadQueueConfig(projectRoot) {
|
|
39
41
|
return (await loadConfigDirectory(projectRoot)).queue;
|
|
40
42
|
}
|
|
43
|
+
function isDatabaseQueueConnection(connection) {
|
|
44
|
+
return connection.driver === "database";
|
|
45
|
+
}
|
|
41
46
|
function normalizeQueueMigrationName(tableName) {
|
|
42
47
|
return normalizeMigrationSlug(`create_${tableName.replaceAll(".", "_")}_table`);
|
|
43
48
|
}
|
|
@@ -103,7 +108,7 @@ function renderFailedJobsTableMigration(tableName) {
|
|
|
103
108
|
].join("\n");
|
|
104
109
|
}
|
|
105
110
|
function resolveDatabaseQueueTables(queueConfig) {
|
|
106
|
-
const configured = Object.values(queueConfig.connections).filter(
|
|
111
|
+
const configured = Object.values(queueConfig.connections).filter(isDatabaseQueueConnection).map((connection) => connection.table);
|
|
107
112
|
return Object.freeze(configured.length > 0 ? [...new Set(configured)] : [DEFAULT_DATABASE_QUEUE_TABLE]);
|
|
108
113
|
}
|
|
109
114
|
async function runQueueTableCommand(io, projectRoot) {
|
|
@@ -22,14 +22,16 @@ import {
|
|
|
22
22
|
resolveRuntimeWorkerPath,
|
|
23
23
|
runRuntimeInvocation,
|
|
24
24
|
withRuntimeEnvironment
|
|
25
|
-
} from "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
25
|
+
} from "./chunk-EQUFFLRG.mjs";
|
|
26
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
27
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
28
|
+
import "./chunk-6BHJLCAO.mjs";
|
|
29
|
+
import "./chunk-JVLZ3SOW.mjs";
|
|
30
|
+
import "./chunk-QSVMXMTQ.mjs";
|
|
31
|
+
import "./chunk-R4ZYMEDU.mjs";
|
|
32
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
33
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
34
|
+
import "./chunk-YACY2572.mjs";
|
|
33
35
|
export {
|
|
34
36
|
RUNTIME_MIGRATION_NAME_PATTERN,
|
|
35
37
|
cacheProjectConfig,
|
|
@@ -22,14 +22,16 @@ import {
|
|
|
22
22
|
resolveRuntimeWorkerPath,
|
|
23
23
|
runRuntimeInvocation,
|
|
24
24
|
withRuntimeEnvironment
|
|
25
|
-
} from "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
25
|
+
} from "./chunk-LALDNNPH.mjs";
|
|
26
|
+
import "./chunk-M3IPUCTM.mjs";
|
|
27
|
+
import "./chunk-HX6MOYBO.mjs";
|
|
28
|
+
import "./chunk-QSVMXMTQ.mjs";
|
|
29
|
+
import "./chunk-OI54DOHK.mjs";
|
|
30
|
+
import "./chunk-JVLZ3SOW.mjs";
|
|
31
|
+
import "./chunk-R4ZYMEDU.mjs";
|
|
32
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
33
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
34
|
+
import "./chunk-YACY2572.mjs";
|
|
33
35
|
export {
|
|
34
36
|
RUNTIME_MIGRATION_NAME_PATTERN,
|
|
35
37
|
cacheProjectConfig,
|
package/dist/runtime-worker.mjs
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loadProjectDatabaseDrivers
|
|
3
|
+
} from "./chunk-XBOVM6LO.mjs";
|
|
4
|
+
|
|
1
5
|
// src/runtime-worker.ts
|
|
2
6
|
import { mkdir, writeFile } from "fs/promises";
|
|
3
7
|
import { dirname } from "path";
|
|
@@ -193,7 +197,9 @@ function writeOutput(message) {
|
|
|
193
197
|
process.stdout.write(`${message}
|
|
194
198
|
`);
|
|
195
199
|
}
|
|
196
|
-
var
|
|
200
|
+
var resolvedRuntimeConfig = resolveRuntimeConfig(payload.runtimeConfig);
|
|
201
|
+
await loadProjectDatabaseDrivers(payload.projectRoot ?? process.cwd(), resolvedRuntimeConfig.db);
|
|
202
|
+
var manager = resolveRuntimeConnectionManagerOptions(resolvedRuntimeConfig);
|
|
197
203
|
configureDB(manager);
|
|
198
204
|
try {
|
|
199
205
|
await manager.initializeAll();
|
|
@@ -56,20 +56,23 @@ import {
|
|
|
56
56
|
upsertMediaPackageDependency,
|
|
57
57
|
upsertNotificationsPackageDependency,
|
|
58
58
|
upsertSecurityPackageDependency
|
|
59
|
-
} from "./chunk-
|
|
60
|
-
import "./chunk-
|
|
59
|
+
} from "./chunk-6BHJLCAO.mjs";
|
|
60
|
+
import "./chunk-JVLZ3SOW.mjs";
|
|
61
61
|
import {
|
|
62
62
|
renderAuthProviderRouteFiles,
|
|
63
63
|
renderFrameworkFiles,
|
|
64
64
|
renderFrameworkRunner,
|
|
65
|
+
renderFrameworkRunnerForDescriptor,
|
|
65
66
|
renderNextBroadcastConfigRoute
|
|
66
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
68
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
69
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
67
70
|
import {
|
|
68
71
|
isSupportedCacheInstallerDriver,
|
|
69
72
|
isSupportedQueueInstallerDriver,
|
|
70
73
|
normalizeScaffoldOptionalPackages,
|
|
71
74
|
sanitizePackageName
|
|
72
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-YACY2572.mjs";
|
|
73
76
|
export {
|
|
74
77
|
authFeaturesRequireConfigUpdate,
|
|
75
78
|
detectAuthInstallFeaturesFromConfig,
|
|
@@ -104,6 +107,7 @@ export {
|
|
|
104
107
|
renderEnvFileContents,
|
|
105
108
|
renderFrameworkFiles,
|
|
106
109
|
renderFrameworkRunner,
|
|
110
|
+
renderFrameworkRunnerForDescriptor,
|
|
107
111
|
renderMailConfig,
|
|
108
112
|
renderMailEnvFiles,
|
|
109
113
|
renderMediaConfig,
|
|
@@ -56,20 +56,23 @@ import {
|
|
|
56
56
|
upsertMediaPackageDependency,
|
|
57
57
|
upsertNotificationsPackageDependency,
|
|
58
58
|
upsertSecurityPackageDependency
|
|
59
|
-
} from "./chunk-
|
|
60
|
-
import "./chunk-
|
|
59
|
+
} from "./chunk-OI54DOHK.mjs";
|
|
60
|
+
import "./chunk-JVLZ3SOW.mjs";
|
|
61
61
|
import {
|
|
62
62
|
renderAuthProviderRouteFiles,
|
|
63
63
|
renderFrameworkFiles,
|
|
64
64
|
renderFrameworkRunner,
|
|
65
|
+
renderFrameworkRunnerForDescriptor,
|
|
65
66
|
renderNextBroadcastConfigRoute
|
|
66
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-R4ZYMEDU.mjs";
|
|
68
|
+
import "./chunk-3RFRE7XG.mjs";
|
|
69
|
+
import "./chunk-TRYHX5S4.mjs";
|
|
67
70
|
import {
|
|
68
71
|
isSupportedCacheInstallerDriver,
|
|
69
72
|
isSupportedQueueInstallerDriver,
|
|
70
73
|
normalizeScaffoldOptionalPackages,
|
|
71
74
|
sanitizePackageName
|
|
72
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-YACY2572.mjs";
|
|
73
76
|
export {
|
|
74
77
|
authFeaturesRequireConfigUpdate,
|
|
75
78
|
detectAuthInstallFeaturesFromConfig,
|
|
@@ -104,6 +107,7 @@ export {
|
|
|
104
107
|
renderEnvFileContents,
|
|
105
108
|
renderFrameworkFiles,
|
|
106
109
|
renderFrameworkRunner,
|
|
110
|
+
renderFrameworkRunnerForDescriptor,
|
|
107
111
|
renderMailConfig,
|
|
108
112
|
renderMailEnvFiles,
|
|
109
113
|
renderMediaConfig,
|