@zudojs/runtime 0.0.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 (147) hide show
  1. package/README.md +37 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/dependencyGraph/dependencyGraph.core.d.ts +18 -0
  4. package/dist/dependencyGraph/dependencyGraph.core.d.ts.map +1 -0
  5. package/dist/dependencyGraph/dependencyGraph.core.js +124 -0
  6. package/dist/dependencyGraph/dependencyGraph.core.js.map +1 -0
  7. package/dist/dependencyGraph/dependencyGraph.type.d.ts +43 -0
  8. package/dist/dependencyGraph/dependencyGraph.type.d.ts.map +1 -0
  9. package/dist/dependencyGraph/dependencyGraph.type.js +2 -0
  10. package/dist/dependencyGraph/dependencyGraph.type.js.map +1 -0
  11. package/dist/dependencyGraph/index.d.ts +6 -0
  12. package/dist/dependencyGraph/index.d.ts.map +1 -0
  13. package/dist/dependencyGraph/index.js +5 -0
  14. package/dist/dependencyGraph/index.js.map +1 -0
  15. package/dist/index.d.ts +28 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +27 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lifecycle/index.d.ts +6 -0
  20. package/dist/lifecycle/index.d.ts.map +1 -0
  21. package/dist/lifecycle/index.js +5 -0
  22. package/dist/lifecycle/index.js.map +1 -0
  23. package/dist/lifecycle/lifecycle.core.d.ts +47 -0
  24. package/dist/lifecycle/lifecycle.core.d.ts.map +1 -0
  25. package/dist/lifecycle/lifecycle.core.js +267 -0
  26. package/dist/lifecycle/lifecycle.core.js.map +1 -0
  27. package/dist/lifecycle/lifecycle.type.d.ts +51 -0
  28. package/dist/lifecycle/lifecycle.type.d.ts.map +1 -0
  29. package/dist/lifecycle/lifecycle.type.js +2 -0
  30. package/dist/lifecycle/lifecycle.type.js.map +1 -0
  31. package/dist/readiness/index.d.ts +6 -0
  32. package/dist/readiness/index.d.ts.map +1 -0
  33. package/dist/readiness/index.js +5 -0
  34. package/dist/readiness/index.js.map +1 -0
  35. package/dist/readiness/readiness.core.d.ts +45 -0
  36. package/dist/readiness/readiness.core.d.ts.map +1 -0
  37. package/dist/readiness/readiness.core.js +115 -0
  38. package/dist/readiness/readiness.core.js.map +1 -0
  39. package/dist/readiness/readiness.type.d.ts +40 -0
  40. package/dist/readiness/readiness.type.d.ts.map +1 -0
  41. package/dist/readiness/readiness.type.js +2 -0
  42. package/dist/readiness/readiness.type.js.map +1 -0
  43. package/dist/registry/index.d.ts +5 -0
  44. package/dist/registry/index.d.ts.map +1 -0
  45. package/dist/registry/index.js +5 -0
  46. package/dist/registry/index.js.map +1 -0
  47. package/dist/registry/registry.core.d.ts +74 -0
  48. package/dist/registry/registry.core.d.ts.map +1 -0
  49. package/dist/registry/registry.core.js +126 -0
  50. package/dist/registry/registry.core.js.map +1 -0
  51. package/dist/runtime/runtime.core.d.ts +97 -0
  52. package/dist/runtime/runtime.core.d.ts.map +1 -0
  53. package/dist/runtime/runtime.core.js +253 -0
  54. package/dist/runtime/runtime.core.js.map +1 -0
  55. package/dist/runtimeContext/index.d.ts +7 -0
  56. package/dist/runtimeContext/index.d.ts.map +1 -0
  57. package/dist/runtimeContext/index.js +6 -0
  58. package/dist/runtimeContext/index.js.map +1 -0
  59. package/dist/runtimeContext/runtimeContext.core.d.ts +11 -0
  60. package/dist/runtimeContext/runtimeContext.core.d.ts.map +1 -0
  61. package/dist/runtimeContext/runtimeContext.core.js +41 -0
  62. package/dist/runtimeContext/runtimeContext.core.js.map +1 -0
  63. package/dist/runtimeContext/runtimeContext.factory.d.ts +14 -0
  64. package/dist/runtimeContext/runtimeContext.factory.d.ts.map +1 -0
  65. package/dist/runtimeContext/runtimeContext.factory.js +20 -0
  66. package/dist/runtimeContext/runtimeContext.factory.js.map +1 -0
  67. package/dist/runtimeContext/runtimeContext.type.d.ts +59 -0
  68. package/dist/runtimeContext/runtimeContext.type.d.ts.map +1 -0
  69. package/dist/runtimeContext/runtimeContext.type.js +2 -0
  70. package/dist/runtimeContext/runtimeContext.type.js.map +1 -0
  71. package/dist/runtimeError/index.d.ts +5 -0
  72. package/dist/runtimeError/index.d.ts.map +1 -0
  73. package/dist/runtimeError/index.js +5 -0
  74. package/dist/runtimeError/index.js.map +1 -0
  75. package/dist/runtimeError/runtimeError.base.d.ts +80 -0
  76. package/dist/runtimeError/runtimeError.base.d.ts.map +1 -0
  77. package/dist/runtimeError/runtimeError.base.js +149 -0
  78. package/dist/runtimeError/runtimeError.base.js.map +1 -0
  79. package/dist/runtimeEvents/index.d.ts +6 -0
  80. package/dist/runtimeEvents/index.d.ts.map +1 -0
  81. package/dist/runtimeEvents/index.js +5 -0
  82. package/dist/runtimeEvents/index.js.map +1 -0
  83. package/dist/runtimeEvents/runtimeEvents.core.d.ts +28 -0
  84. package/dist/runtimeEvents/runtimeEvents.core.d.ts.map +1 -0
  85. package/dist/runtimeEvents/runtimeEvents.core.js +63 -0
  86. package/dist/runtimeEvents/runtimeEvents.core.js.map +1 -0
  87. package/dist/runtimeEvents/runtimeEvents.type.d.ts +75 -0
  88. package/dist/runtimeEvents/runtimeEvents.type.d.ts.map +1 -0
  89. package/dist/runtimeEvents/runtimeEvents.type.js +2 -0
  90. package/dist/runtimeEvents/runtimeEvents.type.js.map +1 -0
  91. package/dist/runtimeOptions/index.d.ts +7 -0
  92. package/dist/runtimeOptions/index.d.ts.map +1 -0
  93. package/dist/runtimeOptions/index.js +6 -0
  94. package/dist/runtimeOptions/index.js.map +1 -0
  95. package/dist/runtimeOptions/runtimeOptions.core.d.ts +14 -0
  96. package/dist/runtimeOptions/runtimeOptions.core.d.ts.map +1 -0
  97. package/dist/runtimeOptions/runtimeOptions.core.js +37 -0
  98. package/dist/runtimeOptions/runtimeOptions.core.js.map +1 -0
  99. package/dist/runtimeOptions/runtimeOptions.type.d.ts +94 -0
  100. package/dist/runtimeOptions/runtimeOptions.type.d.ts.map +1 -0
  101. package/dist/runtimeOptions/runtimeOptions.type.js +14 -0
  102. package/dist/runtimeOptions/runtimeOptions.type.js.map +1 -0
  103. package/dist/runtimeState/index.d.ts +6 -0
  104. package/dist/runtimeState/index.d.ts.map +1 -0
  105. package/dist/runtimeState/index.js +5 -0
  106. package/dist/runtimeState/index.js.map +1 -0
  107. package/dist/runtimeState/runtimeState.core.d.ts +50 -0
  108. package/dist/runtimeState/runtimeState.core.d.ts.map +1 -0
  109. package/dist/runtimeState/runtimeState.core.js +88 -0
  110. package/dist/runtimeState/runtimeState.core.js.map +1 -0
  111. package/dist/runtimeState/runtimeState.type.d.ts +71 -0
  112. package/dist/runtimeState/runtimeState.type.d.ts.map +1 -0
  113. package/dist/runtimeState/runtimeState.type.js +2 -0
  114. package/dist/runtimeState/runtimeState.type.js.map +1 -0
  115. package/dist/shutdown/index.d.ts +5 -0
  116. package/dist/shutdown/index.d.ts.map +1 -0
  117. package/dist/shutdown/index.js +5 -0
  118. package/dist/shutdown/index.js.map +1 -0
  119. package/dist/shutdown/shutdown.core.d.ts +8 -0
  120. package/dist/shutdown/shutdown.core.d.ts.map +1 -0
  121. package/dist/shutdown/shutdown.core.js +87 -0
  122. package/dist/shutdown/shutdown.core.js.map +1 -0
  123. package/dist/signalHandler/index.d.ts +5 -0
  124. package/dist/signalHandler/index.d.ts.map +1 -0
  125. package/dist/signalHandler/index.js +5 -0
  126. package/dist/signalHandler/index.js.map +1 -0
  127. package/dist/signalHandler/signalHandler.core.d.ts +44 -0
  128. package/dist/signalHandler/signalHandler.core.d.ts.map +1 -0
  129. package/dist/signalHandler/signalHandler.core.js +90 -0
  130. package/dist/signalHandler/signalHandler.core.js.map +1 -0
  131. package/dist/startup/index.d.ts +5 -0
  132. package/dist/startup/index.d.ts.map +1 -0
  133. package/dist/startup/index.js +5 -0
  134. package/dist/startup/index.js.map +1 -0
  135. package/dist/startup/startup.core.d.ts +12 -0
  136. package/dist/startup/startup.core.d.ts.map +1 -0
  137. package/dist/startup/startup.core.js +91 -0
  138. package/dist/startup/startup.core.js.map +1 -0
  139. package/dist/testRuntime/index.d.ts +5 -0
  140. package/dist/testRuntime/index.d.ts.map +1 -0
  141. package/dist/testRuntime/index.js +5 -0
  142. package/dist/testRuntime/index.js.map +1 -0
  143. package/dist/testRuntime/testRuntime.core.d.ts +34 -0
  144. package/dist/testRuntime/testRuntime.core.d.ts.map +1 -0
  145. package/dist/testRuntime/testRuntime.core.js +81 -0
  146. package/dist/testRuntime/testRuntime.core.js.map +1 -0
  147. package/package.json +61 -0
