@bluelibs/runner 4.6.0 → 4.7.0-alpha

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 (156) hide show
  1. package/AI.md +319 -579
  2. package/README.md +886 -731
  3. package/dist/browser/index.cjs +1438 -251
  4. package/dist/browser/index.cjs.map +1 -1
  5. package/dist/browser/index.mjs +1433 -252
  6. package/dist/browser/index.mjs.map +1 -1
  7. package/dist/context.d.ts +31 -0
  8. package/dist/define.d.ts +9 -0
  9. package/dist/definers/builders/core.d.ts +30 -0
  10. package/dist/definers/builders/event.d.ts +12 -0
  11. package/dist/definers/builders/hook.d.ts +20 -0
  12. package/dist/definers/builders/middleware.d.ts +39 -0
  13. package/dist/definers/builders/resource.d.ts +40 -0
  14. package/dist/definers/builders/tag.d.ts +10 -0
  15. package/dist/definers/builders/task.d.ts +37 -0
  16. package/dist/definers/builders/task.phantom.d.ts +27 -0
  17. package/dist/definers/builders/utils.d.ts +4 -0
  18. package/dist/definers/defineEvent.d.ts +2 -0
  19. package/dist/definers/defineHook.d.ts +6 -0
  20. package/dist/definers/defineOverride.d.ts +17 -0
  21. package/dist/definers/defineResource.d.ts +2 -0
  22. package/dist/definers/defineResourceMiddleware.d.ts +2 -0
  23. package/dist/definers/defineTag.d.ts +12 -0
  24. package/dist/definers/defineTask.d.ts +18 -0
  25. package/dist/definers/defineTaskMiddleware.d.ts +2 -0
  26. package/dist/definers/tools.d.ts +47 -0
  27. package/dist/defs.d.ts +29 -0
  28. package/dist/edge/index.cjs +1438 -251
  29. package/dist/edge/index.cjs.map +1 -1
  30. package/dist/edge/index.mjs +1433 -252
  31. package/dist/edge/index.mjs.map +1 -1
  32. package/dist/errors.d.ts +104 -0
  33. package/dist/globals/globalEvents.d.ts +8 -0
  34. package/dist/globals/globalMiddleware.d.ts +31 -0
  35. package/dist/globals/globalResources.d.ts +32 -0
  36. package/dist/globals/globalTags.d.ts +11 -0
  37. package/dist/globals/middleware/cache.middleware.d.ts +27 -0
  38. package/dist/globals/middleware/requireContext.middleware.d.ts +6 -0
  39. package/dist/globals/middleware/retry.middleware.d.ts +21 -0
  40. package/dist/globals/middleware/timeout.middleware.d.ts +9 -0
  41. package/dist/globals/middleware/tunnel.middleware.d.ts +2 -0
  42. package/dist/globals/resources/debug/debug.resource.d.ts +7 -0
  43. package/dist/globals/resources/debug/debug.tag.d.ts +2 -0
  44. package/dist/globals/resources/debug/debugConfig.resource.d.ts +22 -0
  45. package/dist/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
  46. package/dist/globals/resources/debug/globalEvent.hook.d.ts +27 -0
  47. package/dist/globals/resources/debug/hook.hook.d.ts +30 -0
  48. package/dist/globals/resources/debug/index.d.ts +6 -0
  49. package/dist/globals/resources/debug/middleware.hook.d.ts +30 -0
  50. package/dist/globals/resources/debug/types.d.ts +25 -0
  51. package/dist/globals/resources/debug/utils.d.ts +2 -0
  52. package/dist/globals/resources/queue.resource.d.ts +10 -0
  53. package/dist/globals/resources/tunnel/ejson-extensions.d.ts +1 -0
  54. package/dist/globals/resources/tunnel/error-utils.d.ts +1 -0
  55. package/dist/globals/resources/tunnel/plan.d.ts +19 -0
  56. package/dist/globals/resources/tunnel/protocol.d.ts +40 -0
  57. package/dist/globals/resources/tunnel/serializer.d.ts +9 -0
  58. package/dist/globals/resources/tunnel/tunnel.policy.tag.d.ts +18 -0
  59. package/dist/globals/resources/tunnel/tunnel.tag.d.ts +2 -0
  60. package/dist/globals/resources/tunnel/types.d.ts +17 -0
  61. package/dist/globals/tunnels/index.d.ts +23 -0
  62. package/dist/globals/types.d.ts +1 -0
  63. package/dist/http-client.d.ts +23 -0
  64. package/dist/http-fetch-tunnel.resource.d.ts +22 -0
  65. package/dist/index.d.ts +99 -0
  66. package/dist/models/DependencyProcessor.d.ts +48 -0
  67. package/dist/models/EventManager.d.ts +153 -0
  68. package/dist/models/LogPrinter.d.ts +55 -0
  69. package/dist/models/Logger.d.ts +85 -0
  70. package/dist/models/MiddlewareManager.d.ts +86 -0
  71. package/dist/models/OverrideManager.d.ts +13 -0
  72. package/dist/models/Queue.d.ts +26 -0
  73. package/dist/models/ResourceInitializer.d.ts +20 -0
  74. package/dist/models/RunResult.d.ts +35 -0
  75. package/dist/models/Semaphore.d.ts +61 -0
  76. package/dist/models/Store.d.ts +69 -0
  77. package/dist/models/StoreRegistry.d.ts +43 -0
  78. package/dist/models/StoreValidator.d.ts +8 -0
  79. package/dist/models/TaskRunner.d.ts +27 -0
  80. package/dist/models/UnhandledError.d.ts +11 -0
  81. package/dist/models/index.d.ts +11 -0
  82. package/dist/models/utils/findCircularDependencies.d.ts +16 -0
  83. package/dist/models/utils/safeStringify.d.ts +3 -0
  84. package/dist/node/exposure/allowList.d.ts +3 -0
  85. package/dist/node/exposure/authenticator.d.ts +6 -0
  86. package/dist/node/exposure/cors.d.ts +4 -0
  87. package/dist/node/exposure/createNodeExposure.d.ts +2 -0
  88. package/dist/node/exposure/exposureServer.d.ts +18 -0
  89. package/dist/node/exposure/httpResponse.d.ts +10 -0
  90. package/dist/node/exposure/logging.d.ts +4 -0
  91. package/dist/node/exposure/multipart.d.ts +27 -0
  92. package/dist/node/exposure/requestBody.d.ts +11 -0
  93. package/dist/node/exposure/requestContext.d.ts +17 -0
  94. package/dist/node/exposure/requestHandlers.d.ts +24 -0
  95. package/dist/node/exposure/resourceTypes.d.ts +60 -0
  96. package/dist/node/exposure/router.d.ts +17 -0
  97. package/dist/node/exposure/serverLifecycle.d.ts +13 -0
  98. package/dist/node/exposure/types.d.ts +31 -0
  99. package/dist/node/exposure/utils.d.ts +17 -0
  100. package/dist/node/exposure.resource.d.ts +12 -0
  101. package/dist/node/files.d.ts +9 -0
  102. package/dist/node/http-smart-client.model.d.ts +22 -0
  103. package/dist/node/index.d.ts +1 -0
  104. package/dist/node/inputFile.model.d.ts +22 -0
  105. package/dist/node/inputFile.utils.d.ts +14 -0
  106. package/dist/node/mixed-http-client.node.d.ts +27 -0
  107. package/dist/node/node.cjs +11168 -0
  108. package/dist/node/node.cjs.map +1 -0
  109. package/dist/node/node.d.ts +6 -0
  110. package/dist/node/node.mjs +11099 -0
  111. package/dist/node/node.mjs.map +1 -0
  112. package/dist/node/platform/createFile.d.ts +9 -0
  113. package/dist/node/tunnel.allowlist.d.ts +7 -0
  114. package/dist/node/upload/manifest.d.ts +22 -0
  115. package/dist/platform/adapters/browser.d.ts +14 -0
  116. package/dist/platform/adapters/edge.d.ts +5 -0
  117. package/dist/platform/adapters/node-als.d.ts +1 -0
  118. package/dist/platform/adapters/node.d.ts +15 -0
  119. package/dist/platform/adapters/universal-generic.d.ts +14 -0
  120. package/dist/platform/adapters/universal.d.ts +17 -0
  121. package/dist/platform/createFile.d.ts +10 -0
  122. package/dist/platform/createWebFile.d.ts +11 -0
  123. package/dist/platform/factory.d.ts +2 -0
  124. package/dist/platform/index.d.ts +27 -0
  125. package/dist/platform/types.d.ts +29 -0
  126. package/dist/processHooks.d.ts +2 -0
  127. package/dist/run.d.ts +14 -0
  128. package/dist/testing.d.ts +25 -0
  129. package/dist/tools/getCallerFile.d.ts +1 -0
  130. package/dist/tunnels/buildUniversalManifest.d.ts +24 -0
  131. package/dist/types/contracts.d.ts +63 -0
  132. package/dist/types/event.d.ts +74 -0
  133. package/dist/types/hook.d.ts +23 -0
  134. package/dist/types/inputFile.d.ts +34 -0
  135. package/dist/types/meta.d.ts +18 -0
  136. package/dist/types/resource.d.ts +87 -0
  137. package/dist/types/resourceMiddleware.d.ts +47 -0
  138. package/dist/types/runner.d.ts +55 -0
  139. package/dist/types/storeTypes.d.ts +40 -0
  140. package/dist/types/symbols.d.ts +28 -0
  141. package/dist/types/tag.d.ts +46 -0
  142. package/dist/types/task.d.ts +50 -0
  143. package/dist/types/taskMiddleware.d.ts +48 -0
  144. package/dist/types/utilities.d.ts +111 -0
  145. package/dist/universal/index.cjs +1438 -251
  146. package/dist/universal/index.cjs.map +1 -1
  147. package/dist/universal/index.mjs +1433 -252
  148. package/dist/universal/index.mjs.map +1 -1
  149. package/package.json +34 -8
  150. package/dist/index.d.mts +0 -1747
  151. package/dist/index.unused.js +0 -4466
  152. package/dist/index.unused.js.map +0 -1
  153. package/dist/node/index.cjs +0 -4498
  154. package/dist/node/index.cjs.map +0 -1
  155. package/dist/node/index.mjs +0 -4466
  156. package/dist/node/index.mjs.map +0 -1
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Base error class for all BlueLibs Runner errors
3
+ */
4
+ export declare class RuntimeError extends Error {
5
+ constructor(message: string);
6
+ }
7
+ /**
8
+ * Error thrown when attempting to register a component with a duplicate ID
9
+ */
10
+ export declare class DuplicateRegistrationError extends RuntimeError {
11
+ constructor(type: string, id: string);
12
+ }
13
+ /**
14
+ * Error thrown when a dependency is not found in the registry
15
+ */
16
+ export declare class DependencyNotFoundError extends RuntimeError {
17
+ constructor(key: string);
18
+ }
19
+ /**
20
+ * Error thrown when an unknown item type is encountered
21
+ */
22
+ export declare class UnknownItemTypeError extends RuntimeError {
23
+ constructor(item: any);
24
+ }
25
+ /**
26
+ * Error thrown whenever a requested context is not available.
27
+ */
28
+ export declare class ContextError extends Error {
29
+ constructor(message: string);
30
+ }
31
+ /**
32
+ * Error thrown when circular dependencies are detected
33
+ */
34
+ export declare class CircularDependenciesError extends RuntimeError {
35
+ constructor(cycles: string[]);
36
+ }
37
+ /**
38
+ * Error thrown when an event is not found in the registry
39
+ */
40
+ export declare class EventNotFoundError extends RuntimeError {
41
+ constructor(id: string);
42
+ }
43
+ /**
44
+ * Error thrown when a resource is not found in the store
45
+ */
46
+ export declare class ResourceNotFoundError extends RuntimeError {
47
+ constructor(id: string);
48
+ }
49
+ export declare class MiddlewareNotRegisteredError extends RuntimeError {
50
+ constructor(type: "task" | "resource", source: string, middlewareId: string);
51
+ }
52
+ /**
53
+ * Error thrown when a tag is not found in the registry
54
+ */
55
+ export declare class TagNotFoundError extends RuntimeError {
56
+ constructor(id: string);
57
+ }
58
+ /**
59
+ * Error thrown when attempting to modify a locked component
60
+ */
61
+ export declare class LockedError extends RuntimeError {
62
+ constructor(what: string);
63
+ }
64
+ /**
65
+ * Error thrown when attempting to initialize a store that's already initialized
66
+ */
67
+ export declare class StoreAlreadyInitializedError extends RuntimeError {
68
+ constructor();
69
+ }
70
+ /**
71
+ * Error thrown when validation fails for task input, resource config, middleware config, or event payload
72
+ */
73
+ export declare class ValidationError extends RuntimeError {
74
+ constructor(type: string, id: string, originalError: Error | string);
75
+ }
76
+ /**
77
+ * Error thrown when an event emission cycle is detected
78
+ */
79
+ export declare class EventCycleError extends RuntimeError {
80
+ constructor(path: Array<{
81
+ id: string;
82
+ source: string;
83
+ }>);
84
+ }
85
+ /**
86
+ * Error thrown when a compile-time event emission cycle is detected
87
+ */
88
+ export declare class EventEmissionCycleError extends RuntimeError {
89
+ constructor(cycles: string[]);
90
+ }
91
+ /**
92
+ * Error thrown when a platform function is not supported in the current environment.
93
+ */
94
+ export declare class PlatformUnsupportedFunction extends RuntimeError {
95
+ constructor(functionName: string);
96
+ }
97
+ /**
98
+ * CancellationError: used to signal client-initiated aborts (e.g., HTTP request aborted).
99
+ * Handlers can catch and map to 499 Client Closed Request without noisy logs.
100
+ */
101
+ export declare class CancellationError extends RuntimeError {
102
+ constructor(message?: string);
103
+ }
104
+ export declare function isCancellationError(err: unknown): err is CancellationError;
@@ -0,0 +1,8 @@
1
+ import { IEvent } from "../defs";
2
+ export declare const globalEvents: {
3
+ /**
4
+ * Emitted when the system is fully initialized and ready for work.
5
+ */
6
+ readonly ready: IEvent<void>;
7
+ };
8
+ export declare const globalEventsArray: IEvent<any>[];
@@ -0,0 +1,31 @@
1
+ import { Context } from "../context";
2
+ /**
3
+ * Global middlewares
4
+ */
5
+ export declare const globalMiddlewares: {
6
+ requireContext: import("..").ITaskMiddleware<{
7
+ context: Context<any>;
8
+ }, void, void, any>;
9
+ task: {
10
+ requireContext: import("..").ITaskMiddleware<{
11
+ context: Context<any>;
12
+ }, void, void, any>;
13
+ cache: import("..").ITaskMiddleware<any, void, void, {
14
+ cache: import("..").IResource<{
15
+ defaultOptions?: any;
16
+ }, Promise<{
17
+ map: Map<string, import("..").ICacheInstance>;
18
+ cacheFactoryTask: import("..").TaskDependencyWithIntercept<any, Promise<import("..").ICacheInstance>>;
19
+ defaultOptions: any;
20
+ }>, {
21
+ cacheFactoryTask: import("..").ITask<any, Promise<import("..").ICacheInstance>, any, any, import("..").TagType[], import("..").TaskMiddlewareAttachmentType[]>;
22
+ }, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
23
+ }>;
24
+ retry: import("..").ITaskMiddleware<import("./middleware/retry.middleware").RetryMiddlewareConfig, void, void, any>;
25
+ timeout: import("..").ITaskMiddleware<import("./middleware/timeout.middleware").TimeoutMiddlewareConfig, void, void, any>;
26
+ };
27
+ resource: {
28
+ retry: import("..").IResourceMiddleware<import("./middleware/retry.middleware").RetryMiddlewareConfig, void, void, any>;
29
+ timeout: import("..").IResourceMiddleware<import("./middleware/timeout.middleware").TimeoutMiddlewareConfig, void, void, any>;
30
+ };
31
+ };
@@ -0,0 +1,32 @@
1
+ import { EventManager } from "../models/EventManager";
2
+ import { Logger } from "../models/Logger";
3
+ import { Store } from "../models/Store";
4
+ import { TaskRunner } from "../models/TaskRunner";
5
+ import { MiddlewareManager } from "../models/MiddlewareManager";
6
+ import type { Serializer } from "./resources/tunnel/serializer";
7
+ export declare const globalResources: {
8
+ store: import("..").IResource<void, Promise<Store>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
9
+ middlewareManager: import("..").IResource<void, Promise<MiddlewareManager>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
10
+ eventManager: import("..").IResource<void, Promise<EventManager>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
11
+ taskRunner: import("..").IResource<void, Promise<TaskRunner>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
12
+ logger: import("..").IResource<void, Promise<Logger>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
13
+ serializer: import("..").IResource<void, Promise<Serializer>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
14
+ cache: import("..").IResource<{
15
+ defaultOptions?: any;
16
+ }, Promise<{
17
+ map: Map<string, import("..").ICacheInstance>;
18
+ cacheFactoryTask: import("..").TaskDependencyWithIntercept<any, Promise<import("..").ICacheInstance>>;
19
+ defaultOptions: any;
20
+ }>, {
21
+ cacheFactoryTask: import("..").ITask<any, Promise<import("..").ICacheInstance>, any, any, import("..").TagType[], import("..").TaskMiddlewareAttachmentType[]>;
22
+ }, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
23
+ queue: import("..").IResource<void, Promise<{
24
+ map: Map<string, import("..").Queue>;
25
+ run: <T>(id: string, task: (signal: AbortSignal) => Promise<T>) => Promise<T>;
26
+ }>, {}, {
27
+ map: Map<string, import("..").Queue>;
28
+ }, {
29
+ title: string;
30
+ description: string;
31
+ }, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
32
+ };
@@ -0,0 +1,11 @@
1
+ export declare const globalTags: {
2
+ system: import("..").ITag<{
3
+ metadata?: Record<string, any>;
4
+ }, void, void>;
5
+ excludeFromGlobalHooks: import("..").ITag<{
6
+ metadata?: Record<string, any>;
7
+ }, void, void>;
8
+ debug: import("..").ITag<import("./types").DebugFriendlyConfig, void, void>;
9
+ tunnel: import("..").ITag<void, void, import("./resources/tunnel/types").TunnelRunner>;
10
+ tunnelPolicy: import("..").ITag<import("./resources/tunnel/tunnel.policy.tag").TunnelTaskMiddlewarePolicyConfig, void, void>;
11
+ };
@@ -0,0 +1,27 @@
1
+ import { IResource, ITask } from "../../defs";
2
+ export interface ICacheInstance {
3
+ set(key: string, value: any): void;
4
+ get(key: string): any;
5
+ clear(): void;
6
+ }
7
+ export declare const cacheFactoryTask: ITask<any, Promise<ICacheInstance>, any, any, import("../..").TagType[], import("../..").TaskMiddlewareAttachmentType[]>;
8
+ type CacheResourceConfig = {
9
+ defaultOptions?: any;
10
+ };
11
+ export declare const cacheResource: IResource<CacheResourceConfig, Promise<{
12
+ map: Map<string, ICacheInstance>;
13
+ cacheFactoryTask: import("../..").TaskDependencyWithIntercept<any, Promise<ICacheInstance>>;
14
+ defaultOptions: any;
15
+ }>, {
16
+ cacheFactoryTask: ITask<any, Promise<ICacheInstance>, any, any, import("../..").TagType[], import("../..").TaskMiddlewareAttachmentType[]>;
17
+ }, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
18
+ export declare const cacheMiddleware: import("../..").ITaskMiddleware<any, void, void, {
19
+ cache: IResource<CacheResourceConfig, Promise<{
20
+ map: Map<string, ICacheInstance>;
21
+ cacheFactoryTask: import("../..").TaskDependencyWithIntercept<any, Promise<ICacheInstance>>;
22
+ defaultOptions: any;
23
+ }>, {
24
+ cacheFactoryTask: ITask<any, Promise<ICacheInstance>, any, any, import("../..").TagType[], import("../..").TaskMiddlewareAttachmentType[]>;
25
+ }, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
26
+ }>;
27
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Context } from "../../context";
2
+ type RequireContextMiddlewareConfig = {
3
+ context: Context<any>;
4
+ };
5
+ export declare const requireContextTaskMiddleware: import("../..").ITaskMiddleware<RequireContextMiddlewareConfig, void, void, any>;
6
+ export {};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Configuration options for the retry middleware
3
+ */
4
+ export interface RetryMiddlewareConfig {
5
+ /**
6
+ * Maximum number of retry attempts (default: 3)
7
+ */
8
+ retries?: number;
9
+ /**
10
+ * Callback to determine if retry should stop based on error
11
+ * @default () => false (retry all errors)
12
+ */
13
+ stopRetryIf?: (error: Error) => boolean;
14
+ /**
15
+ * Custom delay strategy function
16
+ * @default Exponential backoff starting at 100ms
17
+ */
18
+ delayStrategy?: (attempt: number, error: Error) => number;
19
+ }
20
+ export declare const retryTaskMiddleware: import("../..").ITaskMiddleware<RetryMiddlewareConfig, void, void, any>;
21
+ export declare const retryResourceMiddleware: import("../..").IResourceMiddleware<RetryMiddlewareConfig, void, void, any>;
@@ -0,0 +1,9 @@
1
+ export interface TimeoutMiddlewareConfig {
2
+ /**
3
+ * Maximum time in milliseconds before the wrapped operation is aborted
4
+ * and a timeout error is thrown. Defaults to 5000ms.
5
+ */
6
+ ttl: number;
7
+ }
8
+ export declare const timeoutTaskMiddleware: import("../..").ITaskMiddleware<TimeoutMiddlewareConfig, void, void, any>;
9
+ export declare const timeoutResourceMiddleware: import("../..").IResourceMiddleware<TimeoutMiddlewareConfig, void, void, any>;
@@ -0,0 +1,2 @@
1
+ import type { TunnelRunner } from "../resources/tunnel/types";
2
+ export declare const tunnelResourceMiddleware: import("../..").IResourceMiddleware<void, any, TunnelRunner, any>;
@@ -0,0 +1,7 @@
1
+ import { DebugFriendlyConfig } from "./types";
2
+ export declare const debugResource: import("../../..").IResource<DebugFriendlyConfig, Promise<any>, {}, any, {
3
+ title: string;
4
+ description: string;
5
+ }, import("../../..").ITag<{
6
+ metadata?: Record<string, any>;
7
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,2 @@
1
+ import { DebugFriendlyConfig } from "./types";
2
+ export declare const debugTag: import("../../..").ITag<DebugFriendlyConfig, void, void>;
@@ -0,0 +1,22 @@
1
+ import { DebugFriendlyConfig } from "./types";
2
+ export declare const debugConfig: import("../../..").IResource<DebugFriendlyConfig, Promise<{
3
+ logResourceConfig: boolean;
4
+ logResourceValue: boolean;
5
+ logResourceBeforeRun: boolean;
6
+ logResourceAfterRun: boolean;
7
+ logTaskBeforeRun: boolean;
8
+ logTaskInput: boolean;
9
+ logTaskOutput: boolean;
10
+ logTaskAfterRun: boolean;
11
+ logMiddlewareBeforeRun: boolean;
12
+ logMiddlewareAfterRun: boolean;
13
+ logEventEmissionOnRun: boolean;
14
+ logEventEmissionInput: boolean;
15
+ logHookTriggered: boolean;
16
+ logHookCompleted: boolean;
17
+ }>, {}, any, {
18
+ title: string;
19
+ description: string;
20
+ }, import("../../..").ITag<{
21
+ metadata?: Record<string, any>;
22
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,50 @@
1
+ export declare const tasksTrackerMiddleware: import("../../..").ITaskMiddleware<any, void, void, {
2
+ logger: import("../../..").IResource<void, Promise<import("../../..").Logger>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
3
+ debugConfig: import("../../..").IResource<import("./types").DebugFriendlyConfig, Promise<{
4
+ logResourceConfig: boolean;
5
+ logResourceValue: boolean;
6
+ logResourceBeforeRun: boolean;
7
+ logResourceAfterRun: boolean;
8
+ logTaskBeforeRun: boolean;
9
+ logTaskInput: boolean;
10
+ logTaskOutput: boolean;
11
+ logTaskAfterRun: boolean;
12
+ logMiddlewareBeforeRun: boolean;
13
+ logMiddlewareAfterRun: boolean;
14
+ logEventEmissionOnRun: boolean;
15
+ logEventEmissionInput: boolean;
16
+ logHookTriggered: boolean;
17
+ logHookCompleted: boolean;
18
+ }>, {}, any, {
19
+ title: string;
20
+ description: string;
21
+ }, import("../../..").ITag<{
22
+ metadata?: Record<string, any>;
23
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
24
+ store: import("../../..").IResource<void, Promise<import("../../..").Store>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
25
+ }>;
26
+ export declare const resourcesTrackerMiddleware: import("../../..").IResourceMiddleware<any, void, void, {
27
+ logger: import("../../..").IResource<void, Promise<import("../../..").Logger>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
28
+ debugConfig: import("../../..").IResource<import("./types").DebugFriendlyConfig, Promise<{
29
+ logResourceConfig: boolean;
30
+ logResourceValue: boolean;
31
+ logResourceBeforeRun: boolean;
32
+ logResourceAfterRun: boolean;
33
+ logTaskBeforeRun: boolean;
34
+ logTaskInput: boolean;
35
+ logTaskOutput: boolean;
36
+ logTaskAfterRun: boolean;
37
+ logMiddlewareBeforeRun: boolean;
38
+ logMiddlewareAfterRun: boolean;
39
+ logEventEmissionOnRun: boolean;
40
+ logEventEmissionInput: boolean;
41
+ logHookTriggered: boolean;
42
+ logHookCompleted: boolean;
43
+ }>, {}, any, {
44
+ title: string;
45
+ description: string;
46
+ }, import("../../..").ITag<{
47
+ metadata?: Record<string, any>;
48
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
49
+ store: import("../../..").IResource<void, Promise<import("../../..").Store>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
50
+ }>;
@@ -0,0 +1,27 @@
1
+ export declare const globalEventListener: import("../../..").IHook<{
2
+ logger: import("../../..").IResource<void, Promise<import("../../..").Logger>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
3
+ debugConfig: import("../../..").IResource<import("./types").DebugFriendlyConfig, Promise<{
4
+ logResourceConfig: boolean;
5
+ logResourceValue: boolean;
6
+ logResourceBeforeRun: boolean;
7
+ logResourceAfterRun: boolean;
8
+ logTaskBeforeRun: boolean;
9
+ logTaskInput: boolean;
10
+ logTaskOutput: boolean;
11
+ logTaskAfterRun: boolean;
12
+ logMiddlewareBeforeRun: boolean;
13
+ logMiddlewareAfterRun: boolean;
14
+ logEventEmissionOnRun: boolean;
15
+ logEventEmissionInput: boolean;
16
+ logHookTriggered: boolean;
17
+ logHookCompleted: boolean;
18
+ }>, {}, any, {
19
+ title: string;
20
+ description: string;
21
+ }, import("../../..").ITag<{
22
+ metadata?: Record<string, any>;
23
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
24
+ }, "*", {
25
+ title: string;
26
+ description: string;
27
+ }>;
@@ -0,0 +1,30 @@
1
+ export declare const hookInterceptorResource: import("../../..").IResource<void, Promise<void>, {
2
+ logger: import("../../..").IResource<void, Promise<import("../../..").Logger>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
3
+ debugConfig: import("../../..").IResource<import("./types").DebugFriendlyConfig, Promise<{
4
+ logResourceConfig: boolean;
5
+ logResourceValue: boolean;
6
+ logResourceBeforeRun: boolean;
7
+ logResourceAfterRun: boolean;
8
+ logTaskBeforeRun: boolean;
9
+ logTaskInput: boolean;
10
+ logTaskOutput: boolean;
11
+ logTaskAfterRun: boolean;
12
+ logMiddlewareBeforeRun: boolean;
13
+ logMiddlewareAfterRun: boolean;
14
+ logEventEmissionOnRun: boolean;
15
+ logEventEmissionInput: boolean;
16
+ logHookTriggered: boolean;
17
+ logHookCompleted: boolean;
18
+ }>, {}, any, {
19
+ title: string;
20
+ description: string;
21
+ }, import("../../..").ITag<{
22
+ metadata?: Record<string, any>;
23
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
24
+ eventManager: import("../../..").IResource<void, Promise<import("../../..").EventManager>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
25
+ }, any, {
26
+ title: string;
27
+ description: string;
28
+ }, import("../../..").ITag<{
29
+ metadata?: Record<string, any>;
30
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,6 @@
1
+ export * from "./debug.resource";
2
+ export * from "./debugConfig.resource";
3
+ export * from "./types";
4
+ export * from "./globalEvent.hook";
5
+ export * from "./executionTracker.middleware";
6
+ export * from "./debug.tag";
@@ -0,0 +1,30 @@
1
+ export declare const middlewareInterceptorResource: import("../../..").IResource<void, Promise<void>, {
2
+ logger: import("../../..").IResource<void, Promise<import("../../..").Logger>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
3
+ debugConfig: import("../../..").IResource<import("./types").DebugFriendlyConfig, Promise<{
4
+ logResourceConfig: boolean;
5
+ logResourceValue: boolean;
6
+ logResourceBeforeRun: boolean;
7
+ logResourceAfterRun: boolean;
8
+ logTaskBeforeRun: boolean;
9
+ logTaskInput: boolean;
10
+ logTaskOutput: boolean;
11
+ logTaskAfterRun: boolean;
12
+ logMiddlewareBeforeRun: boolean;
13
+ logMiddlewareAfterRun: boolean;
14
+ logEventEmissionOnRun: boolean;
15
+ logEventEmissionInput: boolean;
16
+ logHookTriggered: boolean;
17
+ logHookCompleted: boolean;
18
+ }>, {}, any, {
19
+ title: string;
20
+ description: string;
21
+ }, import("../../..").ITag<{
22
+ metadata?: Record<string, any>;
23
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
24
+ middlewareManager: import("../../..").IResource<void, Promise<import("../../..").MiddlewareManager>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
25
+ }, any, {
26
+ title: string;
27
+ description: string;
28
+ }, import("../../..").ITag<{
29
+ metadata?: Record<string, any>;
30
+ }, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,25 @@
1
+ import { ITaggable } from "../../../defs";
2
+ export type DebugConfig = {
3
+ logResourceConfig: boolean;
4
+ logResourceValue: boolean;
5
+ logResourceBeforeRun: boolean;
6
+ logResourceAfterRun: boolean;
7
+ logTaskBeforeRun: boolean;
8
+ logTaskInput: boolean;
9
+ logTaskOutput: boolean;
10
+ logTaskAfterRun: boolean;
11
+ logMiddlewareBeforeRun: boolean;
12
+ logMiddlewareAfterRun: boolean;
13
+ logEventEmissionOnRun: boolean;
14
+ logEventEmissionInput: boolean;
15
+ logHookTriggered: boolean;
16
+ logHookCompleted: boolean;
17
+ };
18
+ export declare const allFalse: DebugConfig;
19
+ export declare const levelNormal: DebugConfig;
20
+ export declare const levelVerbose: DebugConfig;
21
+ /**
22
+ * If you choose to specify your own config, all values will be set to false by default and extended by your config.
23
+ */
24
+ export type DebugFriendlyConfig = "normal" | "verbose" | Partial<DebugConfig>;
25
+ export declare const getConfig: (config: DebugFriendlyConfig, taggable?: ITaggable) => DebugConfig;
@@ -0,0 +1,2 @@
1
+ import { ITaggable } from "../../../defs";
2
+ export declare const hasSystemTag: (definition: ITaggable) => boolean;
@@ -0,0 +1,10 @@
1
+ import { Queue } from "../../models/Queue";
2
+ export declare const queueResource: import("../..").IResource<void, Promise<{
3
+ map: Map<string, Queue>;
4
+ run: <T>(id: string, task: (signal: AbortSignal) => Promise<T>) => Promise<T>;
5
+ }>, {}, {
6
+ map: Map<string, Queue>;
7
+ }, {
8
+ title: string;
9
+ description: string;
10
+ }, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1 @@
1
+ export declare const EJSON: import("@bluelibs/ejson").EJSONModule;
@@ -0,0 +1 @@
1
+ export declare function normalizeError(input: unknown): Error;
@@ -0,0 +1,19 @@
1
+ import type { ITaskMiddleware } from "../../../defs";
2
+ export type ValidationSide = "client" | "server" | "both";
3
+ export interface ExecutionPlan {
4
+ clientMiddleware: string[];
5
+ serverMiddleware: string[];
6
+ validation: ValidationSide;
7
+ }
8
+ export interface PlanMeta {
9
+ plan?: ExecutionPlan;
10
+ headers?: Record<string, string>;
11
+ traceId?: string;
12
+ context?: unknown;
13
+ }
14
+ export declare function computeExecutionPlanFromWhitelist(whitelist: {
15
+ client?: Array<string | ITaskMiddleware<any, any, any, any>>;
16
+ server?: Array<string | ITaskMiddleware<any, any, any, any>>;
17
+ }, opts?: {
18
+ defaultValidation?: ValidationSide;
19
+ }): ExecutionPlan;
@@ -0,0 +1,40 @@
1
+ import type { ITask, IEventEmission } from "../../../defs";
2
+ export interface ProtocolErrorShape {
3
+ code: string;
4
+ message: string;
5
+ details?: unknown;
6
+ }
7
+ export interface ProtocolEnvelope<T = unknown> {
8
+ ok: boolean;
9
+ result?: T;
10
+ error?: ProtocolErrorShape;
11
+ meta?: {
12
+ protocolVersion?: string;
13
+ traceId?: string;
14
+ taskVersion?: string;
15
+ };
16
+ }
17
+ export interface TaskRequest {
18
+ id: string;
19
+ input?: unknown;
20
+ plan?: unknown;
21
+ context?: Record<string, unknown>;
22
+ traceId?: string;
23
+ }
24
+ export interface EventRequest {
25
+ id: string;
26
+ payload?: unknown;
27
+ context?: Record<string, unknown>;
28
+ traceId?: string;
29
+ }
30
+ export declare class TunnelError extends Error {
31
+ readonly code: string;
32
+ readonly details?: unknown;
33
+ constructor(code: string, message: string, details?: unknown);
34
+ }
35
+ export declare function toTunnelError(input: unknown, fallbackMessage?: string): TunnelError;
36
+ export declare function assertOkEnvelope<T>(envelope: ProtocolEnvelope<T> | undefined, opts?: {
37
+ fallbackMessage?: string;
38
+ }): T;
39
+ export declare function runViaTunnel(runner: (task: ITask<any, any, any, any, any, any>, input?: unknown) => Promise<unknown>, task: ITask<any, any, any, any, any, any>, input?: unknown): Promise<unknown>;
40
+ export declare function emitViaTunnel(runner: (emission: IEventEmission<any>) => Promise<unknown>, emission: IEventEmission<any>): Promise<void>;
@@ -0,0 +1,9 @@
1
+ import { EJSON } from "@bluelibs/ejson";
2
+ export interface Serializer {
3
+ stringify(value: unknown): string;
4
+ parse<T = unknown>(text: string): T;
5
+ addType<TJson = unknown, T = unknown>(name: string, factory: (json: TJson) => T): void;
6
+ }
7
+ export declare const EjsonSerializer: Serializer;
8
+ export declare function getDefaultSerializer(): Serializer;
9
+ export { EJSON };
@@ -0,0 +1,18 @@
1
+ import type { ITaskMiddleware } from "../../../defs";
2
+ export type TunnelPolicySide = "client" | "server";
3
+ export type TunnelMiddlewareId = string | ITaskMiddleware<any, any, any, any>;
4
+ export interface TunnelTaskMiddlewarePolicyConfig {
5
+ /**
6
+ * Whitelist of middleware ids/definitions allowed to run on the caller side
7
+ * when the task is tunneled (mode: "client"). If omitted, defaults to
8
+ * allowing all (the framework default remains "both").
9
+ */
10
+ client?: TunnelMiddlewareId[];
11
+ /**
12
+ * Whitelist of middleware ids/definitions intended to run on the executor side.
13
+ * Note: The local runner cannot enforce server-side policy; this is a declarative
14
+ * contract that a Runner-based executor can consume to apply a symmetric filter.
15
+ */
16
+ server?: TunnelMiddlewareId[];
17
+ }
18
+ export declare const tunnelPolicyTag: import("../../..").ITag<TunnelTaskMiddlewarePolicyConfig, void, void>;
@@ -0,0 +1,2 @@
1
+ import type { TunnelRunner } from "./types";
2
+ export declare const tunnelTag: import("../../..").ITag<void, void, TunnelRunner>;
@@ -0,0 +1,17 @@
1
+ import type { ITask, IEvent, IEventEmission } from "../../../defs";
2
+ export type TunnelMode = "client" | "server" | "both" | "none";
3
+ export type TunnelTaskSelector = Array<string | ITask<any, any, any, any, any, any>> | ((task: ITask<any, any, any, any, any, any>) => boolean);
4
+ export type TunnelEventSelector = Array<string | IEvent<any>> | ((event: IEvent<any>) => boolean);
5
+ export type EventDeliveryMode = "mirror" | "remote-only" | "local-only" | "remote-first";
6
+ export interface TunnelTagConfig {
7
+ }
8
+ export type TunnelTaskRunner = (task: ITask<any, any, any, any, any, any>, input?: any) => Promise<any>;
9
+ export interface TunnelRunner {
10
+ transport?: "http" | string;
11
+ mode?: TunnelMode;
12
+ tasks?: TunnelTaskSelector;
13
+ events?: TunnelEventSelector;
14
+ eventDeliveryMode?: EventDeliveryMode;
15
+ run?: TunnelTaskRunner;
16
+ emit?: (event: IEventEmission<any>) => Promise<any>;
17
+ }
@@ -0,0 +1,23 @@
1
+ import type { Serializer } from "../resources/tunnel/serializer";
2
+ import type { ExposureFetchClient } from "../../http-fetch-tunnel.resource";
3
+ export interface HttpClientAuthConfig {
4
+ header?: string;
5
+ token: string;
6
+ }
7
+ export interface HttpCreateClientConfig {
8
+ url: string;
9
+ auth?: HttpClientAuthConfig;
10
+ timeoutMs?: number;
11
+ fetchImpl?: typeof fetch;
12
+ serializer: Serializer;
13
+ onRequest?: (ctx: {
14
+ url: string;
15
+ headers: Record<string, string>;
16
+ }) => void | Promise<void>;
17
+ }
18
+ export declare const tunnels: Readonly<{
19
+ http: Readonly<{
20
+ createClient(cfg: HttpCreateClientConfig): ExposureFetchClient;
21
+ }>;
22
+ }>;
23
+ export type { ExposureFetchClient };
@@ -0,0 +1 @@
1
+ export * from "./resources/debug/types";