@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.
Files changed (31) hide show
  1. package/dist/index.cjs +129 -0
  2. package/dist/index.cjs.map +7 -0
  3. package/dist/index.js +113 -0
  4. package/dist/index.js.map +7 -0
  5. package/dist/types/current/di/CyclicDependencyError.d.ts +12 -0
  6. package/dist/types/current/di/CyclicDependencyError.d.ts.map +1 -0
  7. package/dist/types/current/di/CyclicDependencyError.js +20 -0
  8. package/dist/types/current/di/di.d.ts +110 -0
  9. package/dist/types/current/di/di.d.ts.map +1 -0
  10. package/dist/types/current/di/di.js +148 -0
  11. package/dist/types/current/di/validation.d.ts +106 -0
  12. package/dist/types/current/di/validation.d.ts.map +1 -0
  13. package/dist/types/current/di/validation.js +10 -0
  14. package/dist/types/current/index.d.ts +5 -0
  15. package/dist/types/current/index.d.ts.map +1 -0
  16. package/dist/types/current/index.js +4 -0
  17. package/dist/types/current/tsconfig.tsbuildinfo +1 -0
  18. package/dist/types/ts3.7/di/CyclicDependencyError.d.ts +12 -0
  19. package/dist/types/ts3.7/di/di.d.ts +110 -0
  20. package/dist/types/ts3.7/di/validation.d.ts +131 -0
  21. package/dist/types/ts3.7/index.d.ts +5 -0
  22. package/dist/types/ts4.1/di/CyclicDependencyError.d.ts +12 -0
  23. package/dist/types/ts4.1/di/di.d.ts +110 -0
  24. package/dist/types/ts4.1/di/validation.d.ts +131 -0
  25. package/dist/types/ts4.1/index.d.ts +5 -0
  26. package/dist/types/ts4.7/di/CyclicDependencyError.d.ts +12 -0
  27. package/dist/types/ts4.7/di/di.d.ts +110 -0
  28. package/dist/types/ts4.7/di/validation.d.ts +131 -0
  29. package/dist/types/ts4.7/index.d.ts +5 -0
  30. package/docs/DEPENDENCY_INJECTION.md +129 -0
  31. 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,5 @@
1
+ /** Auto-generated from build scripts */
2
+ export * from './di/validation';
3
+ export * from './di/di';
4
+ export * from './di/CyclicDependencyError';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ /** Auto-generated from build scripts */
2
+ export * from './di/validation';
3
+ export * from './di/di';
4
+ export * from './di/CyclicDependencyError';
@@ -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,5 @@
1
+ /** Auto-generated from build scripts */
2
+ export * from './di/validation';
3
+ export * from './di/di';
4
+ export * from './di/CyclicDependencyError';
5
+ //# sourceMappingURL=index.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