@@ -0,0 +1,51 @@
1
+ import type { Module } from "@zudojs/core";
2
+ /**
3
+ * Lifecycle hook phases for modules.
4
+ */
5
+ export type LifecyclePhase = "initialize" | "start" | "stop" | "destroy";
6
+ /**
7
+ * Result of a lifecycle operation.
8
+ */
9
+ export interface LifecycleResult {
10
+ readonly phase: LifecyclePhase;
11
+ readonly succeeded: readonly string[];
12
+ readonly failed: readonly LifecycleFailure[];
13
+ readonly durationMs: number;
14
+ }
15
+ /**
16
+ * Failure information for a lifecycle operation.
17
+ */
18
+ export interface LifecycleFailure {
19
+ readonly moduleId: string;
20
+ readonly phase: LifecyclePhase;
21
+ readonly error: Error;
22
+ readonly durationMs: number;
23
+ }
24
+ /**
25
+ * Context passed to lifecycle hooks.
26
+ */
27
+ export interface LifecycleContext {
28
+ readonly runtimeId: string;
29
+ readonly environment: string;
30
+ readonly phase: LifecyclePhase;
31
+ readonly moduleId: string;
32
+ readonly container: import("@zudojs/container").Container;
33
+ readonly logger: import("@zudojs/logger").Logger;
34
+ }
35
+ /**
36
+ * A module entry in the lifecycle manager.
37
+ */
38
+ export interface ManagedModule {
39
+ readonly module: Module;
40
+ readonly depth: number;
41
+ readonly dependencies: readonly string[];
42
+ }
43
+ /**
44
+ * Options for lifecycle management.
45
+ */
46
+ export interface LifecycleManagerOptions {
47
+ readonly shutdownTimeout?: number;
48
+ readonly continueOnFailure?: boolean;
49
+ readonly parallelInitialization?: boolean;
50
+ }
51
+ //# sourceMappingURL=lifecycle.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.type.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,mBAAmB,EAAE,SAAS,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,EAAE,MAAM,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lifecycle.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.type.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Runtime readiness tracking.
3
+ */
4
+ export { ReadinessTracker } from "./readiness.core.js";
5
+ export type { ReadinessState, ReadinessCheck, ReadinessTrackerState, ReadinessOptions, } from "./readiness.type.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/readiness/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,YAAY,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Runtime readiness tracking.
3
+ */
4
+ export { ReadinessTracker } from "./readiness.core.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/readiness/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { ReadinessState, ReadinessTrackerState, ReadinessOptions } from "./readiness.type.js";
2
+ /**
3
+ * Tracks runtime readiness state.
4
+ */
5
+ export declare class ReadinessTracker {
6
+ private state;
7
+ private readonly checks;
8
+ private readonly autoMarkReady;
9
+ private ready;
10
+ private reason?;
11
+ constructor(options?: ReadinessOptions);
12
+ /**
13
+ * Registers a readiness check.
14
+ */
15
+ registerCheck(name: string, check: () => boolean | Promise<boolean>): void;
16
+ /**
17
+ * Updates a readiness check result.
18
+ */
19
+ updateCheck(name: string, check: () => boolean | Promise<boolean>): Promise<void>;
20
+ /**
21
+ * Marks the runtime as ready.
22
+ */
23
+ markReady(reason?: string): void;
24
+ /**
25
+ * Marks the runtime as not ready.
26
+ */
27
+ markNotReady(reason?: string): void;
28
+ /**
29
+ * Updates the readiness state.
30
+ */
31
+ setState(state: ReadinessState, reason?: string): void;
32
+ /**
33
+ * Returns whether the runtime is ready.
34
+ */
35
+ isReady(): boolean;
36
+ /**
37
+ * Returns the current readiness state.
38
+ */
39
+ getState(): ReadinessTrackerState;
40
+ /**
41
+ * Evaluates overall readiness based on registered checks.
42
+ */
43
+ private evaluateReadiness;
44
+ }
45
+ //# sourceMappingURL=readiness.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.core.d.ts","sourceRoot":"","sources":["../../src/readiness/readiness.core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB,YAAmB,OAAO,GAAE,gBAAqB,EAQhD;IAED;;OAEG;IACI,aAAa,CAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACtC,IAAI,CAQN;IAED;;OAEG;IACU,WAAW,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAqBf;IAED;;OAEG;IACI,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAItC;IAED;;OAEG;IACI,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAOzC;IAED;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAU5D;IAED;;OAEG;IACI,OAAO,IAAI,OAAO,CAExB;IAED;;OAEG;IACI,QAAQ,IAAI,qBAAqB,CAOvC;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Tracks runtime readiness state.
3
+ */
4
+ export class ReadinessTracker {
5
+ state = "not_ready";
6
+ checks = new Map();
7
+ autoMarkReady;
8
+ ready = false;
9
+ reason;
10
+ constructor(options = {}) {
11
+ this.autoMarkReady = options.autoMarkReady ?? true;
12
+ if (options.initialChecks) {
13
+ for (const check of options.initialChecks) {
14
+ this.registerCheck(check.name, check.check);
15
+ }
16
+ }
17
+ }
18
+ /**
19
+ * Registers a readiness check.
20
+ */
21
+ registerCheck(name, check) {
22
+ this.checks.set(name, {
23
+ name,
24
+ ready: false,
25
+ lastCheckedAt: new Date(),
26
+ });
27
+ this.evaluateReadiness();
28
+ }
29
+ /**
30
+ * Updates a readiness check result.
31
+ */
32
+ async updateCheck(name, check) {
33
+ const startTime = Date.now();
34
+ try {
35
+ const result = await check();
36
+ this.checks.set(name, {
37
+ name,
38
+ ready: result,
39
+ lastCheckedAt: new Date(),
40
+ });
41
+ }
42
+ catch {
43
+ this.checks.set(name, {
44
+ name,
45
+ ready: false,
46
+ lastCheckedAt: new Date(),
47
+ message: "Check threw an error",
48
+ });
49
+ }
50
+ this.evaluateReadiness();
51
+ }
52
+ /**
53
+ * Marks the runtime as ready.
54
+ */
55
+ markReady(reason) {
56
+ this.state = "ready";
57
+ this.ready = true;
58
+ this.reason = reason;
59
+ }
60
+ /**
61
+ * Marks the runtime as not ready.
62
+ */
63
+ markNotReady(reason) {
64
+ this.ready = false;
65
+ this.reason = reason;
66
+ if (this.state === "ready") {
67
+ this.state = "degraded";
68
+ }
69
+ }
70
+ /**
71
+ * Updates the readiness state.
72
+ */
73
+ setState(state, reason) {
74
+ this.state = state;
75
+ if (state === "ready") {
76
+ this.ready = true;
77
+ }
78
+ else if (state === "not_ready" || state === "shutting_down") {
79
+ this.ready = false;
80
+ }
81
+ this.reason = reason;
82
+ }
83
+ /**
84
+ * Returns whether the runtime is ready.
85
+ */
86
+ isReady() {
87
+ return this.ready;
88
+ }
89
+ /**
90
+ * Returns the current readiness state.
91
+ */
92
+ getState() {
93
+ return Object.freeze({
94
+ state: this.state,
95
+ checks: Object.freeze(new Map(this.checks)),
96
+ ready: this.ready,
97
+ reason: this.reason,
98
+ });
99
+ }
100
+ /**
101
+ * Evaluates overall readiness based on registered checks.
102
+ */
103
+ evaluateReadiness() {
104
+ if (this.autoMarkReady && this.checks.size > 0) {
105
+ const allReady = [...this.checks.values()].every((check) => check.ready);
106
+ if (allReady && !this.ready) {
107
+ this.markReady("All readiness checks passed.");
108
+ }
109
+ else if (!allReady && this.ready) {
110
+ this.markNotReady("One or more readiness checks failed.");
111
+ }
112
+ }
113
+ }
114
+ }
115
+ //# sourceMappingURL=readiness.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.core.js","sourceRoot":"","sources":["../../src/readiness/readiness.core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Readiness state of the runtime.
3
+ */
4
+ export type ReadinessState = "not_ready" | "initializing" | "ready" | "degraded" | "shutting_down";
5
+ /**
6
+ * Readiness check result.
7
+ */
8
+ export interface ReadinessCheck {
9
+ readonly name: string;
10
+ readonly ready: boolean;
11
+ readonly message?: string;
12
+ readonly lastCheckedAt: Date;
13
+ }
14
+ /**
15
+ * Readiness tracker state.
16
+ */
17
+ export interface ReadinessTrackerState {
18
+ readonly state: ReadinessState;
19
+ readonly checks: ReadonlyMap<string, ReadinessCheck>;
20
+ readonly ready: boolean;
21
+ readonly reason?: string;
22
+ }
23
+ /**
24
+ * Options for readiness tracking.
25
+ */
26
+ export interface ReadinessOptions {
27
+ /**
28
+ * Initial readiness checks to register.
29
+ */
30
+ readonly initialChecks?: ReadonlyArray<{
31
+ readonly name: string;
32
+ readonly check: () => boolean | Promise<boolean>;
33
+ }>;
34
+ /**
35
+ * Whether to automatically mark as ready when all checks pass.
36
+ * @default true
37
+ */
38
+ readonly autoMarkReady?: boolean;
39
+ }
40
+ //# sourceMappingURL=readiness.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.type.d.ts","sourceRoot":"","sources":["../../src/readiness/readiness.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GACxB,WAAW,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;QACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAClD,CAAC,CAAC;IAEH;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=readiness.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.type.js","sourceRoot":"","sources":["../../src/readiness/readiness.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @zudojs/runtime — Registry Barrel
3
+ */
4
+ export { RuntimeRegistry } from "./registry.core.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @zudojs/runtime — Registry Barrel
3
+ */
4
+ export { RuntimeRegistry } from "./registry.core.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @zudojs/runtime — Runtime Registry
3
+ *
4
+ * Manages multiple runtime instances for scenarios where Zudojs
5
+ * runs multiple applications or workers in a single process.
6
+ */
7
+ import type { Runtime } from "../runtime/runtime.core.js";
8
+ /**
9
+ * Runtime registry for managing multiple runtime instances.
10
+ *
11
+ * Useful for:
12
+ * - API server + Worker + Scheduler in one process
13
+ * - Testing multiple runtime configurations
14
+ * - Embedded runtimes
15
+ */
16
+ export declare class RuntimeRegistry {
17
+ private readonly runtimes;
18
+ /**
19
+ * Register a runtime instance.
20
+ */
21
+ register(id: string, runtime: Runtime): void;
22
+ /**
23
+ * Unregister a runtime instance.
24
+ */
25
+ unregister(id: string): void;
26
+ /**
27
+ * Get a runtime by ID.
28
+ */
29
+ get(id: string): Runtime | undefined;
30
+ /**
31
+ * Get a required runtime by ID (throws if not found).
32
+ */
33
+ require(id: string): Runtime;
34
+ /**
35
+ * Check if a runtime is registered.
36
+ */
37
+ has(id: string): boolean;
38
+ /**
39
+ * Get all registered runtime IDs.
40
+ */
41
+ getIds(): readonly string[];
42
+ /**
43
+ * Get all registered runtimes.
44
+ */
45
+ getAll(): readonly Runtime[];
46
+ /**
47
+ * Get the count of registered runtimes.
48
+ */
49
+ get size(): number;
50
+ /**
51
+ * Start all registered runtimes.
52
+ */
53
+ startAll(): Promise<void>;
54
+ /**
55
+ * Stop all registered runtimes.
56
+ */
57
+ stopAll(): Promise<void>;
58
+ /**
59
+ * Check if all runtimes are ready.
60
+ */
61
+ isAllReady(): boolean;
62
+ /**
63
+ * Get status of all runtimes.
64
+ */
65
+ getStatus(): Record<string, {
66
+ state: string;
67
+ ready: boolean;
68
+ }>;
69
+ /**
70
+ * Clear all registered runtimes.
71
+ */
72
+ clear(): void;
73
+ }
74
+ //# sourceMappingURL=registry.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.core.d.ts","sourceRoot":"","sources":["../../src/registry/registry.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAEvD;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAK3C;IAED;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEnC;IAED;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAM3B;IAED;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvB;IAED;;OAEG;IACH,MAAM,IAAI,SAAS,MAAM,EAAE,CAE1B;IAED;;OAEG;IACH,MAAM,IAAI,SAAS,OAAO,EAAE,CAE3B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAI9B;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAU7B;IAED;;OAEG;IACH,UAAU,IAAI,OAAO,CAOpB;IAED;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAS7D;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @zudojs/runtime — Runtime Registry
3
+ *
4
+ * Manages multiple runtime instances for scenarios where Zudojs
5
+ * runs multiple applications or workers in a single process.
6
+ */
7
+ /**
8
+ * Runtime registry for managing multiple runtime instances.
9
+ *
10
+ * Useful for:
11
+ * - API server + Worker + Scheduler in one process
12
+ * - Testing multiple runtime configurations
13
+ * - Embedded runtimes
14
+ */
15
+ export class RuntimeRegistry {
16
+ runtimes = new Map();
17
+ /**
18
+ * Register a runtime instance.
19
+ */
20
+ register(id, runtime) {
21
+ if (this.runtimes.has(id)) {
22
+ throw new Error(`Runtime "${id}" is already registered.`);
23
+ }
24
+ this.runtimes.set(id, runtime);
25
+ }
26
+ /**
27
+ * Unregister a runtime instance.
28
+ */
29
+ unregister(id) {
30
+ this.runtimes.delete(id);
31
+ }
32
+ /**
33
+ * Get a runtime by ID.
34
+ */
35
+ get(id) {
36
+ return this.runtimes.get(id);
37
+ }
38
+ /**
39
+ * Get a required runtime by ID (throws if not found).
40
+ */
41
+ require(id) {
42
+ const runtime = this.runtimes.get(id);
43
+ if (!runtime) {
44
+ throw new Error(`Runtime "${id}" not found.`);
45
+ }
46
+ return runtime;
47
+ }
48
+ /**
49
+ * Check if a runtime is registered.
50
+ */
51
+ has(id) {
52
+ return this.runtimes.has(id);
53
+ }
54
+ /**
55
+ * Get all registered runtime IDs.
56
+ */
57
+ getIds() {
58
+ return Array.from(this.runtimes.keys());
59
+ }
60
+ /**
61
+ * Get all registered runtimes.
62
+ */
63
+ getAll() {
64
+ return Array.from(this.runtimes.values());
65
+ }
66
+ /**
67
+ * Get the count of registered runtimes.
68
+ */
69
+ get size() {
70
+ return this.runtimes.size;
71
+ }
72
+ /**
73
+ * Start all registered runtimes.
74
+ */
75
+ async startAll() {
76
+ for (const runtime of this.runtimes.values()) {
77
+ await runtime.start();
78
+ }
79
+ }
80
+ /**
81
+ * Stop all registered runtimes.
82
+ */
83
+ async stopAll() {
84
+ // Stop in reverse registration order
85
+ const runtimes = Array.from(this.runtimes.values()).reverse();
86
+ for (const runtime of runtimes) {
87
+ try {
88
+ await runtime.stop();
89
+ }
90
+ catch {
91
+ // Continue stopping other runtimes even if one fails
92
+ }
93
+ }
94
+ }
95
+ /**
96
+ * Check if all runtimes are ready.
97
+ */
98
+ isAllReady() {
99
+ for (const runtime of this.runtimes.values()) {
100
+ if (!runtime.ready) {
101
+ return false;
102
+ }
103
+ }
104
+ return true;
105
+ }
106
+ /**
107
+ * Get status of all runtimes.
108
+ */
109
+ getStatus() {
110
+ const result = {};
111
+ for (const [id, runtime] of this.runtimes) {
112
+ result[id] = {
113
+ state: runtime.state,
114
+ ready: runtime.ready,
115
+ };
116
+ }
117
+ return result;
118
+ }
119
+ /**
120
+ * Clear all registered runtimes.
121
+ */
122
+ clear() {
123
+ this.runtimes.clear();
124
+ }
125
+ }
126
+ //# sourceMappingURL=registry.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.core.js","sourceRoot":"","sources":["../../src/registry/registry.core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import type { Logger } from "@zudojs/logger";
2
+ import type { EventBus } from "@zudojs/events";
3
+ import type { Container } from "@zudojs/container";
4
+ import type { Module } from "@zudojs/core";
5
+ import type { RuntimeState, RuntimeStatus } from "../runtimeState/index.js";
6
+ import type { RuntimeOptions } from "../runtimeOptions/index.js";
7
+ import type { RuntimeContext } from "../runtimeContext/index.js";
8
+ /**
9
+ * Zudojs runtime interface.
10
+ *
11
+ * The runtime is the orchestrator that manages the complete
12
+ * application lifecycle from creation through shutdown.
13
+ */
14
+ export interface Runtime {
15
+ readonly state: RuntimeState;
16
+ readonly status: RuntimeStatus;
17
+ readonly context: RuntimeContext;
18
+ readonly ready: boolean;
19
+ start(): Promise<void>;
20
+ stop(): Promise<void>;
21
+ }
22
+ /**
23
+ * Dependencies required to create a runtime.
24
+ */
25
+ export interface RuntimeDependencies {
26
+ readonly modules: ReadonlyMap<string, Module>;
27
+ readonly logger: Logger;
28
+ readonly container: Container;
29
+ readonly eventBus: EventBus;
30
+ }
31
+ /**
32
+ * Default runtime implementation.
33
+ */
34
+ export declare class DefaultRuntime implements Runtime {
35
+ private _state;
36
+ private _status;
37
+ private _context;
38
+ private _ready;
39
+ private _startedAt?;
40
+ private _stoppedAt?;
41
+ private _failedAt?;
42
+ private _error?;
43
+ private readonly options;
44
+ private readonly modules;
45
+ private readonly logger;
46
+ private readonly lifecycle;
47
+ private readonly signalHandler;
48
+ private readonly readinessTracker;
49
+ private startPromise;
50
+ private stopPromise;
51
+ constructor(dependencies: RuntimeDependencies, options: RuntimeOptions);
52
+ /**
53
+ * Current runtime state.
54
+ */
55
+ get state(): RuntimeState;
56
+ /**
57
+ * Current runtime status.
58
+ */
59
+ get status(): RuntimeStatus;
60
+ /**
61
+ * Runtime context.
62
+ */
63
+ get context(): RuntimeContext;
64
+ /**
65
+ * Whether the runtime is ready.
66
+ */
67
+ get ready(): boolean;
68
+ /**
69
+ * Starts the runtime.
70
+ */
71
+ start(): Promise<void>;
72
+ /**
73
+ * Stops the runtime.
74
+ */
75
+ stop(): Promise<void>;
76
+ /**
77
+ * Performs runtime startup.
78
+ */
79
+ private performStart;
80
+ /**
81
+ * Performs runtime shutdown.
82
+ */
83
+ private performStop;
84
+ /**
85
+ * Transitions to a new state.
86
+ */
87
+ private transitionTo;
88
+ /**
89
+ * Emits a runtime event.
90
+ */
91
+ private emitEvent;
92
+ }
93
+ /**
94
+ * Creates a runtime instance.
95
+ */
96
+ export declare function createRuntime(dependencies: RuntimeDependencies, options: RuntimeOptions): Runtime;
97
+ //# sourceMappingURL=runtime.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.core.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAGd,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAkCjE;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAC,CAAO;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAO;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAO;IACzB,OAAO,CAAC,MAAM,CAAC,CAAQ;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAEpD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAA4B;IAE/C,YACE,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,cAAc,EAsCxB;IAED;;OAEG;IACH,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,aAAa,CAEjC;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,cAAc,CAEnC;IAED;;OAEG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBlC;IAED;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BjC;IAED;;OAEG;YACW,YAAY;IAqF1B;;OAEG;YACW,WAAW;IA2DzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,SAAS;CAYlB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,cAAc,GACtB,OAAO,CAET"}