@bluelibs/runner 4.7.0 → 4.8.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 (49) hide show
  1. package/AI.md +88 -95
  2. package/README.md +205 -144
  3. package/dist/browser/index.cjs +739 -487
  4. package/dist/browser/index.cjs.map +1 -1
  5. package/dist/browser/index.mjs +736 -487
  6. package/dist/browser/index.mjs.map +1 -1
  7. package/dist/define.d.ts +1 -1
  8. package/dist/definers/builders/asyncContext.d.ts +11 -0
  9. package/dist/definers/builders/error.d.ts +13 -0
  10. package/dist/definers/builders/middleware.d.ts +3 -3
  11. package/dist/definers/defineAsyncContext.d.ts +15 -0
  12. package/dist/definers/defineError.d.ts +26 -0
  13. package/dist/definers/tools.d.ts +6 -0
  14. package/dist/edge/index.cjs +739 -487
  15. package/dist/edge/index.cjs.map +1 -1
  16. package/dist/edge/index.mjs +736 -487
  17. package/dist/edge/index.mjs.map +1 -1
  18. package/dist/errors.d.ts +60 -102
  19. package/dist/globals/debug.d.ts +10 -0
  20. package/dist/globals/globalMiddleware.d.ts +3 -3
  21. package/dist/globals/middleware/requireContext.middleware.d.ts +2 -2
  22. package/dist/globals/resources/tunnel/protocol.d.ts +8 -1
  23. package/dist/globals/resources/tunnel/serializer.d.ts +1 -1
  24. package/dist/globals/types.d.ts +1 -0
  25. package/dist/http-client.d.ts +4 -0
  26. package/dist/http-fetch-tunnel.resource.d.ts +11 -0
  27. package/dist/index.d.ts +14 -5
  28. package/dist/models/Store.d.ts +6 -2
  29. package/dist/models/StoreRegistry.d.ts +6 -0
  30. package/dist/node/exposure/httpResponse.d.ts +1 -1
  31. package/dist/node/exposure/requestContext.d.ts +1 -1
  32. package/dist/node/{mixed-http-client.node.d.ts → http-mixed-client.d.ts} +1 -1
  33. package/dist/node/http-smart-client.model.d.ts +2 -0
  34. package/dist/node/node.cjs +918 -4296
  35. package/dist/node/node.cjs.map +1 -1
  36. package/dist/node/node.mjs +914 -4296
  37. package/dist/node/node.mjs.map +1 -1
  38. package/dist/types/asyncContext.d.ts +39 -0
  39. package/dist/types/error.d.ts +34 -0
  40. package/dist/types/runner.d.ts +13 -0
  41. package/dist/types/symbols.d.ts +6 -0
  42. package/dist/types/utilities.d.ts +6 -4
  43. package/dist/universal/index.cjs +739 -487
  44. package/dist/universal/index.cjs.map +1 -1
  45. package/dist/universal/index.mjs +736 -487
  46. package/dist/universal/index.mjs.map +1 -1
  47. package/dist/utils/detectRunnerMode.d.ts +9 -0
  48. package/package.json +1 -1
  49. package/dist/context.d.ts +0 -31
package/dist/define.d.ts CHANGED
@@ -6,4 +6,4 @@ export { defineTaskMiddleware } from "./definers/defineTaskMiddleware";
6
6
  export { defineResourceMiddleware } from "./definers/defineResourceMiddleware";
7
7
  export { defineOverride } from "./definers/defineOverride";
8
8
  export { defineTag } from "./definers/defineTag";
9
- export { isTask, isPhantomTask, isResource, isResourceWithConfig, isEvent, isHook, isTaskMiddleware, isResourceMiddleware, isTag, isOptional, } from "./definers/tools";
9
+ export { isTask, isPhantomTask, isResource, isResourceWithConfig, isEvent, isHook, isTaskMiddleware, isResourceMiddleware, isTag, isOptional, isError, isAsyncContext, } from "./definers/tools";
@@ -0,0 +1,11 @@
1
+ import type { IAsyncContext } from "../../types/asyncContext";
2
+ import type { IValidationSchema } from "../../types/utilities";
3
+ export interface AsyncContextFluentBuilder<T = unknown> {
4
+ id: string;
5
+ serialize(fn: (data: T) => string): AsyncContextFluentBuilder<T>;
6
+ parse(fn: (raw: string) => T): AsyncContextFluentBuilder<T>;
7
+ configSchema(schema: IValidationSchema<T>): AsyncContextFluentBuilder<T>;
8
+ build(): IAsyncContext<T>;
9
+ }
10
+ export declare function asyncContextBuilder<T = unknown>(id: string): AsyncContextFluentBuilder<T>;
11
+ export declare const asyncContext: typeof asyncContextBuilder;
@@ -0,0 +1,13 @@
1
+ import type { DefaultErrorType } from "../../types/error";
2
+ import { ErrorHelper } from "../defineError";
3
+ import type { IValidationSchema } from "../../types/utilities";
4
+ export interface ErrorFluentBuilder<TData extends DefaultErrorType = DefaultErrorType> {
5
+ id: string;
6
+ serialize(fn: (data: TData) => string): ErrorFluentBuilder<TData>;
7
+ parse(fn: (raw: string) => TData): ErrorFluentBuilder<TData>;
8
+ dataSchema(schema: IValidationSchema<TData>): ErrorFluentBuilder<TData>;
9
+ build(): ErrorHelper<TData>;
10
+ format(fn: (data: TData) => string): ErrorFluentBuilder<TData>;
11
+ }
12
+ export declare function errorBuilder<TData extends DefaultErrorType = DefaultErrorType>(id: string): ErrorFluentBuilder<TData>;
13
+ export declare const error: typeof errorBuilder;
@@ -1,4 +1,4 @@
1
- import type { DependencyMapType, ITaskMiddleware, ITaskMiddlewareDefinition, IResourceMiddleware, IResourceMiddlewareDefinition, IValidationSchema, IMiddlewareMeta, TagType } from "../../defs";
1
+ import type { DependencyMapType, ITaskMiddleware, ITaskMiddlewareDefinition, IResourceMiddleware, IResourceMiddlewareDefinition, IValidationSchema, IMiddlewareMeta, TagType, ITask, IResource } from "../../defs";
2
2
  export interface TaskMiddlewareFluentBuilder<C = any, In = void, Out = void, D extends DependencyMapType = {}> {
3
3
  id: string;
4
4
  dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options?: {
@@ -13,7 +13,7 @@ export interface TaskMiddlewareFluentBuilder<C = any, In = void, Out = void, D e
13
13
  tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
14
14
  override?: boolean;
15
15
  }): TaskMiddlewareFluentBuilder<C, In, Out, D>;
