@zintrust/core 0.4.33 → 0.4.36

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 (39) hide show
  1. package/package.json +4 -4
  2. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  3. package/src/cache/drivers/RedisDriver.js +1 -1
  4. package/src/cli/OptionalCliExtensions.d.ts.map +1 -1
  5. package/src/cli/OptionalCliExtensions.js +1 -0
  6. package/src/cli/commands/WorkerCommands.d.ts +2 -1
  7. package/src/cli/commands/WorkerCommands.d.ts.map +1 -1
  8. package/src/cli/commands/WorkerCommands.js +111 -62
  9. package/src/cli/services/WorkerStartupDiagnostics.d.ts +41 -0
  10. package/src/cli/services/WorkerStartupDiagnostics.d.ts.map +1 -0
  11. package/src/cli/services/WorkerStartupDiagnostics.js +348 -0
  12. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  13. package/src/cli/utils/DistPackager.js +22 -18
  14. package/src/config/queue.d.ts.map +1 -1
  15. package/src/config/queue.js +5 -3
  16. package/src/config/workers.d.ts +2 -1
  17. package/src/config/workers.d.ts.map +1 -1
  18. package/src/config/workers.js +6 -1
  19. package/src/index.d.ts +11 -11
  20. package/src/index.d.ts.map +1 -1
  21. package/src/index.js +13 -13
  22. package/src/proxy/CloudflareProxyShared.d.ts +50 -0
  23. package/src/proxy/CloudflareProxyShared.d.ts.map +1 -0
  24. package/src/proxy/CloudflareProxyShared.js +117 -0
  25. package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -1
  26. package/src/proxy/d1/ZintrustD1Proxy.js +49 -158
  27. package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -1
  28. package/src/proxy/kv/ZintrustKvProxy.js +41 -142
  29. package/src/security/CsrfTokenManager.d.ts.map +1 -1
  30. package/src/security/CsrfTokenManager.js +1 -1
  31. package/src/security/JwtSessions.d.ts.map +1 -1
  32. package/src/security/JwtSessions.js +1 -1
  33. package/src/security/TokenRevocation.d.ts.map +1 -1
  34. package/src/security/TokenRevocation.js +1 -1
  35. package/src/tools/queue/LockProvider.d.ts.map +1 -1
  36. package/src/tools/queue/LockProvider.js +1 -1
  37. package/src/tools/redis/RedisTransport.d.ts +34 -0
  38. package/src/tools/redis/RedisTransport.d.ts.map +1 -0
  39. package/src/tools/redis/RedisTransport.js +251 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zintrust/core",
3
- "version": "0.4.33",
3
+ "version": "0.4.36",
4
4
  "description": "Production-grade TypeScript backend framework for JavaScript",
5
5
  "homepage": "https://zintrust.com",
6
6
  "repository": {
@@ -57,10 +57,10 @@
57
57
  "./package.json": "./package.json"
58
58
  },
59
59
  "dependencies": {
60
- "@cloudflare/containers": "^0.1.1",
61
- "@zintrust/workers": "^0.4.25",
60
+ "@cloudflare/containers": "^0.2.0",
61
+ "@zintrust/workers": "^0.4.36",
62
62
  "bcryptjs": "^3.0.3",
63
- "bullmq": "^5.71.0",
63
+ "bullmq": "^5.71.1",
64
64
  "chalk": "^5.6.2",
65
65
  "commander": "^14.0.3",
66
66
  "inquirer": "^13.3.2",
@@ -1 +1 @@
1
- {"version":3,"file":"RedisDriver.d.ts","sourceRoot":"","sources":["../../../../src/cache/drivers/RedisDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkXtD;;GAEG;AACH,eAAO,MAAM,WAAW;kBAXL,WAAW;EAa5B,CAAC"}
1
+ {"version":3,"file":"RedisDriver.d.ts","sourceRoot":"","sources":["../../../../src/cache/drivers/RedisDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmXtD;;GAEG;AACH,eAAO,MAAM,WAAW;kBAXL,WAAW;EAa5B,CAAC"}
@@ -38,7 +38,7 @@ const createIoredisClient = (params) => {
38
38
  port: Env.REDIS_PORT,
39
39
  password: Env.get('REDIS_PASSWORD', ''),
40
40
  db,
41
- }, 3);
41
+ }, 3, { subsystem: 'cache' });
42
42
  return client !== null && typeof client.get === 'function' ? client : null;
43
43
  }
