@illumiarq/lumis 1.1.4 → 1.2.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/cli.js +80 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/app/cache-workflows.d.ts +7 -0
- package/dist/commands/app/cache-workflows.d.ts.map +1 -0
- package/dist/commands/app/cache-workflows.js +134 -0
- package/dist/commands/app/cache-workflows.js.map +1 -0
- package/dist/commands/app/command-runtime.d.ts +11 -0
- package/dist/commands/app/command-runtime.d.ts.map +1 -0
- package/dist/commands/app/command-runtime.js +41 -0
- package/dist/commands/app/command-runtime.js.map +1 -0
- package/dist/commands/app/config-cache.d.ts +3 -0
- package/dist/commands/app/config-cache.d.ts.map +1 -0
- package/dist/commands/app/config-cache.js +75 -0
- package/dist/commands/app/config-cache.js.map +1 -0
- package/dist/commands/app/config-publish.d.ts +2 -0
- package/dist/commands/app/config-publish.d.ts.map +1 -0
- package/dist/commands/app/config-publish.js +68 -0
- package/dist/commands/app/config-publish.js.map +1 -0
- package/dist/commands/app/config-stubs.d.ts +3 -0
- package/dist/commands/app/config-stubs.d.ts.map +1 -0
- package/dist/commands/app/config-stubs.js +154 -0
- package/dist/commands/app/config-stubs.js.map +1 -0
- package/dist/commands/app/database.d.ts +3 -0
- package/dist/commands/app/database.d.ts.map +1 -0
- package/dist/commands/app/database.js +219 -0
- package/dist/commands/app/database.js.map +1 -0
- package/dist/commands/app/docs.d.ts +7 -0
- package/dist/commands/app/docs.d.ts.map +1 -0
- package/dist/commands/app/docs.js +59 -0
- package/dist/commands/app/docs.js.map +1 -0
- package/dist/commands/app/routes.d.ts +5 -0
- package/dist/commands/app/routes.d.ts.map +1 -0
- package/dist/commands/app/routes.js +91 -0
- package/dist/commands/app/routes.js.map +1 -0
- package/dist/commands/app/security.d.ts +3 -0
- package/dist/commands/app/security.d.ts.map +1 -0
- package/dist/commands/app/security.js +15 -0
- package/dist/commands/app/security.js.map +1 -0
- package/dist/commands/app/worker-schedule.d.ts +5 -0
- package/dist/commands/app/worker-schedule.d.ts.map +1 -0
- package/dist/commands/app/worker-schedule.js +94 -0
- package/dist/commands/app/worker-schedule.js.map +1 -0
- package/dist/commands/app-commands.d.ts +7 -15
- package/dist/commands/app-commands.d.ts.map +1 -1
- package/dist/commands/app-commands.js +12 -642
- package/dist/commands/app-commands.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { join, relative } from 'node:path';
|
|
3
|
+
import { ui, writeError, writeLine } from '../../console.js';
|
|
4
|
+
import { runBridge, runPnpm } from './command-runtime.js';
|
|
5
|
+
export function workerStart(dev = false, cwd = process.cwd()) {
|
|
6
|
+
const workerFile = join(cwd, 'bootstrap', 'worker.ts');
|
|
7
|
+
const workerBuilt = join(cwd, '.arc', 'node', 'worker.js');
|
|
8
|
+
if (dev || !existsSync(workerBuilt)) {
|
|
9
|
+
if (!existsSync(workerFile)) {
|
|
10
|
+
writeError(ui.fail('No bootstrap/worker.ts found. Run: lumis publish config queue (then create bootstrap/worker.ts)'));
|
|
11
|
+
return 1;
|
|
12
|
+
}
|
|
13
|
+
writeLine();
|
|
14
|
+
writeLine(ui.section('Worker Start (dev)'));
|
|
15
|
+
writeLine(` ${ui.bullet(`Starting ${relative(cwd, workerFile)} via tsx...`)}`);
|
|
16
|
+
writeLine(` ${ui.dim('Press Ctrl+C to stop.')}`);
|
|
17
|
+
writeLine();
|
|
18
|
+
return runPnpm(['exec', 'tsx', workerFile], cwd);
|
|
19
|
+
}
|
|
20
|
+
writeLine();
|
|
21
|
+
writeLine(ui.section('Worker Start'));
|
|
22
|
+
writeLine(` ${ui.bullet(`Starting ${relative(cwd, workerBuilt)}...`)}`);
|
|
23
|
+
writeLine(` ${ui.dim('Press Ctrl+C to stop.')}`);
|
|
24
|
+
writeLine();
|
|
25
|
+
return runPnpm(['exec', 'node', workerBuilt], cwd);
|
|
26
|
+
}
|
|
27
|
+
export function workerList(cwd = process.cwd()) {
|
|
28
|
+
const result = runBridge(['schedule:list', cwd], cwd);
|
|
29
|
+
writeLine();
|
|
30
|
+
writeLine(ui.section('Worker Status'));
|
|
31
|
+
const workerFile = join(cwd, 'bootstrap', 'worker.ts');
|
|
32
|
+
const workerBuilt = join(cwd, '.arc', 'node', 'worker.js');
|
|
33
|
+
writeLine(` ${ui.bullet('bootstrap/worker.ts')} ${existsSync(workerFile) ? ui.ok('present') : ui.warn('missing')}`);
|
|
34
|
+
writeLine(` ${ui.bullet('.arc/node/worker.js')} ${existsSync(workerBuilt) ? ui.ok('built') : ui.dim('not built')}`);
|
|
35
|
+
writeLine();
|
|
36
|
+
if (result.status === 0) {
|
|
37
|
+
try {
|
|
38
|
+
const parsed = JSON.parse(result.stdout);
|
|
39
|
+
if (parsed.jobs.length > 0) {
|
|
40
|
+
writeLine(` ${ui.bold('Scheduled Jobs')}`);
|
|
41
|
+
for (const job of parsed.jobs) {
|
|
42
|
+
const next = job.nextRun ? ui.dim(` next: ${job.nextRun}`) : '';
|
|
43
|
+
writeLine(` ${ui.bullet(job.name)} ${ui.cyan(job.cron)}${next}`);
|
|
44
|
+
}
|
|
45
|
+
writeLine();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// ignore parse errors
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
export function scheduleList(cwd = process.cwd()) {
|
|
55
|
+
const result = runBridge(['schedule:list', cwd], cwd);
|
|
56
|
+
if (result.status !== 0) {
|
|
57
|
+
writeError(ui.fail(result.stderr.trim() || 'Failed to list scheduled jobs.'));
|
|
58
|
+
return result.status;
|
|
59
|
+
}
|
|
60
|
+
const parsed = JSON.parse(result.stdout);
|
|
61
|
+
writeLine();
|
|
62
|
+
writeLine(ui.section(`Scheduled Jobs (${parsed.jobs.length})`));
|
|
63
|
+
if (parsed.jobs.length === 0) {
|
|
64
|
+
writeLine(` ${ui.dim('No scheduled jobs registered.')}`);
|
|
65
|
+
writeLine(` ${ui.dim('Export a scheduler from bootstrap/providers.ts and register jobs in bootstrap/schedule.ts.')}`);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
for (const job of parsed.jobs) {
|
|
69
|
+
const desc = job.description ? ui.dim(` - ${job.description}`) : '';
|
|
70
|
+
const next = job.nextRun ? ui.dim(` (next: ${job.nextRun})`) : '';
|
|
71
|
+
writeLine(` ${ui.cyan(job.name.padEnd(30, ' '))} ${job.cron}${desc}${next}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
writeLine();
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
export function scheduleRun(jobName, cwd = process.cwd()) {
|
|
78
|
+
if (!jobName) {
|
|
79
|
+
writeError(ui.fail('Usage: lumis schedule:run <JobName>'));
|
|
80
|
+
return 1;
|
|
81
|
+
}
|
|
82
|
+
writeLine();
|
|
83
|
+
writeLine(ui.section('Schedule Run'));
|
|
84
|
+
writeLine(` ${ui.bullet(`Running job: ${jobName}...`)}`);
|
|
85
|
+
const result = runBridge(['schedule:run', cwd, jobName], cwd);
|
|
86
|
+
if (result.status !== 0) {
|
|
87
|
+
writeError(ui.fail(result.stderr.trim() || `Failed to run job "${jobName}".`));
|
|
88
|
+
return result.status;
|
|
89
|
+
}
|
|
90
|
+
writeLine(` ${ui.ok(`Job "${jobName}" completed.`)}`);
|
|
91
|
+
writeLine();
|
|
92
|
+
return 0;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=worker-schedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-schedule.js","sourceRoot":"","sources":["../../../src/commands/app/worker-schedule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { cacheSearchIndex, cacheViews, clearOptimizationCaches, clearSearchIndex, clearViews, optimizeForProduction } from './app/cache-workflows.js';
|
|
2
|
+
import { cacheConfig, clearConfigCache } from './app/config-cache.js';
|
|
3
|
+
import { pingDatabaseConnection, runDatabaseCommand } from './app/database.js';
|
|
4
|
+
import { publishConfig } from './app/config-publish.js';
|
|
5
|
+
import { cacheRoutes, checkRoutes, clearRouteCache, listRoutes } from './app/routes.js';
|
|
6
|
+
import { scheduleList, scheduleRun, workerList, workerStart } from './app/worker-schedule.js';
|
|
7
|
+
export { cacheConfig, cacheRoutes, cacheSearchIndex, cacheViews, clearConfigCache, clearOptimizationCaches, checkRoutes, clearRouteCache, clearSearchIndex, clearViews, listRoutes, optimizeForProduction, pingDatabaseConnection, publishConfig, runDatabaseCommand, scheduleList, scheduleRun, workerList, workerStart, };
|
|
1
8
|
type AuthInstallOptions = {
|
|
2
9
|
iam?: boolean;
|
|
3
10
|
ui?: 'react' | 'vue' | 'svelte' | 'solid';
|
|
@@ -7,21 +14,6 @@ type StubPublishOptions = {
|
|
|
7
14
|
iam?: boolean;
|
|
8
15
|
};
|
|
9
16
|
export declare function showResolvedConfig(configName: string, cwd?: string): number;
|
|
10
|
-
export declare function cacheRoutes(cwd?: string): number;
|
|
11
|
-
export declare function clearRouteCache(cwd?: string): number;
|
|
12
|
-
export declare function listRoutes(cwd?: string): number;
|
|
13
|
-
export declare function checkRoutes(cwd?: string): number;
|
|
14
|
-
export declare function cacheViews(cwd?: string): Promise<number>;
|
|
15
|
-
export declare function clearViews(cwd?: string): Promise<number>;
|
|
16
|
-
export declare function cacheSearchIndex(cwd?: string): number;
|
|
17
|
-
export declare function clearSearchIndex(cwd?: string): number;
|
|
18
17
|
export declare function publishStubs(options?: StubPublishOptions, cwd?: string): number;
|
|
19
18
|
export declare function installAuth(options?: AuthInstallOptions, cwd?: string): number;
|
|
20
|
-
export declare function runDatabaseCommand(commandName: string, args: string[], cwd?: string): number;
|
|
21
|
-
export declare function publishConfig(configName: string, force?: boolean, cwd?: string): number;
|
|
22
|
-
export declare function workerStart(dev?: boolean, cwd?: string): number;
|
|
23
|
-
export declare function workerList(cwd?: string): number;
|
|
24
|
-
export declare function scheduleList(cwd?: string): number;
|
|
25
|
-
export declare function scheduleRun(jobName: string, cwd?: string): number;
|
|
26
|
-
export {};
|
|
27
19
|
//# sourceMappingURL=app-commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-commands.d.ts","sourceRoot":"","sources":["../../src/commands/app-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-commands.d.ts","sourceRoot":"","sources":["../../src/commands/app-commands.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE9F,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,GACZ,CAAC;AAEF,KAAK,kBAAkB,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAC;AACvF,KAAK,kBAAkB,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAuB3D,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,MAAM,CAalF;AAGD,wBAAgB,YAAY,CAAC,OAAO,GAAE,kBAAuB,EAAE,GAAG,SAAgB,GAAG,MAAM,CAa1F;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,EAAE,GAAG,SAAgB,GAAG,MAAM,CAsBzF"}
|