16
- everywhere(flag: boolean | ((task: any) => boolean)): TaskMiddlewareFluentBuilder<C, In, Out, D>;
16
+ everywhere(flag: boolean | ((task: ITask<any, any, any, any>) => boolean)): TaskMiddlewareFluentBuilder<C, In, Out, D>;
17
17
  build(): ITaskMiddleware<C, In, Out, D>;
18
18
  }
19
19
  export declare function taskMiddlewareBuilder(id: string): TaskMiddlewareFluentBuilder<any, void, void, {}>;
@@ -31,7 +31,7 @@ export interface ResourceMiddlewareFluentBuilder<C = any, In = void, Out = void,
31
31
  tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
32
32
  override?: boolean;
33
33
  }): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
34
- everywhere(flag: boolean | ((resource: any) => boolean)): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
34
+ everywhere(flag: boolean | ((resource: IResource<any, any, any, any, any>) => boolean)): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
35
35
  build(): IResourceMiddleware<C, In, Out, D>;
36
36
  }
37
37
  export declare function resourceMiddlewareBuilder(id: string): ResourceMiddlewareFluentBuilder<any, void, void, {}>;
@@ -0,0 +1,15 @@
1
+ import { contextError } from "../errors";
2
+ import { IAsyncContext, IAsyncContextDefinition } from "../types/asyncContext";
3
+ export { contextError as ContextError };
4
+ export declare const storage: import("../platform").IAsyncLocalStorage<Map<string, unknown>>;
5
+ /** Returns the currently active store or undefined. */
6
+ export declare function getCurrentStore(): Map<string, unknown> | undefined;
7
+ /**
8
+ * Create a new typed Context. The result contains helpers similar to React’s
9
+ * Context API but adapted for async usage in Runner.
10
+ */
11
+ export declare function defineAsyncContext<T>(def: IAsyncContextDefinition<T>): IAsyncContext<T>;
12
+ export type { IAsyncContext } from "../types/asyncContext";
13
+ /** Convenience creator allowing optional name. Used by tests and legacy API. */
14
+ /** @deprecated Use defineAsyncContext instead */
15
+ export declare function createContext<T>(name?: string): IAsyncContext<T>;
@@ -0,0 +1,26 @@
1
+ import { DefaultErrorType, IErrorDefinition, IErrorHelper, IErrorDefinitionFinal } from "../types/error";
2
+ import { symbolError, symbolOptionalDependency } from "../types/symbols";
3
+ declare class RunnerError<TData extends DefaultErrorType = DefaultErrorType> extends Error {
4
+ readonly id: string;
5
+ readonly data: TData;
6
+ constructor(id: string, message: string, data: TData);
7
+ }
8
+ export declare class ErrorHelper<TData extends DefaultErrorType = DefaultErrorType> implements IErrorHelper<TData> {
9
+ private readonly definition;
10
+ [symbolError]: true;
11
+ constructor(definition: IErrorDefinitionFinal<TData>);
12
+ get id(): string;
13
+ throw(data: TData): never;
14
+ is(error: unknown): error is RunnerError<TData>;
15
+ optional(): {
16
+ readonly inner: IErrorHelper<TData>;
17
+ readonly [symbolOptionalDependency]: true;
18
+ };
19
+ }
20
+ /**
21
+ * Create a new error that is going to be used
22
+ * @param definition
23
+ * @returns
24
+ */
25
+ export declare function defineError<TData extends DefaultErrorType = DefaultErrorType>(definition: IErrorDefinition<TData>): ErrorHelper<TData>;
26
+ export {};
@@ -2,6 +2,8 @@
2
2
  * Type guard and utility functions for checking definition types.
3
3
  */
4
4
  import { ITask, IResource, IResourceWithConfig, ITaskMiddleware, IResourceMiddleware, IEvent, IHook, IOptionalDependency, ITag, IPhantomTask } from "../defs";
5
+ import { IErrorHelper } from "../types/error";
6
+ import type { IAsyncContext } from "../types/asyncContext";
5
7
  /**
6
8
  * Type guard: checks if a definition is a Task.
7
9
  * @param definition - Any value to test.
@@ -45,3 +47,7 @@ export declare function isResourceMiddleware(definition: any): definition is IRe
45
47
  export declare function isTag(definition: any): definition is ITag;
46
48
  /** Type guard: checks if a definition is an Optional Dependency wrapper. */
47
49
  export declare function isOptional(definition: any): definition is IOptionalDependency<any>;
50
+ /** Type guard: checks if a definition is an Error helper. */
51
+ export declare function isError(definition: any): definition is IErrorHelper<any>;
52
+ /** Type guard: checks if a definition is an Async Context. */
53
+ export declare function isAsyncContext(definition: any): definition is IAsyncContext<any>;