@bluelibs/runner 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.cjs +452 -249
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +452 -249
- package/dist/browser/index.mjs.map +1 -1
- package/dist/edge/index.cjs +452 -249
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +452 -249
- package/dist/edge/index.mjs.map +1 -1
- package/dist/node/node.cjs +4047 -3842
- package/dist/node/node.cjs.map +1 -1
- package/dist/node/node.mjs +4047 -3842
- package/dist/node/node.mjs.map +1 -1
- package/dist/types/definers/assertDefinitionId.d.ts +1 -0
- package/dist/types/definers/builders/resource/index.d.ts +1 -3
- package/dist/types/definers/builders/resource/types.d.ts +0 -1
- package/dist/types/errors/domain-error-ids.d.ts +0 -2
- package/dist/types/errors/domain-runtime.errors.d.ts +0 -6
- package/dist/types/globals/globalResources.d.ts +4 -4
- package/dist/types/globals/middleware/keyBuilder.shared.d.ts +2 -0
- package/dist/types/globals/middleware/rateLimit.middleware.d.ts +8 -2
- package/dist/types/globals/middleware/temporal.middleware.d.ts +7 -26
- package/dist/types/globals/middleware/temporal.shared.d.ts +28 -0
- package/dist/types/models/Store.d.ts +1 -1
- package/dist/types/models/StoreRegistry.d.ts +3 -0
- package/dist/types/models/createFrameworkRootGateway.d.ts +3 -1
- package/dist/types/models/store-registry/CanonicalIdCompiler.d.ts +8 -0
- package/dist/types/models/store-registry/OwnerScope.d.ts +5 -0
- package/dist/types/models/store-registry/StoreRegistryWriter.d.ts +6 -3
- package/dist/types/models/store-registry/registerableKind.d.ts +19 -0
- package/dist/types/node/node.d.ts +2 -2
- package/dist/types/node/rpc-lanes/rpcLanes.resource.d.ts +1 -0
- package/dist/types/public.d.ts +10 -189
- package/dist/types/types/resource.d.ts +0 -9
- package/dist/types/types/subtree.d.ts +4 -2
- package/dist/universal/index.cjs +452 -249
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +452 -249
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +1 -1
- package/readmes/AI.md +21 -18
|
@@ -2,4 +2,5 @@ export declare const RESERVED_DEFINITION_LOCAL_NAMES: readonly ["tasks", "events
|
|
|
2
2
|
export declare function isReservedDefinitionLocalName(name: string): boolean;
|
|
3
3
|
export declare function assertDefinitionId(definitionType: string, id: unknown, options?: {
|
|
4
4
|
allowReservedDottedNamespace?: boolean;
|
|
5
|
+
allowReservedInternalId?: boolean;
|
|
5
6
|
}): asserts id is string;
|
|
@@ -5,9 +5,7 @@ export * from "./types";
|
|
|
5
5
|
/**
|
|
6
6
|
* Creates a new resource builder with the given id.
|
|
7
7
|
*/
|
|
8
|
-
export type ResourceBuilderOptions = {
|
|
9
|
-
gateway?: boolean;
|
|
10
|
-
};
|
|
8
|
+
export type ResourceBuilderOptions = {};
|
|
11
9
|
export declare function resourceBuilder<TConfig = void>(id: string, options?: ResourceBuilderOptions): ResourceFluentBuilder<TConfig, Promise<any>, {}, any, IResourceMeta, ResourceTagType[], ResourceMiddlewareAttachmentType[]>;
|
|
12
10
|
/**
|
|
13
11
|
* Alias for resourceBuilder - common shorthand.
|
|
@@ -5,7 +5,6 @@ import type { ThrowsList } from "../../../types/error";
|
|
|
5
5
|
*/
|
|
6
6
|
export type BuilderState<TConfig, TValue extends Promise<any>, TDeps extends DependencyMapType, TContext, TMeta extends IResourceMeta, TTags extends ResourceTagType[], TMiddleware extends ResourceMiddlewareAttachmentType[]> = Readonly<{
|
|
7
7
|
id: string;
|
|
8
|
-
gateway: boolean;
|
|
9
8
|
filePath: string;
|
|
10
9
|
dependencies?: TDeps | ((config: TConfig) => TDeps);
|
|
11
10
|
register?: Array<RegisterableItems> | ((config: TConfig) => Array<RegisterableItems>);
|
|
@@ -18,8 +18,6 @@ export declare enum RunnerErrorId {
|
|
|
18
18
|
RpcLaneOwnershipConflict = "runner.errors.rpcLane.ownershipConflict",
|
|
19
19
|
RpcLaneExposureOwnerInvalid = "runner.errors.rpcLane.exposureOwnerInvalid",
|
|
20
20
|
ResourceForkNonLeafUnsupported = "runner.errors.resourceFork.nonLeafUnsupported",
|
|
21
|
-
ResourceForkGatewayUnsupported = "runner.errors.resourceFork.gatewayUnsupported",
|
|
22
|
-
RunRootGatewayUnsupported = "runner.errors.run.rootGatewayUnsupported",
|
|
23
21
|
BuilderInvalidHttpCode = "runner.errors.builder.invalidHttpCode",
|
|
24
22
|
OverrideUnsupportedBase = "runner.errors.override.unsupportedBase",
|
|
25
23
|
OverrideDefinitionRequired = "runner.errors.overrideDefinitionRequired",
|
|
@@ -103,12 +103,6 @@ export declare const remoteLaneAuthUnauthorizedError: import("..").IErrorHelper<
|
|
|
103
103
|
export declare const resourceForkNonLeafUnsupportedError: import("..").IErrorHelper<{
|
|
104
104
|
id: string;
|
|
105
105
|
} & DefaultErrorType>;
|
|
106
|
-
export declare const resourceForkGatewayUnsupportedError: import("..").IErrorHelper<{
|
|
107
|
-
id: string;
|
|
108
|
-
} & DefaultErrorType>;
|
|
109
|
-
export declare const runRootGatewayUnsupportedError: import("..").IErrorHelper<{
|
|
110
|
-
id: string;
|
|
111
|
-
} & DefaultErrorType>;
|
|
112
106
|
export declare const builderInvalidHttpCodeError: import("..").IErrorHelper<{
|
|
113
107
|
value: number;
|
|
114
108
|
} & DefaultErrorType>;
|
|
@@ -59,7 +59,7 @@ export declare const runnerResources: {
|
|
|
59
59
|
description: string;
|
|
60
60
|
}, import("..").ResourceTagType[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
61
61
|
readonly rateLimit: import("..").IResource<void, Promise<{
|
|
62
|
-
states: WeakMap<import("./types").RateLimitMiddlewareConfig, import("./types").RateLimitState
|
|
62
|
+
states: WeakMap<import("./types").RateLimitMiddlewareConfig, Map<string, import("./types").RateLimitState>>;
|
|
63
63
|
}>, {}, any, any, import("..").ITag<{
|
|
64
64
|
metadata?: Record<string, any>;
|
|
65
65
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -68,7 +68,7 @@ export declare const runnerResources: {
|
|
|
68
68
|
}>, {}, any, any, import("..").ITag<{
|
|
69
69
|
metadata?: Record<string, any>;
|
|
70
70
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
71
|
-
readonly temporal: import("..").IResource<void, Promise<import("./middleware/temporal.
|
|
71
|
+
readonly temporal: import("..").IResource<void, Promise<import("./middleware/temporal.shared").TemporalResourceState<import("./types").TemporalMiddlewareConfig>>, {}, any, any, import("..").ITag<{
|
|
72
72
|
metadata?: Record<string, any>;
|
|
73
73
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
74
74
|
readonly concurrency: import("..").IResource<void, Promise<{
|
|
@@ -128,7 +128,7 @@ export declare const globalResources: {
|
|
|
128
128
|
description: string;
|
|
129
129
|
}, import("..").ResourceTagType[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
130
130
|
readonly rateLimit: import("..").IResource<void, Promise<{
|
|
131
|
-
states: WeakMap<import("./types").RateLimitMiddlewareConfig, import("./types").RateLimitState
|
|
131
|
+
states: WeakMap<import("./types").RateLimitMiddlewareConfig, Map<string, import("./types").RateLimitState>>;
|
|
132
132
|
}>, {}, any, any, import("..").ITag<{
|
|
133
133
|
metadata?: Record<string, any>;
|
|
134
134
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -137,7 +137,7 @@ export declare const globalResources: {
|
|
|
137
137
|
}>, {}, any, any, import("..").ITag<{
|
|
138
138
|
metadata?: Record<string, any>;
|
|
139
139
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
140
|
-
readonly temporal: import("..").IResource<void, Promise<import("./middleware/temporal.
|
|
140
|
+
readonly temporal: import("..").IResource<void, Promise<import("./middleware/temporal.shared").TemporalResourceState<import("./types").TemporalMiddlewareConfig>>, {}, any, any, import("..").ITag<{
|
|
141
141
|
metadata?: Record<string, any>;
|
|
142
142
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
143
143
|
readonly concurrency: import("..").IResource<void, Promise<{
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RunnerError } from "../../definers/defineError";
|
|
2
|
+
import { type MiddlewareKeyBuilder } from "./keyBuilder.shared";
|
|
2
3
|
export interface RateLimitMiddlewareConfig {
|
|
3
4
|
/**
|
|
4
5
|
* Time window in milliseconds
|
|
@@ -8,6 +9,11 @@ export interface RateLimitMiddlewareConfig {
|
|
|
8
9
|
* Maximum number of requests within the window
|
|
9
10
|
*/
|
|
10
11
|
max: number;
|
|
12
|
+
/**
|
|
13
|
+
* Builds the partition key used to isolate fixed-window counters.
|
|
14
|
+
* Defaults to the task id.
|
|
15
|
+
*/
|
|
16
|
+
keyBuilder?: MiddlewareKeyBuilder;
|
|
11
17
|
}
|
|
12
18
|
/**
|
|
13
19
|
* Custom error class for rate limit errors.
|
|
@@ -34,7 +40,7 @@ export declare const journalKeys: {
|
|
|
34
40
|
readonly limit: import("../..").JournalKey<number>;
|
|
35
41
|
};
|
|
36
42
|
export declare const rateLimitResource: import("../..").IResource<void, Promise<{
|
|
37
|
-
states: WeakMap<RateLimitMiddlewareConfig, RateLimitState
|
|
43
|
+
states: WeakMap<RateLimitMiddlewareConfig, Map<string, RateLimitState>>;
|
|
38
44
|
}>, {}, any, any, import("../..").ITag<{
|
|
39
45
|
metadata?: Record<string, any>;
|
|
40
46
|
}, void, void, void>[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -43,7 +49,7 @@ export declare const rateLimitResource: import("../..").IResource<void, Promise<
|
|
|
43
49
|
*/
|
|
44
50
|
export declare const rateLimitTaskMiddleware: import("../..").ITaskMiddleware<RateLimitMiddlewareConfig, any, any, {
|
|
45
51
|
state: import("../..").IResource<void, Promise<{
|
|
46
|
-
states: WeakMap<RateLimitMiddlewareConfig, RateLimitState
|
|
52
|
+
states: WeakMap<RateLimitMiddlewareConfig, Map<string, RateLimitState>>;
|
|
47
53
|
}>, {}, any, any, import("../..").ITag<{
|
|
48
54
|
metadata?: Record<string, any>;
|
|
49
55
|
}, void, void, void>[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -1,38 +1,20 @@
|
|
|
1
|
+
import { type MiddlewareKeyBuilder } from "./keyBuilder.shared";
|
|
2
|
+
import { type TemporalResourceState } from "./temporal.shared";
|
|
1
3
|
export interface TemporalMiddlewareConfig {
|
|
2
4
|
ms: number;
|
|
5
|
+
keyBuilder?: MiddlewareKeyBuilder;
|
|
3
6
|
}
|
|
4
|
-
|
|
5
|
-
export interface DebounceState {
|
|
6
|
-
timeoutId?: TimeoutHandle;
|
|
7
|
-
latestInput?: unknown;
|
|
8
|
-
resolveList: ((value: unknown) => void)[];
|
|
9
|
-
rejectList: ((error: unknown) => void)[];
|
|
10
|
-
}
|
|
11
|
-
export interface ThrottleState {
|
|
12
|
-
lastExecution: number;
|
|
13
|
-
timeoutId?: TimeoutHandle;
|
|
14
|
-
latestInput?: unknown;
|
|
15
|
-
resolveList: ((value: unknown) => void)[];
|
|
16
|
-
rejectList: ((error: unknown) => void)[];
|
|
17
|
-
currentPromise?: Promise<unknown>;
|
|
18
|
-
}
|
|
19
|
-
export interface TemporalResourceState {
|
|
20
|
-
debounceStates: WeakMap<TemporalMiddlewareConfig, DebounceState>;
|
|
21
|
-
throttleStates: WeakMap<TemporalMiddlewareConfig, ThrottleState>;
|
|
22
|
-
trackedDebounceStates: Set<DebounceState>;
|
|
23
|
-
trackedThrottleStates: Set<ThrottleState>;
|
|
24
|
-
isDisposed: boolean;
|
|
25
|
-
}
|
|
26
|
-
export declare const temporalResource: import("../..").IResource<void, Promise<TemporalResourceState>, {}, any, any, import("../..").ITag<{
|
|
7
|
+
export declare const temporalResource: import("../..").IResource<void, Promise<TemporalResourceState<TemporalMiddlewareConfig>>, {}, any, any, import("../..").ITag<{
|
|
27
8
|
metadata?: Record<string, any>;
|
|
28
9
|
}, void, void, void>[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
10
|
+
export type { DebounceState, ThrottleState, TemporalResourceState, } from "./temporal.shared";
|
|
29
11
|
/**
|
|
30
12
|
* Debounce middleware: delays execution until `ms` has passed since the last call.
|
|
31
13
|
* If multiple calls occur within the window, only the last one is executed,
|
|
32
14
|
* and all callers receive the same result.
|
|
33
15
|
*/
|
|
34
16
|
export declare const debounceTaskMiddleware: import("../..").ITaskMiddleware<TemporalMiddlewareConfig, any, any, {
|
|
35
|
-
state: import("../..").IResource<void, Promise<TemporalResourceState
|
|
17
|
+
state: import("../..").IResource<void, Promise<TemporalResourceState<TemporalMiddlewareConfig>>, {}, any, any, import("../..").ITag<{
|
|
36
18
|
metadata?: Record<string, any>;
|
|
37
19
|
}, void, void, void>[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
38
20
|
}>;
|
|
@@ -41,8 +23,7 @@ export declare const debounceTaskMiddleware: import("../..").ITaskMiddleware<Tem
|
|
|
41
23
|
* If calls occur within the window, the last one is scheduled for the end of the window.
|
|
42
24
|
*/
|
|
43
25
|
export declare const throttleTaskMiddleware: import("../..").ITaskMiddleware<TemporalMiddlewareConfig, any, any, {
|
|
44
|
-
state: import("../..").IResource<void, Promise<TemporalResourceState
|
|
26
|
+
state: import("../..").IResource<void, Promise<TemporalResourceState<TemporalMiddlewareConfig>>, {}, any, any, import("../..").ITag<{
|
|
45
27
|
metadata?: Record<string, any>;
|
|
46
28
|
}, void, void, void>[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
47
29
|
}>;
|
|
48
|
-
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type TimeoutHandle = ReturnType<typeof setTimeout>;
|
|
2
|
+
export interface DebounceState {
|
|
3
|
+
timeoutId?: TimeoutHandle;
|
|
4
|
+
latestInput?: unknown;
|
|
5
|
+
resolveList: ((value: unknown) => void)[];
|
|
6
|
+
rejectList: ((error: unknown) => void)[];
|
|
7
|
+
key: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ThrottleState {
|
|
10
|
+
lastExecution: number;
|
|
11
|
+
timeoutId?: TimeoutHandle;
|
|
12
|
+
latestInput?: unknown;
|
|
13
|
+
resolveList: ((value: unknown) => void)[];
|
|
14
|
+
rejectList: ((error: unknown) => void)[];
|
|
15
|
+
currentPromise?: Promise<unknown>;
|
|
16
|
+
key: string;
|
|
17
|
+
}
|
|
18
|
+
export interface TemporalResourceState<TConfig extends object = object> {
|
|
19
|
+
debounceStates: WeakMap<TConfig, Map<string, DebounceState>>;
|
|
20
|
+
throttleStates: WeakMap<TConfig, Map<string, ThrottleState>>;
|
|
21
|
+
trackedDebounceStates: Set<DebounceState>;
|
|
22
|
+
trackedThrottleStates: Set<ThrottleState>;
|
|
23
|
+
isDisposed: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function rejectDebounceState(state: DebounceState, error: Error): void;
|
|
26
|
+
export declare function rejectThrottleState(state: ThrottleState, error: Error): void;
|
|
27
|
+
export declare function pruneIdleThrottleStates(keyedStates: Map<string, ThrottleState>, trackedStates: Set<ThrottleState>, now: number, windowMs: number): void;
|
|
28
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IResource,
|
|
1
|
+
import { IResource, ITag, RegisterableItems, TagDependencyAccessor } from "../defs";
|
|
2
2
|
import { EventManager } from "./EventManager";
|
|
3
3
|
import { Logger } from "./Logger";
|
|
4
4
|
import { ResourceStoreElementType, TaskStoreElementType, EventStoreElementType, DisposeWave, InitWave } from "../types/storeTypes";
|
|
@@ -22,6 +22,7 @@ export declare class StoreRegistry {
|
|
|
22
22
|
private readonly definitionIdentityAliases;
|
|
23
23
|
private readonly definitionAliasesBySourceId;
|
|
24
24
|
private readonly sourceIdsByCanonicalId;
|
|
25
|
+
private readonly displayIdsByCanonicalId;
|
|
25
26
|
readonly tagIndex: Map<string, TagIndexBucket>;
|
|
26
27
|
private readonly validator;
|
|
27
28
|
private readonly tagIndexer;
|
|
@@ -35,6 +36,8 @@ export declare class StoreRegistry {
|
|
|
35
36
|
private recordCanonicalSourceId;
|
|
36
37
|
private resolveUniqueSourceIdAlias;
|
|
37
38
|
getDisplayId(id: string): string;
|
|
39
|
+
private stripFrameworkRootPrefix;
|
|
40
|
+
private computeAndStoreDisplayId;
|
|
38
41
|
/** Lock every map in the registry, preventing further mutations. */
|
|
39
42
|
lockAll(): void;
|
|
40
43
|
storeGenericItem<_C>(item: RegisterableItems): void;
|
|
@@ -2,9 +2,11 @@ import type { IResource, IResourceWithConfig } from "../defs";
|
|
|
2
2
|
import type { DebugFriendlyConfig } from "../globals/resources/debug";
|
|
3
3
|
export declare const FRAMEWORK_RUNNER_RESOURCE_ID = "runner";
|
|
4
4
|
export declare const FRAMEWORK_SYSTEM_RESOURCE_ID = "system";
|
|
5
|
+
export declare const FRAMEWORK_ROOT_RESOURCE_ID = "runtime-framework-root";
|
|
5
6
|
type FrameworkRootInput = {
|
|
6
7
|
rootItem: IResource<any, any, any, any, any> | IResourceWithConfig<any, any>;
|
|
7
8
|
debug: DebugFriendlyConfig | undefined;
|
|
8
9
|
};
|
|
9
|
-
export declare function
|
|
10
|
+
export declare function createFrameworkRootResource({ rootItem, debug, }: FrameworkRootInput): IResource<void, Promise<void>>;
|
|
11
|
+
export declare const createFrameworkRootGateway: typeof createFrameworkRootResource;
|
|
10
12
|
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RegisterableKind } from "./registerableKind";
|
|
2
|
+
import type { OwnerScope } from "./OwnerScope";
|
|
3
|
+
export declare class CanonicalIdCompiler {
|
|
4
|
+
compute(ownerScope: OwnerScope, kind: Exclude<RegisterableKind, RegisterableKind.ResourceWithConfig>, currentId: string): string;
|
|
5
|
+
private computeFrameworkRootId;
|
|
6
|
+
private computeOwnedId;
|
|
7
|
+
private assertLocalName;
|
|
8
|
+
}
|
|
@@ -3,6 +3,7 @@ import { IAsyncContext } from "../../types/asyncContext";
|
|
|
3
3
|
import { IErrorHelper } from "../../types/error";
|
|
4
4
|
import { VisibilityTracker } from "../VisibilityTracker";
|
|
5
5
|
import { StoreRegistryDefinitionPreparer } from "./StoreRegistryDefinitionPreparer";
|
|
6
|
+
import { RegisterableKind } from "./registerableKind";
|
|
6
7
|
import { StoreRegistryTagIndex } from "./StoreRegistryTagIndex";
|
|
7
8
|
import { StoringMode } from "./types";
|
|
8
9
|
type StoreRegistryCollections = {
|
|
@@ -31,6 +32,7 @@ export declare class StoreRegistryWriter {
|
|
|
31
32
|
private readonly tagIndex;
|
|
32
33
|
private readonly definitionPreparer;
|
|
33
34
|
private readonly aliasResolver;
|
|
35
|
+
private readonly canonicalIdCompiler;
|
|
34
36
|
constructor(collections: StoreRegistryCollections, validator: StoreRegistryValidation, visibilityTracker: VisibilityTracker, tagIndex: StoreRegistryTagIndex, definitionPreparer: StoreRegistryDefinitionPreparer, aliasResolver: StoreRegistryAliasResolver);
|
|
35
37
|
storeGenericItem<_C>(item: RegisterableItems): void;
|
|
36
38
|
storeError<_C>(item: IErrorHelper<any>): void;
|
|
@@ -44,11 +46,11 @@ export declare class StoreRegistryWriter {
|
|
|
44
46
|
computeRegistrationDeeply<_C>(element: IResource<_C>, config?: _C): void;
|
|
45
47
|
private assignNormalizedRegisterEntries;
|
|
46
48
|
private compileOwnedItem;
|
|
47
|
-
private
|
|
49
|
+
private compileOwnedDefinitionWithScope;
|
|
50
|
+
computeCanonicalId(ownerResourceId: string, ownerUsesFrameworkRootIds: boolean, kind: Exclude<RegisterableKind, RegisterableKind.ResourceWithConfig>, currentId: string): string;
|
|
51
|
+
compileOwnedDefinition(ownerResourceId: string, ownerUsesFrameworkRootIds: boolean, item: RegisterableItems, kind: Exclude<RegisterableKind, RegisterableKind.ResourceWithConfig>): RegisterableItems;
|
|
48
52
|
private cloneDefinitionWithId;
|
|
49
53
|
private assignClonedDefinitionId;
|
|
50
|
-
private computeCanonicalId;
|
|
51
|
-
private assertLocalName;
|
|
52
54
|
private resolveRegisterableId;
|
|
53
55
|
storeResource<_C>(item: IResource<any, any, any>, overrideMode?: StoringMode): AnyResource;
|
|
54
56
|
storeTask<_C>(item: ITask<any, any, {}>, storingMode?: StoringMode): void;
|
|
@@ -62,6 +64,7 @@ export declare class StoreRegistryWriter {
|
|
|
62
64
|
private normalizeMiddlewareAttachment;
|
|
63
65
|
private resolveOwnerResourceIdFromTaskId;
|
|
64
66
|
private didArrayChange;
|
|
67
|
+
private normalizeOwnerScopeArg;
|
|
65
68
|
private normalizeDefinitionTags;
|
|
66
69
|
}
|
|
67
70
|
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RegisterableItems } from "../../defs";
|
|
2
|
+
export declare enum RegisterableKind {
|
|
3
|
+
Task = "task",
|
|
4
|
+
Error = "error",
|
|
5
|
+
Hook = "hook",
|
|
6
|
+
Resource = "resource",
|
|
7
|
+
Event = "event",
|
|
8
|
+
AsyncContext = "asyncContext",
|
|
9
|
+
TaskMiddleware = "taskMiddleware",
|
|
10
|
+
ResourceMiddleware = "resourceMiddleware",
|
|
11
|
+
ResourceWithConfig = "resourceWithConfig",
|
|
12
|
+
Tag = "tag"
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Shared registerable classification used by both registration and validation
|
|
16
|
+
* paths so new definition kinds cannot drift between those code paths.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveRegisterableKind(item: RegisterableItems): RegisterableKind | null;
|
|
19
|
+
export declare function describeRegisterableKind(kind: RegisterableKind | null): string;
|
|
@@ -68,7 +68,7 @@ export declare const resources: Readonly<{
|
|
|
68
68
|
description: string;
|
|
69
69
|
}, import("..").ResourceTagType[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
70
70
|
rateLimit: import("..").IResource<void, Promise<{
|
|
71
|
-
states: WeakMap<import("..").RateLimitMiddlewareConfig, import("..").RateLimitState
|
|
71
|
+
states: WeakMap<import("..").RateLimitMiddlewareConfig, Map<string, import("..").RateLimitState>>;
|
|
72
72
|
}>, {}, any, any, import("..").ITag<{
|
|
73
73
|
metadata?: Record<string, any>;
|
|
74
74
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -77,7 +77,7 @@ export declare const resources: Readonly<{
|
|
|
77
77
|
}>, {}, any, any, import("..").ITag<{
|
|
78
78
|
metadata?: Record<string, any>;
|
|
79
79
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
80
|
-
temporal: import("..").IResource<void, Promise<import("../globals/middleware/temporal.
|
|
80
|
+
temporal: import("..").IResource<void, Promise<import("../globals/middleware/temporal.shared").TemporalResourceState<import("..").TemporalMiddlewareConfig>>, {}, any, any, import("..").ITag<{
|
|
81
81
|
metadata?: Record<string, any>;
|
|
82
82
|
}, void, void, void>[], import("..").ResourceMiddlewareAttachmentType[]>;
|
|
83
83
|
concurrency: import("..").IResource<void, Promise<{
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { RpcLanesResourceConfig, RpcLanesResourceValue } from "./types";
|
|
2
|
+
export declare const RPC_LANES_RESOURCE_ID = "runner.node.rpcLanes";
|
|
2
3
|
export declare const rpcLanesResource: import("../..").IResource<RpcLanesResourceConfig<import("./types").RpcLanesTopology, string>, Promise<RpcLanesResourceValue>, {}, any, any, import("../..").ResourceTagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
package/dist/types/public.d.ts
CHANGED
|
@@ -1,201 +1,22 @@
|
|
|
1
1
|
import { defineTask, defineResource, defineEvent, defineEventLane, defineRpcLane, defineTaskMiddleware, defineResourceMiddleware, defineOverride, defineTag, defineHook, isTask, isResource, isResourceWithConfig, isEvent, isEventLane, isRpcLane, isHook, isTaskMiddleware, isResourceMiddleware, isTag, isTagStartup, isOptional, isError, isAsyncContext, isOverrideDefinition, isSubtreeFilter, isIsolationScope } from "./define";
|
|
2
2
|
import { defineAsyncContext } from "./definers/defineAsyncContext";
|
|
3
|
+
import { globalEvents } from "./globals/globalEvents";
|
|
4
|
+
import { globalResources } from "./globals/globalResources";
|
|
5
|
+
import { globalMiddlewares } from "./globals/globalMiddleware";
|
|
6
|
+
import { globalTags } from "./globals/globalTags";
|
|
7
|
+
import { debug as globalDebug } from "./globals/debug";
|
|
3
8
|
import { run } from "./run";
|
|
4
9
|
import { onAnyOf, isOneOf } from "./types/event";
|
|
5
10
|
import { subtreeOf as subtreeOfFn } from "./tools/subtreeOf";
|
|
6
11
|
import { scope as scopeFn } from "./tools/scope";
|
|
7
12
|
import { isSameDefinition } from "./tools/isSameDefinition";
|
|
8
13
|
import { asyncContexts } from "./asyncContexts";
|
|
9
|
-
export declare const resources: Readonly<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
timers: import("./defs").IResource<void, Promise<import("./public-types").ITimers>, {
|
|
14
|
-
store: typeof import("./globals/globalResources").store;
|
|
15
|
-
}, {
|
|
16
|
-
controller?: import("./models").RuntimeTimers;
|
|
17
|
-
}, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
18
|
-
logger: import("./defs").IResource<void, Promise<import("./models").Logger>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
19
|
-
debug: import("./defs").IResource<import("./public").DebugFriendlyConfig, Promise<any>, {}, any, {
|
|
20
|
-
title: string;
|
|
21
|
-
description: string;
|
|
22
|
-
}, import("./defs").ITag<{
|
|
23
|
-
metadata?: Record<string, any>;
|
|
24
|
-
}, void, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
25
|
-
serializer: import("./defs").IResource<void, Promise<import("./serializer").SerializerLike>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
26
|
-
cacheProvider: import("./defs").IResource<void, Promise<import("./globals/middleware/cache.shared").CacheProvider>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
27
|
-
cache: import("./defs").IResource<import("./public").CacheResourceConfig, Promise<{
|
|
28
|
-
map: Map<string, import("./defs").ICacheProvider>;
|
|
29
|
-
pendingCreates: Map<string, Promise<import("./defs").ICacheProvider>>;
|
|
30
|
-
cacheProvider: import("./globals/middleware/cache.shared").CacheProvider;
|
|
31
|
-
totalBudgetBytes?: number;
|
|
32
|
-
sharedBudget?: import("./globals/middleware/cache.shared").SharedCacheBudgetState;
|
|
33
|
-
defaultOptions: import("./globals/middleware/cache.shared").CacheFactoryOptions;
|
|
34
|
-
}>, {
|
|
35
|
-
cacheProvider: typeof import("./globals/middleware/cache.middleware").cacheProviderResource;
|
|
36
|
-
}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
37
|
-
cron: import("./defs").IResource<import("./public").CronResourceConfig, Promise<import("./public").CronResourceValue>, import("./defs").DependencyMapType & {
|
|
38
|
-
cron: typeof import("./globals/cron/cron.tag").cronTag;
|
|
39
|
-
logger: typeof import("./globals/resources/logger.resource").loggerResource;
|
|
40
|
-
store: typeof import("./globals/globalResources").store;
|
|
41
|
-
taskRunner: typeof import("./globals/resources/taskRunner.resource").taskRunnerResource;
|
|
42
|
-
}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
43
|
-
queue: import("./defs").IResource<void, Promise<{
|
|
44
|
-
map: any;
|
|
45
|
-
run: <T>(id: string, task: (signal: AbortSignal) => Promise<T>) => Promise<T>;
|
|
46
|
-
}>, {}, {
|
|
47
|
-
disposed: boolean;
|
|
48
|
-
map: Map<string, import("./models").Queue>;
|
|
49
|
-
cleanupTimers: Map<string, NodeJS.Timeout>;
|
|
50
|
-
}, {
|
|
51
|
-
title: string;
|
|
52
|
-
description: string;
|
|
53
|
-
}, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
54
|
-
rateLimit: import("./defs").IResource<void, Promise<{
|
|
55
|
-
states: WeakMap<import("./public").RateLimitMiddlewareConfig, import("./public").RateLimitState>;
|
|
56
|
-
}>, {}, any, any, import("./defs").ITag<{
|
|
57
|
-
metadata?: Record<string, any>;
|
|
58
|
-
}, void, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
59
|
-
circuitBreaker: import("./defs").IResource<void, Promise<{
|
|
60
|
-
statusMap: Map<string, import("./public").CircuitBreakerStatus>;
|
|
61
|
-
}>, {}, any, any, import("./defs").ITag<{
|
|
62
|
-
metadata?: Record<string, any>;
|
|
63
|
-
}, void, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
64
|
-
temporal: import("./defs").IResource<void, Promise<import("./globals/middleware/temporal.middleware").TemporalResourceState>, {}, any, any, import("./defs").ITag<{
|
|
65
|
-
metadata?: Record<string, any>;
|
|
66
|
-
}, void, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
67
|
-
concurrency: import("./defs").IResource<void, Promise<{
|
|
68
|
-
semaphoresByConfig: WeakMap<import("./public").ConcurrencyMiddlewareConfig, import("./models").Semaphore>;
|
|
69
|
-
semaphoresByKey: Map<string, {
|
|
70
|
-
semaphore: import("./models").Semaphore;
|
|
71
|
-
limit: number;
|
|
72
|
-
}>;
|
|
73
|
-
semaphores: Set<import("./models").Semaphore>;
|
|
74
|
-
}>, {}, any, any, import("./defs").ITag<{
|
|
75
|
-
metadata?: Record<string, any>;
|
|
76
|
-
}, void, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
77
|
-
store: import("./defs").IResource<void, Promise<import("./models").Store>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
78
|
-
middlewareManager: import("./defs").IResource<void, Promise<import("./models").MiddlewareManager>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
79
|
-
eventManager: import("./defs").IResource<void, Promise<import("./models").EventManager>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
80
|
-
taskRunner: import("./defs").IResource<void, Promise<import("./models").TaskRunner>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
81
|
-
runtime: import("./defs").IResource<void, Promise<import("./models").RunResult<unknown>>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
82
|
-
}>;
|
|
83
|
-
export declare const events: Readonly<{
|
|
84
|
-
ready: import("./defs").IEvent<void> & {
|
|
85
|
-
parallel?: boolean | undefined;
|
|
86
|
-
transactional?: boolean | undefined;
|
|
87
|
-
};
|
|
88
|
-
disposing: import("./defs").IEvent<void> & {
|
|
89
|
-
parallel?: boolean | undefined;
|
|
90
|
-
transactional?: boolean | undefined;
|
|
91
|
-
};
|
|
92
|
-
drained: import("./defs").IEvent<void> & {
|
|
93
|
-
parallel?: boolean | undefined;
|
|
94
|
-
transactional?: boolean | undefined;
|
|
95
|
-
};
|
|
96
|
-
}>;
|
|
97
|
-
export declare const middleware: Readonly<{
|
|
98
|
-
requireContext: typeof import("./globals/middleware/requireContext.middleware").requireContextTaskMiddleware;
|
|
99
|
-
task: {
|
|
100
|
-
requireContext: typeof import("./globals/middleware/requireContext.middleware").requireContextTaskMiddleware;
|
|
101
|
-
cache: import("./defs").ITaskMiddleware<import("./globals/middleware/cache.shared").CacheFactoryOptions & {
|
|
102
|
-
keyBuilder?: (taskId: string, input: unknown) => string;
|
|
103
|
-
}, any, any, {
|
|
104
|
-
cache: import("./defs").IResource<import("./public").CacheResourceConfig, Promise<{
|
|
105
|
-
map: Map<string, import("./defs").ICacheProvider>;
|
|
106
|
-
pendingCreates: Map<string, Promise<import("./defs").ICacheProvider>>;
|
|
107
|
-
cacheProvider: import("./globals/middleware/cache.shared").CacheProvider;
|
|
108
|
-
totalBudgetBytes?: number;
|
|
109
|
-
sharedBudget?: import("./globals/middleware/cache.shared").SharedCacheBudgetState;
|
|
110
|
-
defaultOptions: import("./globals/middleware/cache.shared").CacheFactoryOptions;
|
|
111
|
-
}>, {
|
|
112
|
-
cacheProvider: typeof import("./globals/middleware/cache.middleware").cacheProviderResource;
|
|
113
|
-
}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
114
|
-
logger: import("./defs").IOptionalDependency<import("./defs").IResource<void, Promise<import("./models").Logger>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>>;
|
|
115
|
-
}> & {
|
|
116
|
-
journalKeys: {
|
|
117
|
-
readonly hit: import("./public-types").JournalKey<boolean>;
|
|
118
|
-
};
|
|
119
|
-
};
|
|
120
|
-
concurrency: typeof import("./globals/middleware/concurrency.middleware").concurrencyTaskMiddleware;
|
|
121
|
-
debounce: typeof import("./globals/middleware/temporal.middleware").debounceTaskMiddleware;
|
|
122
|
-
throttle: typeof import("./globals/middleware/temporal.middleware").throttleTaskMiddleware;
|
|
123
|
-
fallback: import("./defs").ITaskMiddleware<import("./public").FallbackMiddlewareConfig, any, any, {
|
|
124
|
-
taskRunner: import("./defs").IResource<void, Promise<import("./models").TaskRunner>, {}, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
125
|
-
}> & {
|
|
126
|
-
journalKeys: {
|
|
127
|
-
readonly active: import("./public-types").JournalKey<boolean>;
|
|
128
|
-
readonly error: import("./public-types").JournalKey<Error>;
|
|
129
|
-
};
|
|
130
|
-
};
|
|
131
|
-
rateLimit: import("./defs").ITaskMiddleware<import("./public").RateLimitMiddlewareConfig, any, any, {
|
|
132
|
-
state: import("./defs").IResource<void, Promise<{
|
|
133
|
-
states: WeakMap<import("./public").RateLimitMiddlewareConfig, import("./public").RateLimitState>;
|
|
134
|
-
}>, {}, any, any, import("./defs").ITag<{
|
|
135
|
-
metadata?: Record<string, any>;
|
|
136
|
-
}, void, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
137
|
-
}> & {
|
|
138
|
-
journalKeys: {
|
|
139
|
-
readonly remaining: import("./public-types").JournalKey<number>;
|
|
140
|
-
readonly resetTime: import("./public-types").JournalKey<number>;
|
|
141
|
-
readonly limit: import("./public-types").JournalKey<number>;
|
|
142
|
-
};
|
|
143
|
-
};
|
|
144
|
-
retry: import("./defs").ITaskMiddleware<import("./public").RetryMiddlewareConfig, any, any, any> & {
|
|
145
|
-
journalKeys: {
|
|
146
|
-
readonly attempt: import("./public-types").JournalKey<number>;
|
|
147
|
-
readonly lastError: import("./public-types").JournalKey<Error>;
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
timeout: import("./defs").ITaskMiddleware<import("./public").TimeoutMiddlewareConfig, any, any, any> & {
|
|
151
|
-
journalKeys: {
|
|
152
|
-
readonly abortController: import("./public-types").JournalKey<AbortController>;
|
|
153
|
-
};
|
|
154
|
-
};
|
|
155
|
-
circuitBreaker: import("./defs").ITaskMiddleware<import("./public").CircuitBreakerMiddlewareConfig, any, any, {
|
|
156
|
-
state: import("./defs").IResource<void, Promise<{
|
|
157
|
-
statusMap: Map<string, import("./public").CircuitBreakerStatus>;
|
|
158
|
-
}>, {}, any, any, import("./defs").ITag<{
|
|
159
|
-
metadata?: Record<string, any>;
|
|
160
|
-
}, void, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
|
|
161
|
-
}> & {
|
|
162
|
-
journalKeys: {
|
|
163
|
-
readonly state: import("./public-types").JournalKey<import("./public").CircuitBreakerState>;
|
|
164
|
-
readonly failures: import("./public-types").JournalKey<number>;
|
|
165
|
-
};
|
|
166
|
-
};
|
|
167
|
-
};
|
|
168
|
-
resource: {
|
|
169
|
-
retry: typeof import("./globals/middleware/retry.middleware").retryResourceMiddleware;
|
|
170
|
-
timeout: typeof import("./globals/middleware/timeout.middleware").timeoutResourceMiddleware;
|
|
171
|
-
};
|
|
172
|
-
}>;
|
|
173
|
-
export declare const tags: Readonly<{
|
|
174
|
-
system: import("./defs").ITag<{
|
|
175
|
-
metadata?: Record<string, any>;
|
|
176
|
-
}, void, void, void>;
|
|
177
|
-
excludeFromGlobalHooks: import("./defs").ITag<{
|
|
178
|
-
metadata?: Record<string, any>;
|
|
179
|
-
}, void, void, void>;
|
|
180
|
-
eventLane: import("./defs").ITag<{
|
|
181
|
-
lane: import("./defs").IEventLaneDefinition;
|
|
182
|
-
}, void, void, void>;
|
|
183
|
-
rpcLane: import("./defs").ITag<{
|
|
184
|
-
lane: import("./defs").IRpcLaneDefinition;
|
|
185
|
-
}, void, void, void>;
|
|
186
|
-
rpcLanes: import("./defs").ITag<{
|
|
187
|
-
metadata?: Record<string, any>;
|
|
188
|
-
}, void, void, void>;
|
|
189
|
-
debug: import("./defs").ITag<import("./public").DebugFriendlyConfig, void, void, void>;
|
|
190
|
-
cron: import("./defs").ITag<import("./public").CronTagConfig, void, void, void>;
|
|
191
|
-
authValidator: import("./defs").ITag<void, void, void, void>;
|
|
192
|
-
failWhenUnhealthy: import("./defs").ITag<readonly (string | import("./defs").IResource<any, any, any, any, any, import("./defs").ResourceTagType[], import("./defs").ResourceMiddlewareAttachmentType[]>)[], void, void, void>;
|
|
193
|
-
}>;
|
|
14
|
+
export declare const resources: Readonly<typeof globalResources>;
|
|
15
|
+
export declare const events: Readonly<typeof globalEvents>;
|
|
16
|
+
export declare const middleware: Readonly<typeof globalMiddlewares>;
|
|
17
|
+
export declare const tags: Readonly<typeof globalTags>;
|
|
194
18
|
export declare const debug: Readonly<{
|
|
195
|
-
levels:
|
|
196
|
-
normal: import("./public").DebugConfig;
|
|
197
|
-
verbose: import("./public").DebugConfig;
|
|
198
|
-
};
|
|
19
|
+
levels: typeof globalDebug.levels;
|
|
199
20
|
}>;
|
|
200
21
|
export { defineTask, defineResource, defineEvent, defineEventLane, defineRpcLane, defineTaskMiddleware, defineResourceMiddleware, defineAsyncContext, defineTag, defineOverride, defineHook, isTask, isResource, isResourceWithConfig, isEvent, isEventLane, isRpcLane, isHook, isTaskMiddleware, isResourceMiddleware, isTag, isTagStartup, isOptional, isError, isAsyncContext, isOverrideDefinition, isSubtreeFilter, isIsolationScope, run, onAnyOf, isOneOf, isSameDefinition, subtreeOfFn as subtreeOf, scopeFn as scope, asyncContexts, };
|
|
201
22
|
/**
|
|
@@ -228,11 +228,6 @@ export interface IResourceDefinition<TConfig = any, TValue extends Promise<any>
|
|
|
228
228
|
[symbolResourceSubtreeDeclarations]?: ReadonlyArray<ResourceSubtreePolicyDeclaration<TConfig>>;
|
|
229
229
|
/** @internal Ordered isolate declarations preserved across builder composition. */
|
|
230
230
|
[symbolResourceIsolateDeclarations]?: ReadonlyArray<IsolationPolicyDeclaration<TConfig>>;
|
|
231
|
-
/**
|
|
232
|
-
* When true, this resource acts as a namespace gateway and does not add its
|
|
233
|
-
* own id prefix when compiling ids for items in its register tree.
|
|
234
|
-
*/
|
|
235
|
-
gateway?: boolean;
|
|
236
231
|
tags?: TTags;
|
|
237
232
|
}
|
|
238
233
|
/**
|
|
@@ -270,10 +265,6 @@ export interface IResource<TConfig = void, TValue extends Promise<any> = Promise
|
|
|
270
265
|
[symbolResourceSubtreeDeclarations]?: ReadonlyArray<ResourceSubtreePolicyDeclaration<TConfig>>;
|
|
271
266
|
/** @internal Ordered isolate declarations preserved across builder composition. */
|
|
272
267
|
[symbolResourceIsolateDeclarations]?: ReadonlyArray<IsolationPolicyDeclaration<TConfig>>;
|
|
273
|
-
/**
|
|
274
|
-
* Namespace gateway flag copied from the definition.
|
|
275
|
-
*/
|
|
276
|
-
gateway?: boolean;
|
|
277
268
|
/** Return an optional dependency wrapper for this resource. */
|
|
278
269
|
optional: () => IOptionalDependency<IResource<TConfig, TValue, TDependencies, TContext, TMeta, TTags, TMiddleware>>;
|
|
279
270
|
tags: TTags;
|
|
@@ -100,8 +100,10 @@ export type NormalizedResourceSubtreePolicy = {
|
|
|
100
100
|
export type SubtreePolicyOptions = {
|
|
101
101
|
override?: boolean;
|
|
102
102
|
};
|
|
103
|
-
export type
|
|
104
|
-
export type
|
|
103
|
+
export type ResourceSubtreePolicyValue = ResourceSubtreePolicy;
|
|
104
|
+
export type ResourceSubtreePolicyList = ResourceSubtreePolicyValue | ResourceSubtreePolicyValue[];
|
|
105
|
+
export type ResourceSubtreePolicyResolver<TConfig = unknown> = (config: TConfig) => ResourceSubtreePolicyList;
|
|
106
|
+
export type ResourceSubtreePolicyInput<TConfig = unknown> = ResourceSubtreePolicyList | ResourceSubtreePolicyResolver<TConfig>;
|
|
105
107
|
export type ResourceSubtreePolicyDeclaration<TConfig = unknown> = {
|
|
106
108
|
policy: ResourceSubtreePolicyInput<TConfig>;
|
|
107
109
|
options?: SubtreePolicyOptions;
|