@amazon/vinyl-di 1.0.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/index.cjs +129 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.js +113 -0
- package/dist/index.js.map +7 -0
- package/dist/types/current/di/CyclicDependencyError.d.ts +12 -0
- package/dist/types/current/di/CyclicDependencyError.d.ts.map +1 -0
- package/dist/types/current/di/CyclicDependencyError.js +20 -0
- package/dist/types/current/di/di.d.ts +110 -0
- package/dist/types/current/di/di.d.ts.map +1 -0
- package/dist/types/current/di/di.js +148 -0
- package/dist/types/current/di/validation.d.ts +106 -0
- package/dist/types/current/di/validation.d.ts.map +1 -0
- package/dist/types/current/di/validation.js +10 -0
- package/dist/types/current/index.d.ts +5 -0
- package/dist/types/current/index.d.ts.map +1 -0
- package/dist/types/current/index.js +4 -0
- package/dist/types/current/tsconfig.tsbuildinfo +1 -0
- package/dist/types/ts3.7/di/CyclicDependencyError.d.ts +12 -0
- package/dist/types/ts3.7/di/di.d.ts +110 -0
- package/dist/types/ts3.7/di/validation.d.ts +131 -0
- package/dist/types/ts3.7/index.d.ts +5 -0
- package/dist/types/ts4.1/di/CyclicDependencyError.d.ts +12 -0
- package/dist/types/ts4.1/di/di.d.ts +110 -0
- package/dist/types/ts4.1/di/validation.d.ts +131 -0
- package/dist/types/ts4.1/index.d.ts +5 -0
- package/dist/types/ts4.7/di/CyclicDependencyError.d.ts +12 -0
- package/dist/types/ts4.7/di/di.d.ts +110 -0
- package/dist/types/ts4.7/di/validation.d.ts +131 -0
- package/dist/types/ts4.7/index.d.ts +5 -0
- package/docs/DEPENDENCY_INJECTION.md +129 -0
- package/package.json +81 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { Factories, Factory } from './di';
|
|
2
|
+
import type { AddDisposable, IsNever, Merge } from '@amazon/vinyl-util';
|
|
3
|
+
/**
|
|
4
|
+
* A compile-time validation error that a dependency may not cycle back upon itself.
|
|
5
|
+
*/
|
|
6
|
+
export type NeverCyclicDependency<T extends PropertyKey, U extends PropertyKey[]> = [never, T, 'cyclic dependency', U];
|
|
7
|
+
/**
|
|
8
|
+
* A compile-time validation error that a provided dependency must be assignable
|
|
9
|
+
* to factories for which it is an input.
|
|
10
|
+
*/
|
|
11
|
+
export type NeverWrongReturnType<Expected, Actual> = [
|
|
12
|
+
never,
|
|
13
|
+
'expected provided dependency is not a subtype of what is used. Expected subtype of:',
|
|
14
|
+
Expected,
|
|
15
|
+
'Actual: ',
|
|
16
|
+
Actual
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* A compile-time validation error that a dependency must be a supertype of the actual type
|
|
20
|
+
* provided.
|
|
21
|
+
*/
|
|
22
|
+
export type NeverWrongDependencyType<Expected, Actual> = [
|
|
23
|
+
never,
|
|
24
|
+
'expected dependency is not a supertype of what is provided. Expected supertype of:',
|
|
25
|
+
Expected,
|
|
26
|
+
'Actual: ',
|
|
27
|
+
Actual
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* A factory expects a dependency that isn't defined.
|
|
31
|
+
*/
|
|
32
|
+
export type NeverMissingDependency<K> = [
|
|
33
|
+
never,
|
|
34
|
+
'provider is missing a dependency for key:',
|
|
35
|
+
K
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* A factory expects a non-void return type.
|
|
39
|
+
*/
|
|
40
|
+
export type NeverNoVoidReturnType = [never, 'void return type not allowed'];
|
|
41
|
+
/**
|
|
42
|
+
* A factory must be a function.
|
|
43
|
+
*/
|
|
44
|
+
export type NeverInvalidFactoryType = [never, 'not a valid factory'];
|
|
45
|
+
/**
|
|
46
|
+
* Dependencies must be an object.
|
|
47
|
+
*/
|
|
48
|
+
export type NeverInvalidDependenciesType = [never, 'not valid dependency type'];
|
|
49
|
+
/**
|
|
50
|
+
* A compile-time validation error that dependency factories take an input of type object.
|
|
51
|
+
*/
|
|
52
|
+
export type NeverWrongDependenciesInput = [
|
|
53
|
+
never,
|
|
54
|
+
'expected dependency factory to have an object argument'
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* Provides a compile-time assertion that the given dependency map provides valid factories.
|
|
58
|
+
*/
|
|
59
|
+
export declare function validateFactories<Dm extends Factories>(dependencyMap: ValidFactories<Dm>): NoInfer<Dm>;
|
|
60
|
+
/**
|
|
61
|
+
* Validates that the type provided is a valid dependency map.
|
|
62
|
+
*
|
|
63
|
+
* This will guarantee that:
|
|
64
|
+
* - All dependency factories exist with the correct signature.
|
|
65
|
+
* - There are no cyclic dependencies.
|
|
66
|
+
* - The factory's dependencies are provided.
|
|
67
|
+
*
|
|
68
|
+
* @see ValidFactory
|
|
69
|
+
*/
|
|
70
|
+
export type ValidFactories<Dm> = {
|
|
71
|
+
readonly [K in keyof Dm]: ValidFactory<Dm, K>;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Validates that the dependency factory is valid.
|
|
75
|
+
*/
|
|
76
|
+
export type ValidFactory<Dm, K extends keyof Dm> = Dm[K] extends (deps: infer Deps, add: AddDisposable) => infer R ? [R] extends [void] ? [never, Dm[K]] : [R] extends [ExpectedInputType<Dm, K>] ? Dm[K] extends () => any ? Dm[K] : Deps extends ValidProviderDependencies<Deps, Dm> ? Dm[K] : (deps: ValidProviderDependencies<Deps, Dm>) => R : NeverWrongReturnType<ExpectedInputType<Dm, K>, R> : NeverInvalidFactoryType;
|
|
77
|
+
type _ExpectedInputUnion<Dm, K extends keyof Dm> = Dm[keyof Dm] extends (deps: infer Deps, add: AddDisposable) => any ? K extends keyof Deps ? Deps[K] : never : never;
|
|
78
|
+
export type ExpectedInputType<Dm, K extends keyof Dm> = IsNever<_ExpectedInputUnion<Dm, K>> extends true ? any : _ExpectedInputUnion<Dm, K>;
|
|
79
|
+
/**
|
|
80
|
+
* A type validating dependency overrides when merged with existing dependency factories.
|
|
81
|
+
*/
|
|
82
|
+
export type ValidFactoryOverrides<Deps, Base, Ext> = Pick<ValidFactories<Merge<Base, Ext>>, keyof Ext> & Partial<Factories<Deps>>;
|
|
83
|
+
/**
|
|
84
|
+
* Validate that the dependencies of a factory are not cyclical and that the return type of the
|
|
85
|
+
* dependency is a subtype of what's needed.
|
|
86
|
+
*/
|
|
87
|
+
export type ValidProviderDependencies<Deps, Dm> = Deps extends object ? {
|
|
88
|
+
readonly [K in keyof Deps]: K extends keyof Dm ? Dm[K] extends Factory<infer R> ? R extends Deps[K] ? K extends FlattenDependencies<Dm, K> ? NeverCyclicDependency<K, FlattenDependencies<Dm, K>> : Deps[K] : NeverWrongDependencyType<ReturnType<Dm[K]>, Deps[K]> : NeverMissingDependency<K> : NeverMissingDependency<K>;
|
|
89
|
+
} : NeverInvalidDependenciesType;
|
|
90
|
+
/**
|
|
91
|
+
* Flattens the dependency graph for the given dependency factory.
|
|
92
|
+
* E.g. given a map:
|
|
93
|
+
* ```
|
|
94
|
+
* type Map = {
|
|
95
|
+
* a: () => 1,
|
|
96
|
+
* b: (deps: { a: number }) => 2,
|
|
97
|
+
* c: () => 3,
|
|
98
|
+
* d: (deps: { b: number, c: number }) => 4,
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* `FlattenDependencies<'d', Map> // 'c' | 'b' | 'a'`
|
|
103
|
+
*/
|
|
104
|
+
export type FlattenDependencies<Dm, K extends keyof Dm, Current extends keyof Dm = never> = Dm[K] extends () => any ? never : Dm[K] extends (deps: infer Expected) => any ? keyof Expected extends Current ? never : keyof Expected | FlattenDependencies<Dm, keyof Expected & keyof Dm, Current | (keyof Expected & keyof Dm)> : never;
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/di/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Provides a compile-time assertion that the given dependency map provides valid factories.
|
|
7
|
+
*/
|
|
8
|
+
export function validateFactories(dependencyMap) {
|
|
9
|
+
return dependencyMap;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,4BAA4B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../vinyl-util/dist/types/current/util/type.d.ts","../../../../vinyl-util/dist/types/current/util/url/resolveurl.d.ts","../../../../vinyl-util/dist/types/current/util/string/uid.d.ts","../../../../vinyl-util/dist/types/current/util/object/readonlytype.d.ts","../../../../vinyl-util/dist/types/current/util/string/string.d.ts","../../../../vinyl-util/dist/types/current/util/serialization/json.d.ts","../../../../vinyl-util/dist/types/current/error/reportableerror.d.ts","../../../../vinyl-util/dist/types/current/util/serialization/parseerror.d.ts","../../../../vinyl-util/dist/types/current/util/string/stringreader.d.ts","../../../../vinyl-util/dist/types/current/util/set/set.d.ts","../../../../vinyl-util/dist/types/current/util/serialization/stringifyforprint.d.ts","../../../../vinyl-util/dist/types/current/util/serialization/primitives.d.ts","../../../../vinyl-util/dist/types/current/util/range/ranges.d.ts","../../../../vinyl-util/dist/types/current/util/range/timeranges.d.ts","../../../../vinyl-util/dist/types/current/util/range/unionranges.d.ts","../../../../vinyl-util/dist/types/current/util/range/intersectionranges.d.ts","../../../../vinyl-util/dist/types/current/util/object/object.d.ts","../../../../vinyl-util/dist/types/current/util/object/mutabletype.d.ts","../../../../vinyl-util/dist/types/current/util/collection/typedarray.d.ts","../../../../vinyl-util/dist/types/current/core/cloneable.d.ts","../../../../vinyl-util/dist/types/current/util/object/mergedeep.d.ts","../../../../vinyl-util/dist/types/current/util/object/merge.d.ts","../../../../vinyl-util/dist/types/current/error/illegalstateerror.d.ts","../../../../vinyl-util/dist/types/current/core/unsubscribe.d.ts","../../../../vinyl-util/dist/types/current/core/disposable.d.ts","../../../../vinyl-util/dist/types/current/util/object/lazy.d.ts","../../../../vinyl-util/dist/types/current/util/object/equaldeep.d.ts","../../../../vinyl-util/dist/types/current/util/object/clone.d.ts","../../../../vinyl-util/dist/types/current/util/network/request.d.ts","../../../../vinyl-util/dist/types/current/util/mpeg/parsesidxbox.d.ts","../../../../vinyl-util/dist/types/current/util/math/math.d.ts","../../../../vinyl-util/dist/types/current/util/map/map.d.ts","../../../../vinyl-util/dist/types/current/util/iteration/iterable.d.ts","../../../../vinyl-util/dist/types/current/util/fun/throttle.d.ts","../../../../vinyl-util/dist/types/current/util/fun/memoize.d.ts","../../../../vinyl-util/dist/types/current/util/fun/function.d.ts","../../../../vinyl-util/dist/types/current/util/fun/flow.d.ts","../../../../vinyl-util/dist/types/current/util/fun/debounce.d.ts","../../../../vinyl-util/dist/types/current/util/comparison/compare.d.ts","../../../../vinyl-util/dist/types/current/util/error/stack.d.ts","../../../../vinyl-util/dist/types/current/util/date/date.d.ts","../../../../vinyl-util/dist/types/current/util/config/valueprovider.d.ts","../../../../vinyl-util/dist/types/current/util/collection/array.d.ts","../../../../vinyl-util/dist/types/current/util/collection/cachemap.d.ts","../../../../vinyl-util/dist/types/current/util/collection/lrucache.d.ts","../../../../vinyl-util/dist/types/current/util/collection/linkedlist.d.ts","../../../../vinyl-util/dist/types/current/util/buffer/buffer.d.ts","../../../../vinyl-util/dist/types/current/util/buffer/bufferwriter.d.ts","../../../../vinyl-util/dist/types/current/util/buffer/bufferreader.d.ts","../../../../vinyl-util/dist/types/current/util/buffer/buffererror.d.ts","../../../../vinyl-util/dist/types/current/util/browser/searchparams.d.ts","../../../../vinyl-util/dist/types/current/event/signal.d.ts","../../../../vinyl-util/dist/types/current/logging/logtarget.d.ts","../../../../vinyl-util/dist/types/current/event/eventhost.d.ts","../../../../vinyl-util/dist/types/current/util/async/abort.d.ts","../../../../vinyl-util/dist/types/current/util/async/timeout.d.ts","../../../../vinyl-util/dist/types/current/util/async/sleep.d.ts","../../../../vinyl-util/dist/types/current/util/async/promise.d.ts","../../../../vinyl-util/dist/types/current/util/async/never.d.ts","../../../../vinyl-util/dist/types/current/util/async/abortutils.d.ts","../../../../vinyl-util/dist/types/current/util/async/timeoutslot.d.ts","../../../../vinyl-util/dist/types/current/util/async/timeoutcontroller.d.ts","../../../../vinyl-util/dist/types/current/util/async/taskqueue.d.ts","../../../../vinyl-util/dist/types/current/util/async/deferred.d.ts","../../../../vinyl-util/dist/types/current/persistence/keyvaluepersistence.d.ts","../../../../vinyl-util/dist/types/current/global/globalregistry.d.ts","../../../../vinyl-util/dist/types/current/persistence/persistenceref.d.ts","../../../../vinyl-util/dist/types/current/persistence/storagepersistence.d.ts","../../../../vinyl-util/dist/types/current/persistence/persistentitem.d.ts","../../../../vinyl-util/dist/types/current/patch/patchtarget.d.ts","../../../../vinyl-util/dist/types/current/network/requester.d.ts","../../../../vinyl-util/dist/types/current/patch/network/fetch.d.ts","../../../../vinyl-util/dist/types/current/network/requesterimpleventmap.d.ts","../../../../vinyl-util/dist/types/current/network/requesterror.d.ts","../../../../vinyl-util/dist/types/current/network/responseutil.d.ts","../../../../vinyl-util/dist/types/current/network/requesterutil.d.ts","../../../../vinyl-util/dist/types/current/network/requesterglobal.d.ts","../../../../vinyl-util/dist/types/current/event/domeventhost.d.ts","../../../../vinyl-util/dist/types/current/network/network.d.ts","../../../../vinyl-util/dist/types/current/network/metrics/networkmetricsmodel.d.ts","../../../../vinyl-util/dist/types/current/network/metrics/networkmetricscontroller.d.ts","../../../../vinyl-util/dist/types/current/network/requesterimpl.d.ts","../../../../vinyl-util/dist/types/current/network/createrequester.d.ts","../../../../vinyl-util/dist/types/current/network/requestinterceptor.d.ts","../../../../vinyl-util/dist/types/current/network/metrics/networkmetricsglobal.d.ts","../../../../vinyl-util/dist/types/current/network/browser/networkinformation.d.ts","../../../../vinyl-util/dist/types/current/network/metrics/networkmetricscontrollerimpl.d.ts","../../../../vinyl-util/dist/types/current/network/logging/networklogginghandler.d.ts","../../../../vinyl-util/dist/types/current/logging/logtimer.d.ts","../../../../vinyl-util/dist/types/current/logging/logger.d.ts","../../../../vinyl-util/dist/types/current/logging/getloglevelfromsearch.d.ts","../../../../vinyl-util/dist/types/current/logging/consoleloghandler.d.ts","../../../../vinyl-util/dist/types/current/logging/historyloghandler.d.ts","../../../../vinyl-util/dist/types/current/logging/vinyllogging.d.ts","../../../../vinyl-util/dist/types/current/global/globaltarget.d.ts","../../../../vinyl-util/dist/types/current/global/environment.d.ts","../../../../vinyl-util/dist/types/current/event/redispatchevents.d.ts","../../../../vinyl-util/dist/types/current/event/onany.d.ts","../../../../vinyl-util/dist/types/current/event/nexteventaspromise.d.ts","../../../../vinyl-util/dist/types/current/error/validationerror.d.ts","../../../../vinyl-util/dist/types/current/error/unreachablecodeerror.d.ts","../../../../vinyl-util/dist/types/current/error/timeouterror.d.ts","../../../../vinyl-util/dist/types/current/error/stackoverflowerror.d.ts","../../../../vinyl-util/dist/types/current/error/serviceresponseerror.d.ts","../../../../vinyl-util/dist/types/current/error/mediaunsupportederror.d.ts","../../../../vinyl-util/dist/types/current/error/illegalargumenterror.d.ts","../../../../vinyl-util/dist/types/current/error/errororigin.d.ts","../../../../vinyl-util/dist/types/current/error/aborterror.d.ts","../../../../vinyl-util/dist/types/current/core/clearable.d.ts","../../../../vinyl-util/dist/types/current/client/version.d.ts","../../../../vinyl-util/dist/types/current/client/useragent/useragentinfo.d.ts","../../../../vinyl-util/dist/types/current/client/useragent/tokenizeuseragent.d.ts","../../../../vinyl-util/dist/types/current/client/useragent/useragentrulehelpers.d.ts","../../../../vinyl-util/dist/types/current/client/useragent/parseuseragent.d.ts","../../../../vinyl-util/dist/types/current/client/useragent/defaultuseragentrules.d.ts","../../../../vinyl-util/dist/types/current/client/useragent/hasbrowser.d.ts","../../../../vinyl-util/dist/types/current/index.d.ts","../../../src/di/cyclicdependencyerror.ts","../../../src/di/di.ts","../../../src/di/validation.ts","../../../src/index.ts","../../../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../../../node_modules/@types/node/compatibility/index.d.ts","../../../../../node_modules/@types/node/globals.typedarray.d.ts","../../../../../node_modules/@types/node/buffer.buffer.d.ts","../../../../../node_modules/@types/node/globals.d.ts","../../../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../../../node_modules/@types/node/web-globals/events.d.ts","../../../../../node_modules/buffer/index.d.ts","../../../../../node_modules/undici-types/header.d.ts","../../../../../node_modules/undici-types/readable.d.ts","../../../../../node_modules/undici-types/file.d.ts","../../../../../node_modules/undici-types/fetch.d.ts","../../../../../node_modules/undici-types/formdata.d.ts","../../../../../node_modules/undici-types/connector.d.ts","../../../../../node_modules/undici-types/client.d.ts","../../../../../node_modules/undici-types/errors.d.ts","../../../../../node_modules/undici-types/dispatcher.d.ts","../../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../../node_modules/undici-types/global-origin.d.ts","../../../../../node_modules/undici-types/pool-stats.d.ts","../../../../../node_modules/undici-types/pool.d.ts","../../../../../node_modules/undici-types/handlers.d.ts","../../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../../node_modules/undici-types/agent.d.ts","../../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../../node_modules/undici-types/mock-agent.d.ts","../../../../../node_modules/undici-types/mock-client.d.ts","../../../../../node_modules/undici-types/mock-pool.d.ts","../../../../../node_modules/undici-types/mock-errors.d.ts","../../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../../node_modules/undici-types/retry-handler.d.ts","../../../../../node_modules/undici-types/retry-agent.d.ts","../../../../../node_modules/undici-types/api.d.ts","../../../../../node_modules/undici-types/interceptors.d.ts","../../../../../node_modules/undici-types/util.d.ts","../../../../../node_modules/undici-types/cookies.d.ts","../../../../../node_modules/undici-types/patch.d.ts","../../../../../node_modules/undici-types/websocket.d.ts","../../../../../node_modules/undici-types/eventsource.d.ts","../../../../../node_modules/undici-types/filereader.d.ts","../../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../../node_modules/undici-types/content-type.d.ts","../../../../../node_modules/undici-types/cache.d.ts","../../../../../node_modules/undici-types/index.d.ts","../../../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../../../node_modules/@types/node/assert.d.ts","../../../../../node_modules/@types/node/assert/strict.d.ts","../../../../../node_modules/@types/node/async_hooks.d.ts","../../../../../node_modules/@types/node/buffer.d.ts","../../../../../node_modules/@types/node/child_process.d.ts","../../../../../node_modules/@types/node/cluster.d.ts","../../../../../node_modules/@types/node/console.d.ts","../../../../../node_modules/@types/node/constants.d.ts","../../../../../node_modules/@types/node/crypto.d.ts","../../../../../node_modules/@types/node/dgram.d.ts","../../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../../node_modules/@types/node/dns.d.ts","../../../../../node_modules/@types/node/dns/promises.d.ts","../../../../../node_modules/@types/node/domain.d.ts","../../../../../node_modules/@types/node/events.d.ts","../../../../../node_modules/@types/node/fs.d.ts","../../../../../node_modules/@types/node/fs/promises.d.ts","../../../../../node_modules/@types/node/http.d.ts","../../../../../node_modules/@types/node/http2.d.ts","../../../../../node_modules/@types/node/https.d.ts","../../../../../node_modules/@types/node/inspector.generated.d.ts","../../../../../node_modules/@types/node/module.d.ts","../../../../../node_modules/@types/node/net.d.ts","../../../../../node_modules/@types/node/os.d.ts","../../../../../node_modules/@types/node/path.d.ts","../../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../../node_modules/@types/node/process.d.ts","../../../../../node_modules/@types/node/punycode.d.ts","../../../../../node_modules/@types/node/querystring.d.ts","../../../../../node_modules/@types/node/readline.d.ts","../../../../../node_modules/@types/node/readline/promises.d.ts","../../../../../node_modules/@types/node/repl.d.ts","../../../../../node_modules/@types/node/sea.d.ts","../../../../../node_modules/@types/node/stream.d.ts","../../../../../node_modules/@types/node/stream/promises.d.ts","../../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../../node_modules/@types/node/stream/web.d.ts","../../../../../node_modules/@types/node/string_decoder.d.ts","../../../../../node_modules/@types/node/test.d.ts","../../../../../node_modules/@types/node/timers.d.ts","../../../../../node_modules/@types/node/timers/promises.d.ts","../../../../../node_modules/@types/node/tls.d.ts","../../../../../node_modules/@types/node/trace_events.d.ts","../../../../../node_modules/@types/node/tty.d.ts","../../../../../node_modules/@types/node/url.d.ts","../../../../../node_modules/@types/node/util.d.ts","../../../../../node_modules/@types/node/v8.d.ts","../../../../../node_modules/@types/node/vm.d.ts","../../../../../node_modules/@types/node/wasi.d.ts","../../../../../node_modules/@types/node/worker_threads.d.ts","../../../../../node_modules/@types/node/zlib.d.ts","../../../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[174,218,221],[174,220,221],[221],[174,221,226,254],[174,221,222,227,232,240,251,262],[174,221,222,223,232,240],[174,221],[169,170,171,174,221],[174,221,224,263],[174,221,225,226,233,241],[174,221,226,251,259],[174,221,227,229,232,240],[174,220,221,228],[174,221,229,230],[174,221,231,232],[174,220,221,232],[174,221,232,233,234,251,262],[174,221,232,233,234,247,251,254],[174,221,229,232,235,240,251,262],[174,221,232,233,235,236,240,251,259,262],[174,221,235,237,251,259,262],[172,173,174,175,176,177,178,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268],[174,221,232,238],[174,221,239,262,267],[174,221,229,232,240,251],[174,221,241],[174,221,242],[174,220,221,243],[174,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268],[174,221,245],[174,221,246],[174,221,232,247,248],[174,221,247,249,263,265],[174,221,232,251,252,254],[174,221,253,254],[174,221,251,252],[174,221,254],[174,221,255],[174,218,221,251,256],[174,221,232,257,258],[174,221,257,258],[174,221,226,240,251,259],[174,221,260],[174,221,240,261],[174,221,235,246,262],[174,221,226,263],[174,221,251,264],[174,221,239,265],[174,221,266],[174,216,221],[174,216,221,232,234,243,251,254,262,265,267],[174,221,251,268],[174,188,192,221,262],[174,188,221,251,262],[174,183,221],[174,185,188,221,259,262],[174,221,240,259],[174,221,269],[174,183,221,269],[174,185,188,221,240,262],[174,180,181,184,187,221,232,251,262],[174,188,195,221],[174,180,186,221],[174,188,209,210,221],[174,184,188,221,254,262,269],[174,209,221,269],[174,182,183,221,269],[174,188,221],[174,182,183,184,185,186,187,188,189,190,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,221],[174,188,203,221],[174,188,195,196,221],[174,186,188,196,197,221],[174,187,221],[174,180,183,188,221],[174,188,192,196,197,221],[174,192,221],[174,186,188,191,221,262],[174,180,185,188,195,221],[174,221,251],[174,183,188,209,221,267,269],[164,174,221],[164,165,174,221],[164,166,174,221],[165,166,167,174,221],[159,174,221],[48,158,162,174,221],[48,113,158,159,174,221],[48,157,158,174,221],[157,174,221],[48,159,174,221],[48,86,174,221],[48,70,71,174,221],[54,174,221],[53,54,174,221],[53,174,221],[48,71,72,99,101,174,221],[48,71,72,99,100,174,221],[48,101,102,174,221],[71,99,101,174,221],[71,101,174,221],[71,72,174,221],[100,174,221],[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,174,221],[72,101,137,174,221],[137,174,221],[51,72,101,137,174,221],[100,101,113,174,221],[113,139,140,174,221],[48,118,129,174,221],[72,100,101,120,174,221],[48,101,127,174,221],[48,51,88,101,127,128,133,174,221],[113,127,128,174,221],[48,51,88,174,221],[48,101,102,113,125,174,221],[48,102,174,221],[48,113,118,174,221],[48,101,113,118,120,128,174,221],[88,118,174,221],[53,54,120,174,221],[48,88,120,174,221],[120,121,174,221],[118,174,221],[112,113,174,221],[48,100,112,174,221],[48,112,174,221],[48,71,72,102,174,221],[102,174,221],[48,86,102,174,221],[54,102,174,221],[48,72,102,174,221],[72,174,221],[82,174,221],[48,174,221],[91,174,221],[51,174,221],[48,73,86,174,221],[65,68,174,221],[66,174,221],[54,66,67,174,221],[48,51,174,221],[48,60,174,221],[60,174,221],[53,54,55,174,221]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"3883612e983b1ac8848b0d51d33f55c072c8a22a462b00aec48c40cebb7a5a15","94f70edc19254aec0f2ae820dbd8471f7f608b12bfafcc1d07446288c23581b8","8fadf421c7b678613fa6de2b4481310eb164497a2edf5860a59aba4a0f2d2185","3af9786b2e9ecf735773eb5b9bcc5843ade56fe5f0f214a8138361341c0f8d5f","5522c6b330b412fde5a3ff11611fdcea33f8a4302e752bf4a6f6a8e54214bc2a","4df9ee0e142dc2195011aad2686bd0e574d81d0e2488a3e1b2640bbabdc979b8","241099b91a92851a743f9d63d60eada4caf005fca5f4ba8df760be096593a090","007bf2f85f4f6165d07b8e8ba8f83b39b76247a30c7a66b39ba067a1031ccd3f","ead3ad66f2cfa815199460614d7a1b50ae0b84ea0bb0c21f0fa7223aa10139e9","e4addb08d84ea420cbc709d8b1af1db02a4e8d2a58fa56c797370871a2df42c2","29a526123d517edb4a5de3d8cd1e660ec97c9b967a11389972bfa29b6960faaf","04dfb0ad2934418fd7bff6011febdb231f2558d65c0a6dad48635e8875ae90d0","b9d28b90f521adfc849d4f9b7483d0289316c195da9dc4dcb2d7059ff4c02a68","af57273f31194850625ffce39dcb99d1a6564d8907f3bb84daa772ef12cf0fff","242e0d6dc84190304f6614238e1eb931c558d04fa403a2d6b5bd9d90a02855bb","e94777367183913ee132f092650a2cd7ce74f09a892ae2a9f789d99a185e808e","702c14f8654799f9b54fe232a54239a6be34e450c342364366e1489609c20dc3","5f08f941ca373c66e7a947aa1a9d97ebc4b3efca2cedec70f87af132576479b4","4fab8a1b625779d0e35e0deb5625ab9f0e07fc25086e30ba56eb59f95628a26b","7cd32707d24344557e23ea4dc8f6d704b20ef838cbd64b8f1588a8095cb55a4a","0f5ab3c44399e5a0456b490b6bbad5e036da74a5faea3c1ae0f7b5d25f064026","62f1070fddcefebdc0da2fbfa18564bf1f363afc3c7a1ed03467f668c236d751","c1660310b02520f3187cdaf2e7a4e6f2c4c2ac1cd07923fe4a63e16ce38de313","61f712fd2f6af15886187afb6535e9dab3184306d79fd093baef354fceb25db1","b8f327f9d2450de36d56db8af5e8ed5caccb2657236577ae5aa7d998297b85aa","253a3ab3619c937991b5250adad2f149e85a11799998e8e83718fbb00cf984c6","6b2e288a7b0a32c1c33792d3abb9cf0bcba8ed4561524aeb133c1e0290bf5de1","8840279388c4c9463c224ae9b6c56998e12b34ed916239f0d2aa35f0f6f97545","15806a570cc48f543f52915c9753f1fe3524620a1b6e917509e8ccb91cbb6df9","086c31a6d1ac11504aed923c431658b37a140e343ec3821e58f7c75ff39c486c","7062699bece11d50b8950860598472cc04ef8dd5c40b6f1e2bd60484c935cb0a","96e9eda58abdfd7e92cd2f86b6fa0a8fb3d8f7d9a98539f6d96a3daada5d25e6","6881fe06e71d54c140b538c74a50a5d7abe761af378d704d57a55c006918cce0","48dde985842acabfd922a502e18184332f6614a46e7048d6d22ab3fcb4eb7d1a","b2d98e7aab04cb64a58aeaa3f0a24dd92798694c2aa7251f2057d3ff6f259234","bf59af1f09193279476e548848bc8ca9778326ca2c7d9b238d9dea413cea0968","e52a28b741aa6591440b876ed3f2f24fa71b430ed59e7053dd3b2411df5ef7ca","ac4fd89951a8a6bca9ad3259e1349d8cd36f450707ded667ffafcdeaa9f54b44","c98a76e9bc67050bcc006cbe77b12b33abee94954beee04f28b0a680be0dbf28","09f637a412eb4422a3d418607563ffea1e6861963c5209182f04d0ab0ffc9a50","5748b1ca8a4ca72b9c5aead580075a46dff3797cdcf25541e0054d06410f908d","fa732f1f9c3ade6a7761ab58eb286d028f8f48d2c06cbbc1b6020682483d5cd0","91726a7d6845d3aae0f75360276793770a13ece4a780c3b25910d539ab3006f0","13f312824e278b623a168cfcc6140390fc6875f16df9bcbf77b659556e343717","f59333527d9898690642b4ff96c844d5fbbbdf15f6d7e2ccfdd9b1c71d9bc64f","6d4cb0190f783a935e82c0840dbe894a206989c40c5adbc7bc75a53cb5bd2f1d","1e059acb88a0d7058f6476185e329c344ebf1a0a931a0bdade57abba28e1fca9","8fbadfe7c3bd658447c31a2f807975eb78e50f8cb2f844029530bc7b7dc5429c","258df9f5910b57175433c3980ce6aaa1b0febe500bcc61b5c9d8db3abdb045eb","4630e0b5f24aa79945cf967e7e9d0e60306e227b975e363cc1962f531243ced9","5873949a3a4b9766b8c35d3d4c3329b77da7055d3069df8d4ba75770480fbe30","284c54098674804e8610ced0739063ce233956c140c0b110288f42c02a8b4f69","1a869e3676a80cc1de3914517df641019151f4c2886890f6fee19b6435739a08","ce8d82a24629f463e2cbee755342ff42045b61edaf250f8613a3fb7bac4df280","1bbf9ead2b5d91cbe25f8ccb6a8896ab4d422bd5daeec9828f9eaf39fb7032ba","1c0f4e30552515904af24e7edb54056d2d77cfa2ab630da107264af65bdc669c","584e5b1a6477d765cace8c7448f73cbaa38e94145904c17cbe5d07b8be57f83f","777c3121360ea51189d186280ac7e46173040e6d502b4ee43f25f797883eb1ea","2313b87fead0c9b17b371ac0f9bf901dbcc02723b10dba190e9962c17a0bb93e","1f0ed8aa47f6da8b67beea1d96824b6640db628a3042984d03e60e26b05e706d","7dd841f9d6dff1bc1edabbaae51fccd28c52760db1102f22c5e80caa7a7442a0","e6afc61ba0c1973da35ae8c98f646bead94593ce46b4963e5f176b007b68d5aa","bb5c3e4392909f613b531f1003dd7fb87c6d535df6133404bc8d4c083142b086","278f29fe9bc5e798aac0bb545a67eb1d3fc87b53410ec73d7ba4e0cd7bb68fb1","f539248bb6bf047825d411f19ad7a85366b691fcbdd57c02e8437087c111a89f","3112a620e7a2fde5c3a7ff4908c598c463f1d8670c6eaed7502eecbc9e81b3c5","13ed7ed0e63040dbe65367ddd4ecb532433332799da50d0f43fc5bbe1dc60f0c","cf173c1ab4859e9bde6c12b14d2a008889e26de5c3b74718c001622314bfbee1","6f4ce23262f94618362d46a6aef6e99dfdd6e1aa79d98dd37c38c39aa9da9660","729b9d1071b4c3fbc583e7b6b4789183e0e786f6546c7e55e91ef1659e3a9e82","062120bb0128ecb8367b97a8b1f940f69c09ed9bbf9853a491b28671544c59cb","aa460de1fb508a228be6aec159d83c5d5ac42d163d73a97e89e94742007d92b7","9744aa658d64143772a3a3a2743b042790bcd208fc725169c21efd96a7701953","a336c9d0e7b22c78f479f5ad14e7e9ad44b8a6c4aace580e98657df1259b21c9","4b5cb6be28bdfad69853bc69cee08c0b44b3634b7d33ee1c904ed9759481e0ee","ea1cfe0cb5c8b10d500def7ca6d889fad4ad31a6a3f781ef790e52388ef89431","efa1d022af579bf2d953cea6fb0cb9c1a188643aa61012ed060306ec39b1a8d2","496b3289b6b79760f26af52e80201e38a796f48eda6cfde05f668578196911e5","ddd7821f1d119328acfca1030349b848d0e27c276672cd983ce7b64e67fb8977","1bb0bb8f06f7a2457246d84d1ba48522170a5e753dd82bd5499a1130c93572ab","cf7902e2e1c961f0f4d23cf82342e1463f284a617ef7eb4c45fc887d4bb27bd8","1622d218da3ab21743d9963ca2c13ba980734cdf978e865468c7f4f682515b99","ecaeb85ebaadab07adac888968a4695a2d196126de3692f0cea950f24b084e1f","65d45f62c37371c18720fd0e48c7ba1e13e5d3db18379df50ad11161124eac08","f5883afa69a75e225574890b5b102970a012b43cdfc9b30d0550abc73eb3977c","d6da78690ab4de436ee36996d416f7267689f2e81bc6797d146bc7b6163da546","fd6dd10c64e7509fead7ea5cfcd056cb9a29f9a9c466d172e2706e8297796bee","bf3f748fb472599692476c2caa368f344d2cd89a9a3ac2267cae821a67d93f21","96d45755009fa0cf55a14e0a3d4b80076b70a81b19e61ee4b1dc7f1e40eaeedc","476d292c67608e88dcc3c128e4b49a264d7f37ea84318f0d416f2d3134b4ce94","d1f66ed744acfe060e66b2879ea2c0890bf4cd22d8a49589cecb0e25c0256a15","0a252356615a37ca60f2c35df1d0b13ce5006075b70fa2dbc9f4e8e8e7ca99be","9675187baabbf8529440b2d914d9897e03ba39e00d9ea97eadd73496f34836f6","def8f8deb010cb839e568c05f85e5479072cdb379bc51cd4a800cbd469c4bdeb","dc41d46d51c55ccbec534de919fadb79f5d4c74e23a9483578ddb9586a4e8fe4","a71fa0cb6409dbd5dd3ad0819f2aa3102ad7e23b324724a85dce1f8e2dbd6aa2","9d237656738d440ec3570bb762b527a603f6d917cd1918af827927352ca9ed59","570d6cf58320056ff52a5386c6c8545487b6fe8a2ddd280336ba732508290043","8487886fb8c052413f341b1503d99e2d6f487036babfd2800eb7dcc0d021cbec","f5fcbbf9b87d3cc23a7b36836ee8ab9c2369e9e074d682452c4c91f8392d35d3","0cded3744204c1048a1cff51364a889d1c66e879601e631c4a34b6a47372f92a","fa69573d22a14f16cabad8790b4d79ffed4f7eb0d2c80e8003e0f8dcd4f7f59b","de43b1fa7b23f04642a6343baa123b061fb9e2a99bcfdd36e8b6eb6de6e8b1fd","9d3c460c38697c07327bf477a7c0e79a2010800a8cf9a507b6dd148cc5a1bb1a","88e64d9529fcd6a50cc670106cecdc79e8f68fe5f2636e7d4846afa454884ee9","43e40faf955b38f070de188a9dfe7e3e36b759963b6003a4050b97a2236ca104","d93defc47bd6beffd510f629546fc89abe2db62731b1282000cd2951c513e29d","db5909452d6d626c59a7d2456495c41c3add56e08cade839f030e71aa28da0c6","1029fb366046c3533ee894f9412586975849b0ebd059ef77442e34bd4b0bb895","8331ca6b5890aada460a787a2ca1012d2eda798a32a2fcb3120a4122e9636bb0","8032230c88507809a3d439fd6f03b31062fad2668944e3f2744c445b6ee647fd","e98f7509ef113df3035707635200fa4d593163edfb51d0990cba7897e3b4a71d","275da1d17e6ca9ca3db0b8f92192880818d968819ccdef8260a19a3bfe7ca12d","db73ce6470dbaecf4bfe84b72c03ed4bd4a68220141fbb103aa9fafedf87ffb2","9a2201e559019df7862b7cc34cc5951595ba4cc6e682c5b9b44e98a3c4198dac","a9460a1ab303aef75bd7b6ee6f1aeb49e67d043a828637b804f48129fbd4be25","8b4a423e8e442910a1ca27061270e259be1e1e49143043684e4f854ae1991254",{"version":"d370fd94e50b22bdb352bbf25f4e57d1609ee9ae5f232d0d947d815f1e33ff78","signature":"61e6df6ec532df81a7842d85ba091348e2d428ea2df5c1feeeaa2878818b519b"},{"version":"8be30216e844881bf674a2dadd9f0c667ae5cee7614b3ada7e4b2559a2079676","signature":"31e24bc66dd847cdffde4f0b9c09907e68dc71cdcb4b2b079c221c372eb49d5c"},{"version":"0c0cb7567456e750f1bde95353b8006bb7671c1d2a33a1de9b8985fc0225f56b","signature":"51ec582e22c04564d1dc8e41e42bf0b8b12632c7abada0c394ba96bb1bfcba9a"},{"version":"5941462969c9c27a68d7b8005c6c8d38c2bce714126c6bdc8c73a7f9becdfd75","signature":"1b9edf3a2f3b748b7f61d3028b7e9fe2835357e7bf3a62c5d030b4ab2563ff73"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"641942a78f9063caa5d6b777c99304b7d1dc7328076038c6d94d8a0b81fc95c1","impliedFormat":1},{"version":"2de7636e6fbb9e54a61a38bcb7505b94ec5be61197fe9e840cff629ca920c4bc","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e20d899c28ca26a2a7afc98beaa69e63ff7fba0a8bc47b4e3bf3ede5e09e424","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"085f552d005479e2e6a7311cdbbe5d8c55c497b4d19274285df161ee9684cd9c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"007faacc9268357caa21d24169f3f3f2497af3e9241308df2d89f6e6d9bb3f2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7c5e2ea4a9749097c347454805e933844ed207b6eefec6b7cfd418b5f5f7b28","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1}],"root":[[165,168]],"options":{"alwaysStrict":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"module":99,"noImplicitAny":true,"noImplicitThis":true,"outDir":"./","skipLibCheck":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":99,"useUnknownInCatchVariables":true},"referencedMap":[[218,1],[219,1],[220,2],[174,3],[221,4],[222,5],[223,6],[169,7],[172,8],[170,7],[171,7],[224,9],[225,10],[226,11],[227,12],[228,13],[229,14],[230,14],[231,15],[232,16],[233,17],[234,18],[175,7],[173,7],[235,19],[236,20],[237,21],[269,22],[238,23],[239,24],[240,25],[241,26],[242,27],[243,28],[244,29],[245,30],[246,31],[247,32],[248,32],[249,33],[250,7],[251,34],[253,35],[252,36],[254,37],[255,38],[256,39],[257,40],[258,41],[259,42],[260,43],[261,44],[262,45],[263,46],[264,47],[265,48],[266,49],[176,7],[177,7],[178,7],[217,50],[267,51],[268,52],[179,7],[46,7],[47,7],[8,7],[9,7],[11,7],[10,7],[2,7],[12,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7],[19,7],[3,7],[20,7],[21,7],[4,7],[22,7],[26,7],[23,7],[24,7],[25,7],[27,7],[28,7],[29,7],[5,7],[30,7],[31,7],[32,7],[33,7],[6,7],[37,7],[34,7],[35,7],[36,7],[38,7],[7,7],[39,7],[44,7],[45,7],[40,7],[41,7],[42,7],[43,7],[1,7],[195,53],[205,54],[194,53],[215,55],[186,56],[185,57],[214,58],[208,59],[213,60],[188,61],[202,62],[187,63],[211,64],[183,65],[182,58],[212,66],[184,67],[189,68],[190,7],[193,68],[180,7],[216,69],[206,70],[197,71],[198,72],[200,73],[196,74],[199,75],[209,58],[191,76],[192,77],[201,78],[181,79],[204,70],[203,68],[207,7],[210,80],[165,81],[166,82],[167,83],[168,84],[162,85],[163,86],[161,87],[159,88],[158,89],[160,90],[157,91],[156,7],[67,7],[72,92],[71,7],[155,93],[154,7],[153,93],[70,93],[152,94],[54,95],[151,94],[150,93],[149,93],[148,93],[147,94],[125,96],[101,97],[146,98],[145,99],[144,100],[99,101],[143,7],[113,7],[142,102],[164,103],[139,104],[138,105],[140,106],[137,107],[100,7],[136,102],[141,108],[133,7],[130,109],[135,110],[128,111],[134,112],[132,113],[127,114],[126,115],[118,116],[124,117],[129,118],[120,119],[121,120],[123,121],[131,7],[122,122],[119,123],[117,97],[112,7],[114,124],[116,125],[115,126],[102,100],[107,116],[111,7],[106,7],[105,127],[104,128],[110,129],[103,130],[109,131],[108,132],[98,133],[94,134],[97,93],[96,7],[95,7],[90,91],[91,7],[93,7],[92,135],[66,7],[86,134],[89,134],[88,136],[87,137],[85,132],[84,134],[83,7],[82,134],[81,132],[80,7],[79,7],[78,7],[77,7],[76,134],[75,138],[74,139],[73,132],[69,7],[68,140],[65,141],[64,7],[51,134],[63,142],[60,7],[61,143],[62,142],[53,134],[55,7],[59,134],[58,7],[57,7],[52,141],[56,144],[50,7],[48,7],[49,7]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.3"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IllegalArgumentError } from '@amazon/vinyl-util';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown at runtime if a dependency is determined to depend upon itself.
|
|
4
|
+
*
|
|
5
|
+
* When using TypeScript this should result in a {@link NeverCyclicDependency} compile-time
|
|
6
|
+
* validation error when using {@link validateFactories} unless there was an unsafe cast.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CyclicDependencyError extends IllegalArgumentError {
|
|
9
|
+
get [Symbol.toStringTag](): string;
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=CyclicDependencyError.d.ts.map
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { AnyRecord } from '@amazon/vinyl-util';
|
|
2
|
+
import { AddDisposable, Disposable } from '@amazon/vinyl-util';
|
|
3
|
+
/**
|
|
4
|
+
* A factory function that produces a dependency.
|
|
5
|
+
* Called at most once per container lifecycle.
|
|
6
|
+
*
|
|
7
|
+
* @param deps - A statically-typed record of other dependencies required by this factory,
|
|
8
|
+
* provided by other factories.
|
|
9
|
+
* @param add - A function used to register disposables or cleanup callbacks.
|
|
10
|
+
* Use this to add teardown logic that should run when the container is disposed.
|
|
11
|
+
*
|
|
12
|
+
* @returns The constructed dependency. If it:
|
|
13
|
+
* - Implements `Disposable`, it will automatically be disposed when the container is disposed.
|
|
14
|
+
* Do not manually pass it to `add`.
|
|
15
|
+
* - Is `PromiseLike`, the container will wait for the promise to resolve.
|
|
16
|
+
* If the resolved value implements `Disposable`, it will also be disposed automatically.
|
|
17
|
+
* Additionally, the promise will reject if the container is disposed before resolution.
|
|
18
|
+
*/
|
|
19
|
+
export type Factory<T> = (deps: any, add: AddDisposable) => T;
|
|
20
|
+
/**
|
|
21
|
+
* A symbol used to mark dependency factories as externally owned.
|
|
22
|
+
*
|
|
23
|
+
* If a `Factory` has this symbol as a property,
|
|
24
|
+
* it will be considered to be owned by a parent container and will not be
|
|
25
|
+
* disposed regardless of whether it implements {@link Disposable}.
|
|
26
|
+
*
|
|
27
|
+
* This prevents the dependency injection container from taking ownership
|
|
28
|
+
* of dependencies that should be managed elsewhere.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const provider = () => someExternalService
|
|
33
|
+
* provider[ExternalDependency] = true
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare const ExternalDependency: unique symbol;
|
|
37
|
+
/**
|
|
38
|
+
* Creates a Factories record which provides the values of `deps`.
|
|
39
|
+
* These dependencies will be considered to be owned externally and will not
|
|
40
|
+
* be disposed by containers using these factories.
|
|
41
|
+
*
|
|
42
|
+
* This is useful when you want to inject existing instances into a dependency
|
|
43
|
+
* container without transferring ownership. The container will use these
|
|
44
|
+
* dependencies but won't dispose them when the container is disposed.
|
|
45
|
+
*
|
|
46
|
+
* @param deps - A record of dependency instances to be wrapped as factories.
|
|
47
|
+
* Each value will be returned as-is by the corresponding factory.
|
|
48
|
+
* @returns An object with dependency factories for each member of deps.
|
|
49
|
+
* Each provider is marked with the {@link ExternalDependency} symbol.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const logger = new Logger()
|
|
54
|
+
* const config = { port: 8080 }
|
|
55
|
+
*
|
|
56
|
+
* const factories = validateFactories({
|
|
57
|
+
* ...externalDependencies({ logger, config }),
|
|
58
|
+
* controller: (deps: { readonly logger: Logger }) => ({
|
|
59
|
+
* start: () => deps.logger.log('starting...'),
|
|
60
|
+
* dispose: () => deps.logger.log('disposed')
|
|
61
|
+
* })
|
|
62
|
+
* })
|
|
63
|
+
* const container = createContainer(factories)
|
|
64
|
+
*
|
|
65
|
+
* // logger and config won't be disposed when container is disposed
|
|
66
|
+
* // controller will be disposed
|
|
67
|
+
* container.dispose()
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function externalDependencies<T extends AnyRecord>(deps: T): Factories<T>;
|
|
71
|
+
/**
|
|
72
|
+
* A map from dependency keys to factory functions.
|
|
73
|
+
*
|
|
74
|
+
* For each property `K` in `T`, if `T[K]` is a `Dependency`, the value must be
|
|
75
|
+
* a `Factory` that produces `T[K]`. If `T[K]` is not a `Dependency`, the
|
|
76
|
+
* property type resolves to `never`, causing a compile-time error.
|
|
77
|
+
*
|
|
78
|
+
* This ensures factories are defined only for valid dependencies and that
|
|
79
|
+
* each factory is correctly typed.
|
|
80
|
+
*
|
|
81
|
+
* @typeParam T - A record whose values are expected to be `Dependency` types.
|
|
82
|
+
*/
|
|
83
|
+
export type Factories<T = any> = {
|
|
84
|
+
readonly [K in keyof T]: Factory<T[K]>;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Given a dependency map of keys to dependency factories, provides the mapped dependency
|
|
88
|
+
* instances.
|
|
89
|
+
*/
|
|
90
|
+
export type Dependencies<T extends Factories> = {
|
|
91
|
+
readonly [K in keyof T]: ReturnType<T[K]>;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* A dependencies container provides final dependencies and a handle for disposal.
|
|
95
|
+
*/
|
|
96
|
+
export interface Container<T> extends Disposable {
|
|
97
|
+
readonly dependencies: T;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Creates a {@link Container} from a dependency factory map.
|
|
101
|
+
*
|
|
102
|
+
* The dependencies will be a map of getters where the key matches the key within
|
|
103
|
+
* `factories` and the value is a lazily constructed dependency obtained from
|
|
104
|
+
* the respective provider.
|
|
105
|
+
*
|
|
106
|
+
* @param factories An object of key value pairs where the values are dependency
|
|
107
|
+
* providers.
|
|
108
|
+
*/
|
|
109
|
+
export declare function createContainer<Dm extends Factories>(factories: Dm): Container<Dependencies<Dm>>;
|
|
110
|
+
//# sourceMappingURL=di.d.ts.map
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Factories, Factory } from './di';
|
|
2
|
+
import { AddDisposable, IsNever, Merge } from '@amazon/vinyl-util';
|
|
3
|
+
/**
|
|
4
|
+
* A compile-time validation error that a dependency may not cycle back upon itself.
|
|
5
|
+
*/
|
|
6
|
+
export type NeverCyclicDependency<T extends PropertyKey, U extends PropertyKey[]> = [
|
|
7
|
+
never,
|
|
8
|
+
T,
|
|
9
|
+
'cyclic dependency',
|
|
10
|
+
U
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* A compile-time validation error that a provided dependency must be assignable
|
|
14
|
+
* to factories for which it is an input.
|
|
15
|
+
*/
|
|
16
|
+
export type NeverWrongReturnType<Expected, Actual> = [
|
|
17
|
+
never,
|
|
18
|
+
'expected provided dependency is not a subtype of what is used. Expected subtype of:',
|
|
19
|
+
Expected,
|
|
20
|
+
'Actual: ',
|
|
21
|
+
Actual
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* A compile-time validation error that a dependency must be a supertype of the actual type
|
|
25
|
+
* provided.
|
|
26
|
+
*/
|
|
27
|
+
export type NeverWrongDependencyType<Expected, Actual> = [
|
|
28
|
+
never,
|
|
29
|
+
'expected dependency is not a supertype of what is provided. Expected supertype of:',
|
|
30
|
+
Expected,
|
|
31
|
+
'Actual: ',
|
|
32
|
+
Actual
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* A factory expects a dependency that isn't defined.
|
|
36
|
+
*/
|
|
37
|
+
export type NeverMissingDependency<K> = [
|
|
38
|
+
never,
|
|
39
|
+
'provider is missing a dependency for key:',
|
|
40
|
+
K
|
|
41
|
+
];
|
|
42
|
+
/**
|
|
43
|
+
* A factory expects a non-void return type.
|
|
44
|
+
*/
|
|
45
|
+
export type NeverNoVoidReturnType = [
|
|
46
|
+
never,
|
|
47
|
+
'void return type not allowed'
|
|
48
|
+
];
|
|
49
|
+
/**
|
|
50
|
+
* A factory must be a function.
|
|
51
|
+
*/
|
|
52
|
+
export type NeverInvalidFactoryType = [
|
|
53
|
+
never,
|
|
54
|
+
'not a valid factory'
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* Dependencies must be an object.
|
|
58
|
+
*/
|
|
59
|
+
export type NeverInvalidDependenciesType = [
|
|
60
|
+
never,
|
|
61
|
+
'not valid dependency type'
|
|
62
|
+
];
|
|
63
|
+
/**
|
|
64
|
+
* A compile-time validation error that dependency factories take an input of type object.
|
|
65
|
+
*/
|
|
66
|
+
export type NeverWrongDependenciesInput = [
|
|
67
|
+
never,
|
|
68
|
+
'expected dependency factory to have an object argument'
|
|
69
|
+
];
|
|
70
|
+
/**
|
|
71
|
+
* Provides a compile-time assertion that the given dependency map provides valid factories.
|
|
72
|
+
*/
|
|
73
|
+
export declare function validateFactories<Dm extends Factories>(dependencyMap: ValidFactories<Dm>): Dm;
|
|
74
|
+
/**
|
|
75
|
+
* Validates that the type provided is a valid dependency map.
|
|
76
|
+
*
|
|
77
|
+
* This will guarantee that:
|
|
78
|
+
* - All dependency factories exist with the correct signature.
|
|
79
|
+
* - There are no cyclic dependencies.
|
|
80
|
+
* - The factory's dependencies are provided.
|
|
81
|
+
*
|
|
82
|
+
* @see ValidFactory
|
|
83
|
+
*/
|
|
84
|
+
export type ValidFactories<Dm> = {
|
|
85
|
+
readonly [K in keyof Dm]: ValidFactory<Dm, K>;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Validates that the dependency factory is valid.
|
|
89
|
+
*/
|
|
90
|
+
export type ValidFactory<Dm, K extends keyof Dm> = Dm[K] extends (deps: infer Deps, add: AddDisposable) => infer R ? [
|
|
91
|
+
R
|
|
92
|
+
] extends [
|
|
93
|
+
void
|
|
94
|
+
] ? [
|
|
95
|
+
never,
|
|
96
|
+
Dm[K]
|
|
97
|
+
] : [
|
|
98
|
+
R
|
|
99
|
+
] extends [
|
|
100
|
+
ExpectedInputType<Dm, K>
|
|
101
|
+
] ? Dm[K] extends () => any ? Dm[K] : Deps extends ValidProviderDependencies<Deps, Dm> ? Dm[K] : (deps: ValidProviderDependencies<Deps, Dm>) => R : NeverWrongReturnType<ExpectedInputType<Dm, K>, R> : NeverInvalidFactoryType;
|
|
102
|
+
type _ExpectedInputUnion<Dm, K extends keyof Dm> = Dm[keyof Dm] extends (deps: infer Deps, add: AddDisposable) => any ? K extends keyof Deps ? Deps[K] : never : never;
|
|
103
|
+
export type ExpectedInputType<Dm, K extends keyof Dm> = IsNever<_ExpectedInputUnion<Dm, K>> extends true ? any : _ExpectedInputUnion<Dm, K>;
|
|
104
|
+
/**
|
|
105
|
+
* A type validating dependency overrides when merged with existing dependency factories.
|
|
106
|
+
*/
|
|
107
|
+
export type ValidFactoryOverrides<Deps, Base, Ext> = Pick<ValidFactories<Merge<Base, Ext>>, keyof Ext> & Partial<Factories<Deps>>;
|
|
108
|
+
/**
|
|
109
|
+
* Validate that the dependencies of a factory are not cyclical and that the return type of the
|
|
110
|
+
* dependency is a subtype of what's needed.
|
|
111
|
+
*/
|
|
112
|
+
export type ValidProviderDependencies<Deps, Dm> = Deps extends object ? {
|
|
113
|
+
readonly [K in keyof Deps]: K extends keyof Dm ? Dm[K] extends Factory<infer R> ? R extends Deps[K] ? K extends FlattenDependencies<Dm, K> ? NeverCyclicDependency<K, FlattenDependencies<Dm, K>> : Deps[K] : NeverWrongDependencyType<ReturnType<Dm[K]>, Deps[K]> : NeverMissingDependency<K> : NeverMissingDependency<K>;
|
|
114
|
+
} : NeverInvalidDependenciesType;
|
|
115
|
+
/**
|
|
116
|
+
* Flattens the dependency graph for the given dependency factory.
|
|
117
|
+
* E.g. given a map:
|
|
118
|
+
* ```
|
|
119
|
+
* type Map = {
|
|
120
|
+
* a: () => 1,
|
|
121
|
+
* b: (deps: { a: number }) => 2,
|
|
122
|
+
* c: () => 3,
|
|
123
|
+
* d: (deps: { b: number, c: number }) => 4,
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
127
|
+
* `FlattenDependencies<'d', Map> // 'c' | 'b' | 'a'`
|
|
128
|
+
*/
|
|
129
|
+
export type FlattenDependencies<Dm, K extends keyof Dm, Current extends keyof Dm = never> = Dm[K] extends () => any ? never : Dm[K] extends (deps: infer Expected) => any ? keyof Expected extends Current ? never : keyof Expected | any : never;
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IllegalArgumentError } from '@amazon/vinyl-util';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown at runtime if a dependency is determined to depend upon itself.
|
|
4
|
+
*
|
|
5
|
+
* When using TypeScript this should result in a {@link NeverCyclicDependency} compile-time
|
|
6
|
+
* validation error when using {@link validateFactories} unless there was an unsafe cast.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CyclicDependencyError extends IllegalArgumentError {
|
|
9
|
+
get [Symbol.toStringTag](): string;
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=CyclicDependencyError.d.ts.map
|