44
44
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"OptionalCliExtensions.d.ts","sourceRoot":"","sources":["../../../src/cli/OptionalCliExtensions.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,KAAK,8BAA8B,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAE3F,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,8BAA8B,CAAC;CACxC,CAAC,CAAC;AAEH,KAAK,+BAA+B,GAAG,QAAQ,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC,CAAC;AAkRH,eAAO,MAAM,qBAAqB;oCACM,OAAO,CAAC,0BAA0B,EAAE,CAAC;sBAQnD,MAAM,EAAE,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;sCAmBhE,MAAM,EAAE,YACJ,aAAa,CAAC,0BAA0B,CAAC,GAClD,0BAA0B,GAAG,SAAS;uCASN,0BAA0B,GAAG,MAAM;mCArDlC,MAAM,EAAE,KAAG,oBAAoB,GAAG,SAAS;EA8D/E,CAAC;AAEH,eAAO,MAAM,6BAA6B;yBA/ThB,MAAM;8BAQD,MAAM;wCAoF5B,oBAAoB,YACjB,+BAA+B,KACxC,MAAM,GAAG,IAAI;kCAhFqB,+BAA+B,KAAG,OAAO;4BAMnE,MAAM,QACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACnB,+BAA+B,KACxC,IAAI;8CA6FE,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,OAAO,CAAC;qCA0BV,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,OAAO,CAAC;uCAgCV,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,OAAO,CAAC;gCAuBV,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,0BAA0B,CAAC;gCAwCH,MAAM,EAAE,KAAG,MAAM,GAAG,SAAS;mCAU1B,MAAM,EAAE,KAAG,oBAAoB,GAAG,SAAS;8BAOhD,MAAM,EAAE,KAAG,OAAO;uCAvMT,oBAAoB,KAAG,MAAM,EAAE;gCAwBtC,oBAAoB,KAAG,MAAM,EAAE;EAuPhE,CAAC"}
1
+ {"version":3,"file":"OptionalCliExtensions.d.ts","sourceRoot":"","sources":["../../../src/cli/OptionalCliExtensions.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,KAAK,8BAA8B,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAE3F,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,8BAA8B,CAAC;CACxC,CAAC,CAAC;AAEH,KAAK,+BAA+B,GAAG,QAAQ,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC,CAAC;AAmRH,eAAO,MAAM,qBAAqB;oCACM,OAAO,CAAC,0BAA0B,EAAE,CAAC;sBAQnD,MAAM,EAAE,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;sCAmBhE,MAAM,EAAE,YACJ,aAAa,CAAC,0BAA0B,CAAC,GAClD,0BAA0B,GAAG,SAAS;uCASN,0BAA0B,GAAG,MAAM;mCArDlC,MAAM,EAAE,KAAG,oBAAoB,GAAG,SAAS;EA8D/E,CAAC;AAEH,eAAO,MAAM,6BAA6B;yBAhUhB,MAAM;8BAQD,MAAM;wCAqF5B,oBAAoB,YACjB,+BAA+B,KACxC,MAAM,GAAG,IAAI;kCAjFqB,+BAA+B,KAAG,OAAO;4BAMnE,MAAM,QACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACnB,+BAA+B,KACxC,IAAI;8CA8FE,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,OAAO,CAAC;qCA0BV,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,OAAO,CAAC;uCAgCV,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,OAAO,CAAC;gCAuBV,oBAAoB,YACjB,+BAA+B,KACxC,OAAO,CAAC,0BAA0B,CAAC;gCAwCH,MAAM,EAAE,KAAG,MAAM,GAAG,SAAS;mCAU1B,MAAM,EAAE,KAAG,oBAAoB,GAAG,SAAS;8BAOhD,MAAM,EAAE,KAAG,OAAO;uCAvMT,oBAAoB,KAAG,MAAM,EAAE;gCAwBtC,oBAAoB,KAAG,MAAM,EAAE;EAuPhE,CAAC"}
@@ -52,6 +52,7 @@ const OPTIONAL_CLI_EXTENSIONS = Object.freeze([
52
52
  'worker:start-all',
53
53
  'worker:stop',
54
54
  'worker:restart',
55
+ 'worker:doctor',
55
56
  'worker:summary',
56
57
  ],
57
58
  installCommand: 'npm install @zintrust/workers',
@@ -2,7 +2,7 @@
2
2
  * Worker Management CLI Commands
3
3
  * Command-line interface for managing workers
4
4
  */
5
- import type { IBaseCommand } from '../BaseCommand';
5
+ import { type IBaseCommand } from '../BaseCommand';
6
6
  /**
7
7
  * Export worker command creators
8
8
  */
@@ -13,6 +13,7 @@ export declare const WorkerCommands: {
13
13
  createWorkerStartAllCommand: () => IBaseCommand;
14
14
  createWorkerStopCommand: () => IBaseCommand;
15
15
  createWorkerRestartCommand: () => IBaseCommand;
16
+ createWorkerDoctorCommand: () => IBaseCommand;
16
17
  createWorkerSummaryCommand: () => IBaseCommand;
17
18
  };
18
19
  //# sourceMappingURL=WorkerCommands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA0lBrD;;GAEG;AACH,eAAO,MAAM,cAAc;mCAtaS,YAAY;qCA4CV,YAAY;oCAiDb,YAAY;uCAqHT,YAAY;mCAyFhB,YAAY;sCAgCT,YAAY;sCAgCZ,YAAY;CAmElD,CAAC"}
1
+ {"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAyqBvF;;GAEG;AACH,eAAO,MAAM,cAAc;mCAneS,YAAY;qCA4CV,YAAY;oCAiDb,YAAY;uCA2NT,YAAY;mCAgDhB,YAAY;sCAgCT,YAAY;qCAtEb,YAAY;sCAsGX,YAAY;CAoElD,CAAC"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
7
7
  import { BaseCommand } from '../BaseCommand.js';
8
+ import { WorkerStartupDiagnostics, } from '../services/WorkerStartupDiagnostics.js';
8
9
  import { Env } from '../../config/env.js';
9
10
  import { Logger } from '../../config/logger.js';
10
11
  import { WorkerProjectAutoImports } from '../../runtime/WorkerProjectAutoImports.js';
@@ -100,6 +101,14 @@ const formatTable = (headers, rows) => {
100
101
  const dataRows = rows.map((row) => row.map((cell, i) => (cell || '').padEnd(columnWidths[i])).join(' | '));
101
102
  return [headerRow, separator, ...dataRows].join('\n');
102
103
  };
104
+ const logFirstFaultSummaryOnce = (state, error, context) => {
105
+ const report = WorkerStartupDiagnostics.collect(error);
106
+ if (!state.logged) {
107
+ state.logged = true;
108
+ WorkerStartupDiagnostics.log(error, context);
109
+ }
110
+ return report;
111
+ };
103
112
  /**
104
113
  * Worker List Command
105
114
  */
@@ -270,78 +279,117 @@ const resolveAutoStartWorkerNames = async (factory, workersModule) => {
270
279
  }
271
280
  return { names: fileNames, source: fileNames.length > 0 ? 'file' : 'none' };
272
281
  };
282
+ const resolveEligibleWorkers = async (factory, workersModule) => {
283
+ const { names: workers, source } = await resolveAutoStartWorkerNames(factory, workersModule);
284
+ if (workers.length === 0) {
285
+ Logger.info('No auto-start eligible persisted or file-backed workers found.');
286
+ return [];
287
+ }
288
+ if (source !== 'persisted') {
289
+ return workers;
290
+ }
291
+ const discoveredWorkers = await pollForPersistedWorkers(factory);
292
+ return workers.filter((name) => discoveredWorkers.includes(name));
293
+ };
294
+ const startEligibleWorker = async (factory, name, diagnosticsState) => {
295
+ const existing = await factory.get(name);
296
+ if (existing !== null && existing !== undefined) {
297
+ const trulyRunning = await isRegisteredWorkerRunning(existing);
298
+ if (trulyRunning) {
299
+ return { name, status: 'skipped' };
300
+ }
301
+ Logger.warn(`Worker "${name}" is registered but not truly running. Restarting for crash recovery.`);
302
+ try {
303
+ await factory.restart(name);
304
+ return { name, status: 'started' };
305
+ }
306
+ catch (error) {
307
+ logFirstFaultSummaryOnce(diagnosticsState, error, `worker:start-all failed while restarting "${name}"`);
308
+ Logger.warn(`Failed to restart stale worker "${name}"`, error);
309
+ return { name, status: 'failed' };
310
+ }
311
+ }
312
+ try {
313
+ await factory.startFromPersisted(name);
314
+ return { name, status: 'started' };
315
+ }
316
+ catch (error) {
317
+ logFirstFaultSummaryOnce(diagnosticsState, error, `worker:start-all failed while starting "${name}"`);
318
+ Logger.warn(`Failed to start worker "${name}"`, error);
319
+ return { name, status: 'failed' };
320
+ }
321
+ };
322
+ const executeWorkerStartAll = async () => {
323
+ const diagnosticsState = { logged: false };
324
+ try {
325
+ const globalAutoStart = Env.getBool('WORKER_AUTO_START', false);
326
+ if (!globalAutoStart) {
327
+ Logger.info('Skipping auto-start because WORKER_AUTO_START is false.');
328
+ return;
329
+ }
330
+ const factory = await getWorkerFactory();
331
+ const workersModule = await loadWorkersModule();
332
+ const eligibleWorkers = await resolveEligibleWorkers(factory, workersModule);
333
+ if (eligibleWorkers.length === 0) {
334
+ Logger.info('No auto-start eligible workers are currently available.');
335
+ return;
336
+ }
337
+ const results = await Promise.all(eligibleWorkers.map(async (name) => startEligibleWorker(factory, name, diagnosticsState)));
338
+ const started = results.filter((result) => result.status === 'started').length;
339
+ const skipped = results.filter((result) => result.status === 'skipped').length;
340
+ const failed = results.filter((result) => result.status === 'failed').length;
341
+ Logger.info('Worker start-all summary', {
342
+ total: eligibleWorkers.length,
343
+ started,
344
+ skipped,
345
+ failed,
346
+ });
347
+ }
348
+ catch (error) {
349
+ logFirstFaultSummaryOnce(diagnosticsState, error, 'worker:start-all failed');
350
+ Logger.error('worker:start-all command failed', error);
351
+ process.exit(1);
352
+ }
353
+ };
273
354
  /**
274
355
  * Worker Start All Command
275
356
  */
276
357
  const createWorkerStartAllCommand = () => {
277
- const ext = async () => {
278
- try {
279
- const globalAutoStart = Env.getBool('WORKER_AUTO_START', false);
280
- if (!globalAutoStart) {
281
- Logger.info('Skipping auto-start because WORKER_AUTO_START is false.');
282
- return;
283
- }
284
- const factory = await getWorkerFactory();
285
- const workersModule = await loadWorkersModule();
286
- const { names: workers, source } = await resolveAutoStartWorkerNames(factory, workersModule);
287
- if (workers.length === 0) {
288
- Logger.info('No auto-start eligible persisted or file-backed workers found.');
289
- return;
290
- }
291
- let eligibleWorkers = workers;
292
- if (source === 'persisted') {
293
- const discoveredWorkers = await pollForPersistedWorkers(factory);
294
- eligibleWorkers = workers.filter((name) => discoveredWorkers.includes(name));
295
- }
296
- if (eligibleWorkers.length === 0) {
297
- Logger.info('No auto-start eligible workers are currently available.');
298
- return;
358
+ const cmd = BaseCommand.create({
359
+ name: 'worker:start-all',
360
+ description: 'Start all persisted workers',
361
+ execute: executeWorkerStartAll,
362
+ });
363
+ return cmd;
364
+ };
365
+ const createWorkerDoctorCommand = () => {
366
+ const ext = (options) => {
367
+ const json = options['json'] === true;
368
+ const report = WorkerStartupDiagnostics.collect();
369
+ if (json) {
370
+ console.log(JSON.stringify(report, null, 2));
371
+ }
372
+ else {
373
+ console.log();
374
+ for (const line of WorkerStartupDiagnostics.renderLines(report)) {
375
+ console.log(line);
299
376
  }
300
- const results = await Promise.all(eligibleWorkers.map(async (name) => {
301
- const existing = await factory.get(name);
302
- if (existing !== null && existing !== undefined) {
303
- const trulyRunning = await isRegisteredWorkerRunning(existing);
304
- if (trulyRunning) {
305
- return { name, status: 'skipped' };
306
- }
307
- Logger.warn(`Worker "${name}" is registered but not truly running. Restarting for crash recovery.`);
308
- try {
309
- await factory.restart(name);
310
- return { name, status: 'started' };
311
- }
312
- catch (error) {
313
- Logger.warn(`Failed to restart stale worker "${name}"`, error);
314
- return { name, status: 'failed' };
315
- }
316
- }
317
- try {
318
- await factory.startFromPersisted(name);
319
- return { name, status: 'started' };
320
- }
321
- catch (error) {
322
- Logger.warn(`Failed to start worker "${name}"`, error);
323
- return { name, status: 'failed' };
324
- }
325
- }));
326
- const started = results.filter((result) => result.status === 'started').length;
327
- const skipped = results.filter((result) => result.status === 'skipped').length;
328
- const failed = results.filter((result) => result.status === 'failed').length;
329
- Logger.info('Worker start-all summary', {
330
- total: eligibleWorkers.length,
331
- started,
332
- skipped,
333
- failed,
334
- });
377
+ console.log();
335
378
  }
336
- catch (error) {
337
- Logger.error('worker:start-all command failed', error);
379
+ if (WorkerStartupDiagnostics.hasBlockingIssues(report)) {
338
380
  process.exit(1);
339
381
  }
340
382
  };
341
383
  const cmd = BaseCommand.create({
342
- name: 'worker:start-all',
343
- description: 'Start all persisted workers',
344
- execute: async () => ext(),
384
+ name: 'worker:doctor',
385
+ description: 'Print worker startup diagnostics and likely missing env keys',
386
+ addOptions: (command) => {
387
+ command.option('--json', 'Print machine-readable diagnostics');
388
+ },
389
+ execute: async (options) => {
390
+ await Promise.resolve();
391
+ ext(options);
392
+ },
345
393
  });
346
394
  return cmd;
347
395
  };
@@ -461,5 +509,6 @@ export const WorkerCommands = {
461
509
  createWorkerStartAllCommand,
462
510
  createWorkerStopCommand,
463
511
  createWorkerRestartCommand,
512
+ createWorkerDoctorCommand,
464
513
  createWorkerSummaryCommand,
465
514
  };
@@ -0,0 +1,41 @@
1
+ type IssueSeverity = 'error' | 'warn' | 'info';
2
+ export type WorkerStartupIssue = Readonly<{
3
+ severity: IssueSeverity;
4
+ message: string;
5
+ envKeys: ReadonlyArray<string>;
6
+ }>;
7
+ export type WorkerStartupEnvStatus = Readonly<{
8
+ key: string;
9
+ present: boolean;
10
+ resolvedValue: string;
11
+ explicitValue: string;
12
+ }>;
13
+ export type WorkerStartupDiagnosticsReport = Readonly<{
14
+ flags: Readonly<{
15
+ runtimeMode: string;
16
+ workerEnabled: boolean;
17
+ workerAutoStart: boolean;
18
+ dockerWorker: boolean;
19
+ queueEnabled: boolean;
20
+ queueDriver: string;
21
+ persistenceDriver: string;
22
+ }>;
23
+ issues: ReadonlyArray<WorkerStartupIssue>;
24
+ missingEnvKeys: ReadonlyArray<string>;
25
+ envStatus: ReadonlyArray<WorkerStartupEnvStatus>;
26
+ firstFault: Readonly<{
27
+ message: string;
28
+ code?: string;
29
+ }> | null;
30
+ logPointers: ReadonlyArray<string>;
31
+ nextSteps: ReadonlyArray<string>;
32
+ }>;
33
+ export declare const WorkerStartupDiagnostics: Readonly<{
34
+ collect: (error?: unknown) => WorkerStartupDiagnosticsReport;
35
+ renderLines: (report: WorkerStartupDiagnosticsReport) => string[];
36
+ log: (error?: unknown, context?: string) => WorkerStartupDiagnosticsReport;
37
+ hasBlockingIssues: (report: WorkerStartupDiagnosticsReport) => boolean;
38
+ createCliError(message: string): Error;
39
+ }>;
40
+ export {};
41
+ //# sourceMappingURL=WorkerStartupDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerStartupDiagnostics.d.ts","sourceRoot":"","sources":["../../../../src/cli/services/WorkerStartupDiagnostics.ts"],"names":[],"mappings":"AAMA,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,KAAK,EAAE,QAAQ,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,OAAO,CAAC;QACvB,eAAe,EAAE,OAAO,CAAC;QACzB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC1C,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACjD,UAAU,EAAE,QAAQ,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,GAAG,IAAI,CAAC;IACV,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC,CAAC;AA4bH,eAAO,MAAM,wBAAwB;sBAxFZ,OAAO,KAAG,8BAA8B;0BAwCpC,8BAA8B,KAAG,MAAM,EAAE;kBA0BjD,OAAO,uBAA+B,8BAA8B;gCAmBtD,8BAA8B,KAAG,OAAO;4BAQjD,MAAM,GAAG,KAAK;EAGtC,CAAC"}